diff --git a/include/z64collision_check.h b/include/z64collision_check.h index ef421c4258..de97ad4639 100644 --- a/include/z64collision_check.h +++ b/include/z64collision_check.h @@ -391,4 +391,41 @@ typedef enum { #define OCLINE_NONE 0 // Did not have an OcLine collision #define OCLINE_HIT (1 << 0) // Had an OcLine collision +#define DMG_ENTRY(damage, effect) ((damage) | ((effect) << 4)) + +// These flags are not to be used in code until we figure out how we want to format them. They are only here for reference +#define DMG_DEKU_NUT (1 << 0x00) +#define DMG_DEKU_STICK (1 << 0x01) +#define DMG_HORSE_TRAMPLE (1 << 0x02) +#define DMG_EXPLOSIVES (1 << 0x03) +#define DMG_ZORA_BOOMERANG (1 << 0x04) +#define DMG_NORMAL_ARROW (1 << 0x05) +#define DMG_UNK_0x06 (1 << 0x06) +#define DMG_HOOKSHOT (1 << 0x07) +#define DMG_GORON_PUNCH (1 << 0x08) +#define DMG_SWORD (1 << 0x09) +#define DMG_GORON_POUND (1 << 0x0A) +#define DMG_FIRE_ARROW (1 << 0x0B) +#define DMG_ICE_ARROW (1 << 0x0C) +#define DMG_LIGHT_ARROW (1 << 0x0D) +#define DMG_GORON_SPIKES (1 << 0x0E) +#define DMG_DEKU_SPIN (1 << 0x0F) +#define DMG_DEKU_BUBBLE (1 << 0x10) +#define DMG_DEKU_LAUNCH (1 << 0x11) +#define DMG_UNK_0x12 (1 << 0x12) +#define DMG_ZORA_BARRIER (1 << 0x13) +#define DMG_NORMAL_SHIELD (1 << 0x14) +#define DMG_LIGHT_RAY (1 << 0x15) +#define DMG_THROWN_OBJECT (1 << 0x16) +#define DMG_ZORA_PUNCH (1 << 0x17) +#define DMG_SPIN_ATTACK (1 << 0x18) +#define DMG_SWORD_BEAM (1 << 0x19) +#define DMG_NORMAL_ROLL (1 << 0x1A) +#define DMG_UNK_0x1B (1 << 0x1B) +#define DMG_UNK_0x1C (1 << 0x1C) +#define DMG_UNBLOCKABLE (1 << 0x1D) +#define DMG_UNK_0x1E (1 << 0x1E) +#define DMG_POWDER_KEG (1 << 0x1F) + + #endif diff --git a/src/code/z_collision_btltbls.c b/src/code/z_collision_btltbls.c index 4bc9708925..ccd18cb459 100644 --- a/src/code/z_collision_btltbls.c +++ b/src/code/z_collision_btltbls.c @@ -2,52 +2,788 @@ #include DamageTable sDamageTablePresets[] = { - { { 0x10, 0x01, 0x01, 0x02, 0xE0, 0x01, 0xF2, 0x10, 0xF1, 0xF2, 0xF2, 0x22, 0x01, 0x01, 0x00, 0x00, - 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x10, 0x01, 0x01, 0x02, 0xE0, 0x01, 0xF2, 0x10, 0xF1, 0xF2, 0xF2, 0x22, 0x01, 0x01, 0x00, 0x00, - 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x10, 0x02, 0x01, 0x02, 0x10, 0x02, 0x02, 0x02, 0x01, 0x02, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, - 0x00, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x02, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x10, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x10, 0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0x02, 0x01, 0x02, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x02, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x10, 0x01, 0x01, 0x00, 0x10, 0x01, 0x01, 0x10, 0x01, 0x01, 0x01, 0x01, 0x31, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x00, 0x03, 0x00, 0x06, 0x00, 0x04, 0x04, 0x00, 0x02, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x00, 0x03, 0x00, 0x06, 0x00, 0x04, 0x04, 0x00, 0x02, 0x06, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x01, 0x02, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x02, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x10, 0x01, 0x00, 0xE2, 0x10, 0x01, 0x02, 0x10, 0xF1, 0xF2, 0xF2, 0x22, 0x32, 0x01, 0x00, 0x00, - 0x00, 0x22, 0x32, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x02, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x10, 0x01, 0x01, 0x02, 0x10, 0x01, 0x02, 0x10, 0x01, 0x02, 0x02, 0x22, 0x01, 0x01, 0x00, 0x00, - 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0x02, 0x01, 0x02, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x02, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0x02, 0x01, 0x02, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x02, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x10, 0x01, 0x00, 0x02, 0x10, 0x01, 0x02, 0x10, 0xF1, 0xF2, 0xF2, 0x22, 0x32, 0x01, 0x00, 0x00, - 0x00, 0x22, 0x32, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x10, 0x01, 0x01, 0xF2, 0xE0, 0x01, 0xD2, 0x10, 0x01, 0x02, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x10, 0x01, 0x00, 0xF0, 0x10, 0x01, 0xF0, 0x10, 0x01, 0x02, 0x02, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, - { { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x1), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(1, 0x0), + /* Explosives */ DMG_ENTRY(2, 0x0), + /* Zora boomerang */ DMG_ENTRY(0, 0xE), + /* Normal arrow */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(2, 0xF), + /* Hookshot */ DMG_ENTRY(0, 0x1), + /* Goron punch */ DMG_ENTRY(1, 0xF), + /* Sword */ DMG_ENTRY(2, 0xF), + /* Goron pound */ DMG_ENTRY(2, 0xF), + /* Fire arrow */ DMG_ENTRY(2, 0x2), + /* Ice arrow */ DMG_ENTRY(1, 0x0), + /* Light arrow */ DMG_ENTRY(1, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(2, 0x2), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(2, 0x0), + /* Spin attack */ DMG_ENTRY(2, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x1), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(1, 0x0), + /* Explosives */ DMG_ENTRY(2, 0x0), + /* Zora boomerang */ DMG_ENTRY(0, 0xE), + /* Normal arrow */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(2, 0xF), + /* Hookshot */ DMG_ENTRY(0, 0x1), + /* Goron punch */ DMG_ENTRY(1, 0xF), + /* Sword */ DMG_ENTRY(2, 0xF), + /* Goron pound */ DMG_ENTRY(2, 0xF), + /* Fire arrow */ DMG_ENTRY(2, 0x2), + /* Ice arrow */ DMG_ENTRY(1, 0x0), + /* Light arrow */ DMG_ENTRY(1, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(2, 0x2), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(2, 0x0), + /* Spin attack */ DMG_ENTRY(2, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x1), + /* Deku Stick */ DMG_ENTRY(2, 0x0), + /* Horse trample */ DMG_ENTRY(1, 0x0), + /* Explosives */ DMG_ENTRY(2, 0x0), + /* Zora boomerang */ DMG_ENTRY(0, 0x1), + /* Normal arrow */ DMG_ENTRY(2, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(2, 0x0), + /* Hookshot */ DMG_ENTRY(2, 0x0), + /* Goron punch */ DMG_ENTRY(1, 0x0), + /* Sword */ DMG_ENTRY(2, 0x0), + /* Goron pound */ DMG_ENTRY(4, 0x0), + /* Fire arrow */ DMG_ENTRY(4, 0x0), + /* Ice arrow */ DMG_ENTRY(4, 0x0), + /* Light arrow */ DMG_ENTRY(4, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(3, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(2, 0x0), + /* Spin attack */ DMG_ENTRY(4, 0x0), + /* Sword beam */ DMG_ENTRY(2, 0x0), + /* Normal Roll */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(8, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x1), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(1, 0x0), + /* Explosives */ DMG_ENTRY(2, 0x0), + /* Zora boomerang */ DMG_ENTRY(1, 0x0), + /* Normal arrow */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(1, 0x0), + /* Hookshot */ DMG_ENTRY(1, 0x0), + /* Goron punch */ DMG_ENTRY(1, 0x0), + /* Sword */ DMG_ENTRY(1, 0x0), + /* Goron pound */ DMG_ENTRY(1, 0x0), + /* Fire arrow */ DMG_ENTRY(1, 0x0), + /* Ice arrow */ DMG_ENTRY(1, 0x0), + /* Light arrow */ DMG_ENTRY(1, 0x0), + /* Goron spikes */ DMG_ENTRY(1, 0x0), + /* Deku spin */ DMG_ENTRY(1, 0x0), + /* Deku bubble */ DMG_ENTRY(1, 0x0), + /* Deku launch */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(1, 0x0), + /* Zora barrier */ DMG_ENTRY(1, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(2, 0x0), + /* Zora punch */ DMG_ENTRY(2, 0x0), + /* Spin attack */ DMG_ENTRY(2, 0x0), + /* Sword beam */ DMG_ENTRY(2, 0x0), + /* Normal Roll */ DMG_ENTRY(2, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(2, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x1), + /* Deku Stick */ DMG_ENTRY(2, 0x0), + /* Horse trample */ DMG_ENTRY(1, 0x0), + /* Explosives */ DMG_ENTRY(2, 0x0), + /* Zora boomerang */ DMG_ENTRY(1, 0x0), + /* Normal arrow */ DMG_ENTRY(2, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(2, 0x0), + /* Hookshot */ DMG_ENTRY(2, 0x0), + /* Goron punch */ DMG_ENTRY(1, 0x0), + /* Sword */ DMG_ENTRY(2, 0x0), + /* Goron pound */ DMG_ENTRY(4, 0x0), + /* Fire arrow */ DMG_ENTRY(4, 0x0), + /* Ice arrow */ DMG_ENTRY(4, 0x0), + /* Light arrow */ DMG_ENTRY(4, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(2, 0x0), + /* Spin attack */ DMG_ENTRY(4, 0x0), + /* Sword beam */ DMG_ENTRY(2, 0x0), + /* Normal Roll */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(8, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x1), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(1, 0x0), + /* Explosives */ DMG_ENTRY(0, 0x0), + /* Zora boomerang */ DMG_ENTRY(0, 0x1), + /* Normal arrow */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(1, 0x0), + /* Hookshot */ DMG_ENTRY(0, 0x1), + /* Goron punch */ DMG_ENTRY(1, 0x0), + /* Sword */ DMG_ENTRY(1, 0x0), + /* Goron pound */ DMG_ENTRY(1, 0x0), + /* Fire arrow */ DMG_ENTRY(1, 0x0), + /* Ice arrow */ DMG_ENTRY(1, 0x3), + /* Light arrow */ DMG_ENTRY(1, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(1, 0x3), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(1, 0x0), + /* Spin attack */ DMG_ENTRY(1, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x0), + /* Deku Stick */ DMG_ENTRY(3, 0x0), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(6, 0x0), + /* Zora boomerang */ DMG_ENTRY(0, 0x0), + /* Normal arrow */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(4, 0x0), + /* Hookshot */ DMG_ENTRY(0, 0x0), + /* Goron punch */ DMG_ENTRY(2, 0x0), + /* Sword */ DMG_ENTRY(6, 0x0), + /* Goron pound */ DMG_ENTRY(0, 0x0), + /* Fire arrow */ DMG_ENTRY(6, 0x0), + /* Ice arrow */ DMG_ENTRY(0, 0x0), + /* Light arrow */ DMG_ENTRY(0, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(0, 0x0), + /* Zora punch */ DMG_ENTRY(0, 0x0), + /* Spin attack */ DMG_ENTRY(0, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x0), + /* Deku Stick */ DMG_ENTRY(3, 0x0), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(6, 0x0), + /* Zora boomerang */ DMG_ENTRY(0, 0x0), + /* Normal arrow */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(4, 0x0), + /* Hookshot */ DMG_ENTRY(0, 0x0), + /* Goron punch */ DMG_ENTRY(2, 0x0), + /* Sword */ DMG_ENTRY(6, 0x0), + /* Goron pound */ DMG_ENTRY(0, 0x0), + /* Fire arrow */ DMG_ENTRY(6, 0x0), + /* Ice arrow */ DMG_ENTRY(6, 0x0), + /* Light arrow */ DMG_ENTRY(0, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(4, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(0, 0x0), + /* Zora punch */ DMG_ENTRY(0, 0x0), + /* Spin attack */ DMG_ENTRY(0, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x0), + /* Deku Stick */ DMG_ENTRY(3, 0x0), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(0, 0x0), + /* Zora boomerang */ DMG_ENTRY(0, 0x0), + /* Normal arrow */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(4, 0x0), + /* Hookshot */ DMG_ENTRY(0, 0x0), + /* Goron punch */ DMG_ENTRY(2, 0x0), + /* Sword */ DMG_ENTRY(0, 0x0), + /* Goron pound */ DMG_ENTRY(0, 0x0), + /* Fire arrow */ DMG_ENTRY(0, 0x0), + /* Ice arrow */ DMG_ENTRY(0, 0x0), + /* Light arrow */ DMG_ENTRY(0, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(4, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(0, 0x0), + /* Zora punch */ DMG_ENTRY(0, 0x0), + /* Spin attack */ DMG_ENTRY(0, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x0), + /* Deku Stick */ DMG_ENTRY(2, 0x0), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(0, 0x0), + /* Zora boomerang */ DMG_ENTRY(1, 0x0), + /* Normal arrow */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(2, 0x0), + /* Hookshot */ DMG_ENTRY(2, 0x0), + /* Goron punch */ DMG_ENTRY(1, 0x0), + /* Sword */ DMG_ENTRY(2, 0x0), + /* Goron pound */ DMG_ENTRY(4, 0x0), + /* Fire arrow */ DMG_ENTRY(0, 0x0), + /* Ice arrow */ DMG_ENTRY(4, 0x0), + /* Light arrow */ DMG_ENTRY(0, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(2, 0x0), + /* Spin attack */ DMG_ENTRY(4, 0x0), + /* Sword beam */ DMG_ENTRY(2, 0x0), + /* Normal Roll */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(8, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x1), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(2, 0xE), + /* Zora boomerang */ DMG_ENTRY(0, 0x1), + /* Normal arrow */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(2, 0x0), + /* Hookshot */ DMG_ENTRY(0, 0x1), + /* Goron punch */ DMG_ENTRY(1, 0xF), + /* Sword */ DMG_ENTRY(2, 0xF), + /* Goron pound */ DMG_ENTRY(2, 0xF), + /* Fire arrow */ DMG_ENTRY(2, 0x2), + /* Ice arrow */ DMG_ENTRY(2, 0x3), + /* Light arrow */ DMG_ENTRY(1, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(2, 0x2), + /* UNK_DMG_0x12 */ DMG_ENTRY(2, 0x3), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(2, 0x0), + /* Spin attack */ DMG_ENTRY(2, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x0), + /* Deku Stick */ DMG_ENTRY(0, 0x0), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(0, 0x0), + /* Zora boomerang */ DMG_ENTRY(0, 0x0), + /* Normal arrow */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(0, 0x0), + /* Hookshot */ DMG_ENTRY(0, 0x0), + /* Goron punch */ DMG_ENTRY(9, 0x0), + /* Sword */ DMG_ENTRY(0, 0x0), + /* Goron pound */ DMG_ENTRY(0, 0x0), + /* Fire arrow */ DMG_ENTRY(0, 0x0), + /* Ice arrow */ DMG_ENTRY(0, 0x0), + /* Light arrow */ DMG_ENTRY(0, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(0, 0x0), + /* Zora punch */ DMG_ENTRY(0, 0x0), + /* Spin attack */ DMG_ENTRY(0, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x0), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(0, 0x0), + /* Zora boomerang */ DMG_ENTRY(0, 0x0), + /* Normal arrow */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(4, 0x0), + /* Hookshot */ DMG_ENTRY(0, 0x0), + /* Goron punch */ DMG_ENTRY(2, 0x0), + /* Sword */ DMG_ENTRY(4, 0x0), + /* Goron pound */ DMG_ENTRY(4, 0x0), + /* Fire arrow */ DMG_ENTRY(0, 0x0), + /* Ice arrow */ DMG_ENTRY(0, 0x0), + /* Light arrow */ DMG_ENTRY(0, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(4, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(0, 0x0), + /* Zora punch */ DMG_ENTRY(0, 0x0), + /* Spin attack */ DMG_ENTRY(0, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x1), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(1, 0x0), + /* Explosives */ DMG_ENTRY(2, 0x0), + /* Zora boomerang */ DMG_ENTRY(0, 0x1), + /* Normal arrow */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(2, 0x0), + /* Hookshot */ DMG_ENTRY(0, 0x1), + /* Goron punch */ DMG_ENTRY(1, 0x0), + /* Sword */ DMG_ENTRY(2, 0x0), + /* Goron pound */ DMG_ENTRY(2, 0x0), + /* Fire arrow */ DMG_ENTRY(2, 0x2), + /* Ice arrow */ DMG_ENTRY(1, 0x0), + /* Light arrow */ DMG_ENTRY(1, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(2, 0x2), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(1, 0x0), + /* Spin attack */ DMG_ENTRY(1, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(1, 0x0), + /* Deku Stick */ DMG_ENTRY(2, 0x0), + /* Horse trample */ DMG_ENTRY(1, 0x0), + /* Explosives */ DMG_ENTRY(2, 0x0), + /* Zora boomerang */ DMG_ENTRY(1, 0x0), + /* Normal arrow */ DMG_ENTRY(2, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(2, 0x0), + /* Hookshot */ DMG_ENTRY(2, 0x0), + /* Goron punch */ DMG_ENTRY(1, 0x0), + /* Sword */ DMG_ENTRY(2, 0x0), + /* Goron pound */ DMG_ENTRY(4, 0x0), + /* Fire arrow */ DMG_ENTRY(4, 0x0), + /* Ice arrow */ DMG_ENTRY(4, 0x0), + /* Light arrow */ DMG_ENTRY(4, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(2, 0x0), + /* Spin attack */ DMG_ENTRY(4, 0x0), + /* Sword beam */ DMG_ENTRY(2, 0x0), + /* Normal Roll */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(8, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x0), + /* Deku Stick */ DMG_ENTRY(0, 0x0), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(0, 0x0), + /* Zora boomerang */ DMG_ENTRY(0, 0x0), + /* Normal arrow */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(0, 0x0), + /* Hookshot */ DMG_ENTRY(0, 0x0), + /* Goron punch */ DMG_ENTRY(0, 0x0), + /* Sword */ DMG_ENTRY(0, 0x0), + /* Goron pound */ DMG_ENTRY(0, 0x0), + /* Fire arrow */ DMG_ENTRY(0, 0x0), + /* Ice arrow */ DMG_ENTRY(0, 0x0), + /* Light arrow */ DMG_ENTRY(0, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(0, 0x0), + /* Zora punch */ DMG_ENTRY(0, 0x0), + /* Spin attack */ DMG_ENTRY(0, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x0), + /* Deku Stick */ DMG_ENTRY(2, 0x0), + /* Horse trample */ DMG_ENTRY(1, 0x0), + /* Explosives */ DMG_ENTRY(2, 0x0), + /* Zora boomerang */ DMG_ENTRY(1, 0x0), + /* Normal arrow */ DMG_ENTRY(2, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(2, 0x0), + /* Hookshot */ DMG_ENTRY(2, 0x0), + /* Goron punch */ DMG_ENTRY(1, 0x0), + /* Sword */ DMG_ENTRY(2, 0x0), + /* Goron pound */ DMG_ENTRY(4, 0x0), + /* Fire arrow */ DMG_ENTRY(4, 0x0), + /* Ice arrow */ DMG_ENTRY(4, 0x0), + /* Light arrow */ DMG_ENTRY(4, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(2, 0x0), + /* Spin attack */ DMG_ENTRY(4, 0x0), + /* Sword beam */ DMG_ENTRY(2, 0x0), + /* Normal Roll */ DMG_ENTRY(4, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(8, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(1, 0x0), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(1, 0x0), + /* Explosives */ DMG_ENTRY(1, 0x0), + /* Zora boomerang */ DMG_ENTRY(1, 0x0), + /* Normal arrow */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(1, 0x0), + /* Hookshot */ DMG_ENTRY(1, 0x0), + /* Goron punch */ DMG_ENTRY(1, 0x0), + /* Sword */ DMG_ENTRY(1, 0x0), + /* Goron pound */ DMG_ENTRY(1, 0x0), + /* Fire arrow */ DMG_ENTRY(1, 0x0), + /* Ice arrow */ DMG_ENTRY(1, 0x0), + /* Light arrow */ DMG_ENTRY(1, 0x0), + /* Goron spikes */ DMG_ENTRY(1, 0x0), + /* Deku spin */ DMG_ENTRY(1, 0x0), + /* Deku bubble */ DMG_ENTRY(1, 0x0), + /* Deku launch */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(1, 0x0), + /* Zora barrier */ DMG_ENTRY(1, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(0, 0x0), + /* Zora punch */ DMG_ENTRY(0, 0x0), + /* Spin attack */ DMG_ENTRY(0, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(1, 0x0), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(1, 0x0), + /* Explosives */ DMG_ENTRY(1, 0x0), + /* Zora boomerang */ DMG_ENTRY(1, 0x0), + /* Normal arrow */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(1, 0x0), + /* Hookshot */ DMG_ENTRY(1, 0x0), + /* Goron punch */ DMG_ENTRY(1, 0x0), + /* Sword */ DMG_ENTRY(1, 0x0), + /* Goron pound */ DMG_ENTRY(1, 0x0), + /* Fire arrow */ DMG_ENTRY(1, 0x0), + /* Ice arrow */ DMG_ENTRY(1, 0x0), + /* Light arrow */ DMG_ENTRY(1, 0x0), + /* Goron spikes */ DMG_ENTRY(1, 0x0), + /* Deku spin */ DMG_ENTRY(1, 0x0), + /* Deku bubble */ DMG_ENTRY(1, 0x0), + /* Deku launch */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(1, 0x0), + /* Zora barrier */ DMG_ENTRY(1, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(0, 0x0), + /* Zora punch */ DMG_ENTRY(0, 0x0), + /* Spin attack */ DMG_ENTRY(0, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x1), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(2, 0x0), + /* Zora boomerang */ DMG_ENTRY(0, 0x1), + /* Normal arrow */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(2, 0x0), + /* Hookshot */ DMG_ENTRY(0, 0x1), + /* Goron punch */ DMG_ENTRY(1, 0xF), + /* Sword */ DMG_ENTRY(2, 0xF), + /* Goron pound */ DMG_ENTRY(2, 0xF), + /* Fire arrow */ DMG_ENTRY(2, 0x2), + /* Ice arrow */ DMG_ENTRY(2, 0x3), + /* Light arrow */ DMG_ENTRY(1, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(2, 0x2), + /* UNK_DMG_0x12 */ DMG_ENTRY(2, 0x3), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(2, 0x0), + /* Spin attack */ DMG_ENTRY(2, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x1), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(1, 0x0), + /* Explosives */ DMG_ENTRY(2, 0xF), + /* Zora boomerang */ DMG_ENTRY(0, 0xE), + /* Normal arrow */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(2, 0xD), + /* Hookshot */ DMG_ENTRY(0, 0x1), + /* Goron punch */ DMG_ENTRY(1, 0x0), + /* Sword */ DMG_ENTRY(2, 0x0), + /* Goron pound */ DMG_ENTRY(2, 0x0), + /* Fire arrow */ DMG_ENTRY(0, 0x0), + /* Ice arrow */ DMG_ENTRY(2, 0x3), + /* Light arrow */ DMG_ENTRY(0, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(2, 0x3), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(2, 0x0), + /* Spin attack */ DMG_ENTRY(2, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(0, 0x1), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(0, 0xF), + /* Zora boomerang */ DMG_ENTRY(0, 0x1), + /* Normal arrow */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(0, 0xF), + /* Hookshot */ DMG_ENTRY(0, 0x1), + /* Goron punch */ DMG_ENTRY(1, 0x0), + /* Sword */ DMG_ENTRY(2, 0x0), + /* Goron pound */ DMG_ENTRY(2, 0x0), + /* Fire arrow */ DMG_ENTRY(0, 0x0), + /* Ice arrow */ DMG_ENTRY(2, 0x1), + /* Light arrow */ DMG_ENTRY(0, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(2, 0x1), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(0, 0x0), + /* Spin attack */ DMG_ENTRY(0, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), + } }, + { { + /* Deku Nut */ DMG_ENTRY(1, 0x0), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(1, 0x0), + /* Explosives */ DMG_ENTRY(1, 0x0), + /* Zora boomerang */ DMG_ENTRY(1, 0x0), + /* Normal arrow */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(1, 0x0), + /* Hookshot */ DMG_ENTRY(1, 0x0), + /* Goron punch */ DMG_ENTRY(1, 0x0), + /* Sword */ DMG_ENTRY(1, 0x0), + /* Goron pound */ DMG_ENTRY(1, 0x0), + /* Fire arrow */ DMG_ENTRY(1, 0x0), + /* Ice arrow */ DMG_ENTRY(1, 0x0), + /* Light arrow */ DMG_ENTRY(1, 0x0), + /* Goron spikes */ DMG_ENTRY(1, 0x0), + /* Deku spin */ DMG_ENTRY(1, 0x0), + /* Deku bubble */ DMG_ENTRY(1, 0x0), + /* Deku launch */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(1, 0x0), + /* Zora barrier */ DMG_ENTRY(1, 0x0), + /* Normal shield */ DMG_ENTRY(1, 0x0), + /* Light ray */ DMG_ENTRY(1, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(1, 0x0), + /* Spin attack */ DMG_ENTRY(1, 0x0), + /* Sword beam */ DMG_ENTRY(1, 0x0), + /* Normal Roll */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(1, 0x0), + /* Unblockable */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(1, 0x0), + /* Powder Keg */ DMG_ENTRY(1, 0x0), + } }, }; /** diff --git a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c index f7c4945de0..fd9892d5ae 100644 --- a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c +++ b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c @@ -57,8 +57,38 @@ static ColliderJntSphInit sJntSphInit = { }; static DamageTable sDamageTable = { - 0xF0, 0xF0, 0x00, 0xF0, 0xE1, 0xE1, 0x00, 0xE1, 0xF0, 0xF0, 0xF0, 0xE1, 0xE1, 0xE1, 0xF0, 0xF0, - 0xE1, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0xE1, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, + /* Deku Nut */ DMG_ENTRY(0, 0xF), + /* Deku Stick */ DMG_ENTRY(0, 0xF), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(0, 0xF), + /* Zora boomerang */ DMG_ENTRY(1, 0xE), + /* Normal arrow */ DMG_ENTRY(1, 0xE), + /* UNK_DMG_0x06 */ DMG_ENTRY(0, 0x0), + /* Hookshot */ DMG_ENTRY(1, 0xE), + /* Goron punch */ DMG_ENTRY(0, 0xF), + /* Sword */ DMG_ENTRY(0, 0xF), + /* Goron pound */ DMG_ENTRY(0, 0xF), + /* Fire arrow */ DMG_ENTRY(1, 0xE), + /* Ice arrow */ DMG_ENTRY(1, 0xE), + /* Light arrow */ DMG_ENTRY(1, 0xE), + /* Goron spikes */ DMG_ENTRY(0, 0xF), + /* Deku spin */ DMG_ENTRY(0, 0xF), + /* Deku bubble */ DMG_ENTRY(1, 0xE), + /* Deku launch */ DMG_ENTRY(0, 0xF), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0xF), + /* Zora barrier */ DMG_ENTRY(0, 0xF), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0xE), + /* Zora punch */ DMG_ENTRY(0, 0xF), + /* Spin attack */ DMG_ENTRY(0, 0xF), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0xF), }; void EnEncount2_Init(Actor* thisx, GlobalContext* globalCtx) { diff --git a/src/overlays/actors/ovl_En_Fg/z_en_fg.c b/src/overlays/actors/ovl_En_Fg/z_en_fg.c index 0dcca5a8b0..82f26e4264 100644 --- a/src/overlays/actors/ovl_En_Fg/z_en_fg.c +++ b/src/overlays/actors/ovl_En_Fg/z_en_fg.c @@ -75,8 +75,38 @@ static CollisionCheckInfoInit2 sColChkInfoInit2 = { }; static DamageTable sDamageTable = { - 0x00, 0x11, 0x00, 0x01, 0x00, 0xE1, 0x11, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* Deku Nut */ DMG_ENTRY(0, 0x0), + /* Deku Stick */ DMG_ENTRY(1, 0x1), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(1, 0x0), + /* Zora boomerang */ DMG_ENTRY(0, 0x0), + /* Normal arrow */ DMG_ENTRY(1, 0xE), + /* UNK_DMG_0x06 */ DMG_ENTRY(1, 0x1), + /* Hookshot */ DMG_ENTRY(0, 0xF), + /* Goron punch */ DMG_ENTRY(0, 0x0), + /* Sword */ DMG_ENTRY(0, 0x0), + /* Goron pound */ DMG_ENTRY(0, 0x0), + /* Fire arrow */ DMG_ENTRY(0, 0x0), + /* Ice arrow */ DMG_ENTRY(1, 0x3), + /* Light arrow */ DMG_ENTRY(0, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(0, 0x0), + /* Zora punch */ DMG_ENTRY(0, 0x0), + /* Spin attack */ DMG_ENTRY(0, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), }; static ActorAnimationEntryS sAnimations[] = { diff --git a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c index 8e5ab934e5..3fa13f5b0f 100644 --- a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c +++ b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c @@ -78,8 +78,38 @@ static ColliderSphereInit sSphereInit = { static CollisionCheckInfoInit sColChkInfoInit = { 1, 10, 10, 10 }; static DamageTable sDamageTable = { - 0x10, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x22, 0x32, 0x42, 0x01, 0x01, - 0x01, 0x02, 0x10, 0x50, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + /* Deku Nut */ DMG_ENTRY(0, 0x1), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(1, 0x0), + /* Zora boomerang */ DMG_ENTRY(1, 0x0), + /* Normal arrow */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(0, 0x0), + /* Hookshot */ DMG_ENTRY(1, 0x0), + /* Goron punch */ DMG_ENTRY(1, 0x0), + /* Sword */ DMG_ENTRY(1, 0x0), + /* Goron pound */ DMG_ENTRY(1, 0x0), + /* Fire arrow */ DMG_ENTRY(2, 0x2), + /* Ice arrow */ DMG_ENTRY(2, 0x3), + /* Light arrow */ DMG_ENTRY(2, 0x4), + /* Goron spikes */ DMG_ENTRY(1, 0x0), + /* Deku spin */ DMG_ENTRY(1, 0x0), + /* Deku bubble */ DMG_ENTRY(1, 0x0), + /* Deku launch */ DMG_ENTRY(2, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0x1), + /* Zora barrier */ DMG_ENTRY(0, 0x5), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(1, 0x0), + /* Spin attack */ DMG_ENTRY(1, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(1, 0x0), }; static InitChainEntry sInitChain[] = { diff --git a/src/overlays/actors/ovl_En_In/z_en_in.c b/src/overlays/actors/ovl_En_In/z_en_in.c index 2ed6e06bd4..68b8a502d0 100644 --- a/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/src/overlays/actors/ovl_En_In/z_en_in.c @@ -144,8 +144,38 @@ static ColliderJntSphInit sJntSphInit = { static CollisionCheckInfoInit2 sColChkInfoInit2 = { 0, 0, 0, 0, MASS_HEAVY }; static DamageTable sDamageTable = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* Deku Nut */ DMG_ENTRY(0, 0x0), + /* Deku Stick */ DMG_ENTRY(0, 0x0), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(0, 0x0), + /* Zora boomerang */ DMG_ENTRY(0, 0x0), + /* Normal arrow */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(0, 0x0), + /* Hookshot */ DMG_ENTRY(0, 0x0), + /* Goron punch */ DMG_ENTRY(0, 0x0), + /* Sword */ DMG_ENTRY(0, 0x0), + /* Goron pound */ DMG_ENTRY(0, 0x0), + /* Fire arrow */ DMG_ENTRY(0, 0x0), + /* Ice arrow */ DMG_ENTRY(0, 0x0), + /* Light arrow */ DMG_ENTRY(0, 0x0), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(0, 0x0), + /* Zora punch */ DMG_ENTRY(0, 0x0), + /* Spin attack */ DMG_ENTRY(0, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), }; static ActorAnimationEntryS sAnimations[] = { diff --git a/src/overlays/actors/ovl_En_Jc_Mato/z_en_jc_mato.c b/src/overlays/actors/ovl_En_Jc_Mato/z_en_jc_mato.c index 3ecd45d10c..9b7a6769ec 100644 --- a/src/overlays/actors/ovl_En_Jc_Mato/z_en_jc_mato.c +++ b/src/overlays/actors/ovl_En_Jc_Mato/z_en_jc_mato.c @@ -52,8 +52,38 @@ static ColliderSphereInit sSphereInit = { }; static DamageTable sDamageTable = { - 0x01, 0x01, 0x01, 0x01, 0x01, 0xF1, 0x01, 0x01, 0x01, 0x01, 0x01, 0xF1, 0xF1, 0xF1, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + /* Deku Nut */ DMG_ENTRY(1, 0x0), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(1, 0x0), + /* Explosives */ DMG_ENTRY(1, 0x0), + /* Zora boomerang */ DMG_ENTRY(1, 0x0), + /* Normal arrow */ DMG_ENTRY(1, 0xF), + /* UNK_DMG_0x06 */ DMG_ENTRY(1, 0x0), + /* Hookshot */ DMG_ENTRY(1, 0x0), + /* Goron punch */ DMG_ENTRY(1, 0x0), + /* Sword */ DMG_ENTRY(1, 0x0), + /* Goron pound */ DMG_ENTRY(1, 0x0), + /* Fire arrow */ DMG_ENTRY(1, 0xF), + /* Ice arrow */ DMG_ENTRY(1, 0xF), + /* Light arrow */ DMG_ENTRY(1, 0xF), + /* Goron spikes */ DMG_ENTRY(1, 0x0), + /* Deku spin */ DMG_ENTRY(1, 0x0), + /* Deku bubble */ DMG_ENTRY(1, 0x0), + /* Deku launch */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(1, 0x0), + /* Zora barrier */ DMG_ENTRY(1, 0x0), + /* Normal shield */ DMG_ENTRY(1, 0x0), + /* Light ray */ DMG_ENTRY(1, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(1, 0x0), + /* Spin attack */ DMG_ENTRY(1, 0x0), + /* Sword beam */ DMG_ENTRY(1, 0x0), + /* Normal Roll */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(1, 0x0), + /* Unblockable */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(1, 0x0), + /* Powder Keg */ DMG_ENTRY(1, 0x0), }; extern Gfx D_06000390[]; diff --git a/src/overlays/actors/ovl_En_Pametfrog/z_en_pametfrog.c b/src/overlays/actors/ovl_En_Pametfrog/z_en_pametfrog.c index 1db62df5a4..a45684c3c5 100644 --- a/src/overlays/actors/ovl_En_Pametfrog/z_en_pametfrog.c +++ b/src/overlays/actors/ovl_En_Pametfrog/z_en_pametfrog.c @@ -99,8 +99,38 @@ const ActorInit En_Pametfrog_InitVars = { }; static DamageTable sDamageTable = { - 0x10, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x10, 0x01, 0x01, 0x01, 0x22, 0x32, 0x42, 0x01, 0x10, - 0x01, 0x02, 0x10, 0x50, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + /* Deku Nut */ DMG_ENTRY(0, 0x1), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(1, 0x0), + /* Zora boomerang */ DMG_ENTRY(1, 0x0), + /* Normal arrow */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(0, 0x0), + /* Hookshot */ DMG_ENTRY(0, 0x1), + /* Goron punch */ DMG_ENTRY(1, 0x0), + /* Sword */ DMG_ENTRY(1, 0x0), + /* Goron pound */ DMG_ENTRY(1, 0x0), + /* Fire arrow */ DMG_ENTRY(2, 0x2), + /* Ice arrow */ DMG_ENTRY(2, 0x3), + /* Light arrow */ DMG_ENTRY(2, 0x4), + /* Goron spikes */ DMG_ENTRY(1, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x1), + /* Deku bubble */ DMG_ENTRY(1, 0x0), + /* Deku launch */ DMG_ENTRY(2, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0x1), + /* Zora barrier */ DMG_ENTRY(0, 0x5), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(1, 0x0), + /* Spin attack */ DMG_ENTRY(1, 0x0), + /* Sword beam */ DMG_ENTRY(1, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(1, 0x0), }; static ColliderJntSphElementInit sJntSphElementsInit[2] = { diff --git a/src/overlays/actors/ovl_En_Po_Fusen/z_en_po_fusen.c b/src/overlays/actors/ovl_En_Po_Fusen/z_en_po_fusen.c index 3bb650b558..43f1ddd7aa 100644 --- a/src/overlays/actors/ovl_En_Po_Fusen/z_en_po_fusen.c +++ b/src/overlays/actors/ovl_En_Po_Fusen/z_en_po_fusen.c @@ -64,8 +64,38 @@ static ColliderSphereInit sSphereInit = { }; static DamageTable sDamageTable = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xF1, 0xF1, 0xF1, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* Deku Nut */ DMG_ENTRY(0, 0x0), + /* Deku Stick */ DMG_ENTRY(0, 0x0), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(0, 0x0), + /* Zora boomerang */ DMG_ENTRY(0, 0x0), + /* Normal arrow */ DMG_ENTRY(1, 0xF), + /* UNK_DMG_0x06 */ DMG_ENTRY(0, 0x0), + /* Hookshot */ DMG_ENTRY(0, 0x0), + /* Goron punch */ DMG_ENTRY(0, 0x0), + /* Sword */ DMG_ENTRY(0, 0x0), + /* Goron pound */ DMG_ENTRY(0, 0x0), + /* Fire arrow */ DMG_ENTRY(1, 0xF), + /* Ice arrow */ DMG_ENTRY(1, 0xF), + /* Light arrow */ DMG_ENTRY(1, 0xF), + /* Goron spikes */ DMG_ENTRY(1, 0xF), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(0, 0x0), + /* Deku launch */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0x0), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(0, 0x0), + /* Zora punch */ DMG_ENTRY(0, 0x0), + /* Spin attack */ DMG_ENTRY(0, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0x0), }; void EnPoFusen_Init(Actor* thisx, GlobalContext* globalCtx) { diff --git a/src/overlays/actors/ovl_En_Sb/z_en_sb.c b/src/overlays/actors/ovl_En_Sb/z_en_sb.c index 3788ad656f..98d078e793 100644 --- a/src/overlays/actors/ovl_En_Sb/z_en_sb.c +++ b/src/overlays/actors/ovl_En_Sb/z_en_sb.c @@ -56,8 +56,38 @@ static ColliderCylinderInitType1 sCylinderInit = { }; static DamageTable sDamageTable = { - 0x00, 0x00, 0x00, 0xF1, 0xF1, 0xF1, 0x00, 0xF1, 0x00, 0x00, 0x00, 0xF1, 0xF1, 0xF1, 0x00, 0x00, - 0xF1, 0x00, 0x00, 0xF1, 0x00, 0x00, 0x00, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, + /* Deku Nut */ DMG_ENTRY(0, 0x0), + /* Deku Stick */ DMG_ENTRY(0, 0x0), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(1, 0xF), + /* Zora boomerang */ DMG_ENTRY(1, 0xF), + /* Normal arrow */ DMG_ENTRY(1, 0xF), + /* UNK_DMG_0x06 */ DMG_ENTRY(0, 0x0), + /* Hookshot */ DMG_ENTRY(1, 0xF), + /* Goron punch */ DMG_ENTRY(0, 0x0), + /* Sword */ DMG_ENTRY(0, 0x0), + /* Goron pound */ DMG_ENTRY(0, 0x0), + /* Fire arrow */ DMG_ENTRY(1, 0xF), + /* Ice arrow */ DMG_ENTRY(1, 0xF), + /* Light arrow */ DMG_ENTRY(1, 0xF), + /* Goron spikes */ DMG_ENTRY(0, 0x0), + /* Deku spin */ DMG_ENTRY(0, 0x0), + /* Deku bubble */ DMG_ENTRY(1, 0xF), + /* Deku launch */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0x0), + /* Zora barrier */ DMG_ENTRY(1, 0xF), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0x0), + /* Thrown object */ DMG_ENTRY(0, 0x0), + /* Zora punch */ DMG_ENTRY(1, 0xF), + /* Spin attack */ DMG_ENTRY(0, 0x0), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(1, 0xF), }; static InitChainEntry sInitChain[] = { diff --git a/src/overlays/actors/ovl_En_Tanron6/z_en_tanron6.c b/src/overlays/actors/ovl_En_Tanron6/z_en_tanron6.c index 1af33851a0..7e184a710b 100644 --- a/src/overlays/actors/ovl_En_Tanron6/z_en_tanron6.c +++ b/src/overlays/actors/ovl_En_Tanron6/z_en_tanron6.c @@ -25,8 +25,38 @@ const ActorInit En_Tanron6_InitVars = { }; static DamageTable sDamageTable = { - 0xF0, 0xF0, 0x00, 0xF1, 0xE1, 0xE1, 0x00, 0xE1, 0xF0, 0xF0, 0xF0, 0xE1, 0xE1, 0x46, 0xF0, 0xF0, - 0xE1, 0xF0, 0xF0, 0x00, 0x00, 0xF0, 0xE1, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, + /* Deku Nut */ DMG_ENTRY(0, 0xF), + /* Deku Stick */ DMG_ENTRY(0, 0xF), + /* Horse trample */ DMG_ENTRY(0, 0x0), + /* Explosives */ DMG_ENTRY(1, 0xF), + /* Zora boomerang */ DMG_ENTRY(1, 0xE), + /* Normal arrow */ DMG_ENTRY(1, 0xE), + /* UNK_DMG_0x06 */ DMG_ENTRY(0, 0x0), + /* Hookshot */ DMG_ENTRY(1, 0xE), + /* Goron punch */ DMG_ENTRY(0, 0xF), + /* Sword */ DMG_ENTRY(0, 0xF), + /* Goron pound */ DMG_ENTRY(0, 0xF), + /* Fire arrow */ DMG_ENTRY(1, 0xE), + /* Ice arrow */ DMG_ENTRY(1, 0xE), + /* Light arrow */ DMG_ENTRY(6, 0x4), + /* Goron spikes */ DMG_ENTRY(0, 0xF), + /* Deku spin */ DMG_ENTRY(0, 0xF), + /* Deku bubble */ DMG_ENTRY(1, 0xE), + /* Deku launch */ DMG_ENTRY(0, 0xF), + /* UNK_DMG_0x12 */ DMG_ENTRY(0, 0xF), + /* Zora barrier */ DMG_ENTRY(0, 0x0), + /* Normal shield */ DMG_ENTRY(0, 0x0), + /* Light ray */ DMG_ENTRY(0, 0xF), + /* Thrown object */ DMG_ENTRY(1, 0xE), + /* Zora punch */ DMG_ENTRY(0, 0x0), + /* Spin attack */ DMG_ENTRY(0, 0xF), + /* Sword beam */ DMG_ENTRY(0, 0x0), + /* Normal Roll */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(0, 0x0), + /* Powder Keg */ DMG_ENTRY(0, 0xF), }; void EnTanron6_Init(Actor* thisx, GlobalContext* globalCtx) { diff --git a/src/overlays/actors/ovl_Obj_Bell/z_obj_bell.c b/src/overlays/actors/ovl_Obj_Bell/z_obj_bell.c index 069b2516b5..a0d90123fb 100644 --- a/src/overlays/actors/ovl_Obj_Bell/z_obj_bell.c +++ b/src/overlays/actors/ovl_Obj_Bell/z_obj_bell.c @@ -77,8 +77,38 @@ static CollisionCheckInfoInit2 sColChkInfoInit2 = { }; static DamageTable sDamageTable = { - 0x01, 0x01, 0x01, 0xE1, 0x01, 0x01, 0x01, 0x01, 0xF1, 0x01, 0x01, 0x01, 0x01, 0x01, 0xF1, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xE1, + /* Deku Nut */ DMG_ENTRY(1, 0x0), + /* Deku Stick */ DMG_ENTRY(1, 0x0), + /* Horse trample */ DMG_ENTRY(1, 0x0), + /* Explosives */ DMG_ENTRY(1, 0xE), + /* Zora boomerang */ DMG_ENTRY(1, 0x0), + /* Normal arrow */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x06 */ DMG_ENTRY(1, 0x0), + /* Hookshot */ DMG_ENTRY(1, 0x0), + /* Goron punch */ DMG_ENTRY(1, 0xF), + /* Sword */ DMG_ENTRY(1, 0x0), + /* Goron pound */ DMG_ENTRY(1, 0x0), + /* Fire arrow */ DMG_ENTRY(1, 0x0), + /* Ice arrow */ DMG_ENTRY(1, 0x0), + /* Light arrow */ DMG_ENTRY(1, 0x0), + /* Goron spikes */ DMG_ENTRY(1, 0xF), + /* Deku spin */ DMG_ENTRY(1, 0x0), + /* Deku bubble */ DMG_ENTRY(1, 0x0), + /* Deku launch */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x12 */ DMG_ENTRY(1, 0x0), + /* Zora barrier */ DMG_ENTRY(1, 0x0), + /* Normal shield */ DMG_ENTRY(1, 0x0), + /* Light ray */ DMG_ENTRY(1, 0x0), + /* Thrown object */ DMG_ENTRY(1, 0x0), + /* Zora punch */ DMG_ENTRY(1, 0x0), + /* Spin attack */ DMG_ENTRY(1, 0x0), + /* Sword beam */ DMG_ENTRY(1, 0x0), + /* Normal Roll */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x1B */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x1C */ DMG_ENTRY(1, 0x0), + /* Unblockable */ DMG_ENTRY(1, 0x0), + /* UNK_DMG_0x1E */ DMG_ENTRY(1, 0x0), + /* Powder Keg */ DMG_ENTRY(1, 0xE), }; extern CollisionHeader D_06001BA8; diff --git a/tools/overlayhelpers/colchkinfoinit.py b/tools/overlayhelpers/colchkinfoinit.py old mode 100644 new mode 100755 index 9782144d43..73538cef3f --- a/tools/overlayhelpers/colchkinfoinit.py +++ b/tools/overlayhelpers/colchkinfoinit.py @@ -31,7 +31,7 @@ def main(): NameMass(info) output="// colChkInfoInit\nstatic CollisionCheckInfoInit D_{0:08X} = {{ ".format(args.address) + ", ".join(map(str,info)) + "};" else: - info = struct.unpack(">B3hB", filedata[file_offset:file_offset+9]) + info = list(struct.unpack(">Bx3hB", filedata[file_offset:file_offset+9])) NameMass(info) output="// sColChkInfoInit\nstatic CollisionCheckInfoInit2 D_{0:08X} = {{ ".format(args.address) + ", ".join(map(str,info)) + "};" diff --git a/tools/overlayhelpers/damage_table.py b/tools/overlayhelpers/damage_table.py new file mode 100755 index 0000000000..9d8dc444af --- /dev/null +++ b/tools/overlayhelpers/damage_table.py @@ -0,0 +1,150 @@ +#!/usr/bin/env python3 + +import os +import argparse +from actor_symbols import resolve_symbol + +damage_types = [ + 'Deku Nut', + 'Deku Stick', + 'Horse trample', + 'Explosives', + 'Zora boomerang', + 'Normal arrow', + 'UNK_DMG_0x06', + 'Hookshot', + 'Goron punch', + 'Sword', + 'Goron pound', + 'Fire arrow', + 'Ice arrow', + 'Light arrow', + 'Goron spikes', + 'Deku spin', + 'Deku bubble', + 'Deku launch', + 'UNK_DMG_0x12', + 'Zora barrier', + 'Normal shield', + 'Light ray', + 'Thrown object', + 'Zora punch', + 'Spin attack', + 'Sword beam', + 'Normal Roll', + 'UNK_DMG_0x1B', + 'UNK_DMG_0x1C', + 'Unblockable', + 'UNK_DMG_0x1E', + 'Powder Keg' +] + +def convert_dmg_table_str(dmg_table_str): + split_data = dmg_table_str.replace(' ','').replace('\n','').replace('{',',').replace('}',',').split(',') + hex_data = [int(x, 16) for x in split_data if '0x' in x] + + name = dmg_table_str.split('=')[0].split()[-1] + + return make_table(name, hex_data) + +def replace_damage_table_all(repo): + actors = 'src' + os.sep + 'overlays' + os.sep + 'actors' + for subdir, dirs, files in os.walk(repo + os.sep + actors): + for filename in files: + if(filename.endswith('.c')): + file = subdir + os.sep + filename + status = replace_damage_table(file) + if(status < 0): + print('Encountered error in', file) + elif(status > 0): + print('Updated', status, 'table' + ('s' if status > 1 else ''), file) + return 1 + +def replace_damage_table(src): + with open(src, 'r', encoding = 'utf-8') as srcfile: + srcdata = srcfile.readlines() + read_table = False + replacements = [] + + for i, line in enumerate(srcdata): + if("DamageTable" in line and "= {" in line): + if(read_table): + print('Bad formatting in', file, 'at line', i) + return -1 + else: + read_table = True + start = i + + if(read_table and "DMG_" in line): + read_table = False + + if(read_table and ";" in line): + dmg_table_str = "".join(srcdata[start:i+1]) + damage_table = convert_dmg_table_str(dmg_table_str) + replacements += [[dmg_table_str, damage_table]] + read_table = False + + if len(replacements) == 0: + return 0 + + with open(src,'r', encoding = 'utf-8') as srcfile: + srcstr = srcfile.read() + for replace in replacements: + srcstr = srcstr.replace(replace[0], replace[1]) + with open(src,'w', encoding = 'utf-8', newline = '\n') as outfile: + outfile.write(srcstr) + return len(replacements) + +def make_table(name, data): + damage_table = "static DamageTable " + name + " = {\n" + linestart = " /* " + padlen = max([len(x) for x in damage_types]) + for i, dbyte in enumerate(data): + typestr = damage_types[i] + typestr += ' ' * (padlen - len(typestr)) + ' */ ' + damage_table += linestart + typestr + format_damage_byte(dbyte) + damage_table += '};\n' + + return damage_table + +def format_damage_byte(dbyte): + effect = (dbyte >> 4) & 0xF + damage = dbyte & 0xF + + effstr = format(effect, 'X') + dstr = str(damage) + + dtentry = 'DMG_ENTRY(' + dstr + ', 0x' + effstr + '),\n' + + return dtentry + +def get_damage_bytes(address): + file_name, file_offset = resolve_symbol(address) + print(hex(file_offset), "in", file_name.split(os.sep)[-1], "\n") + + with open(file_name, "rb") as ovl_file: + ovl_data = bytearray(ovl_file.read()) + + damage_data = ovl_data[file_offset:file_offset+0x20] + + damage_table = make_table('D_' + format(address, 'X'), damage_data) + + return damage_table + +def hex_parse(s): + return int(s, 16) + +parser = argparse.ArgumentParser(description = "Converts raw bytes into a formatted damage table") +parser.add_argument('-a', metavar='address', dest='address', help="VRam or Rom address of the damage table", type=hex_parse) +parser.add_argument('-f', metavar='file', dest='file', help='C file with unformatted damage tables') + +if __name__ == "__main__": + args = parser.parse_args() + script_dir = os.path.dirname(os.path.realpath(__file__)) + repo = script_dir + os.sep + ".." + os.sep + ".." + if(args.address): + print(get_damage_bytes(args.address)) + elif(args.file): + replace_damage_table(args.file) + else: + print('Error: address or file required. Use -h for more detail.')