Character Animation System (#441)

Replaces references to set_mario_animation() with set_character_animation(), but the old function still exists as a way to play any character animation on any character. Waluigi has two animations, added as a test and may not be final. Exposed new functions to Lua for usage in mods.
Primary concern is that each character requires 209 lines indicating what animations they use, similar to Character Sounds.
This commit is contained in:
Keeberghrh 2023-10-28 01:43:45 +01:00 committed by GitHub
parent c9e4efdb31
commit e02a68e221
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 4864 additions and 419 deletions

461
assets/anims/anim_D1.inc.c Normal file
View file

@ -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,
};

412
assets/anims/anim_D2.inc.c Normal file
View file

@ -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,
};

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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:](#)

View file

@ -4611,6 +4611,49 @@
<br />
## [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:](#)
<br />
## [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:](#)
<br />
## [set_jump_from_landing](#set_jump_from_landing)
### Lua Example

View file

@ -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)

View file

@ -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 |

View file

@ -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

File diff suppressed because it is too large Load diff

View file

@ -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;

View file

@ -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.
*/

View file

@ -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);

View file

@ -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);

View file

@ -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];

View file

@ -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;

View file

@ -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;
//s16 animID = m->marioObj->header.gfx.animInfo.animID;
if (animID == MARIO_ANIM_WALKING || animID == MARIO_ANIM_RUNNING) {
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;
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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);

View file

@ -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

View file

@ -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"

View file

@ -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);