diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f578ef59..8cbf69775 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -336,6 +336,7 @@ set(SOURCE_FILES_WEAPON src/weapon/w_007.c src/weapon/w_012.c src/weapon/w_034.c + src/weapon/w_037.c src/weapon/w_041.c src/weapon/w_045.c src/weapon/w_046.c @@ -349,6 +350,7 @@ set_source_files_properties(src/weapon/w_002.c PROPERTIES COMPILE_DEFINITIONS WE set_source_files_properties(src/weapon/w_007.c PROPERTIES COMPILE_DEFINITIONS WEAPON_ID=w_007) set_source_files_properties(src/weapon/w_012.c PROPERTIES COMPILE_DEFINITIONS WEAPON_ID=w_012) set_source_files_properties(src/weapon/w_034.c PROPERTIES COMPILE_DEFINITIONS WEAPON_ID=w_034) +set_source_files_properties(src/weapon/w_037.c PROPERTIES COMPILE_DEFINITIONS WEAPON_ID=w_037) set_source_files_properties(src/weapon/w_041.c PROPERTIES COMPILE_DEFINITIONS WEAPON_ID=w_041) set_source_files_properties(src/weapon/w_045.c PROPERTIES COMPILE_DEFINITIONS WEAPON_ID=w_045) set_source_files_properties(src/weapon/w_046.c PROPERTIES COMPILE_DEFINITIONS WEAPON_ID=w_046) diff --git a/config/splat.us.weapon.yaml b/config/splat.us.weapon.yaml index e700f79d5..fc8975037 100644 --- a/config/splat.us.weapon.yaml +++ b/config/splat.us.weapon.yaml @@ -266,7 +266,7 @@ segments: - [0x582B0, animset, w_012_2] - [0x582B0, .data, w_012] - [0x58ACC, c, w_012] - - [0x59B28, sbss, w_012] + - [0x59B28, .bss, w_012] - name: f_013 type: grey4 start: 0x5B000 @@ -726,9 +726,9 @@ segments: subsegments: - [0x107040, animset, w_037_1] - [0x107504, animset, w_037_2] - - [0x107504, data, w_037] + - [0x107504, .data, w_037] - [0x1077C4, c, w_037] - - [0x108BE4, sbss, w_037] + - [0x108BE4, .bss, w_037] - name: f_038 type: grey4 start: 0x10A000 @@ -801,7 +801,7 @@ segments: - [0x123284, .data, w_041] - [0x123560, .rodata, w_041] - [0x123574, c, w_041] - - [0x124200, sbss, w_041] + - [0x124200, .bss, w_041] - name: f_042 type: grey4 start: 0x126000 @@ -1002,7 +1002,7 @@ segments: - [0x170808, .data, w_052] - [0x170C24, .rodata, w_052] - [0x170CB0, c, w_052] - - [0x172B84, sbss, w_052] + - [0x172B84, .bss, w_052] - name: f_053 type: grey4 start: 0x173000 diff --git a/include/weapon.h b/include/weapon.h index 8b8467424..790e9b0bc 100644 --- a/include/weapon.h +++ b/include/weapon.h @@ -27,3 +27,13 @@ typedef struct { #define N_WEAPON_PAL 12 extern u16 D_8006EDCC[2][N_WEAPON_PAL * PALETTE_LEN]; #endif + +#ifdef VERSION_PC +// LoadWeaponPalette reads a predetermined amount of bytes from the weapon +// palette, often going out of the array boundaries. This is not a problem on +// PSX, but on any other platform we need to force each weapon palette to be +// `N_ARRAY_PAL` long to account for the extra data read. +#define N_ARRAY_PAL LEN(*D_8006EDCC) +#else +#define N_ARRAY_PAL +#endif diff --git a/src/pc/weapon_pc.c b/src/pc/weapon_pc.c index af3ca6694..3fddf2700 100644 --- a/src/pc/weapon_pc.c +++ b/src/pc/weapon_pc.c @@ -63,19 +63,26 @@ static Weapon dummy_header = { extern Weapon w_000_header; extern Weapon w_002_header; +extern Weapon w_007_header; +extern Weapon w_012_header; +extern Weapon w_034_header; +extern Weapon w_037_header; +extern Weapon w_041_header; extern Weapon w_046_header; +extern Weapon w_051_header; +extern Weapon w_052_header; Weapon* g_Weapons[] = { &w_000_header, &dummy_header, &w_002_header, &dummy_header, &dummy_header, + &dummy_header, &dummy_header, &w_007_header, &dummy_header, &dummy_header, + &dummy_header, &dummy_header, &w_012_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, - &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, - &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, - &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, - &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, - &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, + &dummy_header, &dummy_header, &dummy_header, &dummy_header, &w_034_header, + &dummy_header, &dummy_header, &w_037_header, &dummy_header, &dummy_header, + &dummy_header, &w_041_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, &w_046_header, &dummy_header, &dummy_header, &dummy_header, - &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, + &dummy_header, &w_051_header, &w_052_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, &dummy_header, }; @@ -115,7 +122,6 @@ int readSubsetToBuf(char* filename, char* dest, size_t start, size_t size) { void HandleWeapon0Prg(int fileId) { memcpy(&D_8017A000, g_Weapons[fileId], sizeof(Weapon)); - // todo animsets } void HandleWeapon0Chr(int fileId) { diff --git a/src/weapon/shared.h b/src/weapon/shared.h index 69725308b..10661d162 100644 --- a/src/weapon/shared.h +++ b/src/weapon/shared.h @@ -20,12 +20,7 @@ static void LoadWeaponPalette(s32 clutIndex) { return; } - // I think dst is longer than src so this reads out of bounds -#ifndef VERSION_PC for (i = 0; i < LEN(*D_8006EDCC); i++) { -#else - for (i = 0; i < 112; i++) { -#endif *dst++ = *src++; } diff --git a/src/weapon/w_000.c b/src/weapon/w_000.c index 8b885ea0e..f9a93e84c 100644 --- a/src/weapon/w_000.c +++ b/src/weapon/w_000.c @@ -12,90 +12,81 @@ #define g_Animset2 w_000_2 #include "sfx.h" -static u16 g_Clut0[] = { - 0x0000, 0x8000, 0xA821, 0x9DC0, 0xA821, 0xA821, 0xA821, 0xA821, // 0 - 0x843F, 0xB0E4, 0x9CA4, 0x0000, 0x0000, 0x0000, 0xD294, 0xF2F3, - 0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0xED8C, 0xED8C, 0xED8C, // 1 - 0x843F, 0xBC00, 0xBC00, 0xED8C, 0xED8C, 0xED8C, 0xD294, 0xFFFF, - 0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0xE021, 0xE021, // 2 - 0x801F, 0x9C00, 0xB800, 0xE021, 0x0000, 0x0000, 0xD294, 0xEAD3, - 0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0xA0C0, 0x0000, // 3 - 0x843F, 0x0000, 0xA800, 0x0000, 0xF608, 0x0000, 0xD294, 0xE24C, - 0x0000, 0x8000, 0x9C00, 0x9DC0, 0x9C00, 0x9C00, 0x9C00, 0x9C00, // 4 - 0x843F, 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF2D1, - 0x0000, 0x8000, 0x0000, 0x9DC0, 0xD400, 0xD400, 0xD400, 0xD400, // 5 - 0x843F, 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C, - 0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0xCCA0, 0x0000, // 6 - 0x843F, 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xEA90, -}; - -static u16 g_Clut1[] = { - 0x0000, 0x8007, 0xAD6B, 0xAD6B, 0xAD6B, 0xAD6B, 0xAD6B, 0xAD6B, // 0 - 0x843F, 0xB148, 0xA928, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C, - 0x0000, 0x8007, 0x0000, 0x0000, 0x0000, 0xE717, 0xE717, 0xE717, // 1 - 0x843F, 0xA0E6, 0xA0E6, 0xE717, 0xE717, 0xE717, 0xD294, 0xF39C, - 0x0000, 0x8007, 0x0000, 0x9DC0, 0x0000, 0x0000, 0xB56A, 0xA927, // 2 - 0x801F, 0x9062, 0x98C6, 0xB148, 0x0000, 0x0000, 0xD294, 0xF39C, - 0x0000, 0x8007, 0x0000, 0x9DC0, 0x0000, 0x0000, 0xA4E6, 0x0000, // 3 - 0x843F, 0x0000, 0x9483, 0x0000, 0xA0C4, 0x0000, 0xD294, 0xF39C, - 0x0000, 0x8007, 0x98C6, 0x9DC0, 0x98C6, 0x98C6, 0x98C6, 0x98C6, // 4 - 0x843F, 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C, - 0x0000, 0x8007, 0x0000, 0x9DC0, 0xA94A, 0xA94A, 0xA94A, 0xA94A, // 5 - 0x843F, 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C, - 0x0000, 0x8007, 0x0000, 0x9DC0, 0x0000, 0x0000, 0x94A5, 0x0000, // 6 - 0x843F, 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xEB5A, -}; - -static u16 g_Clut2[] = { - 0x0000, 0x8000, 0x800F, 0x800F, 0x800F, 0x800F, 0x800F, 0x800F, // 0 - 0x83E0, 0x800F, 0x8CB4, 0x0000, 0x0000, 0x0000, 0xD294, 0xCF1C, - 0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0xA818, 0xB0B8, 0xAC38, // 1 - 0x83E0, 0x800E, 0x8450, 0x9418, 0x9418, 0x9818, 0xD294, 0xFFFF, - 0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0x8014, 0x940C, // 2 - 0x83E0, 0x8005, 0x844E, 0x807D, 0x0000, 0x0000, 0xD294, 0xE35C, - 0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0xA008, 0x0000, // 3 - 0x83E0, 0x0000, 0x8008, 0x0000, 0x806C, 0x0000, 0xD294, 0xBEBC, - 0x0000, 0x8000, 0x800B, 0x9DC0, 0x800B, 0x800B, 0x800B, 0x800B, // 4 - 0x83E0, 0xB9C0, 0x800B, 0x0000, 0x0000, 0x0000, 0xD294, 0xAABC, - 0x0000, 0x8000, 0x0000, 0x9DC0, 0x8011, 0x8011, 0x8011, 0x8011, // 5 - 0x83E0, 0xB9C0, 0x8011, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C, - 0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0x8008, 0x0000, // 6 - 0x83E0, 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0x9E1C, -}; - -static u16 g_Clut3[] = { - 0x0000, 0x8000, 0x8900, 0x8900, 0x8900, 0x8900, 0x8902, 0x8904, // 0 - 0x843F, 0x9541, 0x95E1, 0x0000, 0x0000, 0x0000, 0xD294, 0xF2D1, - 0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0xA208, 0xA208, 0xA208, // 1 - 0x843F, 0x9541, 0x9541, 0xA208, 0xA208, 0xA208, 0xD294, 0xF39C, - 0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0x8160, 0x8920, // 2 - 0x801F, 0x8080, 0x88E1, 0x8160, 0x0000, 0x0000, 0xD294, 0xE796, - 0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0x94A0, 0x0000, // 3 - 0x843F, 0x0000, 0x8080, 0x0000, 0xA264, 0x0000, 0xD294, 0xAB8D, - 0x0000, 0x8000, 0x80E0, 0x80E0, 0x80E0, 0x80E0, 0x80E0, 0x80E0, // 4 - 0x843F, 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF2B2, - 0x0000, 0x8000, 0x0000, 0x9DC0, 0x8200, 0x8200, 0x8200, 0x8200, // 5 - 0x843F, 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C, - 0x0000, 0x8000, 0x0000, 0xA686, 0x0000, 0x0000, 0xA520, 0x0000, // 6 - 0x843F, 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xB792, -}; - -static u16 g_Clut4[] = { - 0x0000, 0x8000, 0x817F, 0x81B6, 0x81DF, 0x827F, 0xA2FE, 0xD77F, // 0 - 0x843F, 0x819E, 0x9A1F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C, - 0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0xB77D, 0xB77D, 0xB77D, // 1 - 0x843F, 0x811E, 0x811E, 0xB77D, 0xB77D, 0xB77D, 0xD294, 0xFFFF, - 0x0000, 0x8000, 0x0000, 0x9A1F, 0x0000, 0x0000, 0x8E3F, 0x99DF, // 2 - 0x801F, 0x80B0, 0x811A, 0x9ADF, 0x0000, 0x0000, 0xD294, 0xE35C, - 0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0x80FE, 0x0000, // 3 - 0x843F, 0x0000, 0x80B1, 0x0000, 0x8157, 0x0000, 0xD294, 0xD31C, - 0x0000, 0x8000, 0x8158, 0x81B6, 0x819B, 0x823D, 0xA2FF, 0xD31F, // 4 - 0x843F, 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C, - 0x0000, 0x8000, 0x0000, 0xB77D, 0xB77D, 0xB77D, 0xB77D, 0xB77D, // 5 - 0x843F, 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C, - 0x0000, 0x8000, 0x0000, 0x819E, 0x0000, 0x0000, 0x811E, 0x0000, // 6 - 0x843F, 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C, -}; +static u16 g_Clut0[N_ARRAY_PAL][COLORS_PER_PAL] = { + {0x0000, 0x8000, 0xA821, 0x9DC0, 0xA821, 0xA821, 0xA821, 0xA821, 0x843F, + 0xB0E4, 0x9CA4, 0x0000, 0x0000, 0x0000, 0xD294, 0xF2F3}, + {0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0xED8C, 0xED8C, 0xED8C, 0x843F, + 0xBC00, 0xBC00, 0xED8C, 0xED8C, 0xED8C, 0xD294, 0xFFFF}, + {0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0xE021, 0xE021, 0x801F, + 0x9C00, 0xB800, 0xE021, 0x0000, 0x0000, 0xD294, 0xEAD3}, + {0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0xA0C0, 0x0000, 0x843F, + 0x0000, 0xA800, 0x0000, 0xF608, 0x0000, 0xD294, 0xE24C}, + {0x0000, 0x8000, 0x9C00, 0x9DC0, 0x9C00, 0x9C00, 0x9C00, 0x9C00, 0x843F, + 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF2D1}, + {0x0000, 0x8000, 0x0000, 0x9DC0, 0xD400, 0xD400, 0xD400, 0xD400, 0x843F, + 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C}, + {0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0xCCA0, 0x0000, 0x843F, + 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xEA90}}; +static u16 g_Clut1[N_ARRAY_PAL][COLORS_PER_PAL] = { + {0x0000, 0x8007, 0xAD6B, 0xAD6B, 0xAD6B, 0xAD6B, 0xAD6B, 0xAD6B, 0x843F, + 0xB148, 0xA928, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C}, + {0x0000, 0x8007, 0x0000, 0x0000, 0x0000, 0xE717, 0xE717, 0xE717, 0x843F, + 0xA0E6, 0xA0E6, 0xE717, 0xE717, 0xE717, 0xD294, 0xF39C}, + {0x0000, 0x8007, 0x0000, 0x9DC0, 0x0000, 0x0000, 0xB56A, 0xA927, 0x801F, + 0x9062, 0x98C6, 0xB148, 0x0000, 0x0000, 0xD294, 0xF39C}, + {0x0000, 0x8007, 0x0000, 0x9DC0, 0x0000, 0x0000, 0xA4E6, 0x0000, 0x843F, + 0x0000, 0x9483, 0x0000, 0xA0C4, 0x0000, 0xD294, 0xF39C}, + {0x0000, 0x8007, 0x98C6, 0x9DC0, 0x98C6, 0x98C6, 0x98C6, 0x98C6, 0x843F, + 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C}, + {0x0000, 0x8007, 0x0000, 0x9DC0, 0xA94A, 0xA94A, 0xA94A, 0xA94A, 0x843F, + 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C}, + {0x0000, 0x8007, 0x0000, 0x9DC0, 0x0000, 0x0000, 0x94A5, 0x0000, 0x843F, + 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xEB5A}}; +static u16 g_Clut2[N_ARRAY_PAL][COLORS_PER_PAL] = { + {0x0000, 0x8000, 0x800F, 0x800F, 0x800F, 0x800F, 0x800F, 0x800F, 0x83E0, + 0x800F, 0x8CB4, 0x0000, 0x0000, 0x0000, 0xD294, 0xCF1C}, + {0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0xA818, 0xB0B8, 0xAC38, 0x83E0, + 0x800E, 0x8450, 0x9418, 0x9418, 0x9818, 0xD294, 0xFFFF}, + {0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0x8014, 0x940C, 0x83E0, + 0x8005, 0x844E, 0x807D, 0x0000, 0x0000, 0xD294, 0xE35C}, + {0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0xA008, 0x0000, 0x83E0, + 0x0000, 0x8008, 0x0000, 0x806C, 0x0000, 0xD294, 0xBEBC}, + {0x0000, 0x8000, 0x800B, 0x9DC0, 0x800B, 0x800B, 0x800B, 0x800B, 0x83E0, + 0xB9C0, 0x800B, 0x0000, 0x0000, 0x0000, 0xD294, 0xAABC}, + {0x0000, 0x8000, 0x0000, 0x9DC0, 0x8011, 0x8011, 0x8011, 0x8011, 0x83E0, + 0xB9C0, 0x8011, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C}, + {0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0x8008, 0x0000, 0x83E0, + 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0x9E1C}}; +static u16 g_Clut3[N_ARRAY_PAL][COLORS_PER_PAL] = { + {0x0000, 0x8000, 0x8900, 0x8900, 0x8900, 0x8900, 0x8902, 0x8904, 0x843F, + 0x9541, 0x95E1, 0x0000, 0x0000, 0x0000, 0xD294, 0xF2D1}, + {0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0xA208, 0xA208, 0xA208, 0x843F, + 0x9541, 0x9541, 0xA208, 0xA208, 0xA208, 0xD294, 0xF39C}, + {0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0x8160, 0x8920, 0x801F, + 0x8080, 0x88E1, 0x8160, 0x0000, 0x0000, 0xD294, 0xE796}, + {0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0x94A0, 0x0000, 0x843F, + 0x0000, 0x8080, 0x0000, 0xA264, 0x0000, 0xD294, 0xAB8D}, + {0x0000, 0x8000, 0x80E0, 0x80E0, 0x80E0, 0x80E0, 0x80E0, 0x80E0, 0x843F, + 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF2B2}, + {0x0000, 0x8000, 0x0000, 0x9DC0, 0x8200, 0x8200, 0x8200, 0x8200, 0x843F, + 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C}, + {0x0000, 0x8000, 0x0000, 0xA686, 0x0000, 0x0000, 0xA520, 0x0000, 0x843F, + 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xB792}}; +static u16 g_Clut4[N_ARRAY_PAL][COLORS_PER_PAL] = { + {0x0000, 0x8000, 0x817F, 0x81B6, 0x81DF, 0x827F, 0xA2FE, 0xD77F, 0x843F, + 0x819E, 0x9A1F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C}, + {0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0xB77D, 0xB77D, 0xB77D, 0x843F, + 0x811E, 0x811E, 0xB77D, 0xB77D, 0xB77D, 0xD294, 0xFFFF}, + {0x0000, 0x8000, 0x0000, 0x9A1F, 0x0000, 0x0000, 0x8E3F, 0x99DF, 0x801F, + 0x80B0, 0x811A, 0x9ADF, 0x0000, 0x0000, 0xD294, 0xE35C}, + {0x0000, 0x8000, 0x0000, 0x9DC0, 0x0000, 0x0000, 0x80FE, 0x0000, 0x843F, + 0x0000, 0x80B1, 0x0000, 0x8157, 0x0000, 0xD294, 0xD31C}, + {0x0000, 0x8000, 0x8158, 0x81B6, 0x819B, 0x823D, 0xA2FF, 0xD31F, 0x843F, + 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C}, + {0x0000, 0x8000, 0x0000, 0xB77D, 0xB77D, 0xB77D, 0xB77D, 0xB77D, 0x843F, + 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C}, + {0x0000, 0x8000, 0x0000, 0x819E, 0x0000, 0x0000, 0x811E, 0x0000, 0x843F, + 0xB9C0, 0x801F, 0x0000, 0x0000, 0x0000, 0xD294, 0xF39C}}; static u8 g_Anim0Frame0[] = { 0x01, 0x02, 0x02, 0x04, 0x03, 0x04, 0x04, 0x04, 0x05, 0x04, diff --git a/src/weapon/w_002.c b/src/weapon/w_002.c index a50c407a8..f2db7453b 100644 --- a/src/weapon/w_002.c +++ b/src/weapon/w_002.c @@ -9,38 +9,41 @@ #define g_Animset2 w_002_2 #include "sfx.h" -static u16 clut0[] = { - 0x0000, 0x1484, 0x8000, 0x0449, 0x2570, 0x3A33, 0x148F, 0x30D3, 0x217A, - 0x1EBA, 0x0842, 0x18C6, 0x294A, 0x41EF, 0x5694, 0x6F59, 0x0000, 0x7440, - 0x7D60, 0x7EA0, 0x7F83, 0x3969, 0x59B0, 0x1C10, 0x1D7A, 0x1F5F, 0x0842, - 0x18C6, 0x294A, 0x41EF, 0x5694, 0x6F99, 0x0000, 0xB544, 0xC5A8, 0x14A9, - 0x214D, 0x2217, 0x36DC, 0x1CA4, 0x30E5, 0x4988, 0x2E75, 0x1DEE, 0x2507, - 0x358A, 0x4A0E, 0x5AD4, 0x0000, 0x2E40, 0x3340, 0x4BF0, 0x3BFB, 0x3969, - 0x59B0, 0x2D22, 0x3DE5, 0x53D7, 0x0842, 0x18C6, 0x294A, 0x41EF, 0x5694, - 0x6F99, 0x0000, 0x2E40, 0x3340, 0x4BF0, 0x3BFB, 0x3969, 0x59B0, 0x2D22, - 0x3DE5, 0x53D7, 0x0842, 0x18C6, 0x294A, 0x41EF, 0x5694, 0x6F99, 0x0000, - 0x1484, 0x8000, 0x0446, 0x38E9, 0x454B, 0x148F, 0x07E0, 0x03E0, 0x03E0, - 0x0842, 0x20A3, 0x2D27, 0x41CD, 0x5694, 0x7B99, 0x0000, 0x059F, 0x2A3F, - 0x3B9F, 0x5FFF, 0x1171, 0x21F7, 0x1C10, 0x1D7A, 0x1F5F, 0x0842, 0x18C6, - 0x294A, 0x41EF, 0x5694, 0x6F99, 0x0000, 0x1041, 0x7CA6, 0x6C26, 0x5986, - 0x5846, 0x58A8, 0x590A, 0x598C, 0x59EE, 0x5A50, 0x5AD2, 0x6E6B, 0x5F49, - 0x40A7, 0x598A, 0x0000, 0x2061, 0x7085, 0x5C24, 0x5AD2, 0x5986, 0x5846, - 0x58A8, 0x590A, 0x598C, 0x59EE, 0x5A50, 0x5F49, 0x777A, 0x40A7, 0x598A, - 0x0000, 0x1041, 0x6464, 0x4C23, 0x5A50, 0x5AD2, 0x5986, 0x5846, 0x58A8, - 0x590A, 0x598C, 0x59EE, 0x6E6B, 0x5F49, 0x40A7, 0x598A, 0x0000, 0x2061, - 0x5843, 0x3C22, 0x59EE, 0x5A50, 0x5AD2, 0x5986, 0x5846, 0x58A8, 0x590A, - 0x598C, 0x5F49, 0x777A, 0x40A7, 0x598A, 0x0000, 0x1041, 0x4C23, 0x3041, - 0x598C, 0x59EE, 0x5A50, 0x5AD2, 0x5986, 0x5846, 0x58A8, 0x590A, 0x6E6B, - 0x5F49, 0x40A7, 0x598A, 0x0000, 0x2061, 0x5843, 0x3C22, 0x590A, 0x598C, - 0x59EE, 0x5A50, 0x5AD2, 0x5986, 0x5846, 0x58A8, 0x5F49, 0x777A, 0x40A7, - 0x598A, 0x0000, 0x1041, 0x6464, 0x4C23, 0x58A8, 0x590A, 0x598C, 0x59EE, - 0x5A50, 0x5AD2, 0x5986, 0x5846, 0x6E6B, 0x5F49, 0x40A7, 0x598A, 0x0000, - 0x2061, 0x7085, 0x5C24, 0x5846, 0x58A8, 0x590A, 0x598C, 0x59EE, 0x5A50, - 0x5AD2, 0x5986, 0x5F49, 0x777A, 0x40A7, 0x598A, 0x0000, 0x0C41, 0x1BE3, - 0x3D8A, 0x2CA1, 0x4503, 0x59A7, 0x5E2B, 0x62AF, 0x1084, 0x1D08, 0x296C, - 0x39F0, 0x4654, 0x52D8, 0x635C, 0x0000, 0x3C00, 0x4800, 0x5923, 0x6DC8, - 0x7ED1, 0x7F73, 0x7FFF, 0x0400, 0x3DAD, 0x4E10, 0x66D6, 0x735A, 0x8000, - 0x7FB5, 0x0400}; +static u16 clut0[N_ARRAY_PAL][COLORS_PER_PAL] = { + {0x0000, 0x1484, 0x8000, 0x0449, 0x2570, 0x3A33, 0x148F, 0x30D3, 0x217A, + 0x1EBA, 0x0842, 0x18C6, 0x294A, 0x41EF, 0x5694, 0x6F59}, + {0x0000, 0x7440, 0x7D60, 0x7EA0, 0x7F83, 0x3969, 0x59B0, 0x1C10, 0x1D7A, + 0x1F5F, 0x0842, 0x18C6, 0x294A, 0x41EF, 0x5694, 0x6F99}, + {0x0000, 0xB544, 0xC5A8, 0x14A9, 0x214D, 0x2217, 0x36DC, 0x1CA4, 0x30E5, + 0x4988, 0x2E75, 0x1DEE, 0x2507, 0x358A, 0x4A0E, 0x5AD4}, + {0x0000, 0x2E40, 0x3340, 0x4BF0, 0x3BFB, 0x3969, 0x59B0, 0x2D22, 0x3DE5, + 0x53D7, 0x0842, 0x18C6, 0x294A, 0x41EF, 0x5694, 0x6F99}, + {0x0000, 0x2E40, 0x3340, 0x4BF0, 0x3BFB, 0x3969, 0x59B0, 0x2D22, 0x3DE5, + 0x53D7, 0x0842, 0x18C6, 0x294A, 0x41EF, 0x5694, 0x6F99}, + {0x0000, 0x1484, 0x8000, 0x0446, 0x38E9, 0x454B, 0x148F, 0x07E0, 0x03E0, + 0x03E0, 0x0842, 0x20A3, 0x2D27, 0x41CD, 0x5694, 0x7B99}, + {0x0000, 0x059F, 0x2A3F, 0x3B9F, 0x5FFF, 0x1171, 0x21F7, 0x1C10, 0x1D7A, + 0x1F5F, 0x0842, 0x18C6, 0x294A, 0x41EF, 0x5694, 0x6F99}, + {0x0000, 0x1041, 0x7CA6, 0x6C26, 0x5986, 0x5846, 0x58A8, 0x590A, 0x598C, + 0x59EE, 0x5A50, 0x5AD2, 0x6E6B, 0x5F49, 0x40A7, 0x598A}, + {0x0000, 0x2061, 0x7085, 0x5C24, 0x5AD2, 0x5986, 0x5846, 0x58A8, 0x590A, + 0x598C, 0x59EE, 0x5A50, 0x5F49, 0x777A, 0x40A7, 0x598A}, + {0x0000, 0x1041, 0x6464, 0x4C23, 0x5A50, 0x5AD2, 0x5986, 0x5846, 0x58A8, + 0x590A, 0x598C, 0x59EE, 0x6E6B, 0x5F49, 0x40A7, 0x598A}, + {0x0000, 0x2061, 0x5843, 0x3C22, 0x59EE, 0x5A50, 0x5AD2, 0x5986, 0x5846, + 0x58A8, 0x590A, 0x598C, 0x5F49, 0x777A, 0x40A7, 0x598A}, + {0x0000, 0x1041, 0x4C23, 0x3041, 0x598C, 0x59EE, 0x5A50, 0x5AD2, 0x5986, + 0x5846, 0x58A8, 0x590A, 0x6E6B, 0x5F49, 0x40A7, 0x598A}, + {0x0000, 0x2061, 0x5843, 0x3C22, 0x590A, 0x598C, 0x59EE, 0x5A50, 0x5AD2, + 0x5986, 0x5846, 0x58A8, 0x5F49, 0x777A, 0x40A7, 0x598A}, + {0x0000, 0x1041, 0x6464, 0x4C23, 0x58A8, 0x590A, 0x598C, 0x59EE, 0x5A50, + 0x5AD2, 0x5986, 0x5846, 0x6E6B, 0x5F49, 0x40A7, 0x598A}, + {0x0000, 0x2061, 0x7085, 0x5C24, 0x5846, 0x58A8, 0x590A, 0x598C, 0x59EE, + 0x5A50, 0x5AD2, 0x5986, 0x5F49, 0x777A, 0x40A7, 0x598A}, + {0x0000, 0x0C41, 0x1BE3, 0x3D8A, 0x2CA1, 0x4503, 0x59A7, 0x5E2B, 0x62AF, + 0x1084, 0x1D08, 0x296C, 0x39F0, 0x4654, 0x52D8, 0x635C}, + {0x0000, 0x3C00, 0x4800, 0x5923, 0x6DC8, 0x7ED1, 0x7F73, 0x7FFF, 0x0400, + 0x3DAD, 0x4E10, 0x66D6, 0x735A, 0x8000, 0x7FB5, 0x0400}}; static u8 D_12000_8017AAA4[] = { 0x01, 0x02, 0x02, 0x02, 0x03, 0x04, 0x04, 0x06, 0x05, 0x06, 0x06, 0x08, 0x07, 0x08, 0x08, 0x08, 0x09, 0x08, 0x0A, 0x0A, diff --git a/src/weapon/w_007.c b/src/weapon/w_007.c index 1a7150a40..08e9096c2 100644 --- a/src/weapon/w_007.c +++ b/src/weapon/w_007.c @@ -9,98 +9,109 @@ #define g_Animset2 w_007_2 #include "sfx.h" -static u16 D_35000_8017A884[] = { - COLOR16(0, 0, 0, 0), COLOR16(4, 4, 5, 0), COLOR16(0, 0, 0, 1), - COLOR16(9, 2, 1, 0), COLOR16(16, 11, 9, 0), COLOR16(19, 17, 14, 0), - COLOR16(15, 4, 5, 0), COLOR16(19, 6, 12, 0), COLOR16(26, 11, 8, 0), - COLOR16(26, 21, 7, 0), COLOR16(2, 2, 2, 0), COLOR16(6, 6, 6, 0), - COLOR16(10, 10, 10, 0), COLOR16(15, 15, 16, 0), COLOR16(20, 20, 21, 0), - COLOR16(25, 26, 27, 0), COLOR16(0, 0, 0, 0), COLOR16(0, 2, 29, 0), - COLOR16(0, 11, 31, 0), COLOR16(0, 21, 31, 0), COLOR16(3, 28, 31, 0), - COLOR16(9, 11, 14, 0), COLOR16(16, 13, 22, 0), COLOR16(16, 0, 7, 0), - COLOR16(26, 11, 7, 0), COLOR16(31, 26, 7, 0), COLOR16(2, 2, 2, 0), - COLOR16(6, 6, 6, 0), COLOR16(10, 10, 10, 0), COLOR16(15, 15, 16, 0), - COLOR16(20, 20, 21, 0), COLOR16(25, 28, 27, 0), COLOR16(0, 0, 0, 0), - COLOR16(4, 10, 13, 1), COLOR16(8, 13, 17, 1), COLOR16(9, 5, 5, 0), - COLOR16(13, 10, 8, 0), COLOR16(23, 16, 8, 0), COLOR16(28, 22, 13, 0), - COLOR16(4, 5, 7, 0), COLOR16(5, 7, 12, 0), COLOR16(8, 12, 18, 0), - COLOR16(21, 19, 11, 0), COLOR16(14, 15, 7, 0), COLOR16(7, 8, 9, 0), - COLOR16(10, 12, 13, 0), COLOR16(14, 16, 18, 0), COLOR16(20, 22, 22, 0), - COLOR16(0, 0, 0, 0), COLOR16(0, 18, 11, 0), COLOR16(0, 26, 12, 0), - COLOR16(16, 31, 18, 0), COLOR16(27, 31, 14, 0), COLOR16(9, 11, 14, 0), - COLOR16(16, 13, 22, 0), COLOR16(2, 9, 11, 0), COLOR16(5, 15, 15, 0), - COLOR16(23, 30, 20, 0), COLOR16(2, 2, 2, 0), COLOR16(6, 6, 6, 0), - COLOR16(10, 10, 10, 0), COLOR16(15, 15, 16, 0), COLOR16(20, 20, 21, 0), - COLOR16(25, 28, 27, 0), COLOR16(0, 0, 0, 0), COLOR16(0, 18, 11, 0), - COLOR16(0, 26, 12, 0), COLOR16(16, 31, 18, 0), COLOR16(27, 31, 14, 0), - COLOR16(9, 11, 14, 0), COLOR16(16, 13, 22, 0), COLOR16(2, 9, 11, 0), - COLOR16(5, 15, 15, 0), COLOR16(23, 30, 20, 0), COLOR16(2, 2, 2, 0), - COLOR16(6, 6, 6, 0), COLOR16(10, 10, 10, 0), COLOR16(15, 15, 16, 0), - COLOR16(20, 20, 21, 0), COLOR16(25, 28, 27, 0), COLOR16(0, 0, 0, 0), - COLOR16(4, 4, 5, 0), COLOR16(0, 0, 0, 1), COLOR16(6, 2, 1, 0), - COLOR16(9, 7, 14, 0), COLOR16(11, 10, 17, 0), COLOR16(15, 4, 5, 0), - COLOR16(0, 31, 1, 0), COLOR16(0, 31, 0, 0), COLOR16(0, 31, 0, 0), - COLOR16(2, 2, 2, 0), COLOR16(3, 5, 8, 0), COLOR16(7, 9, 11, 0), - COLOR16(13, 14, 16, 0), COLOR16(20, 20, 21, 0), COLOR16(25, 28, 30, 0), - COLOR16(0, 0, 0, 0), COLOR16(31, 12, 1, 0), COLOR16(31, 17, 10, 0), - COLOR16(31, 28, 14, 0), COLOR16(31, 31, 23, 0), COLOR16(17, 11, 4, 0), - COLOR16(23, 15, 8, 0), COLOR16(16, 0, 7, 0), COLOR16(26, 11, 7, 0), - COLOR16(31, 26, 7, 0), COLOR16(2, 2, 2, 0), COLOR16(6, 6, 6, 0), - COLOR16(10, 10, 10, 0), COLOR16(15, 15, 16, 0), COLOR16(20, 20, 21, 0), - COLOR16(25, 28, 27, 0), COLOR16(0, 0, 0, 0), COLOR16(1, 2, 4, 0), - COLOR16(6, 5, 31, 0), COLOR16(6, 1, 27, 0), COLOR16(6, 12, 22, 0), - COLOR16(6, 2, 22, 0), COLOR16(8, 5, 22, 0), COLOR16(10, 8, 22, 0), - COLOR16(12, 12, 22, 0), COLOR16(14, 15, 22, 0), COLOR16(16, 18, 22, 0), - COLOR16(18, 22, 22, 0), COLOR16(11, 19, 27, 0), COLOR16(9, 26, 23, 0), - COLOR16(7, 5, 16, 0), COLOR16(10, 12, 22, 0), COLOR16(0, 0, 0, 0), - COLOR16(1, 3, 8, 0), COLOR16(5, 4, 28, 0), COLOR16(4, 1, 23, 0), - COLOR16(18, 22, 22, 0), COLOR16(6, 12, 22, 0), COLOR16(6, 2, 22, 0), - COLOR16(8, 5, 22, 0), COLOR16(10, 8, 22, 0), COLOR16(12, 12, 22, 0), - COLOR16(14, 15, 22, 0), COLOR16(16, 18, 22, 0), COLOR16(9, 26, 23, 0), - COLOR16(26, 27, 29, 0), COLOR16(7, 5, 16, 0), COLOR16(10, 12, 22, 0), - COLOR16(0, 0, 0, 0), COLOR16(1, 2, 4, 0), COLOR16(4, 3, 25, 0), - COLOR16(3, 1, 19, 0), COLOR16(16, 18, 22, 0), COLOR16(18, 22, 22, 0), - COLOR16(6, 12, 22, 0), COLOR16(6, 2, 22, 0), COLOR16(8, 5, 22, 0), - COLOR16(10, 8, 22, 0), COLOR16(12, 12, 22, 0), COLOR16(14, 15, 22, 0), - COLOR16(11, 19, 27, 0), COLOR16(9, 26, 23, 0), COLOR16(7, 5, 16, 0), - COLOR16(10, 12, 22, 0), COLOR16(0, 0, 0, 0), COLOR16(1, 3, 8, 0), - COLOR16(3, 2, 22, 0), COLOR16(2, 1, 15, 0), COLOR16(14, 15, 22, 0), - COLOR16(16, 18, 22, 0), COLOR16(18, 22, 22, 0), COLOR16(6, 12, 22, 0), - COLOR16(6, 2, 22, 0), COLOR16(8, 5, 22, 0), COLOR16(10, 8, 22, 0), - COLOR16(12, 12, 22, 0), COLOR16(9, 26, 23, 0), COLOR16(26, 27, 29, 0), - COLOR16(7, 5, 16, 0), COLOR16(10, 12, 22, 0), COLOR16(0, 0, 0, 0), - COLOR16(1, 2, 4, 0), COLOR16(3, 1, 19, 0), COLOR16(1, 2, 12, 0), - COLOR16(12, 12, 22, 0), COLOR16(14, 15, 22, 0), COLOR16(16, 18, 22, 0), - COLOR16(18, 22, 22, 0), COLOR16(6, 12, 22, 0), COLOR16(6, 2, 22, 0), - COLOR16(8, 5, 22, 0), COLOR16(10, 8, 22, 0), COLOR16(11, 19, 27, 0), - COLOR16(9, 26, 23, 0), COLOR16(7, 5, 16, 0), COLOR16(10, 12, 22, 0), - COLOR16(0, 0, 0, 0), COLOR16(1, 3, 8, 0), COLOR16(3, 2, 22, 0), - COLOR16(2, 1, 15, 0), COLOR16(10, 8, 22, 0), COLOR16(12, 12, 22, 0), - COLOR16(14, 15, 22, 0), COLOR16(16, 18, 22, 0), COLOR16(18, 22, 22, 0), - COLOR16(6, 12, 22, 0), COLOR16(6, 2, 22, 0), COLOR16(8, 5, 22, 0), - COLOR16(9, 26, 23, 0), COLOR16(26, 27, 29, 0), COLOR16(7, 5, 16, 0), - COLOR16(10, 12, 22, 0), COLOR16(0, 0, 0, 0), COLOR16(1, 2, 4, 0), - COLOR16(4, 3, 25, 0), COLOR16(3, 1, 19, 0), COLOR16(8, 5, 22, 0), - COLOR16(10, 8, 22, 0), COLOR16(12, 12, 22, 0), COLOR16(14, 15, 22, 0), - COLOR16(16, 18, 22, 0), COLOR16(18, 22, 22, 0), COLOR16(6, 12, 22, 0), - COLOR16(6, 2, 22, 0), COLOR16(11, 19, 27, 0), COLOR16(9, 26, 23, 0), - COLOR16(7, 5, 16, 0), COLOR16(10, 12, 22, 0), COLOR16(0, 0, 0, 0), - COLOR16(1, 3, 8, 0), COLOR16(5, 4, 28, 0), COLOR16(4, 1, 23, 0), - COLOR16(6, 2, 22, 0), COLOR16(8, 5, 22, 0), COLOR16(10, 8, 22, 0), - COLOR16(12, 12, 22, 0), COLOR16(14, 15, 22, 0), COLOR16(16, 18, 22, 0), - COLOR16(18, 22, 22, 0), COLOR16(6, 12, 22, 0), COLOR16(9, 26, 23, 0), - COLOR16(26, 27, 29, 0), COLOR16(7, 5, 16, 0), COLOR16(10, 12, 22, 0), - COLOR16(0, 0, 0, 0), COLOR16(1, 2, 3, 0), COLOR16(3, 31, 6, 0), - COLOR16(10, 12, 15, 0), COLOR16(1, 5, 11, 0), COLOR16(3, 8, 17, 0), - COLOR16(7, 13, 22, 0), COLOR16(11, 17, 23, 0), COLOR16(15, 21, 24, 0), - COLOR16(4, 4, 4, 0), COLOR16(8, 8, 7, 0), COLOR16(12, 11, 10, 0), - COLOR16(16, 15, 14, 0), COLOR16(20, 18, 17, 0), COLOR16(24, 22, 20, 0), - COLOR16(28, 26, 24, 0), COLOR16(0, 0, 0, 0), COLOR16(0, 0, 15, 0), - COLOR16(0, 0, 18, 0), COLOR16(3, 9, 22, 0), COLOR16(8, 14, 27, 0), - COLOR16(17, 22, 31, 0), COLOR16(19, 27, 31, 0), COLOR16(31, 31, 31, 0), - COLOR16(0, 0, 1, 0), COLOR16(13, 13, 15, 0), COLOR16(16, 16, 19, 0), - COLOR16(22, 22, 25, 0), COLOR16(26, 26, 28, 0), COLOR16(0, 0, 0, 1), - COLOR16(21, 29, 31, 0), COLOR16(0, 0, 1, 0)}; +static u16 D_35000_8017A884[N_ARRAY_PAL][COLORS_PER_PAL] = { + {COLOR16(0, 0, 0, 0), COLOR16(4, 4, 5, 0), COLOR16(0, 0, 0, 1), + COLOR16(9, 2, 1, 0), COLOR16(16, 11, 9, 0), COLOR16(19, 17, 14, 0), + COLOR16(15, 4, 5, 0), COLOR16(19, 6, 12, 0), COLOR16(26, 11, 8, 0), + COLOR16(26, 21, 7, 0), COLOR16(2, 2, 2, 0), COLOR16(6, 6, 6, 0), + COLOR16(10, 10, 10, 0), COLOR16(15, 15, 16, 0), COLOR16(20, 20, 21, 0), + COLOR16(25, 26, 27, 0)}, + {COLOR16(0, 0, 0, 0), COLOR16(0, 2, 29, 0), COLOR16(0, 11, 31, 0), + COLOR16(0, 21, 31, 0), COLOR16(3, 28, 31, 0), COLOR16(9, 11, 14, 0), + COLOR16(16, 13, 22, 0), COLOR16(16, 0, 7, 0), COLOR16(26, 11, 7, 0), + COLOR16(31, 26, 7, 0), COLOR16(2, 2, 2, 0), COLOR16(6, 6, 6, 0), + COLOR16(10, 10, 10, 0), COLOR16(15, 15, 16, 0), COLOR16(20, 20, 21, 0), + COLOR16(25, 28, 27, 0)}, + {COLOR16(0, 0, 0, 0), COLOR16(4, 10, 13, 1), COLOR16(8, 13, 17, 1), + COLOR16(9, 5, 5, 0), COLOR16(13, 10, 8, 0), COLOR16(23, 16, 8, 0), + COLOR16(28, 22, 13, 0), COLOR16(4, 5, 7, 0), COLOR16(5, 7, 12, 0), + COLOR16(8, 12, 18, 0), COLOR16(21, 19, 11, 0), COLOR16(14, 15, 7, 0), + COLOR16(7, 8, 9, 0), COLOR16(10, 12, 13, 0), COLOR16(14, 16, 18, 0), + COLOR16(20, 22, 22, 0)}, + {COLOR16(0, 0, 0, 0), COLOR16(0, 18, 11, 0), COLOR16(0, 26, 12, 0), + COLOR16(16, 31, 18, 0), COLOR16(27, 31, 14, 0), COLOR16(9, 11, 14, 0), + COLOR16(16, 13, 22, 0), COLOR16(2, 9, 11, 0), COLOR16(5, 15, 15, 0), + COLOR16(23, 30, 20, 0), COLOR16(2, 2, 2, 0), COLOR16(6, 6, 6, 0), + COLOR16(10, 10, 10, 0), COLOR16(15, 15, 16, 0), COLOR16(20, 20, 21, 0), + COLOR16(25, 28, 27, 0)}, + {COLOR16(0, 0, 0, 0), COLOR16(0, 18, 11, 0), COLOR16(0, 26, 12, 0), + COLOR16(16, 31, 18, 0), COLOR16(27, 31, 14, 0), COLOR16(9, 11, 14, 0), + COLOR16(16, 13, 22, 0), COLOR16(2, 9, 11, 0), COLOR16(5, 15, 15, 0), + COLOR16(23, 30, 20, 0), COLOR16(2, 2, 2, 0), COLOR16(6, 6, 6, 0), + COLOR16(10, 10, 10, 0), COLOR16(15, 15, 16, 0), COLOR16(20, 20, 21, 0), + COLOR16(25, 28, 27, 0)}, + {COLOR16(0, 0, 0, 0), COLOR16(4, 4, 5, 0), COLOR16(0, 0, 0, 1), + COLOR16(6, 2, 1, 0), COLOR16(9, 7, 14, 0), COLOR16(11, 10, 17, 0), + COLOR16(15, 4, 5, 0), COLOR16(0, 31, 1, 0), COLOR16(0, 31, 0, 0), + COLOR16(0, 31, 0, 0), COLOR16(2, 2, 2, 0), COLOR16(3, 5, 8, 0), + COLOR16(7, 9, 11, 0), COLOR16(13, 14, 16, 0), COLOR16(20, 20, 21, 0), + COLOR16(25, 28, 30, 0)}, + {COLOR16(0, 0, 0, 0), COLOR16(31, 12, 1, 0), COLOR16(31, 17, 10, 0), + COLOR16(31, 28, 14, 0), COLOR16(31, 31, 23, 0), COLOR16(17, 11, 4, 0), + COLOR16(23, 15, 8, 0), COLOR16(16, 0, 7, 0), COLOR16(26, 11, 7, 0), + COLOR16(31, 26, 7, 0), COLOR16(2, 2, 2, 0), COLOR16(6, 6, 6, 0), + COLOR16(10, 10, 10, 0), COLOR16(15, 15, 16, 0), COLOR16(20, 20, 21, 0), + COLOR16(25, 28, 27, 0)}, + {COLOR16(0, 0, 0, 0), COLOR16(1, 2, 4, 0), COLOR16(6, 5, 31, 0), + COLOR16(6, 1, 27, 0), COLOR16(6, 12, 22, 0), COLOR16(6, 2, 22, 0), + COLOR16(8, 5, 22, 0), COLOR16(10, 8, 22, 0), COLOR16(12, 12, 22, 0), + COLOR16(14, 15, 22, 0), COLOR16(16, 18, 22, 0), COLOR16(18, 22, 22, 0), + COLOR16(11, 19, 27, 0), COLOR16(9, 26, 23, 0), COLOR16(7, 5, 16, 0), + COLOR16(10, 12, 22, 0)}, + {COLOR16(0, 0, 0, 0), COLOR16(1, 3, 8, 0), COLOR16(5, 4, 28, 0), + COLOR16(4, 1, 23, 0), COLOR16(18, 22, 22, 0), COLOR16(6, 12, 22, 0), + COLOR16(6, 2, 22, 0), COLOR16(8, 5, 22, 0), COLOR16(10, 8, 22, 0), + COLOR16(12, 12, 22, 0), COLOR16(14, 15, 22, 0), COLOR16(16, 18, 22, 0), + COLOR16(9, 26, 23, 0), COLOR16(26, 27, 29, 0), COLOR16(7, 5, 16, 0), + COLOR16(10, 12, 22, 0)}, + {COLOR16(0, 0, 0, 0), COLOR16(1, 2, 4, 0), COLOR16(4, 3, 25, 0), + COLOR16(3, 1, 19, 0), COLOR16(16, 18, 22, 0), COLOR16(18, 22, 22, 0), + COLOR16(6, 12, 22, 0), COLOR16(6, 2, 22, 0), COLOR16(8, 5, 22, 0), + COLOR16(10, 8, 22, 0), COLOR16(12, 12, 22, 0), COLOR16(14, 15, 22, 0), + COLOR16(11, 19, 27, 0), COLOR16(9, 26, 23, 0), COLOR16(7, 5, 16, 0), + COLOR16(10, 12, 22, 0)}, + {COLOR16(0, 0, 0, 0), COLOR16(1, 3, 8, 0), COLOR16(3, 2, 22, 0), + COLOR16(2, 1, 15, 0), COLOR16(14, 15, 22, 0), COLOR16(16, 18, 22, 0), + COLOR16(18, 22, 22, 0), COLOR16(6, 12, 22, 0), COLOR16(6, 2, 22, 0), + COLOR16(8, 5, 22, 0), COLOR16(10, 8, 22, 0), COLOR16(12, 12, 22, 0), + COLOR16(9, 26, 23, 0), COLOR16(26, 27, 29, 0), COLOR16(7, 5, 16, 0), + COLOR16(10, 12, 22, 0)}, + {COLOR16(0, 0, 0, 0), COLOR16(1, 2, 4, 0), COLOR16(3, 1, 19, 0), + COLOR16(1, 2, 12, 0), COLOR16(12, 12, 22, 0), COLOR16(14, 15, 22, 0), + COLOR16(16, 18, 22, 0), COLOR16(18, 22, 22, 0), COLOR16(6, 12, 22, 0), + COLOR16(6, 2, 22, 0), COLOR16(8, 5, 22, 0), COLOR16(10, 8, 22, 0), + COLOR16(11, 19, 27, 0), COLOR16(9, 26, 23, 0), COLOR16(7, 5, 16, 0), + COLOR16(10, 12, 22, 0)}, + {COLOR16(0, 0, 0, 0), COLOR16(1, 3, 8, 0), COLOR16(3, 2, 22, 0), + COLOR16(2, 1, 15, 0), COLOR16(10, 8, 22, 0), COLOR16(12, 12, 22, 0), + COLOR16(14, 15, 22, 0), COLOR16(16, 18, 22, 0), COLOR16(18, 22, 22, 0), + COLOR16(6, 12, 22, 0), COLOR16(6, 2, 22, 0), COLOR16(8, 5, 22, 0), + COLOR16(9, 26, 23, 0), COLOR16(26, 27, 29, 0), COLOR16(7, 5, 16, 0), + COLOR16(10, 12, 22, 0)}, + {COLOR16(0, 0, 0, 0), COLOR16(1, 2, 4, 0), COLOR16(4, 3, 25, 0), + COLOR16(3, 1, 19, 0), COLOR16(8, 5, 22, 0), COLOR16(10, 8, 22, 0), + COLOR16(12, 12, 22, 0), COLOR16(14, 15, 22, 0), COLOR16(16, 18, 22, 0), + COLOR16(18, 22, 22, 0), COLOR16(6, 12, 22, 0), COLOR16(6, 2, 22, 0), + COLOR16(11, 19, 27, 0), COLOR16(9, 26, 23, 0), COLOR16(7, 5, 16, 0), + COLOR16(10, 12, 22, 0)}, + {COLOR16(0, 0, 0, 0), COLOR16(1, 3, 8, 0), COLOR16(5, 4, 28, 0), + COLOR16(4, 1, 23, 0), COLOR16(6, 2, 22, 0), COLOR16(8, 5, 22, 0), + COLOR16(10, 8, 22, 0), COLOR16(12, 12, 22, 0), COLOR16(14, 15, 22, 0), + COLOR16(16, 18, 22, 0), COLOR16(18, 22, 22, 0), COLOR16(6, 12, 22, 0), + COLOR16(9, 26, 23, 0), COLOR16(26, 27, 29, 0), COLOR16(7, 5, 16, 0), + COLOR16(10, 12, 22, 0)}, + {COLOR16(0, 0, 0, 0), COLOR16(1, 2, 3, 0), COLOR16(3, 31, 6, 0), + COLOR16(10, 12, 15, 0), COLOR16(1, 5, 11, 0), COLOR16(3, 8, 17, 0), + COLOR16(7, 13, 22, 0), COLOR16(11, 17, 23, 0), COLOR16(15, 21, 24, 0), + COLOR16(4, 4, 4, 0), COLOR16(8, 8, 7, 0), COLOR16(12, 11, 10, 0), + COLOR16(16, 15, 14, 0), COLOR16(20, 18, 17, 0), COLOR16(24, 22, 20, 0), + COLOR16(28, 26, 24, 0)}, + {COLOR16(0, 0, 0, 0), COLOR16(0, 0, 15, 0), COLOR16(0, 0, 18, 0), + COLOR16(3, 9, 22, 0), COLOR16(8, 14, 27, 0), COLOR16(17, 22, 31, 0), + COLOR16(19, 27, 31, 0), COLOR16(31, 31, 31, 0), COLOR16(0, 0, 1, 0), + COLOR16(13, 13, 15, 0), COLOR16(16, 16, 19, 0), COLOR16(22, 22, 25, 0), + COLOR16(26, 26, 28, 0), COLOR16(0, 0, 0, 1), COLOR16(21, 29, 31, 0), + COLOR16(0, 0, 1, 0)}}; static u16 D_35000_8017AAA4[] = { 0x2A01, 0x2C02, 0x0403, 0x2E04, 0x3005, 0x3206, 0x0807, diff --git a/src/weapon/w_012.c b/src/weapon/w_012.c index a9745a831..1c744c0c9 100644 --- a/src/weapon/w_012.c +++ b/src/weapon/w_012.c @@ -7,138 +7,139 @@ #define g_Animset w_012_1 #define g_Animset2 w_012_2 -extern s32 D_58000_8017BB28; - -static u16 D_58000_8017A2B0[] = { - 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xE670, - 0xDDEE, 0xD58C, 0xC54A, 0xB508, 0xA8C6, 0x9884, 0x8C42, 0x0000, 0xAD54, - 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xCD2B, 0xD58C, 0xDE0E, - 0xE670, 0xEEF1, 0xF753, 0xFFD5, 0xFFFF, 0x0000, 0xAD54, 0xB5D6, 0xBE58, - 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0x8C42, 0x9884, 0xA8C6, 0xB508, 0xC54A, - 0xD58C, 0xDDEE, 0xE670, 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, - 0xD7DF, 0xFFFF, 0x8000, 0x8C42, 0x9884, 0xA8C6, 0xB508, 0xC54A, 0xD58C, - 0xDDEE, 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, - 0x8000, 0x8000, 0x8C42, 0x9884, 0xA8C6, 0xB508, 0xC54A, 0xD58C, 0x0000, - 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0x8000, 0x8000, - 0x8000, 0x8C42, 0x9884, 0xA8C6, 0xB508, 0xC54A, 0x0000, 0xAD54, 0xB5D6, - 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0x8000, 0x8000, 0x8000, 0x8000, - 0x8C42, 0x9884, 0xA8C6, 0xB508, 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, - 0xCF5D, 0xD7DF, 0xFFFF, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8C42, - 0x9884, 0xA8C6, 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, - 0xFFFF, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8C42, 0x9884, - 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8C42, -}; - -static u16 D_58000_8017A3F0[] = { - 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xA1C8, 0xC290, 0xD7DF, 0xFFFF, 0xA1C8, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0xAD54, - 0xB5D6, 0xBE58, 0xA5A8, 0xC270, 0xD7DF, 0xFFFF, 0x90C4, 0xA5A8, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0xAD54, 0xB5D6, 0xBE58, - 0xA988, 0xC650, 0xD7DF, 0xFFFF, 0x8000, 0x94C4, 0xA988, 0x8000, 0x8000, - 0x8000, 0x8000, 0x8000, 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xAD68, 0xCA50, - 0xD7DF, 0xFFFF, 0x8000, 0x8000, 0x94A4, 0xAD68, 0x8000, 0x8000, 0x8000, - 0x8000, 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xB148, 0xCA30, 0xD7DF, 0xFFFF, - 0x8000, 0x8000, 0x8000, 0x98A4, 0xB148, 0x8000, 0x8000, 0x8000, 0x0000, - 0xAD54, 0xB5D6, 0xBE58, 0xB528, 0xCE10, 0xD7DF, 0xFFFF, 0x8000, 0x8000, - 0x8000, 0x8000, 0x9884, 0xB528, 0x8000, 0x8000, 0x0000, 0xAD54, 0xB5D6, - 0xBE58, 0xB908, 0xD210, 0xD7DF, 0xFFFF, 0x8000, 0x8000, 0x8000, 0x8000, - 0x8000, 0x9C84, 0xB908, 0x8000, 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xBCE8, - 0xD1F0, 0xD7DF, 0xFFFF, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, - 0x9C64, 0xBCE8, 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xACA6, 0xC9CE, 0xD7DF, - 0xFFFF, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0xACA6, - 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, -}; - -static u16 D_58000_8017A530[] = { - 0x0000, 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, 0x8087, - 0x84A7, 0x88C7, 0x94E7, 0x9CE7, 0x9CE7, 0x9CE7, 0x9CE7, 0x0000, 0x99A6, - 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, 0x810F, 0x8D6F, 0x91AF, - 0xA9CF, 0xBDEF, 0xBDEF, 0xBDEF, 0xBDEF, 0x0000, 0x99A6, 0xAA0A, 0xBA6E, - 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, 0x8000, 0x8087, 0x84A7, 0x88C7, 0x94E7, - 0x9CE7, 0x9CE7, 0x9CE7, 0x0000, 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, - 0xEF9B, 0xFFFF, 0x8000, 0x8000, 0x810F, 0x8D6F, 0x91AF, 0xA9CF, 0xBDEF, - 0xBDEF, 0x0000, 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, - 0x8000, 0x8000, 0x8000, 0x8087, 0x84A7, 0x88C7, 0x94E7, 0x9CE7, 0x0000, - 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, 0x8000, 0x8000, - 0x8000, 0x8000, 0x810F, 0x8D6F, 0x91AF, 0xA9CF, 0x0000, 0x99A6, 0xAA0A, - 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, 0x8000, 0x8000, 0x8000, 0x8000, - 0x8000, 0x8087, 0x84A7, 0x88C7, 0x0000, 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, - 0xDF37, 0xEF9B, 0xFFFF, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, - 0x810F, 0x8D6F, 0x0000, 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, - 0xFFFF, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8087, - 0x0000, 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, -}; - -static u16 D_58000_8017A670[] = { - 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xCD2B, - 0xD58C, 0xDE0E, 0xE670, 0xEEF1, 0xF753, 0xFFD5, 0xFFFF, 0x0000, 0xAD54, - 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xD6B5, 0xD68E, 0xCA0C, - 0xC18A, 0xB928, 0xB0C7, 0xA886, 0xA085, 0x0000, 0xAD54, 0xB5D6, 0xBE58, - 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xD28F, 0xC60D, 0xBD8B, 0xB529, 0xACC8, - 0xA487, 0xA086, 0x8000, 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, - 0xD7DF, 0xFFFF, 0xC20E, 0xBDAD, 0xB54B, 0xACEA, 0xA4A9, 0xA088, 0x8000, - 0x8000, 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, - 0xB9CE, 0xB56D, 0xAD0B, 0xA4AA, 0xA089, 0x8000, 0x8000, 0x8000, 0x0000, - 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xB18E, 0xAD2D, - 0xA4CC, 0xA08B, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0xAD54, 0xB5D6, - 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xAD4E, 0xA4CD, 0xA08C, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, - 0xCF5D, 0xD7DF, 0xFFFF, 0xA4EF, 0xA08E, 0x8000, 0x8000, 0x8000, 0x8000, - 0x8000, 0x8000, 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, - 0xFFFF, 0xA0B0, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, - 0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, -}; - -static u16 D_58000_8017A7B0[] = { - 0x0000, 0x8821, 0x9484, 0x84C6, 0x814C, 0x9E36, 0x9EDB, 0x8C8D, 0xA174, - 0xAC85, 0xC0CC, 0xC96E, 0xD610, 0xDA93, 0xDF37, 0xEF59, 0x0000, 0xE040, - 0xE080, 0xE0C0, 0xE100, 0xE140, 0xE180, 0xE1C0, 0xE200, 0xE240, 0xE280, - 0xE2C0, 0xE300, 0xE340, 0xE380, 0xE3C0, 0x0000, 0xE044, 0xE084, 0xE0C4, - 0xE104, 0xE144, 0xE184, 0xE1C4, 0xE204, 0xE244, 0xE284, 0xE2C4, 0xE304, - 0xE344, 0xE384, 0xE3C4, 0x0000, 0xE048, 0xE088, 0xE0C8, 0xE108, 0xE148, - 0xE188, 0xE1C8, 0xE208, 0xE248, 0xE288, 0xE2C8, 0xE308, 0xE348, 0xE388, - 0xE3C8, 0x0000, 0xE04C, 0xE08C, 0xE0CC, 0xE10C, 0xE14C, 0xE18C, 0xE1CC, - 0xE20C, 0xE24C, 0xE28C, 0xE2CC, 0xE30C, 0xE34C, 0xE38C, 0xE3CC, 0x0000, - 0xE050, 0xE090, 0xE0D0, 0xE110, 0xE150, 0xE190, 0xE1D0, 0xE210, 0xE250, - 0xE290, 0xE2D0, 0xE310, 0xE350, 0xE390, 0xE3D0, 0x0000, 0xE054, 0xE094, - 0xE0D4, 0xE114, 0xE154, 0xE194, 0xE1D4, 0xE214, 0xE254, 0xE294, 0xE2D4, - 0xE314, 0xE354, 0xE394, 0xE3D4, 0x0000, 0xE058, 0xE098, 0xE0D8, 0xE118, - 0xE158, 0xE198, 0xE1D8, 0xE218, 0xE258, 0xE298, 0xE2D8, 0xE318, 0xE358, - 0xE398, 0xE3D8, 0x0000, 0xE05C, 0xE09C, 0xE0DC, 0xE11C, 0xE15C, 0xE19C, - 0xE1DC, 0xE21C, 0xE25C, 0xE29C, 0xE2DC, 0xE31C, 0xE35C, 0xE39C, 0xE3DC, - 0x0000, 0x8821, 0xB5AD, 0xD6B5, 0x8148, 0x9E31, 0x801F, 0xA08C, 0xC192, - 0xA4A7, 0xB0C7, 0xBD28, 0xC98A, 0xD1CC, 0xDA4D, 0xE2D0, 0x0000, 0x8C25, - 0x9C68, 0xA0CD, 0xAD30, 0xAD93, 0xADF6, 0xC699, 0xE800, 0x8000, 0xA507, - 0xB149, 0xBDAC, 0xCA0F, 0xD672, 0xE2D5, 0x0000, 0x9444, 0xC255, 0xA94B, - 0xA5AD, 0x9189, 0xA316, 0xA087, 0xB509, 0xBDAC, 0x9CE7, 0xB18C, 0xC631, - 0xD6B5, 0xEB5A, 0xFFFF, 0x0000, 0x0421, 0x0C60, 0x08A7, 0x090B, 0x1DF4, - 0x4AF9, 0x5100, 0x69E6, 0x2316, 0x1884, 0x2D27, 0x3DAC, 0x5251, 0x5EB4, - 0x6F38, 0x0000, 0x8000, 0x8820, 0x9041, 0x9C81, 0xA4A2, 0xB0E2, 0xB903, - 0xC544, 0xC986, 0xCDC9, 0xD60C, 0xDA4F, 0xE292, 0xE6D5, 0xEF38, 0x0000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x8000, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x8000, 0x8000, 0x8000, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, - 0x8000, 0x8000, 0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, - 0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x8000, 0x8000, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, - 0x8000, 0x8000, 0x8000, 0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, - 0x8000, 0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, - 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, -}; - +static u16 D_58000_8017A2B0[N_ARRAY_PAL][COLORS_PER_PAL] = { + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xE670, + 0xDDEE, 0xD58C, 0xC54A, 0xB508, 0xA8C6, 0x9884, 0x8C42}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xCD2B, + 0xD58C, 0xDE0E, 0xE670, 0xEEF1, 0xF753, 0xFFD5, 0xFFFF}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0x8C42, + 0x9884, 0xA8C6, 0xB508, 0xC54A, 0xD58C, 0xDDEE, 0xE670}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0x8000, + 0x8C42, 0x9884, 0xA8C6, 0xB508, 0xC54A, 0xD58C, 0xDDEE}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0x8000, + 0x8000, 0x8C42, 0x9884, 0xA8C6, 0xB508, 0xC54A, 0xD58C}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8C42, 0x9884, 0xA8C6, 0xB508, 0xC54A}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8C42, 0x9884, 0xA8C6, 0xB508}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8C42, 0x9884, 0xA8C6}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8C42, 0x9884}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8C42}}; +static u16 D_58000_8017A3F0[N_ARRAY_PAL][COLORS_PER_PAL] = { + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xA1C8, 0xC290, 0xD7DF, 0xFFFF, 0xA1C8, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xA5A8, 0xC270, 0xD7DF, 0xFFFF, 0x90C4, + 0xA5A8, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xA988, 0xC650, 0xD7DF, 0xFFFF, 0x8000, + 0x94C4, 0xA988, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xAD68, 0xCA50, 0xD7DF, 0xFFFF, 0x8000, + 0x8000, 0x94A4, 0xAD68, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xB148, 0xCA30, 0xD7DF, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x98A4, 0xB148, 0x8000, 0x8000, 0x8000}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xB528, 0xCE10, 0xD7DF, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8000, 0x9884, 0xB528, 0x8000, 0x8000}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xB908, 0xD210, 0xD7DF, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x9C84, 0xB908, 0x8000}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xBCE8, 0xD1F0, 0xD7DF, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x9C64, 0xBCE8}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xACA6, 0xC9CE, 0xD7DF, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0xACA6}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}}; +static u16 D_58000_8017A530[N_ARRAY_PAL][COLORS_PER_PAL] = { + {0x0000, 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, 0x8087, + 0x84A7, 0x88C7, 0x94E7, 0x9CE7, 0x9CE7, 0x9CE7, 0x9CE7}, + {0x0000, 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, 0x810F, + 0x8D6F, 0x91AF, 0xA9CF, 0xBDEF, 0xBDEF, 0xBDEF, 0xBDEF}, + {0x0000, 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, 0x8000, + 0x8087, 0x84A7, 0x88C7, 0x94E7, 0x9CE7, 0x9CE7, 0x9CE7}, + {0x0000, 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, 0x8000, + 0x8000, 0x810F, 0x8D6F, 0x91AF, 0xA9CF, 0xBDEF, 0xBDEF}, + {0x0000, 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8087, 0x84A7, 0x88C7, 0x94E7, 0x9CE7}, + {0x0000, 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8000, 0x810F, 0x8D6F, 0x91AF, 0xA9CF}, + {0x0000, 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8087, 0x84A7, 0x88C7}, + {0x0000, 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x810F, 0x8D6F}, + {0x0000, 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8087}, + {0x0000, 0x99A6, 0xAA0A, 0xBA6E, 0xCED3, 0xDF37, 0xEF9B, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}}; +static u16 D_58000_8017A670[N_ARRAY_PAL][COLORS_PER_PAL] = { + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xCD2B, + 0xD58C, 0xDE0E, 0xE670, 0xEEF1, 0xF753, 0xFFD5, 0xFFFF}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xD6B5, + 0xD68E, 0xCA0C, 0xC18A, 0xB928, 0xB0C7, 0xA886, 0xA085}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xD28F, + 0xC60D, 0xBD8B, 0xB529, 0xACC8, 0xA487, 0xA086, 0x8000}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xC20E, + 0xBDAD, 0xB54B, 0xACEA, 0xA4A9, 0xA088, 0x8000, 0x8000}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xB9CE, + 0xB56D, 0xAD0B, 0xA4AA, 0xA089, 0x8000, 0x8000, 0x8000}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xB18E, + 0xAD2D, 0xA4CC, 0xA08B, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xAD4E, + 0xA4CD, 0xA08C, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xA4EF, + 0xA08E, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0xA0B0, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0xAD54, 0xB5D6, 0xBE58, 0xC6DB, 0xCF5D, 0xD7DF, 0xFFFF, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}}; +static u16 D_58000_8017A7B0[N_ARRAY_PAL][COLORS_PER_PAL] = { + {0x0000, 0x8821, 0x9484, 0x84C6, 0x814C, 0x9E36, 0x9EDB, 0x8C8D, 0xA174, + 0xAC85, 0xC0CC, 0xC96E, 0xD610, 0xDA93, 0xDF37, 0xEF59}, + {0x0000, 0xE040, 0xE080, 0xE0C0, 0xE100, 0xE140, 0xE180, 0xE1C0, 0xE200, + 0xE240, 0xE280, 0xE2C0, 0xE300, 0xE340, 0xE380, 0xE3C0}, + {0x0000, 0xE044, 0xE084, 0xE0C4, 0xE104, 0xE144, 0xE184, 0xE1C4, 0xE204, + 0xE244, 0xE284, 0xE2C4, 0xE304, 0xE344, 0xE384, 0xE3C4}, + {0x0000, 0xE048, 0xE088, 0xE0C8, 0xE108, 0xE148, 0xE188, 0xE1C8, 0xE208, + 0xE248, 0xE288, 0xE2C8, 0xE308, 0xE348, 0xE388, 0xE3C8}, + {0x0000, 0xE04C, 0xE08C, 0xE0CC, 0xE10C, 0xE14C, 0xE18C, 0xE1CC, 0xE20C, + 0xE24C, 0xE28C, 0xE2CC, 0xE30C, 0xE34C, 0xE38C, 0xE3CC}, + {0x0000, 0xE050, 0xE090, 0xE0D0, 0xE110, 0xE150, 0xE190, 0xE1D0, 0xE210, + 0xE250, 0xE290, 0xE2D0, 0xE310, 0xE350, 0xE390, 0xE3D0}, + {0x0000, 0xE054, 0xE094, 0xE0D4, 0xE114, 0xE154, 0xE194, 0xE1D4, 0xE214, + 0xE254, 0xE294, 0xE2D4, 0xE314, 0xE354, 0xE394, 0xE3D4}, + {0x0000, 0xE058, 0xE098, 0xE0D8, 0xE118, 0xE158, 0xE198, 0xE1D8, 0xE218, + 0xE258, 0xE298, 0xE2D8, 0xE318, 0xE358, 0xE398, 0xE3D8}, + {0x0000, 0xE05C, 0xE09C, 0xE0DC, 0xE11C, 0xE15C, 0xE19C, 0xE1DC, 0xE21C, + 0xE25C, 0xE29C, 0xE2DC, 0xE31C, 0xE35C, 0xE39C, 0xE3DC}, + {0x0000, 0x8821, 0xB5AD, 0xD6B5, 0x8148, 0x9E31, 0x801F, 0xA08C, 0xC192, + 0xA4A7, 0xB0C7, 0xBD28, 0xC98A, 0xD1CC, 0xDA4D, 0xE2D0}, + {0x0000, 0x8C25, 0x9C68, 0xA0CD, 0xAD30, 0xAD93, 0xADF6, 0xC699, 0xE800, + 0x8000, 0xA507, 0xB149, 0xBDAC, 0xCA0F, 0xD672, 0xE2D5}, + {0x0000, 0x9444, 0xC255, 0xA94B, 0xA5AD, 0x9189, 0xA316, 0xA087, 0xB509, + 0xBDAC, 0x9CE7, 0xB18C, 0xC631, 0xD6B5, 0xEB5A, 0xFFFF}, + {0x0000, 0x0421, 0x0C60, 0x08A7, 0x090B, 0x1DF4, 0x4AF9, 0x5100, 0x69E6, + 0x2316, 0x1884, 0x2D27, 0x3DAC, 0x5251, 0x5EB4, 0x6F38}, + {0x0000, 0x8000, 0x8820, 0x9041, 0x9C81, 0xA4A2, 0xB0E2, 0xB903, 0xC544, + 0xC986, 0xCDC9, 0xD60C, 0xDA4F, 0xE292, 0xE6D5, 0xEF38}, + {0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}, + {0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000}}; static u16* g_WeaponCluts[] = { D_58000_8017A2B0, D_58000_8017A3F0, D_58000_8017A530, D_58000_8017A670, D_58000_8017A7B0, D_58000_8017A2B0, @@ -146,6 +147,8 @@ static u16* g_WeaponCluts[] = { static s32 g_HandId = HAND_ID; +static s32 D_58000_8017BB28; + #include "shared.h" static void EntityWeaponAttack(Entity* self) { diff --git a/src/weapon/w_037.c b/src/weapon/w_037.c index 9f234e86a..2233f4a38 100644 --- a/src/weapon/w_037.c +++ b/src/weapon/w_037.c @@ -2,17 +2,82 @@ // Weapon ID #37. Used by weapons: // Short sword, Jewel sword, Stone sword, Unknown#198 #include "weapon_private.h" -extern u16* g_WeaponCluts[]; -extern s32 g_HandId; -#include "shared.h" #include "w_037_1.h" #include "w_037_2.h" #define g_Animset w_037_1 #define g_Animset2 w_037_2 #include "sfx.h" -extern WeaponAnimation D_107000_8017A6A4[]; -extern s32 D_107000_8017BBE4; +u16 D_107000_8017A504[N_ARRAY_PAL][COLORS_PER_PAL] = { + {0x0000, 0x0421, 0x18C6, 0x2D6B, 0x4210, 0x5EB4, 0x6F37, 0x7FFF, 0x7C42, + 0x1084, 0x10EB, 0x2173, 0x2E18, 0x433C, 0x18DF, 0x07E1}, + {0x0000, 0x08C0, 0x10C0, 0x18C0, 0x20C0, 0x28C0, 0x30C0, 0x38C0, 0x40C0, + 0x48C0, 0x50C0, 0x58C0, 0x60C0, 0x68C0, 0x70C0, 0x78C0}, + {0x0000, 0x08C0, 0x10C0, 0x18C0, 0x20C0, 0x28C0, 0x30C0, 0x38C0, 0x40C0, + 0x48C0, 0x50C0, 0x58C0, 0x60C0, 0x68C0, 0x70C0, 0x78C0}, + {0x0000, 0x08C0, 0x10C0, 0x18C0, 0x20C0, 0x28C0, 0x30C0, 0x38C0, 0x40C0, + 0x48C0, 0x50C0, 0x58C0, 0x60C0, 0x68C0, 0x70C0, 0x78C0}, + {0x0000, 0x0900, 0x1100, 0x1900, 0x2100, 0x2900, 0x3100, 0x3900, 0x4100, + 0x4900, 0x5100, 0x5900, 0x6100, 0x6900, 0x7100, 0x7900}}; +u16 D_107000_8017A5A4[] = {0x0201, 0x0402, 0x0403, 0x0604, 0x0605, + 0x0606, 0x0607, 0x0608, 0x0609, 0xFFFF}; +u16 D_107000_8017A5B8[] = {0x080A, 0x0A0B, 0x0A0C, 0x060D, 0x060E, + 0x0613, 0x0614, 0x0615, 0x0616, 0xFFFF}; +u16 D_107000_8017A5CC[] = {0x080A, 0x0C0F, 0x0E10, 0x1011, 0x0612, + 0x0613, 0x0614, 0x0615, 0x0616, 0xFFFF}; +u16 D_107000_8017A5E0[] = { + 0x1217, 0x1418, 0x1419, 0x061A, 0x061B, 0x061C, 0xFFFF, 0x0000}; +u16 D_107000_8017A5F0[] = { + 0x161D, 0x181E, 0x181F, 0x0620, 0x0621, 0x0626, 0xFFFF, 0x0000}; +u16 D_107000_8017A600[] = { + 0x161D, 0x1A22, 0x1C23, 0x0624, 0x0625, 0x0626, 0xFFFF, 0x0000}; +u8 D_107000_8017A610[] = { + 0x00, 0x00, 0x00, 0x00, 0x03, 0xE8, 0x05, 0x04, 0x19, 0xF3, 0x18, 0x03, + 0xE0, 0xE1, 0x00, 0x00, 0xFB, 0xFB, 0x05, 0x04, 0x11, 0x04, 0x18, 0x03, + 0x07, 0x0F, 0x0E, 0x08, 0x13, 0x15, 0x0F, 0x07, 0x0D, 0x12, 0x11, 0x05, + 0xFF, 0xE7, 0x05, 0x04, 0x17, 0xF1, 0x18, 0x07, 0xF7, 0xE5, 0x05, 0x04, + 0x13, 0xF2, 0x18, 0x07, 0x0F, 0x02, 0x13, 0x0A, 0x1D, 0x08, 0x0B, 0x08}; +u8 D_107000_8017A64C[] = { + 0x00, 0x00, 0x00, 0x00, 0x03, 0xE8, 0x05, 0x06, 0x19, 0xF3, 0x1C, 0x05, + 0xE0, 0xE1, 0x00, 0x00, 0xFB, 0xFB, 0x09, 0x06, 0x11, 0x04, 0x1C, 0x05, + 0x07, 0x0F, 0x12, 0x0A, 0x13, 0x15, 0x13, 0x09, 0x0D, 0x12, 0x15, 0x07, + 0xFF, 0xE7, 0x09, 0x06, 0x17, 0xF1, 0x1C, 0x09, 0xF7, 0xE5, 0x09, 0x06, + 0x13, 0xF2, 0x1C, 0x09, 0x0F, 0x02, 0x17, 0x0C, 0x1D, 0x08, 0x0F, 0x0A}; +static u16* D_107000_8017A688[] = { + D_107000_8017A5A4, D_107000_8017A5A4, D_107000_8017A5B8, D_107000_8017A5CC, + D_107000_8017A5E0, D_107000_8017A5F0, D_107000_8017A600}; +static WeaponAnimation D_107000_8017A6A4[] = { + {D_107000_8017A688, D_107000_8017A610, 0, SFX_WEAPON_SWISH_B, 0xA7, 4, 0}, + {D_107000_8017A688, D_107000_8017A64C, 0, SFX_WEAPON_SWISH_B, 0xA7, 4, 0}, + {D_107000_8017A688, D_107000_8017A64C, 0, SFX_WEAPON_SWISH_B, 0xA7, 4, 0}, + {D_107000_8017A688, D_107000_8017A610, 0, SFX_WEAPON_SWISH_B, 0xA7, 4, 0}}; +static u8 D_107000_8017A6E4[][8] = { + {0x00, 0x50, 0x10, 0x50, 0x00, 0x60, 0x10, 0x60}, + {0x10, 0x50, 0x20, 0x50, 0x10, 0x60, 0x20, 0x60}, + {0x70, 0x40, 0x80, 0x40, 0x70, 0x50, 0x80, 0x50}, + {0x70, 0x30, 0x78, 0x30, 0x70, 0x38, 0x78, 0x38}, + {0x78, 0x30, 0x80, 0x30, 0x78, 0x38, 0x80, 0x38}, + {0x70, 0x38, 0x78, 0x38, 0x77, 0x40, 0x78, 0x40}}; +static s16 D_107000_8017A714[] = { + 0x0018, 0xFFF2, 0x0040, 0x0000, 0x0018, 0xFFF2, 0x0040, + 0x0000, 0x0014, 0x0002, 0x0040, 0x0000, 0x0012, 0x000E, + 0x0030, 0x0022, 0x0018, 0xFFF0, 0x0040, 0x0000, 0x0018, + 0xFFF2, 0x0040, 0x0000, 0x0018, 0x0004, 0x0030, 0x0022}; +static s16 D_107000_8017A74C[] = { + 0x01B0, 0x01B2, 0x01B4, 0x01B6, 0x01B8, 0x01BA}; +static s32 D_107000_8017A758[] = { + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}; +static AnimationFrame D_107000_8017A798[] = { + {0x0004, 0x0014}, {0x0007, 0x0015}, {0x0006, 0x0016}, {0x0003, 0x0017}, + {0x0003, 0x0018}, {0x0006, 0x0019}, {0x0002, 0x0015}, {0x0000, 0x0000}}; +static u16* g_WeaponCluts[] = {D_107000_8017A504, D_107000_8017A504}; +static s32 g_HandId = HAND_ID; + +s32 D_107000_8017BBE4; +Point16 D_107000_8017BBE8[0x50]; +s32 D_107000_8017BD28; + +#include "shared.h" static void EntityWeaponAttack(Entity* self) { WeaponAnimation* anim; @@ -73,8 +138,6 @@ static void EntityWeaponAttack(Entity* self) { self->rotPivotY = PLAYER.rotPivotY; } -extern u8 D_107000_8017A6E4[6][8]; - s32 func_107000_8017ADF8(Primitive* prim, s32 x, s32 y) { s32 size; s32 left; @@ -123,8 +186,6 @@ s32 func_107000_8017ADF8(Primitive* prim, s32 x, s32 y) { return 0; } -extern s16 D_107000_8017A714[]; - void func_107000_8017AEF0(Entity* ent, Point16* outPoint, bool arg2) { s32 idx; @@ -179,11 +240,6 @@ void func_107000_8017B0AC(Entity* ent, Point16* outPoint, bool arg2) { } } -extern s16 D_107000_8017A74C[]; -extern s32 D_107000_8017A758[]; -extern Point16 D_107000_8017BBE8[]; -extern s32 D_107000_8017BD28; - s32 func_ptr_80170004(Entity* self) { Point16 basePoint; Primitive* prim; @@ -329,8 +385,6 @@ s32 func_ptr_80170004(Entity* self) { } } -extern AnimationFrame D_107000_8017A798[]; - static void func_ptr_80170008(Entity* self) { Collider collider; s16 distX; diff --git a/src/weapon/w_041.c b/src/weapon/w_041.c index dacbc5730..91703429a 100644 --- a/src/weapon/w_041.c +++ b/src/weapon/w_041.c @@ -145,7 +145,9 @@ static s32 g_HandId = HAND_ID; #include "shared.h" -extern s32 D_123000_8017B200; +s32 D_123000_8017B200; +s32 D_123000_8017B204; +s32 D_123000_8017B208; void func_123000_8017A914(void) { RECT rect; @@ -238,11 +240,6 @@ Entity* func_123000_8017A994(Entity* self, s16 angleTarget, s16 tolerance) { return NULL; } -extern s32 D_123000_8017A53C[]; -extern s32 D_123000_8017A54C[]; -extern s32 D_123000_8017B204; -extern s32 D_123000_8017B208; - void EntityWeaponAttack(Entity* self) { u8 pad[38]; s32 speedX; diff --git a/src/weapon/w_045.c b/src/weapon/w_045.c index c1fc1d05c..172fafae8 100644 --- a/src/weapon/w_045.c +++ b/src/weapon/w_045.c @@ -9,12 +9,11 @@ #define g_Animset2 w_045_2 #include "sfx.h" -static u16 D_13F000_8017A330[] = { - 0x0000, 0x8822, 0x83E0, 0xECE5, 0xF68A, 0x8048, 0x884C, 0x88B5, - 0x8D39, 0x821C, 0x9CA4, 0xAD29, 0xBDAD, 0xD231, 0xE6B5, 0xEB7A, - 0x0000, 0xEB5A, 0xEAB1, 0xDE29, 0xE4E4, 0xA884, 0x8C00, 0x83E0, - 0x802D, 0x80DD, 0xAA5F, 0x84D1, 0x98C6, 0xB5AD, 0xC631, 0x8421, -}; +static u16 D_13F000_8017A330[N_ARRAY_PAL][COLORS_PER_PAL] = { + {0x0000, 0x8822, 0x83E0, 0xECE5, 0xF68A, 0x8048, 0x884C, 0x88B5, 0x8D39, + 0x821C, 0x9CA4, 0xAD29, 0xBDAD, 0xD231, 0xE6B5, 0xEB7A}, + {0x0000, 0xEB5A, 0xEAB1, 0xDE29, 0xE4E4, 0xA884, 0x8C00, 0x83E0, 0x802D, + 0x80DD, 0xAA5F, 0x84D1, 0x98C6, 0xB5AD, 0xC631, 0x8421}}; static u16* g_WeaponCluts[] = {D_13F000_8017A330}; static s32 g_HandId = HAND_ID; diff --git a/src/weapon/w_051.c b/src/weapon/w_051.c index d396b74e2..4ff4271d5 100644 --- a/src/weapon/w_051.c +++ b/src/weapon/w_051.c @@ -9,29 +9,25 @@ #define g_Animset2 w_051_2 #include "sfx.h" -static u16 D_169000_8017A950[] = { - 0x0000, 0x0421, 0x04CA, 0x152F, 0x2173, 0x1218, 0x1EDF, 0x20A4, - 0x03E0, 0x3BF6, 0x0623, 0x0000, 0x45A7, 0x5A4F, 0x5F37, 0x6F99, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, -}; -static u16 D_169000_8017A990[] = { - 0x0000, 0x0421, 0x04CA, 0x152F, 0x2173, 0x1218, 0x1EDF, 0x20A4, - 0x03E0, 0x3BF6, 0x0623, 0x0000, 0x01DB, 0x0131, 0x00CB, 0x4215, - 0x0000, 0x821F, 0x81FD, 0x81DB, 0x81B9, 0x8197, 0x8175, 0x8153, - 0x8131, 0x810F, 0x80ED, 0x80CB, 0x80A9, 0x8087, 0x8065, 0x8044, -}; - -static u16 D_169000_8017A9D0[] = { - 0x0000, 0x0421, 0x04CA, 0x152F, 0x2173, 0x1218, 0x1EDF, 0x20A4, - 0x03E0, 0x3BF6, 0x0623, 0x0000, 0x45A7, 0x5A4F, 0x5F37, 0x6F99, - 0x0000, 0xFE00, 0xF5E0, 0xEDC0, 0xE5A0, 0xDD80, 0xD560, 0xCD40, - 0xC520, 0xBD00, 0xB4E0, 0xACC0, 0xA4A0, 0x9C80, 0x9460, 0x9040, - 0x0000, 0x0421, 0x04CA, 0x152F, 0x2173, 0x1218, 0x1EDF, 0x20A4, - 0x03E0, 0x3BF6, 0x0623, 0x0000, 0x08A2, 0x0882, 0x0862, 0x0842, - 0x0000, 0x83E0, 0x83A0, 0x8360, 0x8320, 0x82E0, 0x82A0, 0x8260, - 0x8220, 0x81E0, 0x81A0, 0x8160, 0x8120, 0x80E0, 0x80A0, 0x8080, -}; +static u16 D_169000_8017A950[N_ARRAY_PAL][COLORS_PER_PAL] = { + {0x0000, 0x0421, 0x04CA, 0x152F, 0x2173, 0x1218, 0x1EDF, 0x20A4, 0x03E0, + 0x3BF6, 0x0623, 0x0000, 0x45A7, 0x5A4F, 0x5F37, 0x6F99}, + {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}}; +static u16 D_169000_8017A990[N_ARRAY_PAL][COLORS_PER_PAL] = { + {0x0000, 0x0421, 0x04CA, 0x152F, 0x2173, 0x1218, 0x1EDF, 0x20A4, 0x03E0, + 0x3BF6, 0x0623, 0x0000, 0x01DB, 0x0131, 0x00CB, 0x4215}, + {0x0000, 0x821F, 0x81FD, 0x81DB, 0x81B9, 0x8197, 0x8175, 0x8153, 0x8131, + 0x810F, 0x80ED, 0x80CB, 0x80A9, 0x8087, 0x8065, 0x8044}}; +static u16 D_169000_8017A9D0[N_ARRAY_PAL][COLORS_PER_PAL] = { + {0x0000, 0x0421, 0x04CA, 0x152F, 0x2173, 0x1218, 0x1EDF, 0x20A4, 0x03E0, + 0x3BF6, 0x0623, 0x0000, 0x45A7, 0x5A4F, 0x5F37, 0x6F99}, + {0x0000, 0xFE00, 0xF5E0, 0xEDC0, 0xE5A0, 0xDD80, 0xD560, 0xCD40, 0xC520, + 0xBD00, 0xB4E0, 0xACC0, 0xA4A0, 0x9C80, 0x9460, 0x9040}, + {0x0000, 0x0421, 0x04CA, 0x152F, 0x2173, 0x1218, 0x1EDF, 0x20A4, 0x03E0, + 0x3BF6, 0x0623, 0x0000, 0x08A2, 0x0882, 0x0862, 0x0842}, + {0x0000, 0x83E0, 0x83A0, 0x8360, 0x8320, 0x82E0, 0x82A0, 0x8260, 0x8220, + 0x81E0, 0x81A0, 0x8160, 0x8120, 0x80E0, 0x80A0, 0x8080}}; static s16 D_169000_8017AA50[] = { 0x201, 0x402, 0x3203, 0x3204, 0x3205, 0x3206, 0x3407, @@ -211,10 +207,7 @@ static u16 D_169000_8017AEA4[] = { }; static u16* g_WeaponCluts[] = { - D_169000_8017A950, - D_169000_8017A990, - D_169000_8017A9D0, -}; + D_169000_8017A950, D_169000_8017A990, D_169000_8017A9D0}; static s32 g_HandId = 0; diff --git a/src/weapon/w_052.c b/src/weapon/w_052.c index 85296ab0f..e1ec75967 100644 --- a/src/weapon/w_052.c +++ b/src/weapon/w_052.c @@ -167,11 +167,16 @@ static s32 g_HandId = HAND_ID; #include "shared.h" -extern s32 D_170000_8017CB84; -extern s16 D_170000_8017CB88[]; -extern s16 D_170000_8017CBA0[]; -extern s16 D_170000_8017CBB8[]; -extern f32 D_170000_8017CBD0[11][4]; +#define NUM_UNK 11 + +s32 D_170000_8017CB84; +s16 D_170000_8017CB88[NUM_UNK]; +STATIC_PAD_BSS(2); +s16 D_170000_8017CBA0[NUM_UNK]; +STATIC_PAD_BSS(2); +s16 D_170000_8017CBB8[NUM_UNK]; +STATIC_PAD_BSS(2); +f32 D_170000_8017CBD0[NUM_UNK][4]; static void EntityWeaponAttack(Entity* self) { s32 anim; @@ -421,7 +426,7 @@ static void EntityWeaponShieldSpell(Entity* self) { DRAW_UNK_40 | DRAW_TPAGE2 | DRAW_TPAGE | DRAW_COLORS | DRAW_TRANSP; prim = prim->next; uvPtr = &D_170000_8017ABC4; - for (i = 0; i < 11; i++) { + for (i = 0; i < NUM_UNK; i++) { prim->u0 = prim->u2 = *uvPtr++; prim->v0 = prim->v1 = *uvPtr++; prim->u1 = prim->u3 = *uvPtr++; @@ -438,13 +443,13 @@ static void EntityWeaponShieldSpell(Entity* self) { prim->r0 = (rand() & 0xF) + 1; prim = prim->next; } - for (i = 0; i < 11; i++) { + for (i = 0; i < NUM_UNK; i++) { prim->r0 = prim->r2 = D_170000_8017ABF0[i * 4 + 0]; prim->g0 = prim->g2 = D_170000_8017ABF0[i * 4 + 1]; prim->b0 = prim->b2 = D_170000_8017ABF0[i * 4 + 2]; - prim->r1 = prim->r3 = D_170000_8017ABF0[(i + 1) % 11 * 4 + 0]; - prim->g1 = prim->g3 = D_170000_8017ABF0[(i + 1) % 11 * 4 + 1]; - prim->b1 = prim->b3 = D_170000_8017ABF0[(i + 1) % 11 * 4 + 2]; + prim->r1 = prim->r3 = D_170000_8017ABF0[(i + 1) % NUM_UNK * 4 + 0]; + prim->g1 = prim->g3 = D_170000_8017ABF0[(i + 1) % NUM_UNK * 4 + 1]; + prim->b1 = prim->b3 = D_170000_8017ABF0[(i + 1) % NUM_UNK * 4 + 2]; prim->drawMode = DRAW_HIDE; prim->type = PRIM_G4; prim = prim->next; @@ -543,7 +548,7 @@ static void EntityWeaponShieldSpell(Entity* self) { self->ext.shield.unk92 += self->ext.shield.unk86; if (--self->ext.shield.unk80 == 0) { prim = prim->next; - for (i = 0; i < 11; i++) { + for (i = 0; i < NUM_UNK; i++) { prim->g0 = 5; prim = prim->next; } @@ -597,10 +602,10 @@ static void EntityWeaponShieldSpell(Entity* self) { selfY = PLAYER.posY.i.hi - playerYOffset; primXScale = self->ext.shield.unk90; primYScale = self->ext.shield.unk90 * self->ext.shield.unk98 / 256; - for (i = 0; i < 11; i++) { + for (i = 0; i < NUM_UNK; i++) { switch (prim->g0) { case 0: - angle = self->ext.shield.unk92 + ((i << 0xC) / 11); + angle = self->ext.shield.unk92 + ((i << 0xC) / NUM_UNK); primXCenter = selfX + (((rcos(angle) >> 4) * primXScale) >> 8); primYCenter = selfY - (((rsin(angle) >> 4) * primYScale) >> 8); if (i == 6) { @@ -647,7 +652,7 @@ static void EntityWeaponShieldSpell(Entity* self) { if (var_s8 == 0) { return; } - for (i = 0; i < 11; i++) { + for (i = 0; i < NUM_UNK; i++) { if (var_s8 == 2) { if (prim->r0 > 8) { prim->r0 -= 4; @@ -687,11 +692,13 @@ static void EntityWeaponShieldSpell(Entity* self) { } } else { prim->x0 = prim->x2 = D_170000_8017CB88[i]; - prim->x1 = prim->x3 = D_170000_8017CB88[(i + 1) % 11]; + prim->x1 = prim->x3 = D_170000_8017CB88[(i + 1) % NUM_UNK]; prim->y0 = D_170000_8017CBA0[i] - self->ext.shield.unk96; prim->y2 = D_170000_8017CBA0[i] + self->ext.shield.unk96; - prim->y1 = D_170000_8017CBA0[(i + 1) % 11] - self->ext.shield.unk96; - prim->y3 = D_170000_8017CBA0[(i + 1) % 11] + self->ext.shield.unk96; + prim->y1 = + D_170000_8017CBA0[(i + 1) % NUM_UNK] - self->ext.shield.unk96; + prim->y3 = + D_170000_8017CBA0[(i + 1) % NUM_UNK] + self->ext.shield.unk96; prim->priority = D_170000_8017CBB8[i]; } prim->drawMode = DRAW_TPAGE2 | DRAW_TPAGE | DRAW_TRANSP; @@ -713,7 +720,7 @@ s32 func_ptr_80170004(Entity* self) { switch (self->step) { case 0: - self->primIndex = g_api.AllocPrimitives(PRIM_GT4, 11); + self->primIndex = g_api.AllocPrimitives(PRIM_GT4, NUM_UNK); if (self->primIndex == -1) { DestroyEntity(self); return; @@ -731,7 +738,7 @@ s32 func_ptr_80170004(Entity* self) { self->flags = FLAG_KEEP_ALIVE_OFFCAMERA | FLAG_HAS_PRIMS | FLAG_UNK_10000; prim = &g_PrimBuf[self->primIndex]; - for (i = 0; i < 11; i++) { + for (i = 0; i < NUM_UNK; i++) { prim->u0 = prim->u2 = *uvPtr++; prim->v0 = prim->v1 = *uvPtr++; prim->u1 = prim->u3 = *uvPtr++; @@ -760,14 +767,14 @@ s32 func_ptr_80170004(Entity* self) { if (self->ext.shield.unk94 > 0xC0) { self->ext.shield.unk94 = 0xC0; } - for (i = 0; i < 11; i++) { + for (i = 0; i < NUM_UNK; i++) { D_170000_8017CBD0[i][0].val += D_170000_8017CBD0[i][2].val; D_170000_8017CBD0[i][1].val += D_170000_8017CBD0[i][3].val; D_170000_8017CBD0[i][3].val += 0x2000; } if (--self->ext.shield.unk80 == 0) { prim = &g_PrimBuf[self->primIndex]; - for (i = 0; i < 11; i++) { + for (i = 0; i < NUM_UNK; i++) { prim->g0 = 1; prim = prim->next; } @@ -787,7 +794,7 @@ s32 func_ptr_80170004(Entity* self) { break; } prim = &g_PrimBuf[self->primIndex]; - for (i = 0; i < 11; i++) { + for (i = 0; i < NUM_UNK; i++) { switch (prim->g0) { case 0: primXCenter = D_170000_8017CBD0[i][0].i.hi; diff --git a/weapon0.ld b/weapon0.ld index 47ccc8654..df74534d2 100644 --- a/weapon0.ld +++ b/weapon0.ld @@ -4,6 +4,7 @@ SECTIONS { *(.data) *(.rodata) *(.text) + *(.bss) } end = .;