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