diff --git a/config/splat.us.weapon.yaml b/config/splat.us.weapon.yaml index 2f11df273f..87d7f3a86d 100644 --- a/config/splat.us.weapon.yaml +++ b/config/splat.us.weapon.yaml @@ -998,7 +998,7 @@ segments: subsegments: - [0x170040, animset, w_052_1] - [0x170808, animset, w_052_2] - - [0x170808, data, w_052] + - [0x170808, .data, w_052] - [0x170C24, .rodata, w_052] - [0x170CB0, c, w_052] - [0x172B84, sbss, w_052] diff --git a/src/weapon/w_052.c b/src/weapon/w_052.c index 9dc974e8e9..911277ac86 100644 --- a/src/weapon/w_052.c +++ b/src/weapon/w_052.c @@ -10,13 +10,164 @@ extern s32 g_HandId; #define g_Animset2 w_052_2 #include "sfx.h" +static u16 D_170000_8017A808[] = { + 0x0000, 0x9063, 0x8297, 0xB33F, 0x800F, 0x8016, 0x843C, 0xA11F, 0x9CC6, + 0xAD29, 0xB98C, 0xC5EF, 0xD252, 0xE2B5, 0xEF18, 0xFB9C, 0x0000, 0x8421, + 0x8444, 0x8467, 0x84AB, 0x88ED, 0x8D30, 0x9573, 0x9994, 0x9DB6, 0xA1F7, + 0xA619, 0xE2F4, 0xAE7C, 0xCA52, 0xB6DF, 0x0000, 0x8421, 0xA86A, 0xB8CD, + 0xCD6F, 0xE24F, 0x8D2F, 0x91D6, 0x929B, 0x9084, 0x9D08, 0xA96C, 0xB9F0, + 0xC654, 0xD2D8, 0xE35C, 0x0000, 0x8421, 0x98A3, 0xAD2A, 0xCA52, 0xAC61, + 0xC503, 0xD9A7, 0xE2AF, 0x9084, 0x9D08, 0xA96C, 0xB9F0, 0x801F, 0xD2D8, + 0xE35C, 0x0000, 0x8822, 0x83E0, 0xECE5, 0xF68A, 0x8048, 0x884C, 0x88B5, + 0x8D39, 0x821C, 0x9CA4, 0xAD29, 0xBDAD, 0xD231, 0xE6B5, 0xEB7A, 0x0000, + 0x9821, 0x8D2F, 0x9594, 0xA219, 0x92FF, 0x9099, 0x98DF, 0xB4E8, 0x9084, + 0xA109, 0xAD6C, 0xBA11, 0xC654, 0xD2D8, 0xE35C, 0x0000, 0x8421, 0x9084, + 0xA8E5, 0xC146, 0xFF53, 0x9084, 0x9084, 0x9084, 0x9084, 0x9084, 0x9084, + 0x9084, 0x9084, 0x9084, 0x9084, 0x0000, 0x9509, 0x8842, 0x98C7, 0xA508, + 0xB16B, 0xBDCD, 0xD292, 0xE316, 0xF379, 0x88C2, 0x98E4, 0xA164, 0x84CA, + 0x9191, 0xAA34, 0x0000, 0x8421, 0x9007, 0x9869, 0x94A7, 0x990B, 0x8D2F, + 0x91D6, 0x929B, 0x9084, 0x9D08, 0xA96C, 0xB9F0, 0xC654, 0xD2D8, 0xE35C, + 0x0000, 0xB31C, 0x8219, 0x80F6, 0x800E, 0x80A0, 0x9D80, 0xC5A0, 0xCEA0, + 0x8421, 0x806A, 0x8151, 0x8299, 0xB18C, 0xD294, 0x8019, 0x0000, 0xD717, + 0xC272, 0xB5EE, 0x9D4B, 0x98C8, 0x8C85, 0x8842, 0x90E2, 0xA546, 0xDAD6, + 0x8CA9, 0x9953, 0x99B6, 0xA659, 0xF39C, 0x0000, 0x8421, 0x90A5, 0xA12A, + 0xB1AE, 0xC233, 0xD2D8, 0x908B, 0x8013, 0x801F, 0x9D70, 0xA6FE, 0xAF5F, + 0x921D, 0x965D, 0x9EBE, +}; + +static AnimationFrame D_170000_8017A988[] = {{2, FRAME(1, 2)}, A_LOOP_AT(0)}; + +static AnimationFrame D_170000_8017A990[] = { + {2, FRAME(0x02, 0x04)}, + A_LOOP_AT(0), +}; + +static AnimationFrame D_170000_8017A998[] = { + {2, FRAME(0x03, 0x06)}, {2, FRAME(0x04, 0x06)}, {2, FRAME(0x05, 0x06)}, + {2, FRAME(0x06, 0x06)}, {2, FRAME(0x07, 0x06)}, {2, FRAME(0x08, 0x06)}, + {2, FRAME(0x09, 0x08)}, {2, FRAME(0x0A, 0x02)}, {2, FRAME(0x0B, 0x02)}, + {2, FRAME(0x0C, 0x02)}, A_LOOP_AT(0), +}; + +static AnimationFrame D_170000_8017A9C4[] = { + {3, FRAME(0x0D, 0x02)}, {3, FRAME(0x0E, 0x0E)}, {3, FRAME(0x0F, 0x10)}, + {3, FRAME(0x10, 0x12)}, {3, FRAME(0x11, 0x14)}, {3, FRAME(0x12, 0x16)}, + {3, FRAME(0x13, 0x18)}, {3, FRAME(0x14, 0x1A)}, {3, FRAME(0x15, 0x1C)}, + {3, FRAME(0x16, 0x1A)}, {3, FRAME(0x17, 0x18)}, {3, FRAME(0x18, 0x16)}, + {3, FRAME(0x19, 0x14)}, {3, FRAME(0x1A, 0x12)}, {3, FRAME(0x1B, 0x10)}, + {3, FRAME(0x1C, 0x0E)}, A_LOOP_AT(0), +}; + +static AnimationFrame D_170000_8017AA08[] = { + {1, FRAME(0x24, 0x02)}, {1, FRAME(0x25, 0x02)}, {1, FRAME(0x26, 0x02)}, + {1, FRAME(0x27, 0x02)}, {1, FRAME(0x28, 0x02)}, {1, FRAME(0x29, 0x02)}, + {1, FRAME(0x2A, 0x02)}, {1, FRAME(0x2B, 0x02)}, {1, FRAME(0x2C, 0x02)}, + {1, FRAME(0x2D, 0x02)}, {1, FRAME(0x2E, 0x02)}, {1, FRAME(0x2F, 0x02)}, + {1, FRAME(0x30, 0x02)}, A_LOOP_AT(0), +}; + +static AnimationFrame D_170000_8017AA40[] = { + {1, FRAME(0x2A, 0x02)}, {1, FRAME(0x2B, 0x02)}, {1, FRAME(0x2C, 0x02)}, + {1, FRAME(0x2D, 0x02)}, {1, FRAME(0x2E, 0x02)}, {1, FRAME(0x2F, 0x02)}, + {1, FRAME(0x30, 0x02)}, A_LOOP_AT(0), +}; + +static AnimationFrame D_170000_8017AA60[] = { + {2, FRAME(0x21, 0x02)}, {2, FRAME(0x22, 0x02)}, {2, FRAME(0x23, 0x02)}, + {2, FRAME(0x24, 0x02)}, {2, FRAME(0x25, 0x02)}, {2, FRAME(0x26, 0x02)}, + {2, FRAME(0x27, 0x02)}, {2, FRAME(0x28, 0x02)}, {2, FRAME(0x29, 0x02)}, + {2, FRAME(0x2A, 0x02)}, {2, FRAME(0x2B, 0x02)}, {2, FRAME(0x2C, 0x02)}, + {2, FRAME(0x2D, 0x02)}, {2, FRAME(0x2E, 0x02)}, {2, FRAME(0x2F, 0x02)}, + {2, FRAME(0x30, 0x02)}, A_LOOP_AT(0), +}; + +static AnimationFrame D_170000_8017AAA4[] = { + {2, FRAME(0x31, 0x02)}, + {2, FRAME(0x32, 0x02)}, + {2, FRAME(0x33, 0x02)}, + A_END, +}; + +static AnimationFrame D_170000_8017AAB4[] = { + {2, FRAME(0x34, 0x04)}, + {2, FRAME(0x35, 0x04)}, + {2, FRAME(0x36, 0x04)}, + A_END, +}; + +static AnimationFrame D_170000_8017AAC4[] = { + {2, FRAME(0x33, 0x02)}, + {2, FRAME(0x32, 0x02)}, + {2, FRAME(0x31, 0x02)}, + A_END, +}; + +static AnimationFrame D_170000_8017AAD4[] = { + {2, FRAME(0x36, 0x04)}, + {2, FRAME(0x35, 0x04)}, + {2, FRAME(0x34, 0x04)}, + A_END, +}; + +static AnimationFrame D_170000_8017AAE4[] = { + {4, FRAME(0x1D, 0x02)}, + {4, FRAME(0x1E, 0x02)}, + A_LOOP_AT(0), +}; + +static AnimationFrame D_170000_8017AAF0[] = { + {2, FRAME(0x1F, 0x0C)}, + {2, FRAME(0x20, 0x0C)}, + A_LOOP_AT(0), +}; + +static AnimationFrame D_170000_8017AAFC[] = { + {3, FRAME(0x37, 0x22)}, {3, FRAME(0x38, 0x22)}, {3, FRAME(0x38, 0x22)}, + {3, FRAME(0x38, 0x20)}, {3, FRAME(0x38, 0x1E)}, {3, FRAME(0x39, 0x02)}, + {3, FRAME(0x3A, 0x02)}, {3, FRAME(0x3B, 0x02)}, {3, FRAME(0x3C, 0x02)}, + {3, FRAME(0x3D, 0x02)}, {3, FRAME(0x01, 0x02)}, {3, FRAME(0x01, 0x02)}, + {3, FRAME(0x01, 0x02)}, {3, FRAME(0x01, 0x02)}, {3, FRAME(0x01, 0x02)}, + A_LOOP_AT(0), +}; + +static s8 D_170000_8017AB3C[] = { + 0x00, 0x00, 0x00, 0x00, 0x0E, 0xF9, 0x04, 0x0C, 0x0E, 0x0D, 0x04, 0x0C, + 0xF5, 0xF9, 0x04, 0x0C, 0x01, 0xFB, 0x04, 0x0C, 0xE0, 0xE1, 0x00, 0x00, + 0x16, 0xFA, 0x04, 0x0C, 0x0F, 0xFA, 0x04, 0x0C, 0x10, 0xFB, 0x04, 0x0C, + 0x11, 0xFC, 0x04, 0x0C, 0x12, 0xFD, 0x04, 0x0C, 0x13, 0xFE, 0x04, 0x0C, + 0x14, 0xFF, 0x04, 0x0C, 0x15, 0x00, 0x04, 0x0C, 0x16, 0x01, 0x04, 0x0C, + 0x0C, 0xFB, 0x04, 0x0C, 0x0A, 0xFD, 0x04, 0x0C, 0x08, 0xFF, 0x04, 0x0C, +}; + +static AnimationFrame* D_170000_8017AB84[] = { + &D_170000_8017A988, &D_170000_8017A990, &D_170000_8017AAF0, + &D_170000_8017AAFC, &D_170000_8017AAE4, &D_170000_8017AA60, + &D_170000_8017AA40, &D_170000_8017AA08, &D_170000_8017A9C4, + &D_170000_8017A998, &D_170000_8017AAA4, &D_170000_8017AAB4, + &D_170000_8017AAC4, &D_170000_8017AAD4, +}; + +static s32 D_170000_8017ABBC = 0; +static s32 D_170000_8017ABC0 = 0; + +static u8 D_170000_8017ABC4[] = { + 0x00, 0x30, 0x17, 0x4F, 0x18, 0x30, 0x2F, 0x4F, 0x30, 0x30, 0x47, + 0x4F, 0x48, 0x30, 0x5F, 0x4F, 0x60, 0x30, 0x77, 0x4F, 0x00, 0x50, + 0x17, 0x6F, 0x50, 0x18, 0x67, 0x2F, 0x18, 0x50, 0x2F, 0x6F, 0x30, + 0x50, 0x47, 0x6F, 0x48, 0x50, 0x5F, 0x6F, 0x60, 0x50, 0x77, 0x6F, +}; + +static u8 D_170000_8017ABF0[] = { + 0x80, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x80, 0x80, 0x00, + 0x00, 0x80, 0x80, 0x40, 0x00, 0x80, 0x80, 0x80, 0x00, 0x40, 0x80, + 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, +}; + +static u16* g_WeaponCluts[] = {&D_170000_8017A808}; +static s32 g_HandId = HAND_ID; + extern SpriteParts D_170000_8017A040[]; -extern s8 D_170000_8017AB3C[]; -extern AnimationFrame* D_170000_8017AB84[]; -extern s32 D_170000_8017ABBC; -extern s32 D_170000_8017ABC0; -extern u8 D_170000_8017ABC4[]; -extern u8 D_170000_8017ABF0[]; extern s32 D_170000_8017CB84; extern s16 D_170000_8017CB88[];