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