diff --git a/assets/anims/anim_D1.inc.c b/assets/anims/anim_D1.inc.c new file mode 100644 index 000000000..29e027d3e --- /dev/null +++ b/assets/anims/anim_D1.inc.c @@ -0,0 +1,461 @@ +static const struct Animation anim_D1[] = { + 0, + 0, + 0, + 1, + 76, + ANIMINDEX_NUMPARTS(anim_D1_indices), + anim_D1_values, + anim_D1_indices, + 0, + ANIM_FIELD_LENGTH(anim_D1_values), + ANIM_FIELD_LENGTH(anim_D1_indices), +}; + + +static const u16 anim_D1_indices[] = { + 0x0001, 0x0000, 0x004C, 0x0001, 0x0001, 0x004D, 0x0001, 0x004E, 0x0001, + 0x004F, 0x0001, 0x0050, 0x004C, 0x0051, 0x004C, 0x009D, 0x004C, 0x00E9, + 0x004C, 0x0135, 0x004B, 0x0181, 0x004C, 0x01CC, 0x004C, 0x0218, 0x004C, + 0x0264, 0x004C, 0x02B0, 0x0001, 0x02FC, 0x0001, 0x02FD, 0x0001, 0x02FE, + 0x0048, 0x02FF, 0x0048, 0x0347, 0x0048, 0x038F, 0x004B, 0x03D7, 0x004B, + 0x0422, 0x0048, 0x046D, 0x0048, 0x04B5, 0x0048, 0x04FD, 0x0048, 0x0545, + 0x0001, 0x058D, 0x0001, 0x058E, 0x0048, 0x058F, 0x0048, 0x05D7, 0x0048, + 0x061F, 0x0048, 0x0667, 0x004C, 0x06AF, 0x004B, 0x06FB, 0x0048, 0x0746, + 0x0048, 0x078E, 0x004B, 0x07D6, 0x0048, 0x0821, 0x004C, 0x0869, 0x004C, + 0x08B5, 0x0024, 0x0901, 0x004C, 0x0925, 0x003F, 0x0971, 0x004C, 0x09B0, + 0x004C, 0x09FC, 0x004B, 0x0A48, 0x004C, 0x0A93, 0x0048, 0x0ADF, 0x004B, + 0x0B27, 0x004C, 0x0B72, 0x004B, 0x0BBE, 0x004C, 0x0C09, 0x0001, 0x0C55, + 0x004C, 0x0C56, 0x004B, 0x0CA2, 0x004C, 0x0CED, 0x004A, 0x0D39, 0x0047, + 0x0D83, 0x004C, 0x0DCA, 0x004C, 0x0E16, 0x004B, 0x0E62, 0x004C, 0x0EAD, + +}; +static const s16 anim_D1_values[] = { + 0x0000, 0x00BF, 0x00BB, 0x00B7, 0x00B4, 0x00B1, 0x00AE, 0x00AC, 0x00AC, + 0x00AD, 0x00AF, 0x00B1, 0x00B3, 0x00B6, 0x00B8, 0x00BB, 0x00BE, 0x00C0, + 0x00C3, 0x00C6, 0x00C8, 0x00CA, 0x00CD, 0x00D0, 0x00D3, 0x00D5, 0x00D8, + 0x00D9, 0x00D9, 0x00D9, 0x00D8, 0x00D5, 0x00D3, 0x00D0, 0x00CD, 0x00CA, + 0x00C8, 0x00C5, 0x00C3, 0x00C0, 0x00BD, 0x00BA, 0x00B8, 0x00B5, 0x00B2, + 0x00B0, 0x00AE, 0x00AC, 0x00AB, 0x00AB, 0x00AB, 0x00AC, 0x00AC, 0x00AD, + 0x00AE, 0x00B0, 0x00B2, 0x00B6, 0x00BB, 0x00C2, 0x00C6, 0x00C9, 0x00CC, + 0x00CF, 0x00D2, 0x00D4, 0x00D6, 0x00D8, 0x00D9, 0x00D9, 0x00D8, 0x00D6, + 0x00D3, 0x00CF, 0x00CA, 0x00C5, 0x00C3, 0x0000, 0x0000, 0x3FFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x3B16, + 0x3B40, 0x3B7C, 0x3BC1, 0x3C06, 0x3C42, 0x3C6D, 0x3C7D, 0x3C7C, 0x3C78, + 0x3C71, 0x3C68, 0x3C5D, 0x3C51, 0x3C42, 0x3C33, 0x3C22, 0x3C10, 0x3BFD, + 0x3BE9, 0x3BD5, 0x3BC1, 0x3BAD, 0x3B99, 0x3B86, 0x3B73, 0x3B61, 0x3B50, + 0x3B40, 0x3B32, 0x3B25, 0x3B1A, 0x3B12, 0x3B0B, 0x3B07, 0x3B05, 0x3B16, + 0x3B40, 0x3B7C, 0x3BC1, 0x3C06, 0x3C42, 0x3C6D, 0x3C7D, 0x3C7C, 0x3C79, + 0x3C74, 0x3C6D, 0x3C64, 0x3C5A, 0x3C4F, 0x3C42, 0x3C35, 0x3C26, 0x3C16, + 0x3C06, 0x3BF6, 0x3BE4, 0x3BD3, 0x3BC1, 0x3BB0, 0x3B9E, 0x3B8D, 0x3B7C, + 0x3B6C, 0x3B5D, 0x3B4E, 0x3B40, 0x3B34, 0x3B28, 0x3B1E, 0x3B16, 0x3B0F, + 0x3B0A, 0x3B07, 0x3B05, 0xFA30, 0xFA81, 0xFAD9, 0xFB37, 0xFB9B, 0xFC03, + 0xFC6F, 0xFCE0, 0xFD53, 0xFDCA, 0xFE42, 0xFEBC, 0xFF37, 0xFFB2, 0x002E, + 0x00A9, 0x0123, 0x019B, 0x0211, 0x0284, 0x02F4, 0x0360, 0x03C8, 0x042A, + 0x0488, 0x04DF, 0x0530, 0x0579, 0x05BB, 0x05F5, 0x0626, 0x064E, 0x066C, + 0x067F, 0x0688, 0x0685, 0x0677, 0x065F, 0x063E, 0x0613, 0x05DF, 0x05A4, + 0x0560, 0x0516, 0x04C4, 0x046C, 0x040E, 0x03AA, 0x0342, 0x02D5, 0x0264, + 0x01EF, 0x0177, 0x00FC, 0x007E, 0x0000, 0xFF7F, 0xFEFE, 0xFE7C, 0xFDFA, + 0xFD79, 0xFCF8, 0xFC79, 0xFBFB, 0xFB80, 0xFB08, 0xFA93, 0xFA21, 0xF9B4, + 0xF94B, 0xF8E7, 0xF888, 0xF82F, 0xF7DD, 0xF792, 0xF74E, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x1C17, 0x1C2F, 0x1C4F, 0x1C75, 0x1C9B, 0x1CBA, 0x1CCE, 0x1CD1, + 0x1CC9, 0x1CBE, 0x1CB1, 0x1CA1, 0x1C8F, 0x1C7C, 0x1C67, 0x1C51, 0x1C3B, + 0x1C23, 0x1C0B, 0x1BF4, 0x1BDC, 0x1BC5, 0x1BAF, 0x1B9A, 0x1B87, 0x1B75, + 0x1B65, 0x1B57, 0x1B4C, 0x1B44, 0x1B3F, 0x1B3E, 0x1B42, 0x1B4F, 0x1B63, + 0x1B7D, 0x1B9C, 0x1BBE, 0x1BE3, 0x1C09, 0x1C2F, 0x1C53, 0x1C76, 0x1C96, + 0x1CB0, 0x1CC6, 0x1CD4, 0x1CDA, 0x1CDB, 0x1CD9, 0x1CD4, 0x1CCD, 0x1CC4, + 0x1CBA, 0x1CAE, 0x1CA0, 0x1C91, 0x1C81, 0x1C70, 0x1C5F, 0x1C4D, 0x1C3C, + 0x1C29, 0x1C17, 0x1C05, 0x1BF4, 0x1BE3, 0x1BD4, 0x1BC5, 0x1BB8, 0x1BAC, + 0x1BA2, 0x1B9A, 0x1B94, 0x1B90, 0x1B8F, 0x069B, 0x0685, 0x0660, 0x062E, + 0x05F0, 0x05A6, 0x0552, 0x04F5, 0x048E, 0x0420, 0x03AB, 0x0330, 0x02B0, + 0x022C, 0x01A4, 0x011A, 0x008E, 0x0002, 0xFF76, 0xFEEB, 0xFE62, 0xFDDC, + 0xFD5A, 0xFCDD, 0xFC65, 0xFBF4, 0xFB8A, 0xFB28, 0xFACF, 0xFA81, 0xFA3E, + 0xFA06, 0xF9DB, 0xF9BE, 0xF9AF, 0xF9B0, 0xF9C0, 0xF9DD, 0xFA06, 0xFA3C, + 0xFA7D, 0xFAC8, 0xFB1D, 0xFB7B, 0xFBE1, 0xFC4F, 0xFCC4, 0xFD3F, 0xFDC0, + 0xFE46, 0xFECF, 0xFF5C, 0xFFEB, 0x007D, 0x010F, 0x01A2, 0x0235, 0x02C7, + 0x0358, 0x03E6, 0x0470, 0x04F7, 0x057A, 0x05F7, 0x066F, 0x06E0, 0x0749, + 0x07AA, 0x0803, 0x0852, 0x0897, 0x08D1, 0x08FF, 0x0921, 0x0936, 0x093D, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xE440, 0xE471, 0xE4AD, 0xE4E5, 0xE51E, + 0xE55F, 0xE592, 0xE5A4, 0xE598, 0xE57E, 0xE55B, 0xE532, 0xE508, 0xE4E1, + 0xE4C1, 0xE4AB, 0xE49B, 0xE48C, 0xE47D, 0xE46F, 0xE461, 0xE454, 0xE448, + 0xE43E, 0xE435, 0xE42E, 0xE429, 0xE426, 0xE425, 0xE427, 0xE42C, 0xE433, + 0xE442, 0xE45A, 0xE47A, 0xE49F, 0xE4C9, 0xE4F4, 0xE51E, 0xE546, 0xE56A, + 0xE588, 0xE59D, 0xE5A8, 0xE5AA, 0xE5A8, 0xE5A1, 0xE597, 0xE58A, 0xE57A, + 0xE568, 0xE554, 0xE540, 0xE52A, 0xE515, 0xE500, 0xE4EC, 0xE4DA, 0xE4CA, + 0xE4BC, 0xE4AF, 0xE4A2, 0xE495, 0xE488, 0xE47A, 0xE46D, 0xE460, 0xE454, + 0xE449, 0xE43E, 0xE435, 0xE42D, 0xE427, 0xE422, 0xE41F, 0xE41E, 0x0001, + 0xFFFE, 0xC170, 0xF75E, 0xF74E, 0xF733, 0xF710, 0xF6E4, 0xF6B0, 0xF676, + 0xF636, 0xF5F1, 0xF5A8, 0xF55B, 0xF50D, 0xF4BC, 0xF46B, 0xF419, 0xF3C8, + 0xF37A, 0xF32D, 0xF2E4, 0xF29F, 0xF25F, 0xF225, 0xF1F2, 0xF1C6, 0xF1A2, + 0xF187, 0xF177, 0xF171, 0xF174, 0xF17A, 0xF185, 0xF195, 0xF1A8, 0xF1BE, + 0xF1D9, 0xF1F6, 0xF216, 0xF239, 0xF25F, 0xF287, 0xF2B1, 0xF2DE, 0xF30B, + 0xF33B, 0xF36B, 0xF39D, 0xF3D0, 0xF403, 0xF437, 0xF46B, 0xF49E, 0xF4D2, + 0xF505, 0xF538, 0xF56A, 0xF59A, 0xF5CA, 0xF5F7, 0xF624, 0xF64E, 0xF676, + 0xF69C, 0xF6BF, 0xF6DF, 0xF6FD, 0xF717, 0xF72D, 0xF740, 0xF750, 0xF75B, + 0xF762, 0xF764, 0xD55B, 0xD565, 0xD575, 0xD58A, 0xD5A4, 0xD5C3, 0xD5E6, + 0xD60C, 0xD635, 0xD661, 0xD68F, 0xD6BE, 0xD6EE, 0xD71F, 0xD74F, 0xD780, + 0xD7AF, 0xD7DD, 0xD808, 0xD831, 0xD858, 0xD87B, 0xD899, 0xD8B4, 0xD8C9, + 0xD8D9, 0xD8E3, 0xD8E6, 0xD8E5, 0xD8E1, 0xD8DA, 0xD8D1, 0xD8C5, 0xD8B8, + 0xD8A8, 0xD897, 0xD883, 0xD86E, 0xD858, 0xD840, 0xD827, 0xD80C, 0xD7F1, + 0xD7D4, 0xD7B7, 0xD79A, 0xD77B, 0xD75D, 0xD73E, 0xD71F, 0xD700, 0xD6E1, + 0xD6C2, 0xD6A4, 0xD686, 0xD669, 0xD64D, 0xD631, 0xD617, 0xD5FE, 0xD5E6, + 0xD5CF, 0xD5BA, 0xD5A7, 0xD595, 0xD586, 0xD578, 0xD56D, 0xD564, 0xD55D, + 0xD559, 0xD557, 0xBB7D, 0xBC22, 0xBD2D, 0xBE93, 0xC04D, 0xC252, 0xC49A, + 0xC71D, 0xC9D2, 0xCCB0, 0xCFB0, 0xD2CA, 0xD5F4, 0xD926, 0xDC58, 0xDF82, + 0xE29B, 0xE59B, 0xE87A, 0xEB2F, 0xEDB2, 0xEFFA, 0xF1FF, 0xF3B9, 0xF51F, + 0xF629, 0xF6CF, 0xF708, 0xF6F1, 0xF6AC, 0xF63D, 0xF5A4, 0xF4E5, 0xF400, + 0xF2FA, 0xF1D3, 0xF08E, 0xEF2D, 0xEDB2, 0xEC1F, 0xEA77, 0xE8BB, 0xE6EE, + 0xE512, 0xE329, 0xE135, 0xDF39, 0xDD36, 0xDB2F, 0xD926, 0xD71D, 0xD516, + 0xD313, 0xD116, 0xCF23, 0xCD3A, 0xCB5E, 0xC991, 0xC7D5, 0xC62D, 0xC49A, + 0xC31F, 0xC1BE, 0xC079, 0xBF52, 0xBE4B, 0xBD67, 0xBCA8, 0xBC0F, 0xBB9F, + 0xBB5B, 0xBB43, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xDF85, + 0xDF99, 0xDFBA, 0xDFE6, 0xE01C, 0xE05C, 0xE0A3, 0xE0F2, 0xE147, 0xE1A1, + 0xE1FF, 0xE261, 0xE2C4, 0xE329, 0xE38D, 0xE3F0, 0xE452, 0xE4B0, 0xE50A, + 0xE55F, 0xE5AE, 0xE5F6, 0xE635, 0xE66B, 0xE697, 0xE6B8, 0xE6CC, 0xE6D3, + 0xE6D0, 0xE6C8, 0xE6BA, 0xE6A8, 0xE690, 0xE674, 0xE654, 0xE630, 0xE608, + 0xE5DC, 0xE5AE, 0xE57D, 0xE548, 0xE512, 0xE4DA, 0xE49F, 0xE463, 0xE426, + 0xE3E7, 0xE3A8, 0xE369, 0xE329, 0xE2E9, 0xE2A9, 0xE26A, 0xE22B, 0xE1EE, + 0xE1B2, 0xE178, 0xE13F, 0xE109, 0xE0D5, 0xE0A3, 0xE075, 0xE049, 0xE022, + 0xDFFD, 0xDFDD, 0xDFC1, 0xDFAA, 0xDF97, 0xDF89, 0xDF81, 0xDF7E, 0xDFCA, + 0xDFB8, 0xDF9B, 0xDF74, 0xDF45, 0xDF0D, 0xDECE, 0xDE88, 0xDE3E, 0xDDEE, + 0xDD9B, 0xDD46, 0xDCEE, 0xDC96, 0xDC3E, 0xDBE6, 0xDB91, 0xDB3E, 0xDAEF, + 0xDAA4, 0xDA5E, 0xDA1F, 0xD9E8, 0xD9B8, 0xD991, 0xD974, 0xD963, 0xD95C, + 0xD95F, 0xD966, 0xD972, 0xD983, 0xD998, 0xD9B0, 0xD9CC, 0xD9EC, 0xDA0F, + 0xDA35, 0xDA5E, 0xDA8A, 0xDAB8, 0xDAE8, 0xDB19, 0xDB4D, 0xDB81, 0xDBB7, + 0xDBEE, 0xDC26, 0xDC5E, 0xDC96, 0xDCCE, 0xDD06, 0xDD3E, 0xDD75, 0xDDAB, + 0xDDDF, 0xDE13, 0xDE45, 0xDE74, 0xDEA2, 0xDECE, 0xDEF7, 0xDF1D, 0xDF40, + 0xDF60, 0xDF7C, 0xDF95, 0xDFA9, 0xDFBA, 0xDFC6, 0xDFCD, 0xDFD0, 0x0470, + 0x0451, 0x041E, 0x03DB, 0x0387, 0x0326, 0x02B7, 0x023E, 0x01BB, 0x0130, + 0x009F, 0x0009, 0xFF70, 0xFED6, 0xFE3B, 0xFDA2, 0xFD0C, 0xFC7B, 0xFBF0, + 0xFB6D, 0xFAF4, 0xFA86, 0xFA24, 0xF9D0, 0xF98D, 0xF95A, 0xF93B, 0xF930, + 0xF935, 0xF942, 0xF957, 0xF974, 0xF998, 0xF9C3, 0xF9F5, 0xFA2C, 0xFA6A, + 0xFAAC, 0xFAF4, 0xFB40, 0xFB90, 0xFBE4, 0xFC3B, 0xFC95, 0xFCF1, 0xFD50, + 0xFDB0, 0xFE11, 0xFE73, 0xFED6, 0xFF38, 0xFF9A, 0xFFFB, 0x005B, 0x00BA, + 0x0116, 0x0170, 0x01C7, 0x021B, 0x026B, 0x02B7, 0x02FF, 0x0341, 0x037F, + 0x03B7, 0x03E8, 0x0413, 0x0437, 0x0454, 0x0469, 0x0476, 0x047B, 0xED84, + 0xED71, 0xED54, 0xED2B, 0xECFA, 0xECBF, 0xEC7E, 0xEC35, 0xEBE8, 0xEB95, + 0xEB3F, 0xEAE5, 0xEA8A, 0xEA2E, 0xE9D2, 0xE977, 0xE91E, 0xE8C8, 0xE875, + 0xE827, 0xE7DF, 0xE79D, 0xE763, 0xE731, 0xE709, 0xE6EB, 0xE6D8, 0xE6D2, + 0xE6D5, 0xE6DC, 0xE6E9, 0xE6FA, 0xE710, 0xE729, 0xE747, 0xE768, 0xE78D, + 0xE7B4, 0xE7DF, 0xE80C, 0xE83C, 0xE86E, 0xE8A2, 0xE8D7, 0xE90E, 0xE946, + 0xE97F, 0xE9B9, 0xE9F4, 0xEA2E, 0xEA69, 0xEAA3, 0xEADD, 0xEB16, 0xEB4F, + 0xEB86, 0xEBBB, 0xEBEF, 0xEC21, 0xEC50, 0xEC7E, 0xECA8, 0xECD0, 0xECF5, + 0xED16, 0xED33, 0xED4D, 0xED62, 0xED74, 0xED80, 0xED88, 0xED8B, 0x0001, + 0xFFFE, 0xC177, 0xC18B, 0xC1AC, 0xC1D8, 0xC20E, 0xC24D, 0xC295, 0xC2E4, + 0xC339, 0xC393, 0xC3F1, 0xC453, 0xC4B6, 0xC51A, 0xC57F, 0xC5E2, 0xC643, + 0xC6A2, 0xC6FC, 0xC751, 0xC7A0, 0xC7E7, 0xC827, 0xC85D, 0xC889, 0xC8AA, + 0xC8BE, 0xC8C5, 0xC7A8, 0xC530, 0xC2AD, 0xC170, 0xC147, 0xC123, 0xC102, + 0xC0E5, 0xC0CC, 0xC0B7, 0xC0A4, 0xC095, 0xC089, 0xC080, 0xC079, 0xC075, + 0xC073, 0xC073, 0xC076, 0xC07A, 0xC080, 0xC087, 0xC090, 0xC09A, 0xC0A5, + 0xC0B2, 0xC0BE, 0xC0CC, 0xC0DA, 0xC0E8, 0xC0F6, 0xC104, 0xC112, 0xC120, + 0xC12D, 0xC139, 0xC145, 0xC14F, 0xC158, 0xC160, 0xC167, 0xC16C, 0xC16F, + 0xC170, 0x1245, 0x1219, 0x11D4, 0x1176, 0x1102, 0x107A, 0x0FE1, 0x0F38, + 0x0E84, 0x0DC3, 0x0CFA, 0x0C29, 0x0B55, 0x0A7E, 0x09A8, 0x08D3, 0x0803, + 0x073A, 0x0679, 0x05C4, 0x051B, 0x0482, 0x03FA, 0x0386, 0x0328, 0x02E2, + 0x02B7, 0x02A8, 0x02AE, 0x02C0, 0x02DD, 0x0305, 0x0338, 0x0374, 0x03B8, + 0x0406, 0x045B, 0x04B8, 0x051B, 0x0585, 0x05F4, 0x0668, 0x06E1, 0x075E, + 0x07DE, 0x0861, 0x08E7, 0x096E, 0x09F6, 0x0A7E, 0x0B07, 0x0B8F, 0x0C16, + 0x0C9C, 0x0D1F, 0x0D9F, 0x0E1C, 0x0E95, 0x0F09, 0x0F77, 0x0FE1, 0x1044, + 0x10A1, 0x10F6, 0x1144, 0x1188, 0x11C4, 0x11F6, 0x121E, 0x123C, 0x124E, + 0x1254, 0x3169, 0x3148, 0x3112, 0x30C9, 0x306F, 0x3006, 0x2F90, 0x2F0D, + 0x2E81, 0x2DEC, 0x2D50, 0x2CAF, 0x2C0B, 0x2B65, 0x2ABE, 0x2A1A, 0x2979, + 0x28DD, 0x2848, 0x27BC, 0x2739, 0x26C3, 0x265A, 0x2600, 0x25B7, 0x2581, + 0x2560, 0x2554, 0x2559, 0x2567, 0x257D, 0x259C, 0x25C3, 0x25F2, 0x2627, + 0x2663, 0x26A5, 0x26EC, 0x2739, 0x278B, 0x27E1, 0x283B, 0x2899, 0x28F9, + 0x295C, 0x29C2, 0x2A29, 0x2A91, 0x2AFB, 0x2B65, 0x2BCE, 0x2C38, 0x2CA0, + 0x2D07, 0x2D6D, 0x2DD0, 0x2E30, 0x2E8E, 0x2EE8, 0x2F3E, 0x2F90, 0x2FDD, + 0x3024, 0x3066, 0x30A2, 0x30D7, 0x3106, 0x312D, 0x314C, 0x3162, 0x3170, + 0x3175, 0xF329, 0xF26E, 0xF141, 0xEFAD, 0xEDBA, 0xEB71, 0xE8DE, 0xE608, + 0xE2F9, 0xDFBC, 0xDC58, 0xD8D8, 0xD545, 0xD1A9, 0xCE0D, 0xCA7A, 0xC6FA, + 0xC397, 0xC059, 0xBD4A, 0xBA75, 0xB7E1, 0xB599, 0xB3A6, 0xB211, 0xB0E4, + 0xB029, 0xAFE8, 0xB003, 0xB050, 0xB0CE, 0xB17B, 0xB253, 0xB355, 0xB47D, + 0xB5CA, 0xB73A, 0xB8C8, 0xBA75, 0xBC3B, 0xBE1B, 0xC010, 0xC218, 0xC432, + 0xC65A, 0xC88E, 0xCACD, 0xCD12, 0xCF5C, 0xD1A9, 0xD3F6, 0xD640, 0xD886, + 0xDAC4, 0xDCF8, 0xDF20, 0xE13A, 0xE343, 0xE538, 0xE717, 0xE8DE, 0xEA8A, + 0xEC19, 0xED88, 0xEED5, 0xEFFE, 0xF0FF, 0xF1D7, 0xF284, 0xF302, 0xF350, + 0xF36A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xD48B, + 0xD4B3, 0xD4F3, 0xD548, 0xD5B1, 0xD62D, 0xD6B8, 0xD752, 0xD7F7, 0xD8A6, + 0xD95D, 0xDA1B, 0xDADC, 0xDB9F, 0xDC62, 0xDD24, 0xDDE1, 0xDE98, 0xDF47, + 0xDFED, 0xE086, 0xE111, 0xE18D, 0xE1F6, 0xE24C, 0xE28B, 0xE2B3, 0xE2C0, + 0xE2BB, 0xE2AA, 0xE290, 0xE26B, 0xE23E, 0xE207, 0xE1C9, 0xE182, 0xE135, + 0xE0E0, 0xE086, 0xE026, 0xDFC1, 0xDF57, 0xDEE9, 0xDE77, 0xDE03, 0xDD8B, + 0xDD12, 0xDC97, 0xDC1B, 0xDB9F, 0xDB23, 0xDAA7, 0xDA2C, 0xD9B3, 0xD93C, + 0xD8C7, 0xD855, 0xD7E7, 0xD77D, 0xD718, 0xD6B8, 0xD65E, 0xD60A, 0xD5BC, + 0xD576, 0xD537, 0xD501, 0xD4D3, 0xD4AE, 0xD494, 0xD483, 0xD47E, 0x0014, + 0x0050, 0x00B1, 0x0132, 0x01D2, 0x028E, 0x0361, 0x044A, 0x0545, 0x064F, + 0x0765, 0x0884, 0x09A9, 0x0AD1, 0x0BFA, 0x0D1F, 0x0E3E, 0x0F54, 0x105E, + 0x1159, 0x1242, 0x1315, 0x13D0, 0x1470, 0x14F2, 0x1553, 0x158F, 0x15A3, + 0x159B, 0x1582, 0x155A, 0x1522, 0x14DD, 0x148A, 0x142B, 0x13C1, 0x134B, + 0x12CB, 0x1242, 0x11B0, 0x1116, 0x1076, 0x0FCF, 0x0F22, 0x0E71, 0x0DBD, + 0x0D04, 0x0C4A, 0x0B8E, 0x0AD1, 0x0A15, 0x0959, 0x089E, 0x07E6, 0x0731, + 0x0680, 0x05D4, 0x052D, 0x048D, 0x03F3, 0x0361, 0x02D8, 0x0258, 0x01E2, + 0x0178, 0x0118, 0x00C6, 0x0081, 0x0049, 0x0021, 0x0008, 0xFFFF, 0x000D, + 0x0035, 0x0074, 0x00CA, 0x0133, 0x01AE, 0x023A, 0x02D3, 0x0378, 0x0428, + 0x04DF, 0x059C, 0x065D, 0x0721, 0x07E4, 0x08A5, 0x0962, 0x0A19, 0x0AC9, + 0x0B6E, 0x0C07, 0x0C93, 0x0D0E, 0x0D77, 0x0DCD, 0x0E0C, 0x0E34, 0x0E42, + 0x0E3C, 0x0E2C, 0x0E11, 0x0DED, 0x0DBF, 0x0D89, 0x0D4A, 0x0D04, 0x0CB6, + 0x0C62, 0x0C07, 0x0BA7, 0x0B42, 0x0AD8, 0x0A6A, 0x09F9, 0x0984, 0x090D, + 0x0894, 0x0819, 0x079D, 0x0721, 0x06A4, 0x0628, 0x05AE, 0x0534, 0x04BD, + 0x0448, 0x03D7, 0x0369, 0x02FF, 0x029A, 0x023A, 0x01DF, 0x018B, 0x013E, + 0x00F7, 0x00B9, 0x0082, 0x0055, 0x0030, 0x0015, 0x0005, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xF53F, 0xF524, 0xF4F9, 0xF4C0, 0xF479, 0xF425, 0xF3C7, + 0xF360, 0xF2F0, 0xF27A, 0xF1FE, 0xF17E, 0xF0FC, 0xF078, 0xEFF4, 0xEF71, + 0xEEF2, 0xEE76, 0xEE00, 0xED90, 0xED28, 0xECCA, 0xEC77, 0xEC30, 0xEBF6, + 0xEBCB, 0xEBB1, 0xEBA7, 0xEBAB, 0xEBB6, 0xEBC8, 0xEBE1, 0xEC00, 0xEC24, + 0xEC4F, 0xEC7E, 0xECB3, 0xECEB, 0xED28, 0xED69, 0xEDAE, 0xEDF5, 0xEE3F, + 0xEE8C, 0xEEDB, 0xEF2B, 0xEF7D, 0xEFD0, 0xF024, 0xF078, 0xF0CC, 0xF11F, + 0xF172, 0xF1C4, 0xF215, 0xF263, 0xF2B0, 0xF2FA, 0xF342, 0xF386, 0xF3C7, + 0xF404, 0xF43D, 0xF471, 0xF4A1, 0xF4CB, 0xF4F0, 0xF50F, 0xF527, 0xF539, + 0xF545, 0xF548, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFF5A, 0xFDA5, 0xFB3A, + 0xF876, 0xF5B1, 0xF347, 0xF192, 0xF0EC, 0xF110, 0xF174, 0xF212, 0xF2E0, + 0xF3D7, 0xF4F0, 0xF621, 0xF762, 0xF8AD, 0xF9F7, 0xFB3B, 0xFC6E, 0xFD8A, + 0xFE87, 0xFF5B, 0x0000, 0x0073, 0x00BF, 0x00E8, 0x00F5, 0x00EA, 0x00CE, + 0x00A7, 0x007A, 0x004D, 0x0026, 0x000A, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xC5E5, 0xC5DB, 0xC5AC, 0xC542, 0xC483, 0xC359, 0xC1A9, 0xBF5E, + 0xBC89, 0xB959, 0xB5DB, 0xB21D, 0xAE30, 0xAA20, 0xA5FD, 0xA1D5, 0x9DB7, + 0x99B2, 0x95D3, 0x9229, 0x8EC4, 0x8BB1, 0x88FF, 0x86BC, 0x8509, 0x83ED, + 0x8352, 0x8324, 0x834B, 0x83B4, 0x8447, 0x84F0, 0x8599, 0x862C, 0x8695, + 0x86BC, 0x002B, 0xFE75, 0xFC09, 0xF93E, 0xF66E, 0xF3F1, 0xF220, 0xF155, + 0xF149, 0xF17A, 0xF1DF, 0xF271, 0xF328, 0xF3FF, 0xF4ED, 0xF5EB, 0xF6F2, + 0xF7FB, 0xF8FE, 0xF9F4, 0xFAD7, 0xFB9E, 0xFC42, 0xFCBD, 0xFCF6, 0xFCE5, + 0xFC9E, 0xFC35, 0xFBBB, 0xFB43, 0xFAE2, 0xFAAA, 0xFAAF, 0xFAE3, 0xFB27, + 0xFB5B, 0xFB7D, 0xFBA0, 0xFBC3, 0xFBE6, 0xFC09, 0xFC2B, 0xFC4B, 0xFC68, + 0xFC83, 0xFC9B, 0xFCAE, 0xFCBD, 0xFCC6, 0xFCC9, 0xFCC7, 0xFCC0, 0xFCB7, + 0xFCAC, 0xFC9F, 0xFC93, 0xFC89, 0xFC80, 0xFC7B, 0xFC7B, 0xFC80, 0xFC8D, + 0xFCA0, 0xFCBD, 0xFCEC, 0xFD31, 0xFD88, 0xFDEC, 0xFE57, 0xFEC5, 0xFF2F, + 0xFF92, 0xFFE8, 0x002C, 0x0058, 0x0068, 0x0005, 0x0011, 0x0021, 0x002F, + 0x0038, 0x0035, 0x0024, 0x0000, 0xFFCA, 0xFF89, 0xFF40, 0xFEF0, 0xFE9A, + 0xFE40, 0xFDE5, 0xFD8A, 0xFD31, 0xFCDB, 0xFC8A, 0xFC40, 0xFC00, 0xFBCA, + 0xFBA0, 0xFB84, 0xFB8D, 0xFBC7, 0xFC23, 0xFC95, 0xFD0E, 0xFD82, 0xFDE3, + 0xFE22, 0xFE1F, 0xFDE2, 0xFD9C, 0xFD81, 0xFD8F, 0xFDA4, 0xFDBF, 0xFDDD, + 0xFDFF, 0xFE22, 0xFE45, 0xFE67, 0xFE86, 0xFEA1, 0xFEB7, 0xFEC7, 0xFED1, + 0xFED8, 0xFEDE, 0xFEE1, 0xFEE2, 0xFEE2, 0xFEE0, 0xFEDE, 0xFEDB, 0xFED7, + 0xFED3, 0xFECF, 0xFECC, 0xFEC9, 0xFEC7, 0xCD33, 0xCABB, 0xC739, 0xC32A, + 0xBF0D, 0xBB61, 0xB8A2, 0xB751, 0xB6FB, 0xB6D8, 0xB6E5, 0xB720, 0xB785, + 0xB812, 0xB8C4, 0xB997, 0xBA89, 0xBB97, 0xBCBD, 0xBDFA, 0xBF49, 0xC0A8, + 0xC214, 0xC38A, 0xC57E, 0xC83C, 0xCB80, 0xCF0A, 0xD298, 0xD5E7, 0xD8B5, + 0xDAC2, 0xDADA, 0xD913, 0xD718, 0xD692, 0xD76B, 0xD86B, 0xD98E, 0xDACF, + 0xDC2A, 0xDD9B, 0xDF1C, 0xE0A9, 0xE23D, 0xE3D5, 0xE56C, 0xE6FC, 0xE88F, + 0xEA2D, 0xEBD6, 0xED88, 0xEF40, 0xF0FD, 0xF2BE, 0xF47F, 0xF640, 0xF7FF, + 0xF9B9, 0xFB6E, 0xFD1A, 0xFEBE, 0x0055, 0x01E0, 0x0373, 0x0520, 0x06D9, + 0x0894, 0x0A46, 0x0BE3, 0x0D5F, 0x0EB0, 0x0FCA, 0x10A1, 0x112B, 0x115B, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x2B45, 0x2E5E, + 0x32CA, 0x37EC, 0x3D29, 0x41E6, 0x4587, 0x4770, 0x483B, 0x48E6, 0x496E, + 0x49D1, 0x4A0B, 0x4A19, 0x49F8, 0x49A4, 0x491B, 0x4859, 0x475C, 0x461F, + 0x44A1, 0x42DD, 0x40D1, 0x3E79, 0x3AC3, 0x3508, 0x2DE9, 0x2609, 0x1E09, + 0x168A, 0x102F, 0x0B97, 0x0AA9, 0x0D59, 0x1163, 0x1482, 0x167C, 0x1891, + 0x1AB7, 0x1CE4, 0x1F0C, 0x2124, 0x2322, 0x24FC, 0x26A6, 0x2815, 0x2940, + 0x2A1A, 0x2AB3, 0x2B21, 0x2B68, 0x2B8B, 0x2B8F, 0x2B77, 0x2B46, 0x2B01, + 0x2AAB, 0x2A48, 0x29DB, 0x2967, 0x28F2, 0x287E, 0x280F, 0x27A8, 0x272E, + 0x2687, 0x25BF, 0x24DF, 0x23F3, 0x2304, 0x221D, 0x2149, 0x2092, 0x2002, + 0x1FA4, 0x1F82, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xD6C0, 0xD551, 0xD33E, 0xD0C9, + 0xCE32, 0xCBBB, 0xC9A7, 0xC836, 0xC732, 0xC638, 0xC549, 0xC465, 0xC38F, + 0xC2C6, 0xC20A, 0xC15E, 0xC0C1, 0xC035, 0xBFBA, 0xBF51, 0xBEFA, 0xBEB7, + 0xBE88, 0xBE6F, 0xBE85, 0xBEDD, 0xBF6B, 0xC024, 0xC0FD, 0xC1EA, 0xC2DF, + 0xC3D1, 0xC4B5, 0xC57E, 0xC622, 0xC695, 0xC6E7, 0xC729, 0xC751, 0xC755, + 0xC72A, 0xC6C7, 0xC620, 0xC52B, 0xC311, 0xBFAE, 0xBC08, 0xB923, 0xB6BA, + 0xB46F, 0xB327, 0xB3C4, 0xB5E3, 0xB879, 0xBB6C, 0xBEA6, 0xC20D, 0xC589, + 0xC902, 0xCC60, 0xCF8A, 0xD268, 0xD4E3, 0xD6E1, 0xD871, 0xD9B7, 0xDABB, + 0xDB84, 0xDC19, 0xDC83, 0xDCC7, 0xDCEE, 0xDD00, 0xDD03, 0xDD00, 0xDCFD, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xBF5E, 0x0058, + 0x005A, 0x005C, 0x005F, 0x0062, 0x0064, 0x0067, 0x0068, 0x0068, 0x0068, + 0x0068, 0x0068, 0x0067, 0x0066, 0x0065, 0x0064, 0x0064, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0064, 0x0066, 0x0068, 0x006C, 0x0073, 0x007D, 0x0087, + 0x0091, 0x0099, 0x009F, 0x00A1, 0x00A0, 0x009C, 0x0097, 0x0091, 0x008A, + 0x0083, 0x007B, 0x0074, 0x006F, 0x006A, 0x0068, 0x0068, 0x0075, 0x008F, + 0x00A9, 0x00B5, 0x00B5, 0x00B4, 0x00B3, 0x00B2, 0x00B0, 0x00AD, 0x00AA, + 0x00A6, 0x00A1, 0x009C, 0x0096, 0x008E, 0x0086, 0x007D, 0x0073, 0x0068, + 0x0059, 0x0045, 0x002C, 0x0011, 0xFFF4, 0xFFD7, 0xFFBB, 0xFFA1, 0xFF8B, + 0xFF7A, 0xFF6E, 0xFF6A, 0xFFBD, 0xFFA3, 0xFF7E, 0xFF52, 0xFF24, 0xFEFB, + 0xFEDA, 0xFEC7, 0xFEBD, 0xFEB6, 0xFEB1, 0xFEAE, 0xFEAC, 0xFEAC, 0xFEAD, + 0xFEAF, 0xFEB2, 0xFEB5, 0xFEB9, 0xFEBC, 0xFEC0, 0xFEC3, 0xFEC5, 0xFEC7, + 0xFEC8, 0xFECC, 0xFED0, 0xFED4, 0xFED9, 0xFEDC, 0xFEDF, 0xFEE0, 0xFEDF, + 0xFEDE, 0xFEDC, 0xFED9, 0xFED5, 0xFED2, 0xFECF, 0xFECC, 0xFEC9, 0xFEC7, + 0xFEC6, 0xFEC7, 0xFECD, 0xFEDA, 0xFEE6, 0xFEEC, 0xFEEC, 0xFEEA, 0xFEE9, + 0xFEE7, 0xFEE4, 0xFEE1, 0xFEDE, 0xFEDB, 0xFED7, 0xFED4, 0xFED1, 0xFECE, + 0xFECB, 0xFEC9, 0xFEC8, 0xFEC7, 0xFEC6, 0xFEC7, 0xFEC8, 0xFECA, 0xFECD, + 0xFECF, 0xFED2, 0xFED4, 0xFED6, 0xFED8, 0xFED9, 0xA292, 0xA2B1, 0xA2EE, + 0xA351, 0xA3E4, 0xA4AD, 0xA5B5, 0xA705, 0xA88B, 0xAA2E, 0xABEB, 0xADBE, + 0xAFA5, 0xB19B, 0xB39D, 0xB5A8, 0xB7B8, 0xB9CA, 0xBBD9, 0xBDE4, 0xBFE6, + 0xC1DB, 0xC3C1, 0xC593, 0xC783, 0xC9A8, 0xCBD8, 0xCDE9, 0xCFB3, 0xD10B, + 0xD1C8, 0xD1C0, 0xD125, 0xD047, 0xCF28, 0xCDCD, 0xCC39, 0xCA71, 0xC877, + 0xC650, 0xC3FF, 0xC188, 0xBEEF, 0xBC37, 0xB774, 0xB062, 0xA986, 0xA563, + 0xA385, 0xA1CB, 0xA033, 0x9EBC, 0x9D64, 0x9C2B, 0x9B10, 0x9A11, 0x992C, + 0x9862, 0x97B0, 0x9716, 0x9692, 0x9623, 0x95C8, 0x9580, 0x9578, 0x95D3, + 0x967D, 0x9764, 0x9875, 0x999E, 0x9ACD, 0x9BEE, 0x9CF0, 0x9DBF, 0x9E48, + 0x9E7A, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0x1871, 0x19CE, 0x1BBF, 0x1E00, 0x204D, 0x2262, 0x23F9, + 0x24CE, 0x2511, 0x2523, 0x250B, 0x24CF, 0x2476, 0x2406, 0x2388, 0x2301, + 0x2277, 0x21F3, 0x217B, 0x2115, 0x20C8, 0x209B, 0x2094, 0x20BB, 0x212F, + 0x21FF, 0x231B, 0x2472, 0x25F3, 0x278E, 0x2933, 0x2AD0, 0x2C7F, 0x2E5C, + 0x305F, 0x327D, 0x34AD, 0x36E5, 0x391C, 0x3B48, 0x3D60, 0x3F59, 0x412B, + 0x42CB, 0x4431, 0x4552, 0x4624, 0x469F, 0x46C8, 0x46AE, 0x4656, 0x45C4, + 0x44FE, 0x4408, 0x42E7, 0x41A1, 0x4038, 0x3EB3, 0x3D17, 0x3B67, 0x39A9, + 0x37E2, 0x3616, 0x344A, 0x3229, 0x2F73, 0x2C4D, 0x28DE, 0x254A, 0x21B7, + 0x1E4A, 0x1B28, 0x1878, 0x165E, 0x14FF, 0x1482, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xC37D, 0xC3ED, 0xC488, 0xC534, 0xC5D9, + 0xC65B, 0xC6A2, 0xC695, 0xC54C, 0xC2E3, 0xC0C1, 0xC04A, 0xC14A, 0xC292, + 0xC416, 0xC5C9, 0xC79E, 0xC989, 0xCB7D, 0xCD6D, 0xCF4C, 0xD10E, 0xD2A6, + 0xD407, 0xD55A, 0xD6BC, 0xD80E, 0xD931, 0xDA03, 0xDA68, 0xDA3D, 0xD966, + 0xD7FA, 0xD632, 0xD41D, 0xD1C8, 0xCF41, 0xCC98, 0xC9DA, 0xC715, 0xC458, + 0xC1B1, 0xBF2E, 0xBCDD, 0xBACE, 0xB90D, 0xB7A9, 0xB6B1, 0xB624, 0xB5F0, + 0xB60C, 0xB66D, 0xB70A, 0xB7D8, 0xB8CC, 0xB9DE, 0xBB02, 0xBC2E, 0xBD59, + 0xBE78, 0xBF81, 0xC069, 0xC127, 0xC1B1, 0xC210, 0xC257, 0xC288, 0xC2A7, + 0xC2B7, 0xC2BB, 0xC2B7, 0xC2AC, 0xC29E, 0xC290, 0xC286, 0xC282, +}; + diff --git a/assets/anims/anim_D2.inc.c b/assets/anims/anim_D2.inc.c new file mode 100644 index 000000000..25b2d6ebe --- /dev/null +++ b/assets/anims/anim_D2.inc.c @@ -0,0 +1,412 @@ + + +static const struct Animation anim_D2[] = { + 0, + 0, + 0, + 1, + 71, + ANIMINDEX_NUMPARTS(anim_D2_indices), + anim_D2_values, + anim_D2_indices, + 0, + ANIM_FIELD_LENGTH(anim_D2_values), + ANIM_FIELD_LENGTH(anim_D2_indices), +}; + +static const u16 anim_D2_indices[] = { + 0x0001, 0x0000, 0x0047, 0x0001, 0x0001, 0x0048, 0x0001, 0x0049, 0x0001, + 0x004A, 0x0001, 0x004B, 0x0044, 0x004C, 0x0044, 0x0090, 0x0047, 0x00D4, + 0x0047, 0x011B, 0x0045, 0x0162, 0x0047, 0x01A7, 0x0047, 0x01EE, 0x0047, + 0x0235, 0x0047, 0x027C, 0x0001, 0x02C3, 0x0001, 0x02C4, 0x0001, 0x02C5, + 0x0047, 0x02C6, 0x0047, 0x030D, 0x0047, 0x0354, 0x0047, 0x039B, 0x0047, + 0x03E2, 0x0047, 0x0429, 0x0047, 0x0470, 0x0047, 0x04B7, 0x0001, 0x04FE, + 0x0001, 0x04FF, 0x0001, 0x0500, 0x0001, 0x0501, 0x0047, 0x0502, 0x0047, + 0x0549, 0x0047, 0x0590, 0x0047, 0x05D7, 0x0047, 0x061E, 0x0047, 0x0665, + 0x0047, 0x06AC, 0x0047, 0x06F3, 0x0046, 0x073A, 0x0047, 0x0780, 0x0042, + 0x07C7, 0x0021, 0x0809, 0x0047, 0x082A, 0x003A, 0x0871, 0x0047, 0x08AB, + 0x0046, 0x08F2, 0x0047, 0x0938, 0x0047, 0x097F, 0x0047, 0x09C6, 0x0047, + 0x0A0D, 0x0046, 0x0A54, 0x0046, 0x0A9A, 0x0045, 0x0AE0, 0x0001, 0x0B25, + 0x0001, 0x0B26, 0x0015, 0x0B27, 0x0047, 0x0B3C, 0x0047, 0x0B83, 0x0046, + 0x0BCA, 0x0047, 0x0C10, 0x0047, 0x0C57, 0x0044, 0x0C9E, 0x0047, 0x0CE2, + +}; + +static const s16 anim_D2_values[] = { + 0x0000, 0x00BD, 0x00B8, 0x00B4, 0x00B1, 0x00AF, 0x00AD, 0x00AB, 0x00AC, + 0x00AE, 0x00B0, 0x00B3, 0x00B7, 0x00BA, 0x00BE, 0x00C2, 0x00C5, 0x00C8, + 0x00CB, 0x00CE, 0x00D1, 0x00D3, 0x00D6, 0x00D8, 0x00D9, 0x00D9, 0x00D9, + 0x00D8, 0x00D7, 0x00D5, 0x00D2, 0x00D0, 0x00CD, 0x00CA, 0x00C8, 0x00C5, + 0x00C1, 0x00BD, 0x00B9, 0x00B5, 0x00B2, 0x00B0, 0x00AE, 0x00AD, 0x00AC, + 0x00AB, 0x00AB, 0x00AB, 0x00AC, 0x00AD, 0x00AF, 0x00B2, 0x00B6, 0x00BC, + 0x00C2, 0x00C6, 0x00CA, 0x00CD, 0x00CF, 0x00D2, 0x00D4, 0x00D6, 0x00D8, + 0x00D9, 0x00D9, 0x00D8, 0x00D5, 0x00D3, 0x00CF, 0x00CA, 0x00C5, 0x00C3, + 0x0000, 0x0000, 0x3FFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x3AA5, 0x3AFB, 0x3B75, 0x3C01, + 0x3C8C, 0x3D06, 0x3D5C, 0x3D7D, 0x3D7A, 0x3D70, 0x3D60, 0x3D4B, 0x3D30, + 0x3D11, 0x3CEE, 0x3CC8, 0x3CA0, 0x3C75, 0x3C49, 0x3C1C, 0x3BEF, 0x3BC2, + 0x3B96, 0x3B6C, 0x3B43, 0x3B1D, 0x3AFB, 0x3ADC, 0x3AC2, 0x3AAC, 0x3A9C, + 0x3A92, 0x3A8F, 0x3AAA, 0x3AF0, 0x3B55, 0x3BCD, 0x3C4B, 0x3CC4, 0x3D2A, + 0x3D71, 0x3D8D, 0x3D8D, 0x3D89, 0x3D7F, 0x3D72, 0x3D61, 0x3D4C, 0x3D35, + 0x3D1B, 0x3CFE, 0x3CDF, 0x3CBF, 0x3C9E, 0x3C7B, 0x3C58, 0x3C34, 0x3C11, + 0x3BEE, 0x3BCC, 0x3BAB, 0x3B8C, 0x3B6E, 0x3B53, 0x3B3A, 0x3B24, 0x3B11, + 0x3B02, 0x3AF6, 0x3AEF, 0x3AED, 0xED00, 0xEE15, 0xEF45, 0xF08E, 0xF1ED, + 0xF360, 0xF4E4, 0xF678, 0xF818, 0xF9C2, 0xFB75, 0xFD2C, 0xFEE7, 0x00A2, + 0x025B, 0x0410, 0x05BE, 0x0763, 0x08FD, 0x0A88, 0x0C03, 0x0D6B, 0x0EBE, + 0x0FFA, 0x111B, 0x121F, 0x1305, 0x13C9, 0x146A, 0x14E4, 0x1535, 0x155C, + 0x1555, 0x1523, 0x14CD, 0x1453, 0x13B8, 0x12FE, 0x1226, 0x1132, 0x1024, + 0x0EFD, 0x0DC0, 0x0C6E, 0x0B09, 0x0993, 0x080D, 0x067A, 0x04DB, 0x0332, + 0x0180, 0xFFC8, 0xFE0B, 0xFC4C, 0xFA8B, 0xF8CA, 0xF70D, 0xF553, 0xF39F, + 0xF1F3, 0xF051, 0xEEBA, 0xED30, 0xEBB5, 0xEA4A, 0xE8F2, 0xE7AF, 0xE681, + 0xE56B, 0xE46F, 0xE38E, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xF595, 0xF5D1, 0xF624, 0xF683, 0xF6E0, 0xF72E, 0xF75F, 0xF766, 0xF74F, + 0xF72F, 0xF707, 0xF6D8, 0xF6A2, 0xF667, 0xF629, 0xF5E9, 0xF5A5, 0xF561, + 0xF51E, 0xF4DC, 0xF49C, 0xF460, 0xF428, 0xF3F6, 0xF3CB, 0xF3A8, 0xF38E, + 0xF37D, 0xF378, 0xF382, 0xF39F, 0xF3CC, 0xF406, 0xF44B, 0xF499, 0xF4ED, + 0xF545, 0xF59F, 0xF5F7, 0xF64B, 0xF69B, 0xF6E2, 0xF71E, 0xF74E, 0xF76E, + 0xF77D, 0xF77D, 0xF776, 0xF767, 0xF752, 0xF736, 0xF716, 0xF6F0, 0xF6C7, + 0xF69A, 0xF66B, 0xF63A, 0xF609, 0xF5D6, 0xF5A3, 0xF571, 0xF541, 0xF513, + 0xF4E7, 0xF4C0, 0xF49C, 0xF47E, 0xF465, 0xF452, 0xF446, 0xF442, 0x140F, + 0x13BD, 0x1339, 0x1287, 0x11A9, 0x10A4, 0x0F7A, 0x0E30, 0x0CC9, 0x0B49, + 0x09B2, 0x0809, 0x0651, 0x048E, 0x02C2, 0x00F2, 0xFF21, 0xFD53, 0xFB8B, + 0xF9CD, 0xF81C, 0xF67B, 0xF4EF, 0xF37B, 0xF221, 0xF0E7, 0xEFCF, 0xEEDC, + 0xEE14, 0xED77, 0xED0C, 0xECD4, 0xECD4, 0xED07, 0xED68, 0xEDF2, 0xEEA5, + 0xEF7C, 0xF076, 0xF190, 0xF2C8, 0xF41B, 0xF586, 0xF708, 0xF89C, 0xFA42, + 0xFBF6, 0xFDB6, 0xFF80, 0x0150, 0x0324, 0x04FB, 0x06D0, 0x08A2, 0x0A6F, + 0x0C33, 0x0DEC, 0x0F98, 0x1134, 0x12BD, 0x1432, 0x158F, 0x16D2, 0x17F8, + 0x1900, 0x19E6, 0x1AA7, 0x1B42, 0x1BB4, 0x1BFB, 0x1C13, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0E12, 0x0E4A, 0x0E90, + 0x0ECF, 0x0F0F, 0x0F5A, 0x0F96, 0x0FAC, 0x0F9F, 0x0F88, 0x0F67, 0x0F41, + 0x0F18, 0x0EEE, 0x0EC7, 0x0EA5, 0x0E8C, 0x0E77, 0x0E62, 0x0E4D, 0x0E39, + 0x0E27, 0x0E17, 0x0E09, 0x0DFF, 0x0DF8, 0x0DF6, 0x0DF9, 0x0E02, 0x0E13, + 0x0E2C, 0x0E4D, 0x0E74, 0x0E9E, 0x0ECB, 0x0EF8, 0x0F23, 0x0F4C, 0x0F70, + 0x0F8E, 0x0FA3, 0x0FAF, 0x0FB0, 0x0FA8, 0x0F98, 0x0F82, 0x0F67, 0x0F48, + 0x0F28, 0x0F07, 0x0EE8, 0x0ECB, 0x0EB3, 0x0EA0, 0x0E90, 0x0E81, 0x0E71, + 0x0E62, 0x0E53, 0x0E45, 0x0E37, 0x0E2A, 0x0E1D, 0x0E12, 0x0E08, 0x0DFF, + 0x0DF8, 0x0DF2, 0x0DED, 0x0DEA, 0x0DE9, 0xFFFE, 0x0001, 0xC170, 0xDB0A, + 0xDB5F, 0xDBE8, 0xDCA2, 0xDD89, 0xDE99, 0xDFCF, 0xE127, 0xE29E, 0xE430, + 0xE5D9, 0xE796, 0xE963, 0xEB3D, 0xED20, 0xEF07, 0xF0F1, 0xF2D8, 0xF4BA, + 0xF693, 0xF85F, 0xFA1B, 0xFBC2, 0xFD53, 0xFEC7, 0x001D, 0x0151, 0x025E, + 0x0342, 0x040E, 0x04D4, 0x0595, 0x0651, 0x0708, 0x07BA, 0x0867, 0x090F, + 0x09B3, 0x0A51, 0x0AEA, 0x0B7E, 0x0C0D, 0x0C97, 0x0D1D, 0x0D9D, 0x0E18, + 0x0E8F, 0x0F00, 0x0F6D, 0x0FD5, 0x1038, 0x1096, 0x10EF, 0x1143, 0x1192, + 0x11DD, 0x1222, 0x1263, 0x129F, 0x12D6, 0x1308, 0x1335, 0x135E, 0x1382, + 0x13A1, 0x13BB, 0x13D1, 0x13E1, 0x13ED, 0x13F4, 0x13F7, 0xB6DB, 0xB72E, + 0xB7B3, 0xB867, 0xB945, 0xBA49, 0xBB6F, 0xBCB2, 0xBE0F, 0xBF82, 0xC107, + 0xC298, 0xC433, 0xC5D4, 0xC775, 0xC913, 0xCAAA, 0xCC35, 0xCDB2, 0xCF1A, + 0xD06C, 0xD1A1, 0xD2B7, 0xD3A8, 0xD472, 0xD50F, 0xD57C, 0xD5B5, 0xD5B5, + 0xD588, 0xD53E, 0xD4D7, 0xD456, 0xD3BB, 0xD309, 0xD241, 0xD164, 0xD073, + 0xCF72, 0xCE60, 0xCD40, 0xCC13, 0xCADA, 0xC998, 0xC84D, 0xC6FB, 0xC5A3, + 0xC448, 0xC2EB, 0xC18C, 0xC02F, 0xBED3, 0xBD7C, 0xBC29, 0xBADE, 0xB99A, + 0xB861, 0xB733, 0xB611, 0xB4FE, 0xB3FB, 0xB30A, 0xB22B, 0xB161, 0xB0AD, + 0xB011, 0xAF8D, 0xAF24, 0xAED8, 0xAEA8, 0xAE98, 0xD80C, 0xD885, 0xD948, + 0xDA4F, 0xDB92, 0xDD0C, 0xDEB7, 0xE08D, 0xE287, 0xE49F, 0xE6CF, 0xE911, + 0xEB5E, 0xEDB1, 0xF003, 0xF24E, 0xF48C, 0xF6B7, 0xF8C8, 0xFABA, 0xFC86, + 0xFE25, 0xFF93, 0x00C9, 0x01BF, 0x0271, 0x02D7, 0x02EC, 0x02AA, 0x0220, + 0x0163, 0x0076, 0xFF5B, 0xFE15, 0xFCA7, 0xFB14, 0xF95E, 0xF788, 0xF594, + 0xF385, 0xF15F, 0xEF23, 0xECD4, 0xEA75, 0xE809, 0xE592, 0xE313, 0xE08E, + 0xDE07, 0xDB80, 0xD8FB, 0xD67C, 0xD405, 0xD198, 0xCF39, 0xCCEA, 0xCAAE, + 0xC887, 0xC678, 0xC484, 0xC2AD, 0xC0F7, 0xBF63, 0xBDF5, 0xBCAF, 0xBB93, + 0xBAA6, 0xB9E8, 0xB95D, 0xB908, 0xB8EB, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xDF41, 0xDEBE, 0xDE40, 0xDE13, 0xDE29, 0xDE43, + 0xDE60, 0xDE80, 0xDEA3, 0xDEC8, 0xDEEF, 0xDF17, 0xDF42, 0xDF6D, 0xDF9A, + 0xDFC7, 0xDFF5, 0xE023, 0xE051, 0xE07E, 0xE0AB, 0xE0D7, 0xE102, 0xE12B, + 0xE153, 0xE179, 0xE19C, 0xE1BE, 0xE1DC, 0xE1F9, 0xE217, 0xE235, 0xE253, + 0xE271, 0xE290, 0xE2AF, 0xE2CE, 0xE2ED, 0xE30D, 0xE32C, 0xE34B, 0xE369, + 0xE388, 0xE3A6, 0xE3C4, 0xE3E2, 0xE3FF, 0xE41B, 0xE437, 0xE453, 0xE46D, + 0xE487, 0xE4A0, 0xE4B9, 0xE4D0, 0xE4E6, 0xE4FC, 0xE510, 0xE523, 0xE535, + 0xE546, 0xE555, 0xE563, 0xE56F, 0xE57B, 0xE584, 0xE58C, 0xE592, 0xE597, + 0xE599, 0xE59A, 0xDFEF, 0xE04A, 0xE0DD, 0xE1A1, 0xE294, 0xE3B0, 0xE4F0, + 0xE650, 0xE7CC, 0xE95E, 0xEB02, 0xECB4, 0xEE6F, 0xF02D, 0xF1EB, 0xF3A5, + 0xF554, 0xF6F5, 0xF883, 0xF9F9, 0xFB53, 0xFC8D, 0xFDA0, 0xFE8A, 0xFF45, + 0xFFCC, 0x001B, 0x002E, 0x0000, 0xFF9B, 0xFF11, 0xFE63, 0xFD93, 0xFCA3, + 0xFB95, 0xFA6B, 0xF928, 0xF7CC, 0xF65B, 0xF4D5, 0xF33E, 0xF196, 0xEFE1, + 0xEE20, 0xEC54, 0xEA81, 0xE8A7, 0xE6CA, 0xE4EA, 0xE30B, 0xE12D, 0xDF54, + 0xDD80, 0xDBB4, 0xD9F2, 0xD83C, 0xD693, 0xD4FB, 0xD374, 0xD201, 0xD0A4, + 0xCF5F, 0xCE34, 0xCD24, 0xCC32, 0xCB60, 0xCAB0, 0xCA23, 0xC9BC, 0xC97D, + 0xC967, 0x0472, 0x045A, 0x0432, 0x03FC, 0x03B9, 0x036A, 0x0311, 0x02AE, + 0x0242, 0x01CF, 0x0155, 0x00D7, 0x0054, 0xFFCE, 0xFF47, 0xFEBE, 0xFE36, + 0xFDAF, 0xFD2B, 0xFCAA, 0xFC2E, 0xFBB8, 0xFB48, 0xFAE1, 0xFA83, 0xFA2F, + 0xF9E6, 0xF9A9, 0xF97B, 0xF955, 0xF933, 0xF914, 0xF8F9, 0xF8E1, 0xF8CC, + 0xF8BA, 0xF8AB, 0xF89E, 0xF894, 0xF88D, 0xF888, 0xF885, 0xF884, 0xF885, + 0xF887, 0xF88C, 0xF891, 0xF899, 0xF8A1, 0xF8AA, 0xF8B5, 0xF8C0, 0xF8CC, + 0xF8D8, 0xF8E5, 0xF8F2, 0xF8FF, 0xF90C, 0xF91A, 0xF926, 0xF933, 0xF93F, + 0xF94A, 0xF954, 0xF95E, 0xF966, 0xF96D, 0xF973, 0xF977, 0xF97A, 0xF97B, + 0xED8B, 0xFFFE, 0x0001, 0xC170, 0x1305, 0x1360, 0x13F2, 0x14B8, 0x15AD, + 0x16CE, 0x1816, 0x1981, 0x1B0C, 0x1CB2, 0x1E6F, 0x2040, 0x221F, 0x2409, + 0x25FB, 0x27F0, 0x29E3, 0x2BD1, 0x2DB7, 0x2F8F, 0x3156, 0x3307, 0x34A0, + 0x361B, 0x3774, 0x38A8, 0x39B3, 0x3A90, 0x3B3C, 0x3BC7, 0x3C44, 0x3CB4, + 0x3D18, 0x3D71, 0x3DBD, 0x3DFF, 0x3E37, 0x3E65, 0x3E89, 0x3EA4, 0x3EB7, + 0x3EC2, 0x3EC5, 0x3EC2, 0x3EB8, 0x3EA9, 0x3E93, 0x3E79, 0x3E5B, 0x3E38, + 0x3E12, 0x3DE9, 0x3DBD, 0x3D90, 0x3D61, 0x3D31, 0x3D01, 0x3CD0, 0x3CA0, + 0x3C71, 0x3C44, 0x3C18, 0x3BF0, 0x3BC9, 0x3BA7, 0xBB87, 0xBB6D, 0xBB58, + 0xBB48, 0xBB3E, 0xBB3B, 0x3230, 0x3252, 0x3288, 0x32D2, 0x332E, 0x339A, + 0x3414, 0x349C, 0x3530, 0x35CD, 0x3674, 0x3721, 0x37D4, 0x388C, 0x3946, + 0x3A01, 0x3ABB, 0x3B74, 0x3C2A, 0x3CDA, 0x3D84, 0x3E26, 0x3EBF, 0x3F4C, + 0x3FCE, 0x4041, 0x40A4, 0x40F7, 0x4137, 0x416B, 0x419A, 0x41C4, 0x41E9, + 0x420A, 0x4227, 0x4240, 0x4254, 0x4265, 0x4273, 0x427D, 0x4284, 0x4288, + 0x428A, 0x4288, 0x4285, 0x427F, 0x4277, 0x426D, 0x4262, 0x4255, 0x4247, + 0x4237, 0x4227, 0x4216, 0x4204, 0x41F2, 0x41E0, 0x41CE, 0x41BC, 0x41AB, + 0x419A, 0x418A, 0x417A, 0x416C, 0x415F, 0x3EAC, 0x3EB6, 0x3EBE, 0x3EC4, + 0x3EC8, 0x3EC9, 0x11B4, 0x1178, 0x1118, 0x1097, 0x0FF9, 0x0F42, 0x0E74, + 0x0D93, 0x0CA2, 0x0BA6, 0x0AA0, 0x0995, 0x0888, 0x077D, 0x0676, 0x0578, + 0x0485, 0x03A1, 0x02CF, 0x0213, 0x0171, 0x00EB, 0x0085, 0x0042, 0x0025, + 0x0034, 0x006F, 0x00DC, 0x017D, 0x024D, 0x0345, 0x0463, 0x05A3, 0x0705, + 0x0885, 0x0A21, 0x0BD8, 0x0DA7, 0x0F8C, 0x1184, 0x138F, 0x15A8, 0x17CE, + 0x1A00, 0x1C3A, 0x1E79, 0x20BE, 0x2305, 0x254C, 0x2791, 0x29D1, 0x2C0A, + 0x2E3B, 0x3061, 0x3279, 0x3482, 0x3679, 0x385C, 0x3A29, 0x3BDD, 0x3D79, + 0x3EF6, 0x4055, 0x4193, 0x42AE, 0xC3A2, 0xC470, 0xC513, 0xC58B, 0xC5D4, + 0xC5ED, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xE257, + 0xE254, 0xE24E, 0xE246, 0xE23A, 0xE22C, 0xE21A, 0xE204, 0xE1EA, 0xE1CC, + 0xE1A9, 0xE182, 0xE155, 0xE123, 0xE0EC, 0xE0AE, 0xE06B, 0xE021, 0xDFD0, + 0xDF79, 0xDF1A, 0xDEB4, 0xDE46, 0xDDD0, 0xDD52, 0xDCCC, 0xDC3C, 0xDBA4, + 0xDB03, 0xD9E0, 0xD7F3, 0xD57C, 0xD2BE, 0xCFFB, 0xCD77, 0xCB72, 0xCA2F, + 0xC9F0, 0xCA5B, 0xCAE5, 0xCB8D, 0xCC4F, 0xCD2B, 0xCE1E, 0xCF25, 0xD03E, + 0xD168, 0xD29F, 0xD3E3, 0xD52F, 0xD683, 0xD7DC, 0xD938, 0xDA94, 0xDBEF, + 0xDD46, 0xDE97, 0xDFDF, 0xE11D, 0xE24F, 0xE371, 0xE483, 0xE581, 0xE669, + 0xE73A, 0xE7F0, 0xE88B, 0xE906, 0xE962, 0xE99A, 0xE9AD, 0x002C, 0x00AD, + 0x017C, 0x0294, 0x03EF, 0x0587, 0x0756, 0x0956, 0x0B81, 0x0DD1, 0x1040, + 0x12C9, 0x1565, 0x180F, 0x1AC0, 0x1D73, 0x2021, 0x22C6, 0x255A, 0x27D8, + 0x2A3B, 0x2C7B, 0x2E94, 0x307F, 0x3236, 0x33B3, 0x34F2, 0x35EA, 0x3698, + 0x3710, 0x376D, 0x37B0, 0x37DB, 0x37EF, 0x37ED, 0x37D6, 0x37AB, 0x376D, + 0x371F, 0x36C0, 0x3652, 0x35D6, 0x354D, 0x34B9, 0x341B, 0x3374, 0x32C5, + 0x320F, 0x3153, 0x3094, 0x2FD1, 0x2F0C, 0x2E46, 0x2D80, 0x2CBC, 0x2BFB, + 0x2B3E, 0x2A86, 0x29D4, 0x2929, 0x2887, 0x27EF, 0x2762, 0x26E1, 0x266E, + 0x2609, 0x25B3, 0x256F, 0x253D, 0x251D, 0x2513, 0x000F, 0x003B, 0x0083, + 0x00E4, 0x015C, 0x01E9, 0x0288, 0x0339, 0x03F8, 0x04C3, 0x0599, 0x0678, + 0x075C, 0x0845, 0x0930, 0x0A1B, 0x0B04, 0x0BE9, 0x0CC7, 0x0D9D, 0x0E69, + 0x0F28, 0x0FD9, 0x1079, 0x1106, 0x117E, 0x11E0, 0x1228, 0x1255, 0x126E, + 0x127D, 0x1280, 0x127A, 0x126B, 0x1252, 0x1232, 0x1209, 0x11D9, 0x11A2, + 0x1165, 0x1122, 0x10D9, 0x108C, 0x103B, 0x0FE5, 0x0F8D, 0x0F31, 0x0ED4, + 0x0E74, 0x0E13, 0x0DB2, 0x0D50, 0x0CEF, 0x0C8F, 0x0C2F, 0x0BD2, 0x0B77, + 0x0B1F, 0x0ACA, 0x0A79, 0x0A2C, 0x09E4, 0x09A2, 0x0965, 0x092F, 0x0900, + 0x08D8, 0x08B8, 0x08A1, 0x0893, 0x088E, 0xF54C, 0xF557, 0xF569, 0xF581, + 0xF5A0, 0xF5C3, 0xF5EB, 0xF618, 0xF648, 0xF67C, 0xF6B2, 0xF6EB, 0xF725, + 0xF761, 0xF79E, 0xF7DB, 0xF818, 0xF854, 0xF88F, 0xF8C8, 0xF8FF, 0xF933, + 0xF964, 0xF992, 0xF9BB, 0xF9DF, 0xF9FF, 0xFA18, 0xFA2C, 0xFA3B, 0xFA49, + 0xFA54, 0xFA5E, 0xFA67, 0xFA6D, 0xFA73, 0xFA77, 0xFA79, 0xFA7B, 0xFA7B, + 0xFA7A, 0xFA78, 0xFA75, 0xFA72, 0xFA6D, 0xFA68, 0xFA62, 0xFA5B, 0xFA54, + 0xFA4D, 0xFA45, 0xFA3C, 0xFA34, 0xFA2B, 0xFA22, 0xFA1A, 0xFA11, 0xFA08, + 0xFA00, 0xF9F8, 0xF9F0, 0xF9E8, 0xF9E1, 0xF9DB, 0xF9D5, 0xF9D0, 0xF9CC, + 0xF9C8, 0xF9C6, 0xF9C4, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFF5A, 0xFDA5, 0xFB3A, 0xF876, 0xF5B1, 0xF347, 0xF192, + 0xF0EC, 0xF122, 0xF1BA, 0xF2A4, 0xF3D0, 0xF530, 0xF6B2, 0xF848, 0xF9E2, + 0xFB71, 0xFCE4, 0xFE2D, 0xFF3B, 0xFFFF, 0x0081, 0x00D6, 0x0104, 0x0111, + 0x0106, 0x00E7, 0x00BB, 0x0088, 0x0056, 0x002A, 0x000B, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xC5F0, 0xC601, 0xC5F3, 0xC5A7, + 0xC4FA, 0xC3CA, 0xC1F7, 0xBF5E, 0xBBFF, 0xB804, 0xB38B, 0xAEB5, 0xA9A0, + 0xA46B, 0x9F36, 0x9A20, 0x9547, 0x90CB, 0x8CCB, 0x8967, 0x86BC, 0x84D6, + 0x8398, 0x82EB, 0x82B7, 0x82E3, 0x8358, 0x83FD, 0x84BA, 0x8577, 0x861B, + 0x8690, 0x86BC, 0x002B, 0xFE78, 0xFC0D, 0xF944, 0xF675, 0xF3F8, 0xF225, + 0xF155, 0xF151, 0xF1A1, 0xF239, 0xF30D, 0xF40E, 0xF531, 0xF66A, 0xF7AB, + 0xF8E9, 0xFA16, 0xFB26, 0xFC0D, 0xFCBD, 0xFD31, 0xFD71, 0xFD89, 0xFD84, + 0xFD6D, 0xFD4F, 0xFD34, 0xFD29, 0xFD1A, 0xFCF6, 0xFCD2, 0xFCBD, 0xFCB8, + 0xFCB4, 0xFCB2, 0xFCB1, 0xFCB1, 0xFCB2, 0xFCB3, 0xFCB5, 0xFCB8, 0xFCBA, + 0xFCBB, 0xFCBD, 0xFCBD, 0xFCBA, 0xFCB3, 0xFCA8, 0xFC9C, 0xFC90, 0xFC85, + 0xFC7D, 0xFC7A, 0xFC7E, 0xFC89, 0xFC9E, 0xFCBD, 0xFCED, 0xFD2F, 0xFD7F, + 0xFDD9, 0xFE3A, 0xFE9E, 0xFF00, 0xFF5E, 0xFFB4, 0xFFFD, 0x0036, 0x005B, + 0x0068, 0x0006, 0x0014, 0x0026, 0x0036, 0x0040, 0x003D, 0x002A, 0xFFFF, + 0xFFC2, 0xFF77, 0xFF23, 0xFEC6, 0xFE64, 0xFDFE, 0xFD96, 0xFD2F, 0xFCCB, + 0xFC6C, 0xFC15, 0xFBC7, 0xFB84, 0xFB52, 0xFB30, 0xFB1D, 0xFB14, 0xFB13, + 0xFB16, 0xFB1A, 0xFB1C, 0xFB22, 0xFB34, 0xFB54, 0xFB84, 0xFBC0, 0xFC01, + 0xFC47, 0xFC90, 0xFCDB, 0xFD25, 0xFD6F, 0xFDB7, 0xFDFA, 0xFE39, 0xFE70, + 0xFEA0, 0xFEC7, 0xFEE3, 0xFEF5, 0xFEFF, 0xFF02, 0xFEFF, 0xFEF9, 0xFEEF, + 0xFEE4, 0xFED9, 0xFED0, 0xFEC9, 0xFEC7, 0xCD35, 0xCAC2, 0xC745, 0xC33B, + 0xBF21, 0xBB74, 0xB8AF, 0xB751, 0xB711, 0xB749, 0xB7E6, 0xB8D6, 0xBA04, + 0xBB5F, 0xBCD4, 0xBE4F, 0xBFBE, 0xC10F, 0xC22D, 0xC307, 0xC38A, 0xC38B, + 0xC308, 0xC22A, 0xC117, 0xBFF8, 0xBEF5, 0xBE35, 0xBDE1, 0xBE24, 0xBF0A, + 0xC092, 0xC2B9, 0xC541, 0xC7E7, 0xCAA7, 0xCD7B, 0xD05E, 0xD34A, 0xD63A, + 0xD928, 0xDC10, 0xDEEB, 0xE1B4, 0xE466, 0xE6FC, 0xE981, 0xEC02, 0xEE7D, + 0xF0EF, 0xF355, 0xF5AD, 0xF7F2, 0xFA23, 0xFC3D, 0xFE3C, 0x001E, 0x01E0, + 0x0394, 0x0549, 0x06F9, 0x089D, 0x0A30, 0x0BAB, 0x0D08, 0x0E40, 0x0F4E, + 0x102A, 0x10D0, 0x1137, 0x115B, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x3CE6, 0x3E1E, 0x3FD9, 0x41D7, 0x43D8, 0x459C, 0x46E4, 0x4770, + 0x4793, 0x47C1, 0x47ED, 0x480B, 0x480F, 0x47EB, 0x4793, 0x46FA, 0x4614, + 0x44D4, 0x432D, 0x4113, 0x3E79, 0x3A5E, 0x343D, 0x2CC6, 0x24AC, 0x1C9C, + 0x1549, 0x0F62, 0x0B97, 0x0CE3, 0x132E, 0x1A8E, 0x1F1A, 0x20D2, 0x2255, + 0x23A7, 0x24CC, 0x25CA, 0x26A4, 0x275E, 0x27FD, 0x2885, 0x28FB, 0x2963, + 0x29C2, 0x2A1A, 0x2A4E, 0x2A43, 0x2A06, 0x29A4, 0x292C, 0x28A9, 0x282A, + 0x27BA, 0x2769, 0x2742, 0x2752, 0x27A8, 0x2852, 0x294B, 0x2A82, 0x2BE8, + 0x2D6C, 0x2EFF, 0x3090, 0x3210, 0x336E, 0x349A, 0x3585, 0x361D, 0x3653, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xD6C5, 0xD560, + 0xD35A, 0xD0F0, 0xCE60, 0xCBE8, 0xC9C5, 0xC836, 0xC709, 0xC5E6, 0xC4CF, + 0xC3C6, 0xC2CE, 0xC1E9, 0xC119, 0xC060, 0xBFC0, 0xBF3C, 0xBED7, 0xBE91, + 0xBE6F, 0xBE8E, 0xBF01, 0xBFB7, 0xC09E, 0xC1A5, 0xC2BA, 0xC3CC, 0xC4C9, + 0xC5A1, 0xC641, 0xC698, 0xC695, 0xC621, 0xC540, 0xC40B, 0xC296, 0xC0F9, + 0xBF4B, 0xBDA3, 0xBC17, 0xBABE, 0xB9B0, 0xB901, 0xB8CB, 0xB923, 0xBA29, + 0xBBD8, 0xBE13, 0xC0BB, 0xC3B1, 0xC6D6, 0xCA0C, 0xCD33, 0xD02E, 0xD2DE, + 0xD524, 0xD6E1, 0xD833, 0xD951, 0xDA3F, 0xDB01, 0xDB9B, 0xDC12, 0xDC6C, + 0xDCAB, 0xDCD4, 0xDCED, 0xDCF9, 0xDCFD, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xBF5E, 0x0068, 0xFFF4, 0xFFD4, 0xFFA7, 0xFF72, 0xFF3B, 0xFF08, 0xFEE0, + 0xFEC7, 0xFEBA, 0xFEB1, 0xFEAC, 0xFEAA, 0xFEAA, 0xFEAD, 0xFEB0, 0xFEB5, + 0xFEBA, 0xFEBF, 0xFEC3, 0xFEC6, 0xFEC7, 0x8C33, 0x8E99, 0x921E, 0x9660, + 0x9AFB, 0x9F8D, 0xA3B1, 0xA705, 0xA9BE, 0xAC56, 0xAED1, 0xB136, 0xB387, + 0xB5CA, 0xB803, 0xBA37, 0xBC6B, 0xBEA3, 0xC0E4, 0xC333, 0xC593, 0xC830, + 0xCB14, 0xCE18, 0xD113, 0xD3DD, 0xD64D, 0xD83B, 0xD97F, 0xD909, 0xD6A5, + 0xD373, 0xD094, 0xCE4A, 0xCC14, 0xC9EA, 0xC7C5, 0xC59C, 0xC368, 0xC120, + 0xBEBD, 0xBC37, 0xB946, 0xB5F5, 0xB2B6, 0xAFFC, 0xADAA, 0xAB5B, 0xA90F, + 0xA6C6, 0xA482, 0xA244, 0xA00C, 0x9DDD, 0x9BB6, 0x9999, 0x9786, 0x9580, + 0x9366, 0x9121, 0x8EC1, 0x8C54, 0x89EA, 0x8790, 0x8557, 0x834D, 0x8180, + 0x8001, 0x7EDC, 0x7E21, 0x7DE0, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, + 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x1BF7, 0x1CF1, 0x1E56, 0x1FF5, 0x219B, 0x2317, 0x2439, 0x24CE, + 0x24E3, 0x24AF, 0x243F, 0x23A6, 0x22F1, 0x2230, 0x2173, 0x20CA, 0x2043, + 0x1FEF, 0x1FDC, 0x201B, 0x20BB, 0x220F, 0x2439, 0x2700, 0x2A2A, 0x2D7E, + 0x30C2, 0x33BE, 0x3638, 0x3816, 0x3981, 0x3AA1, 0x3B9F, 0x3C9D, 0x3D9F, + 0x3EA1, 0x3FA1, 0x409D, 0x4191, 0x427C, 0x435B, 0x442A, 0x44E8, 0x4592, + 0x4625, 0x469F, 0x471F, 0x47BC, 0x4866, 0x490C, 0x499F, 0x4A0E, 0x4A49, + 0x4A41, 0x49E5, 0x4924, 0x47F0, 0x4637, 0x43AC, 0x402F, 0x3BF2, 0x3728, + 0x3206, 0x2CBE, 0x2784, 0x228B, 0x1E07, 0x1A2A, 0x1728, 0x1534, 0x1482, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, + 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, + 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, + 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xC360, 0xC388, 0xC3CA, 0xC427, 0xC49D, + 0xC52C, 0xC5D4, 0xC695, 0xC76D, 0xC859, 0xC957, 0xCA62, 0xCB77, 0xCC94, + 0xCDB4, 0xCED4, 0xCFF2, 0xD109, 0xD216, 0xD317, 0xD407, 0xD4E3, 0xD5AC, + 0xD665, 0xD70F, 0xD7AF, 0xD846, 0xD8D8, 0xD966, 0xDA6D, 0xDBB6, 0xDC3B, + 0xDAF4, 0xD825, 0xD4D5, 0xD120, 0xCD24, 0xC8FE, 0xC4CA, 0xC0A5, 0xBCAC, + 0xB8FD, 0xB5B3, 0xB2ED, 0xB0C6, 0xAF5C, 0xAED0, 0xAF1A, 0xB017, 0xB1A3, + 0xB39C, 0xB5DD, 0xB845, 0xBAAF, 0xBCF8, 0xBEFE, 0xC09D, 0xC1B1, 0xC25B, + 0xC2D7, 0xC329, 0xC357, 0xC369, 0xC362, 0xC349, 0xC325, 0xC2F9, 0xC2CE, + 0xC2A7, 0xC28C, 0xC282, +}; + diff --git a/autogen/lua_definitions/constants.lua b/autogen/lua_definitions/constants.lua index 887e8a12b..8471cc28a 100644 --- a/autogen/lua_definitions/constants.lua +++ b/autogen/lua_definitions/constants.lua @@ -4071,6 +4071,635 @@ HUD_DISPLAY_NONE = 0x0000 --- @type HUDDisplayFlag HUD_DISPLAY_DEFAULT = HUD_DISPLAY_FLAG_LIVES | HUD_DISPLAY_FLAG_COIN_COUNT | HUD_DISPLAY_FLAG_STAR_COUNT | HUD_DISPLAY_FLAG_CAMERA_AND_POWER | HUD_DISPLAY_FLAG_CAMERA | HUD_DISPLAY_FLAG_POWER | HUD_DISPLAY_FLAG_KEYS | HUD_DISPLAY_FLAG_UNKNOWN_0020 +--- @class CharacterAnimID + +--- @type CharacterAnimID +CHAR_ANIM_SLOW_LEDGE_GRAB = 0 + +--- @type CharacterAnimID +CHAR_ANIM_FALL_OVER_BACKWARDS = 1 + +--- @type CharacterAnimID +CHAR_ANIM_BACKWARD_AIR_KB = 2 + +--- @type CharacterAnimID +CHAR_ANIM_DYING_ON_BACK = 3 + +--- @type CharacterAnimID +CHAR_ANIM_BACKFLIP = 4 + +--- @type CharacterAnimID +CHAR_ANIM_CLIMB_UP_POLE = 5 + +--- @type CharacterAnimID +CHAR_ANIM_GRAB_POLE_SHORT = 6 + +--- @type CharacterAnimID +CHAR_ANIM_GRAB_POLE_SWING_PART1 = 7 + +--- @type CharacterAnimID +CHAR_ANIM_GRAB_POLE_SWING_PART2 = 8 + +--- @type CharacterAnimID +CHAR_ANIM_HANDSTAND_IDLE = 9 + +--- @type CharacterAnimID +CHAR_ANIM_HANDSTAND_JUMP = 10 + +--- @type CharacterAnimID +CHAR_ANIM_START_HANDSTAND = 11 + +--- @type CharacterAnimID +CHAR_ANIM_RETURN_FROM_HANDSTAND = 12 + +--- @type CharacterAnimID +CHAR_ANIM_IDLE_ON_POLE = 13 + +--- @type CharacterAnimID +CHAR_ANIM_A_POSE = 14 + +--- @type CharacterAnimID +CHAR_ANIM_SKID_ON_GROUND = 15 + +--- @type CharacterAnimID +CHAR_ANIM_STOP_SKID = 16 + +--- @type CharacterAnimID +CHAR_ANIM_CROUCH_FROM_FAST_LONGJUMP = 17 + +--- @type CharacterAnimID +CHAR_ANIM_CROUCH_FROM_SLOW_LONGJUMP = 18 + +--- @type CharacterAnimID +CHAR_ANIM_FAST_LONGJUMP = 19 + +--- @type CharacterAnimID +CHAR_ANIM_SLOW_LONGJUMP = 20 + +--- @type CharacterAnimID +CHAR_ANIM_AIRBORNE_ON_STOMACH = 21 + +--- @type CharacterAnimID +CHAR_ANIM_WALK_WITH_LIGHT_OBJ = 22 + +--- @type CharacterAnimID +CHAR_ANIM_RUN_WITH_LIGHT_OBJ = 23 + +--- @type CharacterAnimID +CHAR_ANIM_SLOW_WALK_WITH_LIGHT_OBJ = 24 + +--- @type CharacterAnimID +CHAR_ANIM_SHIVERING_WARMING_HAND = 25 + +--- @type CharacterAnimID +CHAR_ANIM_SHIVERING_RETURN_TO_IDLE = 26 + +--- @type CharacterAnimID +CHAR_ANIM_SHIVERING = 27 + +--- @type CharacterAnimID +CHAR_ANIM_CLIMB_DOWN_LEDGE = 28 + +--- @type CharacterAnimID +CHAR_ANIM_CREDITS_WAVING = 29 + +--- @type CharacterAnimID +CHAR_ANIM_CREDITS_LOOK_UP = 30 + +--- @type CharacterAnimID +CHAR_ANIM_CREDITS_RETURN_FROM_LOOK_UP = 31 + +--- @type CharacterAnimID +CHAR_ANIM_CREDITS_RAISE_HAND = 32 + +--- @type CharacterAnimID +CHAR_ANIM_CREDITS_LOWER_HAND = 33 + +--- @type CharacterAnimID +CHAR_ANIM_CREDITS_TAKE_OFF_CAP = 34 + +--- @type CharacterAnimID +CHAR_ANIM_CREDITS_START_WALK_LOOK_UP = 35 + +--- @type CharacterAnimID +CHAR_ANIM_CREDITS_LOOK_BACK_THEN_RUN = 36 + +--- @type CharacterAnimID +CHAR_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN = 37 + +--- @type CharacterAnimID +CHAR_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF = 38 + +--- @type CharacterAnimID +CHAR_ANIM_CREDITS_PEACE_SIGN = 39 + +--- @type CharacterAnimID +CHAR_ANIM_STAND_UP_FROM_LAVA_BOOST = 40 + +--- @type CharacterAnimID +CHAR_ANIM_FIRE_LAVA_BURN = 41 + +--- @type CharacterAnimID +CHAR_ANIM_WING_CAP_FLY = 42 + +--- @type CharacterAnimID +CHAR_ANIM_HANG_ON_OWL = 43 + +--- @type CharacterAnimID +CHAR_ANIM_LAND_ON_STOMACH = 44 + +--- @type CharacterAnimID +CHAR_ANIM_AIR_FORWARD_KB = 45 + +--- @type CharacterAnimID +CHAR_ANIM_DYING_ON_STOMACH = 46 + +--- @type CharacterAnimID +CHAR_ANIM_SUFFOCATING = 47 + +--- @type CharacterAnimID +CHAR_ANIM_COUGHING = 48 + +--- @type CharacterAnimID +CHAR_ANIM_THROW_CATCH_KEY = 49 + +--- @type CharacterAnimID +CHAR_ANIM_DYING_FALL_OVER = 50 + +--- @type CharacterAnimID +CHAR_ANIM_IDLE_ON_LEDGE = 51 + +--- @type CharacterAnimID +CHAR_ANIM_FAST_LEDGE_GRAB = 52 + +--- @type CharacterAnimID +CHAR_ANIM_HANG_ON_CEILING = 53 + +--- @type CharacterAnimID +CHAR_ANIM_PUT_CAP_ON = 54 + +--- @type CharacterAnimID +CHAR_ANIM_TAKE_CAP_OFF_THEN_ON = 55 + +--- @type CharacterAnimID +CHAR_ANIM_QUICKLY_PUT_CAP_ON = 56 + +--- @type CharacterAnimID +CHAR_ANIM_HEAD_STUCK_IN_GROUND = 57 + +--- @type CharacterAnimID +CHAR_ANIM_GROUND_POUND_LANDING = 58 + +--- @type CharacterAnimID +CHAR_ANIM_TRIPLE_JUMP_GROUND_POUND = 59 + +--- @type CharacterAnimID +CHAR_ANIM_START_GROUND_POUND = 60 + +--- @type CharacterAnimID +CHAR_ANIM_GROUND_POUND = 61 + +--- @type CharacterAnimID +CHAR_ANIM_BOTTOM_STUCK_IN_GROUND = 62 + +--- @type CharacterAnimID +CHAR_ANIM_IDLE_WITH_LIGHT_OBJ = 63 + +--- @type CharacterAnimID +CHAR_ANIM_JUMP_LAND_WITH_LIGHT_OBJ = 64 + +--- @type CharacterAnimID +CHAR_ANIM_JUMP_WITH_LIGHT_OBJ = 65 + +--- @type CharacterAnimID +CHAR_ANIM_FALL_LAND_WITH_LIGHT_OBJ = 66 + +--- @type CharacterAnimID +CHAR_ANIM_FALL_WITH_LIGHT_OBJ = 67 + +--- @type CharacterAnimID +CHAR_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ = 68 + +--- @type CharacterAnimID +CHAR_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ = 69 + +--- @type CharacterAnimID +CHAR_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ = 70 + +--- @type CharacterAnimID +CHAR_ANIM_RIDING_SHELL = 71 + +--- @type CharacterAnimID +CHAR_ANIM_WALKING = 72 + +--- @type CharacterAnimID +CHAR_ANIM_FORWARD_FLIP = 73 + +--- @type CharacterAnimID +CHAR_ANIM_JUMP_RIDING_SHELL = 74 + +--- @type CharacterAnimID +CHAR_ANIM_LAND_FROM_DOUBLE_JUMP = 75 + +--- @type CharacterAnimID +CHAR_ANIM_DOUBLE_JUMP_FALL = 76 + +--- @type CharacterAnimID +CHAR_ANIM_SINGLE_JUMP = 77 + +--- @type CharacterAnimID +CHAR_ANIM_LAND_FROM_SINGLE_JUMP = 78 + +--- @type CharacterAnimID +CHAR_ANIM_AIR_KICK = 79 + +--- @type CharacterAnimID +CHAR_ANIM_DOUBLE_JUMP_RISE = 80 + +--- @type CharacterAnimID +CHAR_ANIM_START_FORWARD_SPINNING = 81 + +--- @type CharacterAnimID +CHAR_ANIM_THROW_LIGHT_OBJECT = 82 + +--- @type CharacterAnimID +CHAR_ANIM_FALL_FROM_SLIDE_KICK = 83 + +--- @type CharacterAnimID +CHAR_ANIM_BEND_KNESS_RIDING_SHELL = 84 + +--- @type CharacterAnimID +CHAR_ANIM_LEGS_STUCK_IN_GROUND = 85 + +--- @type CharacterAnimID +CHAR_ANIM_GENERAL_FALL = 86 + +--- @type CharacterAnimID +CHAR_ANIM_GENERAL_LAND = 87 + +--- @type CharacterAnimID +CHAR_ANIM_BEING_GRABBED = 88 + +--- @type CharacterAnimID +CHAR_ANIM_GRAB_HEAVY_OBJECT = 89 + +--- @type CharacterAnimID +CHAR_ANIM_SLOW_LAND_FROM_DIVE = 90 + +--- @type CharacterAnimID +CHAR_ANIM_FLY_FROM_CANNON = 91 + +--- @type CharacterAnimID +CHAR_ANIM_MOVE_ON_WIRE_NET_RIGHT = 92 + +--- @type CharacterAnimID +CHAR_ANIM_MOVE_ON_WIRE_NET_LEFT = 93 + +--- @type CharacterAnimID +CHAR_ANIM_MISSING_CAP = 94 + +--- @type CharacterAnimID +CHAR_ANIM_PULL_DOOR_WALK_IN = 95 + +--- @type CharacterAnimID +CHAR_ANIM_PUSH_DOOR_WALK_IN = 96 + +--- @type CharacterAnimID +CHAR_ANIM_UNLOCK_DOOR = 97 + +--- @type CharacterAnimID +CHAR_ANIM_START_REACH_POCKET = 98 + +--- @type CharacterAnimID +CHAR_ANIM_REACH_POCKET = 99 + +--- @type CharacterAnimID +CHAR_ANIM_STOP_REACH_POCKET = 100 + +--- @type CharacterAnimID +CHAR_ANIM_GROUND_THROW = 101 + +--- @type CharacterAnimID +CHAR_ANIM_GROUND_KICK = 102 + +--- @type CharacterAnimID +CHAR_ANIM_FIRST_PUNCH = 103 + +--- @type CharacterAnimID +CHAR_ANIM_SECOND_PUNCH = 104 + +--- @type CharacterAnimID +CHAR_ANIM_FIRST_PUNCH_FAST = 105 + +--- @type CharacterAnimID +CHAR_ANIM_SECOND_PUNCH_FAST = 106 + +--- @type CharacterAnimID +CHAR_ANIM_PICK_UP_LIGHT_OBJ = 107 + +--- @type CharacterAnimID +CHAR_ANIM_PUSHING = 108 + +--- @type CharacterAnimID +CHAR_ANIM_START_RIDING_SHELL = 109 + +--- @type CharacterAnimID +CHAR_ANIM_PLACE_LIGHT_OBJ = 110 + +--- @type CharacterAnimID +CHAR_ANIM_FORWARD_SPINNING = 111 + +--- @type CharacterAnimID +CHAR_ANIM_BACKWARD_SPINNING = 112 + +--- @type CharacterAnimID +CHAR_ANIM_BREAKDANCE = 113 + +--- @type CharacterAnimID +CHAR_ANIM_RUNNING = 114 + +--- @type CharacterAnimID +CHAR_ANIM_RUNNING_UNUSED = 115 + +--- @type CharacterAnimID +CHAR_ANIM_SOFT_BACK_KB = 116 + +--- @type CharacterAnimID +CHAR_ANIM_SOFT_FRONT_KB = 117 + +--- @type CharacterAnimID +CHAR_ANIM_DYING_IN_QUICKSAND = 118 + +--- @type CharacterAnimID +CHAR_ANIM_IDLE_IN_QUICKSAND = 119 + +--- @type CharacterAnimID +CHAR_ANIM_MOVE_IN_QUICKSAND = 120 + +--- @type CharacterAnimID +CHAR_ANIM_ELECTROCUTION = 121 + +--- @type CharacterAnimID +CHAR_ANIM_SHOCKED = 122 + +--- @type CharacterAnimID +CHAR_ANIM_BACKWARD_KB = 123 + +--- @type CharacterAnimID +CHAR_ANIM_FORWARD_KB = 124 + +--- @type CharacterAnimID +CHAR_ANIM_IDLE_HEAVY_OBJ = 125 + +--- @type CharacterAnimID +CHAR_ANIM_STAND_AGAINST_WALL = 126 + +--- @type CharacterAnimID +CHAR_ANIM_SIDESTEP_LEFT = 127 + +--- @type CharacterAnimID +CHAR_ANIM_SIDESTEP_RIGHT = 128 + +--- @type CharacterAnimID +CHAR_ANIM_START_SLEEP_IDLE = 129 + +--- @type CharacterAnimID +CHAR_ANIM_START_SLEEP_SCRATCH = 130 + +--- @type CharacterAnimID +CHAR_ANIM_START_SLEEP_YAWN = 131 + +--- @type CharacterAnimID +CHAR_ANIM_START_SLEEP_SITTING = 132 + +--- @type CharacterAnimID +CHAR_ANIM_SLEEP_IDLE = 133 + +--- @type CharacterAnimID +CHAR_ANIM_SLEEP_START_LYING = 134 + +--- @type CharacterAnimID +CHAR_ANIM_SLEEP_LYING = 135 + +--- @type CharacterAnimID +CHAR_ANIM_DIVE = 136 + +--- @type CharacterAnimID +CHAR_ANIM_SLIDE_DIVE = 137 + +--- @type CharacterAnimID +CHAR_ANIM_GROUND_BONK = 138 + +--- @type CharacterAnimID +CHAR_ANIM_STOP_SLIDE_LIGHT_OBJ = 139 + +--- @type CharacterAnimID +CHAR_ANIM_SLIDE_KICK = 140 + +--- @type CharacterAnimID +CHAR_ANIM_CROUCH_FROM_SLIDE_KICK = 141 + +--- @type CharacterAnimID +CHAR_ANIM_SLIDE_MOTIONLESS = 142 + +--- @type CharacterAnimID +CHAR_ANIM_STOP_SLIDE = 143 + +--- @type CharacterAnimID +CHAR_ANIM_FALL_FROM_SLIDE = 144 + +--- @type CharacterAnimID +CHAR_ANIM_SLIDE = 145 + +--- @type CharacterAnimID +CHAR_ANIM_TIPTOE = 146 + +--- @type CharacterAnimID +CHAR_ANIM_TWIRL_LAND = 147 + +--- @type CharacterAnimID +CHAR_ANIM_TWIRL = 148 + +--- @type CharacterAnimID +CHAR_ANIM_START_TWIRL = 149 + +--- @type CharacterAnimID +CHAR_ANIM_STOP_CROUCHING = 150 + +--- @type CharacterAnimID +CHAR_ANIM_START_CROUCHING = 151 + +--- @type CharacterAnimID +CHAR_ANIM_CROUCHING = 152 + +--- @type CharacterAnimID +CHAR_ANIM_CRAWLING = 153 + +--- @type CharacterAnimID +CHAR_ANIM_STOP_CRAWLING = 154 + +--- @type CharacterAnimID +CHAR_ANIM_START_CRAWLING = 155 + +--- @type CharacterAnimID +CHAR_ANIM_SUMMON_STAR = 156 + +--- @type CharacterAnimID +CHAR_ANIM_RETURN_STAR_APPROACH_DOOR = 157 + +--- @type CharacterAnimID +CHAR_ANIM_BACKWARDS_WATER_KB = 158 + +--- @type CharacterAnimID +CHAR_ANIM_SWIM_WITH_OBJ_PART1 = 159 + +--- @type CharacterAnimID +CHAR_ANIM_SWIM_WITH_OBJ_PART2 = 160 + +--- @type CharacterAnimID +CHAR_ANIM_FLUTTERKICK_WITH_OBJ = 161 + +--- @type CharacterAnimID +CHAR_ANIM_WATER_ACTION_END_WITH_OBJ = 162 + +--- @type CharacterAnimID +CHAR_ANIM_STOP_GRAB_OBJ_WATER = 163 + +--- @type CharacterAnimID +CHAR_ANIM_WATER_IDLE_WITH_OBJ = 164 + +--- @type CharacterAnimID +CHAR_ANIM_DROWNING_PART1 = 165 + +--- @type CharacterAnimID +CHAR_ANIM_DROWNING_PART2 = 166 + +--- @type CharacterAnimID +CHAR_ANIM_WATER_DYING = 167 + +--- @type CharacterAnimID +CHAR_ANIM_WATER_FORWARD_KB = 168 + +--- @type CharacterAnimID +CHAR_ANIM_FALL_FROM_WATER = 169 + +--- @type CharacterAnimID +CHAR_ANIM_SWIM_PART1 = 170 + +--- @type CharacterAnimID +CHAR_ANIM_SWIM_PART2 = 171 + +--- @type CharacterAnimID +CHAR_ANIM_FLUTTERKICK = 172 + +--- @type CharacterAnimID +CHAR_ANIM_WATER_ACTION_END = 173 + +--- @type CharacterAnimID +CHAR_ANIM_WATER_PICK_UP_OBJ = 174 + +--- @type CharacterAnimID +CHAR_ANIM_WATER_GRAB_OBJ_PART2 = 175 + +--- @type CharacterAnimID +CHAR_ANIM_WATER_GRAB_OBJ_PART1 = 176 + +--- @type CharacterAnimID +CHAR_ANIM_WATER_THROW_OBJ = 177 + +--- @type CharacterAnimID +CHAR_ANIM_WATER_IDLE = 178 + +--- @type CharacterAnimID +CHAR_ANIM_WATER_STAR_DANCE = 179 + +--- @type CharacterAnimID +CHAR_ANIM_RETURN_FROM_WATER_STAR_DANCE = 180 + +--- @type CharacterAnimID +CHAR_ANIM_GRAB_BOWSER = 181 + +--- @type CharacterAnimID +CHAR_ANIM_SWINGING_BOWSER = 182 + +--- @type CharacterAnimID +CHAR_ANIM_RELEASE_BOWSER = 183 + +--- @type CharacterAnimID +CHAR_ANIM_HOLDING_BOWSER = 184 + +--- @type CharacterAnimID +CHAR_ANIM_HEAVY_THROW = 185 + +--- @type CharacterAnimID +CHAR_ANIM_WALK_PANTING = 186 + +--- @type CharacterAnimID +CHAR_ANIM_WALK_WITH_HEAVY_OBJ = 187 + +--- @type CharacterAnimID +CHAR_ANIM_TURNING_PART1 = 188 + +--- @type CharacterAnimID +CHAR_ANIM_TURNING_PART2 = 189 + +--- @type CharacterAnimID +CHAR_ANIM_SLIDEFLIP_LAND = 190 + +--- @type CharacterAnimID +CHAR_ANIM_SLIDEFLIP = 191 + +--- @type CharacterAnimID +CHAR_ANIM_TRIPLE_JUMP_LAND = 192 + +--- @type CharacterAnimID +CHAR_ANIM_TRIPLE_JUMP = 193 + +--- @type CharacterAnimID +CHAR_ANIM_FIRST_PERSON = 194 + +--- @type CharacterAnimID +CHAR_ANIM_IDLE_HEAD_LEFT = 195 + +--- @type CharacterAnimID +CHAR_ANIM_IDLE_HEAD_RIGHT = 196 + +--- @type CharacterAnimID +CHAR_ANIM_IDLE_HEAD_CENTER = 197 + +--- @type CharacterAnimID +CHAR_ANIM_HANDSTAND_LEFT = 198 + +--- @type CharacterAnimID +CHAR_ANIM_HANDSTAND_RIGHT = 199 + +--- @type CharacterAnimID +CHAR_ANIM_WAKE_FROM_SLEEP = 200 + +--- @type CharacterAnimID +CHAR_ANIM_WAKE_FROM_LYING = 201 + +--- @type CharacterAnimID +CHAR_ANIM_START_TIPTOE = 202 + +--- @type CharacterAnimID +CHAR_ANIM_SLIDEJUMP = 203 + +--- @type CharacterAnimID +CHAR_ANIM_START_WALLKICK = 204 + +--- @type CharacterAnimID +CHAR_ANIM_STAR_DANCE = 205 + +--- @type CharacterAnimID +CHAR_ANIM_RETURN_FROM_STAR_DANCE = 206 + +--- @type CharacterAnimID +CHAR_ANIM_FORWARD_SPINNING_FLIP = 207 + +--- @type CharacterAnimID +CHAR_ANIM_TRIPLE_JUMP_FLY = 208 + --- @class MarioAnimID --- @type MarioAnimID @@ -4700,6 +5329,12 @@ MARIO_ANIM_FORWARD_SPINNING_FLIP = 207 --- @type MarioAnimID MARIO_ANIM_TRIPLE_JUMP_FLY = 208 +--- @type MarioAnimID +WALUIGI_ANIM_WALKING = 209 + +--- @type MarioAnimID +WALUIGI_ANIM_RUNNING = 210 + --- @class MarioCapGSCId --- @type MarioCapGSCId diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index 7e9f255aa..0690ff2a0 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -4445,6 +4445,21 @@ function set_anim_to_frame(m, animFrame) -- ... end +--- @param m MarioState +--- @param targetAnimID integer +--- @param accel integer +--- @return integer +function set_character_anim_with_accel(m, targetAnimID, accel) + -- ... +end + +--- @param m MarioState +--- @param targetAnimID integer +--- @return integer +function set_character_animation(m, targetAnimID) + -- ... +end + --- @param m MarioState --- @return integer function set_jump_from_landing(m) diff --git a/autogen/lua_definitions/structs.lua b/autogen/lua_definitions/structs.lua index 960c61df5..6af99336c 100644 --- a/autogen/lua_definitions/structs.lua +++ b/autogen/lua_definitions/structs.lua @@ -267,10 +267,219 @@ --- @field public yaw integer --- @class Character +--- @field public animAPose integer +--- @field public animAirForwardKb integer +--- @field public animAirKick integer +--- @field public animAirborneOnStomach integer +--- @field public animBackflip integer +--- @field public animBackwardAirKb integer +--- @field public animBackwardKb integer +--- @field public animBackwardSpinning integer +--- @field public animBackwardsWaterKb integer +--- @field public animBeingGrabbed integer +--- @field public animBendKnessRidingShell integer +--- @field public animBottomStuckInGround integer +--- @field public animBreakdance integer +--- @field public animClimbDownLedge integer +--- @field public animClimbUpPole integer +--- @field public animCoughing integer +--- @field public animCrawling integer +--- @field public animCreditsLookBackThenRun integer +--- @field public animCreditsLookUp integer +--- @field public animCreditsLowerHand integer +--- @field public animCreditsPeaceSign integer +--- @field public animCreditsRaiseHand integer +--- @field public animCreditsReturnFromLookUp integer +--- @field public animCreditsStartWalkLookUp integer +--- @field public animCreditsTakeOffCap integer +--- @field public animCreditsWaving integer +--- @field public animCrouchFromFastLongjump integer +--- @field public animCrouchFromSlideKick integer +--- @field public animCrouchFromSlowLongjump integer +--- @field public animCrouching integer +--- @field public animDive integer +--- @field public animDoubleJumpFall integer +--- @field public animDoubleJumpRise integer +--- @field public animDrowningPart1 integer +--- @field public animDrowningPart2 integer +--- @field public animDyingFallOver integer +--- @field public animDyingInQuicksand integer +--- @field public animDyingOnBack integer +--- @field public animDyingOnStomach integer +--- @field public animElectrocution integer +--- @field public animFallFromSlide integer +--- @field public animFallFromSlideKick integer +--- @field public animFallFromSlidingWithLightObj integer +--- @field public animFallFromWater integer +--- @field public animFallLandWithLightObj integer +--- @field public animFallOverBackwards integer +--- @field public animFallWithLightObj integer +--- @field public animFastLedgeGrab integer +--- @field public animFastLongjump integer +--- @field public animFinalBowserRaiseHandSpin integer +--- @field public animFinalBowserWingCapTakeOff integer +--- @field public animFireLavaBurn integer +--- @field public animFirstPerson integer +--- @field public animFirstPunch integer +--- @field public animFirstPunchFast integer +--- @field public animFlutterkick integer +--- @field public animFlutterkickWithObj integer +--- @field public animFlyFromCannon integer +--- @field public animForwardFlip integer +--- @field public animForwardKb integer +--- @field public animForwardSpinning integer +--- @field public animForwardSpinningFlip integer +--- @field public animGeneralFall integer +--- @field public animGeneralLand integer +--- @field public animGrabBowser integer +--- @field public animGrabHeavyObject integer +--- @field public animGrabPoleShort integer +--- @field public animGrabPoleSwingPart1 integer +--- @field public animGrabPoleSwingPart2 integer +--- @field public animGroundBonk integer +--- @field public animGroundKick integer +--- @field public animGroundPound integer +--- @field public animGroundPoundLanding integer +--- @field public animGroundThrow integer +--- @field public animHandstandIdle integer +--- @field public animHandstandJump integer +--- @field public animHandstandLeft integer +--- @field public animHandstandRight integer +--- @field public animHangOnCeiling integer +--- @field public animHangOnOwl integer +--- @field public animHeadStuckInGround integer +--- @field public animHeavyThrow integer +--- @field public animHoldingBowser integer +--- @field public animIdleHeadCenter integer +--- @field public animIdleHeadLeft integer +--- @field public animIdleHeadRight integer +--- @field public animIdleHeavyObj integer +--- @field public animIdleInQuicksand integer +--- @field public animIdleOnLedge integer +--- @field public animIdleOnPole integer +--- @field public animIdleWithLightObj integer +--- @field public animJumpLandWithLightObj integer +--- @field public animJumpRidingShell integer +--- @field public animJumpWithLightObj integer +--- @field public animLandFromDoubleJump integer +--- @field public animLandFromSingleJump integer +--- @field public animLandOnStomach integer +--- @field public animLegsStuckInGround integer +--- @field public animMissingCap integer +--- @field public animMoveInQuicksand integer +--- @field public animMoveOnWireNetLeft integer +--- @field public animMoveOnWireNetRight integer --- @field public animOffsetEnabled integer --- @field public animOffsetFeet number --- @field public animOffsetHand number --- @field public animOffsetLowYPoint number +--- @field public animPickUpLightObj integer +--- @field public animPlaceLightObj integer +--- @field public animPullDoorWalkIn integer +--- @field public animPushDoorWalkIn integer +--- @field public animPushing integer +--- @field public animPutCapOn integer +--- @field public animQuicklyPutCapOn integer +--- @field public animReachPocket integer +--- @field public animReleaseBowser integer +--- @field public animReturnFromHandstand integer +--- @field public animReturnFromStarDance integer +--- @field public animReturnFromWaterStarDance integer +--- @field public animReturnStarApproachDoor integer +--- @field public animRidingShell integer +--- @field public animRunWithLightObj integer +--- @field public animRunning integer +--- @field public animRunningUnused integer +--- @field public animSecondPunch integer +--- @field public animSecondPunchFast integer +--- @field public animShivering integer +--- @field public animShiveringReturnToIdle integer +--- @field public animShiveringWarmingHand integer +--- @field public animShocked integer +--- @field public animSidestepLeft integer +--- @field public animSidestepRight integer +--- @field public animSingleJump integer +--- @field public animSkidOnGround integer +--- @field public animSleepIdle integer +--- @field public animSleepLying integer +--- @field public animSleepStartLying integer +--- @field public animSlide integer +--- @field public animSlideDive integer +--- @field public animSlideKick integer +--- @field public animSlideMotionless integer +--- @field public animSlideflip integer +--- @field public animSlideflipLand integer +--- @field public animSlidejump integer +--- @field public animSlidingOnBottomWithLightObj integer +--- @field public animSlowLandFromDive integer +--- @field public animSlowLedgeGrab integer +--- @field public animSlowLongjump integer +--- @field public animSlowWalkWithLightObj integer +--- @field public animSoftBackKb integer +--- @field public animSoftFrontKb integer +--- @field public animStandAgainstWall integer +--- @field public animStandUpFromLavaBoost integer +--- @field public animStandUpFromSlidingWithLightObj integer +--- @field public animStarDance integer +--- @field public animStartCrawling integer +--- @field public animStartCrouching integer +--- @field public animStartForwardSpinning integer +--- @field public animStartGroundPound integer +--- @field public animStartHandstand integer +--- @field public animStartReachPocket integer +--- @field public animStartRidingShell integer +--- @field public animStartSleepIdle integer +--- @field public animStartSleepScratch integer +--- @field public animStartSleepSitting integer +--- @field public animStartSleepYawn integer +--- @field public animStartTiptoe integer +--- @field public animStartTwirl integer +--- @field public animStartWallkick integer +--- @field public animStopCrawling integer +--- @field public animStopCrouching integer +--- @field public animStopGrabObjWater integer +--- @field public animStopReachPocket integer +--- @field public animStopSkid integer +--- @field public animStopSlide integer +--- @field public animStopSlideLightObj integer +--- @field public animSuffocating integer +--- @field public animSummonStar integer +--- @field public animSwimPart1 integer +--- @field public animSwimPart2 integer +--- @field public animSwimWithObjPart1 integer +--- @field public animSwimWithObjPart2 integer +--- @field public animSwingingBowser integer +--- @field public animTakeCapOffThenOn integer +--- @field public animThrowCatchKey integer +--- @field public animThrowLightObject integer +--- @field public animTiptoe integer +--- @field public animTripleJump integer +--- @field public animTripleJumpFly integer +--- @field public animTripleJumpGroundPound integer +--- @field public animTripleJumpLand integer +--- @field public animTurningPart1 integer +--- @field public animTurningPart2 integer +--- @field public animTwirl integer +--- @field public animTwirlLand integer +--- @field public animUnlockDoor integer +--- @field public animWakeFromLying integer +--- @field public animWakeFromSleep integer +--- @field public animWalkPanting integer +--- @field public animWalkWithHeavyObj integer +--- @field public animWalkWithLightObj integer +--- @field public animWalking integer +--- @field public animWaterActionEnd integer +--- @field public animWaterActionEndWithObj integer +--- @field public animWaterDying integer +--- @field public animWaterForwardKb integer +--- @field public animWaterGrabObjPart1 integer +--- @field public animWaterGrabObjPart2 integer +--- @field public animWaterIdle integer +--- @field public animWaterIdleWithObj integer +--- @field public animWaterPickUpObj integer +--- @field public animWaterStarDance integer +--- @field public animWaterThrowObj integer +--- @field public animWingCapFly integer --- @field public cameraHudHead integer --- @field public capEnemyLayer integer --- @field public capMetalModelId integer diff --git a/docs/lua/constants.md b/docs/lua/constants.md index 85cdd5919..afb019a44 100644 --- a/docs/lua/constants.md +++ b/docs/lua/constants.md @@ -29,6 +29,7 @@ - [level_update.h](#level_updateh) - [enum HUDDisplayFlag](#enum-HUDDisplayFlag) - [mario_animation_ids.h](#mario_animation_idsh) + - [enum CharacterAnimID](#enum-CharacterAnimID) - [enum MarioAnimID](#enum-MarioAnimID) - [mario_geo_switch_case_ids.h](#mario_geo_switch_case_idsh) - [enum MarioCapGSCId](#enum-MarioCapGSCId) @@ -1431,6 +1432,219 @@ ## [mario_animation_ids.h](#mario_animation_ids.h) +### [enum CharacterAnimID](#CharacterAnimID) +| Identifier | Value | +| :--------- | :---- | +| CHAR_ANIM_SLOW_LEDGE_GRAB | 0 | +| CHAR_ANIM_FALL_OVER_BACKWARDS | 1 | +| CHAR_ANIM_BACKWARD_AIR_KB | 2 | +| CHAR_ANIM_DYING_ON_BACK | 3 | +| CHAR_ANIM_BACKFLIP | 4 | +| CHAR_ANIM_CLIMB_UP_POLE | 5 | +| CHAR_ANIM_GRAB_POLE_SHORT | 6 | +| CHAR_ANIM_GRAB_POLE_SWING_PART1 | 7 | +| CHAR_ANIM_GRAB_POLE_SWING_PART2 | 8 | +| CHAR_ANIM_HANDSTAND_IDLE | 9 | +| CHAR_ANIM_HANDSTAND_JUMP | 10 | +| CHAR_ANIM_START_HANDSTAND | 11 | +| CHAR_ANIM_RETURN_FROM_HANDSTAND | 12 | +| CHAR_ANIM_IDLE_ON_POLE | 13 | +| CHAR_ANIM_A_POSE | 14 | +| CHAR_ANIM_SKID_ON_GROUND | 15 | +| CHAR_ANIM_STOP_SKID | 16 | +| CHAR_ANIM_CROUCH_FROM_FAST_LONGJUMP | 17 | +| CHAR_ANIM_CROUCH_FROM_SLOW_LONGJUMP | 18 | +| CHAR_ANIM_FAST_LONGJUMP | 19 | +| CHAR_ANIM_SLOW_LONGJUMP | 20 | +| CHAR_ANIM_AIRBORNE_ON_STOMACH | 21 | +| CHAR_ANIM_WALK_WITH_LIGHT_OBJ | 22 | +| CHAR_ANIM_RUN_WITH_LIGHT_OBJ | 23 | +| CHAR_ANIM_SLOW_WALK_WITH_LIGHT_OBJ | 24 | +| CHAR_ANIM_SHIVERING_WARMING_HAND | 25 | +| CHAR_ANIM_SHIVERING_RETURN_TO_IDLE | 26 | +| CHAR_ANIM_SHIVERING | 27 | +| CHAR_ANIM_CLIMB_DOWN_LEDGE | 28 | +| CHAR_ANIM_CREDITS_WAVING | 29 | +| CHAR_ANIM_CREDITS_LOOK_UP | 30 | +| CHAR_ANIM_CREDITS_RETURN_FROM_LOOK_UP | 31 | +| CHAR_ANIM_CREDITS_RAISE_HAND | 32 | +| CHAR_ANIM_CREDITS_LOWER_HAND | 33 | +| CHAR_ANIM_CREDITS_TAKE_OFF_CAP | 34 | +| CHAR_ANIM_CREDITS_START_WALK_LOOK_UP | 35 | +| CHAR_ANIM_CREDITS_LOOK_BACK_THEN_RUN | 36 | +| CHAR_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN | 37 | +| CHAR_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF | 38 | +| CHAR_ANIM_CREDITS_PEACE_SIGN | 39 | +| CHAR_ANIM_STAND_UP_FROM_LAVA_BOOST | 40 | +| CHAR_ANIM_FIRE_LAVA_BURN | 41 | +| CHAR_ANIM_WING_CAP_FLY | 42 | +| CHAR_ANIM_HANG_ON_OWL | 43 | +| CHAR_ANIM_LAND_ON_STOMACH | 44 | +| CHAR_ANIM_AIR_FORWARD_KB | 45 | +| CHAR_ANIM_DYING_ON_STOMACH | 46 | +| CHAR_ANIM_SUFFOCATING | 47 | +| CHAR_ANIM_COUGHING | 48 | +| CHAR_ANIM_THROW_CATCH_KEY | 49 | +| CHAR_ANIM_DYING_FALL_OVER | 50 | +| CHAR_ANIM_IDLE_ON_LEDGE | 51 | +| CHAR_ANIM_FAST_LEDGE_GRAB | 52 | +| CHAR_ANIM_HANG_ON_CEILING | 53 | +| CHAR_ANIM_PUT_CAP_ON | 54 | +| CHAR_ANIM_TAKE_CAP_OFF_THEN_ON | 55 | +| CHAR_ANIM_QUICKLY_PUT_CAP_ON | 56 | +| CHAR_ANIM_HEAD_STUCK_IN_GROUND | 57 | +| CHAR_ANIM_GROUND_POUND_LANDING | 58 | +| CHAR_ANIM_TRIPLE_JUMP_GROUND_POUND | 59 | +| CHAR_ANIM_START_GROUND_POUND | 60 | +| CHAR_ANIM_GROUND_POUND | 61 | +| CHAR_ANIM_BOTTOM_STUCK_IN_GROUND | 62 | +| CHAR_ANIM_IDLE_WITH_LIGHT_OBJ | 63 | +| CHAR_ANIM_JUMP_LAND_WITH_LIGHT_OBJ | 64 | +| CHAR_ANIM_JUMP_WITH_LIGHT_OBJ | 65 | +| CHAR_ANIM_FALL_LAND_WITH_LIGHT_OBJ | 66 | +| CHAR_ANIM_FALL_WITH_LIGHT_OBJ | 67 | +| CHAR_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ | 68 | +| CHAR_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ | 69 | +| CHAR_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ | 70 | +| CHAR_ANIM_RIDING_SHELL | 71 | +| CHAR_ANIM_WALKING | 72 | +| CHAR_ANIM_FORWARD_FLIP | 73 | +| CHAR_ANIM_JUMP_RIDING_SHELL | 74 | +| CHAR_ANIM_LAND_FROM_DOUBLE_JUMP | 75 | +| CHAR_ANIM_DOUBLE_JUMP_FALL | 76 | +| CHAR_ANIM_SINGLE_JUMP | 77 | +| CHAR_ANIM_LAND_FROM_SINGLE_JUMP | 78 | +| CHAR_ANIM_AIR_KICK | 79 | +| CHAR_ANIM_DOUBLE_JUMP_RISE | 80 | +| CHAR_ANIM_START_FORWARD_SPINNING | 81 | +| CHAR_ANIM_THROW_LIGHT_OBJECT | 82 | +| CHAR_ANIM_FALL_FROM_SLIDE_KICK | 83 | +| CHAR_ANIM_BEND_KNESS_RIDING_SHELL | 84 | +| CHAR_ANIM_LEGS_STUCK_IN_GROUND | 85 | +| CHAR_ANIM_GENERAL_FALL | 86 | +| CHAR_ANIM_GENERAL_LAND | 87 | +| CHAR_ANIM_BEING_GRABBED | 88 | +| CHAR_ANIM_GRAB_HEAVY_OBJECT | 89 | +| CHAR_ANIM_SLOW_LAND_FROM_DIVE | 90 | +| CHAR_ANIM_FLY_FROM_CANNON | 91 | +| CHAR_ANIM_MOVE_ON_WIRE_NET_RIGHT | 92 | +| CHAR_ANIM_MOVE_ON_WIRE_NET_LEFT | 93 | +| CHAR_ANIM_MISSING_CAP | 94 | +| CHAR_ANIM_PULL_DOOR_WALK_IN | 95 | +| CHAR_ANIM_PUSH_DOOR_WALK_IN | 96 | +| CHAR_ANIM_UNLOCK_DOOR | 97 | +| CHAR_ANIM_START_REACH_POCKET | 98 | +| CHAR_ANIM_REACH_POCKET | 99 | +| CHAR_ANIM_STOP_REACH_POCKET | 100 | +| CHAR_ANIM_GROUND_THROW | 101 | +| CHAR_ANIM_GROUND_KICK | 102 | +| CHAR_ANIM_FIRST_PUNCH | 103 | +| CHAR_ANIM_SECOND_PUNCH | 104 | +| CHAR_ANIM_FIRST_PUNCH_FAST | 105 | +| CHAR_ANIM_SECOND_PUNCH_FAST | 106 | +| CHAR_ANIM_PICK_UP_LIGHT_OBJ | 107 | +| CHAR_ANIM_PUSHING | 108 | +| CHAR_ANIM_START_RIDING_SHELL | 109 | +| CHAR_ANIM_PLACE_LIGHT_OBJ | 110 | +| CHAR_ANIM_FORWARD_SPINNING | 111 | +| CHAR_ANIM_BACKWARD_SPINNING | 112 | +| CHAR_ANIM_BREAKDANCE | 113 | +| CHAR_ANIM_RUNNING | 114 | +| CHAR_ANIM_RUNNING_UNUSED | 115 | +| CHAR_ANIM_SOFT_BACK_KB | 116 | +| CHAR_ANIM_SOFT_FRONT_KB | 117 | +| CHAR_ANIM_DYING_IN_QUICKSAND | 118 | +| CHAR_ANIM_IDLE_IN_QUICKSAND | 119 | +| CHAR_ANIM_MOVE_IN_QUICKSAND | 120 | +| CHAR_ANIM_ELECTROCUTION | 121 | +| CHAR_ANIM_SHOCKED | 122 | +| CHAR_ANIM_BACKWARD_KB | 123 | +| CHAR_ANIM_FORWARD_KB | 124 | +| CHAR_ANIM_IDLE_HEAVY_OBJ | 125 | +| CHAR_ANIM_STAND_AGAINST_WALL | 126 | +| CHAR_ANIM_SIDESTEP_LEFT | 127 | +| CHAR_ANIM_SIDESTEP_RIGHT | 128 | +| CHAR_ANIM_START_SLEEP_IDLE | 129 | +| CHAR_ANIM_START_SLEEP_SCRATCH | 130 | +| CHAR_ANIM_START_SLEEP_YAWN | 131 | +| CHAR_ANIM_START_SLEEP_SITTING | 132 | +| CHAR_ANIM_SLEEP_IDLE | 133 | +| CHAR_ANIM_SLEEP_START_LYING | 134 | +| CHAR_ANIM_SLEEP_LYING | 135 | +| CHAR_ANIM_DIVE | 136 | +| CHAR_ANIM_SLIDE_DIVE | 137 | +| CHAR_ANIM_GROUND_BONK | 138 | +| CHAR_ANIM_STOP_SLIDE_LIGHT_OBJ | 139 | +| CHAR_ANIM_SLIDE_KICK | 140 | +| CHAR_ANIM_CROUCH_FROM_SLIDE_KICK | 141 | +| CHAR_ANIM_SLIDE_MOTIONLESS | 142 | +| CHAR_ANIM_STOP_SLIDE | 143 | +| CHAR_ANIM_FALL_FROM_SLIDE | 144 | +| CHAR_ANIM_SLIDE | 145 | +| CHAR_ANIM_TIPTOE | 146 | +| CHAR_ANIM_TWIRL_LAND | 147 | +| CHAR_ANIM_TWIRL | 148 | +| CHAR_ANIM_START_TWIRL | 149 | +| CHAR_ANIM_STOP_CROUCHING | 150 | +| CHAR_ANIM_START_CROUCHING | 151 | +| CHAR_ANIM_CROUCHING | 152 | +| CHAR_ANIM_CRAWLING | 153 | +| CHAR_ANIM_STOP_CRAWLING | 154 | +| CHAR_ANIM_START_CRAWLING | 155 | +| CHAR_ANIM_SUMMON_STAR | 156 | +| CHAR_ANIM_RETURN_STAR_APPROACH_DOOR | 157 | +| CHAR_ANIM_BACKWARDS_WATER_KB | 158 | +| CHAR_ANIM_SWIM_WITH_OBJ_PART1 | 159 | +| CHAR_ANIM_SWIM_WITH_OBJ_PART2 | 160 | +| CHAR_ANIM_FLUTTERKICK_WITH_OBJ | 161 | +| CHAR_ANIM_WATER_ACTION_END_WITH_OBJ | 162 | +| CHAR_ANIM_STOP_GRAB_OBJ_WATER | 163 | +| CHAR_ANIM_WATER_IDLE_WITH_OBJ | 164 | +| CHAR_ANIM_DROWNING_PART1 | 165 | +| CHAR_ANIM_DROWNING_PART2 | 166 | +| CHAR_ANIM_WATER_DYING | 167 | +| CHAR_ANIM_WATER_FORWARD_KB | 168 | +| CHAR_ANIM_FALL_FROM_WATER | 169 | +| CHAR_ANIM_SWIM_PART1 | 170 | +| CHAR_ANIM_SWIM_PART2 | 171 | +| CHAR_ANIM_FLUTTERKICK | 172 | +| CHAR_ANIM_WATER_ACTION_END | 173 | +| CHAR_ANIM_WATER_PICK_UP_OBJ | 174 | +| CHAR_ANIM_WATER_GRAB_OBJ_PART2 | 175 | +| CHAR_ANIM_WATER_GRAB_OBJ_PART1 | 176 | +| CHAR_ANIM_WATER_THROW_OBJ | 177 | +| CHAR_ANIM_WATER_IDLE | 178 | +| CHAR_ANIM_WATER_STAR_DANCE | 179 | +| CHAR_ANIM_RETURN_FROM_WATER_STAR_DANCE | 180 | +| CHAR_ANIM_GRAB_BOWSER | 181 | +| CHAR_ANIM_SWINGING_BOWSER | 182 | +| CHAR_ANIM_RELEASE_BOWSER | 183 | +| CHAR_ANIM_HOLDING_BOWSER | 184 | +| CHAR_ANIM_HEAVY_THROW | 185 | +| CHAR_ANIM_WALK_PANTING | 186 | +| CHAR_ANIM_WALK_WITH_HEAVY_OBJ | 187 | +| CHAR_ANIM_TURNING_PART1 | 188 | +| CHAR_ANIM_TURNING_PART2 | 189 | +| CHAR_ANIM_SLIDEFLIP_LAND | 190 | +| CHAR_ANIM_SLIDEFLIP | 191 | +| CHAR_ANIM_TRIPLE_JUMP_LAND | 192 | +| CHAR_ANIM_TRIPLE_JUMP | 193 | +| CHAR_ANIM_FIRST_PERSON | 194 | +| CHAR_ANIM_IDLE_HEAD_LEFT | 195 | +| CHAR_ANIM_IDLE_HEAD_RIGHT | 196 | +| CHAR_ANIM_IDLE_HEAD_CENTER | 197 | +| CHAR_ANIM_HANDSTAND_LEFT | 198 | +| CHAR_ANIM_HANDSTAND_RIGHT | 199 | +| CHAR_ANIM_WAKE_FROM_SLEEP | 200 | +| CHAR_ANIM_WAKE_FROM_LYING | 201 | +| CHAR_ANIM_START_TIPTOE | 202 | +| CHAR_ANIM_SLIDEJUMP | 203 | +| CHAR_ANIM_START_WALLKICK | 204 | +| CHAR_ANIM_STAR_DANCE | 205 | +| CHAR_ANIM_RETURN_FROM_STAR_DANCE | 206 | +| CHAR_ANIM_FORWARD_SPINNING_FLIP | 207 | +| CHAR_ANIM_TRIPLE_JUMP_FLY | 208 | + ### [enum MarioAnimID](#MarioAnimID) | Identifier | Value | | :--------- | :---- | @@ -1643,6 +1857,8 @@ | MARIO_ANIM_RETURN_FROM_STAR_DANCE | 206 | | MARIO_ANIM_FORWARD_SPINNING_FLIP | 207 | | MARIO_ANIM_TRIPLE_JUMP_FLY | 208 | +| WALUIGI_ANIM_WALKING | 209 | +| WALUIGI_ANIM_RUNNING | 210 | [:arrow_up_small:](#) diff --git a/docs/lua/functions-3.md b/docs/lua/functions-3.md index baba53301..ea209d238 100644 --- a/docs/lua/functions-3.md +++ b/docs/lua/functions-3.md @@ -4611,6 +4611,49 @@
+## [set_character_anim_with_accel](#set_character_anim_with_accel) + +### Lua Example +`local integerValue = set_character_anim_with_accel(m, targetAnimID, accel)` + +### Parameters +| Field | Type | +| ----- | ---- | +| m | [MarioState](structs.md#MarioState) | +| targetAnimID | `integer` | +| accel | `integer` | + +### Returns +- `integer` + +### C Prototype +`s16 set_character_anim_with_accel(struct MarioState *m, s32 targetAnimID, s32 accel);` + +[:arrow_up_small:](#) + +
+ +## [set_character_animation](#set_character_animation) + +### Lua Example +`local integerValue = set_character_animation(m, targetAnimID)` + +### Parameters +| Field | Type | +| ----- | ---- | +| m | [MarioState](structs.md#MarioState) | +| targetAnimID | `integer` | + +### Returns +- `integer` + +### C Prototype +`s16 set_character_animation(struct MarioState *m, s32 targetAnimID);` + +[:arrow_up_small:](#) + +
+ ## [set_jump_from_landing](#set_jump_from_landing) ### Lua Example diff --git a/docs/lua/functions.md b/docs/lua/functions.md index ff947990c..adb22fc19 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -875,6 +875,8 @@ - [resolve_and_return_wall_collisions_data](functions-3.md#resolve_and_return_wall_collisions_data) - [return_mario_anim_y_translation](functions-3.md#return_mario_anim_y_translation) - [set_anim_to_frame](functions-3.md#set_anim_to_frame) + - [set_character_anim_with_accel](functions-3.md#set_character_anim_with_accel) + - [set_character_animation](functions-3.md#set_character_animation) - [set_jump_from_landing](functions-3.md#set_jump_from_landing) - [set_jumping_action](functions-3.md#set_jumping_action) - [set_mario_action](functions-3.md#set_mario_action) diff --git a/docs/lua/structs.md b/docs/lua/structs.md index ffa41da09..bf54b9d8f 100644 --- a/docs/lua/structs.md +++ b/docs/lua/structs.md @@ -447,10 +447,219 @@ | Field | Type | Access | | ----- | ---- | ------ | +| animAPose | `integer` | read-only | +| animAirForwardKb | `integer` | read-only | +| animAirKick | `integer` | read-only | +| animAirborneOnStomach | `integer` | read-only | +| animBackflip | `integer` | read-only | +| animBackwardAirKb | `integer` | read-only | +| animBackwardKb | `integer` | read-only | +| animBackwardSpinning | `integer` | read-only | +| animBackwardsWaterKb | `integer` | read-only | +| animBeingGrabbed | `integer` | read-only | +| animBendKnessRidingShell | `integer` | read-only | +| animBottomStuckInGround | `integer` | read-only | +| animBreakdance | `integer` | read-only | +| animClimbDownLedge | `integer` | read-only | +| animClimbUpPole | `integer` | read-only | +| animCoughing | `integer` | read-only | +| animCrawling | `integer` | read-only | +| animCreditsLookBackThenRun | `integer` | read-only | +| animCreditsLookUp | `integer` | read-only | +| animCreditsLowerHand | `integer` | read-only | +| animCreditsPeaceSign | `integer` | read-only | +| animCreditsRaiseHand | `integer` | read-only | +| animCreditsReturnFromLookUp | `integer` | read-only | +| animCreditsStartWalkLookUp | `integer` | read-only | +| animCreditsTakeOffCap | `integer` | read-only | +| animCreditsWaving | `integer` | read-only | +| animCrouchFromFastLongjump | `integer` | read-only | +| animCrouchFromSlideKick | `integer` | read-only | +| animCrouchFromSlowLongjump | `integer` | read-only | +| animCrouching | `integer` | read-only | +| animDive | `integer` | read-only | +| animDoubleJumpFall | `integer` | read-only | +| animDoubleJumpRise | `integer` | read-only | +| animDrowningPart1 | `integer` | read-only | +| animDrowningPart2 | `integer` | read-only | +| animDyingFallOver | `integer` | read-only | +| animDyingInQuicksand | `integer` | read-only | +| animDyingOnBack | `integer` | read-only | +| animDyingOnStomach | `integer` | read-only | +| animElectrocution | `integer` | read-only | +| animFallFromSlide | `integer` | read-only | +| animFallFromSlideKick | `integer` | read-only | +| animFallFromSlidingWithLightObj | `integer` | read-only | +| animFallFromWater | `integer` | read-only | +| animFallLandWithLightObj | `integer` | read-only | +| animFallOverBackwards | `integer` | read-only | +| animFallWithLightObj | `integer` | read-only | +| animFastLedgeGrab | `integer` | read-only | +| animFastLongjump | `integer` | read-only | +| animFinalBowserRaiseHandSpin | `integer` | read-only | +| animFinalBowserWingCapTakeOff | `integer` | read-only | +| animFireLavaBurn | `integer` | read-only | +| animFirstPerson | `integer` | read-only | +| animFirstPunch | `integer` | read-only | +| animFirstPunchFast | `integer` | read-only | +| animFlutterkick | `integer` | read-only | +| animFlutterkickWithObj | `integer` | read-only | +| animFlyFromCannon | `integer` | read-only | +| animForwardFlip | `integer` | read-only | +| animForwardKb | `integer` | read-only | +| animForwardSpinning | `integer` | read-only | +| animForwardSpinningFlip | `integer` | read-only | +| animGeneralFall | `integer` | read-only | +| animGeneralLand | `integer` | read-only | +| animGrabBowser | `integer` | read-only | +| animGrabHeavyObject | `integer` | read-only | +| animGrabPoleShort | `integer` | read-only | +| animGrabPoleSwingPart1 | `integer` | read-only | +| animGrabPoleSwingPart2 | `integer` | read-only | +| animGroundBonk | `integer` | read-only | +| animGroundKick | `integer` | read-only | +| animGroundPound | `integer` | read-only | +| animGroundPoundLanding | `integer` | read-only | +| animGroundThrow | `integer` | read-only | +| animHandstandIdle | `integer` | read-only | +| animHandstandJump | `integer` | read-only | +| animHandstandLeft | `integer` | read-only | +| animHandstandRight | `integer` | read-only | +| animHangOnCeiling | `integer` | read-only | +| animHangOnOwl | `integer` | read-only | +| animHeadStuckInGround | `integer` | read-only | +| animHeavyThrow | `integer` | read-only | +| animHoldingBowser | `integer` | read-only | +| animIdleHeadCenter | `integer` | read-only | +| animIdleHeadLeft | `integer` | read-only | +| animIdleHeadRight | `integer` | read-only | +| animIdleHeavyObj | `integer` | read-only | +| animIdleInQuicksand | `integer` | read-only | +| animIdleOnLedge | `integer` | read-only | +| animIdleOnPole | `integer` | read-only | +| animIdleWithLightObj | `integer` | read-only | +| animJumpLandWithLightObj | `integer` | read-only | +| animJumpRidingShell | `integer` | read-only | +| animJumpWithLightObj | `integer` | read-only | +| animLandFromDoubleJump | `integer` | read-only | +| animLandFromSingleJump | `integer` | read-only | +| animLandOnStomach | `integer` | read-only | +| animLegsStuckInGround | `integer` | read-only | +| animMissingCap | `integer` | read-only | +| animMoveInQuicksand | `integer` | read-only | +| animMoveOnWireNetLeft | `integer` | read-only | +| animMoveOnWireNetRight | `integer` | read-only | | animOffsetEnabled | `integer` | read-only | | animOffsetFeet | `number` | read-only | | animOffsetHand | `number` | read-only | | animOffsetLowYPoint | `number` | read-only | +| animPickUpLightObj | `integer` | read-only | +| animPlaceLightObj | `integer` | read-only | +| animPullDoorWalkIn | `integer` | read-only | +| animPushDoorWalkIn | `integer` | read-only | +| animPushing | `integer` | read-only | +| animPutCapOn | `integer` | read-only | +| animQuicklyPutCapOn | `integer` | read-only | +| animReachPocket | `integer` | read-only | +| animReleaseBowser | `integer` | read-only | +| animReturnFromHandstand | `integer` | read-only | +| animReturnFromStarDance | `integer` | read-only | +| animReturnFromWaterStarDance | `integer` | read-only | +| animReturnStarApproachDoor | `integer` | read-only | +| animRidingShell | `integer` | read-only | +| animRunWithLightObj | `integer` | read-only | +| animRunning | `integer` | read-only | +| animRunningUnused | `integer` | read-only | +| animSecondPunch | `integer` | read-only | +| animSecondPunchFast | `integer` | read-only | +| animShivering | `integer` | read-only | +| animShiveringReturnToIdle | `integer` | read-only | +| animShiveringWarmingHand | `integer` | read-only | +| animShocked | `integer` | read-only | +| animSidestepLeft | `integer` | read-only | +| animSidestepRight | `integer` | read-only | +| animSingleJump | `integer` | read-only | +| animSkidOnGround | `integer` | read-only | +| animSleepIdle | `integer` | read-only | +| animSleepLying | `integer` | read-only | +| animSleepStartLying | `integer` | read-only | +| animSlide | `integer` | read-only | +| animSlideDive | `integer` | read-only | +| animSlideKick | `integer` | read-only | +| animSlideMotionless | `integer` | read-only | +| animSlideflip | `integer` | read-only | +| animSlideflipLand | `integer` | read-only | +| animSlidejump | `integer` | read-only | +| animSlidingOnBottomWithLightObj | `integer` | read-only | +| animSlowLandFromDive | `integer` | read-only | +| animSlowLedgeGrab | `integer` | read-only | +| animSlowLongjump | `integer` | read-only | +| animSlowWalkWithLightObj | `integer` | read-only | +| animSoftBackKb | `integer` | read-only | +| animSoftFrontKb | `integer` | read-only | +| animStandAgainstWall | `integer` | read-only | +| animStandUpFromLavaBoost | `integer` | read-only | +| animStandUpFromSlidingWithLightObj | `integer` | read-only | +| animStarDance | `integer` | read-only | +| animStartCrawling | `integer` | read-only | +| animStartCrouching | `integer` | read-only | +| animStartForwardSpinning | `integer` | read-only | +| animStartGroundPound | `integer` | read-only | +| animStartHandstand | `integer` | read-only | +| animStartReachPocket | `integer` | read-only | +| animStartRidingShell | `integer` | read-only | +| animStartSleepIdle | `integer` | read-only | +| animStartSleepScratch | `integer` | read-only | +| animStartSleepSitting | `integer` | read-only | +| animStartSleepYawn | `integer` | read-only | +| animStartTiptoe | `integer` | read-only | +| animStartTwirl | `integer` | read-only | +| animStartWallkick | `integer` | read-only | +| animStopCrawling | `integer` | read-only | +| animStopCrouching | `integer` | read-only | +| animStopGrabObjWater | `integer` | read-only | +| animStopReachPocket | `integer` | read-only | +| animStopSkid | `integer` | read-only | +| animStopSlide | `integer` | read-only | +| animStopSlideLightObj | `integer` | read-only | +| animSuffocating | `integer` | read-only | +| animSummonStar | `integer` | read-only | +| animSwimPart1 | `integer` | read-only | +| animSwimPart2 | `integer` | read-only | +| animSwimWithObjPart1 | `integer` | read-only | +| animSwimWithObjPart2 | `integer` | read-only | +| animSwingingBowser | `integer` | read-only | +| animTakeCapOffThenOn | `integer` | read-only | +| animThrowCatchKey | `integer` | read-only | +| animThrowLightObject | `integer` | read-only | +| animTiptoe | `integer` | read-only | +| animTripleJump | `integer` | read-only | +| animTripleJumpFly | `integer` | read-only | +| animTripleJumpGroundPound | `integer` | read-only | +| animTripleJumpLand | `integer` | read-only | +| animTurningPart1 | `integer` | read-only | +| animTurningPart2 | `integer` | read-only | +| animTwirl | `integer` | read-only | +| animTwirlLand | `integer` | read-only | +| animUnlockDoor | `integer` | read-only | +| animWakeFromLying | `integer` | read-only | +| animWakeFromSleep | `integer` | read-only | +| animWalkPanting | `integer` | read-only | +| animWalkWithHeavyObj | `integer` | read-only | +| animWalkWithLightObj | `integer` | read-only | +| animWalking | `integer` | read-only | +| animWaterActionEnd | `integer` | read-only | +| animWaterActionEndWithObj | `integer` | read-only | +| animWaterDying | `integer` | read-only | +| animWaterForwardKb | `integer` | read-only | +| animWaterGrabObjPart1 | `integer` | read-only | +| animWaterGrabObjPart2 | `integer` | read-only | +| animWaterIdle | `integer` | read-only | +| animWaterIdleWithObj | `integer` | read-only | +| animWaterPickUpObj | `integer` | read-only | +| animWaterStarDance | `integer` | read-only | +| animWaterThrowObj | `integer` | read-only | +| animWingCapFly | `integer` | read-only | | cameraHudHead | `integer` | read-only | | capEnemyLayer | `integer` | read-only | | capMetalModelId | `integer` | read-only | diff --git a/include/mario_animation_ids.h b/include/mario_animation_ids.h index 1d22d3d1b..9e68e9850 100644 --- a/include/mario_animation_ids.h +++ b/include/mario_animation_ids.h @@ -2,6 +2,7 @@ #define MARIO_ANIMATION_IDS_H /* Mario Animation IDs */ +/* Contains Animation IDs For Each Character */ enum MarioAnimID { @@ -213,7 +214,224 @@ enum MarioAnimID /* 0xCD */ MARIO_ANIM_STAR_DANCE, /* 0xCE */ MARIO_ANIM_RETURN_FROM_STAR_DANCE, /* 0xCF */ MARIO_ANIM_FORWARD_SPINNING_FLIP, - /* 0xD0 */ MARIO_ANIM_TRIPLE_JUMP_FLY + /* 0xD0 */ MARIO_ANIM_TRIPLE_JUMP_FLY, + /* 0xD1 */ WALUIGI_ANIM_WALKING, + /* 0xD2 */ WALUIGI_ANIM_RUNNING +}; + +/* Character Animation IDs*/ + +enum CharacterAnimID +{ + /* 0x00 */ CHAR_ANIM_SLOW_LEDGE_GRAB, + /* 0x01 */ CHAR_ANIM_FALL_OVER_BACKWARDS, + /* 0x02 */ CHAR_ANIM_BACKWARD_AIR_KB, + /* 0x03 */ CHAR_ANIM_DYING_ON_BACK, + /* 0x04 */ CHAR_ANIM_BACKFLIP, + /* 0x05 */ CHAR_ANIM_CLIMB_UP_POLE, + /* 0x06 */ CHAR_ANIM_GRAB_POLE_SHORT, + /* 0x07 */ CHAR_ANIM_GRAB_POLE_SWING_PART1, + /* 0x08 */ CHAR_ANIM_GRAB_POLE_SWING_PART2, + /* 0x09 */ CHAR_ANIM_HANDSTAND_IDLE, + /* 0x0A */ CHAR_ANIM_HANDSTAND_JUMP, + /* 0x0B */ CHAR_ANIM_START_HANDSTAND, + /* 0x0C */ CHAR_ANIM_RETURN_FROM_HANDSTAND, + /* 0x0D */ CHAR_ANIM_IDLE_ON_POLE, + /* 0x0E */ CHAR_ANIM_A_POSE, + /* 0x0F */ CHAR_ANIM_SKID_ON_GROUND, + /* 0x10 */ CHAR_ANIM_STOP_SKID, + /* 0x11 */ CHAR_ANIM_CROUCH_FROM_FAST_LONGJUMP, + /* 0x12 */ CHAR_ANIM_CROUCH_FROM_SLOW_LONGJUMP, + /* 0x13 */ CHAR_ANIM_FAST_LONGJUMP, + /* 0x14 */ CHAR_ANIM_SLOW_LONGJUMP, + /* 0x15 */ CHAR_ANIM_AIRBORNE_ON_STOMACH, + /* 0x16 */ CHAR_ANIM_WALK_WITH_LIGHT_OBJ, + /* 0x17 */ CHAR_ANIM_RUN_WITH_LIGHT_OBJ, + /* 0x18 */ CHAR_ANIM_SLOW_WALK_WITH_LIGHT_OBJ, + /* 0x19 */ CHAR_ANIM_SHIVERING_WARMING_HAND, + /* 0x1A */ CHAR_ANIM_SHIVERING_RETURN_TO_IDLE, + /* 0x1B */ CHAR_ANIM_SHIVERING, + /* 0x1C */ CHAR_ANIM_CLIMB_DOWN_LEDGE, + /* 0x1D */ CHAR_ANIM_CREDITS_WAVING, + /* 0x1E */ CHAR_ANIM_CREDITS_LOOK_UP, + /* 0x1F */ CHAR_ANIM_CREDITS_RETURN_FROM_LOOK_UP, + /* 0x20 */ CHAR_ANIM_CREDITS_RAISE_HAND, + /* 0x21 */ CHAR_ANIM_CREDITS_LOWER_HAND, + /* 0x22 */ CHAR_ANIM_CREDITS_TAKE_OFF_CAP, + /* 0x23 */ CHAR_ANIM_CREDITS_START_WALK_LOOK_UP, + /* 0x24 */ CHAR_ANIM_CREDITS_LOOK_BACK_THEN_RUN, + /* 0x25 */ CHAR_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN, + /* 0x26 */ CHAR_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF, + /* 0x27 */ CHAR_ANIM_CREDITS_PEACE_SIGN, + /* 0x28 */ CHAR_ANIM_STAND_UP_FROM_LAVA_BOOST, + /* 0x29 */ CHAR_ANIM_FIRE_LAVA_BURN, + /* 0x2A */ CHAR_ANIM_WING_CAP_FLY, + /* 0x2B */ CHAR_ANIM_HANG_ON_OWL, + /* 0x2C */ CHAR_ANIM_LAND_ON_STOMACH, + /* 0x2D */ CHAR_ANIM_AIR_FORWARD_KB, + /* 0x2E */ CHAR_ANIM_DYING_ON_STOMACH, + /* 0x2F */ CHAR_ANIM_SUFFOCATING, + /* 0x30 */ CHAR_ANIM_COUGHING, + /* 0x31 */ CHAR_ANIM_THROW_CATCH_KEY, + /* 0x32 */ CHAR_ANIM_DYING_FALL_OVER, + /* 0x33 */ CHAR_ANIM_IDLE_ON_LEDGE, + /* 0x34 */ CHAR_ANIM_FAST_LEDGE_GRAB, + /* 0x35 */ CHAR_ANIM_HANG_ON_CEILING, + /* 0x36 */ CHAR_ANIM_PUT_CAP_ON, + /* 0x37 */ CHAR_ANIM_TAKE_CAP_OFF_THEN_ON, + /* 0x38 */ CHAR_ANIM_QUICKLY_PUT_CAP_ON, // unused + /* 0x39 */ CHAR_ANIM_HEAD_STUCK_IN_GROUND, + /* 0x3A */ CHAR_ANIM_GROUND_POUND_LANDING, + /* 0x3B */ CHAR_ANIM_TRIPLE_JUMP_GROUND_POUND, + /* 0x3C */ CHAR_ANIM_START_GROUND_POUND, + /* 0x3D */ CHAR_ANIM_GROUND_POUND, + /* 0x3E */ CHAR_ANIM_BOTTOM_STUCK_IN_GROUND, + /* 0x3F */ CHAR_ANIM_IDLE_WITH_LIGHT_OBJ, + /* 0x40 */ CHAR_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, + /* 0x41 */ CHAR_ANIM_JUMP_WITH_LIGHT_OBJ, + /* 0x42 */ CHAR_ANIM_FALL_LAND_WITH_LIGHT_OBJ, + /* 0x43 */ CHAR_ANIM_FALL_WITH_LIGHT_OBJ, + /* 0x44 */ CHAR_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ, + /* 0x45 */ CHAR_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ, + /* 0x46 */ CHAR_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ, + /* 0x47 */ CHAR_ANIM_RIDING_SHELL, + /* 0x48 */ CHAR_ANIM_WALKING, + /* 0x49 */ CHAR_ANIM_FORWARD_FLIP, // unused + /* 0x4A */ CHAR_ANIM_JUMP_RIDING_SHELL, + /* 0x4B */ CHAR_ANIM_LAND_FROM_DOUBLE_JUMP, + /* 0x4C */ CHAR_ANIM_DOUBLE_JUMP_FALL, + /* 0x4D */ CHAR_ANIM_SINGLE_JUMP, + /* 0x4E */ CHAR_ANIM_LAND_FROM_SINGLE_JUMP, + /* 0x4F */ CHAR_ANIM_AIR_KICK, + /* 0x50 */ CHAR_ANIM_DOUBLE_JUMP_RISE, + /* 0x51 */ CHAR_ANIM_START_FORWARD_SPINNING, // unused + /* 0x52 */ CHAR_ANIM_THROW_LIGHT_OBJECT, + /* 0x53 */ CHAR_ANIM_FALL_FROM_SLIDE_KICK, + /* 0x54 */ CHAR_ANIM_BEND_KNESS_RIDING_SHELL, // unused + /* 0x55 */ CHAR_ANIM_LEGS_STUCK_IN_GROUND, + /* 0x56 */ CHAR_ANIM_GENERAL_FALL, + /* 0x57 */ CHAR_ANIM_GENERAL_LAND, + /* 0x58 */ CHAR_ANIM_BEING_GRABBED, + /* 0x59 */ CHAR_ANIM_GRAB_HEAVY_OBJECT, + /* 0x5A */ CHAR_ANIM_SLOW_LAND_FROM_DIVE, + /* 0x5B */ CHAR_ANIM_FLY_FROM_CANNON, + /* 0x5C */ CHAR_ANIM_MOVE_ON_WIRE_NET_RIGHT, + /* 0x5D */ CHAR_ANIM_MOVE_ON_WIRE_NET_LEFT, + /* 0x5E */ CHAR_ANIM_MISSING_CAP, + /* 0x5F */ CHAR_ANIM_PULL_DOOR_WALK_IN, + /* 0x60 */ CHAR_ANIM_PUSH_DOOR_WALK_IN, + /* 0x61 */ CHAR_ANIM_UNLOCK_DOOR, + /* 0x62 */ CHAR_ANIM_START_REACH_POCKET, // unused, reaching keys maybe? + /* 0x63 */ CHAR_ANIM_REACH_POCKET, // unused + /* 0x64 */ CHAR_ANIM_STOP_REACH_POCKET, // unused + /* 0x65 */ CHAR_ANIM_GROUND_THROW, + /* 0x66 */ CHAR_ANIM_GROUND_KICK, + /* 0x67 */ CHAR_ANIM_FIRST_PUNCH, + /* 0x68 */ CHAR_ANIM_SECOND_PUNCH, + /* 0x69 */ CHAR_ANIM_FIRST_PUNCH_FAST, + /* 0x6A */ CHAR_ANIM_SECOND_PUNCH_FAST, + /* 0x6B */ CHAR_ANIM_PICK_UP_LIGHT_OBJ, + /* 0x6C */ CHAR_ANIM_PUSHING, + /* 0x6D */ CHAR_ANIM_START_RIDING_SHELL, + /* 0x6E */ CHAR_ANIM_PLACE_LIGHT_OBJ, + /* 0x6F */ CHAR_ANIM_FORWARD_SPINNING, + /* 0x70 */ CHAR_ANIM_BACKWARD_SPINNING, + /* 0x71 */ CHAR_ANIM_BREAKDANCE, + /* 0x72 */ CHAR_ANIM_RUNNING, + /* 0x73 */ CHAR_ANIM_RUNNING_UNUSED, // unused duplicate, originally part 2? + /* 0x74 */ CHAR_ANIM_SOFT_BACK_KB, + /* 0x75 */ CHAR_ANIM_SOFT_FRONT_KB, + /* 0x76 */ CHAR_ANIM_DYING_IN_QUICKSAND, + /* 0x77 */ CHAR_ANIM_IDLE_IN_QUICKSAND, + /* 0x78 */ CHAR_ANIM_MOVE_IN_QUICKSAND, + /* 0x79 */ CHAR_ANIM_ELECTROCUTION, + /* 0x7A */ CHAR_ANIM_SHOCKED, + /* 0x7B */ CHAR_ANIM_BACKWARD_KB, + /* 0x7C */ CHAR_ANIM_FORWARD_KB, + /* 0x7D */ CHAR_ANIM_IDLE_HEAVY_OBJ, + /* 0x7E */ CHAR_ANIM_STAND_AGAINST_WALL, + /* 0x7F */ CHAR_ANIM_SIDESTEP_LEFT, + /* 0x80 */ CHAR_ANIM_SIDESTEP_RIGHT, + /* 0x81 */ CHAR_ANIM_START_SLEEP_IDLE, + /* 0x82 */ CHAR_ANIM_START_SLEEP_SCRATCH, + /* 0x83 */ CHAR_ANIM_START_SLEEP_YAWN, + /* 0x84 */ CHAR_ANIM_START_SLEEP_SITTING, + /* 0x85 */ CHAR_ANIM_SLEEP_IDLE, + /* 0x86 */ CHAR_ANIM_SLEEP_START_LYING, + /* 0x87 */ CHAR_ANIM_SLEEP_LYING, + /* 0x88 */ CHAR_ANIM_DIVE, + /* 0x89 */ CHAR_ANIM_SLIDE_DIVE, + /* 0x8A */ CHAR_ANIM_GROUND_BONK, + /* 0x8B */ CHAR_ANIM_STOP_SLIDE_LIGHT_OBJ, + /* 0x8C */ CHAR_ANIM_SLIDE_KICK, + /* 0x8D */ CHAR_ANIM_CROUCH_FROM_SLIDE_KICK, + /* 0x8E */ CHAR_ANIM_SLIDE_MOTIONLESS, // unused + /* 0x8F */ CHAR_ANIM_STOP_SLIDE, + /* 0x90 */ CHAR_ANIM_FALL_FROM_SLIDE, + /* 0x91 */ CHAR_ANIM_SLIDE, + /* 0x92 */ CHAR_ANIM_TIPTOE, + /* 0x93 */ CHAR_ANIM_TWIRL_LAND, + /* 0x94 */ CHAR_ANIM_TWIRL, + /* 0x95 */ CHAR_ANIM_START_TWIRL, + /* 0x96 */ CHAR_ANIM_STOP_CROUCHING, + /* 0x97 */ CHAR_ANIM_START_CROUCHING, + /* 0x98 */ CHAR_ANIM_CROUCHING, + /* 0x99 */ CHAR_ANIM_CRAWLING, + /* 0x9A */ CHAR_ANIM_STOP_CRAWLING, + /* 0x9B */ CHAR_ANIM_START_CRAWLING, + /* 0x9C */ CHAR_ANIM_SUMMON_STAR, + /* 0x9D */ CHAR_ANIM_RETURN_STAR_APPROACH_DOOR, + /* 0x9E */ CHAR_ANIM_BACKWARDS_WATER_KB, + /* 0x9F */ CHAR_ANIM_SWIM_WITH_OBJ_PART1, + /* 0xA0 */ CHAR_ANIM_SWIM_WITH_OBJ_PART2, + /* 0xA1 */ CHAR_ANIM_FLUTTERKICK_WITH_OBJ, + /* 0xA2 */ CHAR_ANIM_WATER_ACTION_END_WITH_OBJ, // either swimming or flutterkicking + /* 0xA3 */ CHAR_ANIM_STOP_GRAB_OBJ_WATER, + /* 0xA4 */ CHAR_ANIM_WATER_IDLE_WITH_OBJ, + /* 0xA5 */ CHAR_ANIM_DROWNING_PART1, + /* 0xA6 */ CHAR_ANIM_DROWNING_PART2, + /* 0xA7 */ CHAR_ANIM_WATER_DYING, + /* 0xA8 */ CHAR_ANIM_WATER_FORWARD_KB, + /* 0xA9 */ CHAR_ANIM_FALL_FROM_WATER, + /* 0xAA */ CHAR_ANIM_SWIM_PART1, + /* 0xAB */ CHAR_ANIM_SWIM_PART2, + /* 0xAC */ CHAR_ANIM_FLUTTERKICK, + /* 0xAD */ CHAR_ANIM_WATER_ACTION_END, // either swimming or flutterkicking + /* 0xAE */ CHAR_ANIM_WATER_PICK_UP_OBJ, + /* 0xAF */ CHAR_ANIM_WATER_GRAB_OBJ_PART2, + /* 0xB0 */ CHAR_ANIM_WATER_GRAB_OBJ_PART1, + /* 0xB1 */ CHAR_ANIM_WATER_THROW_OBJ, + /* 0xB2 */ CHAR_ANIM_WATER_IDLE, + /* 0xB3 */ CHAR_ANIM_WATER_STAR_DANCE, + /* 0xB4 */ CHAR_ANIM_RETURN_FROM_WATER_STAR_DANCE, + /* 0xB5 */ CHAR_ANIM_GRAB_BOWSER, + /* 0xB6 */ CHAR_ANIM_SWINGING_BOWSER, + /* 0xB7 */ CHAR_ANIM_RELEASE_BOWSER, + /* 0xB8 */ CHAR_ANIM_HOLDING_BOWSER, + /* 0xB9 */ CHAR_ANIM_HEAVY_THROW, + /* 0xBA */ CHAR_ANIM_WALK_PANTING, + /* 0xBB */ CHAR_ANIM_WALK_WITH_HEAVY_OBJ, + /* 0xBC */ CHAR_ANIM_TURNING_PART1, + /* 0xBD */ CHAR_ANIM_TURNING_PART2, + /* 0xBE */ CHAR_ANIM_SLIDEFLIP_LAND, + /* 0XBF */ CHAR_ANIM_SLIDEFLIP, + /* 0xC0 */ CHAR_ANIM_TRIPLE_JUMP_LAND, + /* 0xC1 */ CHAR_ANIM_TRIPLE_JUMP, + /* 0xC2 */ CHAR_ANIM_FIRST_PERSON, + /* 0xC3 */ CHAR_ANIM_IDLE_HEAD_LEFT, + /* 0xC4 */ CHAR_ANIM_IDLE_HEAD_RIGHT, + /* 0xC5 */ CHAR_ANIM_IDLE_HEAD_CENTER, + /* 0xC6 */ CHAR_ANIM_HANDSTAND_LEFT, + /* 0xC7 */ CHAR_ANIM_HANDSTAND_RIGHT, + /* 0xC8 */ CHAR_ANIM_WAKE_FROM_SLEEP, + /* 0xC9 */ CHAR_ANIM_WAKE_FROM_LYING, + /* 0xCA */ CHAR_ANIM_START_TIPTOE, + /* 0xCB */ CHAR_ANIM_SLIDEJUMP, // pole jump and wall kick + /* 0xCC */ CHAR_ANIM_START_WALLKICK, + /* 0xCD */ CHAR_ANIM_STAR_DANCE, + /* 0xCE */ CHAR_ANIM_RETURN_FROM_STAR_DANCE, + /* 0xCF */ CHAR_ANIM_FORWARD_SPINNING_FLIP, + /* 0xD0 */ CHAR_ANIM_TRIPLE_JUMP_FLY }; #endif // MARIO_ANIMATION_IDS_H diff --git a/src/game/characters.c b/src/game/characters.c index 4c0e90784..8b12ed0b7 100644 --- a/src/game/characters.c +++ b/src/game/characters.c @@ -46,6 +46,218 @@ struct Character gCharacters[CT_MAX] = { .torsoRotMult = 1.0f, // anim .animOffsetEnabled = false, + + // character anims + .animSlowLedgeGrab = MARIO_ANIM_SLOW_LEDGE_GRAB, + .animFallOverBackwards = MARIO_ANIM_FALL_OVER_BACKWARDS, + .animBackwardAirKb = MARIO_ANIM_BACKWARD_AIR_KB, + .animDyingOnBack = MARIO_ANIM_DYING_ON_BACK, + .animBackflip = MARIO_ANIM_BACKFLIP, + .animClimbUpPole = MARIO_ANIM_CLIMB_UP_POLE, + .animGrabPoleShort = MARIO_ANIM_GRAB_POLE_SHORT, + .animGrabPoleSwingPart1 = MARIO_ANIM_GRAB_POLE_SWING_PART1, + .animGrabPoleSwingPart2 = MARIO_ANIM_GRAB_POLE_SWING_PART2, + .animHandstandIdle = MARIO_ANIM_HANDSTAND_IDLE, + .animHandstandJump = MARIO_ANIM_HANDSTAND_JUMP, + .animStartHandstand = MARIO_ANIM_START_HANDSTAND, + .animReturnFromHandstand = MARIO_ANIM_RETURN_FROM_HANDSTAND, + .animIdleOnPole = MARIO_ANIM_IDLE_ON_POLE, + .animAPose = MARIO_ANIM_A_POSE, + .animSkidOnGround = MARIO_ANIM_SKID_ON_GROUND, + .animStopSkid = MARIO_ANIM_STOP_SKID, + .animCrouchFromFastLongjump = MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP, + .animCrouchFromSlowLongjump = MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP, + .animFastLongjump = MARIO_ANIM_FAST_LONGJUMP, + .animSlowLongjump = MARIO_ANIM_SLOW_LONGJUMP, + .animAirborneOnStomach = MARIO_ANIM_AIRBORNE_ON_STOMACH, + .animWalkWithLightObj = MARIO_ANIM_WALK_WITH_LIGHT_OBJ, + .animRunWithLightObj = MARIO_ANIM_RUN_WITH_LIGHT_OBJ, + .animSlowWalkWithLightObj = MARIO_ANIM_SLOW_WALK_WITH_LIGHT_OBJ, + .animShiveringWarmingHand = MARIO_ANIM_SHIVERING_WARMING_HAND, + .animShiveringReturnToIdle = MARIO_ANIM_SHIVERING_RETURN_TO_IDLE, + .animShivering = MARIO_ANIM_SHIVERING, + .animClimbDownLedge = MARIO_ANIM_CLIMB_DOWN_LEDGE, + .animCreditsWaving = MARIO_ANIM_CREDITS_WAVING, + .animCreditsLookUp = MARIO_ANIM_CREDITS_LOOK_UP, + .animCreditsReturnFromLookUp = MARIO_ANIM_CREDITS_RETURN_FROM_LOOK_UP, + .animCreditsRaiseHand = MARIO_ANIM_CREDITS_RAISE_HAND, + .animCreditsLowerHand = MARIO_ANIM_CREDITS_LOWER_HAND, + .animCreditsTakeOffCap = MARIO_ANIM_CREDITS_TAKE_OFF_CAP, + .animCreditsStartWalkLookUp = MARIO_ANIM_CREDITS_START_WALK_LOOK_UP, + .animCreditsLookBackThenRun = MARIO_ANIM_CREDITS_LOOK_BACK_THEN_RUN, + .animFinalBowserRaiseHandSpin = MARIO_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN, + .animFinalBowserWingCapTakeOff = MARIO_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF, + .animCreditsPeaceSign = MARIO_ANIM_CREDITS_PEACE_SIGN, + .animStandUpFromLavaBoost = MARIO_ANIM_STAND_UP_FROM_LAVA_BOOST, + .animFireLavaBurn = MARIO_ANIM_FIRE_LAVA_BURN, + .animWingCapFly = MARIO_ANIM_WING_CAP_FLY, + .animHangOnOwl = MARIO_ANIM_HANG_ON_OWL, + .animLandOnStomach = MARIO_ANIM_LAND_ON_STOMACH, + .animAirForwardKb = MARIO_ANIM_AIR_FORWARD_KB, + .animDyingOnStomach = MARIO_ANIM_DYING_ON_STOMACH, + .animSuffocating = MARIO_ANIM_SUFFOCATING, + .animCoughing = MARIO_ANIM_COUGHING, + .animThrowCatchKey = MARIO_ANIM_THROW_CATCH_KEY, + .animDyingFallOver = MARIO_ANIM_DYING_FALL_OVER, + .animIdleOnLedge = MARIO_ANIM_IDLE_ON_LEDGE, + .animFastLedgeGrab = MARIO_ANIM_FAST_LEDGE_GRAB, + .animHangOnCeiling = MARIO_ANIM_HANG_ON_CEILING, + .animPutCapOn = MARIO_ANIM_PUT_CAP_ON, + .animTakeCapOffThenOn = MARIO_ANIM_TAKE_CAP_OFF_THEN_ON, + .animQuicklyPutCapOn = MARIO_ANIM_QUICKLY_PUT_CAP_ON, + .animHeadStuckInGround = MARIO_ANIM_HEAD_STUCK_IN_GROUND, + .animGroundPoundLanding = MARIO_ANIM_GROUND_POUND_LANDING, + .animTripleJumpGroundPound = MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND, + .animStartGroundPound = MARIO_ANIM_START_GROUND_POUND, + .animGroundPound = MARIO_ANIM_GROUND_POUND, + .animBottomStuckInGround = MARIO_ANIM_BOTTOM_STUCK_IN_GROUND, + .animIdleWithLightObj = MARIO_ANIM_IDLE_WITH_LIGHT_OBJ, + .animJumpLandWithLightObj = MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, + .animJumpWithLightObj = MARIO_ANIM_JUMP_WITH_LIGHT_OBJ, + .animFallLandWithLightObj = MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ, + .animFallWithLightObj = MARIO_ANIM_FALL_WITH_LIGHT_OBJ, + .animFallFromSlidingWithLightObj = MARIO_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ, + .animSlidingOnBottomWithLightObj = MARIO_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ, + .animStandUpFromSlidingWithLightObj = MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ, + .animRidingShell = MARIO_ANIM_RIDING_SHELL, + .animWalking = MARIO_ANIM_WALKING, + .animForwardFlip = MARIO_ANIM_FORWARD_FLIP, + .animJumpRidingShell = MARIO_ANIM_JUMP_RIDING_SHELL, + .animLandFromDoubleJump = MARIO_ANIM_LAND_FROM_DOUBLE_JUMP, + .animDoubleJumpFall = MARIO_ANIM_DOUBLE_JUMP_FALL, + .animSingleJump = MARIO_ANIM_SINGLE_JUMP, + .animLandFromSingleJump = MARIO_ANIM_LAND_FROM_SINGLE_JUMP, + .animAirKick = MARIO_ANIM_AIR_KICK, + .animDoubleJumpRise = MARIO_ANIM_DOUBLE_JUMP_RISE, + .animStartForwardSpinning = MARIO_ANIM_START_FORWARD_SPINNING, + .animThrowLightObject = MARIO_ANIM_THROW_LIGHT_OBJECT, + .animFallFromSlideKick = MARIO_ANIM_FALL_FROM_SLIDE_KICK, + .animBendKnessRidingShell = MARIO_ANIM_BEND_KNESS_RIDING_SHELL, + .animLegsStuckInGround = MARIO_ANIM_LEGS_STUCK_IN_GROUND, + .animGeneralFall = MARIO_ANIM_GENERAL_FALL, + .animGeneralLand = MARIO_ANIM_GENERAL_LAND, + .animBeingGrabbed = MARIO_ANIM_BEING_GRABBED, + .animGrabHeavyObject = MARIO_ANIM_GRAB_HEAVY_OBJECT, + .animSlowLandFromDive = MARIO_ANIM_SLOW_LAND_FROM_DIVE, + .animFlyFromCannon = MARIO_ANIM_FLY_FROM_CANNON, + .animMoveOnWireNetRight = MARIO_ANIM_MOVE_ON_WIRE_NET_RIGHT, + .animMoveOnWireNetLeft = MARIO_ANIM_MOVE_ON_WIRE_NET_LEFT, + .animMissingCap = MARIO_ANIM_MISSING_CAP, + .animPullDoorWalkIn = MARIO_ANIM_PULL_DOOR_WALK_IN, + .animPushDoorWalkIn = MARIO_ANIM_PUSH_DOOR_WALK_IN, + .animUnlockDoor = MARIO_ANIM_UNLOCK_DOOR, + .animStartReachPocket = MARIO_ANIM_START_REACH_POCKET, + .animReachPocket = MARIO_ANIM_REACH_POCKET, + .animStopReachPocket = MARIO_ANIM_STOP_REACH_POCKET, + .animGroundThrow = MARIO_ANIM_GROUND_THROW, + .animGroundKick = MARIO_ANIM_GROUND_KICK, + .animFirstPunch = MARIO_ANIM_FIRST_PUNCH, + .animSecondPunch = MARIO_ANIM_SECOND_PUNCH, + .animFirstPunchFast = MARIO_ANIM_FIRST_PUNCH_FAST, + .animSecondPunchFast = MARIO_ANIM_SECOND_PUNCH_FAST, + .animPickUpLightObj = MARIO_ANIM_PICK_UP_LIGHT_OBJ, + .animPushing = MARIO_ANIM_PUSHING, + .animStartRidingShell = MARIO_ANIM_START_RIDING_SHELL, + .animPlaceLightObj = MARIO_ANIM_PLACE_LIGHT_OBJ, + .animForwardSpinning = MARIO_ANIM_FORWARD_SPINNING, + .animBackwardSpinning = MARIO_ANIM_BACKWARD_SPINNING, + .animBreakdance = MARIO_ANIM_BREAKDANCE, + .animRunning = MARIO_ANIM_RUNNING, + .animRunningUnused = MARIO_ANIM_RUNNING_UNUSED, + .animSoftBackKb = MARIO_ANIM_SOFT_BACK_KB, + .animSoftFrontKb = MARIO_ANIM_SOFT_FRONT_KB, + .animDyingInQuicksand = MARIO_ANIM_DYING_IN_QUICKSAND, + .animIdleInQuicksand = MARIO_ANIM_IDLE_IN_QUICKSAND, + .animMoveInQuicksand = MARIO_ANIM_MOVE_IN_QUICKSAND, + .animElectrocution = MARIO_ANIM_ELECTROCUTION, + .animShocked = MARIO_ANIM_SHOCKED, + .animBackwardKb = MARIO_ANIM_BACKWARD_KB, + .animForwardKb = MARIO_ANIM_FORWARD_KB, + .animIdleHeavyObj = MARIO_ANIM_IDLE_HEAVY_OBJ, + .animStandAgainstWall = MARIO_ANIM_STAND_AGAINST_WALL, + .animSidestepLeft = MARIO_ANIM_SIDESTEP_LEFT, + .animSidestepRight = MARIO_ANIM_SIDESTEP_RIGHT, + .animStartSleepIdle = MARIO_ANIM_START_SLEEP_IDLE, + .animStartSleepScratch = MARIO_ANIM_START_SLEEP_SCRATCH, + .animStartSleepYawn = MARIO_ANIM_START_SLEEP_YAWN, + .animStartSleepSitting = MARIO_ANIM_START_SLEEP_SITTING, + .animSleepIdle = MARIO_ANIM_SLEEP_IDLE, + .animSleepStartLying = MARIO_ANIM_SLEEP_START_LYING, + .animSleepLying = MARIO_ANIM_SLEEP_LYING, + .animDive = MARIO_ANIM_DIVE, + .animSlideDive = MARIO_ANIM_SLIDE_DIVE, + .animGroundBonk = MARIO_ANIM_GROUND_BONK, + .animStopSlideLightObj = MARIO_ANIM_STOP_SLIDE_LIGHT_OBJ, + .animSlideKick = MARIO_ANIM_SLIDE_KICK, + .animCrouchFromSlideKick = MARIO_ANIM_CROUCH_FROM_SLIDE_KICK, + .animSlideMotionless = MARIO_ANIM_SLIDE_MOTIONLESS, + .animStopSlide = MARIO_ANIM_STOP_SLIDE, + .animFallFromSlide = MARIO_ANIM_FALL_FROM_SLIDE, + .animSlide = MARIO_ANIM_SLIDE, + .animTiptoe = MARIO_ANIM_TIPTOE, + .animTwirlLand = MARIO_ANIM_TWIRL_LAND, + .animTwirl = MARIO_ANIM_TWIRL, + .animStartTwirl = MARIO_ANIM_START_TWIRL, + .animStopCrouching = MARIO_ANIM_STOP_CROUCHING, + .animStartCrouching = MARIO_ANIM_START_CROUCHING, + .animCrouching = MARIO_ANIM_CROUCHING, + .animCrawling = MARIO_ANIM_CRAWLING, + .animStopCrawling = MARIO_ANIM_STOP_CRAWLING, + .animStartCrawling = MARIO_ANIM_START_CRAWLING, + .animSummonStar = MARIO_ANIM_SUMMON_STAR, + .animReturnStarApproachDoor = MARIO_ANIM_RETURN_STAR_APPROACH_DOOR, + .animBackwardsWaterKb = MARIO_ANIM_BACKWARDS_WATER_KB, + .animSwimWithObjPart1 = MARIO_ANIM_SWIM_WITH_OBJ_PART1, + .animSwimWithObjPart2 = MARIO_ANIM_SWIM_WITH_OBJ_PART2, + .animFlutterkickWithObj = MARIO_ANIM_FLUTTERKICK_WITH_OBJ, + .animWaterActionEndWithObj = MARIO_ANIM_WATER_ACTION_END_WITH_OBJ, + .animStopGrabObjWater = MARIO_ANIM_STOP_GRAB_OBJ_WATER, + .animWaterIdleWithObj = MARIO_ANIM_WATER_IDLE_WITH_OBJ, + .animDrowningPart1 = MARIO_ANIM_DROWNING_PART1, + .animDrowningPart2 = MARIO_ANIM_DROWNING_PART2, + .animWaterDying = MARIO_ANIM_WATER_DYING, + .animWaterForwardKb = MARIO_ANIM_WATER_FORWARD_KB, + .animFallFromWater = MARIO_ANIM_FALL_FROM_WATER, + .animSwimPart1 = MARIO_ANIM_SWIM_PART1, + .animSwimPart2 = MARIO_ANIM_SWIM_PART2, + .animFlutterkick = MARIO_ANIM_FLUTTERKICK, + .animWaterActionEnd = MARIO_ANIM_WATER_ACTION_END, + .animWaterPickUpObj = MARIO_ANIM_WATER_PICK_UP_OBJ, + .animWaterGrabObjPart2 = MARIO_ANIM_WATER_GRAB_OBJ_PART2, + .animWaterGrabObjPart1 = MARIO_ANIM_WATER_GRAB_OBJ_PART1, + .animWaterThrowObj = MARIO_ANIM_WATER_THROW_OBJ, + .animWaterIdle = MARIO_ANIM_WATER_IDLE, + .animWaterStarDance = MARIO_ANIM_WATER_STAR_DANCE, + .animReturnFromWaterStarDance = MARIO_ANIM_RETURN_FROM_WATER_STAR_DANCE, + .animGrabBowser = MARIO_ANIM_GRAB_BOWSER, + .animSwingingBowser = MARIO_ANIM_SWINGING_BOWSER, + .animReleaseBowser = MARIO_ANIM_RELEASE_BOWSER, + .animHoldingBowser = MARIO_ANIM_HOLDING_BOWSER, + .animHeavyThrow = MARIO_ANIM_HEAVY_THROW, + .animWalkPanting = MARIO_ANIM_WALK_PANTING, + .animWalkWithHeavyObj = MARIO_ANIM_WALK_WITH_HEAVY_OBJ, + .animTurningPart1 = MARIO_ANIM_TURNING_PART1, + .animTurningPart2 = MARIO_ANIM_TURNING_PART2, + .animSlideflipLand = MARIO_ANIM_SLIDEFLIP_LAND, + .animSlideflip = MARIO_ANIM_SLIDEFLIP, + .animTripleJumpLand = MARIO_ANIM_TRIPLE_JUMP_LAND, + .animTripleJump = MARIO_ANIM_TRIPLE_JUMP, + .animFirstPerson = MARIO_ANIM_FIRST_PERSON, + .animIdleHeadLeft = MARIO_ANIM_IDLE_HEAD_LEFT, + .animIdleHeadRight = MARIO_ANIM_IDLE_HEAD_RIGHT, + .animIdleHeadCenter = MARIO_ANIM_IDLE_HEAD_CENTER, + .animHandstandLeft = MARIO_ANIM_HANDSTAND_LEFT, + .animHandstandRight = MARIO_ANIM_HANDSTAND_RIGHT, + .animWakeFromSleep = MARIO_ANIM_WAKE_FROM_SLEEP, + .animWakeFromLying = MARIO_ANIM_WAKE_FROM_LYING, + .animStartTiptoe = MARIO_ANIM_START_TIPTOE, + .animSlidejump = MARIO_ANIM_SLIDEJUMP, + .animStartWallkick = MARIO_ANIM_START_WALLKICK, + .animStarDance = MARIO_ANIM_STAR_DANCE, + .animReturnFromStarDance = MARIO_ANIM_RETURN_FROM_STAR_DANCE, + .animForwardSpinningFlip = MARIO_ANIM_FORWARD_SPINNING_FLIP, + .animTripleJumpFly = MARIO_ANIM_TRIPLE_JUMP_FLY, + // sounds .soundFreqScale = 1.0f, .soundYahWahHoo = SOUND_MARIO_YAH_WAH_HOO, @@ -111,6 +323,218 @@ struct Character gCharacters[CT_MAX] = { .torsoRotMult = 1.0f, // anim .animOffsetEnabled = false, + + // character anims + .animSlowLedgeGrab = MARIO_ANIM_SLOW_LEDGE_GRAB, + .animFallOverBackwards = MARIO_ANIM_FALL_OVER_BACKWARDS, + .animBackwardAirKb = MARIO_ANIM_BACKWARD_AIR_KB, + .animDyingOnBack = MARIO_ANIM_DYING_ON_BACK, + .animBackflip = MARIO_ANIM_BACKFLIP, + .animClimbUpPole = MARIO_ANIM_CLIMB_UP_POLE, + .animGrabPoleShort = MARIO_ANIM_GRAB_POLE_SHORT, + .animGrabPoleSwingPart1 = MARIO_ANIM_GRAB_POLE_SWING_PART1, + .animGrabPoleSwingPart2 = MARIO_ANIM_GRAB_POLE_SWING_PART2, + .animHandstandIdle = MARIO_ANIM_HANDSTAND_IDLE, + .animHandstandJump = MARIO_ANIM_HANDSTAND_JUMP, + .animStartHandstand = MARIO_ANIM_START_HANDSTAND, + .animReturnFromHandstand = MARIO_ANIM_RETURN_FROM_HANDSTAND, + .animIdleOnPole = MARIO_ANIM_IDLE_ON_POLE, + .animAPose = MARIO_ANIM_A_POSE, + .animSkidOnGround = MARIO_ANIM_SKID_ON_GROUND, + .animStopSkid = MARIO_ANIM_STOP_SKID, + .animCrouchFromFastLongjump = MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP, + .animCrouchFromSlowLongjump = MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP, + .animFastLongjump = MARIO_ANIM_FAST_LONGJUMP, + .animSlowLongjump = MARIO_ANIM_SLOW_LONGJUMP, + .animAirborneOnStomach = MARIO_ANIM_AIRBORNE_ON_STOMACH, + .animWalkWithLightObj = MARIO_ANIM_WALK_WITH_LIGHT_OBJ, + .animRunWithLightObj = MARIO_ANIM_RUN_WITH_LIGHT_OBJ, + .animSlowWalkWithLightObj = MARIO_ANIM_SLOW_WALK_WITH_LIGHT_OBJ, + .animShiveringWarmingHand = MARIO_ANIM_SHIVERING_WARMING_HAND, + .animShiveringReturnToIdle = MARIO_ANIM_SHIVERING_RETURN_TO_IDLE, + .animShivering = MARIO_ANIM_SHIVERING, + .animClimbDownLedge = MARIO_ANIM_CLIMB_DOWN_LEDGE, + .animCreditsWaving = MARIO_ANIM_CREDITS_WAVING, + .animCreditsLookUp = MARIO_ANIM_CREDITS_LOOK_UP, + .animCreditsReturnFromLookUp = MARIO_ANIM_CREDITS_RETURN_FROM_LOOK_UP, + .animCreditsRaiseHand = MARIO_ANIM_CREDITS_RAISE_HAND, + .animCreditsLowerHand = MARIO_ANIM_CREDITS_LOWER_HAND, + .animCreditsTakeOffCap = MARIO_ANIM_CREDITS_TAKE_OFF_CAP, + .animCreditsStartWalkLookUp = MARIO_ANIM_CREDITS_START_WALK_LOOK_UP, + .animCreditsLookBackThenRun = MARIO_ANIM_CREDITS_LOOK_BACK_THEN_RUN, + .animFinalBowserRaiseHandSpin = MARIO_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN, + .animFinalBowserWingCapTakeOff = MARIO_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF, + .animCreditsPeaceSign = MARIO_ANIM_CREDITS_PEACE_SIGN, + .animStandUpFromLavaBoost = MARIO_ANIM_STAND_UP_FROM_LAVA_BOOST, + .animFireLavaBurn = MARIO_ANIM_FIRE_LAVA_BURN, + .animWingCapFly = MARIO_ANIM_WING_CAP_FLY, + .animHangOnOwl = MARIO_ANIM_HANG_ON_OWL, + .animLandOnStomach = MARIO_ANIM_LAND_ON_STOMACH, + .animAirForwardKb = MARIO_ANIM_AIR_FORWARD_KB, + .animDyingOnStomach = MARIO_ANIM_DYING_ON_STOMACH, + .animSuffocating = MARIO_ANIM_SUFFOCATING, + .animCoughing = MARIO_ANIM_COUGHING, + .animThrowCatchKey = MARIO_ANIM_THROW_CATCH_KEY, + .animDyingFallOver = MARIO_ANIM_DYING_FALL_OVER, + .animIdleOnLedge = MARIO_ANIM_IDLE_ON_LEDGE, + .animFastLedgeGrab = MARIO_ANIM_FAST_LEDGE_GRAB, + .animHangOnCeiling = MARIO_ANIM_HANG_ON_CEILING, + .animPutCapOn = MARIO_ANIM_PUT_CAP_ON, + .animTakeCapOffThenOn = MARIO_ANIM_TAKE_CAP_OFF_THEN_ON, + .animQuicklyPutCapOn = MARIO_ANIM_QUICKLY_PUT_CAP_ON, + .animHeadStuckInGround = MARIO_ANIM_HEAD_STUCK_IN_GROUND, + .animGroundPoundLanding = MARIO_ANIM_GROUND_POUND_LANDING, + .animTripleJumpGroundPound = MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND, + .animStartGroundPound = MARIO_ANIM_START_GROUND_POUND, + .animGroundPound = MARIO_ANIM_GROUND_POUND, + .animBottomStuckInGround = MARIO_ANIM_BOTTOM_STUCK_IN_GROUND, + .animIdleWithLightObj = MARIO_ANIM_IDLE_WITH_LIGHT_OBJ, + .animJumpLandWithLightObj = MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, + .animJumpWithLightObj = MARIO_ANIM_JUMP_WITH_LIGHT_OBJ, + .animFallLandWithLightObj = MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ, + .animFallWithLightObj = MARIO_ANIM_FALL_WITH_LIGHT_OBJ, + .animFallFromSlidingWithLightObj = MARIO_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ, + .animSlidingOnBottomWithLightObj = MARIO_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ, + .animStandUpFromSlidingWithLightObj = MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ, + .animRidingShell = MARIO_ANIM_RIDING_SHELL, + .animWalking = MARIO_ANIM_WALKING, + .animForwardFlip = MARIO_ANIM_FORWARD_FLIP, + .animJumpRidingShell = MARIO_ANIM_JUMP_RIDING_SHELL, + .animLandFromDoubleJump = MARIO_ANIM_LAND_FROM_DOUBLE_JUMP, + .animDoubleJumpFall = MARIO_ANIM_DOUBLE_JUMP_FALL, + .animSingleJump = MARIO_ANIM_SINGLE_JUMP, + .animLandFromSingleJump = MARIO_ANIM_LAND_FROM_SINGLE_JUMP, + .animAirKick = MARIO_ANIM_AIR_KICK, + .animDoubleJumpRise = MARIO_ANIM_DOUBLE_JUMP_RISE, + .animStartForwardSpinning = MARIO_ANIM_START_FORWARD_SPINNING, + .animThrowLightObject = MARIO_ANIM_THROW_LIGHT_OBJECT, + .animFallFromSlideKick = MARIO_ANIM_FALL_FROM_SLIDE_KICK, + .animBendKnessRidingShell = MARIO_ANIM_BEND_KNESS_RIDING_SHELL, + .animLegsStuckInGround = MARIO_ANIM_LEGS_STUCK_IN_GROUND, + .animGeneralFall = MARIO_ANIM_GENERAL_FALL, + .animGeneralLand = MARIO_ANIM_GENERAL_LAND, + .animBeingGrabbed = MARIO_ANIM_BEING_GRABBED, + .animGrabHeavyObject = MARIO_ANIM_GRAB_HEAVY_OBJECT, + .animSlowLandFromDive = MARIO_ANIM_SLOW_LAND_FROM_DIVE, + .animFlyFromCannon = MARIO_ANIM_FLY_FROM_CANNON, + .animMoveOnWireNetRight = MARIO_ANIM_MOVE_ON_WIRE_NET_RIGHT, + .animMoveOnWireNetLeft = MARIO_ANIM_MOVE_ON_WIRE_NET_LEFT, + .animMissingCap = MARIO_ANIM_MISSING_CAP, + .animPullDoorWalkIn = MARIO_ANIM_PULL_DOOR_WALK_IN, + .animPushDoorWalkIn = MARIO_ANIM_PUSH_DOOR_WALK_IN, + .animUnlockDoor = MARIO_ANIM_UNLOCK_DOOR, + .animStartReachPocket = MARIO_ANIM_START_REACH_POCKET, + .animReachPocket = MARIO_ANIM_REACH_POCKET, + .animStopReachPocket = MARIO_ANIM_STOP_REACH_POCKET, + .animGroundThrow = MARIO_ANIM_GROUND_THROW, + .animGroundKick = MARIO_ANIM_GROUND_KICK, + .animFirstPunch = MARIO_ANIM_FIRST_PUNCH, + .animSecondPunch = MARIO_ANIM_SECOND_PUNCH, + .animFirstPunchFast = MARIO_ANIM_FIRST_PUNCH_FAST, + .animSecondPunchFast = MARIO_ANIM_SECOND_PUNCH_FAST, + .animPickUpLightObj = MARIO_ANIM_PICK_UP_LIGHT_OBJ, + .animPushing = MARIO_ANIM_PUSHING, + .animStartRidingShell = MARIO_ANIM_START_RIDING_SHELL, + .animPlaceLightObj = MARIO_ANIM_PLACE_LIGHT_OBJ, + .animForwardSpinning = MARIO_ANIM_FORWARD_SPINNING, + .animBackwardSpinning = MARIO_ANIM_BACKWARD_SPINNING, + .animBreakdance = MARIO_ANIM_BREAKDANCE, + .animRunning = MARIO_ANIM_RUNNING, + .animRunningUnused = MARIO_ANIM_RUNNING_UNUSED, + .animSoftBackKb = MARIO_ANIM_SOFT_BACK_KB, + .animSoftFrontKb = MARIO_ANIM_SOFT_FRONT_KB, + .animDyingInQuicksand = MARIO_ANIM_DYING_IN_QUICKSAND, + .animIdleInQuicksand = MARIO_ANIM_IDLE_IN_QUICKSAND, + .animMoveInQuicksand = MARIO_ANIM_MOVE_IN_QUICKSAND, + .animElectrocution = MARIO_ANIM_ELECTROCUTION, + .animShocked = MARIO_ANIM_SHOCKED, + .animBackwardKb = MARIO_ANIM_BACKWARD_KB, + .animForwardKb = MARIO_ANIM_FORWARD_KB, + .animIdleHeavyObj = MARIO_ANIM_IDLE_HEAVY_OBJ, + .animStandAgainstWall = MARIO_ANIM_STAND_AGAINST_WALL, + .animSidestepLeft = MARIO_ANIM_SIDESTEP_LEFT, + .animSidestepRight = MARIO_ANIM_SIDESTEP_RIGHT, + .animStartSleepIdle = MARIO_ANIM_START_SLEEP_IDLE, + .animStartSleepScratch = MARIO_ANIM_START_SLEEP_SCRATCH, + .animStartSleepYawn = MARIO_ANIM_START_SLEEP_YAWN, + .animStartSleepSitting = MARIO_ANIM_START_SLEEP_SITTING, + .animSleepIdle = MARIO_ANIM_SLEEP_IDLE, + .animSleepStartLying = MARIO_ANIM_SLEEP_START_LYING, + .animSleepLying = MARIO_ANIM_SLEEP_LYING, + .animDive = MARIO_ANIM_DIVE, + .animSlideDive = MARIO_ANIM_SLIDE_DIVE, + .animGroundBonk = MARIO_ANIM_GROUND_BONK, + .animStopSlideLightObj = MARIO_ANIM_STOP_SLIDE_LIGHT_OBJ, + .animSlideKick = MARIO_ANIM_SLIDE_KICK, + .animCrouchFromSlideKick = MARIO_ANIM_CROUCH_FROM_SLIDE_KICK, + .animSlideMotionless = MARIO_ANIM_SLIDE_MOTIONLESS, + .animStopSlide = MARIO_ANIM_STOP_SLIDE, + .animFallFromSlide = MARIO_ANIM_FALL_FROM_SLIDE, + .animSlide = MARIO_ANIM_SLIDE, + .animTiptoe = MARIO_ANIM_TIPTOE, + .animTwirlLand = MARIO_ANIM_TWIRL_LAND, + .animTwirl = MARIO_ANIM_TWIRL, + .animStartTwirl = MARIO_ANIM_START_TWIRL, + .animStopCrouching = MARIO_ANIM_STOP_CROUCHING, + .animStartCrouching = MARIO_ANIM_START_CROUCHING, + .animCrouching = MARIO_ANIM_CROUCHING, + .animCrawling = MARIO_ANIM_CRAWLING, + .animStopCrawling = MARIO_ANIM_STOP_CRAWLING, + .animStartCrawling = MARIO_ANIM_START_CRAWLING, + .animSummonStar = MARIO_ANIM_SUMMON_STAR, + .animReturnStarApproachDoor = MARIO_ANIM_RETURN_STAR_APPROACH_DOOR, + .animBackwardsWaterKb = MARIO_ANIM_BACKWARDS_WATER_KB, + .animSwimWithObjPart1 = MARIO_ANIM_SWIM_WITH_OBJ_PART1, + .animSwimWithObjPart2 = MARIO_ANIM_SWIM_WITH_OBJ_PART2, + .animFlutterkickWithObj = MARIO_ANIM_FLUTTERKICK_WITH_OBJ, + .animWaterActionEndWithObj = MARIO_ANIM_WATER_ACTION_END_WITH_OBJ, + .animStopGrabObjWater = MARIO_ANIM_STOP_GRAB_OBJ_WATER, + .animWaterIdleWithObj = MARIO_ANIM_WATER_IDLE_WITH_OBJ, + .animDrowningPart1 = MARIO_ANIM_DROWNING_PART1, + .animDrowningPart2 = MARIO_ANIM_DROWNING_PART2, + .animWaterDying = MARIO_ANIM_WATER_DYING, + .animWaterForwardKb = MARIO_ANIM_WATER_FORWARD_KB, + .animFallFromWater = MARIO_ANIM_FALL_FROM_WATER, + .animSwimPart1 = MARIO_ANIM_SWIM_PART1, + .animSwimPart2 = MARIO_ANIM_SWIM_PART2, + .animFlutterkick = MARIO_ANIM_FLUTTERKICK, + .animWaterActionEnd = MARIO_ANIM_WATER_ACTION_END, + .animWaterPickUpObj = MARIO_ANIM_WATER_PICK_UP_OBJ, + .animWaterGrabObjPart2 = MARIO_ANIM_WATER_GRAB_OBJ_PART2, + .animWaterGrabObjPart1 = MARIO_ANIM_WATER_GRAB_OBJ_PART1, + .animWaterThrowObj = MARIO_ANIM_WATER_THROW_OBJ, + .animWaterIdle = MARIO_ANIM_WATER_IDLE, + .animWaterStarDance = MARIO_ANIM_WATER_STAR_DANCE, + .animReturnFromWaterStarDance = MARIO_ANIM_RETURN_FROM_WATER_STAR_DANCE, + .animGrabBowser = MARIO_ANIM_GRAB_BOWSER, + .animSwingingBowser = MARIO_ANIM_SWINGING_BOWSER, + .animReleaseBowser = MARIO_ANIM_RELEASE_BOWSER, + .animHoldingBowser = MARIO_ANIM_HOLDING_BOWSER, + .animHeavyThrow = MARIO_ANIM_HEAVY_THROW, + .animWalkPanting = MARIO_ANIM_WALK_PANTING, + .animWalkWithHeavyObj = MARIO_ANIM_WALK_WITH_HEAVY_OBJ, + .animTurningPart1 = MARIO_ANIM_TURNING_PART1, + .animTurningPart2 = MARIO_ANIM_TURNING_PART2, + .animSlideflipLand = MARIO_ANIM_SLIDEFLIP_LAND, + .animSlideflip = MARIO_ANIM_SLIDEFLIP, + .animTripleJumpLand = MARIO_ANIM_TRIPLE_JUMP_LAND, + .animTripleJump = MARIO_ANIM_TRIPLE_JUMP, + .animFirstPerson = MARIO_ANIM_FIRST_PERSON, + .animIdleHeadLeft = MARIO_ANIM_IDLE_HEAD_LEFT, + .animIdleHeadRight = MARIO_ANIM_IDLE_HEAD_RIGHT, + .animIdleHeadCenter = MARIO_ANIM_IDLE_HEAD_CENTER, + .animHandstandLeft = MARIO_ANIM_HANDSTAND_LEFT, + .animHandstandRight = MARIO_ANIM_HANDSTAND_RIGHT, + .animWakeFromSleep = MARIO_ANIM_WAKE_FROM_SLEEP, + .animWakeFromLying = MARIO_ANIM_WAKE_FROM_LYING, + .animStartTiptoe = MARIO_ANIM_START_TIPTOE, + .animSlidejump = MARIO_ANIM_SLIDEJUMP, + .animStartWallkick = MARIO_ANIM_START_WALLKICK, + .animStarDance = MARIO_ANIM_STAR_DANCE, + .animReturnFromStarDance = MARIO_ANIM_RETURN_FROM_STAR_DANCE, + .animForwardSpinningFlip = MARIO_ANIM_FORWARD_SPINNING_FLIP, + .animTripleJumpFly = MARIO_ANIM_TRIPLE_JUMP_FLY, + // sounds .soundFreqScale = 1.0f, .soundYahWahHoo = SOUND_LUIGI_YAH_WAH_HOO, @@ -176,6 +600,218 @@ struct Character gCharacters[CT_MAX] = { .torsoRotMult = 1.0f, // anim .animOffsetEnabled = false, + + // character anims + .animSlowLedgeGrab = MARIO_ANIM_SLOW_LEDGE_GRAB, + .animFallOverBackwards = MARIO_ANIM_FALL_OVER_BACKWARDS, + .animBackwardAirKb = MARIO_ANIM_BACKWARD_AIR_KB, + .animDyingOnBack = MARIO_ANIM_DYING_ON_BACK, + .animBackflip = MARIO_ANIM_BACKFLIP, + .animClimbUpPole = MARIO_ANIM_CLIMB_UP_POLE, + .animGrabPoleShort = MARIO_ANIM_GRAB_POLE_SHORT, + .animGrabPoleSwingPart1 = MARIO_ANIM_GRAB_POLE_SWING_PART1, + .animGrabPoleSwingPart2 = MARIO_ANIM_GRAB_POLE_SWING_PART2, + .animHandstandIdle = MARIO_ANIM_HANDSTAND_IDLE, + .animHandstandJump = MARIO_ANIM_HANDSTAND_JUMP, + .animStartHandstand = MARIO_ANIM_START_HANDSTAND, + .animReturnFromHandstand = MARIO_ANIM_RETURN_FROM_HANDSTAND, + .animIdleOnPole = MARIO_ANIM_IDLE_ON_POLE, + .animAPose = MARIO_ANIM_A_POSE, + .animSkidOnGround = MARIO_ANIM_SKID_ON_GROUND, + .animStopSkid = MARIO_ANIM_STOP_SKID, + .animCrouchFromFastLongjump = MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP, + .animCrouchFromSlowLongjump = MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP, + .animFastLongjump = MARIO_ANIM_FAST_LONGJUMP, + .animSlowLongjump = MARIO_ANIM_SLOW_LONGJUMP, + .animAirborneOnStomach = MARIO_ANIM_AIRBORNE_ON_STOMACH, + .animWalkWithLightObj = MARIO_ANIM_WALK_WITH_LIGHT_OBJ, + .animRunWithLightObj = MARIO_ANIM_RUN_WITH_LIGHT_OBJ, + .animSlowWalkWithLightObj = MARIO_ANIM_SLOW_WALK_WITH_LIGHT_OBJ, + .animShiveringWarmingHand = MARIO_ANIM_SHIVERING_WARMING_HAND, + .animShiveringReturnToIdle = MARIO_ANIM_SHIVERING_RETURN_TO_IDLE, + .animShivering = MARIO_ANIM_SHIVERING, + .animClimbDownLedge = MARIO_ANIM_CLIMB_DOWN_LEDGE, + .animCreditsWaving = MARIO_ANIM_CREDITS_WAVING, + .animCreditsLookUp = MARIO_ANIM_CREDITS_LOOK_UP, + .animCreditsReturnFromLookUp = MARIO_ANIM_CREDITS_RETURN_FROM_LOOK_UP, + .animCreditsRaiseHand = MARIO_ANIM_CREDITS_RAISE_HAND, + .animCreditsLowerHand = MARIO_ANIM_CREDITS_LOWER_HAND, + .animCreditsTakeOffCap = MARIO_ANIM_CREDITS_TAKE_OFF_CAP, + .animCreditsStartWalkLookUp = MARIO_ANIM_CREDITS_START_WALK_LOOK_UP, + .animCreditsLookBackThenRun = MARIO_ANIM_CREDITS_LOOK_BACK_THEN_RUN, + .animFinalBowserRaiseHandSpin = MARIO_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN, + .animFinalBowserWingCapTakeOff = MARIO_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF, + .animCreditsPeaceSign = MARIO_ANIM_CREDITS_PEACE_SIGN, + .animStandUpFromLavaBoost = MARIO_ANIM_STAND_UP_FROM_LAVA_BOOST, + .animFireLavaBurn = MARIO_ANIM_FIRE_LAVA_BURN, + .animWingCapFly = MARIO_ANIM_WING_CAP_FLY, + .animHangOnOwl = MARIO_ANIM_HANG_ON_OWL, + .animLandOnStomach = MARIO_ANIM_LAND_ON_STOMACH, + .animAirForwardKb = MARIO_ANIM_AIR_FORWARD_KB, + .animDyingOnStomach = MARIO_ANIM_DYING_ON_STOMACH, + .animSuffocating = MARIO_ANIM_SUFFOCATING, + .animCoughing = MARIO_ANIM_COUGHING, + .animThrowCatchKey = MARIO_ANIM_THROW_CATCH_KEY, + .animDyingFallOver = MARIO_ANIM_DYING_FALL_OVER, + .animIdleOnLedge = MARIO_ANIM_IDLE_ON_LEDGE, + .animFastLedgeGrab = MARIO_ANIM_FAST_LEDGE_GRAB, + .animHangOnCeiling = MARIO_ANIM_HANG_ON_CEILING, + .animPutCapOn = MARIO_ANIM_PUT_CAP_ON, + .animTakeCapOffThenOn = MARIO_ANIM_TAKE_CAP_OFF_THEN_ON, + .animQuicklyPutCapOn = MARIO_ANIM_QUICKLY_PUT_CAP_ON, + .animHeadStuckInGround = MARIO_ANIM_HEAD_STUCK_IN_GROUND, + .animGroundPoundLanding = MARIO_ANIM_GROUND_POUND_LANDING, + .animTripleJumpGroundPound = MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND, + .animStartGroundPound = MARIO_ANIM_START_GROUND_POUND, + .animGroundPound = MARIO_ANIM_GROUND_POUND, + .animBottomStuckInGround = MARIO_ANIM_BOTTOM_STUCK_IN_GROUND, + .animIdleWithLightObj = MARIO_ANIM_IDLE_WITH_LIGHT_OBJ, + .animJumpLandWithLightObj = MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, + .animJumpWithLightObj = MARIO_ANIM_JUMP_WITH_LIGHT_OBJ, + .animFallLandWithLightObj = MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ, + .animFallWithLightObj = MARIO_ANIM_FALL_WITH_LIGHT_OBJ, + .animFallFromSlidingWithLightObj = MARIO_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ, + .animSlidingOnBottomWithLightObj = MARIO_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ, + .animStandUpFromSlidingWithLightObj = MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ, + .animRidingShell = MARIO_ANIM_RIDING_SHELL, + .animWalking = MARIO_ANIM_WALKING, + .animForwardFlip = MARIO_ANIM_FORWARD_FLIP, + .animJumpRidingShell = MARIO_ANIM_JUMP_RIDING_SHELL, + .animLandFromDoubleJump = MARIO_ANIM_LAND_FROM_DOUBLE_JUMP, + .animDoubleJumpFall = MARIO_ANIM_DOUBLE_JUMP_FALL, + .animSingleJump = MARIO_ANIM_SINGLE_JUMP, + .animLandFromSingleJump = MARIO_ANIM_LAND_FROM_SINGLE_JUMP, + .animAirKick = MARIO_ANIM_AIR_KICK, + .animDoubleJumpRise = MARIO_ANIM_DOUBLE_JUMP_RISE, + .animStartForwardSpinning = MARIO_ANIM_START_FORWARD_SPINNING, + .animThrowLightObject = MARIO_ANIM_THROW_LIGHT_OBJECT, + .animFallFromSlideKick = MARIO_ANIM_FALL_FROM_SLIDE_KICK, + .animBendKnessRidingShell = MARIO_ANIM_BEND_KNESS_RIDING_SHELL, + .animLegsStuckInGround = MARIO_ANIM_LEGS_STUCK_IN_GROUND, + .animGeneralFall = MARIO_ANIM_GENERAL_FALL, + .animGeneralLand = MARIO_ANIM_GENERAL_LAND, + .animBeingGrabbed = MARIO_ANIM_BEING_GRABBED, + .animGrabHeavyObject = MARIO_ANIM_GRAB_HEAVY_OBJECT, + .animSlowLandFromDive = MARIO_ANIM_SLOW_LAND_FROM_DIVE, + .animFlyFromCannon = MARIO_ANIM_FLY_FROM_CANNON, + .animMoveOnWireNetRight = MARIO_ANIM_MOVE_ON_WIRE_NET_RIGHT, + .animMoveOnWireNetLeft = MARIO_ANIM_MOVE_ON_WIRE_NET_LEFT, + .animMissingCap = MARIO_ANIM_MISSING_CAP, + .animPullDoorWalkIn = MARIO_ANIM_PULL_DOOR_WALK_IN, + .animPushDoorWalkIn = MARIO_ANIM_PUSH_DOOR_WALK_IN, + .animUnlockDoor = MARIO_ANIM_UNLOCK_DOOR, + .animStartReachPocket = MARIO_ANIM_START_REACH_POCKET, + .animReachPocket = MARIO_ANIM_REACH_POCKET, + .animStopReachPocket = MARIO_ANIM_STOP_REACH_POCKET, + .animGroundThrow = MARIO_ANIM_GROUND_THROW, + .animGroundKick = MARIO_ANIM_GROUND_KICK, + .animFirstPunch = MARIO_ANIM_FIRST_PUNCH, + .animSecondPunch = MARIO_ANIM_SECOND_PUNCH, + .animFirstPunchFast = MARIO_ANIM_FIRST_PUNCH_FAST, + .animSecondPunchFast = MARIO_ANIM_SECOND_PUNCH_FAST, + .animPickUpLightObj = MARIO_ANIM_PICK_UP_LIGHT_OBJ, + .animPushing = MARIO_ANIM_PUSHING, + .animStartRidingShell = MARIO_ANIM_START_RIDING_SHELL, + .animPlaceLightObj = MARIO_ANIM_PLACE_LIGHT_OBJ, + .animForwardSpinning = MARIO_ANIM_FORWARD_SPINNING, + .animBackwardSpinning = MARIO_ANIM_BACKWARD_SPINNING, + .animBreakdance = MARIO_ANIM_BREAKDANCE, + .animRunning = MARIO_ANIM_RUNNING, + .animRunningUnused = MARIO_ANIM_RUNNING_UNUSED, + .animSoftBackKb = MARIO_ANIM_SOFT_BACK_KB, + .animSoftFrontKb = MARIO_ANIM_SOFT_FRONT_KB, + .animDyingInQuicksand = MARIO_ANIM_DYING_IN_QUICKSAND, + .animIdleInQuicksand = MARIO_ANIM_IDLE_IN_QUICKSAND, + .animMoveInQuicksand = MARIO_ANIM_MOVE_IN_QUICKSAND, + .animElectrocution = MARIO_ANIM_ELECTROCUTION, + .animShocked = MARIO_ANIM_SHOCKED, + .animBackwardKb = MARIO_ANIM_BACKWARD_KB, + .animForwardKb = MARIO_ANIM_FORWARD_KB, + .animIdleHeavyObj = MARIO_ANIM_IDLE_HEAVY_OBJ, + .animStandAgainstWall = MARIO_ANIM_STAND_AGAINST_WALL, + .animSidestepLeft = MARIO_ANIM_SIDESTEP_LEFT, + .animSidestepRight = MARIO_ANIM_SIDESTEP_RIGHT, + .animStartSleepIdle = MARIO_ANIM_START_SLEEP_IDLE, + .animStartSleepScratch = MARIO_ANIM_START_SLEEP_SCRATCH, + .animStartSleepYawn = MARIO_ANIM_START_SLEEP_YAWN, + .animStartSleepSitting = MARIO_ANIM_START_SLEEP_SITTING, + .animSleepIdle = MARIO_ANIM_SLEEP_IDLE, + .animSleepStartLying = MARIO_ANIM_SLEEP_START_LYING, + .animSleepLying = MARIO_ANIM_SLEEP_LYING, + .animDive = MARIO_ANIM_DIVE, + .animSlideDive = MARIO_ANIM_SLIDE_DIVE, + .animGroundBonk = MARIO_ANIM_GROUND_BONK, + .animStopSlideLightObj = MARIO_ANIM_STOP_SLIDE_LIGHT_OBJ, + .animSlideKick = MARIO_ANIM_SLIDE_KICK, + .animCrouchFromSlideKick = MARIO_ANIM_CROUCH_FROM_SLIDE_KICK, + .animSlideMotionless = MARIO_ANIM_SLIDE_MOTIONLESS, + .animStopSlide = MARIO_ANIM_STOP_SLIDE, + .animFallFromSlide = MARIO_ANIM_FALL_FROM_SLIDE, + .animSlide = MARIO_ANIM_SLIDE, + .animTiptoe = MARIO_ANIM_TIPTOE, + .animTwirlLand = MARIO_ANIM_TWIRL_LAND, + .animTwirl = MARIO_ANIM_TWIRL, + .animStartTwirl = MARIO_ANIM_START_TWIRL, + .animStopCrouching = MARIO_ANIM_STOP_CROUCHING, + .animStartCrouching = MARIO_ANIM_START_CROUCHING, + .animCrouching = MARIO_ANIM_CROUCHING, + .animCrawling = MARIO_ANIM_CRAWLING, + .animStopCrawling = MARIO_ANIM_STOP_CRAWLING, + .animStartCrawling = MARIO_ANIM_START_CRAWLING, + .animSummonStar = MARIO_ANIM_SUMMON_STAR, + .animReturnStarApproachDoor = MARIO_ANIM_RETURN_STAR_APPROACH_DOOR, + .animBackwardsWaterKb = MARIO_ANIM_BACKWARDS_WATER_KB, + .animSwimWithObjPart1 = MARIO_ANIM_SWIM_WITH_OBJ_PART1, + .animSwimWithObjPart2 = MARIO_ANIM_SWIM_WITH_OBJ_PART2, + .animFlutterkickWithObj = MARIO_ANIM_FLUTTERKICK_WITH_OBJ, + .animWaterActionEndWithObj = MARIO_ANIM_WATER_ACTION_END_WITH_OBJ, + .animStopGrabObjWater = MARIO_ANIM_STOP_GRAB_OBJ_WATER, + .animWaterIdleWithObj = MARIO_ANIM_WATER_IDLE_WITH_OBJ, + .animDrowningPart1 = MARIO_ANIM_DROWNING_PART1, + .animDrowningPart2 = MARIO_ANIM_DROWNING_PART2, + .animWaterDying = MARIO_ANIM_WATER_DYING, + .animWaterForwardKb = MARIO_ANIM_WATER_FORWARD_KB, + .animFallFromWater = MARIO_ANIM_FALL_FROM_WATER, + .animSwimPart1 = MARIO_ANIM_SWIM_PART1, + .animSwimPart2 = MARIO_ANIM_SWIM_PART2, + .animFlutterkick = MARIO_ANIM_FLUTTERKICK, + .animWaterActionEnd = MARIO_ANIM_WATER_ACTION_END, + .animWaterPickUpObj = MARIO_ANIM_WATER_PICK_UP_OBJ, + .animWaterGrabObjPart2 = MARIO_ANIM_WATER_GRAB_OBJ_PART2, + .animWaterGrabObjPart1 = MARIO_ANIM_WATER_GRAB_OBJ_PART1, + .animWaterThrowObj = MARIO_ANIM_WATER_THROW_OBJ, + .animWaterIdle = MARIO_ANIM_WATER_IDLE, + .animWaterStarDance = MARIO_ANIM_WATER_STAR_DANCE, + .animReturnFromWaterStarDance = MARIO_ANIM_RETURN_FROM_WATER_STAR_DANCE, + .animGrabBowser = MARIO_ANIM_GRAB_BOWSER, + .animSwingingBowser = MARIO_ANIM_SWINGING_BOWSER, + .animReleaseBowser = MARIO_ANIM_RELEASE_BOWSER, + .animHoldingBowser = MARIO_ANIM_HOLDING_BOWSER, + .animHeavyThrow = MARIO_ANIM_HEAVY_THROW, + .animWalkPanting = MARIO_ANIM_WALK_PANTING, + .animWalkWithHeavyObj = MARIO_ANIM_WALK_WITH_HEAVY_OBJ, + .animTurningPart1 = MARIO_ANIM_TURNING_PART1, + .animTurningPart2 = MARIO_ANIM_TURNING_PART2, + .animSlideflipLand = MARIO_ANIM_SLIDEFLIP_LAND, + .animSlideflip = MARIO_ANIM_SLIDEFLIP, + .animTripleJumpLand = MARIO_ANIM_TRIPLE_JUMP_LAND, + .animTripleJump = MARIO_ANIM_TRIPLE_JUMP, + .animFirstPerson = MARIO_ANIM_FIRST_PERSON, + .animIdleHeadLeft = MARIO_ANIM_IDLE_HEAD_LEFT, + .animIdleHeadRight = MARIO_ANIM_IDLE_HEAD_RIGHT, + .animIdleHeadCenter = MARIO_ANIM_IDLE_HEAD_CENTER, + .animHandstandLeft = MARIO_ANIM_HANDSTAND_LEFT, + .animHandstandRight = MARIO_ANIM_HANDSTAND_RIGHT, + .animWakeFromSleep = MARIO_ANIM_WAKE_FROM_SLEEP, + .animWakeFromLying = MARIO_ANIM_WAKE_FROM_LYING, + .animStartTiptoe = MARIO_ANIM_START_TIPTOE, + .animSlidejump = MARIO_ANIM_SLIDEJUMP, + .animStartWallkick = MARIO_ANIM_START_WALLKICK, + .animStarDance = MARIO_ANIM_STAR_DANCE, + .animReturnFromStarDance = MARIO_ANIM_RETURN_FROM_STAR_DANCE, + .animForwardSpinningFlip = MARIO_ANIM_FORWARD_SPINNING_FLIP, + .animTripleJumpFly = MARIO_ANIM_TRIPLE_JUMP_FLY, + // sounds .soundFreqScale = 1.25f, .soundYahWahHoo = SOUND_MARIO_YAH_WAH_HOO, @@ -238,12 +874,224 @@ struct Character gCharacters[CT_MAX] = { .capEnemyLayer = LAYER_OPAQUE, .capEnemyGfx = waluigi_cap_seg3_dl_03022F48, .capEnemyDecalGfx = NULL, - .torsoRotMult = 1.0f, + .torsoRotMult = 0.5f, // anim .animOffsetEnabled = true, .animOffsetLowYPoint = 11, .animOffsetFeet = 25, .animOffsetHand = -10, + + // character anims + .animSlowLedgeGrab = MARIO_ANIM_SLOW_LEDGE_GRAB, + .animFallOverBackwards = MARIO_ANIM_FALL_OVER_BACKWARDS, + .animBackwardAirKb = MARIO_ANIM_BACKWARD_AIR_KB, + .animDyingOnBack = MARIO_ANIM_DYING_ON_BACK, + .animBackflip = MARIO_ANIM_BACKFLIP, + .animClimbUpPole = MARIO_ANIM_CLIMB_UP_POLE, + .animGrabPoleShort = MARIO_ANIM_GRAB_POLE_SHORT, + .animGrabPoleSwingPart1 = MARIO_ANIM_GRAB_POLE_SWING_PART1, + .animGrabPoleSwingPart2 = MARIO_ANIM_GRAB_POLE_SWING_PART2, + .animHandstandIdle = MARIO_ANIM_HANDSTAND_IDLE, + .animHandstandJump = MARIO_ANIM_HANDSTAND_JUMP, + .animStartHandstand = MARIO_ANIM_START_HANDSTAND, + .animReturnFromHandstand = MARIO_ANIM_RETURN_FROM_HANDSTAND, + .animIdleOnPole = MARIO_ANIM_IDLE_ON_POLE, + .animAPose = MARIO_ANIM_A_POSE, + .animSkidOnGround = MARIO_ANIM_SKID_ON_GROUND, + .animStopSkid = MARIO_ANIM_STOP_SKID, + .animCrouchFromFastLongjump = MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP, + .animCrouchFromSlowLongjump = MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP, + .animFastLongjump = MARIO_ANIM_FAST_LONGJUMP, + .animSlowLongjump = MARIO_ANIM_SLOW_LONGJUMP, + .animAirborneOnStomach = MARIO_ANIM_AIRBORNE_ON_STOMACH, + .animWalkWithLightObj = MARIO_ANIM_WALK_WITH_LIGHT_OBJ, + .animRunWithLightObj = MARIO_ANIM_RUN_WITH_LIGHT_OBJ, + .animSlowWalkWithLightObj = MARIO_ANIM_SLOW_WALK_WITH_LIGHT_OBJ, + .animShiveringWarmingHand = MARIO_ANIM_SHIVERING_WARMING_HAND, + .animShiveringReturnToIdle = MARIO_ANIM_SHIVERING_RETURN_TO_IDLE, + .animShivering = MARIO_ANIM_SHIVERING, + .animClimbDownLedge = MARIO_ANIM_CLIMB_DOWN_LEDGE, + .animCreditsWaving = MARIO_ANIM_CREDITS_WAVING, + .animCreditsLookUp = MARIO_ANIM_CREDITS_LOOK_UP, + .animCreditsReturnFromLookUp = MARIO_ANIM_CREDITS_RETURN_FROM_LOOK_UP, + .animCreditsRaiseHand = MARIO_ANIM_CREDITS_RAISE_HAND, + .animCreditsLowerHand = MARIO_ANIM_CREDITS_LOWER_HAND, + .animCreditsTakeOffCap = MARIO_ANIM_CREDITS_TAKE_OFF_CAP, + .animCreditsStartWalkLookUp = MARIO_ANIM_CREDITS_START_WALK_LOOK_UP, + .animCreditsLookBackThenRun = MARIO_ANIM_CREDITS_LOOK_BACK_THEN_RUN, + .animFinalBowserRaiseHandSpin = MARIO_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN, + .animFinalBowserWingCapTakeOff = MARIO_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF, + .animCreditsPeaceSign = MARIO_ANIM_CREDITS_PEACE_SIGN, + .animStandUpFromLavaBoost = MARIO_ANIM_STAND_UP_FROM_LAVA_BOOST, + .animFireLavaBurn = MARIO_ANIM_FIRE_LAVA_BURN, + .animWingCapFly = MARIO_ANIM_WING_CAP_FLY, + .animHangOnOwl = MARIO_ANIM_HANG_ON_OWL, + .animLandOnStomach = MARIO_ANIM_LAND_ON_STOMACH, + .animAirForwardKb = MARIO_ANIM_AIR_FORWARD_KB, + .animDyingOnStomach = MARIO_ANIM_DYING_ON_STOMACH, + .animSuffocating = MARIO_ANIM_SUFFOCATING, + .animCoughing = MARIO_ANIM_COUGHING, + .animThrowCatchKey = MARIO_ANIM_THROW_CATCH_KEY, + .animDyingFallOver = MARIO_ANIM_DYING_FALL_OVER, + .animIdleOnLedge = MARIO_ANIM_IDLE_ON_LEDGE, + .animFastLedgeGrab = MARIO_ANIM_FAST_LEDGE_GRAB, + .animHangOnCeiling = MARIO_ANIM_HANG_ON_CEILING, + .animPutCapOn = MARIO_ANIM_PUT_CAP_ON, + .animTakeCapOffThenOn = MARIO_ANIM_TAKE_CAP_OFF_THEN_ON, + .animQuicklyPutCapOn = MARIO_ANIM_QUICKLY_PUT_CAP_ON, + .animHeadStuckInGround = MARIO_ANIM_HEAD_STUCK_IN_GROUND, + .animGroundPoundLanding = MARIO_ANIM_GROUND_POUND_LANDING, + .animTripleJumpGroundPound = MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND, + .animStartGroundPound = MARIO_ANIM_START_GROUND_POUND, + .animGroundPound = MARIO_ANIM_GROUND_POUND, + .animBottomStuckInGround = MARIO_ANIM_BOTTOM_STUCK_IN_GROUND, + .animIdleWithLightObj = MARIO_ANIM_IDLE_WITH_LIGHT_OBJ, + .animJumpLandWithLightObj = MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, + .animJumpWithLightObj = MARIO_ANIM_JUMP_WITH_LIGHT_OBJ, + .animFallLandWithLightObj = MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ, + .animFallWithLightObj = MARIO_ANIM_FALL_WITH_LIGHT_OBJ, + .animFallFromSlidingWithLightObj = MARIO_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ, + .animSlidingOnBottomWithLightObj = MARIO_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ, + .animStandUpFromSlidingWithLightObj = MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ, + .animRidingShell = MARIO_ANIM_RIDING_SHELL, + .animWalking = WALUIGI_ANIM_WALKING, + .animForwardFlip = MARIO_ANIM_FORWARD_FLIP, + .animJumpRidingShell = MARIO_ANIM_JUMP_RIDING_SHELL, + .animLandFromDoubleJump = MARIO_ANIM_LAND_FROM_DOUBLE_JUMP, + .animDoubleJumpFall = MARIO_ANIM_DOUBLE_JUMP_FALL, + .animSingleJump = MARIO_ANIM_SINGLE_JUMP, + .animLandFromSingleJump = MARIO_ANIM_LAND_FROM_SINGLE_JUMP, + .animAirKick = MARIO_ANIM_AIR_KICK, + .animDoubleJumpRise = MARIO_ANIM_DOUBLE_JUMP_RISE, + .animStartForwardSpinning = MARIO_ANIM_START_FORWARD_SPINNING, + .animThrowLightObject = MARIO_ANIM_THROW_LIGHT_OBJECT, + .animFallFromSlideKick = MARIO_ANIM_FALL_FROM_SLIDE_KICK, + .animBendKnessRidingShell = MARIO_ANIM_BEND_KNESS_RIDING_SHELL, + .animLegsStuckInGround = MARIO_ANIM_LEGS_STUCK_IN_GROUND, + .animGeneralFall = MARIO_ANIM_GENERAL_FALL, + .animGeneralLand = MARIO_ANIM_GENERAL_LAND, + .animBeingGrabbed = MARIO_ANIM_BEING_GRABBED, + .animGrabHeavyObject = MARIO_ANIM_GRAB_HEAVY_OBJECT, + .animSlowLandFromDive = MARIO_ANIM_SLOW_LAND_FROM_DIVE, + .animFlyFromCannon = MARIO_ANIM_FLY_FROM_CANNON, + .animMoveOnWireNetRight = MARIO_ANIM_MOVE_ON_WIRE_NET_RIGHT, + .animMoveOnWireNetLeft = MARIO_ANIM_MOVE_ON_WIRE_NET_LEFT, + .animMissingCap = MARIO_ANIM_MISSING_CAP, + .animPullDoorWalkIn = MARIO_ANIM_PULL_DOOR_WALK_IN, + .animPushDoorWalkIn = MARIO_ANIM_PUSH_DOOR_WALK_IN, + .animUnlockDoor = MARIO_ANIM_UNLOCK_DOOR, + .animStartReachPocket = MARIO_ANIM_START_REACH_POCKET, + .animReachPocket = MARIO_ANIM_REACH_POCKET, + .animStopReachPocket = MARIO_ANIM_STOP_REACH_POCKET, + .animGroundThrow = MARIO_ANIM_GROUND_THROW, + .animGroundKick = MARIO_ANIM_GROUND_KICK, + .animFirstPunch = MARIO_ANIM_FIRST_PUNCH, + .animSecondPunch = MARIO_ANIM_SECOND_PUNCH, + .animFirstPunchFast = MARIO_ANIM_FIRST_PUNCH_FAST, + .animSecondPunchFast = MARIO_ANIM_SECOND_PUNCH_FAST, + .animPickUpLightObj = MARIO_ANIM_PICK_UP_LIGHT_OBJ, + .animPushing = MARIO_ANIM_PUSHING, + .animStartRidingShell = MARIO_ANIM_START_RIDING_SHELL, + .animPlaceLightObj = MARIO_ANIM_PLACE_LIGHT_OBJ, + .animForwardSpinning = MARIO_ANIM_FORWARD_SPINNING, + .animBackwardSpinning = MARIO_ANIM_BACKWARD_SPINNING, + .animBreakdance = MARIO_ANIM_BREAKDANCE, + .animRunning = WALUIGI_ANIM_RUNNING, + .animRunningUnused = MARIO_ANIM_RUNNING_UNUSED, + .animSoftBackKb = MARIO_ANIM_SOFT_BACK_KB, + .animSoftFrontKb = MARIO_ANIM_SOFT_FRONT_KB, + .animDyingInQuicksand = MARIO_ANIM_DYING_IN_QUICKSAND, + .animIdleInQuicksand = MARIO_ANIM_IDLE_IN_QUICKSAND, + .animMoveInQuicksand = MARIO_ANIM_MOVE_IN_QUICKSAND, + .animElectrocution = MARIO_ANIM_ELECTROCUTION, + .animShocked = MARIO_ANIM_SHOCKED, + .animBackwardKb = MARIO_ANIM_BACKWARD_KB, + .animForwardKb = MARIO_ANIM_FORWARD_KB, + .animIdleHeavyObj = MARIO_ANIM_IDLE_HEAVY_OBJ, + .animStandAgainstWall = MARIO_ANIM_STAND_AGAINST_WALL, + .animSidestepLeft = MARIO_ANIM_SIDESTEP_LEFT, + .animSidestepRight = MARIO_ANIM_SIDESTEP_RIGHT, + .animStartSleepIdle = MARIO_ANIM_START_SLEEP_IDLE, + .animStartSleepScratch = MARIO_ANIM_START_SLEEP_SCRATCH, + .animStartSleepYawn = MARIO_ANIM_START_SLEEP_YAWN, + .animStartSleepSitting = MARIO_ANIM_START_SLEEP_SITTING, + .animSleepIdle = MARIO_ANIM_SLEEP_IDLE, + .animSleepStartLying = MARIO_ANIM_SLEEP_START_LYING, + .animSleepLying = MARIO_ANIM_SLEEP_LYING, + .animDive = MARIO_ANIM_DIVE, + .animSlideDive = MARIO_ANIM_SLIDE_DIVE, + .animGroundBonk = MARIO_ANIM_GROUND_BONK, + .animStopSlideLightObj = MARIO_ANIM_STOP_SLIDE_LIGHT_OBJ, + .animSlideKick = MARIO_ANIM_SLIDE_KICK, + .animCrouchFromSlideKick = MARIO_ANIM_CROUCH_FROM_SLIDE_KICK, + .animSlideMotionless = MARIO_ANIM_SLIDE_MOTIONLESS, + .animStopSlide = MARIO_ANIM_STOP_SLIDE, + .animFallFromSlide = MARIO_ANIM_FALL_FROM_SLIDE, + .animSlide = MARIO_ANIM_SLIDE, + .animTiptoe = MARIO_ANIM_TIPTOE, + .animTwirlLand = MARIO_ANIM_TWIRL_LAND, + .animTwirl = MARIO_ANIM_TWIRL, + .animStartTwirl = MARIO_ANIM_START_TWIRL, + .animStopCrouching = MARIO_ANIM_STOP_CROUCHING, + .animStartCrouching = MARIO_ANIM_START_CROUCHING, + .animCrouching = MARIO_ANIM_CROUCHING, + .animCrawling = MARIO_ANIM_CRAWLING, + .animStopCrawling = MARIO_ANIM_STOP_CRAWLING, + .animStartCrawling = MARIO_ANIM_START_CRAWLING, + .animSummonStar = MARIO_ANIM_SUMMON_STAR, + .animReturnStarApproachDoor = MARIO_ANIM_RETURN_STAR_APPROACH_DOOR, + .animBackwardsWaterKb = MARIO_ANIM_BACKWARDS_WATER_KB, + .animSwimWithObjPart1 = MARIO_ANIM_SWIM_WITH_OBJ_PART1, + .animSwimWithObjPart2 = MARIO_ANIM_SWIM_WITH_OBJ_PART2, + .animFlutterkickWithObj = MARIO_ANIM_FLUTTERKICK_WITH_OBJ, + .animWaterActionEndWithObj = MARIO_ANIM_WATER_ACTION_END_WITH_OBJ, + .animStopGrabObjWater = MARIO_ANIM_STOP_GRAB_OBJ_WATER, + .animWaterIdleWithObj = MARIO_ANIM_WATER_IDLE_WITH_OBJ, + .animDrowningPart1 = MARIO_ANIM_DROWNING_PART1, + .animDrowningPart2 = MARIO_ANIM_DROWNING_PART2, + .animWaterDying = MARIO_ANIM_WATER_DYING, + .animWaterForwardKb = MARIO_ANIM_WATER_FORWARD_KB, + .animFallFromWater = MARIO_ANIM_FALL_FROM_WATER, + .animSwimPart1 = MARIO_ANIM_SWIM_PART1, + .animSwimPart2 = MARIO_ANIM_SWIM_PART2, + .animFlutterkick = MARIO_ANIM_FLUTTERKICK, + .animWaterActionEnd = MARIO_ANIM_WATER_ACTION_END, + .animWaterPickUpObj = MARIO_ANIM_WATER_PICK_UP_OBJ, + .animWaterGrabObjPart2 = MARIO_ANIM_WATER_GRAB_OBJ_PART2, + .animWaterGrabObjPart1 = MARIO_ANIM_WATER_GRAB_OBJ_PART1, + .animWaterThrowObj = MARIO_ANIM_WATER_THROW_OBJ, + .animWaterIdle = MARIO_ANIM_WATER_IDLE, + .animWaterStarDance = MARIO_ANIM_WATER_STAR_DANCE, + .animReturnFromWaterStarDance = MARIO_ANIM_RETURN_FROM_WATER_STAR_DANCE, + .animGrabBowser = MARIO_ANIM_GRAB_BOWSER, + .animSwingingBowser = MARIO_ANIM_SWINGING_BOWSER, + .animReleaseBowser = MARIO_ANIM_RELEASE_BOWSER, + .animHoldingBowser = MARIO_ANIM_HOLDING_BOWSER, + .animHeavyThrow = MARIO_ANIM_HEAVY_THROW, + .animWalkPanting = MARIO_ANIM_WALK_PANTING, + .animWalkWithHeavyObj = MARIO_ANIM_WALK_WITH_HEAVY_OBJ, + .animTurningPart1 = MARIO_ANIM_TURNING_PART1, + .animTurningPart2 = MARIO_ANIM_TURNING_PART2, + .animSlideflipLand = MARIO_ANIM_SLIDEFLIP_LAND, + .animSlideflip = MARIO_ANIM_SLIDEFLIP, + .animTripleJumpLand = MARIO_ANIM_TRIPLE_JUMP_LAND, + .animTripleJump = MARIO_ANIM_TRIPLE_JUMP, + .animFirstPerson = MARIO_ANIM_FIRST_PERSON, + .animIdleHeadLeft = MARIO_ANIM_IDLE_HEAD_LEFT, + .animIdleHeadRight = MARIO_ANIM_IDLE_HEAD_RIGHT, + .animIdleHeadCenter = MARIO_ANIM_IDLE_HEAD_CENTER, + .animHandstandLeft = MARIO_ANIM_HANDSTAND_LEFT, + .animHandstandRight = MARIO_ANIM_HANDSTAND_RIGHT, + .animWakeFromSleep = MARIO_ANIM_WAKE_FROM_SLEEP, + .animWakeFromLying = MARIO_ANIM_WAKE_FROM_LYING, + .animStartTiptoe = MARIO_ANIM_START_TIPTOE, + .animSlidejump = MARIO_ANIM_SLIDEJUMP, + .animStartWallkick = MARIO_ANIM_START_WALLKICK, + .animStarDance = MARIO_ANIM_STAR_DANCE, + .animReturnFromStarDance = MARIO_ANIM_RETURN_FROM_STAR_DANCE, + .animForwardSpinningFlip = MARIO_ANIM_FORWARD_SPINNING_FLIP, + .animTripleJumpFly = MARIO_ANIM_TRIPLE_JUMP_FLY, + // sounds .soundFreqScale = 0.99f, .soundYahWahHoo = SOUND_LUIGI_YAH_WAH_HOO, @@ -309,6 +1157,218 @@ struct Character gCharacters[CT_MAX] = { .torsoRotMult = 3.0f / 5.0f, // anim .animOffsetEnabled = true, + + // character anims + .animSlowLedgeGrab = MARIO_ANIM_SLOW_LEDGE_GRAB, + .animFallOverBackwards = MARIO_ANIM_FALL_OVER_BACKWARDS, + .animBackwardAirKb = MARIO_ANIM_BACKWARD_AIR_KB, + .animDyingOnBack = MARIO_ANIM_DYING_ON_BACK, + .animBackflip = MARIO_ANIM_BACKFLIP, + .animClimbUpPole = MARIO_ANIM_CLIMB_UP_POLE, + .animGrabPoleShort = MARIO_ANIM_GRAB_POLE_SHORT, + .animGrabPoleSwingPart1 = MARIO_ANIM_GRAB_POLE_SWING_PART1, + .animGrabPoleSwingPart2 = MARIO_ANIM_GRAB_POLE_SWING_PART2, + .animHandstandIdle = MARIO_ANIM_HANDSTAND_IDLE, + .animHandstandJump = MARIO_ANIM_HANDSTAND_JUMP, + .animStartHandstand = MARIO_ANIM_START_HANDSTAND, + .animReturnFromHandstand = MARIO_ANIM_RETURN_FROM_HANDSTAND, + .animIdleOnPole = MARIO_ANIM_IDLE_ON_POLE, + .animAPose = MARIO_ANIM_A_POSE, + .animSkidOnGround = MARIO_ANIM_SKID_ON_GROUND, + .animStopSkid = MARIO_ANIM_STOP_SKID, + .animCrouchFromFastLongjump = MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP, + .animCrouchFromSlowLongjump = MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP, + .animFastLongjump = MARIO_ANIM_FAST_LONGJUMP, + .animSlowLongjump = MARIO_ANIM_SLOW_LONGJUMP, + .animAirborneOnStomach = MARIO_ANIM_AIRBORNE_ON_STOMACH, + .animWalkWithLightObj = MARIO_ANIM_WALK_WITH_LIGHT_OBJ, + .animRunWithLightObj = MARIO_ANIM_RUN_WITH_LIGHT_OBJ, + .animSlowWalkWithLightObj = MARIO_ANIM_SLOW_WALK_WITH_LIGHT_OBJ, + .animShiveringWarmingHand = MARIO_ANIM_SHIVERING_WARMING_HAND, + .animShiveringReturnToIdle = MARIO_ANIM_SHIVERING_RETURN_TO_IDLE, + .animShivering = MARIO_ANIM_SHIVERING, + .animClimbDownLedge = MARIO_ANIM_CLIMB_DOWN_LEDGE, + .animCreditsWaving = MARIO_ANIM_CREDITS_WAVING, + .animCreditsLookUp = MARIO_ANIM_CREDITS_LOOK_UP, + .animCreditsReturnFromLookUp = MARIO_ANIM_CREDITS_RETURN_FROM_LOOK_UP, + .animCreditsRaiseHand = MARIO_ANIM_CREDITS_RAISE_HAND, + .animCreditsLowerHand = MARIO_ANIM_CREDITS_LOWER_HAND, + .animCreditsTakeOffCap = MARIO_ANIM_CREDITS_TAKE_OFF_CAP, + .animCreditsStartWalkLookUp = MARIO_ANIM_CREDITS_START_WALK_LOOK_UP, + .animCreditsLookBackThenRun = MARIO_ANIM_CREDITS_LOOK_BACK_THEN_RUN, + .animFinalBowserRaiseHandSpin = MARIO_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN, + .animFinalBowserWingCapTakeOff = MARIO_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF, + .animCreditsPeaceSign = MARIO_ANIM_CREDITS_PEACE_SIGN, + .animStandUpFromLavaBoost = MARIO_ANIM_STAND_UP_FROM_LAVA_BOOST, + .animFireLavaBurn = MARIO_ANIM_FIRE_LAVA_BURN, + .animWingCapFly = MARIO_ANIM_WING_CAP_FLY, + .animHangOnOwl = MARIO_ANIM_HANG_ON_OWL, + .animLandOnStomach = MARIO_ANIM_LAND_ON_STOMACH, + .animAirForwardKb = MARIO_ANIM_AIR_FORWARD_KB, + .animDyingOnStomach = MARIO_ANIM_DYING_ON_STOMACH, + .animSuffocating = MARIO_ANIM_SUFFOCATING, + .animCoughing = MARIO_ANIM_COUGHING, + .animThrowCatchKey = MARIO_ANIM_THROW_CATCH_KEY, + .animDyingFallOver = MARIO_ANIM_DYING_FALL_OVER, + .animIdleOnLedge = MARIO_ANIM_IDLE_ON_LEDGE, + .animFastLedgeGrab = MARIO_ANIM_FAST_LEDGE_GRAB, + .animHangOnCeiling = MARIO_ANIM_HANG_ON_CEILING, + .animPutCapOn = MARIO_ANIM_PUT_CAP_ON, + .animTakeCapOffThenOn = MARIO_ANIM_TAKE_CAP_OFF_THEN_ON, + .animQuicklyPutCapOn = MARIO_ANIM_QUICKLY_PUT_CAP_ON, + .animHeadStuckInGround = MARIO_ANIM_HEAD_STUCK_IN_GROUND, + .animGroundPoundLanding = MARIO_ANIM_GROUND_POUND_LANDING, + .animTripleJumpGroundPound = MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND, + .animStartGroundPound = MARIO_ANIM_START_GROUND_POUND, + .animGroundPound = MARIO_ANIM_GROUND_POUND, + .animBottomStuckInGround = MARIO_ANIM_BOTTOM_STUCK_IN_GROUND, + .animIdleWithLightObj = MARIO_ANIM_IDLE_WITH_LIGHT_OBJ, + .animJumpLandWithLightObj = MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, + .animJumpWithLightObj = MARIO_ANIM_JUMP_WITH_LIGHT_OBJ, + .animFallLandWithLightObj = MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ, + .animFallWithLightObj = MARIO_ANIM_FALL_WITH_LIGHT_OBJ, + .animFallFromSlidingWithLightObj = MARIO_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ, + .animSlidingOnBottomWithLightObj = MARIO_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ, + .animStandUpFromSlidingWithLightObj = MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ, + .animRidingShell = MARIO_ANIM_RIDING_SHELL, + .animWalking = MARIO_ANIM_WALKING, + .animForwardFlip = MARIO_ANIM_FORWARD_FLIP, + .animJumpRidingShell = MARIO_ANIM_JUMP_RIDING_SHELL, + .animLandFromDoubleJump = MARIO_ANIM_LAND_FROM_DOUBLE_JUMP, + .animDoubleJumpFall = MARIO_ANIM_DOUBLE_JUMP_FALL, + .animSingleJump = MARIO_ANIM_SINGLE_JUMP, + .animLandFromSingleJump = MARIO_ANIM_LAND_FROM_SINGLE_JUMP, + .animAirKick = MARIO_ANIM_AIR_KICK, + .animDoubleJumpRise = MARIO_ANIM_DOUBLE_JUMP_RISE, + .animStartForwardSpinning = MARIO_ANIM_START_FORWARD_SPINNING, + .animThrowLightObject = MARIO_ANIM_THROW_LIGHT_OBJECT, + .animFallFromSlideKick = MARIO_ANIM_FALL_FROM_SLIDE_KICK, + .animBendKnessRidingShell = MARIO_ANIM_BEND_KNESS_RIDING_SHELL, + .animLegsStuckInGround = MARIO_ANIM_LEGS_STUCK_IN_GROUND, + .animGeneralFall = MARIO_ANIM_GENERAL_FALL, + .animGeneralLand = MARIO_ANIM_GENERAL_LAND, + .animBeingGrabbed = MARIO_ANIM_BEING_GRABBED, + .animGrabHeavyObject = MARIO_ANIM_GRAB_HEAVY_OBJECT, + .animSlowLandFromDive = MARIO_ANIM_SLOW_LAND_FROM_DIVE, + .animFlyFromCannon = MARIO_ANIM_FLY_FROM_CANNON, + .animMoveOnWireNetRight = MARIO_ANIM_MOVE_ON_WIRE_NET_RIGHT, + .animMoveOnWireNetLeft = MARIO_ANIM_MOVE_ON_WIRE_NET_LEFT, + .animMissingCap = MARIO_ANIM_MISSING_CAP, + .animPullDoorWalkIn = MARIO_ANIM_PULL_DOOR_WALK_IN, + .animPushDoorWalkIn = MARIO_ANIM_PUSH_DOOR_WALK_IN, + .animUnlockDoor = MARIO_ANIM_UNLOCK_DOOR, + .animStartReachPocket = MARIO_ANIM_START_REACH_POCKET, + .animReachPocket = MARIO_ANIM_REACH_POCKET, + .animStopReachPocket = MARIO_ANIM_STOP_REACH_POCKET, + .animGroundThrow = MARIO_ANIM_GROUND_THROW, + .animGroundKick = MARIO_ANIM_GROUND_KICK, + .animFirstPunch = MARIO_ANIM_FIRST_PUNCH, + .animSecondPunch = MARIO_ANIM_SECOND_PUNCH, + .animFirstPunchFast = MARIO_ANIM_FIRST_PUNCH_FAST, + .animSecondPunchFast = MARIO_ANIM_SECOND_PUNCH_FAST, + .animPickUpLightObj = MARIO_ANIM_PICK_UP_LIGHT_OBJ, + .animPushing = MARIO_ANIM_PUSHING, + .animStartRidingShell = MARIO_ANIM_START_RIDING_SHELL, + .animPlaceLightObj = MARIO_ANIM_PLACE_LIGHT_OBJ, + .animForwardSpinning = MARIO_ANIM_FORWARD_SPINNING, + .animBackwardSpinning = MARIO_ANIM_BACKWARD_SPINNING, + .animBreakdance = MARIO_ANIM_BREAKDANCE, + .animRunning = MARIO_ANIM_RUNNING, + .animRunningUnused = MARIO_ANIM_RUNNING_UNUSED, + .animSoftBackKb = MARIO_ANIM_SOFT_BACK_KB, + .animSoftFrontKb = MARIO_ANIM_SOFT_FRONT_KB, + .animDyingInQuicksand = MARIO_ANIM_DYING_IN_QUICKSAND, + .animIdleInQuicksand = MARIO_ANIM_IDLE_IN_QUICKSAND, + .animMoveInQuicksand = MARIO_ANIM_MOVE_IN_QUICKSAND, + .animElectrocution = MARIO_ANIM_ELECTROCUTION, + .animShocked = MARIO_ANIM_SHOCKED, + .animBackwardKb = MARIO_ANIM_BACKWARD_KB, + .animForwardKb = MARIO_ANIM_FORWARD_KB, + .animIdleHeavyObj = MARIO_ANIM_IDLE_HEAVY_OBJ, + .animStandAgainstWall = MARIO_ANIM_STAND_AGAINST_WALL, + .animSidestepLeft = MARIO_ANIM_SIDESTEP_LEFT, + .animSidestepRight = MARIO_ANIM_SIDESTEP_RIGHT, + .animStartSleepIdle = MARIO_ANIM_START_SLEEP_IDLE, + .animStartSleepScratch = MARIO_ANIM_START_SLEEP_SCRATCH, + .animStartSleepYawn = MARIO_ANIM_START_SLEEP_YAWN, + .animStartSleepSitting = MARIO_ANIM_START_SLEEP_SITTING, + .animSleepIdle = MARIO_ANIM_SLEEP_IDLE, + .animSleepStartLying = MARIO_ANIM_SLEEP_START_LYING, + .animSleepLying = MARIO_ANIM_SLEEP_LYING, + .animDive = MARIO_ANIM_DIVE, + .animSlideDive = MARIO_ANIM_SLIDE_DIVE, + .animGroundBonk = MARIO_ANIM_GROUND_BONK, + .animStopSlideLightObj = MARIO_ANIM_STOP_SLIDE_LIGHT_OBJ, + .animSlideKick = MARIO_ANIM_SLIDE_KICK, + .animCrouchFromSlideKick = MARIO_ANIM_CROUCH_FROM_SLIDE_KICK, + .animSlideMotionless = MARIO_ANIM_SLIDE_MOTIONLESS, + .animStopSlide = MARIO_ANIM_STOP_SLIDE, + .animFallFromSlide = MARIO_ANIM_FALL_FROM_SLIDE, + .animSlide = MARIO_ANIM_SLIDE, + .animTiptoe = MARIO_ANIM_TIPTOE, + .animTwirlLand = MARIO_ANIM_TWIRL_LAND, + .animTwirl = MARIO_ANIM_TWIRL, + .animStartTwirl = MARIO_ANIM_START_TWIRL, + .animStopCrouching = MARIO_ANIM_STOP_CROUCHING, + .animStartCrouching = MARIO_ANIM_START_CROUCHING, + .animCrouching = MARIO_ANIM_CROUCHING, + .animCrawling = MARIO_ANIM_CRAWLING, + .animStopCrawling = MARIO_ANIM_STOP_CRAWLING, + .animStartCrawling = MARIO_ANIM_START_CRAWLING, + .animSummonStar = MARIO_ANIM_SUMMON_STAR, + .animReturnStarApproachDoor = MARIO_ANIM_RETURN_STAR_APPROACH_DOOR, + .animBackwardsWaterKb = MARIO_ANIM_BACKWARDS_WATER_KB, + .animSwimWithObjPart1 = MARIO_ANIM_SWIM_WITH_OBJ_PART1, + .animSwimWithObjPart2 = MARIO_ANIM_SWIM_WITH_OBJ_PART2, + .animFlutterkickWithObj = MARIO_ANIM_FLUTTERKICK_WITH_OBJ, + .animWaterActionEndWithObj = MARIO_ANIM_WATER_ACTION_END_WITH_OBJ, + .animStopGrabObjWater = MARIO_ANIM_STOP_GRAB_OBJ_WATER, + .animWaterIdleWithObj = MARIO_ANIM_WATER_IDLE_WITH_OBJ, + .animDrowningPart1 = MARIO_ANIM_DROWNING_PART1, + .animDrowningPart2 = MARIO_ANIM_DROWNING_PART2, + .animWaterDying = MARIO_ANIM_WATER_DYING, + .animWaterForwardKb = MARIO_ANIM_WATER_FORWARD_KB, + .animFallFromWater = MARIO_ANIM_FALL_FROM_WATER, + .animSwimPart1 = MARIO_ANIM_SWIM_PART1, + .animSwimPart2 = MARIO_ANIM_SWIM_PART2, + .animFlutterkick = MARIO_ANIM_FLUTTERKICK, + .animWaterActionEnd = MARIO_ANIM_WATER_ACTION_END, + .animWaterPickUpObj = MARIO_ANIM_WATER_PICK_UP_OBJ, + .animWaterGrabObjPart2 = MARIO_ANIM_WATER_GRAB_OBJ_PART2, + .animWaterGrabObjPart1 = MARIO_ANIM_WATER_GRAB_OBJ_PART1, + .animWaterThrowObj = MARIO_ANIM_WATER_THROW_OBJ, + .animWaterIdle = MARIO_ANIM_WATER_IDLE, + .animWaterStarDance = MARIO_ANIM_WATER_STAR_DANCE, + .animReturnFromWaterStarDance = MARIO_ANIM_RETURN_FROM_WATER_STAR_DANCE, + .animGrabBowser = MARIO_ANIM_GRAB_BOWSER, + .animSwingingBowser = MARIO_ANIM_SWINGING_BOWSER, + .animReleaseBowser = MARIO_ANIM_RELEASE_BOWSER, + .animHoldingBowser = MARIO_ANIM_HOLDING_BOWSER, + .animHeavyThrow = MARIO_ANIM_HEAVY_THROW, + .animWalkPanting = MARIO_ANIM_WALK_PANTING, + .animWalkWithHeavyObj = MARIO_ANIM_WALK_WITH_HEAVY_OBJ, + .animTurningPart1 = MARIO_ANIM_TURNING_PART1, + .animTurningPart2 = MARIO_ANIM_TURNING_PART2, + .animSlideflipLand = MARIO_ANIM_SLIDEFLIP_LAND, + .animSlideflip = MARIO_ANIM_SLIDEFLIP, + .animTripleJumpLand = MARIO_ANIM_TRIPLE_JUMP_LAND, + .animTripleJump = MARIO_ANIM_TRIPLE_JUMP, + .animFirstPerson = MARIO_ANIM_FIRST_PERSON, + .animIdleHeadLeft = MARIO_ANIM_IDLE_HEAD_LEFT, + .animIdleHeadRight = MARIO_ANIM_IDLE_HEAD_RIGHT, + .animIdleHeadCenter = MARIO_ANIM_IDLE_HEAD_CENTER, + .animHandstandLeft = MARIO_ANIM_HANDSTAND_LEFT, + .animHandstandRight = MARIO_ANIM_HANDSTAND_RIGHT, + .animWakeFromSleep = MARIO_ANIM_WAKE_FROM_SLEEP, + .animWakeFromLying = MARIO_ANIM_WAKE_FROM_LYING, + .animStartTiptoe = MARIO_ANIM_START_TIPTOE, + .animSlidejump = MARIO_ANIM_SLIDEJUMP, + .animStartWallkick = MARIO_ANIM_START_WALLKICK, + .animStarDance = MARIO_ANIM_STAR_DANCE, + .animReturnFromStarDance = MARIO_ANIM_RETURN_FROM_STAR_DANCE, + .animForwardSpinningFlip = MARIO_ANIM_FORWARD_SPINNING_FLIP, + .animTripleJumpFly = MARIO_ANIM_TRIPLE_JUMP_FLY, + // sounds .soundFreqScale = 1.0f, .soundYahWahHoo = SOUND_WARIO_YAH_WAH_HOO, @@ -405,7 +1465,7 @@ enum AnimType { ANIM_TYPE_HAND, }; -#define ANIM_TYPE_MAX 209 +#define ANIM_TYPE_MAX 211 u8 sAnimTypes[ANIM_TYPE_MAX] = { ANIM_TYPE_HAND, ANIM_TYPE_LOWY, ANIM_TYPE_NONE, ANIM_TYPE_NONE, ANIM_TYPE_NONE, ANIM_TYPE_NONE, ANIM_TYPE_NONE, ANIM_TYPE_NONE, ANIM_TYPE_NONE, ANIM_TYPE_NONE, @@ -448,7 +1508,8 @@ u8 sAnimTypes[ANIM_TYPE_MAX] = { ANIM_TYPE_LOWY, ANIM_TYPE_NONE, ANIM_TYPE_LOWY, ANIM_TYPE_NONE, ANIM_TYPE_LOWY, ANIM_TYPE_LOWY, ANIM_TYPE_LOWY, ANIM_TYPE_LOWY, ANIM_TYPE_HAND, ANIM_TYPE_HAND, ANIM_TYPE_LOWY, ANIM_TYPE_LOWY, ANIM_TYPE_FEET, ANIM_TYPE_LOWY, ANIM_TYPE_LOWY, - ANIM_TYPE_LOWY, ANIM_TYPE_LOWY, ANIM_TYPE_NONE, ANIM_TYPE_NONE, + ANIM_TYPE_LOWY, ANIM_TYPE_LOWY, ANIM_TYPE_NONE, ANIM_TYPE_NONE, ANIM_TYPE_FEET, + ANIM_TYPE_FEET, }; struct Character* get_character(struct MarioState* m) { @@ -588,4 +1649,222 @@ void update_character_anim_offset(struct MarioState* m) { marioObj->header.gfx.pos[1] = m->pos[1] + m->curAnimOffset; marioObj->header.gfx.node.flags |= GRAPH_RENDER_PLAYER; -} \ No newline at end of file +} + +s32 get_character_anim(struct MarioState* m, enum CharacterAnimID characterAnim) { + if (m == NULL || m->marioObj == NULL) { return 0; } + + struct Character* character = ((m == NULL || m->character == NULL) ? &gCharacters[CT_MARIO] : m->character); + switch (characterAnim) { + case CHAR_ANIM_SLOW_LEDGE_GRAB: return character->animSlowLedgeGrab; + case CHAR_ANIM_FALL_OVER_BACKWARDS: return character->animFallOverBackwards; + case CHAR_ANIM_BACKWARD_AIR_KB: return character->animBackwardAirKb; + case CHAR_ANIM_DYING_ON_BACK: return character->animDyingOnBack; + case CHAR_ANIM_BACKFLIP: return character->animBackflip; + case CHAR_ANIM_CLIMB_UP_POLE: return character->animClimbUpPole; + case CHAR_ANIM_GRAB_POLE_SHORT: return character->animGrabPoleShort; + case CHAR_ANIM_GRAB_POLE_SWING_PART1: return character->animGrabPoleSwingPart1; + case CHAR_ANIM_GRAB_POLE_SWING_PART2: return character->animGrabPoleSwingPart2; + case CHAR_ANIM_HANDSTAND_IDLE: return character->animHandstandIdle; + case CHAR_ANIM_HANDSTAND_JUMP: return character->animHandstandJump; + case CHAR_ANIM_START_HANDSTAND: return character->animStartHandstand; + case CHAR_ANIM_RETURN_FROM_HANDSTAND: return character->animReturnFromHandstand; + case CHAR_ANIM_IDLE_ON_POLE: return character->animIdleOnPole; + case CHAR_ANIM_A_POSE: return character->animAPose; + case CHAR_ANIM_SKID_ON_GROUND: return character->animSkidOnGround; + case CHAR_ANIM_STOP_SKID: return character->animStopSkid; + case CHAR_ANIM_CROUCH_FROM_FAST_LONGJUMP: return character->animCrouchFromFastLongjump; + case CHAR_ANIM_CROUCH_FROM_SLOW_LONGJUMP: return character->animCrouchFromSlowLongjump; + case CHAR_ANIM_FAST_LONGJUMP: return character->animFastLongjump; + case CHAR_ANIM_SLOW_LONGJUMP: return character->animSlowLongjump; + case CHAR_ANIM_AIRBORNE_ON_STOMACH: return character->animAirborneOnStomach; + case CHAR_ANIM_WALK_WITH_LIGHT_OBJ: return character->animWalkWithLightObj; + case CHAR_ANIM_RUN_WITH_LIGHT_OBJ: return character->animRunWithLightObj; + case CHAR_ANIM_SLOW_WALK_WITH_LIGHT_OBJ: return character->animSlowWalkWithLightObj; + case CHAR_ANIM_SHIVERING_WARMING_HAND: return character->animShiveringWarmingHand; + case CHAR_ANIM_SHIVERING_RETURN_TO_IDLE: return character->animShiveringReturnToIdle; + case CHAR_ANIM_SHIVERING: return character->animShivering; + case CHAR_ANIM_CLIMB_DOWN_LEDGE: return character->animClimbDownLedge; + case CHAR_ANIM_CREDITS_WAVING: return character->animCreditsWaving; + case CHAR_ANIM_CREDITS_LOOK_UP: return character->animCreditsLookUp; + case CHAR_ANIM_CREDITS_RETURN_FROM_LOOK_UP: return character->animCreditsReturnFromLookUp; + case CHAR_ANIM_CREDITS_RAISE_HAND: return character->animCreditsRaiseHand; + case CHAR_ANIM_CREDITS_LOWER_HAND: return character->animCreditsLowerHand; + case CHAR_ANIM_CREDITS_TAKE_OFF_CAP: return character->animCreditsTakeOffCap; + case CHAR_ANIM_CREDITS_START_WALK_LOOK_UP: return character->animCreditsStartWalkLookUp; + case CHAR_ANIM_CREDITS_LOOK_BACK_THEN_RUN: return character->animCreditsLookBackThenRun; + case CHAR_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN: return character->animFinalBowserRaiseHandSpin; + case CHAR_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF: return character->animFinalBowserWingCapTakeOff; + case CHAR_ANIM_CREDITS_PEACE_SIGN: return character->animCreditsPeaceSign; + case CHAR_ANIM_STAND_UP_FROM_LAVA_BOOST: return character->animStandUpFromLavaBoost; + case CHAR_ANIM_FIRE_LAVA_BURN: return character->animFireLavaBurn; + case CHAR_ANIM_WING_CAP_FLY: return character->animWingCapFly; + case CHAR_ANIM_HANG_ON_OWL: return character->animHangOnOwl; + case CHAR_ANIM_LAND_ON_STOMACH: return character->animLandOnStomach; + case CHAR_ANIM_AIR_FORWARD_KB: return character->animAirForwardKb; + case CHAR_ANIM_DYING_ON_STOMACH: return character->animDyingOnStomach; + case CHAR_ANIM_SUFFOCATING: return character->animSuffocating; + case CHAR_ANIM_COUGHING: return character->animCoughing; + case CHAR_ANIM_THROW_CATCH_KEY: return character->animThrowCatchKey; + case CHAR_ANIM_DYING_FALL_OVER: return character->animDyingFallOver; + case CHAR_ANIM_IDLE_ON_LEDGE: return character->animIdleOnLedge; + case CHAR_ANIM_FAST_LEDGE_GRAB: return character->animFastLedgeGrab; + case CHAR_ANIM_HANG_ON_CEILING: return character->animHangOnCeiling; + case CHAR_ANIM_PUT_CAP_ON: return character->animPutCapOn; + case CHAR_ANIM_TAKE_CAP_OFF_THEN_ON: return character->animTakeCapOffThenOn; + case CHAR_ANIM_QUICKLY_PUT_CAP_ON: return character->animQuicklyPutCapOn; + case CHAR_ANIM_HEAD_STUCK_IN_GROUND: return character->animHeadStuckInGround; + case CHAR_ANIM_GROUND_POUND_LANDING: return character->animGroundPoundLanding; + case CHAR_ANIM_TRIPLE_JUMP_GROUND_POUND: return character->animTripleJumpGroundPound; + case CHAR_ANIM_START_GROUND_POUND: return character->animStartGroundPound; + case CHAR_ANIM_GROUND_POUND: return character->animGroundPound; + case CHAR_ANIM_BOTTOM_STUCK_IN_GROUND: return character->animBottomStuckInGround; + case CHAR_ANIM_IDLE_WITH_LIGHT_OBJ: return character->animIdleWithLightObj; + case CHAR_ANIM_JUMP_LAND_WITH_LIGHT_OBJ: return character->animJumpLandWithLightObj; + case CHAR_ANIM_JUMP_WITH_LIGHT_OBJ: return character->animJumpWithLightObj; + case CHAR_ANIM_FALL_LAND_WITH_LIGHT_OBJ: return character->animFallLandWithLightObj; + case CHAR_ANIM_FALL_WITH_LIGHT_OBJ: return character->animFallWithLightObj; + case CHAR_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ: return character->animFallFromSlidingWithLightObj; + case CHAR_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ: return character->animSlidingOnBottomWithLightObj; + case CHAR_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ:return character->animStandUpFromSlidingWithLightObj; + case CHAR_ANIM_RIDING_SHELL: return character->animRidingShell; + case CHAR_ANIM_WALKING: return character->animWalking; + case CHAR_ANIM_FORWARD_FLIP: return character->animForwardFlip; + case CHAR_ANIM_JUMP_RIDING_SHELL: return character->animJumpRidingShell; + case CHAR_ANIM_LAND_FROM_DOUBLE_JUMP: return character->animLandFromDoubleJump; + case CHAR_ANIM_DOUBLE_JUMP_FALL: return character->animDoubleJumpFall; + case CHAR_ANIM_SINGLE_JUMP: return character->animSingleJump; + case CHAR_ANIM_LAND_FROM_SINGLE_JUMP: return character->animLandFromSingleJump; + case CHAR_ANIM_AIR_KICK: return character->animAirKick; + case CHAR_ANIM_DOUBLE_JUMP_RISE: return character->animDoubleJumpRise; + case CHAR_ANIM_START_FORWARD_SPINNING: return character->animStartForwardSpinning; + case CHAR_ANIM_THROW_LIGHT_OBJECT: return character->animThrowLightObject; + case CHAR_ANIM_FALL_FROM_SLIDE_KICK: return character->animFallFromSlideKick; + case CHAR_ANIM_BEND_KNESS_RIDING_SHELL: return character->animBendKnessRidingShell; + case CHAR_ANIM_LEGS_STUCK_IN_GROUND: return character->animLegsStuckInGround; + case CHAR_ANIM_GENERAL_FALL: return character->animGeneralFall; + case CHAR_ANIM_GENERAL_LAND: return character->animGeneralLand; + case CHAR_ANIM_BEING_GRABBED: return character->animBeingGrabbed; + case CHAR_ANIM_GRAB_HEAVY_OBJECT: return character->animGrabHeavyObject; + case CHAR_ANIM_SLOW_LAND_FROM_DIVE: return character->animSlowLandFromDive; + case CHAR_ANIM_FLY_FROM_CANNON: return character->animFlyFromCannon; + case CHAR_ANIM_MOVE_ON_WIRE_NET_RIGHT: return character->animMoveOnWireNetRight; + case CHAR_ANIM_MOVE_ON_WIRE_NET_LEFT: return character->animMoveOnWireNetLeft; + case CHAR_ANIM_MISSING_CAP: return character->animMissingCap; + case CHAR_ANIM_PULL_DOOR_WALK_IN: return character->animPullDoorWalkIn; + case CHAR_ANIM_PUSH_DOOR_WALK_IN: return character->animPushDoorWalkIn; + case CHAR_ANIM_UNLOCK_DOOR: return character->animUnlockDoor; + case CHAR_ANIM_START_REACH_POCKET: return character->animStartReachPocket; + case CHAR_ANIM_REACH_POCKET: return character->animReachPocket; + case CHAR_ANIM_STOP_REACH_POCKET: return character->animStopReachPocket; + case CHAR_ANIM_GROUND_THROW: return character->animGroundThrow; + case CHAR_ANIM_GROUND_KICK: return character->animGroundKick; + case CHAR_ANIM_FIRST_PUNCH: return character->animFirstPunch; + case CHAR_ANIM_SECOND_PUNCH: return character->animSecondPunch; + case CHAR_ANIM_FIRST_PUNCH_FAST: return character->animFirstPunchFast; + case CHAR_ANIM_SECOND_PUNCH_FAST: return character->animSecondPunchFast; + case CHAR_ANIM_PICK_UP_LIGHT_OBJ: return character->animPickUpLightObj; + case CHAR_ANIM_PUSHING: return character->animPushing; + case CHAR_ANIM_START_RIDING_SHELL: return character->animStartRidingShell; + case CHAR_ANIM_PLACE_LIGHT_OBJ: return character->animPlaceLightObj; + case CHAR_ANIM_FORWARD_SPINNING: return character->animForwardSpinning; + case CHAR_ANIM_BACKWARD_SPINNING: return character->animBackwardSpinning; + case CHAR_ANIM_BREAKDANCE: return character->animBreakdance; + case CHAR_ANIM_RUNNING: return character->animRunning; + case CHAR_ANIM_RUNNING_UNUSED: return character->animRunningUnused; + case CHAR_ANIM_SOFT_BACK_KB: return character->animSoftBackKb; + case CHAR_ANIM_SOFT_FRONT_KB: return character->animSoftFrontKb; + case CHAR_ANIM_DYING_IN_QUICKSAND: return character->animDyingInQuicksand; + case CHAR_ANIM_IDLE_IN_QUICKSAND: return character->animIdleInQuicksand; + case CHAR_ANIM_MOVE_IN_QUICKSAND: return character->animMoveInQuicksand; + case CHAR_ANIM_ELECTROCUTION: return character->animElectrocution; + case CHAR_ANIM_SHOCKED: return character->animShocked; + case CHAR_ANIM_BACKWARD_KB: return character->animBackwardKb; + case CHAR_ANIM_FORWARD_KB: return character->animForwardKb; + case CHAR_ANIM_IDLE_HEAVY_OBJ: return character->animIdleHeavyObj; + case CHAR_ANIM_STAND_AGAINST_WALL: return character->animStandAgainstWall; + case CHAR_ANIM_SIDESTEP_LEFT: return character->animSidestepLeft; + case CHAR_ANIM_SIDESTEP_RIGHT: return character->animSidestepRight; + case CHAR_ANIM_START_SLEEP_IDLE: return character->animStartSleepIdle; + case CHAR_ANIM_START_SLEEP_SCRATCH: return character->animStartSleepScratch; + case CHAR_ANIM_START_SLEEP_YAWN: return character->animStartSleepYawn; + case CHAR_ANIM_START_SLEEP_SITTING: return character->animStartSleepSitting; + case CHAR_ANIM_SLEEP_IDLE: return character->animSleepIdle; + case CHAR_ANIM_SLEEP_START_LYING: return character->animSleepStartLying; + case CHAR_ANIM_SLEEP_LYING: return character->animSleepLying; + case CHAR_ANIM_DIVE: return character->animDive; + case CHAR_ANIM_SLIDE_DIVE: return character->animSlideDive; + case CHAR_ANIM_GROUND_BONK: return character->animGroundBonk; + case CHAR_ANIM_STOP_SLIDE_LIGHT_OBJ: return character->animStopSlideLightObj; + case CHAR_ANIM_SLIDE_KICK: return character->animSlideKick; + case CHAR_ANIM_CROUCH_FROM_SLIDE_KICK: return character->animCrouchFromSlideKick; + case CHAR_ANIM_SLIDE_MOTIONLESS: return character->animSlideMotionless; + case CHAR_ANIM_STOP_SLIDE: return character->animStopSlide; + case CHAR_ANIM_FALL_FROM_SLIDE: return character->animFallFromSlide; + case CHAR_ANIM_SLIDE: return character->animSlide; + case CHAR_ANIM_TIPTOE: return character->animTiptoe; + case CHAR_ANIM_TWIRL_LAND: return character->animTwirlLand; + case CHAR_ANIM_TWIRL: return character->animTwirl; + case CHAR_ANIM_START_TWIRL: return character->animStartTwirl; + case CHAR_ANIM_STOP_CROUCHING: return character->animStopCrouching; + case CHAR_ANIM_START_CROUCHING: return character->animStartCrouching; + case CHAR_ANIM_CROUCHING: return character->animCrouching; + case CHAR_ANIM_CRAWLING: return character->animCrawling; + case CHAR_ANIM_STOP_CRAWLING: return character->animStopCrawling; + case CHAR_ANIM_START_CRAWLING: return character->animStartCrawling; + case CHAR_ANIM_SUMMON_STAR: return character->animSummonStar; + case CHAR_ANIM_RETURN_STAR_APPROACH_DOOR: return character->animReturnStarApproachDoor; + case CHAR_ANIM_BACKWARDS_WATER_KB: return character->animBackwardsWaterKb; + case CHAR_ANIM_SWIM_WITH_OBJ_PART1: return character->animSwimWithObjPart1; + case CHAR_ANIM_SWIM_WITH_OBJ_PART2: return character->animSwimWithObjPart2; + case CHAR_ANIM_FLUTTERKICK_WITH_OBJ: return character->animFlutterkickWithObj; + case CHAR_ANIM_WATER_ACTION_END_WITH_OBJ: return character->animWaterActionEndWithObj; + case CHAR_ANIM_STOP_GRAB_OBJ_WATER: return character->animStopGrabObjWater; + case CHAR_ANIM_WATER_IDLE_WITH_OBJ: return character->animWaterIdleWithObj; + case CHAR_ANIM_DROWNING_PART1: return character->animDrowningPart1; + case CHAR_ANIM_DROWNING_PART2: return character->animDrowningPart2; + case CHAR_ANIM_WATER_DYING: return character->animWaterDying; + case CHAR_ANIM_WATER_FORWARD_KB: return character->animWaterForwardKb; + case CHAR_ANIM_FALL_FROM_WATER: return character->animFallFromWater; + case CHAR_ANIM_SWIM_PART1: return character->animSwimPart1; + case CHAR_ANIM_SWIM_PART2: return character->animSwimPart2; + case CHAR_ANIM_FLUTTERKICK: return character->animFlutterkick; + case CHAR_ANIM_WATER_ACTION_END: return character->animWaterActionEnd; + case CHAR_ANIM_WATER_PICK_UP_OBJ: return character->animWaterPickUpObj; + case CHAR_ANIM_WATER_GRAB_OBJ_PART2: return character->animWaterGrabObjPart2; + case CHAR_ANIM_WATER_GRAB_OBJ_PART1: return character->animWaterGrabObjPart1; + case CHAR_ANIM_WATER_THROW_OBJ: return character->animWaterThrowObj; + case CHAR_ANIM_WATER_IDLE: return character->animWaterIdle; + case CHAR_ANIM_WATER_STAR_DANCE: return character->animWaterStarDance; + case CHAR_ANIM_RETURN_FROM_WATER_STAR_DANCE: return character->animReturnFromWaterStarDance; + case CHAR_ANIM_GRAB_BOWSER: return character->animGrabBowser; + case CHAR_ANIM_SWINGING_BOWSER: return character->animSwingingBowser; + case CHAR_ANIM_RELEASE_BOWSER: return character->animReleaseBowser; + case CHAR_ANIM_HOLDING_BOWSER: return character->animHoldingBowser; + case CHAR_ANIM_HEAVY_THROW: return character->animHeavyThrow; + case CHAR_ANIM_WALK_PANTING: return character->animWalkPanting; + case CHAR_ANIM_WALK_WITH_HEAVY_OBJ: return character->animWalkWithHeavyObj; + case CHAR_ANIM_TURNING_PART1: return character->animTurningPart1; + case CHAR_ANIM_TURNING_PART2: return character->animTurningPart2; + case CHAR_ANIM_SLIDEFLIP_LAND: return character->animSlideflipLand; + case CHAR_ANIM_SLIDEFLIP: return character->animSlideflip; + case CHAR_ANIM_TRIPLE_JUMP_LAND: return character->animTripleJumpLand; + case CHAR_ANIM_TRIPLE_JUMP: return character->animTripleJump; + case CHAR_ANIM_FIRST_PERSON: return character->animFirstPerson; + case CHAR_ANIM_IDLE_HEAD_LEFT: return character->animIdleHeadLeft; + case CHAR_ANIM_IDLE_HEAD_RIGHT: return character->animIdleHeadRight; + case CHAR_ANIM_IDLE_HEAD_CENTER: return character->animIdleHeadCenter; + case CHAR_ANIM_HANDSTAND_LEFT: return character->animHandstandLeft; + case CHAR_ANIM_HANDSTAND_RIGHT: return character->animHandstandRight; + case CHAR_ANIM_WAKE_FROM_SLEEP: return character->animWakeFromSleep; + case CHAR_ANIM_WAKE_FROM_LYING: return character->animWakeFromLying; + case CHAR_ANIM_START_TIPTOE: return character->animStartTiptoe; + case CHAR_ANIM_SLIDEJUMP: return character->animSlidejump; + case CHAR_ANIM_START_WALLKICK: return character->animStartWallkick; + case CHAR_ANIM_STAR_DANCE: return character->animStarDance; + case CHAR_ANIM_RETURN_FROM_STAR_DANCE: return character->animReturnFromStarDance; + case CHAR_ANIM_FORWARD_SPINNING_FLIP: return character->animForwardSpinningFlip; + case CHAR_ANIM_TRIPLE_JUMP_FLY: return character->animTripleJumpFly; + default: return 0; + } +} diff --git a/src/game/characters.h b/src/game/characters.h index 726fca4b3..c83d13120 100644 --- a/src/game/characters.h +++ b/src/game/characters.h @@ -52,6 +52,216 @@ struct Character { f32 animOffsetLowYPoint; f32 animOffsetFeet; f32 animOffsetHand; + + /* 0x00 */s32 animSlowLedgeGrab; + /* 0x01 */s32 animFallOverBackwards; + /* 0x02 */s32 animBackwardAirKb; + /* 0x03 */s32 animDyingOnBack; + /* 0x04 */s32 animBackflip; + /* 0x05 */s32 animClimbUpPole; + /* 0x06 */s32 animGrabPoleShort; + /* 0x07 */s32 animGrabPoleSwingPart1; + /* 0x08 */s32 animGrabPoleSwingPart2; + /* 0x09 */s32 animHandstandIdle; + /* 0x0a */s32 animHandstandJump; + /* 0x0b */s32 animStartHandstand; + /* 0x0c */s32 animReturnFromHandstand; + /* 0x0d */s32 animIdleOnPole; + /* 0x0e */s32 animAPose; + /* 0x0f */s32 animSkidOnGround; + /* 0x10 */s32 animStopSkid; + /* 0x11 */s32 animCrouchFromFastLongjump; + /* 0x12 */s32 animCrouchFromSlowLongjump; + /* 0x13 */s32 animFastLongjump; + /* 0x14 */s32 animSlowLongjump; + /* 0x15 */s32 animAirborneOnStomach; + /* 0x16 */s32 animWalkWithLightObj; + /* 0x17 */s32 animRunWithLightObj; + /* 0x18 */s32 animSlowWalkWithLightObj; + /* 0x19 */s32 animShiveringWarmingHand; + /* 0x1a */s32 animShiveringReturnToIdle; + /* 0x1b */s32 animShivering; + /* 0x1c */s32 animClimbDownLedge; + /* 0x1d */s32 animCreditsWaving; + /* 0x1e */s32 animCreditsLookUp; + /* 0x1f */s32 animCreditsReturnFromLookUp; + /* 0x20 */s32 animCreditsRaiseHand; + /* 0x21 */s32 animCreditsLowerHand; + /* 0x22 */s32 animCreditsTakeOffCap; + /* 0x23 */s32 animCreditsStartWalkLookUp; + /* 0x24 */s32 animCreditsLookBackThenRun; + /* 0x25 */s32 animFinalBowserRaiseHandSpin; + /* 0x26 */s32 animFinalBowserWingCapTakeOff; + /* 0x27 */s32 animCreditsPeaceSign; + /* 0x28 */s32 animStandUpFromLavaBoost; + /* 0x29 */s32 animFireLavaBurn; + /* 0x2a */s32 animWingCapFly; + /* 0x2b */s32 animHangOnOwl; + /* 0x2c */s32 animLandOnStomach; + /* 0x2d */s32 animAirForwardKb; + /* 0x2e */s32 animDyingOnStomach; + /* 0x2f */s32 animSuffocating; + /* 0x30 */s32 animCoughing; + /* 0x31 */s32 animThrowCatchKey; + /* 0x32 */s32 animDyingFallOver; + /* 0x33 */s32 animIdleOnLedge; + /* 0x34 */s32 animFastLedgeGrab; + /* 0x35 */s32 animHangOnCeiling; + /* 0x36 */s32 animPutCapOn; + /* 0x37 */s32 animTakeCapOffThenOn; + /* 0x38 */s32 animQuicklyPutCapOn; + /* 0x39 */s32 animHeadStuckInGround; + /* 0x3a */s32 animGroundPoundLanding; + /* 0x3b */s32 animTripleJumpGroundPound; + /* 0x3c */s32 animStartGroundPound; + /* 0x3d */s32 animGroundPound; + /* 0x3e */s32 animBottomStuckInGround; + /* 0x3f */s32 animIdleWithLightObj; + /* 0x40 */s32 animJumpLandWithLightObj; + /* 0x41 */s32 animJumpWithLightObj; + /* 0x42 */s32 animFallLandWithLightObj; + /* 0x43 */s32 animFallWithLightObj; + /* 0x44 */s32 animFallFromSlidingWithLightObj; + /* 0x45 */s32 animSlidingOnBottomWithLightObj; + /* 0x46 */s32 animStandUpFromSlidingWithLightObj; + /* 0x47 */s32 animRidingShell; + /* 0x48 */s32 animWalking; + /* 0x49 */s32 animForwardFlip; + /* 0x4a */s32 animJumpRidingShell; + /* 0x4b */s32 animLandFromDoubleJump; + /* 0x4c */s32 animDoubleJumpFall; + /* 0x4d */s32 animSingleJump; + /* 0x4e */s32 animLandFromSingleJump; + /* 0x4f */s32 animAirKick; + /* 0x50 */s32 animDoubleJumpRise; + /* 0x51 */s32 animStartForwardSpinning; + /* 0x52 */s32 animThrowLightObject; + /* 0x53 */s32 animFallFromSlideKick; + /* 0x54 */s32 animBendKnessRidingShell; + /* 0x55 */s32 animLegsStuckInGround; + /* 0x56 */s32 animGeneralFall; + /* 0x57 */s32 animGeneralLand; + /* 0x58 */s32 animBeingGrabbed; + /* 0x59 */s32 animGrabHeavyObject; + /* 0x5a */s32 animSlowLandFromDive; + /* 0x5b */s32 animFlyFromCannon; + /* 0x5c */s32 animMoveOnWireNetRight; + /* 0x5d */s32 animMoveOnWireNetLeft; + /* 0x5e */s32 animMissingCap; + /* 0x5f */s32 animPullDoorWalkIn; + /* 0x60 */s32 animPushDoorWalkIn; + /* 0x61 */s32 animUnlockDoor; + /* 0x62 */s32 animStartReachPocket; + /* 0x63 */s32 animReachPocket; + /* 0x64 */s32 animStopReachPocket; + /* 0x65 */s32 animGroundThrow; + /* 0x66 */s32 animGroundKick; + /* 0x67 */s32 animFirstPunch; + /* 0x68 */s32 animSecondPunch; + /* 0x69 */s32 animFirstPunchFast; + /* 0x6a */s32 animSecondPunchFast; + /* 0x6b */s32 animPickUpLightObj; + /* 0x6c */s32 animPushing; + /* 0x6d */s32 animStartRidingShell; + /* 0x6e */s32 animPlaceLightObj; + /* 0x6f */s32 animForwardSpinning; + /* 0x70 */s32 animBackwardSpinning; + /* 0x71 */s32 animBreakdance; + /* 0x72 */s32 animRunning; + /* 0x73 */s32 animRunningUnused; + /* 0x74 */s32 animSoftBackKb; + /* 0x75 */s32 animSoftFrontKb; + /* 0x76 */s32 animDyingInQuicksand; + /* 0x77 */s32 animIdleInQuicksand; + /* 0x78 */s32 animMoveInQuicksand; + /* 0x79 */s32 animElectrocution; + /* 0x7a */s32 animShocked; + /* 0x7b */s32 animBackwardKb; + /* 0x7c */s32 animForwardKb; + /* 0x7d */s32 animIdleHeavyObj; + /* 0x7e */s32 animStandAgainstWall; + /* 0x7f */s32 animSidestepLeft; + /* 0x80 */s32 animSidestepRight; + /* 0x81 */s32 animStartSleepIdle; + /* 0x82 */s32 animStartSleepScratch; + /* 0x83 */s32 animStartSleepYawn; + /* 0x84 */s32 animStartSleepSitting; + /* 0x85 */s32 animSleepIdle; + /* 0x86 */s32 animSleepStartLying; + /* 0x87 */s32 animSleepLying; + /* 0x88 */s32 animDive; + /* 0x89 */s32 animSlideDive; + /* 0x8a */s32 animGroundBonk; + /* 0x8b */s32 animStopSlideLightObj; + /* 0x8c */s32 animSlideKick; + /* 0x8d */s32 animCrouchFromSlideKick; + /* 0x8e */s32 animSlideMotionless; + /* 0x8f */s32 animStopSlide; + /* 0x90 */s32 animFallFromSlide; + /* 0x91 */s32 animSlide; + /* 0x92 */s32 animTiptoe; + /* 0x93 */s32 animTwirlLand; + /* 0x94 */s32 animTwirl; + /* 0x95 */s32 animStartTwirl; + /* 0x96 */s32 animStopCrouching; + /* 0x97 */s32 animStartCrouching; + /* 0x98 */s32 animCrouching; + /* 0x99 */s32 animCrawling; + /* 0x9a */s32 animStopCrawling; + /* 0x9b */s32 animStartCrawling; + /* 0x9c */s32 animSummonStar; + /* 0x9d */s32 animReturnStarApproachDoor; + /* 0x9e */s32 animBackwardsWaterKb; + /* 0x9f */s32 animSwimWithObjPart1; + /* 0xa0 */s32 animSwimWithObjPart2; + /* 0xa1 */s32 animFlutterkickWithObj; + /* 0xa2 */s32 animWaterActionEndWithObj; + /* 0xa3 */s32 animStopGrabObjWater; + /* 0xa4 */s32 animWaterIdleWithObj; + /* 0xa5 */s32 animDrowningPart1; + /* 0xa6 */s32 animDrowningPart2; + /* 0xa7 */s32 animWaterDying; + /* 0xa8 */s32 animWaterForwardKb; + /* 0xa9 */s32 animFallFromWater; + /* 0xaa */s32 animSwimPart1; + /* 0xab */s32 animSwimPart2; + /* 0xac */s32 animFlutterkick; + /* 0xad */s32 animWaterActionEnd; + /* 0xae */s32 animWaterPickUpObj; + /* 0xaf */s32 animWaterGrabObjPart2; + /* 0xb0 */s32 animWaterGrabObjPart1; + /* 0xb1 */s32 animWaterThrowObj; + /* 0xb2 */s32 animWaterIdle; + /* 0xb3 */s32 animWaterStarDance; + /* 0xb4 */s32 animReturnFromWaterStarDance; + /* 0xb5 */s32 animGrabBowser; + /* 0xb6 */s32 animSwingingBowser; + /* 0xb7 */s32 animReleaseBowser; + /* 0xb8 */s32 animHoldingBowser; + /* 0xb9 */s32 animHeavyThrow; + /* 0xba */s32 animWalkPanting; + /* 0xbb */s32 animWalkWithHeavyObj; + /* 0xbc */s32 animTurningPart1; + /* 0xbd */s32 animTurningPart2; + /* 0xbe */s32 animSlideflipLand; + /* 0xbf */s32 animSlideflip; + /* 0xc0 */s32 animTripleJumpLand; + /* 0xc1 */s32 animTripleJump; + /* 0xc2 */s32 animFirstPerson; + /* 0xc3 */s32 animIdleHeadLeft; + /* 0xc4 */s32 animIdleHeadRight; + /* 0xc5 */s32 animIdleHeadCenter; + /* 0xc6 */s32 animHandstandLeft; + /* 0xc7 */s32 animHandstandRight; + /* 0xc8 */s32 animWakeFromSleep; + /* 0xc9 */s32 animWakeFromLying; + /* 0xca */s32 animStartTiptoe; + /* 0xcb */s32 animSlidejump; + /* 0xcc */s32 animStartWallkick; + /* 0xcd */s32 animStarDance; + /* 0xce */s32 animReturnFromStarDance; + /* 0xcf */s32 animForwardSpinningFlip; + /* 0xd0 */s32 animTripleJumpFly; // sounds f32 soundFreqScale; s32 soundYahWahHoo; diff --git a/src/game/mario.c b/src/game/mario.c index 272c3040d..d7485c654 100644 --- a/src/game/mario.c +++ b/src/game/mario.c @@ -116,6 +116,39 @@ s16 set_mario_animation(struct MarioState *m, s32 targetAnimID) { return o->header.gfx.animInfo.animFrame; } +/** + * Sets the character specific animation without any acceleration, running at its default rate. + */ +s16 set_character_animation(struct MarioState *m, s32 targetAnimID) { + struct Object *o = m->marioObj; + struct Animation *targetAnim = m->animation->targetAnim; + s32 charAnimID = get_character_anim(m, targetAnimID); + + if (load_patchable_table(m->animation, charAnimID)) { + targetAnim->values = (void *) VIRTUAL_TO_PHYSICAL((u8 *) targetAnim + (uintptr_t) targetAnim->values); + targetAnim->index = (void *) VIRTUAL_TO_PHYSICAL((u8 *) targetAnim + (uintptr_t) targetAnim->index); + } + + if (o->header.gfx.animInfo.animID != charAnimID) { + o->header.gfx.animInfo.animID = charAnimID; + o->header.gfx.animInfo.curAnim = targetAnim; + o->header.gfx.animInfo.animAccel = 0; + o->header.gfx.animInfo.animYTrans = m->unkB0; + + if (targetAnim->flags & ANIM_FLAG_2) { + o->header.gfx.animInfo.animFrame = targetAnim->startFrame; + } else { + if (targetAnim->flags & ANIM_FLAG_FORWARD) { + o->header.gfx.animInfo.animFrame = targetAnim->startFrame + 1; + } else { + o->header.gfx.animInfo.animFrame = targetAnim->startFrame - 1; + } + } + } + + return o->header.gfx.animInfo.animFrame; +} + /** * Sets Mario's animation where the animation is sped up or * slowed down via acceleration. @@ -155,6 +188,43 @@ s16 set_mario_anim_with_accel(struct MarioState *m, s32 targetAnimID, s32 accel) return o->header.gfx.animInfo.animFrame; } +/** + * Sets character specific animation where the animation is sped up or + * slowed down via acceleration. + */ +s16 set_character_anim_with_accel(struct MarioState *m, s32 targetAnimID, s32 accel) { + struct Object *o = m->marioObj; + struct Animation *targetAnim = m->animation->targetAnim; + s32 charAnimID = get_character_anim(m, targetAnimID); + + if (load_patchable_table(m->animation, charAnimID)) { + targetAnim->values = (void *) VIRTUAL_TO_PHYSICAL((u8 *) targetAnim + (uintptr_t) targetAnim->values); + targetAnim->index = (void *) VIRTUAL_TO_PHYSICAL((u8 *) targetAnim + (uintptr_t) targetAnim->index); + } + + if (o->header.gfx.animInfo.animID != charAnimID) { + o->header.gfx.animInfo.animID = charAnimID; + o->header.gfx.animInfo.curAnim = targetAnim; + o->header.gfx.animInfo.animYTrans = m->unkB0; + + if (targetAnim->flags & ANIM_FLAG_2) { + o->header.gfx.animInfo.animFrameAccelAssist = (targetAnim->startFrame << 0x10); + } else { + if (targetAnim->flags & ANIM_FLAG_FORWARD) { + o->header.gfx.animInfo.animFrameAccelAssist = (targetAnim->startFrame << 0x10) + accel; + } else { + o->header.gfx.animInfo.animFrameAccelAssist = (targetAnim->startFrame << 0x10) - accel; + } + } + + o->header.gfx.animInfo.animFrame = (o->header.gfx.animInfo.animFrameAccelAssist >> 0x10); + } + + o->header.gfx.animInfo.animAccel = accel; + + return o->header.gfx.animInfo.animFrame; +} + /** * Sets the animation to a specific "next" frame from the frame given. */ diff --git a/src/game/mario.h b/src/game/mario.h index cc0a41476..57ef425ee 100644 --- a/src/game/mario.h +++ b/src/game/mario.h @@ -13,6 +13,10 @@ s32 is_anim_at_end(struct MarioState *m); s32 is_anim_past_end(struct MarioState *m); s16 set_mario_animation(struct MarioState *m, s32 targetAnimID); s16 set_mario_anim_with_accel(struct MarioState *m, s32 targetAnimID, s32 accel); + +s16 set_character_animation(struct MarioState *m, s32 targetAnimID); +s16 set_character_anim_with_accel(struct MarioState *m, s32 targetAnimID, s32 accel); + void set_anim_to_frame(struct MarioState *m, s16 animFrame); s32 is_anim_past_frame(struct MarioState *m, s16 animFrame); s16 find_mario_anim_flags_and_translation(struct Object *o, s32 yaw, Vec3s translation); diff --git a/src/game/mario_actions_airborne.c b/src/game/mario_actions_airborne.c index c3e18196c..72d417151 100644 --- a/src/game/mario_actions_airborne.c +++ b/src/game/mario_actions_airborne.c @@ -406,7 +406,7 @@ u32 common_air_action_step(struct MarioState *m, u32 landAction, s32 animation, switch (stepResult) { case AIR_STEP_NONE: - set_mario_animation(m, animation); + set_character_animation(m, animation); break; case AIR_STEP_LANDED: @@ -416,7 +416,7 @@ u32 common_air_action_step(struct MarioState *m, u32 landAction, s32 animation, break; case AIR_STEP_HIT_WALL: - set_mario_animation(m, animation); + set_character_animation(m, animation); if (m->forwardVel > 16.0f) { queue_rumble_data_mario(m, 5, 40); @@ -455,7 +455,7 @@ u32 common_air_action_step(struct MarioState *m, u32 landAction, s32 animation, break; case AIR_STEP_GRABBED_LEDGE: - set_mario_animation(m, MARIO_ANIM_IDLE_ON_LEDGE); + set_character_animation(m, CHAR_ANIM_IDLE_ON_LEDGE); drop_and_set_mario_action(m, ACT_LEDGE_GRAB, 0); break; @@ -482,7 +482,7 @@ s32 act_jump(struct MarioState *m) { } play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); - common_air_action_step(m, ACT_JUMP_LAND, MARIO_ANIM_SINGLE_JUMP, + common_air_action_step(m, ACT_JUMP_LAND, CHAR_ANIM_SINGLE_JUMP, AIR_STEP_CHECK_LEDGE_GRAB | AIR_STEP_CHECK_HANG); return FALSE; } @@ -490,8 +490,8 @@ s32 act_jump(struct MarioState *m) { s32 act_double_jump(struct MarioState *m) { if (!m) { return 0; } s32 animation = (m->vel[1] >= 0.0f) - ? MARIO_ANIM_DOUBLE_JUMP_RISE - : MARIO_ANIM_DOUBLE_JUMP_FALL; + ? CHAR_ANIM_DOUBLE_JUMP_RISE + : CHAR_ANIM_DOUBLE_JUMP_FALL; if (check_kick_or_dive_in_air(m)) { return TRUE; @@ -527,7 +527,7 @@ s32 act_triple_jump(struct MarioState *m) { play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, CHAR_SOUND_YAHOO); #endif - common_air_action_step(m, ACT_TRIPLE_JUMP_LAND, MARIO_ANIM_TRIPLE_JUMP, 0); + common_air_action_step(m, ACT_TRIPLE_JUMP_LAND, CHAR_ANIM_TRIPLE_JUMP, 0); if (m->action == ACT_TRIPLE_JUMP_LAND) { queue_rumble_data_mario(m, 5, 40); } @@ -542,7 +542,7 @@ s32 act_backflip(struct MarioState *m) { } play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, CHAR_SOUND_YAH_WAH_HOO); - common_air_action_step(m, ACT_BACKFLIP_LAND, MARIO_ANIM_BACKFLIP, 0); + common_air_action_step(m, ACT_BACKFLIP_LAND, CHAR_ANIM_BACKFLIP, 0); if (m->action == ACT_BACKFLIP_LAND) { queue_rumble_data_mario(m, 5, 40); @@ -565,13 +565,13 @@ s32 act_freefall(struct MarioState *m) { switch (m->actionArg) { case 0: - animation = MARIO_ANIM_GENERAL_FALL; + animation = CHAR_ANIM_GENERAL_FALL; break; case 1: - animation = MARIO_ANIM_FALL_FROM_SLIDE; + animation = CHAR_ANIM_FALL_FROM_SLIDE; break; case 2: - animation = MARIO_ANIM_FALL_FROM_SLIDE_KICK; + animation = CHAR_ANIM_FALL_FROM_SLIDE_KICK; break; } @@ -594,7 +594,7 @@ s32 act_hold_jump(struct MarioState *m) { } play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); - common_air_action_step(m, ACT_HOLD_JUMP_LAND, MARIO_ANIM_JUMP_WITH_LIGHT_OBJ, + common_air_action_step(m, ACT_HOLD_JUMP_LAND, CHAR_ANIM_JUMP_WITH_LIGHT_OBJ, AIR_STEP_CHECK_LEDGE_GRAB); return FALSE; } @@ -603,9 +603,9 @@ s32 act_hold_freefall(struct MarioState *m) { if (!m) { return 0; } s32 animation; if (m->actionArg == 0) { - animation = MARIO_ANIM_FALL_WITH_LIGHT_OBJ; + animation = CHAR_ANIM_FALL_WITH_LIGHT_OBJ; } else { - animation = MARIO_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ; + animation = CHAR_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ; } if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { @@ -636,7 +636,7 @@ s32 act_side_flip(struct MarioState *m) { play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); - if (common_air_action_step(m, ACT_SIDE_FLIP_LAND, MARIO_ANIM_SLIDEFLIP, AIR_STEP_CHECK_LEDGE_GRAB) + if (common_air_action_step(m, ACT_SIDE_FLIP_LAND, CHAR_ANIM_SLIDEFLIP, AIR_STEP_CHECK_LEDGE_GRAB) != AIR_STEP_GRABBED_LEDGE) { m->marioObj->header.gfx.angle[1] += 0x8000; } @@ -659,7 +659,7 @@ s32 act_wall_kick_air(struct MarioState *m) { } play_mario_jump_sound(m); - common_air_action_step(m, ACT_JUMP_LAND, MARIO_ANIM_SLIDEJUMP, AIR_STEP_CHECK_LEDGE_GRAB); + common_air_action_step(m, ACT_JUMP_LAND, CHAR_ANIM_SLIDEJUMP, AIR_STEP_CHECK_LEDGE_GRAB); return FALSE; } @@ -667,9 +667,9 @@ s32 act_long_jump(struct MarioState *m) { if (!m) { return 0; } s32 animation; if (!m->marioObj->oMarioLongJumpIsSlow) { - animation = MARIO_ANIM_FAST_LONGJUMP; + animation = CHAR_ANIM_FAST_LONGJUMP; } else { - animation = MARIO_ANIM_SLOW_LONGJUMP; + animation = CHAR_ANIM_SLOW_LONGJUMP; } play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, CHAR_SOUND_YAHOO); @@ -690,7 +690,7 @@ s32 act_long_jump(struct MarioState *m) { s32 act_riding_shell_air(struct MarioState *m) { if (!m) { return 0; } play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); - set_mario_animation(m, MARIO_ANIM_JUMP_RIDING_SHELL); + set_character_animation(m, CHAR_ANIM_JUMP_RIDING_SHELL); update_air_without_turn(m); @@ -726,7 +726,7 @@ s32 act_twirling(struct MarioState *m) { m->angleVel[1] = approach_s32(m->angleVel[1], yawVelTarget, 0x200, 0x200); m->twirlYaw += m->angleVel[1]; - set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_START_TWIRL : MARIO_ANIM_TWIRL); + set_character_animation(m, m->actionArg == 0 ? CHAR_ANIM_START_TWIRL : CHAR_ANIM_TWIRL); if (is_anim_past_end(m)) { m->actionArg = 1; } @@ -766,7 +766,7 @@ s32 act_dive(struct MarioState *m) { play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); } - set_mario_animation(m, MARIO_ANIM_DIVE); + set_character_animation(m, CHAR_ANIM_DIVE); if (mario_check_object_grab(m)) { mario_grab_used_object(m); if (m->heldObj != NULL) { @@ -837,7 +837,7 @@ s32 act_air_throw(struct MarioState *m) { } play_character_sound_if_no_flag(m, CHAR_SOUND_WAH2, MARIO_MARIO_SOUND_PLAYED); - set_mario_animation(m, MARIO_ANIM_THROW_LIGHT_OBJECT); + set_character_animation(m, CHAR_ANIM_THROW_LIGHT_OBJECT); update_air_without_turn(m); switch (perform_air_step(m, 0)) { @@ -866,7 +866,7 @@ s32 act_water_jump(struct MarioState *m) { } play_mario_sound(m, SOUND_ACTION_UNKNOWN432, 0); - set_mario_animation(m, MARIO_ANIM_SINGLE_JUMP); + set_character_animation(m, CHAR_ANIM_SINGLE_JUMP); switch (perform_air_step(m, AIR_STEP_CHECK_LEDGE_GRAB)) { case AIR_STEP_LANDED: @@ -880,7 +880,7 @@ s32 act_water_jump(struct MarioState *m) { case AIR_STEP_GRABBED_LEDGE: #ifndef VERSION_JP - set_mario_animation(m, MARIO_ANIM_IDLE_ON_LEDGE); + set_character_animation(m, CHAR_ANIM_IDLE_ON_LEDGE); #endif set_mario_action(m, ACT_LEDGE_GRAB, 0); if (m->playerIndex == 0) { set_camera_mode(m->area->camera, m->area->camera->defMode, 1); } @@ -905,7 +905,7 @@ s32 act_hold_water_jump(struct MarioState *m) { } play_mario_sound(m, SOUND_ACTION_UNKNOWN432, 0); - set_mario_animation(m, MARIO_ANIM_JUMP_WITH_LIGHT_OBJ); + set_character_animation(m, CHAR_ANIM_JUMP_WITH_LIGHT_OBJ); switch (perform_air_step(m, 0)) { case AIR_STEP_LANDED: @@ -951,7 +951,7 @@ s32 act_steep_jump(struct MarioState *m) { break; } - set_mario_animation(m, MARIO_ANIM_SINGLE_JUMP); + set_character_animation(m, CHAR_ANIM_SINGLE_JUMP); m->marioObj->header.gfx.angle[1] = m->marioObj->oMarioSteepJumpYaw; return FALSE; } @@ -976,8 +976,8 @@ s32 act_ground_pound(struct MarioState *m) { m->vel[1] = -50.0f; mario_set_forward_vel(m, 0.0f); - set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_START_GROUND_POUND - : MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND); + set_character_animation(m, m->actionArg == 0 ? CHAR_ANIM_START_GROUND_POUND + : CHAR_ANIM_TRIPLE_JUMP_GROUND_POUND); if (m->actionTimer == 0) { play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); } @@ -988,7 +988,7 @@ s32 act_ground_pound(struct MarioState *m) { m->actionState = 1; } } else { - set_mario_animation(m, MARIO_ANIM_GROUND_POUND); + set_character_animation(m, CHAR_ANIM_GROUND_POUND); stepResult = perform_air_step(m, 0); if (stepResult == AIR_STEP_LANDED) { @@ -1037,7 +1037,7 @@ s32 act_burning_jump(struct MarioState *m) { set_mario_action(m, ACT_BURNING_GROUND, 0); } - set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_SINGLE_JUMP : MARIO_ANIM_FIRE_LAVA_BURN); + set_character_animation(m, m->actionArg == 0 ? CHAR_ANIM_SINGLE_JUMP : CHAR_ANIM_FIRE_LAVA_BURN); set_mario_particle_flags(m, PARTICLE_FIRE, FALSE); play_sound(SOUND_MOVING_LAVA_BURN, m->marioObj->header.gfx.cameraToObject); @@ -1066,7 +1066,7 @@ s32 act_burning_fall(struct MarioState *m) { set_mario_action(m, ACT_BURNING_GROUND, 0); } - set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); + set_character_animation(m, CHAR_ANIM_GENERAL_FALL); set_mario_particle_flags(m, PARTICLE_FIRE, FALSE); m->marioObj->oMarioBurnTimer += 3; @@ -1117,7 +1117,7 @@ s32 act_crazy_box_bounce(struct MarioState *m) { } play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, 0); - set_mario_animation(m, MARIO_ANIM_DIVE); + set_character_animation(m, CHAR_ANIM_DIVE); update_air_without_turn(m); @@ -1165,7 +1165,7 @@ u32 common_air_knockback_step(struct MarioState *m, u32 landAction, u32 hardFall stepResult = perform_air_step(m, 0); switch (stepResult) { case AIR_STEP_NONE: - set_mario_animation(m, animation); + set_character_animation(m, animation); break; case AIR_STEP_LANDED: @@ -1186,7 +1186,7 @@ u32 common_air_knockback_step(struct MarioState *m, u32 landAction, u32 hardFall break; case AIR_STEP_HIT_WALL: - set_mario_animation(m, MARIO_ANIM_BACKWARD_AIR_KB); + set_character_animation(m, CHAR_ANIM_BACKWARD_AIR_KB); mario_bonk_reflection(m, FALSE); if (m->vel[1] > 0.0f) { @@ -1348,7 +1348,7 @@ s32 act_getting_blown(struct MarioState *m) { #ifdef VERSION_JP play_character_sound_if_no_flag(m, CHAR_SOUND_UH, MARIO_MARIO_SOUND_PLAYED); #endif - set_mario_animation(m, MARIO_ANIM_BACKWARD_AIR_KB); + set_character_animation(m, CHAR_ANIM_BACKWARD_AIR_KB); switch (perform_air_step(m, 0)) { case AIR_STEP_LANDED: @@ -1356,7 +1356,7 @@ s32 act_getting_blown(struct MarioState *m) { break; case AIR_STEP_HIT_WALL: - set_mario_animation(m, MARIO_ANIM_AIR_FORWARD_KB); + set_character_animation(m, CHAR_ANIM_AIR_FORWARD_KB); mario_bonk_reflection(m, FALSE); if (m->vel[1] > 0.0f) { @@ -1405,10 +1405,10 @@ s32 act_air_hit_wall(struct MarioState *m) { #ifdef AVOID_UB return #endif - set_mario_animation(m, MARIO_ANIM_START_WALLKICK); + set_character_animation(m, CHAR_ANIM_START_WALLKICK); //! Missing return statement. The returned value is the result of the call - // to set_mario_animation. In practice, this value is nonzero. + // to set_character_animation. In practice, this value is nonzero. // This results in this action "cancelling" into itself. It is supposed to // execute on two frames, but instead it executes twice on the same frame. // This results in firsties only being possible for a single frame, instead @@ -1429,11 +1429,11 @@ s32 act_forward_rollout(struct MarioState *m) { switch (perform_air_step(m, 0)) { case AIR_STEP_NONE: if (m->actionState == 1) { - if (set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING) == 4) { + if (set_character_animation(m, CHAR_ANIM_FORWARD_SPINNING) == 4) { play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); } } else { - set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); + set_character_animation(m, CHAR_ANIM_GENERAL_FALL); } break; @@ -1471,11 +1471,11 @@ s32 act_backward_rollout(struct MarioState *m) { switch (perform_air_step(m, 0)) { case AIR_STEP_NONE: if (m->actionState == 1) { - if (set_mario_animation(m, MARIO_ANIM_BACKWARD_SPINNING) == 4) { + if (set_character_animation(m, CHAR_ANIM_BACKWARD_SPINNING) == 4) { play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); } } else { - set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); + set_character_animation(m, CHAR_ANIM_GENERAL_FALL); } break; @@ -1531,7 +1531,7 @@ s32 act_butt_slide_air(struct MarioState *m) { break; } - set_mario_animation(m, MARIO_ANIM_SLIDE); + set_character_animation(m, CHAR_ANIM_SLIDE); return FALSE; } @@ -1573,7 +1573,7 @@ s32 act_hold_butt_slide_air(struct MarioState *m) { break; } - set_mario_animation(m, MARIO_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ); + set_character_animation(m, CHAR_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ); return FALSE; } @@ -1622,7 +1622,7 @@ s32 act_lava_boost(struct MarioState *m) { break; } - set_mario_animation(m, MARIO_ANIM_FIRE_LAVA_BURN); + set_character_animation(m, CHAR_ANIM_FIRE_LAVA_BURN); if ((m->area->terrainType & TERRAIN_MASK) != TERRAIN_SNOW && !(m->flags & MARIO_METAL_CAP) && m->vel[1] > 0.0f) { set_mario_particle_flags(m, PARTICLE_FIRE, FALSE); @@ -1662,7 +1662,7 @@ s32 act_slide_kick(struct MarioState *m) { if (!m) { return 0; } if (m->actionTimer == 0) { play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, CHAR_SOUND_HOOHOO); - set_mario_animation(m, MARIO_ANIM_SLIDE_KICK); + set_character_animation(m, CHAR_ANIM_SLIDE_KICK); } if (++(m->actionTimer) > 30 && m->pos[1] - m->floorHeight > 500.0f) { @@ -1717,7 +1717,7 @@ s32 act_jump_kick(struct MarioState *m) { if (m->actionState == 0) { play_character_sound_if_no_flag(m, CHAR_SOUND_PUNCH_HOO, MARIO_ACTION_SOUND_PLAYED); m->marioObj->header.gfx.animInfo.animID = -1; - set_mario_animation(m, MARIO_ANIM_AIR_KICK); + set_character_animation(m, CHAR_ANIM_AIR_KICK); m->actionState = 1; } @@ -1761,7 +1761,7 @@ s32 act_shot_from_cannon(struct MarioState *m) { switch (perform_air_step(m, 0)) { case AIR_STEP_NONE: - set_mario_animation(m, MARIO_ANIM_AIRBORNE_ON_STOMACH); + set_character_animation(m, CHAR_ANIM_AIRBORNE_ON_STOMACH); m->faceAngle[0] = atan2s(m->forwardVel, m->vel[1]); m->marioObj->header.gfx.angle[0] = -m->faceAngle[0]; break; @@ -1893,9 +1893,9 @@ s32 act_flying(struct MarioState *m) { if (m->actionState == 0) { if (m->actionArg == 0) { - set_mario_animation(m, MARIO_ANIM_FLY_FROM_CANNON); + set_character_animation(m, CHAR_ANIM_FLY_FROM_CANNON); } else { - set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING_FLIP); + set_character_animation(m, CHAR_ANIM_FORWARD_SPINNING_FLIP); if (m->marioObj->header.gfx.animInfo.animFrame == 1) { play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); } @@ -1909,7 +1909,7 @@ s32 act_flying(struct MarioState *m) { m->actionArg = 1; } - set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); + set_character_animation(m, CHAR_ANIM_WING_CAP_FLY); m->actionState = 1; } } @@ -1926,7 +1926,7 @@ s32 act_flying(struct MarioState *m) { case AIR_STEP_LANDED: set_mario_action(m, ACT_DIVE_SLIDE, 0); - set_mario_animation(m, MARIO_ANIM_DIVE); + set_character_animation(m, CHAR_ANIM_DIVE); set_anim_to_frame(m, 7); m->faceAngle[0] = 0; @@ -2043,9 +2043,9 @@ s32 act_riding_hoot(struct MarioState *m) { m->faceAngle[1] = 0x4000 - m->usedObj->oMoveAngleYaw; if (m->actionState == 0) { - set_mario_animation(m, MARIO_ANIM_HANG_ON_CEILING); + set_character_animation(m, CHAR_ANIM_HANG_ON_CEILING); if (is_anim_at_end(m)) { - set_mario_animation(m, MARIO_ANIM_HANG_ON_OWL); + set_character_animation(m, CHAR_ANIM_HANG_ON_OWL); m->actionState = 1; } } @@ -2091,14 +2091,14 @@ s32 act_flying_triple_jump(struct MarioState *m) { play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, CHAR_SOUND_YAHOO); if (m->actionState == 0) { - set_mario_animation(m, MARIO_ANIM_TRIPLE_JUMP_FLY); + set_character_animation(m, CHAR_ANIM_TRIPLE_JUMP_FLY); if (m->marioObj->header.gfx.animInfo.animFrame == 7) { play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); } if (is_anim_past_end(m)) { - set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING); + set_character_animation(m, CHAR_ANIM_FORWARD_SPINNING); queue_rumble_data_mario(m, 8, 80); m->actionState = 1; } @@ -2159,7 +2159,7 @@ s32 act_flying_triple_jump(struct MarioState *m) { s32 act_top_of_pole_jump(struct MarioState *m) { play_mario_jump_sound(m); - common_air_action_step(m, ACT_FREEFALL_LAND, MARIO_ANIM_HANDSTAND_JUMP, AIR_STEP_CHECK_LEDGE_GRAB); + common_air_action_step(m, ACT_FREEFALL_LAND, CHAR_ANIM_HANDSTAND_JUMP, AIR_STEP_CHECK_LEDGE_GRAB); return FALSE; } @@ -2170,7 +2170,7 @@ s32 act_vertical_wind(struct MarioState *m) { play_character_sound_if_no_flag(m, CHAR_SOUND_HERE_WE_GO, MARIO_MARIO_SOUND_PLAYED); if (m->actionState == 0) { - set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING_FLIP); + set_character_animation(m, CHAR_ANIM_FORWARD_SPINNING_FLIP); if (m->marioObj->header.gfx.animInfo.animFrame == 1) { play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); queue_rumble_data_mario(m, 8, 80); @@ -2180,7 +2180,7 @@ s32 act_vertical_wind(struct MarioState *m) { m->actionState = 1; } } else { - set_mario_animation(m, MARIO_ANIM_AIRBORNE_ON_STOMACH); + set_character_animation(m, CHAR_ANIM_AIRBORNE_ON_STOMACH); } update_air_without_turn(m); @@ -2230,11 +2230,11 @@ s32 act_special_triple_jump(struct MarioState *m) { } if (m->actionState == 0 || m->vel[1] > 0.0f) { - if (set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING) == 0) { + if (set_character_animation(m, CHAR_ANIM_FORWARD_SPINNING) == 0) { play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); } } else { - set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); + set_character_animation(m, CHAR_ANIM_GENERAL_FALL); } set_mario_particle_flags(m, PARTICLE_SPARKLES, FALSE); diff --git a/src/game/mario_actions_automatic.c b/src/game/mario_actions_automatic.c index 87df09dcb..5d012b5cf 100644 --- a/src/game/mario_actions_automatic.c +++ b/src/game/mario_actions_automatic.c @@ -204,7 +204,7 @@ s32 act_holding_pole(struct MarioState *m) { } if (set_pole_position(m, 0.0f) == POLE_NONE) { - set_mario_animation(m, MARIO_ANIM_IDLE_ON_POLE); + set_character_animation(m, CHAR_ANIM_IDLE_ON_POLE); } return FALSE; @@ -241,7 +241,7 @@ s32 act_climbing_pole(struct MarioState *m) { if (set_pole_position(m, 0.0f) == POLE_NONE) { sp24 = m->controller->stickY / 4.0f * 0x10000; - set_mario_anim_with_accel(m, MARIO_ANIM_CLIMB_UP_POLE, sp24); + set_character_anim_with_accel(m, CHAR_ANIM_CLIMB_UP_POLE, sp24); add_tree_leaf_particles(m); play_climbing_sounds(m, 1); } @@ -255,7 +255,7 @@ s32 act_grab_pole_slow(struct MarioState *m) { play_character_sound_if_no_flag(m, CHAR_SOUND_WHOA, MARIO_MARIO_SOUND_PLAYED); if (set_pole_position(m, 0.0f) == POLE_NONE) { - set_mario_animation(m, MARIO_ANIM_GRAB_POLE_SHORT); + set_character_animation(m, CHAR_ANIM_GRAB_POLE_SHORT); if (is_anim_at_end(m)) { set_mario_action(m, ACT_HOLDING_POLE, 0); } @@ -276,9 +276,9 @@ s32 act_grab_pole_fast(struct MarioState *m) { if (set_pole_position(m, 0.0f) == POLE_NONE) { if (marioObj->oMarioPoleYawVel > 0x800) { - set_mario_animation(m, MARIO_ANIM_GRAB_POLE_SWING_PART1); + set_character_animation(m, CHAR_ANIM_GRAB_POLE_SWING_PART1); } else { - set_mario_animation(m, MARIO_ANIM_GRAB_POLE_SWING_PART2); + set_character_animation(m, CHAR_ANIM_GRAB_POLE_SWING_PART2); if (is_anim_at_end(m)) { marioObj->oMarioPoleYawVel = 0; set_mario_action(m, ACT_HOLDING_POLE, 0); @@ -297,12 +297,12 @@ s32 act_top_of_pole_transition(struct MarioState *m) { marioObj->oMarioPoleYawVel = 0; if (m->actionArg == 0) { - set_mario_animation(m, MARIO_ANIM_START_HANDSTAND); + set_character_animation(m, CHAR_ANIM_START_HANDSTAND); if (is_anim_at_end(m)) { return set_mario_action(m, ACT_TOP_OF_POLE, 0); } } else { - set_mario_animation(m, MARIO_ANIM_RETURN_FROM_HANDSTAND); + set_character_animation(m, CHAR_ANIM_RETURN_FROM_HANDSTAND); if (m->marioObj->header.gfx.animInfo.animFrame == 0) { return set_mario_action(m, ACT_HOLDING_POLE, 0); } @@ -326,7 +326,7 @@ s32 act_top_of_pole(struct MarioState *m) { m->faceAngle[1] -= m->controller->stickX * 16.0f; - set_mario_animation(m, MARIO_ANIM_HANDSTAND_IDLE); + set_character_animation(m, CHAR_ANIM_HANDSTAND_IDLE); set_pole_position(m, return_mario_anim_y_translation(m)); return FALSE; } @@ -457,7 +457,7 @@ s32 act_start_hanging(struct MarioState *m) { return set_mario_action(m, ACT_FREEFALL, 0); } - set_mario_animation(m, MARIO_ANIM_HANG_ON_CEILING); + set_character_animation(m, CHAR_ANIM_HANG_ON_CEILING); play_sound_if_no_flag(m, SOUND_ACTION_HANGING_STEP, MARIO_ACTION_SOUND_PLAYED); update_hang_stationary(m); @@ -487,9 +487,9 @@ s32 act_hanging(struct MarioState *m) { } if (m->actionArg & 1) { - set_mario_animation(m, MARIO_ANIM_HANDSTAND_LEFT); + set_character_animation(m, CHAR_ANIM_HANDSTAND_LEFT); } else { - set_mario_animation(m, MARIO_ANIM_HANDSTAND_RIGHT); + set_character_animation(m, CHAR_ANIM_HANDSTAND_RIGHT); } update_hang_stationary(m); @@ -512,9 +512,9 @@ s32 act_hang_moving(struct MarioState *m) { } if (m->actionArg & 1) { - set_mario_animation(m, MARIO_ANIM_MOVE_ON_WIRE_NET_RIGHT); + set_character_animation(m, CHAR_ANIM_MOVE_ON_WIRE_NET_RIGHT); } else { - set_mario_animation(m, MARIO_ANIM_MOVE_ON_WIRE_NET_LEFT); + set_character_animation(m, CHAR_ANIM_MOVE_ON_WIRE_NET_LEFT); } if (m->marioObj->header.gfx.animInfo.animFrame == 12) { @@ -558,7 +558,7 @@ s32 let_go_of_ledge(struct MarioState *m) { void climb_up_ledge(struct MarioState *m) { if (!m) { return; } - set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_LEFT); + set_character_animation(m, CHAR_ANIM_IDLE_HEAD_LEFT); m->pos[0] += 14.0f * sins(m->faceAngle[1]); m->pos[2] += 14.0f * coss(m->faceAngle[1]); vec3f_copy(m->marioObj->header.gfx.pos, m->pos); @@ -583,7 +583,7 @@ void update_ledge_climb_camera(struct MarioState *m) { void update_ledge_climb(struct MarioState *m, s32 animation, u32 endAction) { stop_and_set_height_to_floor(m); - set_mario_animation(m, animation); + set_character_animation(m, animation); if (is_anim_at_end(m)) { set_mario_action(m, endAction, 0); if (endAction == ACT_IDLE) { @@ -646,7 +646,7 @@ s32 act_ledge_grab(struct MarioState *m) { } stop_and_set_height_to_floor(m); - set_mario_animation(m, MARIO_ANIM_IDLE_ON_LEDGE); + set_character_animation(m, CHAR_ANIM_IDLE_ON_LEDGE); return FALSE; } @@ -668,7 +668,7 @@ s32 act_ledge_climb_slow(struct MarioState *m) { play_character_sound_if_no_flag(m, CHAR_SOUND_EEUH, MARIO_MARIO_SOUND_PLAYED); } - update_ledge_climb(m, MARIO_ANIM_SLOW_LEDGE_GRAB, ACT_IDLE); + update_ledge_climb(m, CHAR_ANIM_SLOW_LEDGE_GRAB, ACT_IDLE); update_ledge_climb_camera(m); if (m->marioObj->header.gfx.animInfo.animFrame == 17) { @@ -686,7 +686,7 @@ s32 act_ledge_climb_down(struct MarioState *m) { play_character_sound_if_no_flag(m, CHAR_SOUND_WHOA, MARIO_MARIO_SOUND_PLAYED); - update_ledge_climb(m, MARIO_ANIM_CLIMB_DOWN_LEDGE, ACT_LEDGE_GRAB); + update_ledge_climb(m, CHAR_ANIM_CLIMB_DOWN_LEDGE, ACT_LEDGE_GRAB); m->actionArg = 1; return FALSE; @@ -700,7 +700,7 @@ s32 act_ledge_climb_fast(struct MarioState *m) { play_character_sound_if_no_flag(m, CHAR_SOUND_UH2, MARIO_MARIO_SOUND_PLAYED); - update_ledge_climb(m, MARIO_ANIM_FAST_LEDGE_GRAB, ACT_IDLE); + update_ledge_climb(m, CHAR_ANIM_FAST_LEDGE_GRAB, ACT_IDLE); if (m->marioObj->header.gfx.animInfo.animFrame == 8) { play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); @@ -727,7 +727,7 @@ s32 act_grabbed(struct MarioState *m) { thrown); } if (m->usedObj != NULL) { m->heldByObj = m->usedObj; } - set_mario_animation(m, MARIO_ANIM_BEING_GRABBED); + set_character_animation(m, CHAR_ANIM_BEING_GRABBED); // check if they should still be grabbed if (m->playerIndex == 0) { @@ -842,7 +842,7 @@ s32 act_in_cannon(struct MarioState *m) { vec3f_copy(m->marioObj->header.gfx.pos, m->pos); vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); - set_mario_animation(m, MARIO_ANIM_DIVE); + set_character_animation(m, CHAR_ANIM_DIVE); return FALSE; } @@ -911,7 +911,7 @@ s32 act_tornado_twirling(struct MarioState *m) { m->actionTimer++; - set_mario_animation(m, (m->actionArg == 0) ? MARIO_ANIM_START_TWIRL : MARIO_ANIM_TWIRL); + set_character_animation(m, (m->actionArg == 0) ? CHAR_ANIM_START_TWIRL : CHAR_ANIM_TWIRL); if (is_anim_past_end(m)) { m->actionArg = 1; @@ -1044,7 +1044,7 @@ s32 act_bubbled(struct MarioState* m) { m->marioObj->oIntangibleTimer = -1; m->squishTimer = 0; m->bounceSquishTimer = 0; - set_mario_animation(m, MARIO_ANIM_SLEEP_IDLE); + set_character_animation(m, CHAR_ANIM_SLEEP_IDLE); // force inputs f32 oldPitch = m->faceAngle[0]; diff --git a/src/game/mario_actions_cutscene.c b/src/game/mario_actions_cutscene.c index 64a756184..b52ffc32a 100644 --- a/src/game/mario_actions_cutscene.c +++ b/src/game/mario_actions_cutscene.c @@ -471,8 +471,8 @@ s32 act_reading_npc_dialog(struct MarioState *m) { m->actionTimer += headTurnAmount; } // set animation - set_mario_animation(m, m->heldObj == NULL ? MARIO_ANIM_FIRST_PERSON - : MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); + set_character_animation(m, m->heldObj == NULL ? CHAR_ANIM_FIRST_PERSON + : CHAR_ANIM_IDLE_WITH_LIGHT_OBJ); } else if (m->actionState >= 9 && m->actionState < 17) { // look back from facing NPC m->actionTimer -= headTurnAmount; @@ -493,8 +493,8 @@ s32 act_reading_npc_dialog(struct MarioState *m) { if (m->playerIndex != 0 && gCurrentObject->header.gfx.animInfo.animID == -1) { // set animation - set_mario_animation(m, m->heldObj == NULL ? MARIO_ANIM_FIRST_PERSON - : MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); + set_character_animation(m, m->heldObj == NULL ? CHAR_ANIM_FIRST_PERSON + : CHAR_ANIM_IDLE_WITH_LIGHT_OBJ); } return FALSE; @@ -502,8 +502,8 @@ s32 act_reading_npc_dialog(struct MarioState *m) { // puts Mario in a state where he's waiting for (npc) dialog; doesn't do much s32 act_waiting_for_dialog(struct MarioState *m) { - set_mario_animation(m, m->heldObj == NULL ? MARIO_ANIM_FIRST_PERSON - : MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); + set_character_animation(m, m->heldObj == NULL ? CHAR_ANIM_FIRST_PERSON + : CHAR_ANIM_IDLE_WITH_LIGHT_OBJ); vec3f_copy(m->marioObj->header.gfx.pos, m->pos); vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); return FALSE; @@ -511,7 +511,7 @@ s32 act_waiting_for_dialog(struct MarioState *m) { // makes Mario disappear and triggers warp s32 act_disappeared(struct MarioState *m) { - set_mario_animation(m, MARIO_ANIM_A_POSE); + set_character_animation(m, CHAR_ANIM_A_POSE); stop_and_set_height_to_floor(m); m->marioObj->header.gfx.node.flags &= ~GRAPH_RENDER_ACTIVE; if (m->actionArg) { @@ -533,7 +533,7 @@ s32 act_reading_automatic_dialog(struct MarioState *m) { enable_time_stop_if_alone(); } if (m->actionState < 9) { - set_mario_animation(m, m->prevAction == ACT_STAR_DANCE_WATER ? MARIO_ANIM_WATER_IDLE : MARIO_ANIM_FIRST_PERSON); + set_character_animation(m, m->prevAction == ACT_STAR_DANCE_WATER ? CHAR_ANIM_WATER_IDLE : CHAR_ANIM_FIRST_PERSON); // always look up for automatic dialogs m->actionTimer -= 1024; } else { @@ -582,7 +582,7 @@ s32 act_reading_sign(struct MarioState *m) { // If anybody but us is reading a sign, // Don't handle their action state. if (m->playerIndex != 0) { - set_mario_animation(m, MARIO_ANIM_FIRST_PERSON); + set_character_animation(m, CHAR_ANIM_FIRST_PERSON); return FALSE; } @@ -596,7 +596,7 @@ s32 act_reading_sign(struct MarioState *m) { } enable_time_stop_if_alone(); // reading sign - set_mario_animation(m, MARIO_ANIM_FIRST_PERSON); + set_character_animation(m, CHAR_ANIM_FIRST_PERSON); m->actionState = 1; // intentional fall through // turn toward sign @@ -647,7 +647,7 @@ s32 act_debug_free_move(struct MarioState *m) { // integer immediates, generates convert instructions for some reason f32 speed = gPlayer1Controller->buttonDown & B_BUTTON ? 1 : 4; - set_mario_animation(m, MARIO_ANIM_A_POSE); + set_character_animation(m, CHAR_ANIM_A_POSE); Vec3f pos; vec3f_copy(pos, m->pos); @@ -765,7 +765,7 @@ s32 act_star_dance(struct MarioState *m) { if (m == &gMarioStates[0]) { m->faceAngle[1] = m->area->camera->yaw; } - set_mario_animation(m, m->actionState == 2 ? MARIO_ANIM_RETURN_FROM_STAR_DANCE : MARIO_ANIM_STAR_DANCE); + set_character_animation(m, m->actionState == 2 ? CHAR_ANIM_RETURN_FROM_STAR_DANCE : CHAR_ANIM_STAR_DANCE); general_star_dance_handler(m, 0); if (m->actionState != 2 && m->actionTimer >= 40) { m->marioBodyState->handState = MARIO_HAND_PEACE_SIGN; @@ -779,7 +779,7 @@ s32 act_star_dance_water(struct MarioState *m) { if (m == &gMarioStates[0]) { m->faceAngle[1] = m->area->camera->yaw; } - set_mario_animation(m, m->actionState == 2 ? MARIO_ANIM_RETURN_FROM_WATER_STAR_DANCE : MARIO_ANIM_WATER_STAR_DANCE); + set_character_animation(m, m->actionState == 2 ? CHAR_ANIM_RETURN_FROM_WATER_STAR_DANCE : CHAR_ANIM_WATER_STAR_DANCE); vec3f_copy(m->marioObj->header.gfx.pos, m->pos); vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); general_star_dance_handler(m, m->pos[1] < m->waterLevel - 100); @@ -800,13 +800,13 @@ s32 act_fall_after_star_grab(struct MarioState *m) { play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); set_mario_action(m, m->actionArg & 1 ? ACT_STAR_DANCE_NO_EXIT : ACT_STAR_DANCE_EXIT, m->actionArg); } - set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); + set_character_animation(m, CHAR_ANIM_GENERAL_FALL); return FALSE; } s32 common_death_handler(struct MarioState *m, s32 animation, s32 frameToDeathWarp) { if (!m) { return 0; } - s32 animFrame = set_mario_animation(m, animation); + s32 animFrame = set_character_animation(m, animation); if (animFrame == frameToDeathWarp) { if (m->playerIndex != 0) { // do nothing @@ -834,7 +834,7 @@ s32 act_standing_death(struct MarioState *m) { } play_character_sound_if_no_flag(m, CHAR_SOUND_DYING, MARIO_ACTION_SOUND_PLAYED); - common_death_handler(m, MARIO_ANIM_DYING_FALL_OVER, 80); + common_death_handler(m, CHAR_ANIM_DYING_FALL_OVER, 80); if (m->marioObj->header.gfx.animInfo.animFrame == 77) { play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); } @@ -843,19 +843,19 @@ s32 act_standing_death(struct MarioState *m) { s32 act_electrocution(struct MarioState *m) { play_character_sound_if_no_flag(m, CHAR_SOUND_DYING, MARIO_ACTION_SOUND_PLAYED); - common_death_handler(m, MARIO_ANIM_ELECTROCUTION, 43); + common_death_handler(m, CHAR_ANIM_ELECTROCUTION, 43); return FALSE; } s32 act_suffocation(struct MarioState *m) { play_character_sound_if_no_flag(m, CHAR_SOUND_DYING, MARIO_ACTION_SOUND_PLAYED); - common_death_handler(m, MARIO_ANIM_SUFFOCATING, 86); + common_death_handler(m, CHAR_ANIM_SUFFOCATING, 86); return FALSE; } s32 act_death_on_back(struct MarioState *m) { play_character_sound_if_no_flag(m, CHAR_SOUND_DYING, MARIO_ACTION_SOUND_PLAYED); - if (common_death_handler(m, MARIO_ANIM_DYING_ON_BACK, 54) == 40) { + if (common_death_handler(m, CHAR_ANIM_DYING_ON_BACK, 54) == 40) { play_mario_heavy_landing_sound(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); } return FALSE; @@ -863,7 +863,7 @@ s32 act_death_on_back(struct MarioState *m) { s32 act_death_on_stomach(struct MarioState *m) { play_character_sound_if_no_flag(m, CHAR_SOUND_DYING, MARIO_ACTION_SOUND_PLAYED); - if (common_death_handler(m, MARIO_ANIM_DYING_ON_STOMACH, 37) == 37) { + if (common_death_handler(m, CHAR_ANIM_DYING_ON_STOMACH, 37) == 37) { play_mario_heavy_landing_sound(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); } return FALSE; @@ -872,7 +872,7 @@ s32 act_death_on_stomach(struct MarioState *m) { s32 act_quicksand_death(struct MarioState *m) { if (!m) { return 0; } if (m->actionState == 0) { - set_mario_animation(m, MARIO_ANIM_DYING_IN_QUICKSAND); + set_character_animation(m, CHAR_ANIM_DYING_IN_QUICKSAND); set_anim_to_frame(m, 60); m->actionState = 1; } @@ -905,7 +905,7 @@ s32 act_quicksand_death(struct MarioState *m) { s32 act_eaten_by_bubba(struct MarioState *m) { if (!m) { return 0; } play_character_sound_if_no_flag(m, CHAR_SOUND_DYING, MARIO_ACTION_SOUND_PLAYED); - set_mario_animation(m, MARIO_ANIM_A_POSE); + set_character_animation(m, CHAR_ANIM_A_POSE); if (m->actionTimer++ == 60) { if (m->playerIndex != 0) { @@ -932,7 +932,7 @@ s32 act_eaten_by_bubba(struct MarioState *m) { s32 launch_mario_until_land(struct MarioState *m, s32 endAction, s32 animation, f32 forwardVel) { s32 airStepLanded; mario_set_forward_vel(m, forwardVel); - set_mario_animation(m, animation); + set_character_animation(m, animation); airStepLanded = (perform_air_step(m, 0) == AIR_STEP_LANDED); if (airStepLanded) { set_mario_action(m, endAction, 0); @@ -955,7 +955,7 @@ s32 act_unlocking_key_door(struct MarioState *m) { if ((m->actionTimer == 0) || (m->playerIndex != 0 && gCurrentObject && gCurrentObject->header.gfx.animInfo.animID == -1)) { spawn_obj_at_mario_rel_yaw(m, MODEL_BOWSER_KEY_CUTSCENE, bhvBowserKeyUnlockDoor, 0); - set_mario_animation(m, MARIO_ANIM_UNLOCK_DOOR); + set_character_animation(m, CHAR_ANIM_UNLOCK_DOOR); } switch (m->marioObj->header.gfx.animInfo.animFrame) { @@ -998,7 +998,7 @@ s32 act_unlocking_star_door(struct MarioState *m) { } m->marioObj->oMarioReadingSignDPosX = m->pos[0]; m->marioObj->oMarioReadingSignDPosZ = m->pos[2]; - set_mario_animation(m, MARIO_ANIM_SUMMON_STAR); + set_character_animation(m, CHAR_ANIM_SUMMON_STAR); if (m->playerIndex != 0) { allowRemoteStarSpawn = TRUE; } m->actionState++; break; @@ -1013,7 +1013,7 @@ s32 act_unlocking_star_door(struct MarioState *m) { break; case 2: if (m->actionTimer++ == 70) { - set_mario_animation(m, MARIO_ANIM_RETURN_STAR_APPROACH_DOOR); + set_character_animation(m, CHAR_ANIM_RETURN_STAR_APPROACH_DOOR); m->actionState++; } break; @@ -1068,12 +1068,12 @@ s32 act_entering_star_door(struct MarioState *m) { // set Mario's animation if (m->actionTimer < 15) { - set_mario_animation(m, MARIO_ANIM_FIRST_PERSON); + set_character_animation(m, CHAR_ANIM_FIRST_PERSON); } else if (m->actionTimer < 35) { // go through door? for 20 frames m->pos[0] += m->marioObj->oMarioReadingSignDPosX; m->pos[2] += m->marioObj->oMarioReadingSignDPosZ; - set_mario_anim_with_accel(m, MARIO_ANIM_WALKING, 0x00028000); + set_character_anim_with_accel(m, CHAR_ANIM_WALKING, 0x00028000); } else { if (m->usedObj != NULL) { m->faceAngle[1] = m->usedObj->oMoveAngleYaw; @@ -1086,7 +1086,7 @@ s32 act_entering_star_door(struct MarioState *m) { m->pos[0] += 12.0f * sins(m->faceAngle[1]); m->pos[2] += 12.0f * coss(m->faceAngle[1]); - set_mario_anim_with_accel(m, MARIO_ANIM_WALKING, 0x00028000); + set_character_anim_with_accel(m, CHAR_ANIM_WALKING, 0x00028000); } stop_and_set_height_to_floor(m); @@ -1105,12 +1105,12 @@ s32 act_going_through_door(struct MarioState *m) { if (m->interactObj != NULL) { m->interactObj->oInteractStatus = 0x00010000; } - set_mario_animation(m, MARIO_ANIM_PULL_DOOR_WALK_IN); + set_character_animation(m, CHAR_ANIM_PULL_DOOR_WALK_IN); } else { if (m->interactObj != NULL) { m->interactObj->oInteractStatus = 0x00020000; } - set_mario_animation(m, MARIO_ANIM_PUSH_DOOR_WALK_IN); + set_character_animation(m, CHAR_ANIM_PUSH_DOOR_WALK_IN); } } if (m->usedObj != NULL) { @@ -1157,7 +1157,7 @@ s32 act_warp_door_spawn(struct MarioState *m) { } } } - set_mario_animation(m, MARIO_ANIM_FIRST_PERSON); + set_character_animation(m, CHAR_ANIM_FIRST_PERSON); stop_and_set_height_to_floor(m); return FALSE; } @@ -1165,7 +1165,7 @@ s32 act_warp_door_spawn(struct MarioState *m) { static s32 launch_mario_until_land_no_collision(struct MarioState *m, s32 endAction, s32 animation, f32 forwardVel) { if (!m) { return 0; } mario_set_forward_vel(m, forwardVel); - set_mario_animation(m, animation); + set_character_animation(m, animation); m->pos[0] += m->vel[0]; m->pos[1] += m->vel[1]; m->pos[2] += m->vel[2]; @@ -1208,14 +1208,14 @@ s32 act_emerge_from_pipe(struct MarioState *m) { // After Mario has exited the pipe, disable wall and ceiling collision until Mario lands // Fix softlocks in narrow places if (m->actionTimer > 15) { - if (launch_mario_until_land_no_collision(m, ACT_JUMP_LAND_STOP, MARIO_ANIM_SINGLE_JUMP, 8.0f)) { + if (launch_mario_until_land_no_collision(m, ACT_JUMP_LAND_STOP, CHAR_ANIM_SINGLE_JUMP, 8.0f)) { mario_set_forward_vel(m, 0.0f); play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); } return FALSE; } - if (launch_mario_until_land(m, ACT_JUMP_LAND_STOP, MARIO_ANIM_SINGLE_JUMP, 8.0f)) { + if (launch_mario_until_land(m, ACT_JUMP_LAND_STOP, CHAR_ANIM_SINGLE_JUMP, 8.0f)) { mario_set_forward_vel(m, 0.0f); play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); } @@ -1243,12 +1243,12 @@ s32 act_spawn_spin_airborne(struct MarioState *m) { // is 300 units above floor, spin and play woosh sounds if (m->actionState == 0 && m->pos[1] - m->floorHeight > 300.0f) { - if (set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING) == 0) { // first anim frame + if (set_character_animation(m, CHAR_ANIM_FORWARD_SPINNING) == 0) { // first anim frame play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); } } else { // under 300 units above floor, enter freefall animation m->actionState = 1; - set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); + set_character_animation(m, CHAR_ANIM_GENERAL_FALL); } return FALSE; @@ -1256,7 +1256,7 @@ s32 act_spawn_spin_airborne(struct MarioState *m) { s32 act_spawn_spin_landing(struct MarioState *m) { stop_and_set_height_to_floor(m); - set_mario_animation(m, MARIO_ANIM_GENERAL_LAND); + set_character_animation(m, CHAR_ANIM_GENERAL_LAND); if (is_anim_at_end(m)) { if (m == &gMarioStates[0]) { load_level_init_text(0); @@ -1279,7 +1279,7 @@ s32 act_spawn_spin_landing(struct MarioState *m) { s32 act_exit_airborne(struct MarioState *m) { if (!m) { return 0; } if (15 < m->actionTimer++ - && launch_mario_until_land(m, ACT_EXIT_LAND_SAVE_DIALOG, MARIO_ANIM_GENERAL_FALL, -32.0f)) { + && launch_mario_until_land(m, ACT_EXIT_LAND_SAVE_DIALOG, CHAR_ANIM_GENERAL_FALL, -32.0f)) { // heal Mario m->healCounter = 31; } @@ -1291,7 +1291,7 @@ s32 act_exit_airborne(struct MarioState *m) { s32 act_falling_exit_airborne(struct MarioState *m) { if (!m) { return 0; } - if (launch_mario_until_land(m, ACT_EXIT_LAND_SAVE_DIALOG, MARIO_ANIM_GENERAL_FALL, 0.0f)) { + if (launch_mario_until_land(m, ACT_EXIT_LAND_SAVE_DIALOG, CHAR_ANIM_GENERAL_FALL, 0.0f)) { // heal Mario m->healCounter = 31; } @@ -1309,7 +1309,7 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { switch (m->actionState) { // determine type of exit case 0: - set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_GENERAL_LAND : MARIO_ANIM_LAND_FROM_SINGLE_JUMP); + set_character_animation(m, m->actionArg == 0 ? CHAR_ANIM_GENERAL_LAND : CHAR_ANIM_LAND_FROM_SINGLE_JUMP); // only allow for local player if (m == &gMarioStates[0] && is_anim_past_end(m)) { if (gLastCompletedCourseNum != COURSE_BITDW && gLastCompletedCourseNum != COURSE_BITFS) { @@ -1331,7 +1331,7 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { break; // key exit case 1: - animFrame = set_mario_animation(m, MARIO_ANIM_THROW_CATCH_KEY); + animFrame = set_character_animation(m, CHAR_ANIM_THROW_CATCH_KEY); switch (animFrame) { case -1: spawn_obj_at_mario_rel_yaw(m, MODEL_BOWSER_KEY_CUTSCENE, bhvBowserKeyCourseExit, -32768); @@ -1351,7 +1351,7 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { break; // exit without cap case 2: - animFrame = set_mario_animation(m, MARIO_ANIM_MISSING_CAP); + animFrame = set_character_animation(m, CHAR_ANIM_MISSING_CAP); if ((animFrame >= 18 && animFrame < 55) || (animFrame >= 112 && animFrame < 134)) { m->marioBodyState->handState = MARIO_HAND_OPEN; } @@ -1364,7 +1364,7 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { break; // exit with cap case 3: - animFrame = set_mario_animation(m, MARIO_ANIM_TAKE_CAP_OFF_THEN_ON); + animFrame = set_character_animation(m, CHAR_ANIM_TAKE_CAP_OFF_THEN_ON); switch (animFrame) { case 12: cutscene_take_cap_off(m); @@ -1390,7 +1390,7 @@ s32 act_exit_land_save_dialog(struct MarioState *m) { s32 act_death_exit(struct MarioState *m) { if (!m) { return 0; } if (15 < m->actionTimer++ - && launch_mario_until_land(m, ACT_DEATH_EXIT_LAND, MARIO_ANIM_GENERAL_FALL, -32.0f)) { + && launch_mario_until_land(m, ACT_DEATH_EXIT_LAND, CHAR_ANIM_GENERAL_FALL, -32.0f)) { #ifdef VERSION_JP play_character_sound(m, CHAR_SOUND_OOOF); #else @@ -1407,7 +1407,7 @@ s32 act_death_exit(struct MarioState *m) { s32 act_unused_death_exit(struct MarioState *m) { if (!m) { return 0; } - if (launch_mario_until_land(m, ACT_FREEFALL_LAND_STOP, MARIO_ANIM_GENERAL_FALL, 0.0f)) { + if (launch_mario_until_land(m, ACT_FREEFALL_LAND_STOP, CHAR_ANIM_GENERAL_FALL, 0.0f)) { #ifdef VERSION_JP play_character_sound(m, CHAR_SOUND_OOOF); #else @@ -1423,7 +1423,7 @@ s32 act_unused_death_exit(struct MarioState *m) { s32 act_falling_death_exit(struct MarioState *m) { if (!m) { return 0; } - if (launch_mario_until_land(m, ACT_DEATH_EXIT_LAND, MARIO_ANIM_GENERAL_FALL, 0.0f)) { + if (launch_mario_until_land(m, ACT_DEATH_EXIT_LAND, CHAR_ANIM_GENERAL_FALL, 0.0f)) { #ifdef VERSION_JP play_character_sound(m, CHAR_SOUND_OOOF); #else @@ -1450,7 +1450,7 @@ s32 act_special_exit_airborne(struct MarioState *m) { return FALSE; } - if (launch_mario_until_land(m, ACT_EXIT_LAND_SAVE_DIALOG, MARIO_ANIM_SINGLE_JUMP, -24.0f)) { + if (launch_mario_until_land(m, ACT_EXIT_LAND_SAVE_DIALOG, CHAR_ANIM_SINGLE_JUMP, -24.0f)) { // heal Mario m->healCounter = 31; m->actionArg = 1; @@ -1474,7 +1474,7 @@ s32 act_special_death_exit(struct MarioState *m) { return FALSE; } - if (launch_mario_until_land(m, ACT_HARD_BACKWARD_GROUND_KB, MARIO_ANIM_BACKWARD_AIR_KB, -24.0f)) { + if (launch_mario_until_land(m, ACT_HARD_BACKWARD_GROUND_KB, CHAR_ANIM_BACKWARD_AIR_KB, -24.0f)) { queue_rumble_data_mario(m, 5, 80); m->healCounter = 31; } @@ -1488,7 +1488,7 @@ s32 act_special_death_exit(struct MarioState *m) { s32 act_spawn_no_spin_airborne(struct MarioState *m) { if (!m) { return 0; } - launch_mario_until_land(m, ACT_SPAWN_NO_SPIN_LANDING, MARIO_ANIM_GENERAL_FALL, 0.0f); + launch_mario_until_land(m, ACT_SPAWN_NO_SPIN_LANDING, CHAR_ANIM_GENERAL_FALL, 0.0f); if (m->pos[1] < m->waterLevel - 100) { set_water_plunge_action(m); } @@ -1497,7 +1497,7 @@ s32 act_spawn_no_spin_airborne(struct MarioState *m) { s32 act_spawn_no_spin_landing(struct MarioState *m) { play_mario_landing_sound_once(m, SOUND_ACTION_TERRAIN_LANDING); - set_mario_animation(m, MARIO_ANIM_GENERAL_LAND); + set_character_animation(m, CHAR_ANIM_GENERAL_LAND); stop_and_set_height_to_floor(m); if (is_anim_at_end(m)) { if (m == &gMarioStates[0]) { @@ -1547,7 +1547,7 @@ s32 act_bbh_enter_spin(struct MarioState *m) { m->faceAngle[1] = atan2s(cageDZ, cageDX); mario_set_forward_vel(m, forwardVel); - if (set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING) == 0) { + if (set_character_animation(m, CHAR_ANIM_FORWARD_SPINNING) == 0) { play_sound(SOUND_ACTION_SPIN, m->marioObj->header.gfx.cameraToObject); } @@ -1575,7 +1575,7 @@ s32 act_bbh_enter_spin(struct MarioState *m) { } } else { play_sound_if_no_flag(m, SOUND_ACTION_SHRINK_INTO_BBH, MARIO_ACTION_SOUND_PLAYED); - set_mario_animation(m, MARIO_ANIM_DIVE); + set_character_animation(m, CHAR_ANIM_DIVE); m->marioObj->header.gfx.angle[0] = atan2s(m->forwardVel, -m->vel[1]); } m->squishTimer = 0xFF; @@ -1617,7 +1617,7 @@ s32 act_bbh_enter_jump(struct MarioState *m) { m->actionState = 1; } - set_mario_animation(m, MARIO_ANIM_DOUBLE_JUMP_RISE); + set_character_animation(m, CHAR_ANIM_DOUBLE_JUMP_RISE); perform_air_step(m, 0); if (m->vel[1] <= 0.0f) { @@ -1630,7 +1630,7 @@ s32 act_bbh_enter_jump(struct MarioState *m) { s32 act_teleport_fade_out(struct MarioState *m) { if (!m) { return 0; } play_sound_if_no_flag(m, SOUND_ACTION_TELEPORT, MARIO_ACTION_SOUND_PLAYED); - set_mario_animation(m, m->prevAction == ACT_CROUCHING ? MARIO_ANIM_CROUCHING : MARIO_ANIM_FIRST_PERSON); + set_character_animation(m, m->prevAction == ACT_CROUCHING ? CHAR_ANIM_CROUCHING : CHAR_ANIM_FIRST_PERSON); if (m->actionTimer == 0) { queue_rumble_data_mario(m, 30, 70); @@ -1660,7 +1660,7 @@ s32 act_teleport_fade_out(struct MarioState *m) { s32 act_teleport_fade_in(struct MarioState *m) { if (!m) { return 0; } play_sound_if_no_flag(m, SOUND_ACTION_TELEPORT, MARIO_ACTION_SOUND_PLAYED); - set_mario_animation(m, MARIO_ANIM_FIRST_PERSON); + set_character_animation(m, CHAR_ANIM_FIRST_PERSON); if (m->actionTimer == 0) { queue_rumble_data_mario(m, 30, 70); @@ -1699,7 +1699,7 @@ s32 act_shocked(struct MarioState *m) { play_sound(SOUND_MOVING_SHOCKED, m->marioObj->header.gfx.cameraToObject); if (m->playerIndex == 0) { set_camera_shake_from_hit(SHAKE_SHOCK); } - if (set_mario_animation(m, MARIO_ANIM_SHOCKED) == 0) { + if (set_character_animation(m, CHAR_ANIM_SHOCKED) == 0) { m->actionTimer++; m->flags |= MARIO_METAL_SHOCK; } @@ -1837,12 +1837,12 @@ s32 act_squished(struct MarioState *m) { } } stop_and_set_height_to_floor(m); - set_mario_animation(m, MARIO_ANIM_A_POSE); + set_character_animation(m, CHAR_ANIM_A_POSE); return FALSE; } s32 act_putting_on_cap(struct MarioState *m) { - s32 animFrame = set_mario_animation(m, MARIO_ANIM_PUT_CAP_ON); + s32 animFrame = set_character_animation(m, CHAR_ANIM_PUT_CAP_ON); if (animFrame == 0) { enable_time_stop_if_alone(); @@ -1864,7 +1864,7 @@ s32 act_putting_on_cap(struct MarioState *m) { void stuck_in_ground_handler(struct MarioState *m, s32 animation, s32 unstuckFrame, s32 target2, s32 target3, s32 endAction) { if (!m) { return; } - s32 animFrame = set_mario_animation(m, animation); + s32 animFrame = set_character_animation(m, animation); if (m->input & INPUT_A_PRESSED) { m->actionTimer++; @@ -1891,17 +1891,17 @@ void stuck_in_ground_handler(struct MarioState *m, s32 animation, s32 unstuckFra } s32 act_head_stuck_in_ground(struct MarioState *m) { - stuck_in_ground_handler(m, MARIO_ANIM_HEAD_STUCK_IN_GROUND, 96, 105, 135, ACT_IDLE); + stuck_in_ground_handler(m, CHAR_ANIM_HEAD_STUCK_IN_GROUND, 96, 105, 135, ACT_IDLE); return FALSE; } s32 act_butt_stuck_in_ground(struct MarioState *m) { - stuck_in_ground_handler(m, MARIO_ANIM_BOTTOM_STUCK_IN_GROUND, 127, 136, -2, ACT_GROUND_POUND_LAND); + stuck_in_ground_handler(m, CHAR_ANIM_BOTTOM_STUCK_IN_GROUND, 127, 136, -2, ACT_GROUND_POUND_LAND); return FALSE; } s32 act_feet_stuck_in_ground(struct MarioState *m) { - stuck_in_ground_handler(m, MARIO_ANIM_LEGS_STUCK_IN_GROUND, 116, 129, -2, ACT_IDLE); + stuck_in_ground_handler(m, CHAR_ANIM_LEGS_STUCK_IN_GROUND, 116, 129, -2, ACT_IDLE); return FALSE; } @@ -2023,7 +2023,7 @@ static void intro_cutscene_jump_out_of_pipe(struct MarioState *m) { #endif #endif - set_mario_animation(m, MARIO_ANIM_SINGLE_JUMP); + set_character_animation(m, CHAR_ANIM_SINGLE_JUMP); mario_set_forward_vel(m, 10.0f); if (perform_air_step(m, 0) == AIR_STEP_LANDED) { sound_banks_enable(SEQ_PLAYER_SFX, SOUND_BANKS_DISABLED_DURING_INTRO_CUTSCENE); @@ -2037,7 +2037,7 @@ static void intro_cutscene_jump_out_of_pipe(struct MarioState *m) { } static void intro_cutscene_land_outside_pipe(struct MarioState *m) { - set_mario_animation(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP); + set_character_animation(m, CHAR_ANIM_LAND_FROM_SINGLE_JUMP); if (is_anim_at_end(m)) { advance_cutscene_step(m); @@ -2054,7 +2054,7 @@ static void intro_cutscene_lower_pipe(struct MarioState *m) { if (sIntroWarpPipeObj[globalIndex] != NULL) { play_sound(SOUND_MENU_ENTER_PIPE, sIntroWarpPipeObj[globalIndex]->header.gfx.cameraToObject); } - set_mario_animation(m, MARIO_ANIM_FIRST_PERSON); + set_character_animation(m, CHAR_ANIM_FIRST_PERSON); } if (sIntroWarpPipeObj[globalIndex] != NULL) { @@ -2142,7 +2142,7 @@ static void jumbo_star_cutscene_falling(struct MarioState *m) { m->pos[2] = 0.0f; mario_set_forward_vel(m, 0.0f); - set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); + set_character_animation(m, CHAR_ANIM_GENERAL_FALL); if (perform_air_step(m, 1) == AIR_STEP_LANDED) { play_cutscene_music(SEQUENCE_ARGS(15, SEQ_EVENT_CUTSCENE_VICTORY)); @@ -2150,7 +2150,7 @@ static void jumbo_star_cutscene_falling(struct MarioState *m) { m->actionState++; } } else { - set_mario_animation(m, MARIO_ANIM_GENERAL_LAND); + set_character_animation(m, CHAR_ANIM_GENERAL_LAND); if (is_anim_at_end(m)) { m->statusForCamera->cameraEvent = CAM_EVENT_START_GRAND_STAR; advance_cutscene_step(m); @@ -2164,7 +2164,7 @@ static s32 jumbo_star_cutscene_taking_off(struct MarioState *m) { struct Object *marioObj = m->marioObj; if (m->actionState == 0) { - set_mario_animation(m, MARIO_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN); + set_character_animation(m, CHAR_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN); marioObj->rawData.asF32[0x22] = 0.0f; if (is_anim_past_end(m)) { @@ -2172,7 +2172,7 @@ static s32 jumbo_star_cutscene_taking_off(struct MarioState *m) { m->actionState++; } } else { - s32 animFrame = set_mario_animation(m, MARIO_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF); + s32 animFrame = set_character_animation(m, CHAR_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF); if (animFrame == 3 || animFrame == 28 || animFrame == 60) { play_sound_and_spawn_particles(m, SOUND_ACTION_TERRAIN_JUMP, 1); } @@ -2219,7 +2219,7 @@ static s32 jumbo_star_cutscene_flying(struct MarioState *m) { switch (m->actionState) { case 0: - set_mario_animation(m, MARIO_ANIM_WING_CAP_FLY); + set_character_animation(m, CHAR_ANIM_WING_CAP_FLY); anim_spline_init(m, sJumboStarKeyframes); m->actionState++; // fall through @@ -2328,7 +2328,7 @@ static void end_peach_cutscene_mario_falling(struct MarioState *m) { m->input |= INPUT_A_DOWN; m->flags |= (MARIO_WING_CAP | MARIO_CAP_ON_HEAD); - set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); + set_character_animation(m, CHAR_ANIM_GENERAL_FALL); mario_set_forward_vel(m, 0.0f); if (perform_air_step(m, 0) == AIR_STEP_LANDED) { @@ -2340,7 +2340,7 @@ static void end_peach_cutscene_mario_falling(struct MarioState *m) { // set Mario on the ground, wait and spawn the jumbo star outside the castle. static void end_peach_cutscene_mario_landing(struct MarioState *m) { if (!m) { return; } - set_mario_animation(m, MARIO_ANIM_GENERAL_LAND); + set_character_animation(m, CHAR_ANIM_GENERAL_LAND); stop_and_set_height_to_floor(m); if (is_anim_at_end(m)) { @@ -2361,8 +2361,8 @@ static void end_peach_cutscene_mario_landing(struct MarioState *m) { // raise hand animation, lower hand animation, do some special effects static void end_peach_cutscene_summon_jumbo_star(struct MarioState *m) { if (!m) { return; } - set_mario_animation(m, m->actionState == 0 ? MARIO_ANIM_CREDITS_RAISE_HAND - : MARIO_ANIM_CREDITS_LOWER_HAND); + set_character_animation(m, m->actionState == 0 ? CHAR_ANIM_CREDITS_RAISE_HAND + : CHAR_ANIM_CREDITS_LOWER_HAND); if (m->playerIndex != 0) { return; } if (m->actionState == 0 && is_anim_past_end(m)) { m->actionState++; @@ -2468,7 +2468,7 @@ static void end_peach_cutscene_descend_peach(struct MarioState *m) { if (m->actionState >= 27) { m->actionState -= 2; } - set_mario_animation(m, MARIO_ANIM_CREDITS_RETURN_FROM_LOOK_UP); + set_character_animation(m, CHAR_ANIM_CREDITS_RETURN_FROM_LOOK_UP); } if ((sEndPeachObj->oPosY -= m->actionState / 10) <= 907.0f) { @@ -2500,7 +2500,7 @@ static void end_peach_cutscene_run_to_peach(struct MarioState *m) { m->pos[1] = find_floor(m->pos[0], m->pos[1], m->pos[2], &surf); - set_mario_anim_with_accel(m, MARIO_ANIM_RUNNING, 0x00080000); + set_character_anim_with_accel(m, CHAR_ANIM_RUNNING, 0x00080000); play_step_sound(m, 9, 45); vec3f_copy(m->marioObj->header.gfx.pos, m->pos); @@ -2512,8 +2512,8 @@ static void end_peach_cutscene_run_to_peach(struct MarioState *m) { // "The power of the Stars is restored to the castle..." static void end_peach_cutscene_dialog_1(struct MarioState *m) { if (!m) { return; } - s32 animFrame = set_mario_animation(m, m->actionState == 0 ? MARIO_ANIM_CREDITS_TAKE_OFF_CAP - : MARIO_ANIM_CREDITS_LOOK_UP); + s32 animFrame = set_character_animation(m, m->actionState == 0 ? CHAR_ANIM_CREDITS_TAKE_OFF_CAP + : CHAR_ANIM_CREDITS_LOOK_UP); if (m->actionState == 0) { if (animFrame == 8) { @@ -2728,7 +2728,7 @@ static void end_peach_cutscene_kiss_from_peach(struct MarioState *m) { static void end_peach_cutscene_star_dance(struct MarioState *m) { if (!m) { return; } u8 nonMario = (gNetworkPlayers[m->playerIndex].globalIndex != 0); - s32 animFrame = set_mario_animation(m, nonMario ? MARIO_ANIM_START_SLEEP_SITTING : MARIO_ANIM_CREDITS_PEACE_SIGN); + s32 animFrame = set_character_animation(m, nonMario ? CHAR_ANIM_START_SLEEP_SITTING : CHAR_ANIM_CREDITS_PEACE_SIGN); if (animFrame == (nonMario ? 0 : 77)) { cutscene_put_cap_on(m); @@ -2783,7 +2783,7 @@ static void end_peach_cutscene_star_dance(struct MarioState *m) { static void end_peach_cutscene_dialog_3(struct MarioState *m) { if (!m) { return; } u8 nonMario = (gNetworkPlayers[m->playerIndex].globalIndex != 0); - set_mario_animation(m, nonMario ? MARIO_ANIM_SLEEP_IDLE : MARIO_ANIM_FIRST_PERSON); + set_character_animation(m, nonMario ? CHAR_ANIM_SLEEP_IDLE : CHAR_ANIM_FIRST_PERSON); if (m->playerIndex != 0) { return; } sEndPeachObj->oPosY = end_obj_set_visual_pos(sEndPeachObj); sEndRightToadObj->oPosY = end_obj_set_visual_pos(sEndRightToadObj); @@ -2823,11 +2823,11 @@ static void end_peach_cutscene_run_to_castle(struct MarioState *m) { if (!m) { return; } u8 nonMario = (gNetworkPlayers[m->playerIndex].globalIndex != 0); if (nonMario) { - set_mario_animation(m, m->actionState == 0 ? MARIO_ANIM_SLEEP_START_LYING - : MARIO_ANIM_SLEEP_LYING); + set_character_animation(m, m->actionState == 0 ? CHAR_ANIM_SLEEP_START_LYING + : CHAR_ANIM_SLEEP_LYING); } else { - set_mario_animation(m, m->actionState == 0 ? MARIO_ANIM_CREDITS_START_WALK_LOOK_UP - : MARIO_ANIM_CREDITS_LOOK_BACK_THEN_RUN); + set_character_animation(m, m->actionState == 0 ? CHAR_ANIM_CREDITS_START_WALK_LOOK_UP + : CHAR_ANIM_CREDITS_LOOK_BACK_THEN_RUN); m->marioObj->header.gfx.pos[1] = end_obj_set_visual_pos(m->marioObj); } @@ -2953,13 +2953,13 @@ static s32 act_credits_cutscene(struct MarioState *m) { if (m->playerIndex == 0 && m->area->camera->mode != CAMERA_MODE_BEHIND_MARIO) { set_camera_mode(m->area->camera, CAMERA_MODE_BEHIND_MARIO, 1); } - set_mario_animation(m, MARIO_ANIM_WATER_IDLE); + set_character_animation(m, CHAR_ANIM_WATER_IDLE); vec3f_copy(m->marioObj->header.gfx.pos, m->pos); // will copy over roll and pitch, if set vec3s_copy(m->marioObj->header.gfx.angle, m->faceAngle); set_mario_particle_flags(m, PARTICLE_BUBBLE, FALSE); } else { - set_mario_animation(m, MARIO_ANIM_FIRST_PERSON); + set_character_animation(m, CHAR_ANIM_FIRST_PERSON); if (m->actionTimer > 0) { stop_and_set_height_to_floor(m); } @@ -3028,7 +3028,7 @@ static s32 act_end_waving_cutscene(struct MarioState *m) { m->actionState = 1; } - set_mario_animation(m, MARIO_ANIM_CREDITS_WAVING); + set_character_animation(m, CHAR_ANIM_CREDITS_WAVING); stop_and_set_height_to_floor(m); m->marioObj->header.gfx.angle[1] += 0x8000; diff --git a/src/game/mario_actions_moving.c b/src/game/mario_actions_moving.c index 5139c506d..ef237e4d8 100644 --- a/src/game/mario_actions_moving.c +++ b/src/game/mario_actions_moving.c @@ -77,14 +77,14 @@ void play_step_sound(struct MarioState *m, s16 frame1, s16 frame2) { if (!m) { return; } if (is_anim_past_frame(m, frame1) || is_anim_past_frame(m, frame2)) { if (m->flags & MARIO_METAL_CAP) { - if (m->marioObj->header.gfx.animInfo.animID == MARIO_ANIM_TIPTOE) { + if (m->marioObj->header.gfx.animInfo.animID == CHAR_ANIM_TIPTOE) { play_sound_and_spawn_particles(m, SOUND_ACTION_METAL_STEP_TIPTOE, 0); } else { play_sound_and_spawn_particles(m, SOUND_ACTION_METAL_STEP, 0); } } else if (m->quicksandDepth > 50.0f) { play_sound(SOUND_ACTION_QUICKSAND_STEP, m->marioObj->header.gfx.cameraToObject); - } else if (m->marioObj->header.gfx.animInfo.animID == MARIO_ANIM_TIPTOE) { + } else if (m->marioObj->header.gfx.animInfo.animID == CHAR_ANIM_TIPTOE) { play_sound_and_spawn_particles(m, SOUND_ACTION_TERRAIN_STEP_TIPTOE, 0); } else { play_sound_and_spawn_particles(m, SOUND_ACTION_TERRAIN_STEP, 0); @@ -137,7 +137,7 @@ void check_ledge_climb_down(struct MarioState *m) { m->faceAngle[1] = wallAngle + 0x8000; set_mario_action(m, ACT_LEDGE_CLIMB_DOWN, 0); - set_mario_animation(m, MARIO_ANIM_CLIMB_DOWN_LEDGE); + set_character_animation(m, CHAR_ANIM_CLIMB_DOWN_LEDGE); } } } @@ -561,7 +561,7 @@ void anim_and_audio_for_walk(struct MarioState *m) { if (m->quicksandDepth > 50.0f) { val14 = (s32)(val04 / 4.0f * 0x10000); - set_mario_anim_with_accel(m, MARIO_ANIM_MOVE_IN_QUICKSAND, val14); + set_character_anim_with_accel(m, CHAR_ANIM_MOVE_IN_QUICKSAND, val14); play_step_sound(m, 19, 93); m->actionTimer = 0; } else { @@ -575,7 +575,7 @@ void anim_and_audio_for_walk(struct MarioState *m) { if ((val14 = (s32)(val04 / 4.0f * 0x10000)) < 0x1000) { val14 = 0x1000; } - set_mario_anim_with_accel(m, MARIO_ANIM_START_TIPTOE, val14); + set_character_anim_with_accel(m, CHAR_ANIM_START_TIPTOE, val14); play_step_sound(m, 7, 22); if (is_anim_past_frame(m, 23)) { m->actionTimer = 2; @@ -593,7 +593,7 @@ void anim_and_audio_for_walk(struct MarioState *m) { if ((val14 = (s32)(val04 * 0x10000)) < 0x1000) { val14 = 0x1000; } - set_mario_anim_with_accel(m, MARIO_ANIM_TIPTOE, val14); + set_character_anim_with_accel(m, CHAR_ANIM_TIPTOE, val14); play_step_sound(m, 14, 72); val0C = FALSE; @@ -608,7 +608,7 @@ void anim_and_audio_for_walk(struct MarioState *m) { } else { //! (Speed Crash) If Mario's speed is more than 2^17. val14 = (s32)(val04 / 4.0f * 0x10000); - set_mario_anim_with_accel(m, MARIO_ANIM_WALKING, val14); + set_character_anim_with_accel(m, CHAR_ANIM_WALKING, val14); play_step_sound(m, 10, 49); val0C = FALSE; @@ -621,7 +621,7 @@ void anim_and_audio_for_walk(struct MarioState *m) { } else { //! (Speed Crash) If Mario's speed is more than 2^17. val14 = (s32)(val04 / 4.0f * 0x10000); - set_mario_anim_with_accel(m, MARIO_ANIM_RUNNING, val14); + set_character_anim_with_accel(m, CHAR_ANIM_RUNNING, val14); play_step_sound(m, 9, 45); targetPitch = tilt_body_running(m); @@ -660,7 +660,7 @@ void anim_and_audio_for_hold_walk(struct MarioState *m) { } else { //! (Speed Crash) Crashes if Mario's speed exceeds or equals 2^15. val0C = (s32)(val04 * 0x10000); - set_mario_anim_with_accel(m, MARIO_ANIM_SLOW_WALK_WITH_LIGHT_OBJ, val0C); + set_character_anim_with_accel(m, CHAR_ANIM_SLOW_WALK_WITH_LIGHT_OBJ, val0C); play_step_sound(m, 12, 62); val08 = FALSE; @@ -675,7 +675,7 @@ void anim_and_audio_for_hold_walk(struct MarioState *m) { } else { //! (Speed Crash) Crashes if Mario's speed exceeds or equals 2^15. val0C = (s32)(val04 * 0x10000); - set_mario_anim_with_accel(m, MARIO_ANIM_WALK_WITH_LIGHT_OBJ, val0C); + set_character_anim_with_accel(m, CHAR_ANIM_WALK_WITH_LIGHT_OBJ, val0C); play_step_sound(m, 12, 62); val08 = FALSE; @@ -688,7 +688,7 @@ void anim_and_audio_for_hold_walk(struct MarioState *m) { } else { //! (Speed Crash) Crashes if Mario's speed exceeds or equals 2^16. val0C = (s32)(val04 / 2.0f * 0x10000); - set_mario_anim_with_accel(m, MARIO_ANIM_RUN_WITH_LIGHT_OBJ, val0C); + set_character_anim_with_accel(m, CHAR_ANIM_RUN_WITH_LIGHT_OBJ, val0C); play_step_sound(m, 10, 49); val08 = FALSE; @@ -705,7 +705,7 @@ void anim_and_audio_for_hold_walk(struct MarioState *m) { void anim_and_audio_for_heavy_walk(struct MarioState *m) { if (!m) { return; } s32 val04 = (s32)(m->intendedMag * 0x10000); - set_mario_anim_with_accel(m, MARIO_ANIM_WALK_WITH_HEAVY_OBJ, val04); + set_character_anim_with_accel(m, CHAR_ANIM_WALK_WITH_HEAVY_OBJ, val04); play_step_sound(m, 26, 79); } @@ -730,13 +730,13 @@ void push_or_sidle_wall(struct MarioState *m, Vec3f startPos) { if (m->wall == NULL || dWallAngle <= -0x71C8 || dWallAngle >= 0x71C8) { m->flags |= MARIO_UNKNOWN_31; - set_mario_animation(m, MARIO_ANIM_PUSHING); + set_character_animation(m, CHAR_ANIM_PUSHING); play_step_sound(m, 6, 18); } else { if (dWallAngle < 0) { - set_mario_anim_with_accel(m, MARIO_ANIM_SIDESTEP_RIGHT, val04); + set_character_anim_with_accel(m, CHAR_ANIM_SIDESTEP_RIGHT, val04); } else { - set_mario_anim_with_accel(m, MARIO_ANIM_SIDESTEP_LEFT, val04); + set_character_anim_with_accel(m, CHAR_ANIM_SIDESTEP_LEFT, val04); } if (m->marioObj->header.gfx.animInfo.animFrame < 20) { @@ -755,9 +755,9 @@ void tilt_body_walking(struct MarioState *m, s16 startYaw) { if (!m) { return; } struct MarioBodyState *val0C = m->marioBodyState; UNUSED struct Object *marioObj = m->marioObj; - s16 animID = m->marioObj->header.gfx.animInfo.animID; - - if (animID == MARIO_ANIM_WALKING || animID == MARIO_ANIM_RUNNING) { + //s16 animID = m->marioObj->header.gfx.animInfo.animID; + + if (m->action == ACT_WALKING) {//animID == CHAR_ANIM_WALKING || animID == CHAR_ANIM_RUNNING) { s16 dYaw = m->faceAngle[1] - startYaw; //! (Speed Crash) These casts can cause a crash if (dYaw * forwardVel / 12) or //! (forwardVel * 170) exceed or equal 2^31. @@ -862,7 +862,7 @@ s32 act_walking(struct MarioState *m) { switch (perform_ground_step(m)) { case GROUND_STEP_LEFT_GROUND: set_mario_action(m, ACT_FREEFALL, 0); - set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); + set_character_animation(m, CHAR_ANIM_GENERAL_FALL); break; case GROUND_STEP_NONE: @@ -1045,9 +1045,9 @@ s32 act_turning_around(struct MarioState *m) { } if (m->forwardVel >= 18.0f) { - set_mario_animation(m, MARIO_ANIM_TURNING_PART1); + set_character_animation(m, CHAR_ANIM_TURNING_PART1); } else { - set_mario_animation(m, MARIO_ANIM_TURNING_PART2); + set_character_animation(m, CHAR_ANIM_TURNING_PART2); if (is_anim_at_end(m)) { if (m->forwardVel > 0.0f) { begin_walking_action(m, -m->forwardVel, ACT_WALKING, 0); @@ -1071,7 +1071,7 @@ s32 act_finish_turning_around(struct MarioState *m) { } update_walking_speed(m); - set_mario_animation(m, MARIO_ANIM_TURNING_PART2); + set_character_animation(m, CHAR_ANIM_TURNING_PART2); if (perform_ground_step(m) == GROUND_STEP_LEFT_GROUND) { set_mario_action(m, ACT_FREEFALL, 0); @@ -1117,7 +1117,7 @@ s32 act_braking(struct MarioState *m) { play_sound(SOUND_MOVING_TERRAIN_SLIDE + m->terrainSoundAddend, m->marioObj->header.gfx.cameraToObject); adjust_sound_for_speed(m); - set_mario_animation(m, MARIO_ANIM_SKID_ON_GROUND); + set_character_animation(m, CHAR_ANIM_SKID_ON_GROUND); return FALSE; } @@ -1167,7 +1167,7 @@ s32 act_decelerating(struct MarioState *m) { } if (slopeClass == SURFACE_CLASS_VERY_SLIPPERY) { - set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_LEFT); + set_character_animation(m, CHAR_ANIM_IDLE_HEAD_LEFT); play_sound(SOUND_MOVING_TERRAIN_SLIDE + m->terrainSoundAddend, m->marioObj->header.gfx.cameraToObject); adjust_sound_for_speed(m); set_mario_particle_flags(m, PARTICLE_DUST, FALSE); @@ -1177,7 +1177,7 @@ s32 act_decelerating(struct MarioState *m) { val0C = 0x1000; } - set_mario_anim_with_accel(m, MARIO_ANIM_WALKING, val0C); + set_character_anim_with_accel(m, CHAR_ANIM_WALKING, val0C); play_step_sound(m, 10, 49); } @@ -1234,7 +1234,7 @@ s32 act_hold_decelerating(struct MarioState *m) { } if (slopeClass == SURFACE_CLASS_VERY_SLIPPERY) { - set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); + set_character_animation(m, CHAR_ANIM_IDLE_WITH_LIGHT_OBJ); play_sound(SOUND_MOVING_TERRAIN_SLIDE + m->terrainSoundAddend, m->marioObj->header.gfx.cameraToObject); adjust_sound_for_speed(m); set_mario_particle_flags(m, PARTICLE_DUST, FALSE); @@ -1244,7 +1244,7 @@ s32 act_hold_decelerating(struct MarioState *m) { val0C = 0x1000; } - set_mario_anim_with_accel(m, MARIO_ANIM_WALK_WITH_LIGHT_OBJ, val0C); + set_character_anim_with_accel(m, CHAR_ANIM_WALK_WITH_LIGHT_OBJ, val0C); play_step_sound(m, 12, 62); } @@ -1268,7 +1268,7 @@ s32 act_riding_shell_ground(struct MarioState *m) { } update_shell_speed(m); - set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_START_RIDING_SHELL : MARIO_ANIM_RIDING_SHELL); + set_character_animation(m, m->actionArg == 0 ? CHAR_ANIM_START_RIDING_SHELL : CHAR_ANIM_RIDING_SHELL); switch (perform_ground_step(m)) { case GROUND_STEP_LEFT_GROUND: @@ -1347,7 +1347,7 @@ s32 act_crawling(struct MarioState *m) { } val04 = (s32)(m->intendedMag * 2.0f * 0x10000); - set_mario_anim_with_accel(m, MARIO_ANIM_CRAWLING, val04); + set_character_anim_with_accel(m, CHAR_ANIM_CRAWLING, val04); play_step_sound(m, 26, 79); return FALSE; } @@ -1388,7 +1388,7 @@ s32 act_burning_ground(struct MarioState *m) { set_mario_action(m, ACT_BURNING_FALL, 0); } - set_mario_anim_with_accel(m, MARIO_ANIM_RUNNING, (s32)(m->forwardVel / 2.0f * 0x10000)); + set_character_anim_with_accel(m, CHAR_ANIM_RUNNING, (s32)(m->forwardVel / 2.0f * 0x10000)); play_step_sound(m, 9, 45); set_mario_particle_flags(m, PARTICLE_FIRE, FALSE); @@ -1436,7 +1436,7 @@ void common_slide_action(struct MarioState *m, u32 endAction, u32 airAction, s32 break; case GROUND_STEP_NONE: - set_mario_animation(m, animation); + set_character_animation(m, animation); align_with_floor(m); set_mario_particle_flags(m, PARTICLE_DUST, FALSE); break; @@ -1492,7 +1492,7 @@ s32 common_slide_action_with_jump(struct MarioState *m, u32 stopAction, u32 jump s32 act_butt_slide(struct MarioState *m) { if (!m) { return FALSE; } s32 cancel = common_slide_action_with_jump(m, ACT_BUTT_SLIDE_STOP, ACT_JUMP, ACT_BUTT_SLIDE_AIR, - MARIO_ANIM_SLIDE); + CHAR_ANIM_SLIDE); tilt_body_butt_slide(m); return cancel; } @@ -1506,7 +1506,7 @@ s32 act_hold_butt_slide(struct MarioState *m) { } cancel = common_slide_action_with_jump(m, ACT_HOLD_BUTT_SLIDE_STOP, ACT_HOLD_JUMP, ACT_HOLD_BUTT_SLIDE_AIR, - MARIO_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ); + CHAR_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ); tilt_body_butt_slide(m); return cancel; } @@ -1545,7 +1545,7 @@ s32 act_crouch_slide(struct MarioState *m) { } cancel = common_slide_action_with_jump(m, ACT_CROUCHING, ACT_JUMP, ACT_FREEFALL, - MARIO_ANIM_START_CROUCHING); + CHAR_ANIM_START_CROUCHING); return cancel; } @@ -1556,7 +1556,7 @@ s32 act_slide_kick_slide(struct MarioState *m) { return set_jumping_action(m, ACT_FORWARD_ROLLOUT, 0); } - set_mario_animation(m, MARIO_ANIM_SLIDE_KICK); + set_character_animation(m, CHAR_ANIM_SLIDE_KICK); if (is_anim_at_end(m) && m->forwardVel < 1.0f) { return set_mario_action(m, ACT_SLIDE_KICK_SLIDE_STOP, 0); } @@ -1604,7 +1604,7 @@ s32 stomach_slide_action(struct MarioState *m, u32 stopAction, u32 airAction, s3 s32 act_stomach_slide(struct MarioState *m) { if (!m) { return FALSE; } - s32 cancel = stomach_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_SLIDE_DIVE); + s32 cancel = stomach_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, CHAR_ANIM_SLIDE_DIVE); return cancel; } @@ -1616,7 +1616,7 @@ s32 act_hold_stomach_slide(struct MarioState *m) { return drop_and_set_mario_action(m, ACT_STOMACH_SLIDE, 0); } - cancel = stomach_slide_action(m, ACT_DIVE_PICKING_UP, ACT_HOLD_FREEFALL, MARIO_ANIM_SLIDE_DIVE); + cancel = stomach_slide_action(m, ACT_DIVE_PICKING_UP, ACT_HOLD_FREEFALL, CHAR_ANIM_SLIDE_DIVE); return cancel; } @@ -1648,7 +1648,7 @@ s32 act_dive_slide(struct MarioState *m) { return TRUE; } - common_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, MARIO_ANIM_DIVE); + common_slide_action(m, ACT_STOMACH_SLIDE_STOP, ACT_FREEFALL, CHAR_ANIM_DIVE); return FALSE; } @@ -1683,7 +1683,7 @@ s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2 m->knockbackTimer = 10; } - animFrame = set_mario_animation(m, animation); + animFrame = set_character_animation(m, animation); if (animFrame < arg2) { apply_landing_accel(m, 0.9f); } else if (m->forwardVel >= 0.0f) { @@ -1715,7 +1715,7 @@ s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2 s32 act_hard_backward_ground_kb(struct MarioState *m) { if (!m) { return FALSE; } s32 animFrame = - common_ground_knockback_action(m, MARIO_ANIM_FALL_OVER_BACKWARDS, 43, TRUE, m->actionArg); + common_ground_knockback_action(m, CHAR_ANIM_FALL_OVER_BACKWARDS, 43, TRUE, m->actionArg); if (animFrame == 43 && m->health < 0x100) { set_mario_action(m, ACT_DEATH_ON_BACK, 0); } @@ -1736,7 +1736,7 @@ s32 act_hard_backward_ground_kb(struct MarioState *m) { s32 act_hard_forward_ground_kb(struct MarioState *m) { if (!m) { return FALSE; } s32 animFrame = - common_ground_knockback_action(m, MARIO_ANIM_LAND_ON_STOMACH, 21, TRUE, m->actionArg); + common_ground_knockback_action(m, CHAR_ANIM_LAND_ON_STOMACH, 21, TRUE, m->actionArg); if (animFrame == 23 && m->health < 0x100) { set_mario_action(m, ACT_DEATH_ON_STOMACH, 0); } @@ -1746,32 +1746,32 @@ s32 act_hard_forward_ground_kb(struct MarioState *m) { s32 act_backward_ground_kb(struct MarioState *m) { if (!m) { return FALSE; } - common_ground_knockback_action(m, MARIO_ANIM_BACKWARD_KB, 22, TRUE, m->actionArg); + common_ground_knockback_action(m, CHAR_ANIM_BACKWARD_KB, 22, TRUE, m->actionArg); return FALSE; } s32 act_forward_ground_kb(struct MarioState *m) { if (!m) { return FALSE; } - common_ground_knockback_action(m, MARIO_ANIM_FORWARD_KB, 20, TRUE, m->actionArg); + common_ground_knockback_action(m, CHAR_ANIM_FORWARD_KB, 20, TRUE, m->actionArg); return FALSE; } s32 act_soft_backward_ground_kb(struct MarioState *m) { if (!m) { return FALSE; } - common_ground_knockback_action(m, MARIO_ANIM_SOFT_BACK_KB, 100, FALSE, m->actionArg); + common_ground_knockback_action(m, CHAR_ANIM_SOFT_BACK_KB, 100, FALSE, m->actionArg); return FALSE; } s32 act_soft_forward_ground_kb(struct MarioState *m) { if (!m) { return FALSE; } - common_ground_knockback_action(m, MARIO_ANIM_SOFT_FRONT_KB, 100, FALSE, m->actionArg); + common_ground_knockback_action(m, CHAR_ANIM_SOFT_FRONT_KB, 100, FALSE, m->actionArg); return FALSE; } s32 act_ground_bonk(struct MarioState *m) { if (!m) { return FALSE; } s32 animFrame = - common_ground_knockback_action(m, MARIO_ANIM_GROUND_BONK, 32, TRUE, m->actionArg); + common_ground_knockback_action(m, CHAR_ANIM_GROUND_BONK, 32, TRUE, m->actionArg); if (animFrame == 32) { play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); } @@ -1785,7 +1785,7 @@ s32 act_death_exit_land(struct MarioState *m) { apply_landing_accel(m, 0.9f); play_mario_heavy_landing_sound_once(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); - animFrame = set_mario_animation(m, MARIO_ANIM_FALL_OVER_BACKWARDS); + animFrame = set_character_animation(m, CHAR_ANIM_FALL_OVER_BACKWARDS); if (animFrame == 54) { play_character_sound(m, CHAR_SOUND_MAMA_MIA); @@ -1820,7 +1820,7 @@ u32 common_landing_action(struct MarioState *m, s16 animation, u32 airAction) { break; case GROUND_STEP_HIT_WALL: - set_mario_animation(m, MARIO_ANIM_PUSHING); + set_character_animation(m, CHAR_ANIM_PUSHING); break; } @@ -1828,7 +1828,7 @@ u32 common_landing_action(struct MarioState *m, s16 animation, u32 airAction) { set_mario_particle_flags(m, PARTICLE_DUST, FALSE); } - set_mario_animation(m, animation); + set_character_animation(m, animation); play_mario_landing_sound_once(m, SOUND_ACTION_TERRAIN_LANDING); if (m->floor && m->floor->type >= SURFACE_SHALLOW_QUICKSAND && m->floor->type <= SURFACE_MOVING_QUICKSAND) { @@ -1879,7 +1879,7 @@ s32 act_jump_land(struct MarioState *m) { return TRUE; } - common_landing_action(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP, ACT_FREEFALL); + common_landing_action(m, CHAR_ANIM_LAND_FROM_SINGLE_JUMP, ACT_FREEFALL); return FALSE; } @@ -1889,7 +1889,7 @@ s32 act_freefall_land(struct MarioState *m) { return TRUE; } - common_landing_action(m, MARIO_ANIM_GENERAL_LAND, ACT_FREEFALL); + common_landing_action(m, CHAR_ANIM_GENERAL_LAND, ACT_FREEFALL); return FALSE; } @@ -1899,7 +1899,7 @@ s32 act_side_flip_land(struct MarioState *m) { return TRUE; } - if (common_landing_action(m, MARIO_ANIM_SLIDEFLIP_LAND, ACT_FREEFALL) != GROUND_STEP_HIT_WALL) { + if (common_landing_action(m, CHAR_ANIM_SLIDEFLIP_LAND, ACT_FREEFALL) != GROUND_STEP_HIT_WALL) { m->marioObj->header.gfx.angle[1] += 0x8000; } return FALSE; @@ -1915,7 +1915,7 @@ s32 act_hold_jump_land(struct MarioState *m) { return TRUE; } - common_landing_action(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, ACT_HOLD_FREEFALL); + common_landing_action(m, CHAR_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, ACT_HOLD_FREEFALL); return FALSE; } @@ -1929,7 +1929,7 @@ s32 act_hold_freefall_land(struct MarioState *m) { return TRUE; } - common_landing_action(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ, ACT_HOLD_FREEFALL); + common_landing_action(m, CHAR_ANIM_FALL_LAND_WITH_LIGHT_OBJ, ACT_HOLD_FREEFALL); return FALSE; } @@ -1955,8 +1955,8 @@ s32 act_long_jump_land(struct MarioState *m) { } common_landing_action(m, - !m->marioObj->oMarioLongJumpIsSlow ? MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP - : MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP, + !m->marioObj->oMarioLongJumpIsSlow ? CHAR_ANIM_CROUCH_FROM_FAST_LONGJUMP + : CHAR_ANIM_CROUCH_FROM_SLOW_LONGJUMP, ACT_FREEFALL); return FALSE; } @@ -1966,7 +1966,7 @@ s32 act_double_jump_land(struct MarioState *m) { if (common_landing_cancels(m, &sDoubleJumpLandAction, set_triple_jump_action)) { return TRUE; } - common_landing_action(m, MARIO_ANIM_LAND_FROM_DOUBLE_JUMP, ACT_FREEFALL); + common_landing_action(m, CHAR_ANIM_LAND_FROM_DOUBLE_JUMP, ACT_FREEFALL); return FALSE; } @@ -1982,7 +1982,7 @@ s32 act_triple_jump_land(struct MarioState *m) { play_character_sound_if_no_flag(m, CHAR_SOUND_HAHA, MARIO_MARIO_SOUND_PLAYED); } - common_landing_action(m, MARIO_ANIM_TRIPLE_JUMP_LAND, ACT_FREEFALL); + common_landing_action(m, CHAR_ANIM_TRIPLE_JUMP_LAND, ACT_FREEFALL); return FALSE; } @@ -2000,7 +2000,7 @@ s32 act_backflip_land(struct MarioState *m) { play_character_sound_if_no_flag(m, CHAR_SOUND_HAHA, MARIO_MARIO_SOUND_PLAYED); } - common_landing_action(m, MARIO_ANIM_TRIPLE_JUMP_LAND, ACT_FREEFALL); + common_landing_action(m, CHAR_ANIM_TRIPLE_JUMP_LAND, ACT_FREEFALL); return FALSE; } @@ -2014,13 +2014,13 @@ s32 quicksand_jump_land_action(struct MarioState *m, s32 animation1, s32 animati } play_mario_jump_sound(m); - set_mario_animation(m, animation1); + set_character_animation(m, animation1); } else { if (m->actionTimer >= 13) { return set_mario_action(m, endAction, 0); } - set_mario_animation(m, animation2); + set_character_animation(m, animation2); } apply_landing_accel(m, 0.95f); @@ -2033,15 +2033,15 @@ s32 quicksand_jump_land_action(struct MarioState *m, s32 animation1, s32 animati s32 act_quicksand_jump_land(struct MarioState *m) { if (!m) { return FALSE; } - s32 cancel = quicksand_jump_land_action(m, MARIO_ANIM_SINGLE_JUMP, MARIO_ANIM_LAND_FROM_SINGLE_JUMP, + s32 cancel = quicksand_jump_land_action(m, CHAR_ANIM_SINGLE_JUMP, CHAR_ANIM_LAND_FROM_SINGLE_JUMP, ACT_JUMP_LAND_STOP, ACT_FREEFALL); return cancel; } s32 act_hold_quicksand_jump_land(struct MarioState *m) { if (!m) { return FALSE; } - s32 cancel = quicksand_jump_land_action(m, MARIO_ANIM_JUMP_WITH_LIGHT_OBJ, - MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, ACT_HOLD_JUMP_LAND_STOP, + s32 cancel = quicksand_jump_land_action(m, CHAR_ANIM_JUMP_WITH_LIGHT_OBJ, + CHAR_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, ACT_HOLD_JUMP_LAND_STOP, ACT_HOLD_FREEFALL); return cancel; } diff --git a/src/game/mario_actions_object.c b/src/game/mario_actions_object.c index e36bb2793..c1b362496 100644 --- a/src/game/mario_actions_object.c +++ b/src/game/mario_actions_object.c @@ -24,7 +24,7 @@ s8 sPunchingForwardVelocities[8] = { 0, 1, 1, 2, 3, 5, 7, 10 }; void animated_stationary_ground_step(struct MarioState *m, s32 animation, u32 endAction) { stationary_ground_step(m); - set_mario_animation(m, animation); + set_character_animation(m, animation); if (is_anim_at_end(m)) { set_mario_action(m, endAction, 0); } @@ -46,7 +46,7 @@ s32 mario_update_punch_sequence(struct MarioState *m) { play_character_sound(m, CHAR_SOUND_PUNCH_YAH); // Fall-through: case 1: - set_mario_animation(m, MARIO_ANIM_FIRST_PUNCH); + set_character_animation(m, CHAR_ANIM_FIRST_PUNCH); if (is_anim_past_end(m)) { m->actionArg = 2; } else { @@ -67,7 +67,7 @@ s32 mario_update_punch_sequence(struct MarioState *m) { break; case 2: - set_mario_animation(m, MARIO_ANIM_FIRST_PUNCH_FAST); + set_character_animation(m, CHAR_ANIM_FIRST_PUNCH_FAST); if (m->marioObj->header.gfx.animInfo.animFrame <= 0) { m->flags |= MARIO_PUNCHING; @@ -86,7 +86,7 @@ s32 mario_update_punch_sequence(struct MarioState *m) { play_character_sound(m, CHAR_SOUND_PUNCH_WAH); // Fall-through: case 4: - set_mario_animation(m, MARIO_ANIM_SECOND_PUNCH); + set_character_animation(m, CHAR_ANIM_SECOND_PUNCH); if (is_anim_past_end(m)) { m->actionArg = 5; } else { @@ -103,7 +103,7 @@ s32 mario_update_punch_sequence(struct MarioState *m) { break; case 5: - set_mario_animation(m, MARIO_ANIM_SECOND_PUNCH_FAST); + set_character_animation(m, CHAR_ANIM_SECOND_PUNCH_FAST); if (m->marioObj->header.gfx.animInfo.animFrame <= 0) { m->flags |= MARIO_PUNCHING; } @@ -119,7 +119,7 @@ s32 mario_update_punch_sequence(struct MarioState *m) { case 6: play_mario_action_sound(m, CHAR_SOUND_PUNCH_HOO, 1); - animFrame = set_mario_animation(m, MARIO_ANIM_GROUND_KICK); + animFrame = set_character_animation(m, CHAR_ANIM_GROUND_KICK); if (animFrame == 0) { m->marioBodyState->punchState = (2 << 6) | 6; } @@ -135,7 +135,7 @@ s32 mario_update_punch_sequence(struct MarioState *m) { case 9: play_mario_action_sound(m, CHAR_SOUND_PUNCH_HOO, 1); - set_mario_animation(m, MARIO_ANIM_BREAKDANCE); + set_character_animation(m, CHAR_ANIM_BREAKDANCE); animFrame = m->marioObj->header.gfx.animInfo.animFrame; if (animFrame >= 2 && animFrame < 8) { @@ -207,13 +207,13 @@ s32 act_picking_up(struct MarioState *m) { if (m->actionState == 1 && m->heldObj != NULL) { if (m->heldObj->oInteractionSubtype & INT_SUBTYPE_GRABS_MARIO) { m->marioBodyState->grabPos = GRAB_POS_HEAVY_OBJ; - set_mario_animation(m, MARIO_ANIM_GRAB_HEAVY_OBJECT); + set_character_animation(m, CHAR_ANIM_GRAB_HEAVY_OBJECT); if (is_anim_at_end(m)) { set_mario_action(m, ACT_HOLD_HEAVY_IDLE, 0); } } else { m->marioBodyState->grabPos = GRAB_POS_LIGHT_OBJ; - set_mario_animation(m, MARIO_ANIM_PICK_UP_LIGHT_OBJ); + set_character_animation(m, CHAR_ANIM_PICK_UP_LIGHT_OBJ); if (is_anim_at_end(m)) { set_mario_action(m, ACT_HOLD_IDLE, 0); } @@ -241,7 +241,7 @@ s32 act_dive_picking_up(struct MarioState *m) { return set_mario_action(m, ACT_BEGIN_SLIDING, 0); } - animated_stationary_ground_step(m, MARIO_ANIM_STOP_SLIDE_LIGHT_OBJ, ACT_HOLD_IDLE); + animated_stationary_ground_step(m, CHAR_ANIM_STOP_SLIDE_LIGHT_OBJ, ACT_HOLD_IDLE); return FALSE; } @@ -259,7 +259,7 @@ s32 act_placing_down(struct MarioState *m) { mario_drop_held_object(m); } - animated_stationary_ground_step(m, MARIO_ANIM_PLACE_LIGHT_OBJ, ACT_IDLE); + animated_stationary_ground_step(m, CHAR_ANIM_PLACE_LIGHT_OBJ, ACT_IDLE); return FALSE; } @@ -284,7 +284,7 @@ s32 act_throwing(struct MarioState *m) { queue_rumble_data_mario(m, 3, 50); } - animated_stationary_ground_step(m, MARIO_ANIM_GROUND_THROW, ACT_IDLE); + animated_stationary_ground_step(m, CHAR_ANIM_GROUND_THROW, ACT_IDLE); return FALSE; } @@ -305,7 +305,7 @@ s32 act_heavy_throw(struct MarioState *m) { queue_rumble_data_mario(m, 3, 50); } - animated_stationary_ground_step(m, MARIO_ANIM_HEAVY_THROW, ACT_IDLE); + animated_stationary_ground_step(m, CHAR_ANIM_HEAVY_THROW, ACT_IDLE); return FALSE; } @@ -323,7 +323,7 @@ s32 act_stomach_slide_stop(struct MarioState *m) { return set_mario_action(m, ACT_BEGIN_SLIDING, 0); } - animated_stationary_ground_step(m, MARIO_ANIM_SLOW_LAND_FROM_DIVE, ACT_IDLE); + animated_stationary_ground_step(m, CHAR_ANIM_SLOW_LAND_FROM_DIVE, ACT_IDLE); return FALSE; } @@ -349,7 +349,7 @@ s32 act_picking_up_bowser(struct MarioState *m) { } } - set_mario_animation(m, MARIO_ANIM_GRAB_BOWSER); + set_character_animation(m, CHAR_ANIM_GRAB_BOWSER); if (is_anim_at_end(m)) { set_mario_action(m, ACT_HOLDING_BOWSER, 0); } @@ -397,10 +397,10 @@ s32 act_holding_bowser(struct MarioState *m) { return set_mario_action(m, ACT_RELEASING_BOWSER, 1); } - set_mario_animation(m, MARIO_ANIM_HOLDING_BOWSER); + set_character_animation(m, CHAR_ANIM_HOLDING_BOWSER); } else { m->actionTimer = 0; - set_mario_animation(m, MARIO_ANIM_SWINGING_BOWSER); + set_character_animation(m, CHAR_ANIM_SWINGING_BOWSER); } if (m->intendedMag > 20.0f) { @@ -470,7 +470,7 @@ s32 act_releasing_bowser(struct MarioState *m) { } m->angleVel[1] = 0; - animated_stationary_ground_step(m, MARIO_ANIM_RELEASE_BOWSER, ACT_IDLE); + animated_stationary_ground_step(m, CHAR_ANIM_RELEASE_BOWSER, ACT_IDLE); return FALSE; } diff --git a/src/game/mario_actions_stationary.c b/src/game/mario_actions_stationary.c index be37a284b..773c8d745 100644 --- a/src/game/mario_actions_stationary.c +++ b/src/game/mario_actions_stationary.c @@ -142,19 +142,19 @@ s32 act_idle(struct MarioState *m) { } if (m->actionArg & 1) { - set_mario_animation(m, MARIO_ANIM_STAND_AGAINST_WALL); + set_character_animation(m, CHAR_ANIM_STAND_AGAINST_WALL); } else { switch (m->actionState) { case 0: - set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_LEFT); + set_character_animation(m, CHAR_ANIM_IDLE_HEAD_LEFT); break; case 1: - set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_RIGHT); + set_character_animation(m, CHAR_ANIM_IDLE_HEAD_RIGHT); break; case 2: - set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_CENTER); + set_character_animation(m, CHAR_ANIM_IDLE_HEAD_CENTER); break; } @@ -216,21 +216,21 @@ s32 act_start_sleeping(struct MarioState *m) { #ifndef VERSION_JP animFrame = #endif - set_mario_animation(m, MARIO_ANIM_START_SLEEP_IDLE); + set_character_animation(m, CHAR_ANIM_START_SLEEP_IDLE); break; case 1: #ifndef VERSION_JP animFrame = #endif - set_mario_animation(m, MARIO_ANIM_START_SLEEP_SCRATCH); + set_character_animation(m, CHAR_ANIM_START_SLEEP_SCRATCH); break; case 2: #ifndef VERSION_JP animFrame = #endif - set_mario_animation(m, MARIO_ANIM_START_SLEEP_YAWN); + set_character_animation(m, CHAR_ANIM_START_SLEEP_YAWN); m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; break; @@ -238,7 +238,7 @@ s32 act_start_sleeping(struct MarioState *m) { #ifndef VERSION_JP animFrame = #endif - set_mario_animation(m, MARIO_ANIM_START_SLEEP_SITTING); + set_character_animation(m, CHAR_ANIM_START_SLEEP_SITTING); m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; break; } @@ -292,7 +292,7 @@ s32 act_sleeping(struct MarioState *m) { stationary_ground_step(m); switch (m->actionState) { case 0: - animFrame = set_mario_animation(m, MARIO_ANIM_SLEEP_IDLE); + animFrame = set_character_animation(m, CHAR_ANIM_SLEEP_IDLE); if (m->playerIndex == 0 && animFrame == -1 && !m->actionTimer) { lower_background_noise(2); @@ -317,7 +317,7 @@ s32 act_sleeping(struct MarioState *m) { break; case 1: - if (set_mario_animation(m, MARIO_ANIM_SLEEP_START_LYING) == 18) { + if (set_character_animation(m, CHAR_ANIM_SLEEP_START_LYING) == 18) { play_mario_heavy_landing_sound(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); } @@ -327,7 +327,7 @@ s32 act_sleeping(struct MarioState *m) { break; case 2: - animFrame = set_mario_animation(m, MARIO_ANIM_SLEEP_LYING); + animFrame = set_character_animation(m, CHAR_ANIM_SLEEP_LYING); #ifndef VERSION_JP play_character_sound_if_no_flag(m, CHAR_SOUND_SNORING3, MARIO_MARIO_SOUND_PLAYED); m->isSnoring = TRUE; @@ -380,7 +380,7 @@ s32 act_waking_up(struct MarioState *m) { stationary_ground_step(m); - set_mario_animation(m, !m->actionArg ? MARIO_ANIM_WAKE_FROM_SLEEP : MARIO_ANIM_WAKE_FROM_LYING); + set_character_animation(m, !m->actionArg ? CHAR_ANIM_WAKE_FROM_SLEEP : CHAR_ANIM_WAKE_FROM_LYING); return FALSE; } @@ -410,7 +410,7 @@ s32 act_shivering(struct MarioState *m) { stationary_ground_step(m); switch (m->actionState) { case 0: - animFrame = set_mario_animation(m, MARIO_ANIM_SHIVERING_WARMING_HAND); + animFrame = set_character_animation(m, CHAR_ANIM_SHIVERING_WARMING_HAND); if (animFrame == 49) { set_mario_particle_flags(m, PARTICLE_BREATH, FALSE); play_character_sound(m, CHAR_SOUND_PANTING_COLD); @@ -424,14 +424,14 @@ s32 act_shivering(struct MarioState *m) { break; case 1: - animFrame = set_mario_animation(m, MARIO_ANIM_SHIVERING); + animFrame = set_character_animation(m, CHAR_ANIM_SHIVERING); if (animFrame == 9 || animFrame == 25 || animFrame == 44) { play_sound(SOUND_ACTION_CLAP_HANDS_COLD, m->marioObj->header.gfx.cameraToObject); } break; case 2: - set_mario_animation(m, MARIO_ANIM_SHIVERING_RETURN_TO_IDLE); + set_character_animation(m, CHAR_ANIM_SHIVERING_RETURN_TO_IDLE); if (is_anim_past_end(m)) { set_mario_action(m, ACT_IDLE, 0); } @@ -449,7 +449,7 @@ s32 act_coughing(struct MarioState *m) { } stationary_ground_step(m); - animFrame = set_mario_animation(m, MARIO_ANIM_COUGHING); + animFrame = set_character_animation(m, CHAR_ANIM_COUGHING); if (animFrame == 25 || animFrame == 35) { play_character_sound(m, CHAR_SOUND_COUGHING3); } @@ -484,7 +484,7 @@ s32 act_hold_idle(struct MarioState *m) { } stationary_ground_step(m); - set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); + set_character_animation(m, CHAR_ANIM_IDLE_WITH_LIGHT_OBJ); return FALSE; } @@ -511,7 +511,7 @@ s32 act_hold_heavy_idle(struct MarioState *m) { } stationary_ground_step(m); - set_mario_animation(m, MARIO_ANIM_IDLE_HEAVY_OBJ); + set_character_animation(m, CHAR_ANIM_IDLE_HEAVY_OBJ); return FALSE; } @@ -533,7 +533,7 @@ s32 act_standing_against_wall(struct MarioState *m) { return set_mario_action(m, ACT_PUNCHING, 0); } - set_mario_animation(m, MARIO_ANIM_STAND_AGAINST_WALL); + set_character_animation(m, CHAR_ANIM_STAND_AGAINST_WALL); stationary_ground_step(m); return FALSE; } @@ -549,9 +549,9 @@ s32 act_in_quicksand(struct MarioState *m) { } if (m->quicksandDepth > 70.0f) { - set_mario_animation(m, MARIO_ANIM_DYING_IN_QUICKSAND); + set_character_animation(m, CHAR_ANIM_DYING_IN_QUICKSAND); } else { - set_mario_animation(m, MARIO_ANIM_IDLE_IN_QUICKSAND); + set_character_animation(m, CHAR_ANIM_IDLE_IN_QUICKSAND); } stationary_ground_step(m); @@ -593,7 +593,7 @@ s32 act_crouching(struct MarioState *m) { } stationary_ground_step(m); - set_mario_animation(m, MARIO_ANIM_CROUCHING); + set_character_animation(m, CHAR_ANIM_CROUCHING); return FALSE; } @@ -611,7 +611,7 @@ s32 act_panting(struct MarioState *m) { return TRUE; } - if (set_mario_animation(m, MARIO_ANIM_WALK_PANTING) == 1) { + if (set_character_animation(m, CHAR_ANIM_WALK_PANTING) == 1) { play_character_sound_offset(m, CHAR_SOUND_PANTING, ((gAudioRandom % 3U) << 0x10)); } @@ -638,7 +638,7 @@ s32 act_hold_panting_unused(struct MarioState *m) { return TRUE; } - set_mario_animation(m, MARIO_ANIM_WALK_PANTING); + set_character_animation(m, CHAR_ANIM_WALK_PANTING); stationary_ground_step(m); m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; return FALSE; @@ -646,7 +646,7 @@ s32 act_hold_panting_unused(struct MarioState *m) { void stopping_step(struct MarioState *m, s32 animID, u32 action) { stationary_ground_step(m); - set_mario_animation(m, animID); + set_character_animation(m, animID); if (is_anim_at_end(m)) { set_mario_action(m, action, 0); } @@ -671,7 +671,7 @@ s32 act_braking_stop(struct MarioState *m) { return check_common_action_exits(m); } - stopping_step(m, MARIO_ANIM_STOP_SKID, ACT_IDLE); + stopping_step(m, CHAR_ANIM_STOP_SKID, ACT_IDLE); return FALSE; } @@ -685,7 +685,7 @@ s32 act_butt_slide_stop(struct MarioState *m) { return check_common_action_exits(m); } - stopping_step(m, MARIO_ANIM_STOP_SLIDE, ACT_IDLE); + stopping_step(m, CHAR_ANIM_STOP_SLIDE, ACT_IDLE); if (m->marioObj->header.gfx.animInfo.animFrame == 6) { play_mario_landing_sound(m, SOUND_ACTION_TERRAIN_LANDING); } @@ -711,7 +711,7 @@ s32 act_hold_butt_slide_stop(struct MarioState *m) { return set_mario_action(m, ACT_THROWING, 0); } - stopping_step(m, MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); + stopping_step(m, CHAR_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); return FALSE; } @@ -725,7 +725,7 @@ s32 act_slide_kick_slide_stop(struct MarioState *m) { return drop_and_set_mario_action(m, ACT_FREEFALL, 0); } - stopping_step(m, MARIO_ANIM_CROUCH_FROM_SLIDE_KICK, ACT_CROUCHING); + stopping_step(m, CHAR_ANIM_CROUCH_FROM_SLIDE_KICK, ACT_CROUCHING); return FALSE; } @@ -748,7 +748,7 @@ s32 act_start_crouching(struct MarioState *m) { } stationary_ground_step(m); - set_mario_animation(m, MARIO_ANIM_START_CROUCHING); + set_character_animation(m, CHAR_ANIM_START_CROUCHING); if (is_anim_past_end(m)) { set_mario_action(m, ACT_CROUCHING, 0); } @@ -774,7 +774,7 @@ s32 act_stop_crouching(struct MarioState *m) { } stationary_ground_step(m); - set_mario_animation(m, MARIO_ANIM_STOP_CROUCHING); + set_character_animation(m, CHAR_ANIM_STOP_CROUCHING); if (is_anim_past_end(m)) { set_mario_action(m, ACT_IDLE, 0); } @@ -800,7 +800,7 @@ s32 act_start_crawling(struct MarioState *m) { } stationary_ground_step(m); - set_mario_animation(m, MARIO_ANIM_START_CRAWLING); + set_character_animation(m, CHAR_ANIM_START_CRAWLING); if (is_anim_past_end(m)) { set_mario_action(m, ACT_CRAWLING, 0); } @@ -823,7 +823,7 @@ s32 act_stop_crawling(struct MarioState *m) { } stationary_ground_step(m); - set_mario_animation(m, MARIO_ANIM_STOP_CRAWLING); + set_character_animation(m, CHAR_ANIM_STOP_CRAWLING); if (is_anim_past_end(m)) { set_mario_action(m, ACT_CROUCHING, 0); } @@ -863,13 +863,13 @@ s32 act_shockwave_bounce(struct MarioState *m) { vec3f_copy(m->marioObj->header.gfx.pos, m->pos); vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); - set_mario_animation(m, MARIO_ANIM_A_POSE); + set_character_animation(m, CHAR_ANIM_A_POSE); return FALSE; } s32 landing_step(struct MarioState *m, s32 arg1, u32 action) { stationary_ground_step(m); - set_mario_animation(m, arg1); + set_character_animation(m, arg1); if (is_anim_at_end(m)) { return set_mario_action(m, action, 0); } @@ -911,7 +911,7 @@ s32 act_jump_land_stop(struct MarioState *m) { return TRUE; } - landing_step(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP, ACT_IDLE); + landing_step(m, CHAR_ANIM_LAND_FROM_SINGLE_JUMP, ACT_IDLE); return FALSE; } @@ -921,7 +921,7 @@ s32 act_double_jump_land_stop(struct MarioState *m) { return TRUE; } - landing_step(m, MARIO_ANIM_LAND_FROM_DOUBLE_JUMP, ACT_IDLE); + landing_step(m, CHAR_ANIM_LAND_FROM_DOUBLE_JUMP, ACT_IDLE); return FALSE; } @@ -931,7 +931,7 @@ s32 act_side_flip_land_stop(struct MarioState *m) { return TRUE; } - landing_step(m, MARIO_ANIM_SLIDEFLIP_LAND, ACT_IDLE); + landing_step(m, CHAR_ANIM_SLIDEFLIP_LAND, ACT_IDLE); m->marioObj->header.gfx.angle[1] += 0x8000; return FALSE; } @@ -942,7 +942,7 @@ s32 act_freefall_land_stop(struct MarioState *m) { return TRUE; } - landing_step(m, MARIO_ANIM_GENERAL_LAND, ACT_IDLE); + landing_step(m, CHAR_ANIM_GENERAL_LAND, ACT_IDLE); return FALSE; } @@ -952,7 +952,7 @@ s32 act_triple_jump_land_stop(struct MarioState *m) { return TRUE; } - landing_step(m, MARIO_ANIM_TRIPLE_JUMP_LAND, ACT_IDLE); + landing_step(m, CHAR_ANIM_TRIPLE_JUMP_LAND, ACT_IDLE); return FALSE; } @@ -966,7 +966,7 @@ s32 act_backflip_land_stop(struct MarioState *m) { return TRUE; } - landing_step(m, MARIO_ANIM_TRIPLE_JUMP_LAND, ACT_IDLE); + landing_step(m, CHAR_ANIM_TRIPLE_JUMP_LAND, ACT_IDLE); return FALSE; } @@ -978,7 +978,7 @@ s32 act_lava_boost_land(struct MarioState *m) { return TRUE; } - landing_step(m, MARIO_ANIM_STAND_UP_FROM_LAVA_BOOST, ACT_IDLE); + landing_step(m, CHAR_ANIM_STAND_UP_FROM_LAVA_BOOST, ACT_IDLE); return FALSE; } @@ -989,8 +989,8 @@ s32 act_long_jump_land_stop(struct MarioState *m) { return TRUE; } - landing_step(m, !m->marioObj->oMarioLongJumpIsSlow ? MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP - : MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP, + landing_step(m, !m->marioObj->oMarioLongJumpIsSlow ? CHAR_ANIM_CROUCH_FROM_FAST_LONGJUMP + : CHAR_ANIM_CROUCH_FROM_SLOW_LONGJUMP, ACT_CROUCHING); return FALSE; } @@ -1013,7 +1013,7 @@ s32 act_hold_jump_land_stop(struct MarioState *m) { return set_mario_action(m, ACT_THROWING, 0); } - landing_step(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); + landing_step(m, CHAR_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); return FALSE; } @@ -1034,7 +1034,7 @@ s32 act_hold_freefall_land_stop(struct MarioState *m) { if (m->input & INPUT_B_PRESSED) { return set_mario_action(m, ACT_THROWING, 0); } - landing_step(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); + landing_step(m, CHAR_ANIM_FALL_LAND_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); return FALSE; } @@ -1052,7 +1052,7 @@ s32 act_air_throw_land(struct MarioState *m) { mario_throw_held_object(m); } - landing_step(m, MARIO_ANIM_THROW_LIGHT_OBJECT, ACT_IDLE); + landing_step(m, CHAR_ANIM_THROW_LIGHT_OBJECT, ACT_IDLE); return FALSE; } @@ -1068,7 +1068,7 @@ s32 act_twirl_land(struct MarioState *m) { } stationary_ground_step(m); - set_mario_animation(m, MARIO_ANIM_TWIRL_LAND); + set_character_animation(m, CHAR_ANIM_TWIRL_LAND); if (m->angleVel[1] > 0) { m->angleVel[1] -= 0x400; if (m->angleVel[1] < 0) { @@ -1102,7 +1102,7 @@ s32 act_ground_pound_land(struct MarioState *m) { return set_mario_action(m, ACT_BUTT_SLIDE, 0); } - landing_step(m, MARIO_ANIM_GROUND_POUND_LANDING, ACT_BUTT_SLIDE_STOP); + landing_step(m, CHAR_ANIM_GROUND_POUND_LANDING, ACT_BUTT_SLIDE_STOP); return FALSE; } @@ -1135,7 +1135,7 @@ s32 act_first_person(struct MarioState *m) { } stationary_ground_step(m); - set_mario_animation(m, MARIO_ANIM_FIRST_PERSON); + set_character_animation(m, CHAR_ANIM_FIRST_PERSON); return FALSE; } diff --git a/src/game/mario_actions_submerged.c b/src/game/mario_actions_submerged.c index e14390c2d..7bfb6b5cc 100644 --- a/src/game/mario_actions_submerged.c +++ b/src/game/mario_actions_submerged.c @@ -353,9 +353,9 @@ static void common_idle_step(struct MarioState *m, s32 animation, s32 arg) { } if (arg == 0) { - set_mario_animation(m, animation); + set_character_animation(m, animation); } else { - set_mario_anim_with_accel(m, animation, arg); + set_character_anim_with_accel(m, animation, arg); } set_swimming_at_surface_particles(m, PARTICLE_IDLE_WATER_WAVE); @@ -381,7 +381,7 @@ static s32 act_water_idle(struct MarioState *m) { val = 0x30000; } - common_idle_step(m, MARIO_ANIM_WATER_IDLE, val); + common_idle_step(m, CHAR_ANIM_WATER_IDLE, val); return FALSE; } @@ -403,7 +403,7 @@ static s32 act_hold_water_idle(struct MarioState *m) { return set_mario_action(m, ACT_HOLD_BREASTSTROKE, 0); } - common_idle_step(m, MARIO_ANIM_WATER_IDLE_WITH_OBJ, 0); + common_idle_step(m, CHAR_ANIM_WATER_IDLE_WITH_OBJ, 0); return FALSE; } @@ -421,7 +421,7 @@ static s32 act_water_action_end(struct MarioState *m) { return set_mario_action(m, ACT_BREASTSTROKE, 0); } - common_idle_step(m, MARIO_ANIM_WATER_ACTION_END, 0); + common_idle_step(m, CHAR_ANIM_WATER_ACTION_END, 0); if (is_anim_at_end(m)) { set_mario_action(m, ACT_WATER_IDLE, 0); } @@ -447,7 +447,7 @@ static s32 act_hold_water_action_end(struct MarioState *m) { } common_idle_step( - m, m->actionArg == 0 ? MARIO_ANIM_WATER_ACTION_END_WITH_OBJ : MARIO_ANIM_STOP_GRAB_OBJ_WATER, + m, m->actionArg == 0 ? CHAR_ANIM_WATER_ACTION_END_WITH_OBJ : CHAR_ANIM_STOP_GRAB_OBJ_WATER, 0); if (is_anim_at_end(m)) { set_mario_action(m, ACT_HOLD_WATER_IDLE, 0); @@ -605,7 +605,7 @@ static s32 act_breaststroke(struct MarioState *m) { func_sh_8024CA04(); } - set_mario_animation(m, MARIO_ANIM_SWIM_PART1); + set_character_animation(m, CHAR_ANIM_SWIM_PART1); common_swimming_step(m, sSwimStrength[pIndex]); return FALSE; @@ -645,7 +645,7 @@ static s32 act_swimming_end(struct MarioState *m) { m->actionTimer++; m->forwardVel -= 0.25f; - set_mario_animation(m, MARIO_ANIM_SWIM_PART2); + set_character_animation(m, CHAR_ANIM_SWIM_PART2); common_swimming_step(m, sSwimStrength[pIndex]); return FALSE; @@ -676,7 +676,7 @@ static s32 act_flutter_kick(struct MarioState *m) { if (m->forwardVel < 14.0f) { play_swimming_noise(m); - set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); + set_character_animation(m, CHAR_ANIM_FLUTTERKICK); } common_swimming_step(m, sSwimStrength[pIndex]); @@ -730,7 +730,7 @@ static s32 act_hold_breaststroke(struct MarioState *m) { reset_float_globals(m); } - set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART1); + set_character_animation(m, CHAR_ANIM_SWIM_WITH_OBJ_PART1); common_swimming_step(m, 0x00A0); return FALSE; } @@ -764,7 +764,7 @@ static s32 act_hold_swimming_end(struct MarioState *m) { m->actionTimer++; m->forwardVel -= 0.25f; - set_mario_animation(m, MARIO_ANIM_SWIM_WITH_OBJ_PART2); + set_character_animation(m, CHAR_ANIM_SWIM_WITH_OBJ_PART2); common_swimming_step(m, 0x00A0); return FALSE; } @@ -790,7 +790,7 @@ static s32 act_hold_flutter_kick(struct MarioState *m) { m->forwardVel = approach_f32(m->forwardVel, 12.0f, 0.1f, 0.15f); if (m->forwardVel < 14.0f) { play_swimming_noise(m); - set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); + set_character_animation(m, CHAR_ANIM_FLUTTERKICK_WITH_OBJ); } common_swimming_step(m, 0x00A0); return FALSE; @@ -818,7 +818,7 @@ static s32 act_water_shell_swimming(struct MarioState *m) { m->forwardVel = approach_f32(m->forwardVel, 30.0f, 2.0f, 1.0f); play_swimming_noise(m); - set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); + set_character_animation(m, CHAR_ANIM_FLUTTERKICK_WITH_OBJ); common_swimming_step(m, 0x012C); return FALSE; @@ -857,7 +857,7 @@ static s32 act_water_throw(struct MarioState *m) { perform_water_step(m); update_water_pitch(m); - set_mario_animation(m, MARIO_ANIM_WATER_THROW_OBJ); + set_character_animation(m, CHAR_ANIM_WATER_THROW_OBJ); play_sound_if_no_flag(m, SOUND_ACTION_SWIM, MARIO_ACTION_SOUND_PLAYED); m->marioBodyState->headAngle[0] = approach_s32(m->marioBodyState->headAngle[0], 0, 0x200, 0x200); @@ -892,21 +892,21 @@ static s32 act_water_punch(struct MarioState *m) { switch (m->actionState) { case 0: - set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART1); + set_character_animation(m, CHAR_ANIM_WATER_GRAB_OBJ_PART1); if (is_anim_at_end(m)) { m->actionState = check_water_grab(m) + 1; } break; case 1: - set_mario_animation(m, MARIO_ANIM_WATER_GRAB_OBJ_PART2); + set_character_animation(m, CHAR_ANIM_WATER_GRAB_OBJ_PART2); if (is_anim_at_end(m)) { set_mario_action(m, ACT_WATER_ACTION_END, 0); } break; case 2: - set_mario_animation(m, MARIO_ANIM_WATER_PICK_UP_OBJ); + set_character_animation(m, CHAR_ANIM_WATER_PICK_UP_OBJ); if (is_anim_at_end(m)) { if (m->heldObj != NULL && m->heldObj->behavior == segmented_to_virtual(smlua_override_behavior(bhvKoopaShellUnderwater))) { if (m->playerIndex == 0) { play_shell_music(); } @@ -925,7 +925,7 @@ static void common_water_knockback_step(struct MarioState *m, s32 animation, u32 if (!m) { return; } stationary_slow_down(m); perform_water_step(m); - set_mario_animation(m, animation); + set_character_animation(m, animation); m->marioBodyState->headAngle[0] = 0; @@ -940,13 +940,13 @@ static void common_water_knockback_step(struct MarioState *m, s32 animation, u32 static s32 act_backward_water_kb(struct MarioState *m) { if (!m) { return 0; } - common_water_knockback_step(m, MARIO_ANIM_BACKWARDS_WATER_KB, ACT_WATER_IDLE, m->actionArg); + common_water_knockback_step(m, CHAR_ANIM_BACKWARDS_WATER_KB, ACT_WATER_IDLE, m->actionArg); return FALSE; } static s32 act_forward_water_kb(struct MarioState *m) { if (!m) { return 0; } - common_water_knockback_step(m, MARIO_ANIM_WATER_FORWARD_KB, ACT_WATER_IDLE, m->actionArg); + common_water_knockback_step(m, CHAR_ANIM_WATER_FORWARD_KB, ACT_WATER_IDLE, m->actionArg); return FALSE; } @@ -956,7 +956,7 @@ static s32 act_water_shocked(struct MarioState *m) { play_sound(SOUND_MOVING_SHOCKED, m->marioObj->header.gfx.cameraToObject); if (m->playerIndex == 0) { set_camera_shake_from_hit(SHAKE_SHOCK); } - if (set_mario_animation(m, MARIO_ANIM_SHOCKED) == 0) { + if (set_character_animation(m, CHAR_ANIM_SHOCKED) == 0) { m->actionTimer++; m->flags |= MARIO_METAL_SHOCK; } @@ -976,7 +976,7 @@ static s32 act_drowning(struct MarioState *m) { if (!m) { return 0; } switch (m->actionState) { case 0: - set_mario_animation(m, MARIO_ANIM_DROWNING_PART1); + set_character_animation(m, CHAR_ANIM_DROWNING_PART1); m->marioBodyState->eyeState = MARIO_EYES_HALF_CLOSED; if (is_anim_at_end(m)) { m->actionState = 1; @@ -984,7 +984,7 @@ static s32 act_drowning(struct MarioState *m) { break; case 1: - set_mario_animation(m, MARIO_ANIM_DROWNING_PART2); + set_character_animation(m, CHAR_ANIM_DROWNING_PART2); m->marioBodyState->eyeState = MARIO_EYES_DEAD; if (m->marioObj->header.gfx.animInfo.animFrame == 30) { if (m->playerIndex != 0) { @@ -1020,8 +1020,8 @@ static s32 act_water_death(struct MarioState *m) { m->marioBodyState->eyeState = MARIO_EYES_DEAD; m->invincTimer = 2; - set_mario_animation(m, MARIO_ANIM_WATER_DYING); - if (set_mario_animation(m, MARIO_ANIM_WATER_DYING) == 35) { + set_character_animation(m, CHAR_ANIM_WATER_DYING); + if (set_character_animation(m, CHAR_ANIM_WATER_DYING) == 35) { if (m->playerIndex != 0) { // do nothing } else { @@ -1103,22 +1103,22 @@ static s32 act_water_plunge(struct MarioState *m) { switch (stateFlags) { case 0: - set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END); + set_character_animation(m, CHAR_ANIM_WATER_ACTION_END); break; case 1: - set_mario_animation(m, MARIO_ANIM_WATER_ACTION_END_WITH_OBJ); + set_character_animation(m, CHAR_ANIM_WATER_ACTION_END_WITH_OBJ); break; case 2: - set_mario_animation(m, MARIO_ANIM_FLUTTERKICK); + set_character_animation(m, CHAR_ANIM_FLUTTERKICK); break; case 3: - set_mario_animation(m, MARIO_ANIM_FLUTTERKICK_WITH_OBJ); + set_character_animation(m, CHAR_ANIM_FLUTTERKICK_WITH_OBJ); break; case 4: - set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); + set_character_animation(m, CHAR_ANIM_GENERAL_FALL); break; case 5: - set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); + set_character_animation(m, CHAR_ANIM_FALL_WITH_LIGHT_OBJ); break; } @@ -1194,7 +1194,7 @@ static s32 act_caught_in_whirlpool(struct MarioState *m) { m->faceAngle[1] = atan2s(dz, dx) + 0x8000; - set_mario_animation(m, MARIO_ANIM_GENERAL_FALL); + set_character_animation(m, CHAR_ANIM_GENERAL_FALL); vec3f_copy(m->marioObj->header.gfx.pos, m->pos); vec3s_set(m->marioObj->header.gfx.angle, 0, m->faceAngle[1], 0); @@ -1292,13 +1292,13 @@ static s32 act_metal_water_standing(struct MarioState *m) { switch (m->actionState) { case 0: - set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_LEFT); + set_character_animation(m, CHAR_ANIM_IDLE_HEAD_LEFT); break; case 1: - set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_RIGHT); + set_character_animation(m, CHAR_ANIM_IDLE_HEAD_RIGHT); break; case 2: - set_mario_animation(m, MARIO_ANIM_IDLE_HEAD_CENTER); + set_character_animation(m, CHAR_ANIM_IDLE_HEAD_CENTER); break; } @@ -1333,7 +1333,7 @@ static s32 act_hold_metal_water_standing(struct MarioState *m) { } stop_and_set_height_to_floor(m); - set_mario_animation(m, MARIO_ANIM_IDLE_WITH_LIGHT_OBJ); + set_character_animation(m, CHAR_ANIM_IDLE_WITH_LIGHT_OBJ); return FALSE; } @@ -1361,7 +1361,7 @@ static s32 act_metal_water_walking(struct MarioState *m) { val04 = 0x1000; } - set_mario_anim_with_accel(m, MARIO_ANIM_WALKING, val04); + set_character_anim_with_accel(m, CHAR_ANIM_WALKING, val04); play_metal_water_walking_sound(m); update_metal_water_walking_speed(m); @@ -1404,7 +1404,7 @@ static s32 act_hold_metal_water_walking(struct MarioState *m) { val04 = 0x1000; } - set_mario_anim_with_accel(m, MARIO_ANIM_RUN_WITH_LIGHT_OBJ, val04); + set_character_anim_with_accel(m, CHAR_ANIM_RUN_WITH_LIGHT_OBJ, val04); play_metal_water_walking_sound(m); update_metal_water_walking_speed(m); @@ -1432,7 +1432,7 @@ static s32 act_metal_water_jump(struct MarioState *m) { } play_metal_water_jumping_sound(m, FALSE); - set_mario_animation(m, MARIO_ANIM_SINGLE_JUMP); + set_character_animation(m, CHAR_ANIM_SINGLE_JUMP); switch (perform_air_step(m, 0)) { case AIR_STEP_LANDED: @@ -1462,7 +1462,7 @@ static s32 act_hold_metal_water_jump(struct MarioState *m) { } play_metal_water_jumping_sound(m, FALSE); - set_mario_animation(m, MARIO_ANIM_JUMP_WITH_LIGHT_OBJ); + set_character_animation(m, CHAR_ANIM_JUMP_WITH_LIGHT_OBJ); switch (perform_air_step(m, 0)) { case AIR_STEP_LANDED: @@ -1487,7 +1487,7 @@ static s32 act_metal_water_falling(struct MarioState *m) { m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); } - set_mario_animation(m, m->actionArg == 0 ? MARIO_ANIM_GENERAL_FALL : MARIO_ANIM_FALL_FROM_WATER); + set_character_animation(m, m->actionArg == 0 ? CHAR_ANIM_GENERAL_FALL : CHAR_ANIM_FALL_FROM_WATER); stationary_slow_down(m); if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled @@ -1511,7 +1511,7 @@ static s32 act_hold_metal_water_falling(struct MarioState *m) { m->faceAngle[1] += 0x400 * sins(m->intendedYaw - m->faceAngle[1]); } - set_mario_animation(m, MARIO_ANIM_FALL_WITH_LIGHT_OBJ); + set_character_animation(m, CHAR_ANIM_FALL_WITH_LIGHT_OBJ); stationary_slow_down(m); if (perform_water_step(m) & WATER_STEP_HIT_FLOOR) { // hit floor or cancelled @@ -1534,7 +1534,7 @@ static s32 act_metal_water_jump_land(struct MarioState *m) { } stop_and_set_height_to_floor(m); - set_mario_animation(m, MARIO_ANIM_LAND_FROM_SINGLE_JUMP); + set_character_animation(m, CHAR_ANIM_LAND_FROM_SINGLE_JUMP); if (is_anim_at_end(m)) { return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); @@ -1560,7 +1560,7 @@ static s32 act_hold_metal_water_jump_land(struct MarioState *m) { } stop_and_set_height_to_floor(m); - set_mario_animation(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ); + set_character_animation(m, CHAR_ANIM_JUMP_LAND_WITH_LIGHT_OBJ); if (is_anim_at_end(m)) { return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); @@ -1582,7 +1582,7 @@ static s32 act_metal_water_fall_land(struct MarioState *m) { } stop_and_set_height_to_floor(m); - set_mario_animation(m, MARIO_ANIM_GENERAL_LAND); + set_character_animation(m, CHAR_ANIM_GENERAL_LAND); if (is_anim_at_end(m)) { return set_mario_action(m, ACT_METAL_WATER_STANDING, 0); @@ -1608,7 +1608,7 @@ static s32 act_hold_metal_water_fall_land(struct MarioState *m) { } stop_and_set_height_to_floor(m); - set_mario_animation(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ); + set_character_animation(m, CHAR_ANIM_FALL_LAND_WITH_LIGHT_OBJ); if (is_anim_at_end(m)) { return set_mario_action(m, ACT_HOLD_METAL_WATER_STANDING, 0); diff --git a/src/pc/lua/smlua_cobject_autogen.c b/src/pc/lua/smlua_cobject_autogen.c index af05c6b45..c69fb02cf 100644 --- a/src/pc/lua/smlua_cobject_autogen.c +++ b/src/pc/lua/smlua_cobject_autogen.c @@ -322,71 +322,280 @@ static struct LuaObjectField sChainSegmentFields[LUA_CHAIN_SEGMENT_FIELD_COUNT] { "yaw", LVT_S16, offsetof(struct ChainSegment, yaw), false, LOT_NONE }, }; -#define LUA_CHARACTER_FIELD_COUNT 61 +#define LUA_CHARACTER_FIELD_COUNT 270 static struct LuaObjectField sCharacterFields[LUA_CHARACTER_FIELD_COUNT] = { - { "animOffsetEnabled", LVT_U8, offsetof(struct Character, animOffsetEnabled), true, LOT_NONE }, - { "animOffsetFeet", LVT_F32, offsetof(struct Character, animOffsetFeet), true, LOT_NONE }, - { "animOffsetHand", LVT_F32, offsetof(struct Character, animOffsetHand), true, LOT_NONE }, - { "animOffsetLowYPoint", LVT_F32, offsetof(struct Character, animOffsetLowYPoint), true, LOT_NONE }, - { "cameraHudHead", LVT_U32, offsetof(struct Character, cameraHudHead), true, LOT_NONE }, -// { "capEnemyDecalGfx", LVT_???, offsetof(struct Character, capEnemyDecalGfx), true, LOT_??? }, <--- UNIMPLEMENTED -// { "capEnemyGfx", LVT_???, offsetof(struct Character, capEnemyGfx), true, LOT_??? }, <--- UNIMPLEMENTED - { "capEnemyLayer", LVT_U8, offsetof(struct Character, capEnemyLayer), true, LOT_NONE }, - { "capMetalModelId", LVT_U32, offsetof(struct Character, capMetalModelId), true, LOT_NONE }, - { "capMetalWingModelId", LVT_U32, offsetof(struct Character, capMetalWingModelId), true, LOT_NONE }, - { "capModelId", LVT_U32, offsetof(struct Character, capModelId), true, LOT_NONE }, - { "capWingModelId", LVT_U32, offsetof(struct Character, capWingModelId), true, LOT_NONE }, - { "hudHead", LVT_U8, offsetof(struct Character, hudHead), true, LOT_NONE }, - { "hudHeadTexture", LVT_COBJECT, offsetof(struct Character, hudHeadTexture), true, LOT_TEXTUREINFO }, - { "modelId", LVT_U32, offsetof(struct Character, modelId), true, LOT_NONE }, - { "name", LVT_STRING_P, offsetof(struct Character, name), true, LOT_NONE }, - { "soundAttacked", LVT_S32, offsetof(struct Character, soundAttacked), true, LOT_NONE }, - { "soundCoughing1", LVT_S32, offsetof(struct Character, soundCoughing1), true, LOT_NONE }, - { "soundCoughing2", LVT_S32, offsetof(struct Character, soundCoughing2), true, LOT_NONE }, - { "soundCoughing3", LVT_S32, offsetof(struct Character, soundCoughing3), true, LOT_NONE }, - { "soundDoh", LVT_S32, offsetof(struct Character, soundDoh), true, LOT_NONE }, - { "soundDrowning", LVT_S32, offsetof(struct Character, soundDrowning), true, LOT_NONE }, - { "soundDying", LVT_S32, offsetof(struct Character, soundDying), true, LOT_NONE }, - { "soundEeuh", LVT_S32, offsetof(struct Character, soundEeuh), true, LOT_NONE }, - { "soundFreqScale", LVT_F32, offsetof(struct Character, soundFreqScale), true, LOT_NONE }, - { "soundGameOver", LVT_S32, offsetof(struct Character, soundGameOver), true, LOT_NONE }, - { "soundGroundPoundWah", LVT_S32, offsetof(struct Character, soundGroundPoundWah), true, LOT_NONE }, - { "soundHaha", LVT_S32, offsetof(struct Character, soundHaha), true, LOT_NONE }, - { "soundHaha_2", LVT_S32, offsetof(struct Character, soundHaha_2), true, LOT_NONE }, - { "soundHello", LVT_S32, offsetof(struct Character, soundHello), true, LOT_NONE }, - { "soundHereWeGo", LVT_S32, offsetof(struct Character, soundHereWeGo), true, LOT_NONE }, - { "soundHoohoo", LVT_S32, offsetof(struct Character, soundHoohoo), true, LOT_NONE }, - { "soundHrmm", LVT_S32, offsetof(struct Character, soundHrmm), true, LOT_NONE }, - { "soundImaTired", LVT_S32, offsetof(struct Character, soundImaTired), true, LOT_NONE }, - { "soundLetsAGo", LVT_S32, offsetof(struct Character, soundLetsAGo), true, LOT_NONE }, - { "soundMamaMia", LVT_S32, offsetof(struct Character, soundMamaMia), true, LOT_NONE }, - { "soundOkeyDokey", LVT_S32, offsetof(struct Character, soundOkeyDokey), true, LOT_NONE }, - { "soundOnFire", LVT_S32, offsetof(struct Character, soundOnFire), true, LOT_NONE }, - { "soundOoof", LVT_S32, offsetof(struct Character, soundOoof), true, LOT_NONE }, - { "soundOoof2", LVT_S32, offsetof(struct Character, soundOoof2), true, LOT_NONE }, - { "soundPanting", LVT_S32, offsetof(struct Character, soundPanting), true, LOT_NONE }, - { "soundPantingCold", LVT_S32, offsetof(struct Character, soundPantingCold), true, LOT_NONE }, - { "soundPressStartToPlay", LVT_S32, offsetof(struct Character, soundPressStartToPlay), true, LOT_NONE }, - { "soundPunchHoo", LVT_S32, offsetof(struct Character, soundPunchHoo), true, LOT_NONE }, - { "soundPunchWah", LVT_S32, offsetof(struct Character, soundPunchWah), true, LOT_NONE }, - { "soundPunchYah", LVT_S32, offsetof(struct Character, soundPunchYah), true, LOT_NONE }, - { "soundSnoring1", LVT_S32, offsetof(struct Character, soundSnoring1), true, LOT_NONE }, - { "soundSnoring2", LVT_S32, offsetof(struct Character, soundSnoring2), true, LOT_NONE }, - { "soundSnoring3", LVT_S32, offsetof(struct Character, soundSnoring3), true, LOT_NONE }, - { "soundSoLongaBowser", LVT_S32, offsetof(struct Character, soundSoLongaBowser), true, LOT_NONE }, - { "soundTwirlBounce", LVT_S32, offsetof(struct Character, soundTwirlBounce), true, LOT_NONE }, - { "soundUh", LVT_S32, offsetof(struct Character, soundUh), true, LOT_NONE }, - { "soundUh2", LVT_S32, offsetof(struct Character, soundUh2), true, LOT_NONE }, - { "soundUh2_2", LVT_S32, offsetof(struct Character, soundUh2_2), true, LOT_NONE }, - { "soundWaaaooow", LVT_S32, offsetof(struct Character, soundWaaaooow), true, LOT_NONE }, - { "soundWah2", LVT_S32, offsetof(struct Character, soundWah2), true, LOT_NONE }, - { "soundWhoa", LVT_S32, offsetof(struct Character, soundWhoa), true, LOT_NONE }, - { "soundYahWahHoo", LVT_S32, offsetof(struct Character, soundYahWahHoo), true, LOT_NONE }, - { "soundYahoo", LVT_S32, offsetof(struct Character, soundYahoo), true, LOT_NONE }, - { "soundYahooWahaYippee", LVT_S32, offsetof(struct Character, soundYahooWahaYippee), true, LOT_NONE }, - { "soundYawning", LVT_S32, offsetof(struct Character, soundYawning), true, LOT_NONE }, - { "torsoRotMult", LVT_F32, offsetof(struct Character, torsoRotMult), true, LOT_NONE }, - { "type", LVT_S32, offsetof(struct Character, type), true, LOT_NONE }, + { "animAPose", LVT_S32, offsetof(struct Character, animAPose), true, LOT_NONE }, + { "animAirForwardKb", LVT_S32, offsetof(struct Character, animAirForwardKb), true, LOT_NONE }, + { "animAirKick", LVT_S32, offsetof(struct Character, animAirKick), true, LOT_NONE }, + { "animAirborneOnStomach", LVT_S32, offsetof(struct Character, animAirborneOnStomach), true, LOT_NONE }, + { "animBackflip", LVT_S32, offsetof(struct Character, animBackflip), true, LOT_NONE }, + { "animBackwardAirKb", LVT_S32, offsetof(struct Character, animBackwardAirKb), true, LOT_NONE }, + { "animBackwardKb", LVT_S32, offsetof(struct Character, animBackwardKb), true, LOT_NONE }, + { "animBackwardSpinning", LVT_S32, offsetof(struct Character, animBackwardSpinning), true, LOT_NONE }, + { "animBackwardsWaterKb", LVT_S32, offsetof(struct Character, animBackwardsWaterKb), true, LOT_NONE }, + { "animBeingGrabbed", LVT_S32, offsetof(struct Character, animBeingGrabbed), true, LOT_NONE }, + { "animBendKnessRidingShell", LVT_S32, offsetof(struct Character, animBendKnessRidingShell), true, LOT_NONE }, + { "animBottomStuckInGround", LVT_S32, offsetof(struct Character, animBottomStuckInGround), true, LOT_NONE }, + { "animBreakdance", LVT_S32, offsetof(struct Character, animBreakdance), true, LOT_NONE }, + { "animClimbDownLedge", LVT_S32, offsetof(struct Character, animClimbDownLedge), true, LOT_NONE }, + { "animClimbUpPole", LVT_S32, offsetof(struct Character, animClimbUpPole), true, LOT_NONE }, + { "animCoughing", LVT_S32, offsetof(struct Character, animCoughing), true, LOT_NONE }, + { "animCrawling", LVT_S32, offsetof(struct Character, animCrawling), true, LOT_NONE }, + { "animCreditsLookBackThenRun", LVT_S32, offsetof(struct Character, animCreditsLookBackThenRun), true, LOT_NONE }, + { "animCreditsLookUp", LVT_S32, offsetof(struct Character, animCreditsLookUp), true, LOT_NONE }, + { "animCreditsLowerHand", LVT_S32, offsetof(struct Character, animCreditsLowerHand), true, LOT_NONE }, + { "animCreditsPeaceSign", LVT_S32, offsetof(struct Character, animCreditsPeaceSign), true, LOT_NONE }, + { "animCreditsRaiseHand", LVT_S32, offsetof(struct Character, animCreditsRaiseHand), true, LOT_NONE }, + { "animCreditsReturnFromLookUp", LVT_S32, offsetof(struct Character, animCreditsReturnFromLookUp), true, LOT_NONE }, + { "animCreditsStartWalkLookUp", LVT_S32, offsetof(struct Character, animCreditsStartWalkLookUp), true, LOT_NONE }, + { "animCreditsTakeOffCap", LVT_S32, offsetof(struct Character, animCreditsTakeOffCap), true, LOT_NONE }, + { "animCreditsWaving", LVT_S32, offsetof(struct Character, animCreditsWaving), true, LOT_NONE }, + { "animCrouchFromFastLongjump", LVT_S32, offsetof(struct Character, animCrouchFromFastLongjump), true, LOT_NONE }, + { "animCrouchFromSlideKick", LVT_S32, offsetof(struct Character, animCrouchFromSlideKick), true, LOT_NONE }, + { "animCrouchFromSlowLongjump", LVT_S32, offsetof(struct Character, animCrouchFromSlowLongjump), true, LOT_NONE }, + { "animCrouching", LVT_S32, offsetof(struct Character, animCrouching), true, LOT_NONE }, + { "animDive", LVT_S32, offsetof(struct Character, animDive), true, LOT_NONE }, + { "animDoubleJumpFall", LVT_S32, offsetof(struct Character, animDoubleJumpFall), true, LOT_NONE }, + { "animDoubleJumpRise", LVT_S32, offsetof(struct Character, animDoubleJumpRise), true, LOT_NONE }, + { "animDrowningPart1", LVT_S32, offsetof(struct Character, animDrowningPart1), true, LOT_NONE }, + { "animDrowningPart2", LVT_S32, offsetof(struct Character, animDrowningPart2), true, LOT_NONE }, + { "animDyingFallOver", LVT_S32, offsetof(struct Character, animDyingFallOver), true, LOT_NONE }, + { "animDyingInQuicksand", LVT_S32, offsetof(struct Character, animDyingInQuicksand), true, LOT_NONE }, + { "animDyingOnBack", LVT_S32, offsetof(struct Character, animDyingOnBack), true, LOT_NONE }, + { "animDyingOnStomach", LVT_S32, offsetof(struct Character, animDyingOnStomach), true, LOT_NONE }, + { "animElectrocution", LVT_S32, offsetof(struct Character, animElectrocution), true, LOT_NONE }, + { "animFallFromSlide", LVT_S32, offsetof(struct Character, animFallFromSlide), true, LOT_NONE }, + { "animFallFromSlideKick", LVT_S32, offsetof(struct Character, animFallFromSlideKick), true, LOT_NONE }, + { "animFallFromSlidingWithLightObj", LVT_S32, offsetof(struct Character, animFallFromSlidingWithLightObj), true, LOT_NONE }, + { "animFallFromWater", LVT_S32, offsetof(struct Character, animFallFromWater), true, LOT_NONE }, + { "animFallLandWithLightObj", LVT_S32, offsetof(struct Character, animFallLandWithLightObj), true, LOT_NONE }, + { "animFallOverBackwards", LVT_S32, offsetof(struct Character, animFallOverBackwards), true, LOT_NONE }, + { "animFallWithLightObj", LVT_S32, offsetof(struct Character, animFallWithLightObj), true, LOT_NONE }, + { "animFastLedgeGrab", LVT_S32, offsetof(struct Character, animFastLedgeGrab), true, LOT_NONE }, + { "animFastLongjump", LVT_S32, offsetof(struct Character, animFastLongjump), true, LOT_NONE }, + { "animFinalBowserRaiseHandSpin", LVT_S32, offsetof(struct Character, animFinalBowserRaiseHandSpin), true, LOT_NONE }, + { "animFinalBowserWingCapTakeOff", LVT_S32, offsetof(struct Character, animFinalBowserWingCapTakeOff), true, LOT_NONE }, + { "animFireLavaBurn", LVT_S32, offsetof(struct Character, animFireLavaBurn), true, LOT_NONE }, + { "animFirstPerson", LVT_S32, offsetof(struct Character, animFirstPerson), true, LOT_NONE }, + { "animFirstPunch", LVT_S32, offsetof(struct Character, animFirstPunch), true, LOT_NONE }, + { "animFirstPunchFast", LVT_S32, offsetof(struct Character, animFirstPunchFast), true, LOT_NONE }, + { "animFlutterkick", LVT_S32, offsetof(struct Character, animFlutterkick), true, LOT_NONE }, + { "animFlutterkickWithObj", LVT_S32, offsetof(struct Character, animFlutterkickWithObj), true, LOT_NONE }, + { "animFlyFromCannon", LVT_S32, offsetof(struct Character, animFlyFromCannon), true, LOT_NONE }, + { "animForwardFlip", LVT_S32, offsetof(struct Character, animForwardFlip), true, LOT_NONE }, + { "animForwardKb", LVT_S32, offsetof(struct Character, animForwardKb), true, LOT_NONE }, + { "animForwardSpinning", LVT_S32, offsetof(struct Character, animForwardSpinning), true, LOT_NONE }, + { "animForwardSpinningFlip", LVT_S32, offsetof(struct Character, animForwardSpinningFlip), true, LOT_NONE }, + { "animGeneralFall", LVT_S32, offsetof(struct Character, animGeneralFall), true, LOT_NONE }, + { "animGeneralLand", LVT_S32, offsetof(struct Character, animGeneralLand), true, LOT_NONE }, + { "animGrabBowser", LVT_S32, offsetof(struct Character, animGrabBowser), true, LOT_NONE }, + { "animGrabHeavyObject", LVT_S32, offsetof(struct Character, animGrabHeavyObject), true, LOT_NONE }, + { "animGrabPoleShort", LVT_S32, offsetof(struct Character, animGrabPoleShort), true, LOT_NONE }, + { "animGrabPoleSwingPart1", LVT_S32, offsetof(struct Character, animGrabPoleSwingPart1), true, LOT_NONE }, + { "animGrabPoleSwingPart2", LVT_S32, offsetof(struct Character, animGrabPoleSwingPart2), true, LOT_NONE }, + { "animGroundBonk", LVT_S32, offsetof(struct Character, animGroundBonk), true, LOT_NONE }, + { "animGroundKick", LVT_S32, offsetof(struct Character, animGroundKick), true, LOT_NONE }, + { "animGroundPound", LVT_S32, offsetof(struct Character, animGroundPound), true, LOT_NONE }, + { "animGroundPoundLanding", LVT_S32, offsetof(struct Character, animGroundPoundLanding), true, LOT_NONE }, + { "animGroundThrow", LVT_S32, offsetof(struct Character, animGroundThrow), true, LOT_NONE }, + { "animHandstandIdle", LVT_S32, offsetof(struct Character, animHandstandIdle), true, LOT_NONE }, + { "animHandstandJump", LVT_S32, offsetof(struct Character, animHandstandJump), true, LOT_NONE }, + { "animHandstandLeft", LVT_S32, offsetof(struct Character, animHandstandLeft), true, LOT_NONE }, + { "animHandstandRight", LVT_S32, offsetof(struct Character, animHandstandRight), true, LOT_NONE }, + { "animHangOnCeiling", LVT_S32, offsetof(struct Character, animHangOnCeiling), true, LOT_NONE }, + { "animHangOnOwl", LVT_S32, offsetof(struct Character, animHangOnOwl), true, LOT_NONE }, + { "animHeadStuckInGround", LVT_S32, offsetof(struct Character, animHeadStuckInGround), true, LOT_NONE }, + { "animHeavyThrow", LVT_S32, offsetof(struct Character, animHeavyThrow), true, LOT_NONE }, + { "animHoldingBowser", LVT_S32, offsetof(struct Character, animHoldingBowser), true, LOT_NONE }, + { "animIdleHeadCenter", LVT_S32, offsetof(struct Character, animIdleHeadCenter), true, LOT_NONE }, + { "animIdleHeadLeft", LVT_S32, offsetof(struct Character, animIdleHeadLeft), true, LOT_NONE }, + { "animIdleHeadRight", LVT_S32, offsetof(struct Character, animIdleHeadRight), true, LOT_NONE }, + { "animIdleHeavyObj", LVT_S32, offsetof(struct Character, animIdleHeavyObj), true, LOT_NONE }, + { "animIdleInQuicksand", LVT_S32, offsetof(struct Character, animIdleInQuicksand), true, LOT_NONE }, + { "animIdleOnLedge", LVT_S32, offsetof(struct Character, animIdleOnLedge), true, LOT_NONE }, + { "animIdleOnPole", LVT_S32, offsetof(struct Character, animIdleOnPole), true, LOT_NONE }, + { "animIdleWithLightObj", LVT_S32, offsetof(struct Character, animIdleWithLightObj), true, LOT_NONE }, + { "animJumpLandWithLightObj", LVT_S32, offsetof(struct Character, animJumpLandWithLightObj), true, LOT_NONE }, + { "animJumpRidingShell", LVT_S32, offsetof(struct Character, animJumpRidingShell), true, LOT_NONE }, + { "animJumpWithLightObj", LVT_S32, offsetof(struct Character, animJumpWithLightObj), true, LOT_NONE }, + { "animLandFromDoubleJump", LVT_S32, offsetof(struct Character, animLandFromDoubleJump), true, LOT_NONE }, + { "animLandFromSingleJump", LVT_S32, offsetof(struct Character, animLandFromSingleJump), true, LOT_NONE }, + { "animLandOnStomach", LVT_S32, offsetof(struct Character, animLandOnStomach), true, LOT_NONE }, + { "animLegsStuckInGround", LVT_S32, offsetof(struct Character, animLegsStuckInGround), true, LOT_NONE }, + { "animMissingCap", LVT_S32, offsetof(struct Character, animMissingCap), true, LOT_NONE }, + { "animMoveInQuicksand", LVT_S32, offsetof(struct Character, animMoveInQuicksand), true, LOT_NONE }, + { "animMoveOnWireNetLeft", LVT_S32, offsetof(struct Character, animMoveOnWireNetLeft), true, LOT_NONE }, + { "animMoveOnWireNetRight", LVT_S32, offsetof(struct Character, animMoveOnWireNetRight), true, LOT_NONE }, + { "animOffsetEnabled", LVT_U8, offsetof(struct Character, animOffsetEnabled), true, LOT_NONE }, + { "animOffsetFeet", LVT_F32, offsetof(struct Character, animOffsetFeet), true, LOT_NONE }, + { "animOffsetHand", LVT_F32, offsetof(struct Character, animOffsetHand), true, LOT_NONE }, + { "animOffsetLowYPoint", LVT_F32, offsetof(struct Character, animOffsetLowYPoint), true, LOT_NONE }, + { "animPickUpLightObj", LVT_S32, offsetof(struct Character, animPickUpLightObj), true, LOT_NONE }, + { "animPlaceLightObj", LVT_S32, offsetof(struct Character, animPlaceLightObj), true, LOT_NONE }, + { "animPullDoorWalkIn", LVT_S32, offsetof(struct Character, animPullDoorWalkIn), true, LOT_NONE }, + { "animPushDoorWalkIn", LVT_S32, offsetof(struct Character, animPushDoorWalkIn), true, LOT_NONE }, + { "animPushing", LVT_S32, offsetof(struct Character, animPushing), true, LOT_NONE }, + { "animPutCapOn", LVT_S32, offsetof(struct Character, animPutCapOn), true, LOT_NONE }, + { "animQuicklyPutCapOn", LVT_S32, offsetof(struct Character, animQuicklyPutCapOn), true, LOT_NONE }, + { "animReachPocket", LVT_S32, offsetof(struct Character, animReachPocket), true, LOT_NONE }, + { "animReleaseBowser", LVT_S32, offsetof(struct Character, animReleaseBowser), true, LOT_NONE }, + { "animReturnFromHandstand", LVT_S32, offsetof(struct Character, animReturnFromHandstand), true, LOT_NONE }, + { "animReturnFromStarDance", LVT_S32, offsetof(struct Character, animReturnFromStarDance), true, LOT_NONE }, + { "animReturnFromWaterStarDance", LVT_S32, offsetof(struct Character, animReturnFromWaterStarDance), true, LOT_NONE }, + { "animReturnStarApproachDoor", LVT_S32, offsetof(struct Character, animReturnStarApproachDoor), true, LOT_NONE }, + { "animRidingShell", LVT_S32, offsetof(struct Character, animRidingShell), true, LOT_NONE }, + { "animRunWithLightObj", LVT_S32, offsetof(struct Character, animRunWithLightObj), true, LOT_NONE }, + { "animRunning", LVT_S32, offsetof(struct Character, animRunning), true, LOT_NONE }, + { "animRunningUnused", LVT_S32, offsetof(struct Character, animRunningUnused), true, LOT_NONE }, + { "animSecondPunch", LVT_S32, offsetof(struct Character, animSecondPunch), true, LOT_NONE }, + { "animSecondPunchFast", LVT_S32, offsetof(struct Character, animSecondPunchFast), true, LOT_NONE }, + { "animShivering", LVT_S32, offsetof(struct Character, animShivering), true, LOT_NONE }, + { "animShiveringReturnToIdle", LVT_S32, offsetof(struct Character, animShiveringReturnToIdle), true, LOT_NONE }, + { "animShiveringWarmingHand", LVT_S32, offsetof(struct Character, animShiveringWarmingHand), true, LOT_NONE }, + { "animShocked", LVT_S32, offsetof(struct Character, animShocked), true, LOT_NONE }, + { "animSidestepLeft", LVT_S32, offsetof(struct Character, animSidestepLeft), true, LOT_NONE }, + { "animSidestepRight", LVT_S32, offsetof(struct Character, animSidestepRight), true, LOT_NONE }, + { "animSingleJump", LVT_S32, offsetof(struct Character, animSingleJump), true, LOT_NONE }, + { "animSkidOnGround", LVT_S32, offsetof(struct Character, animSkidOnGround), true, LOT_NONE }, + { "animSleepIdle", LVT_S32, offsetof(struct Character, animSleepIdle), true, LOT_NONE }, + { "animSleepLying", LVT_S32, offsetof(struct Character, animSleepLying), true, LOT_NONE }, + { "animSleepStartLying", LVT_S32, offsetof(struct Character, animSleepStartLying), true, LOT_NONE }, + { "animSlide", LVT_S32, offsetof(struct Character, animSlide), true, LOT_NONE }, + { "animSlideDive", LVT_S32, offsetof(struct Character, animSlideDive), true, LOT_NONE }, + { "animSlideKick", LVT_S32, offsetof(struct Character, animSlideKick), true, LOT_NONE }, + { "animSlideMotionless", LVT_S32, offsetof(struct Character, animSlideMotionless), true, LOT_NONE }, + { "animSlideflip", LVT_S32, offsetof(struct Character, animSlideflip), true, LOT_NONE }, + { "animSlideflipLand", LVT_S32, offsetof(struct Character, animSlideflipLand), true, LOT_NONE }, + { "animSlidejump", LVT_S32, offsetof(struct Character, animSlidejump), true, LOT_NONE }, + { "animSlidingOnBottomWithLightObj", LVT_S32, offsetof(struct Character, animSlidingOnBottomWithLightObj), true, LOT_NONE }, + { "animSlowLandFromDive", LVT_S32, offsetof(struct Character, animSlowLandFromDive), true, LOT_NONE }, + { "animSlowLedgeGrab", LVT_S32, offsetof(struct Character, animSlowLedgeGrab), true, LOT_NONE }, + { "animSlowLongjump", LVT_S32, offsetof(struct Character, animSlowLongjump), true, LOT_NONE }, + { "animSlowWalkWithLightObj", LVT_S32, offsetof(struct Character, animSlowWalkWithLightObj), true, LOT_NONE }, + { "animSoftBackKb", LVT_S32, offsetof(struct Character, animSoftBackKb), true, LOT_NONE }, + { "animSoftFrontKb", LVT_S32, offsetof(struct Character, animSoftFrontKb), true, LOT_NONE }, + { "animStandAgainstWall", LVT_S32, offsetof(struct Character, animStandAgainstWall), true, LOT_NONE }, + { "animStandUpFromLavaBoost", LVT_S32, offsetof(struct Character, animStandUpFromLavaBoost), true, LOT_NONE }, + { "animStandUpFromSlidingWithLightObj", LVT_S32, offsetof(struct Character, animStandUpFromSlidingWithLightObj), true, LOT_NONE }, + { "animStarDance", LVT_S32, offsetof(struct Character, animStarDance), true, LOT_NONE }, + { "animStartCrawling", LVT_S32, offsetof(struct Character, animStartCrawling), true, LOT_NONE }, + { "animStartCrouching", LVT_S32, offsetof(struct Character, animStartCrouching), true, LOT_NONE }, + { "animStartForwardSpinning", LVT_S32, offsetof(struct Character, animStartForwardSpinning), true, LOT_NONE }, + { "animStartGroundPound", LVT_S32, offsetof(struct Character, animStartGroundPound), true, LOT_NONE }, + { "animStartHandstand", LVT_S32, offsetof(struct Character, animStartHandstand), true, LOT_NONE }, + { "animStartReachPocket", LVT_S32, offsetof(struct Character, animStartReachPocket), true, LOT_NONE }, + { "animStartRidingShell", LVT_S32, offsetof(struct Character, animStartRidingShell), true, LOT_NONE }, + { "animStartSleepIdle", LVT_S32, offsetof(struct Character, animStartSleepIdle), true, LOT_NONE }, + { "animStartSleepScratch", LVT_S32, offsetof(struct Character, animStartSleepScratch), true, LOT_NONE }, + { "animStartSleepSitting", LVT_S32, offsetof(struct Character, animStartSleepSitting), true, LOT_NONE }, + { "animStartSleepYawn", LVT_S32, offsetof(struct Character, animStartSleepYawn), true, LOT_NONE }, + { "animStartTiptoe", LVT_S32, offsetof(struct Character, animStartTiptoe), true, LOT_NONE }, + { "animStartTwirl", LVT_S32, offsetof(struct Character, animStartTwirl), true, LOT_NONE }, + { "animStartWallkick", LVT_S32, offsetof(struct Character, animStartWallkick), true, LOT_NONE }, + { "animStopCrawling", LVT_S32, offsetof(struct Character, animStopCrawling), true, LOT_NONE }, + { "animStopCrouching", LVT_S32, offsetof(struct Character, animStopCrouching), true, LOT_NONE }, + { "animStopGrabObjWater", LVT_S32, offsetof(struct Character, animStopGrabObjWater), true, LOT_NONE }, + { "animStopReachPocket", LVT_S32, offsetof(struct Character, animStopReachPocket), true, LOT_NONE }, + { "animStopSkid", LVT_S32, offsetof(struct Character, animStopSkid), true, LOT_NONE }, + { "animStopSlide", LVT_S32, offsetof(struct Character, animStopSlide), true, LOT_NONE }, + { "animStopSlideLightObj", LVT_S32, offsetof(struct Character, animStopSlideLightObj), true, LOT_NONE }, + { "animSuffocating", LVT_S32, offsetof(struct Character, animSuffocating), true, LOT_NONE }, + { "animSummonStar", LVT_S32, offsetof(struct Character, animSummonStar), true, LOT_NONE }, + { "animSwimPart1", LVT_S32, offsetof(struct Character, animSwimPart1), true, LOT_NONE }, + { "animSwimPart2", LVT_S32, offsetof(struct Character, animSwimPart2), true, LOT_NONE }, + { "animSwimWithObjPart1", LVT_S32, offsetof(struct Character, animSwimWithObjPart1), true, LOT_NONE }, + { "animSwimWithObjPart2", LVT_S32, offsetof(struct Character, animSwimWithObjPart2), true, LOT_NONE }, + { "animSwingingBowser", LVT_S32, offsetof(struct Character, animSwingingBowser), true, LOT_NONE }, + { "animTakeCapOffThenOn", LVT_S32, offsetof(struct Character, animTakeCapOffThenOn), true, LOT_NONE }, + { "animThrowCatchKey", LVT_S32, offsetof(struct Character, animThrowCatchKey), true, LOT_NONE }, + { "animThrowLightObject", LVT_S32, offsetof(struct Character, animThrowLightObject), true, LOT_NONE }, + { "animTiptoe", LVT_S32, offsetof(struct Character, animTiptoe), true, LOT_NONE }, + { "animTripleJump", LVT_S32, offsetof(struct Character, animTripleJump), true, LOT_NONE }, + { "animTripleJumpFly", LVT_S32, offsetof(struct Character, animTripleJumpFly), true, LOT_NONE }, + { "animTripleJumpGroundPound", LVT_S32, offsetof(struct Character, animTripleJumpGroundPound), true, LOT_NONE }, + { "animTripleJumpLand", LVT_S32, offsetof(struct Character, animTripleJumpLand), true, LOT_NONE }, + { "animTurningPart1", LVT_S32, offsetof(struct Character, animTurningPart1), true, LOT_NONE }, + { "animTurningPart2", LVT_S32, offsetof(struct Character, animTurningPart2), true, LOT_NONE }, + { "animTwirl", LVT_S32, offsetof(struct Character, animTwirl), true, LOT_NONE }, + { "animTwirlLand", LVT_S32, offsetof(struct Character, animTwirlLand), true, LOT_NONE }, + { "animUnlockDoor", LVT_S32, offsetof(struct Character, animUnlockDoor), true, LOT_NONE }, + { "animWakeFromLying", LVT_S32, offsetof(struct Character, animWakeFromLying), true, LOT_NONE }, + { "animWakeFromSleep", LVT_S32, offsetof(struct Character, animWakeFromSleep), true, LOT_NONE }, + { "animWalkPanting", LVT_S32, offsetof(struct Character, animWalkPanting), true, LOT_NONE }, + { "animWalkWithHeavyObj", LVT_S32, offsetof(struct Character, animWalkWithHeavyObj), true, LOT_NONE }, + { "animWalkWithLightObj", LVT_S32, offsetof(struct Character, animWalkWithLightObj), true, LOT_NONE }, + { "animWalking", LVT_S32, offsetof(struct Character, animWalking), true, LOT_NONE }, + { "animWaterActionEnd", LVT_S32, offsetof(struct Character, animWaterActionEnd), true, LOT_NONE }, + { "animWaterActionEndWithObj", LVT_S32, offsetof(struct Character, animWaterActionEndWithObj), true, LOT_NONE }, + { "animWaterDying", LVT_S32, offsetof(struct Character, animWaterDying), true, LOT_NONE }, + { "animWaterForwardKb", LVT_S32, offsetof(struct Character, animWaterForwardKb), true, LOT_NONE }, + { "animWaterGrabObjPart1", LVT_S32, offsetof(struct Character, animWaterGrabObjPart1), true, LOT_NONE }, + { "animWaterGrabObjPart2", LVT_S32, offsetof(struct Character, animWaterGrabObjPart2), true, LOT_NONE }, + { "animWaterIdle", LVT_S32, offsetof(struct Character, animWaterIdle), true, LOT_NONE }, + { "animWaterIdleWithObj", LVT_S32, offsetof(struct Character, animWaterIdleWithObj), true, LOT_NONE }, + { "animWaterPickUpObj", LVT_S32, offsetof(struct Character, animWaterPickUpObj), true, LOT_NONE }, + { "animWaterStarDance", LVT_S32, offsetof(struct Character, animWaterStarDance), true, LOT_NONE }, + { "animWaterThrowObj", LVT_S32, offsetof(struct Character, animWaterThrowObj), true, LOT_NONE }, + { "animWingCapFly", LVT_S32, offsetof(struct Character, animWingCapFly), true, LOT_NONE }, + { "cameraHudHead", LVT_U32, offsetof(struct Character, cameraHudHead), true, LOT_NONE }, +// { "capEnemyDecalGfx", LVT_???, offsetof(struct Character, capEnemyDecalGfx), true, LOT_??? }, <--- UNIMPLEMENTED +// { "capEnemyGfx", LVT_???, offsetof(struct Character, capEnemyGfx), true, LOT_??? }, <--- UNIMPLEMENTED + { "capEnemyLayer", LVT_U8, offsetof(struct Character, capEnemyLayer), true, LOT_NONE }, + { "capMetalModelId", LVT_U32, offsetof(struct Character, capMetalModelId), true, LOT_NONE }, + { "capMetalWingModelId", LVT_U32, offsetof(struct Character, capMetalWingModelId), true, LOT_NONE }, + { "capModelId", LVT_U32, offsetof(struct Character, capModelId), true, LOT_NONE }, + { "capWingModelId", LVT_U32, offsetof(struct Character, capWingModelId), true, LOT_NONE }, + { "hudHead", LVT_U8, offsetof(struct Character, hudHead), true, LOT_NONE }, + { "hudHeadTexture", LVT_COBJECT, offsetof(struct Character, hudHeadTexture), true, LOT_TEXTUREINFO }, + { "modelId", LVT_U32, offsetof(struct Character, modelId), true, LOT_NONE }, + { "name", LVT_STRING_P, offsetof(struct Character, name), true, LOT_NONE }, + { "soundAttacked", LVT_S32, offsetof(struct Character, soundAttacked), true, LOT_NONE }, + { "soundCoughing1", LVT_S32, offsetof(struct Character, soundCoughing1), true, LOT_NONE }, + { "soundCoughing2", LVT_S32, offsetof(struct Character, soundCoughing2), true, LOT_NONE }, + { "soundCoughing3", LVT_S32, offsetof(struct Character, soundCoughing3), true, LOT_NONE }, + { "soundDoh", LVT_S32, offsetof(struct Character, soundDoh), true, LOT_NONE }, + { "soundDrowning", LVT_S32, offsetof(struct Character, soundDrowning), true, LOT_NONE }, + { "soundDying", LVT_S32, offsetof(struct Character, soundDying), true, LOT_NONE }, + { "soundEeuh", LVT_S32, offsetof(struct Character, soundEeuh), true, LOT_NONE }, + { "soundFreqScale", LVT_F32, offsetof(struct Character, soundFreqScale), true, LOT_NONE }, + { "soundGameOver", LVT_S32, offsetof(struct Character, soundGameOver), true, LOT_NONE }, + { "soundGroundPoundWah", LVT_S32, offsetof(struct Character, soundGroundPoundWah), true, LOT_NONE }, + { "soundHaha", LVT_S32, offsetof(struct Character, soundHaha), true, LOT_NONE }, + { "soundHaha_2", LVT_S32, offsetof(struct Character, soundHaha_2), true, LOT_NONE }, + { "soundHello", LVT_S32, offsetof(struct Character, soundHello), true, LOT_NONE }, + { "soundHereWeGo", LVT_S32, offsetof(struct Character, soundHereWeGo), true, LOT_NONE }, + { "soundHoohoo", LVT_S32, offsetof(struct Character, soundHoohoo), true, LOT_NONE }, + { "soundHrmm", LVT_S32, offsetof(struct Character, soundHrmm), true, LOT_NONE }, + { "soundImaTired", LVT_S32, offsetof(struct Character, soundImaTired), true, LOT_NONE }, + { "soundLetsAGo", LVT_S32, offsetof(struct Character, soundLetsAGo), true, LOT_NONE }, + { "soundMamaMia", LVT_S32, offsetof(struct Character, soundMamaMia), true, LOT_NONE }, + { "soundOkeyDokey", LVT_S32, offsetof(struct Character, soundOkeyDokey), true, LOT_NONE }, + { "soundOnFire", LVT_S32, offsetof(struct Character, soundOnFire), true, LOT_NONE }, + { "soundOoof", LVT_S32, offsetof(struct Character, soundOoof), true, LOT_NONE }, + { "soundOoof2", LVT_S32, offsetof(struct Character, soundOoof2), true, LOT_NONE }, + { "soundPanting", LVT_S32, offsetof(struct Character, soundPanting), true, LOT_NONE }, + { "soundPantingCold", LVT_S32, offsetof(struct Character, soundPantingCold), true, LOT_NONE }, + { "soundPressStartToPlay", LVT_S32, offsetof(struct Character, soundPressStartToPlay), true, LOT_NONE }, + { "soundPunchHoo", LVT_S32, offsetof(struct Character, soundPunchHoo), true, LOT_NONE }, + { "soundPunchWah", LVT_S32, offsetof(struct Character, soundPunchWah), true, LOT_NONE }, + { "soundPunchYah", LVT_S32, offsetof(struct Character, soundPunchYah), true, LOT_NONE }, + { "soundSnoring1", LVT_S32, offsetof(struct Character, soundSnoring1), true, LOT_NONE }, + { "soundSnoring2", LVT_S32, offsetof(struct Character, soundSnoring2), true, LOT_NONE }, + { "soundSnoring3", LVT_S32, offsetof(struct Character, soundSnoring3), true, LOT_NONE }, + { "soundSoLongaBowser", LVT_S32, offsetof(struct Character, soundSoLongaBowser), true, LOT_NONE }, + { "soundTwirlBounce", LVT_S32, offsetof(struct Character, soundTwirlBounce), true, LOT_NONE }, + { "soundUh", LVT_S32, offsetof(struct Character, soundUh), true, LOT_NONE }, + { "soundUh2", LVT_S32, offsetof(struct Character, soundUh2), true, LOT_NONE }, + { "soundUh2_2", LVT_S32, offsetof(struct Character, soundUh2_2), true, LOT_NONE }, + { "soundWaaaooow", LVT_S32, offsetof(struct Character, soundWaaaooow), true, LOT_NONE }, + { "soundWah2", LVT_S32, offsetof(struct Character, soundWah2), true, LOT_NONE }, + { "soundWhoa", LVT_S32, offsetof(struct Character, soundWhoa), true, LOT_NONE }, + { "soundYahWahHoo", LVT_S32, offsetof(struct Character, soundYahWahHoo), true, LOT_NONE }, + { "soundYahoo", LVT_S32, offsetof(struct Character, soundYahoo), true, LOT_NONE }, + { "soundYahooWahaYippee", LVT_S32, offsetof(struct Character, soundYahooWahaYippee), true, LOT_NONE }, + { "soundYawning", LVT_S32, offsetof(struct Character, soundYawning), true, LOT_NONE }, + { "torsoRotMult", LVT_F32, offsetof(struct Character, torsoRotMult), true, LOT_NONE }, + { "type", LVT_S32, offsetof(struct Character, type), true, LOT_NONE }, }; #define LUA_CONTROLLER_FIELD_COUNT 10 diff --git a/src/pc/lua/smlua_constants_autogen.c b/src/pc/lua/smlua_constants_autogen.c index 6f747c716..550f54abc 100644 --- a/src/pc/lua/smlua_constants_autogen.c +++ b/src/pc/lua/smlua_constants_autogen.c @@ -1772,6 +1772,217 @@ char gSmluaConstants[] = "" "MARIO_ANIM_RETURN_FROM_STAR_DANCE = 206\n" "MARIO_ANIM_FORWARD_SPINNING_FLIP = 207\n" "MARIO_ANIM_TRIPLE_JUMP_FLY = 208\n" +"WALUIGI_ANIM_WALKING = 209\n" +"WALUIGI_ANIM_RUNNING = 210\n" +"CHAR_ANIM_SLOW_LEDGE_GRAB = 0\n" +"CHAR_ANIM_FALL_OVER_BACKWARDS = 1\n" +"CHAR_ANIM_BACKWARD_AIR_KB = 2\n" +"CHAR_ANIM_DYING_ON_BACK = 3\n" +"CHAR_ANIM_BACKFLIP = 4\n" +"CHAR_ANIM_CLIMB_UP_POLE = 5\n" +"CHAR_ANIM_GRAB_POLE_SHORT = 6\n" +"CHAR_ANIM_GRAB_POLE_SWING_PART1 = 7\n" +"CHAR_ANIM_GRAB_POLE_SWING_PART2 = 8\n" +"CHAR_ANIM_HANDSTAND_IDLE = 9\n" +"CHAR_ANIM_HANDSTAND_JUMP = 10\n" +"CHAR_ANIM_START_HANDSTAND = 11\n" +"CHAR_ANIM_RETURN_FROM_HANDSTAND = 12\n" +"CHAR_ANIM_IDLE_ON_POLE = 13\n" +"CHAR_ANIM_A_POSE = 14\n" +"CHAR_ANIM_SKID_ON_GROUND = 15\n" +"CHAR_ANIM_STOP_SKID = 16\n" +"CHAR_ANIM_CROUCH_FROM_FAST_LONGJUMP = 17\n" +"CHAR_ANIM_CROUCH_FROM_SLOW_LONGJUMP = 18\n" +"CHAR_ANIM_FAST_LONGJUMP = 19\n" +"CHAR_ANIM_SLOW_LONGJUMP = 20\n" +"CHAR_ANIM_AIRBORNE_ON_STOMACH = 21\n" +"CHAR_ANIM_WALK_WITH_LIGHT_OBJ = 22\n" +"CHAR_ANIM_RUN_WITH_LIGHT_OBJ = 23\n" +"CHAR_ANIM_SLOW_WALK_WITH_LIGHT_OBJ = 24\n" +"CHAR_ANIM_SHIVERING_WARMING_HAND = 25\n" +"CHAR_ANIM_SHIVERING_RETURN_TO_IDLE = 26\n" +"CHAR_ANIM_SHIVERING = 27\n" +"CHAR_ANIM_CLIMB_DOWN_LEDGE = 28\n" +"CHAR_ANIM_CREDITS_WAVING = 29\n" +"CHAR_ANIM_CREDITS_LOOK_UP = 30\n" +"CHAR_ANIM_CREDITS_RETURN_FROM_LOOK_UP = 31\n" +"CHAR_ANIM_CREDITS_RAISE_HAND = 32\n" +"CHAR_ANIM_CREDITS_LOWER_HAND = 33\n" +"CHAR_ANIM_CREDITS_TAKE_OFF_CAP = 34\n" +"CHAR_ANIM_CREDITS_START_WALK_LOOK_UP = 35\n" +"CHAR_ANIM_CREDITS_LOOK_BACK_THEN_RUN = 36\n" +"CHAR_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN = 37\n" +"CHAR_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF = 38\n" +"CHAR_ANIM_CREDITS_PEACE_SIGN = 39\n" +"CHAR_ANIM_STAND_UP_FROM_LAVA_BOOST = 40\n" +"CHAR_ANIM_FIRE_LAVA_BURN = 41\n" +"CHAR_ANIM_WING_CAP_FLY = 42\n" +"CHAR_ANIM_HANG_ON_OWL = 43\n" +"CHAR_ANIM_LAND_ON_STOMACH = 44\n" +"CHAR_ANIM_AIR_FORWARD_KB = 45\n" +"CHAR_ANIM_DYING_ON_STOMACH = 46\n" +"CHAR_ANIM_SUFFOCATING = 47\n" +"CHAR_ANIM_COUGHING = 48\n" +"CHAR_ANIM_THROW_CATCH_KEY = 49\n" +"CHAR_ANIM_DYING_FALL_OVER = 50\n" +"CHAR_ANIM_IDLE_ON_LEDGE = 51\n" +"CHAR_ANIM_FAST_LEDGE_GRAB = 52\n" +"CHAR_ANIM_HANG_ON_CEILING = 53\n" +"CHAR_ANIM_PUT_CAP_ON = 54\n" +"CHAR_ANIM_TAKE_CAP_OFF_THEN_ON = 55\n" +"CHAR_ANIM_QUICKLY_PUT_CAP_ON = 56\n" +"CHAR_ANIM_HEAD_STUCK_IN_GROUND = 57\n" +"CHAR_ANIM_GROUND_POUND_LANDING = 58\n" +"CHAR_ANIM_TRIPLE_JUMP_GROUND_POUND = 59\n" +"CHAR_ANIM_START_GROUND_POUND = 60\n" +"CHAR_ANIM_GROUND_POUND = 61\n" +"CHAR_ANIM_BOTTOM_STUCK_IN_GROUND = 62\n" +"CHAR_ANIM_IDLE_WITH_LIGHT_OBJ = 63\n" +"CHAR_ANIM_JUMP_LAND_WITH_LIGHT_OBJ = 64\n" +"CHAR_ANIM_JUMP_WITH_LIGHT_OBJ = 65\n" +"CHAR_ANIM_FALL_LAND_WITH_LIGHT_OBJ = 66\n" +"CHAR_ANIM_FALL_WITH_LIGHT_OBJ = 67\n" +"CHAR_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ = 68\n" +"CHAR_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ = 69\n" +"CHAR_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ = 70\n" +"CHAR_ANIM_RIDING_SHELL = 71\n" +"CHAR_ANIM_WALKING = 72\n" +"CHAR_ANIM_FORWARD_FLIP = 73\n" +"CHAR_ANIM_JUMP_RIDING_SHELL = 74\n" +"CHAR_ANIM_LAND_FROM_DOUBLE_JUMP = 75\n" +"CHAR_ANIM_DOUBLE_JUMP_FALL = 76\n" +"CHAR_ANIM_SINGLE_JUMP = 77\n" +"CHAR_ANIM_LAND_FROM_SINGLE_JUMP = 78\n" +"CHAR_ANIM_AIR_KICK = 79\n" +"CHAR_ANIM_DOUBLE_JUMP_RISE = 80\n" +"CHAR_ANIM_START_FORWARD_SPINNING = 81\n" +"CHAR_ANIM_THROW_LIGHT_OBJECT = 82\n" +"CHAR_ANIM_FALL_FROM_SLIDE_KICK = 83\n" +"CHAR_ANIM_BEND_KNESS_RIDING_SHELL = 84\n" +"CHAR_ANIM_LEGS_STUCK_IN_GROUND = 85\n" +"CHAR_ANIM_GENERAL_FALL = 86\n" +"CHAR_ANIM_GENERAL_LAND = 87\n" +"CHAR_ANIM_BEING_GRABBED = 88\n" +"CHAR_ANIM_GRAB_HEAVY_OBJECT = 89\n" +"CHAR_ANIM_SLOW_LAND_FROM_DIVE = 90\n" +"CHAR_ANIM_FLY_FROM_CANNON = 91\n" +"CHAR_ANIM_MOVE_ON_WIRE_NET_RIGHT = 92\n" +"CHAR_ANIM_MOVE_ON_WIRE_NET_LEFT = 93\n" +"CHAR_ANIM_MISSING_CAP = 94\n" +"CHAR_ANIM_PULL_DOOR_WALK_IN = 95\n" +"CHAR_ANIM_PUSH_DOOR_WALK_IN = 96\n" +"CHAR_ANIM_UNLOCK_DOOR = 97\n" +"CHAR_ANIM_START_REACH_POCKET = 98\n" +"CHAR_ANIM_REACH_POCKET = 99\n" +"CHAR_ANIM_STOP_REACH_POCKET = 100\n" +"CHAR_ANIM_GROUND_THROW = 101\n" +"CHAR_ANIM_GROUND_KICK = 102\n" +"CHAR_ANIM_FIRST_PUNCH = 103\n" +"CHAR_ANIM_SECOND_PUNCH = 104\n" +"CHAR_ANIM_FIRST_PUNCH_FAST = 105\n" +"CHAR_ANIM_SECOND_PUNCH_FAST = 106\n" +"CHAR_ANIM_PICK_UP_LIGHT_OBJ = 107\n" +"CHAR_ANIM_PUSHING = 108\n" +"CHAR_ANIM_START_RIDING_SHELL = 109\n" +"CHAR_ANIM_PLACE_LIGHT_OBJ = 110\n" +"CHAR_ANIM_FORWARD_SPINNING = 111\n" +"CHAR_ANIM_BACKWARD_SPINNING = 112\n" +"CHAR_ANIM_BREAKDANCE = 113\n" +"CHAR_ANIM_RUNNING = 114\n" +"CHAR_ANIM_RUNNING_UNUSED = 115\n" +"CHAR_ANIM_SOFT_BACK_KB = 116\n" +"CHAR_ANIM_SOFT_FRONT_KB = 117\n" +"CHAR_ANIM_DYING_IN_QUICKSAND = 118\n" +"CHAR_ANIM_IDLE_IN_QUICKSAND = 119\n" +"CHAR_ANIM_MOVE_IN_QUICKSAND = 120\n" +"CHAR_ANIM_ELECTROCUTION = 121\n" +"CHAR_ANIM_SHOCKED = 122\n" +"CHAR_ANIM_BACKWARD_KB = 123\n" +"CHAR_ANIM_FORWARD_KB = 124\n" +"CHAR_ANIM_IDLE_HEAVY_OBJ = 125\n" +"CHAR_ANIM_STAND_AGAINST_WALL = 126\n" +"CHAR_ANIM_SIDESTEP_LEFT = 127\n" +"CHAR_ANIM_SIDESTEP_RIGHT = 128\n" +"CHAR_ANIM_START_SLEEP_IDLE = 129\n" +"CHAR_ANIM_START_SLEEP_SCRATCH = 130\n" +"CHAR_ANIM_START_SLEEP_YAWN = 131\n" +"CHAR_ANIM_START_SLEEP_SITTING = 132\n" +"CHAR_ANIM_SLEEP_IDLE = 133\n" +"CHAR_ANIM_SLEEP_START_LYING = 134\n" +"CHAR_ANIM_SLEEP_LYING = 135\n" +"CHAR_ANIM_DIVE = 136\n" +"CHAR_ANIM_SLIDE_DIVE = 137\n" +"CHAR_ANIM_GROUND_BONK = 138\n" +"CHAR_ANIM_STOP_SLIDE_LIGHT_OBJ = 139\n" +"CHAR_ANIM_SLIDE_KICK = 140\n" +"CHAR_ANIM_CROUCH_FROM_SLIDE_KICK = 141\n" +"CHAR_ANIM_SLIDE_MOTIONLESS = 142\n" +"CHAR_ANIM_STOP_SLIDE = 143\n" +"CHAR_ANIM_FALL_FROM_SLIDE = 144\n" +"CHAR_ANIM_SLIDE = 145\n" +"CHAR_ANIM_TIPTOE = 146\n" +"CHAR_ANIM_TWIRL_LAND = 147\n" +"CHAR_ANIM_TWIRL = 148\n" +"CHAR_ANIM_START_TWIRL = 149\n" +"CHAR_ANIM_STOP_CROUCHING = 150\n" +"CHAR_ANIM_START_CROUCHING = 151\n" +"CHAR_ANIM_CROUCHING = 152\n" +"CHAR_ANIM_CRAWLING = 153\n" +"CHAR_ANIM_STOP_CRAWLING = 154\n" +"CHAR_ANIM_START_CRAWLING = 155\n" +"CHAR_ANIM_SUMMON_STAR = 156\n" +"CHAR_ANIM_RETURN_STAR_APPROACH_DOOR = 157\n" +"CHAR_ANIM_BACKWARDS_WATER_KB = 158\n" +"CHAR_ANIM_SWIM_WITH_OBJ_PART1 = 159\n" +"CHAR_ANIM_SWIM_WITH_OBJ_PART2 = 160\n" +"CHAR_ANIM_FLUTTERKICK_WITH_OBJ = 161\n" +"CHAR_ANIM_WATER_ACTION_END_WITH_OBJ = 162\n" +"CHAR_ANIM_STOP_GRAB_OBJ_WATER = 163\n" +"CHAR_ANIM_WATER_IDLE_WITH_OBJ = 164\n" +"CHAR_ANIM_DROWNING_PART1 = 165\n" +"CHAR_ANIM_DROWNING_PART2 = 166\n" +"CHAR_ANIM_WATER_DYING = 167\n" +"CHAR_ANIM_WATER_FORWARD_KB = 168\n" +"CHAR_ANIM_FALL_FROM_WATER = 169\n" +"CHAR_ANIM_SWIM_PART1 = 170\n" +"CHAR_ANIM_SWIM_PART2 = 171\n" +"CHAR_ANIM_FLUTTERKICK = 172\n" +"CHAR_ANIM_WATER_ACTION_END = 173\n" +"CHAR_ANIM_WATER_PICK_UP_OBJ = 174\n" +"CHAR_ANIM_WATER_GRAB_OBJ_PART2 = 175\n" +"CHAR_ANIM_WATER_GRAB_OBJ_PART1 = 176\n" +"CHAR_ANIM_WATER_THROW_OBJ = 177\n" +"CHAR_ANIM_WATER_IDLE = 178\n" +"CHAR_ANIM_WATER_STAR_DANCE = 179\n" +"CHAR_ANIM_RETURN_FROM_WATER_STAR_DANCE = 180\n" +"CHAR_ANIM_GRAB_BOWSER = 181\n" +"CHAR_ANIM_SWINGING_BOWSER = 182\n" +"CHAR_ANIM_RELEASE_BOWSER = 183\n" +"CHAR_ANIM_HOLDING_BOWSER = 184\n" +"CHAR_ANIM_HEAVY_THROW = 185\n" +"CHAR_ANIM_WALK_PANTING = 186\n" +"CHAR_ANIM_WALK_WITH_HEAVY_OBJ = 187\n" +"CHAR_ANIM_TURNING_PART1 = 188\n" +"CHAR_ANIM_TURNING_PART2 = 189\n" +"CHAR_ANIM_SLIDEFLIP_LAND = 190\n" +"CHAR_ANIM_SLIDEFLIP = 191\n" +"CHAR_ANIM_TRIPLE_JUMP_LAND = 192\n" +"CHAR_ANIM_TRIPLE_JUMP = 193\n" +"CHAR_ANIM_FIRST_PERSON = 194\n" +"CHAR_ANIM_IDLE_HEAD_LEFT = 195\n" +"CHAR_ANIM_IDLE_HEAD_RIGHT = 196\n" +"CHAR_ANIM_IDLE_HEAD_CENTER = 197\n" +"CHAR_ANIM_HANDSTAND_LEFT = 198\n" +"CHAR_ANIM_HANDSTAND_RIGHT = 199\n" +"CHAR_ANIM_WAKE_FROM_SLEEP = 200\n" +"CHAR_ANIM_WAKE_FROM_LYING = 201\n" +"CHAR_ANIM_START_TIPTOE = 202\n" +"CHAR_ANIM_SLIDEJUMP = 203\n" +"CHAR_ANIM_START_WALLKICK = 204\n" +"CHAR_ANIM_STAR_DANCE = 205\n" +"CHAR_ANIM_RETURN_FROM_STAR_DANCE = 206\n" +"CHAR_ANIM_FORWARD_SPINNING_FLIP = 207\n" +"CHAR_ANIM_TRIPLE_JUMP_FLY = 208\n" "MARIO_EYES_BLINK = 0\n" "MARIO_EYES_OPEN = 1\n" "MARIO_EYES_HALF_CLOSED = 2\n" diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index 643bfe046..60c2172c4 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -14422,6 +14422,46 @@ int smlua_func_set_anim_to_frame(lua_State* L) { return 1; } +int smlua_func_set_character_anim_with_accel(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 3) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "set_character_anim_with_accel", 3, top); + return 0; + } + + struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "set_character_anim_with_accel"); return 0; } + s32 targetAnimID = smlua_to_integer(L, 2); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "set_character_anim_with_accel"); return 0; } + s32 accel = smlua_to_integer(L, 3); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "set_character_anim_with_accel"); return 0; } + + lua_pushinteger(L, set_character_anim_with_accel(m, targetAnimID, accel)); + + return 1; +} + +int smlua_func_set_character_animation(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 2) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "set_character_animation", 2, top); + return 0; + } + + struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "set_character_animation"); return 0; } + s32 targetAnimID = smlua_to_integer(L, 2); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "set_character_animation"); return 0; } + + lua_pushinteger(L, set_character_animation(m, targetAnimID)); + + return 1; +} + int smlua_func_set_jump_from_landing(lua_State* L) { if (L == NULL) { return 0; } @@ -31712,6 +31752,8 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "resolve_and_return_wall_collisions_data", smlua_func_resolve_and_return_wall_collisions_data); smlua_bind_function(L, "return_mario_anim_y_translation", smlua_func_return_mario_anim_y_translation); smlua_bind_function(L, "set_anim_to_frame", smlua_func_set_anim_to_frame); + smlua_bind_function(L, "set_character_anim_with_accel", smlua_func_set_character_anim_with_accel); + smlua_bind_function(L, "set_character_animation", smlua_func_set_character_animation); smlua_bind_function(L, "set_jump_from_landing", smlua_func_set_jump_from_landing); smlua_bind_function(L, "set_jumping_action", smlua_func_set_jumping_action); smlua_bind_function(L, "set_mario_action", smlua_func_set_mario_action);