From e9f98f44c435e198dbfdb1cc713883c48fed1f7b Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sun, 29 Aug 2021 20:19:52 -0400 Subject: [PATCH 1/6] Handle multiprocessing exceptions in extract_assets.py (#925) * Handle multiprocessing exceptions in extract_assets.py * Update extract_assets.py Co-authored-by: Dragorn421 * Add TypeError Co-authored-by: Dragorn421 --- extract_assets.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/extract_assets.py b/extract_assets.py index 68c8daf113..7f02be04ca 100755 --- a/extract_assets.py +++ b/extract_assets.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 import argparse -from multiprocessing import Pool, cpu_count, Event, Manager +from multiprocessing import Pool, cpu_count, Event, Manager, ProcessError import os import json import time @@ -103,10 +103,18 @@ def main(): if file.endswith(".xml"): xmlFiles.append(fullPath) - numCores = cpu_count() - print("Extracting assets with " + str(numCores) + " CPU cores.") - with Pool(numCores, initializer=initializeWorker, initargs=(mainAbort, args.unaccounted, extractedAssetsTracker, manager)) as p: - p.map(ExtractFunc, xmlFiles) + try: + numCores = cpu_count() + print("Extracting assets with " + str(numCores) + " CPU cores.") + with Pool(numCores, initializer=initializeWorker, initargs=(mainAbort, args.unaccounted, extractedAssetsTracker, manager)) as p: + p.map(ExtractFunc, xmlFiles) + except (ProcessError, TypeError): + print("Warning: Multiprocessing exception ocurred.", file=os.sys.stderr) + print("Disabling mutliprocessing.", file=os.sys.stderr) + + initializeWorker(mainAbort, args.unaccounted, extractedAssetsTracker, manager) + for singlePath in xmlFiles: + ExtractFunc(singlePath) with open(EXTRACTED_ASSETS_NAMEFILE, 'w', encoding='utf-8') as f: serializableDict = dict() From 3c2b1981305c7979b21d98f2887de70f53eb18c0 Mon Sep 17 00:00:00 2001 From: Tharo <17233964+Thar0@users.noreply.github.com> Date: Mon, 30 Aug 2021 01:29:11 +0100 Subject: [PATCH 2/6] Decompile ovl_En_Ganon_Mant (#912) * Initial progress * Improve the last NON_EQUIVALENT to NON_MATCHING * 2 functions down to stack, migrate data * 2 more matches, some other improvements * Use Vtx over Vtx_tn * Begin documenting * Some names * More docs * Finish docs * Remove VTX_TN * Review suggestions * Single line comments Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> * en_ganon_mant fully matched thanks to Roman Co-authored-by: Thar0 Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> --- .../ovl_En_Ganon_Mant/EnGanonMant_Destroy.s | 4 - .../ovl_En_Ganon_Mant/EnGanonMant_Draw.s | 224 ------ .../ovl_En_Ganon_Mant/EnGanonMant_Init.s | 7 - .../ovl_En_Ganon_Mant/EnGanonMant_Update.s | 53 -- .../actors/ovl_En_Ganon_Mant/func_80A23D84.s | 178 ----- .../actors/ovl_En_Ganon_Mant/func_80A23FE0.s | 410 ---------- .../actors/ovl_En_Ganon_Mant/func_80A245A4.s | 142 ---- .../actors/ovl_En_Ganon_Mant/func_80A24884.s | 99 --- data/overlays/actors/z_en_ganon_mant.data.s | 57 -- spec | 5 +- .../ovl_En_Ganon_Mant/ovl_en_ganon_mant_gfx.c | 710 ++++++++++++++++++ .../ovl_En_Ganon_Mant/z_en_ganon_mant.c | 445 ++++++++++- .../ovl_En_Ganon_Mant/z_en_ganon_mant.h | 51 +- .../actors/ovl_En_Viewer/z_en_viewer.c | 24 +- 14 files changed, 1188 insertions(+), 1221 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Draw.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23D84.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23FE0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A245A4.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A24884.s delete mode 100644 data/overlays/actors/z_en_ganon_mant.data.s create mode 100644 src/overlays/actors/ovl_En_Ganon_Mant/ovl_en_ganon_mant_gfx.c diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Destroy.s b/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Destroy.s deleted file mode 100644 index 576d1bdc7e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Destroy.s +++ /dev/null @@ -1,4 +0,0 @@ -glabel EnGanonMant_Destroy -/* 00018 80A23D78 AFA40000 */ sw $a0, 0x0000($sp) -/* 0001C 80A23D7C 03E00008 */ jr $ra -/* 00020 80A23D80 AFA50004 */ sw $a1, 0x0004($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Draw.s b/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Draw.s deleted file mode 100644 index 08bc628f1a..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Draw.s +++ /dev/null @@ -1,224 +0,0 @@ -.late_rodata -glabel D_80A27EE4 - .float 1.57079637051 - -glabel D_80A27EE8 - .float 3.14159274101 - -.text -glabel EnGanonMant_Draw -/* 00C6C 80A249CC 27BDFF28 */ addiu $sp, $sp, 0xFF28 ## $sp = FFFFFF28 -/* 00C70 80A249D0 AFBF0074 */ sw $ra, 0x0074($sp) -/* 00C74 80A249D4 AFB60070 */ sw $s6, 0x0070($sp) -/* 00C78 80A249D8 AFB5006C */ sw $s5, 0x006C($sp) -/* 00C7C 80A249DC AFB40068 */ sw $s4, 0x0068($sp) -/* 00C80 80A249E0 AFB30064 */ sw $s3, 0x0064($sp) -/* 00C84 80A249E4 AFB20060 */ sw $s2, 0x0060($sp) -/* 00C88 80A249E8 AFB1005C */ sw $s1, 0x005C($sp) -/* 00C8C 80A249EC AFB00058 */ sw $s0, 0x0058($sp) -/* 00C90 80A249F0 F7BE0050 */ sdc1 $f30, 0x0050($sp) -/* 00C94 80A249F4 F7BC0048 */ sdc1 $f28, 0x0048($sp) -/* 00C98 80A249F8 F7BA0040 */ sdc1 $f26, 0x0040($sp) -/* 00C9C 80A249FC F7B80038 */ sdc1 $f24, 0x0038($sp) -/* 00CA0 80A24A00 F7B60030 */ sdc1 $f22, 0x0030($sp) -/* 00CA4 80A24A04 F7B40028 */ sdc1 $f20, 0x0028($sp) -/* 00CA8 80A24A08 908E1705 */ lbu $t6, 0x1705($a0) ## 00001705 -/* 00CAC 80A24A0C 00809025 */ or $s2, $a0, $zero ## $s2 = 00000000 -/* 00CB0 80A24A10 00A0B025 */ or $s6, $a1, $zero ## $s6 = 00000000 -/* 00CB4 80A24A14 51C000A6 */ beql $t6, $zero, .L80A24CB0 -/* 00CB8 80A24A18 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000 -/* 00CBC 80A24A1C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 00CC0 80A24A20 C48416BC */ lwc1 $f4, 0x16BC($a0) ## 000016BC -/* 00CC4 80A24A24 248216D4 */ addiu $v0, $a0, 0x16D4 ## $v0 = 000016D4 -/* 00CC8 80A24A28 3C01C150 */ lui $at, 0xC150 ## $at = C1500000 -/* 00CCC 80A24A2C 46040032 */ c.eq.s $f0, $f4 -/* 00CD0 80A24A30 00000000 */ nop -/* 00CD4 80A24A34 45030006 */ bc1tl .L80A24A50 -/* 00CD8 80A24A38 C64816C0 */ lwc1 $f8, 0x16C0($s2) ## 000016C0 -/* 00CDC 80A24A3C 44813000 */ mtc1 $at, $f6 ## $f6 = -13.00 -/* 00CE0 80A24A40 248316F8 */ addiu $v1, $a0, 0x16F8 ## $v1 = 000016F8 -/* 00CE4 80A24A44 10000018 */ beq $zero, $zero, .L80A24AA8 -/* 00CE8 80A24A48 E48616C8 */ swc1 $f6, 0x16C8($a0) ## 000016C8 -/* 00CEC 80A24A4C C64816C0 */ lwc1 $f8, 0x16C0($s2) ## 000016C0 -.L80A24A50: -/* 00CF0 80A24A50 264216EC */ addiu $v0, $s2, 0x16EC ## $v0 = 000016EC -/* 00CF4 80A24A54 3C01C150 */ lui $at, 0xC150 ## $at = C1500000 -/* 00CF8 80A24A58 46080032 */ c.eq.s $f0, $f8 -/* 00CFC 80A24A5C 00000000 */ nop -/* 00D00 80A24A60 45030006 */ bc1tl .L80A24A7C -/* 00D04 80A24A64 C64416C4 */ lwc1 $f4, 0x16C4($s2) ## 000016C4 -/* 00D08 80A24A68 44815000 */ mtc1 $at, $f10 ## $f10 = -13.00 -/* 00D0C 80A24A6C 264316E0 */ addiu $v1, $s2, 0x16E0 ## $v1 = 000016E0 -/* 00D10 80A24A70 1000000D */ beq $zero, $zero, .L80A24AA8 -/* 00D14 80A24A74 E64A16C8 */ swc1 $f10, 0x16C8($s2) ## 000016C8 -/* 00D18 80A24A78 C64416C4 */ lwc1 $f4, 0x16C4($s2) ## 000016C4 -.L80A24A7C: -/* 00D1C 80A24A7C 3C01C040 */ lui $at, 0xC040 ## $at = C0400000 -/* 00D20 80A24A80 264216D4 */ addiu $v0, $s2, 0x16D4 ## $v0 = 000016D4 -/* 00D24 80A24A84 46040032 */ c.eq.s $f0, $f4 -/* 00D28 80A24A88 264316E0 */ addiu $v1, $s2, 0x16E0 ## $v1 = 000016E0 -/* 00D2C 80A24A8C 45010006 */ bc1t .L80A24AA8 -/* 00D30 80A24A90 00000000 */ nop -/* 00D34 80A24A94 44813000 */ mtc1 $at, $f6 ## $f6 = -3.00 -/* 00D38 80A24A98 264216EC */ addiu $v0, $s2, 0x16EC ## $v0 = 000016EC -/* 00D3C 80A24A9C 264316F8 */ addiu $v1, $s2, 0x16F8 ## $v1 = 000016F8 -/* 00D40 80A24AA0 10000001 */ beq $zero, $zero, .L80A24AA8 -/* 00D44 80A24AA4 E64616C8 */ swc1 $f6, 0x16C8($s2) ## 000016C8 -.L80A24AA8: -/* 00D48 80A24AA8 C4400000 */ lwc1 $f0, 0x0000($v0) ## 000016EC -/* 00D4C 80A24AAC C4680000 */ lwc1 $f8, 0x0000($v1) ## 000016F8 -/* 00D50 80A24AB0 C4420004 */ lwc1 $f2, 0x0004($v0) ## 000016F0 -/* 00D54 80A24AB4 C46A0004 */ lwc1 $f10, 0x0004($v1) ## 000016FC -/* 00D58 80A24AB8 46004501 */ sub.s $f20, $f8, $f0 -/* 00D5C 80A24ABC 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000 -/* 00D60 80A24AC0 44819000 */ mtc1 $at, $f18 ## $f18 = 0.50 -/* 00D64 80A24AC4 46025601 */ sub.s $f24, $f10, $f2 -/* 00D68 80A24AC8 C4500008 */ lwc1 $f16, 0x0008($v0) ## 000016F4 -/* 00D6C 80A24ACC C4640008 */ lwc1 $f4, 0x0008($v1) ## 00001700 -/* 00D70 80A24AD0 4612A182 */ mul.s $f6, $f20, $f18 -/* 00D74 80A24AD4 4600A386 */ mov.s $f14, $f20 -/* 00D78 80A24AD8 46102581 */ sub.s $f22, $f4, $f16 -/* 00D7C 80A24ADC 4612C202 */ mul.s $f8, $f24, $f18 -/* 00D80 80A24AE0 00000000 */ nop -/* 00D84 80A24AE4 4612B102 */ mul.s $f4, $f22, $f18 -/* 00D88 80A24AE8 4600B306 */ mov.s $f12, $f22 -/* 00D8C 80A24AEC 46060780 */ add.s $f30, $f0, $f6 -/* 00D90 80A24AF0 46081280 */ add.s $f10, $f2, $f8 -/* 00D94 80A24AF4 46048180 */ add.s $f6, $f16, $f4 -/* 00D98 80A24AF8 E7AA0090 */ swc1 $f10, 0x0090($sp) -/* 00D9C 80A24AFC 0C0341F5 */ jal Math_Atan2F - -/* 00DA0 80A24B00 E7A60094 */ swc1 $f6, 0x0094($sp) -/* 00DA4 80A24B04 4614A702 */ mul.s $f28, $f20, $f20 -/* 00DA8 80A24B08 46000686 */ mov.s $f26, $f0 -/* 00DAC 80A24B0C 4600C386 */ mov.s $f14, $f24 -/* 00DB0 80A24B10 4616B082 */ mul.s $f2, $f22, $f22 -/* 00DB4 80A24B14 4602E000 */ add.s $f0, $f28, $f2 -/* 00DB8 80A24B18 E7A2007C */ swc1 $f2, 0x007C($sp) -/* 00DBC 80A24B1C 0C0341F5 */ jal Math_Atan2F - -/* 00DC0 80A24B20 46000304 */ sqrt.s $f12, $f0 -/* 00DC4 80A24B24 4618C202 */ mul.s $f8, $f24, $f24 -/* 00DC8 80A24B28 C7A2007C */ lwc1 $f2, 0x007C($sp) -/* 00DCC 80A24B2C 46000507 */ neg.s $f20, $f0 -/* 00DD0 80A24B30 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000 -/* 00DD4 80A24B34 44812000 */ mtc1 $at, $f4 ## $f4 = 0.50 -/* 00DD8 80A24B38 4600D306 */ mov.s $f12, $f26 -/* 00DDC 80A24B3C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00DE0 80A24B40 4608E280 */ add.s $f10, $f28, $f8 -/* 00DE4 80A24B44 46025000 */ add.s $f0, $f10, $f2 -/* 00DE8 80A24B48 46000004 */ sqrt.s $f0, $f0 -/* 00DEC 80A24B4C 46040582 */ mul.s $f22, $f0, $f4 -/* 00DF0 80A24B50 0C034348 */ jal Matrix_RotateY -/* 00DF4 80A24B54 00000000 */ nop -/* 00DF8 80A24B58 4600A306 */ mov.s $f12, $f20 -/* 00DFC 80A24B5C 0C0342DC */ jal Matrix_RotateX -/* 00E00 80A24B60 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001 -/* 00E04 80A24B64 3C0180A2 */ lui $at, %hi(D_80A27EE4) ## $at = 80A20000 -/* 00E08 80A24B68 C4267EE4 */ lwc1 $f6, %lo(D_80A27EE4)($at) -/* 00E0C 80A24B6C 3C014130 */ lui $at, 0x4130 ## $at = 41300000 -/* 00E10 80A24B70 4480E000 */ mtc1 $zero, $f28 ## $f28 = 0.00 -/* 00E14 80A24B74 4606D201 */ sub.s $f8, $f26, $f6 -/* 00E18 80A24B78 4481D000 */ mtc1 $at, $f26 ## $f26 = 11.00 -/* 00E1C 80A24B7C 3C0180A2 */ lui $at, %hi(D_80A27EE8) ## $at = 80A20000 -/* 00E20 80A24B80 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000 -/* 00E24 80A24B84 E64816CC */ swc1 $f8, 0x16CC($s2) ## 000016CC -/* 00E28 80A24B88 C4387EE8 */ lwc1 $f24, %lo(D_80A27EE8)($at) -/* 00E2C 80A24B8C 27B500B4 */ addiu $s5, $sp, 0x00B4 ## $s5 = FFFFFFDC -/* 00E30 80A24B90 27B400C0 */ addiu $s4, $sp, 0x00C0 ## $s4 = FFFFFFE8 -/* 00E34 80A24B94 241301C8 */ addiu $s3, $zero, 0x01C8 ## $s3 = 000001C8 -.L80A24B98: -/* 00E38 80A24B98 0C034213 */ jal Matrix_Push -/* 00E3C 80A24B9C 00000000 */ nop -/* 00E40 80A24BA0 44905000 */ mtc1 $s0, $f10 ## $f10 = 0.00 -/* 00E44 80A24BA4 00000000 */ nop -/* 00E48 80A24BA8 46805120 */ cvt.s.w $f4, $f10 -/* 00E4C 80A24BAC 46182182 */ mul.s $f6, $f4, $f24 -/* 00E50 80A24BB0 461A3503 */ div.s $f20, $f6, $f26 -/* 00E54 80A24BB4 0C0400A4 */ jal sinf - -/* 00E58 80A24BB8 4600A306 */ mov.s $f12, $f20 -/* 00E5C 80A24BBC 46160202 */ mul.s $f8, $f0, $f22 -/* 00E60 80A24BC0 E7BC00C4 */ swc1 $f28, 0x00C4($sp) -/* 00E64 80A24BC4 4600A306 */ mov.s $f12, $f20 -/* 00E68 80A24BC8 0C041184 */ jal cosf - -/* 00E6C 80A24BCC E7A800C0 */ swc1 $f8, 0x00C0($sp) -/* 00E70 80A24BD0 46000287 */ neg.s $f10, $f0 -/* 00E74 80A24BD4 02802025 */ or $a0, $s4, $zero ## $a0 = FFFFFFE8 -/* 00E78 80A24BD8 46165102 */ mul.s $f4, $f10, $f22 -/* 00E7C 80A24BDC 02A02825 */ or $a1, $s5, $zero ## $a1 = FFFFFFDC -/* 00E80 80A24BE0 0C0346BD */ jal Matrix_MultVec3f -/* 00E84 80A24BE4 E7A400C8 */ swc1 $f4, 0x00C8($sp) -/* 00E88 80A24BE8 02130019 */ multu $s0, $s3 -/* 00E8C 80A24BEC C7A600B4 */ lwc1 $f6, 0x00B4($sp) -/* 00E90 80A24BF0 26110001 */ addiu $s1, $s0, 0x0001 ## $s1 = 00000001 -/* 00E94 80A24BF4 0011C400 */ sll $t8, $s1, 16 -/* 00E98 80A24BF8 4606F200 */ add.s $f8, $f30, $f6 -/* 00E9C 80A24BFC 0018CC03 */ sra $t9, $t8, 16 -/* 00EA0 80A24C00 00111C00 */ sll $v1, $s1, 16 -/* 00EA4 80A24C04 2B21000C */ slti $at, $t9, 0x000C -/* 00EA8 80A24C08 00031C03 */ sra $v1, $v1, 16 -/* 00EAC 80A24C0C 00007812 */ mflo $t7 -/* 00EB0 80A24C10 024F1021 */ addu $v0, $s2, $t7 -/* 00EB4 80A24C14 E448014C */ swc1 $f8, 0x014C($v0) ## 0000014C -/* 00EB8 80A24C18 C7A400B8 */ lwc1 $f4, 0x00B8($sp) -/* 00EBC 80A24C1C C7AA0090 */ lwc1 $f10, 0x0090($sp) -/* 00EC0 80A24C20 46045180 */ add.s $f6, $f10, $f4 -/* 00EC4 80A24C24 E4460150 */ swc1 $f6, 0x0150($v0) ## 00000150 -/* 00EC8 80A24C28 C7AA00BC */ lwc1 $f10, 0x00BC($sp) -/* 00ECC 80A24C2C C7A80094 */ lwc1 $f8, 0x0094($sp) -/* 00ED0 80A24C30 460A4100 */ add.s $f4, $f8, $f10 -/* 00ED4 80A24C34 14200004 */ bne $at, $zero, .L80A24C48 -/* 00ED8 80A24C38 E4440154 */ swc1 $f4, 0x0154($v0) ## 00000154 -/* 00EDC 80A24C3C 2603FFFF */ addiu $v1, $s0, 0xFFFF ## $v1 = FFFFFFFF -/* 00EE0 80A24C40 00031C00 */ sll $v1, $v1, 16 -/* 00EE4 80A24C44 00031C03 */ sra $v1, $v1, 16 -.L80A24C48: -/* 00EE8 80A24C48 00730019 */ multu $v1, $s3 -/* 00EEC 80A24C4C 244B01E8 */ addiu $t3, $v0, 0x01E8 ## $t3 = 000001E8 -/* 00EF0 80A24C50 244C0278 */ addiu $t4, $v0, 0x0278 ## $t4 = 00000278 -/* 00EF4 80A24C54 AFAC0018 */ sw $t4, 0x0018($sp) -/* 00EF8 80A24C58 AFAB0014 */ sw $t3, 0x0014($sp) -/* 00EFC 80A24C5C 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000 -/* 00F00 80A24C60 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000 -/* 00F04 80A24C64 2446014C */ addiu $a2, $v0, 0x014C ## $a2 = 0000014C -/* 00F08 80A24C68 24470158 */ addiu $a3, $v0, 0x0158 ## $a3 = 00000158 -/* 00F0C 80A24C6C AFB0001C */ sw $s0, 0x001C($sp) -/* 00F10 80A24C70 00004012 */ mflo $t0 -/* 00F14 80A24C74 02484821 */ addu $t1, $s2, $t0 -/* 00F18 80A24C78 252A0158 */ addiu $t2, $t1, 0x0158 ## $t2 = 00000158 -/* 00F1C 80A24C7C 0C288FF8 */ jal func_80A23FE0 -/* 00F20 80A24C80 AFAA0010 */ sw $t2, 0x0010($sp) -/* 00F24 80A24C84 0C034221 */ jal Matrix_Pop -/* 00F28 80A24C88 00000000 */ nop -/* 00F2C 80A24C8C 00118400 */ sll $s0, $s1, 16 -/* 00F30 80A24C90 00108403 */ sra $s0, $s0, 16 -/* 00F34 80A24C94 2A01000C */ slti $at, $s0, 0x000C -/* 00F38 80A24C98 1420FFBF */ bne $at, $zero, .L80A24B98 -/* 00F3C 80A24C9C 00000000 */ nop -/* 00F40 80A24CA0 0C289169 */ jal func_80A245A4 -/* 00F44 80A24CA4 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000 -/* 00F48 80A24CA8 A2401705 */ sb $zero, 0x1705($s2) ## 00001705 -/* 00F4C 80A24CAC 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000 -.L80A24CB0: -/* 00F50 80A24CB0 0C289221 */ jal func_80A24884 -/* 00F54 80A24CB4 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000 -/* 00F58 80A24CB8 8FBF0074 */ lw $ra, 0x0074($sp) -/* 00F5C 80A24CBC D7B40028 */ ldc1 $f20, 0x0028($sp) -/* 00F60 80A24CC0 D7B60030 */ ldc1 $f22, 0x0030($sp) -/* 00F64 80A24CC4 D7B80038 */ ldc1 $f24, 0x0038($sp) -/* 00F68 80A24CC8 D7BA0040 */ ldc1 $f26, 0x0040($sp) -/* 00F6C 80A24CCC D7BC0048 */ ldc1 $f28, 0x0048($sp) -/* 00F70 80A24CD0 D7BE0050 */ ldc1 $f30, 0x0050($sp) -/* 00F74 80A24CD4 8FB00058 */ lw $s0, 0x0058($sp) -/* 00F78 80A24CD8 8FB1005C */ lw $s1, 0x005C($sp) -/* 00F7C 80A24CDC 8FB20060 */ lw $s2, 0x0060($sp) -/* 00F80 80A24CE0 8FB30064 */ lw $s3, 0x0064($sp) -/* 00F84 80A24CE4 8FB40068 */ lw $s4, 0x0068($sp) -/* 00F88 80A24CE8 8FB5006C */ lw $s5, 0x006C($sp) -/* 00F8C 80A24CEC 8FB60070 */ lw $s6, 0x0070($sp) -/* 00F90 80A24CF0 03E00008 */ jr $ra -/* 00F94 80A24CF4 27BD00D8 */ addiu $sp, $sp, 0x00D8 ## $sp = 00000000 -/* 00F98 80A24CF8 00000000 */ nop -/* 00F9C 80A24CFC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Init.s b/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Init.s deleted file mode 100644 index 0514d0eb0f..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Init.s +++ /dev/null @@ -1,7 +0,0 @@ -glabel EnGanonMant_Init -/* 00000 80A23D60 AFA50004 */ sw $a1, 0x0004($sp) -/* 00004 80A23D64 8C8E0004 */ lw $t6, 0x0004($a0) ## 00000004 -/* 00008 80A23D68 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE -/* 0000C 80A23D6C 01C17824 */ and $t7, $t6, $at -/* 00010 80A23D70 03E00008 */ jr $ra -/* 00014 80A23D74 AC8F0004 */ sw $t7, 0x0004($a0) ## 00000004 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Update.s b/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Update.s deleted file mode 100644 index 0e8cb71dc5..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Update.s +++ /dev/null @@ -1,53 +0,0 @@ -glabel EnGanonMant_Update -/* 00A68 80A247C8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00A6C 80A247CC AFBF0014 */ sw $ra, 0x0014($sp) -/* 00A70 80A247D0 AFA5001C */ sw $a1, 0x001C($sp) -/* 00A74 80A247D4 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00 -/* 00A78 80A247D8 C48016C0 */ lwc1 $f0, 0x16C0($a0) ## 000016C0 -/* 00A7C 80A247DC 908F1706 */ lbu $t7, 0x1706($a0) ## 00001706 -/* 00A80 80A247E0 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001 -/* 00A84 80A247E4 46001032 */ c.eq.s $f2, $f0 -/* 00A88 80A247E8 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001 -/* 00A8C 80A247EC 8C830118 */ lw $v1, 0x0118($a0) ## 00000118 -/* 00A90 80A247F0 A08E1705 */ sb $t6, 0x1705($a0) ## 00001705 -/* 00A94 80A247F4 45000005 */ bc1f .L80A2480C -/* 00A98 80A247F8 A0981706 */ sb $t8, 0x1706($a0) ## 00001706 -/* 00A9C 80A247FC 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00AA0 80A24800 44816000 */ mtc1 $at, $f12 ## $f12 = 1.00 -/* 00AA4 80A24804 10000007 */ beq $zero, $zero, .L80A24824 -/* 00AA8 80A24808 C48016BC */ lwc1 $f0, 0x16BC($a0) ## 000016BC -.L80A2480C: -/* 00AAC 80A2480C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00AB0 80A24810 44816000 */ mtc1 $at, $f12 ## $f12 = 1.00 -/* 00AB4 80A24814 00000000 */ nop -/* 00AB8 80A24818 460C0101 */ sub.s $f4, $f0, $f12 -/* 00ABC 80A2481C E48416C0 */ swc1 $f4, 0x16C0($a0) ## 000016C0 -/* 00AC0 80A24820 C48016BC */ lwc1 $f0, 0x16BC($a0) ## 000016BC -.L80A24824: -/* 00AC4 80A24824 46001032 */ c.eq.s $f2, $f0 -/* 00AC8 80A24828 00000000 */ nop -/* 00ACC 80A2482C 45030004 */ bc1tl .L80A24840 -/* 00AD0 80A24830 C48016C4 */ lwc1 $f0, 0x16C4($a0) ## 000016C4 -/* 00AD4 80A24834 460C0181 */ sub.s $f6, $f0, $f12 -/* 00AD8 80A24838 E48616BC */ swc1 $f6, 0x16BC($a0) ## 000016BC -/* 00ADC 80A2483C C48016C4 */ lwc1 $f0, 0x16C4($a0) ## 000016C4 -.L80A24840: -/* 00AE0 80A24840 46001032 */ c.eq.s $f2, $f0 -/* 00AE4 80A24844 00000000 */ nop -/* 00AE8 80A24848 45030004 */ bc1tl .L80A2485C -/* 00AEC 80A2484C 90821704 */ lbu $v0, 0x1704($a0) ## 00001704 -/* 00AF0 80A24850 460C0201 */ sub.s $f8, $f0, $f12 -/* 00AF4 80A24854 E48816C4 */ swc1 $f8, 0x16C4($a0) ## 000016C4 -/* 00AF8 80A24858 90821704 */ lbu $v0, 0x1704($a0) ## 00001704 -.L80A2485C: -/* 00AFC 80A2485C 847900B6 */ lh $t9, 0x00B6($v1) ## 000000B6 -/* 00B00 80A24860 10400004 */ beq $v0, $zero, .L80A24874 -/* 00B04 80A24864 A49900B6 */ sh $t9, 0x00B6($a0) ## 000000B6 -/* 00B08 80A24868 2448FFFF */ addiu $t0, $v0, 0xFFFF ## $t0 = FFFFFFFF -/* 00B0C 80A2486C 0C288F61 */ jal func_80A23D84 -/* 00B10 80A24870 A0881704 */ sb $t0, 0x1704($a0) ## 00001704 -.L80A24874: -/* 00B14 80A24874 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00B18 80A24878 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00B1C 80A2487C 03E00008 */ jr $ra -/* 00B20 80A24880 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23D84.s b/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23D84.s deleted file mode 100644 index 74376d4554..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23D84.s +++ /dev/null @@ -1,178 +0,0 @@ -.late_rodata -glabel D_80A27EC8 - .float 6.28318548203 - -glabel D_80A27ECC - .word 0x407F5C29 -glabel D_80A27ED0 - .word 0x413E6666 - -.text -glabel func_80A23D84 -/* 00024 80A23D84 27BDFFA0 */ addiu $sp, $sp, 0xFFA0 ## $sp = FFFFFFA0 -/* 00028 80A23D88 F7B80028 */ sdc1 $f24, 0x0028($sp) -/* 0002C 80A23D8C 3C014200 */ lui $at, 0x4200 ## $at = 42000000 -/* 00030 80A23D90 4481C000 */ mtc1 $at, $f24 ## $f24 = 32.00 -/* 00034 80A23D94 AFBF0044 */ sw $ra, 0x0044($sp) -/* 00038 80A23D98 AFB20040 */ sw $s2, 0x0040($sp) -/* 0003C 80A23D9C 00809025 */ or $s2, $a0, $zero ## $s2 = 00000000 -/* 00040 80A23DA0 AFB1003C */ sw $s1, 0x003C($sp) -/* 00044 80A23DA4 AFB00038 */ sw $s0, 0x0038($sp) -/* 00048 80A23DA8 F7BA0030 */ sdc1 $f26, 0x0030($sp) -/* 0004C 80A23DAC F7B60020 */ sdc1 $f22, 0x0020($sp) -/* 00050 80A23DB0 F7B40018 */ sdc1 $f20, 0x0018($sp) -/* 00054 80A23DB4 0C00CFBE */ jal Rand_ZeroFloat - -/* 00058 80A23DB8 4600C306 */ mov.s $f12, $f24 -/* 0005C 80A23DBC 3C014280 */ lui $at, 0x4280 ## $at = 42800000 -/* 00060 80A23DC0 4481D000 */ mtc1 $at, $f26 ## $f26 = 64.00 -/* 00064 80A23DC4 E7A00050 */ swc1 $f0, 0x0050($sp) -/* 00068 80A23DC8 0C00CFBE */ jal Rand_ZeroFloat - -/* 0006C 80A23DCC 4600D306 */ mov.s $f12, $f26 -/* 00070 80A23DD0 3C0180A2 */ lui $at, %hi(D_80A27EC8) ## $at = 80A20000 -/* 00074 80A23DD4 C42C7EC8 */ lwc1 $f12, %lo(D_80A27EC8)($at) -/* 00078 80A23DD8 0C00CFBE */ jal Rand_ZeroFloat - -/* 0007C 80A23DDC E7A0004C */ swc1 $f0, 0x004C($sp) -/* 00080 80A23DE0 46000586 */ mov.s $f22, $f0 -/* 00084 80A23DE4 0C0400A4 */ jal sinf - -/* 00088 80A23DE8 46000306 */ mov.s $f12, $f0 -/* 0008C 80A23DEC 46000506 */ mov.s $f20, $f0 -/* 00090 80A23DF0 0C041184 */ jal cosf - -/* 00094 80A23DF4 4600B306 */ mov.s $f12, $f22 -/* 00098 80A23DF8 3C0180A2 */ lui $at, %hi(D_80A27ECC) ## $at = 80A20000 -/* 0009C 80A23DFC 46000586 */ mov.s $f22, $f0 -/* 000A0 80A23E00 0C00CFBE */ jal Rand_ZeroFloat - -/* 000A4 80A23E04 C42C7ECC */ lwc1 $f12, %lo(D_80A27ECC)($at) -/* 000A8 80A23E08 4600010D */ trunc.w.s $f4, $f0 -/* 000AC 80A23E0C 3C0C80A2 */ lui $t4, %hi(D_80A24D64) ## $t4 = 80A20000 -/* 000B0 80A23E10 258C4D64 */ addiu $t4, $t4, %lo(D_80A24D64) ## $t4 = 80A24D64 -/* 000B4 80A23E14 C7A20050 */ lwc1 $f2, 0x0050($sp) -/* 000B8 80A23E18 440F2000 */ mfc1 $t7, $f4 -/* 000BC 80A23E1C C7AE004C */ lwc1 $f14, 0x004C($sp) -/* 000C0 80A23E20 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000 -/* 000C4 80A23E24 000FC400 */ sll $t8, $t7, 16 -/* 000C8 80A23E28 0018CC03 */ sra $t9, $t8, 16 -/* 000CC 80A23E2C 001958C0 */ sll $t3, $t9, 3 -/* 000D0 80A23E30 016C1021 */ addu $v0, $t3, $t4 -/* 000D4 80A23E34 84490004 */ lh $t1, 0x0004($v0) ## 00000004 -/* 000D8 80A23E38 8C4A0000 */ lw $t2, 0x0000($v0) ## 00000000 -/* 000DC 80A23E3C 3C0780A2 */ lui $a3, %hi(D_80A24F78) ## $a3 = 80A20000 -/* 000E0 80A23E40 19200041 */ blez $t1, .L80A23F48 -/* 000E4 80A23E44 24110001 */ addiu $s1, $zero, 0x0001 ## $s1 = 00000001 -/* 000E8 80A23E48 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 000EC 80A23E4C 24E74F78 */ addiu $a3, $a3, %lo(D_80A24F78) ## $a3 = 80A24F78 -.L80A23E50: -/* 000F0 80A23E50 4602003E */ c.le.s $f0, $f2 -/* 000F4 80A23E54 00000000 */ nop -/* 000F8 80A23E58 45020034 */ bc1fl .L80A23F2C -/* 000FC 80A23E5C 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001 -/* 00100 80A23E60 4618103C */ c.lt.s $f2, $f24 -/* 00104 80A23E64 00000000 */ nop -/* 00108 80A23E68 45020030 */ bc1fl .L80A23F2C -/* 0010C 80A23E6C 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000002 -/* 00110 80A23E70 460E003E */ c.le.s $f0, $f14 -/* 00114 80A23E74 00000000 */ nop -/* 00118 80A23E78 4502002C */ bc1fl .L80A23F2C -/* 0011C 80A23E7C 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000003 -/* 00120 80A23E80 461A703C */ c.lt.s $f14, $f26 -/* 00124 80A23E84 00106840 */ sll $t5, $s0, 1 -/* 00128 80A23E88 014D3021 */ addu $a2, $t2, $t5 -/* 0012C 80A23E8C 45020027 */ bc1fl .L80A23F2C -/* 00130 80A23E90 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000004 -/* 00134 80A23E94 84C40000 */ lh $a0, 0x0000($a2) ## 00000000 -/* 00138 80A23E98 00004025 */ or $t0, $zero, $zero ## $t0 = 00000000 -/* 0013C 80A23E9C 04820023 */ bltzl $a0, .L80A23F2C -/* 00140 80A23EA0 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000005 -.L80A23EA4: -/* 00144 80A23EA4 0480001A */ bltz $a0, .L80A23F10 -/* 00148 80A23EA8 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000 -/* 0014C 80A23EAC 4600720D */ trunc.w.s $f8, $f14 -/* 00150 80A23EB0 4600118D */ trunc.w.s $f6, $f2 -/* 00154 80A23EB4 440E4000 */ mfc1 $t6, $f8 -/* 00158 80A23EB8 44193000 */ mfc1 $t9, $f6 -/* 0015C 80A23EBC 000E7940 */ sll $t7, $t6, 5 -/* 00160 80A23EC0 032FC021 */ addu $t8, $t9, $t7 -/* 00164 80A23EC4 00185C00 */ sll $t3, $t8, 16 -/* 00168 80A23EC8 000B6403 */ sra $t4, $t3, 16 -/* 0016C 80A23ECC 01882821 */ addu $a1, $t4, $t0 -/* 00170 80A23ED0 00036940 */ sll $t5, $v1, 5 -.L80A23ED4: -/* 00174 80A23ED4 00AD1021 */ addu $v0, $a1, $t5 -/* 00178 80A23ED8 00021400 */ sll $v0, $v0, 16 -/* 0017C 80A23EDC 00021403 */ sra $v0, $v0, 16 -/* 00180 80A23EE0 28410800 */ slti $at, $v0, 0x0800 -/* 00184 80A23EE4 10200005 */ beq $at, $zero, .L80A23EFC -/* 00188 80A23EE8 24630001 */ addiu $v1, $v1, 0x0001 ## $v1 = 00000001 -/* 0018C 80A23EEC 00027040 */ sll $t6, $v0, 1 -/* 00190 80A23EF0 00EEC821 */ addu $t9, $a3, $t6 -/* 00194 80A23EF4 A7200000 */ sh $zero, 0x0000($t9) ## 00000000 -/* 00198 80A23EF8 84C40000 */ lh $a0, 0x0000($a2) ## 00000000 -.L80A23EFC: -/* 0019C 80A23EFC 00031C00 */ sll $v1, $v1, 16 -/* 001A0 80A23F00 00031C03 */ sra $v1, $v1, 16 -/* 001A4 80A23F04 0083082A */ slt $at, $a0, $v1 -/* 001A8 80A23F08 5020FFF2 */ beql $at, $zero, .L80A23ED4 -/* 001AC 80A23F0C 00036940 */ sll $t5, $v1, 5 -.L80A23F10: -/* 001B0 80A23F10 25080001 */ addiu $t0, $t0, 0x0001 ## $t0 = 00000001 -/* 001B4 80A23F14 00084400 */ sll $t0, $t0, 16 -/* 001B8 80A23F18 00084403 */ sra $t0, $t0, 16 -/* 001BC 80A23F1C 0088082A */ slt $at, $a0, $t0 -/* 001C0 80A23F20 1020FFE0 */ beq $at, $zero, .L80A23EA4 -/* 001C4 80A23F24 00000000 */ nop -/* 001C8 80A23F28 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000006 -.L80A23F2C: -/* 001CC 80A23F2C 00108400 */ sll $s0, $s0, 16 -/* 001D0 80A23F30 00108403 */ sra $s0, $s0, 16 -/* 001D4 80A23F34 0209082A */ slt $at, $s0, $t1 -/* 001D8 80A23F38 46141080 */ add.s $f2, $f2, $f20 -/* 001DC 80A23F3C 1420FFC4 */ bne $at, $zero, .L80A23E50 -/* 001E0 80A23F40 46167380 */ add.s $f14, $f14, $f22 -/* 001E4 80A23F44 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000 -.L80A23F48: -/* 001E8 80A23F48 3C0180A2 */ lui $at, %hi(D_80A27ED0) ## $at = 80A20000 -/* 001EC 80A23F4C C4367ED0 */ lwc1 $f22, %lo(D_80A27ED0)($at) -.L80A23F50: -/* 001F0 80A23F50 0C00CFBE */ jal Rand_ZeroFloat - -/* 001F4 80A23F54 4600B306 */ mov.s $f12, $f22 -/* 001F8 80A23F58 46000506 */ mov.s $f20, $f0 -/* 001FC 80A23F5C 0C00CFBE */ jal Rand_ZeroFloat - -/* 00200 80A23F60 4600B306 */ mov.s $f12, $f22 -/* 00204 80A23F64 4600028D */ trunc.w.s $f10, $f0 -/* 00208 80A23F68 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001 -/* 0020C 80A23F6C 00108400 */ sll $s0, $s0, 16 -/* 00210 80A23F70 4600A40D */ trunc.w.s $f16, $f20 -/* 00214 80A23F74 44185000 */ mfc1 $t8, $f10 -/* 00218 80A23F78 00108403 */ sra $s0, $s0, 16 -/* 0021C 80A23F7C 2A010004 */ slti $at, $s0, 0x0004 -/* 00220 80A23F80 00185C00 */ sll $t3, $t8, 16 -/* 00224 80A23F84 000B6403 */ sra $t4, $t3, 16 -/* 00228 80A23F88 000C68C0 */ sll $t5, $t4, 3 -/* 0022C 80A23F8C 440F8000 */ mfc1 $t7, $f16 -/* 00230 80A23F90 01AC6823 */ subu $t5, $t5, $t4 -/* 00234 80A23F94 000D68C0 */ sll $t5, $t5, 3 -/* 00238 80A23F98 01AC6821 */ addu $t5, $t5, $t4 -/* 0023C 80A23F9C 000D68C0 */ sll $t5, $t5, 3 -/* 00240 80A23FA0 000FC400 */ sll $t8, $t7, 16 -/* 00244 80A23FA4 00185C03 */ sra $t3, $t8, 16 -/* 00248 80A23FA8 024D7021 */ addu $t6, $s2, $t5 -/* 0024C 80A23FAC 01CB6021 */ addu $t4, $t6, $t3 -/* 00250 80A23FB0 1420FFE7 */ bne $at, $zero, .L80A23F50 -/* 00254 80A23FB4 A1910308 */ sb $s1, 0x0308($t4) ## 00000308 -/* 00258 80A23FB8 8FBF0044 */ lw $ra, 0x0044($sp) -/* 0025C 80A23FBC D7B40018 */ ldc1 $f20, 0x0018($sp) -/* 00260 80A23FC0 D7B60020 */ ldc1 $f22, 0x0020($sp) -/* 00264 80A23FC4 D7B80028 */ ldc1 $f24, 0x0028($sp) -/* 00268 80A23FC8 D7BA0030 */ ldc1 $f26, 0x0030($sp) -/* 0026C 80A23FCC 8FB00038 */ lw $s0, 0x0038($sp) -/* 00270 80A23FD0 8FB1003C */ lw $s1, 0x003C($sp) -/* 00274 80A23FD4 8FB20040 */ lw $s2, 0x0040($sp) -/* 00278 80A23FD8 03E00008 */ jr $ra -/* 0027C 80A23FDC 27BD0060 */ addiu $sp, $sp, 0x0060 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23FE0.s b/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23FE0.s deleted file mode 100644 index bc01d2b206..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23FE0.s +++ /dev/null @@ -1,410 +0,0 @@ -.late_rodata -glabel D_80A27ED4 - .float 3.14159274101 - -glabel D_80A27ED8 - .float 6.28318548203 - -glabel D_80A27EDC - .float 2.1 - -glabel D_80A27EE0 - .float 3.14159274101 - -.text -glabel func_80A23FE0 -/* 00280 80A23FE0 27BDFF20 */ addiu $sp, $sp, 0xFF20 ## $sp = FFFFFF20 -/* 00284 80A23FE4 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00 -/* 00288 80A23FE8 AFBF006C */ sw $ra, 0x006C($sp) -/* 0028C 80A23FEC AFBE0068 */ sw $s8, 0x0068($sp) -/* 00290 80A23FF0 AFB70064 */ sw $s7, 0x0064($sp) -/* 00294 80A23FF4 AFB60060 */ sw $s6, 0x0060($sp) -/* 00298 80A23FF8 AFB5005C */ sw $s5, 0x005C($sp) -/* 0029C 80A23FFC AFB40058 */ sw $s4, 0x0058($sp) -/* 002A0 80A24000 AFB30054 */ sw $s3, 0x0054($sp) -/* 002A4 80A24004 AFB20050 */ sw $s2, 0x0050($sp) -/* 002A8 80A24008 AFB1004C */ sw $s1, 0x004C($sp) -/* 002AC 80A2400C AFB00048 */ sw $s0, 0x0048($sp) -/* 002B0 80A24010 F7BE0040 */ sdc1 $f30, 0x0040($sp) -/* 002B4 80A24014 F7BC0038 */ sdc1 $f28, 0x0038($sp) -/* 002B8 80A24018 F7BA0030 */ sdc1 $f26, 0x0030($sp) -/* 002BC 80A2401C F7B80028 */ sdc1 $f24, 0x0028($sp) -/* 002C0 80A24020 F7B60020 */ sdc1 $f22, 0x0020($sp) -/* 002C4 80A24024 F7B40018 */ sdc1 $f20, 0x0018($sp) -/* 002C8 80A24028 AFA400E0 */ sw $a0, 0x00E0($sp) -/* 002CC 80A2402C E7A400A4 */ swc1 $f4, 0x00A4($sp) -/* 002D0 80A24030 84AE001C */ lh $t6, 0x001C($a1) ## 0000001C -/* 002D4 80A24034 24010023 */ addiu $at, $zero, 0x0023 ## $at = 00000023 -/* 002D8 80A24038 00E08025 */ or $s0, $a3, $zero ## $s0 = 00000000 -/* 002DC 80A2403C 00A09025 */ or $s2, $a1, $zero ## $s2 = 00000000 -/* 002E0 80A24040 15C1002C */ bne $t6, $at, .L80A240F4 -/* 002E4 80A24044 00C0F025 */ or $s8, $a2, $zero ## $s8 = 00000000 -/* 002E8 80A24048 3C01C1F0 */ lui $at, 0xC1F0 ## $at = C1F00000 -/* 002EC 80A2404C 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00 -/* 002F0 80A24050 44814000 */ mtc1 $at, $f8 ## $f8 = -30.00 -/* 002F4 80A24054 3C014700 */ lui $at, 0x4700 ## $at = 47000000 -/* 002F8 80A24058 E7A600A0 */ swc1 $f6, 0x00A0($sp) -/* 002FC 80A2405C E7A800A8 */ swc1 $f8, 0x00A8($sp) -/* 00300 80A24060 84AF00B6 */ lh $t7, 0x00B6($a1) ## 000000B6 -/* 00304 80A24064 44819000 */ mtc1 $at, $f18 ## $f18 = 32768.00 -/* 00308 80A24068 3C0180A2 */ lui $at, %hi(D_80A27ED4) ## $at = 80A20000 -/* 0030C 80A2406C 448F5000 */ mtc1 $t7, $f10 ## $f10 = 0.00 -/* 00310 80A24070 C4267ED4 */ lwc1 $f6, %lo(D_80A27ED4)($at) -/* 00314 80A24074 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00318 80A24078 46805420 */ cvt.s.w $f16, $f10 -/* 0031C 80A2407C 46128103 */ div.s $f4, $f16, $f18 -/* 00320 80A24080 46062302 */ mul.s $f12, $f4, $f6 -/* 00324 80A24084 0C034348 */ jal Matrix_RotateY -/* 00328 80A24088 00000000 */ nop -/* 0032C 80A2408C 27B500A0 */ addiu $s5, $sp, 0x00A0 ## $s5 = FFFFFFC0 -/* 00330 80A24090 02A02025 */ or $a0, $s5, $zero ## $a0 = FFFFFFC0 -/* 00334 80A24094 0C0346BD */ jal Matrix_MultVec3f -/* 00338 80A24098 27A50094 */ addiu $a1, $sp, 0x0094 ## $a1 = FFFFFFB4 -/* 0033C 80A2409C 0000A025 */ or $s4, $zero, $zero ## $s4 = 00000000 -/* 00340 80A240A0 2403000C */ addiu $v1, $zero, 0x000C ## $v1 = 0000000C -.L80A240A4: -/* 00344 80A240A4 02830019 */ multu $s4, $v1 -/* 00348 80A240A8 C7AA0094 */ lwc1 $f10, 0x0094($sp) -/* 0034C 80A240AC 26940001 */ addiu $s4, $s4, 0x0001 ## $s4 = 00000001 -/* 00350 80A240B0 0014A400 */ sll $s4, $s4, 16 -/* 00354 80A240B4 0014A403 */ sra $s4, $s4, 16 -/* 00358 80A240B8 2A81000C */ slti $at, $s4, 0x000C -/* 0035C 80A240BC 0000C012 */ mflo $t8 -/* 00360 80A240C0 03101021 */ addu $v0, $t8, $s0 -/* 00364 80A240C4 C4480000 */ lwc1 $f8, 0x0000($v0) ## 00000000 -/* 00368 80A240C8 C4520008 */ lwc1 $f18, 0x0008($v0) ## 00000008 -/* 0036C 80A240CC 460A4400 */ add.s $f16, $f8, $f10 -/* 00370 80A240D0 E4500000 */ swc1 $f16, 0x0000($v0) ## 00000000 -/* 00374 80A240D4 C7A4009C */ lwc1 $f4, 0x009C($sp) -/* 00378 80A240D8 46049180 */ add.s $f6, $f18, $f4 -/* 0037C 80A240DC 1420FFF1 */ bne $at, $zero, .L80A240A4 -/* 00380 80A240E0 E4460008 */ swc1 $f6, 0x0008($v0) ## 00000008 -/* 00384 80A240E4 3C0140D0 */ lui $at, 0x40D0 ## $at = 40D00000 -/* 00388 80A240E8 44814000 */ mtc1 $at, $f8 ## $f8 = 6.50 -/* 0038C 80A240EC 10000005 */ beq $zero, $zero, .L80A24104 -/* 00390 80A240F0 E7A800AC */ swc1 $f8, 0x00AC($sp) -.L80A240F4: -/* 00394 80A240F4 3C014118 */ lui $at, 0x4118 ## $at = 41180000 -/* 00398 80A240F8 44815000 */ mtc1 $at, $f10 ## $f10 = 9.50 -/* 0039C 80A240FC 27B500A0 */ addiu $s5, $sp, 0x00A0 ## $s5 = FFFFFFC0 -/* 003A0 80A24100 E7AA00AC */ swc1 $f10, 0x00AC($sp) -.L80A24104: -/* 003A4 80A24104 3C01C0A0 */ lui $at, 0xC0A0 ## $at = C0A00000 -/* 003A8 80A24108 4481F000 */ mtc1 $at, $f30 ## $f30 = -5.00 -/* 003AC 80A2410C 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000 -/* 003B0 80A24110 4481E000 */ mtc1 $at, $f28 ## $f28 = 5.00 -/* 003B4 80A24114 0000A025 */ or $s4, $zero, $zero ## $s4 = 00000000 -/* 003B8 80A24118 8FB700F0 */ lw $s7, 0x00F0($sp) -/* 003BC 80A2411C 8FB600F4 */ lw $s6, 0x00F4($sp) -/* 003C0 80A24120 8FB100F8 */ lw $s1, 0x00F8($sp) -.L80A24124: -/* 003C4 80A24124 16800008 */ bne $s4, $zero, .L80A24148 -/* 003C8 80A24128 87A200FE */ lh $v0, 0x00FE($sp) -/* 003CC 80A2412C C7D00000 */ lwc1 $f16, 0x0000($s8) ## 00000000 -/* 003D0 80A24130 E6100000 */ swc1 $f16, 0x0000($s0) ## 00000000 -/* 003D4 80A24134 C7D20004 */ lwc1 $f18, 0x0004($s8) ## 00000004 -/* 003D8 80A24138 E6120004 */ swc1 $f18, 0x0004($s0) ## 00000004 -/* 003DC 80A2413C C7C40008 */ lwc1 $f4, 0x0008($s8) ## 00000008 -/* 003E0 80A24140 100000F7 */ beq $zero, $zero, .L80A24520 -/* 003E4 80A24144 E6040008 */ swc1 $f4, 0x0008($s0) ## 00000008 -.L80A24148: -/* 003E8 80A24148 44823000 */ mtc1 $v0, $f6 ## $f6 = 0.00 -/* 003EC 80A2414C 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00 -/* 003F0 80A24150 3C0180A2 */ lui $at, %hi(D_80A27ED8) ## $at = 80A20000 -/* 003F4 80A24154 46803220 */ cvt.s.w $f8, $f6 -/* 003F8 80A24158 C42A7ED8 */ lwc1 $f10, %lo(D_80A27ED8)($at) -/* 003FC 80A2415C 3C0180A2 */ lui $at, %hi(D_80A27EDC) ## $at = 80A20000 -/* 00400 80A24160 C4327EDC */ lwc1 $f18, %lo(D_80A27EDC)($at) -/* 00404 80A24164 3C0180A2 */ lui $at, %hi(D_80A27EE0) ## $at = 80A20000 -/* 00408 80A24168 468021A0 */ cvt.s.w $f6, $f4 -/* 0040C 80A2416C 460A4402 */ mul.s $f16, $f8, $f10 -/* 00410 80A24170 C4287EE0 */ lwc1 $f8, %lo(D_80A27EE0)($at) -/* 00414 80A24174 3C014130 */ lui $at, 0x4130 ## $at = 41300000 -/* 00418 80A24178 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -/* 0041C 80A2417C 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD -/* 00420 80A24180 46083282 */ mul.s $f10, $f6, $f8 -/* 00424 80A24184 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00428 80A24188 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000 -/* 0042C 80A2418C 46128503 */ div.s $f20, $f16, $f18 -/* 00430 80A24190 44818000 */ mtc1 $at, $f16 ## $f16 = 11.00 -/* 00434 80A24194 0C01E123 */ jal Math_ApproachZeroF - -/* 00438 80A24198 46105583 */ div.s $f22, $f10, $f16 -/* 0043C 80A2419C 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -/* 00440 80A241A0 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD -/* 00444 80A241A4 26240004 */ addiu $a0, $s1, 0x0004 ## $a0 = 00000004 -/* 00448 80A241A8 0C01E123 */ jal Math_ApproachZeroF - -/* 0044C 80A241AC 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000 -/* 00450 80A241B0 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -/* 00454 80A241B4 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD -/* 00458 80A241B8 26240008 */ addiu $a0, $s1, 0x0008 ## $a0 = 00000008 -/* 0045C 80A241BC 0C01E123 */ jal Math_ApproachZeroF - -/* 00460 80A241C0 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000 -/* 00464 80A241C4 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00 -/* 00468 80A241C8 4600A306 */ mov.s $f12, $f20 -/* 0046C 80A241CC 0C0400A4 */ jal sinf - -/* 00470 80A241D0 E7B200A0 */ swc1 $f18, 0x00A0($sp) -/* 00474 80A241D4 C64616B4 */ lwc1 $f6, 0x16B4($s2) ## 000016B4 -/* 00478 80A241D8 C64416B0 */ lwc1 $f4, 0x16B0($s2) ## 000016B0 -/* 0047C 80A241DC 00149880 */ sll $s3, $s4, 2 -/* 00480 80A241E0 46060202 */ mul.s $f8, $f0, $f6 -/* 00484 80A241E4 3C0180A2 */ lui $at, %hi(D_80A24D84) ## $at = 80A20000 -/* 00488 80A241E8 00330821 */ addu $at, $at, $s3 -/* 0048C 80A241EC C4304D84 */ lwc1 $f16, %lo(D_80A24D84)($at) -/* 00490 80A241F0 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00494 80A241F4 46082280 */ add.s $f10, $f4, $f8 -/* 00498 80A241F8 460A8482 */ mul.s $f18, $f16, $f10 -/* 0049C 80A241FC E7B200A8 */ swc1 $f18, 0x00A8($sp) -/* 004A0 80A24200 0C034348 */ jal Matrix_RotateY -/* 004A4 80A24204 C64C16CC */ lwc1 $f12, 0x16CC($s2) ## 000016CC -/* 004A8 80A24208 02A02025 */ or $a0, $s5, $zero ## $a0 = FFFFFFC0 -/* 004AC 80A2420C 0C0346BD */ jal Matrix_MultVec3f -/* 004B0 80A24210 27A50088 */ addiu $a1, $sp, 0x0088 ## $a1 = FFFFFFA8 -/* 004B4 80A24214 0C041184 */ jal cosf - -/* 004B8 80A24218 4600B306 */ mov.s $f12, $f22 -/* 004BC 80A2421C C64416B8 */ lwc1 $f4, 0x16B8($s2) ## 000016B8 -/* 004C0 80A24220 3C0180A2 */ lui $at, %hi(D_80A24DD0) ## $at = 80A20000 -/* 004C4 80A24224 00330821 */ addu $at, $at, $s3 -/* 004C8 80A24228 46040202 */ mul.s $f8, $f0, $f4 -/* 004CC 80A2422C C4264DD0 */ lwc1 $f6, %lo(D_80A24DD0)($at) -/* 004D0 80A24230 44805000 */ mtc1 $zero, $f10 ## $f10 = 0.00 -/* 004D4 80A24234 02A02025 */ or $a0, $s5, $zero ## $a0 = FFFFFFC0 -/* 004D8 80A24238 27A5007C */ addiu $a1, $sp, 0x007C ## $a1 = FFFFFF9C -/* 004DC 80A2423C E7AA00A8 */ swc1 $f10, 0x00A8($sp) -/* 004E0 80A24240 46083402 */ mul.s $f16, $f6, $f8 -/* 004E4 80A24244 0C0346BD */ jal Matrix_MultVec3f -/* 004E8 80A24248 E7B000A0 */ swc1 $f16, 0x00A0($sp) -/* 004EC 80A2424C C6120000 */ lwc1 $f18, 0x0000($s0) ## 00000000 -/* 004F0 80A24250 C6240000 */ lwc1 $f4, 0x0000($s1) ## 00000000 -/* 004F4 80A24254 C608FFF4 */ lwc1 $f8, -0x000C($s0) ## FFFFFFF4 -/* 004F8 80A24258 C7AA0088 */ lwc1 $f10, 0x0088($sp) -/* 004FC 80A2425C 46049180 */ add.s $f6, $f18, $f4 -/* 00500 80A24260 C7B2007C */ lwc1 $f18, 0x007C($sp) -/* 00504 80A24264 C64016C8 */ lwc1 $f0, 0x16C8($s2) ## 000016C8 -/* 00508 80A24268 46083401 */ sub.s $f16, $f6, $f8 -/* 0050C 80A2426C C6280004 */ lwc1 $f8, 0x0004($s1) ## 00000004 -/* 00510 80A24270 C6060004 */ lwc1 $f6, 0x0004($s0) ## 00000004 -/* 00514 80A24274 46125100 */ add.s $f4, $f10, $f18 -/* 00518 80A24278 C612FFF8 */ lwc1 $f18, -0x0008($s0) ## FFFFFFF8 -/* 0051C 80A2427C 46083280 */ add.s $f10, $f6, $f8 -/* 00520 80A24280 C6260008 */ lwc1 $f6, 0x0008($s1) ## 00000008 -/* 00524 80A24284 46048500 */ add.s $f20, $f16, $f4 -/* 00528 80A24288 C6040008 */ lwc1 $f4, 0x0008($s0) ## 00000008 -/* 0052C 80A2428C 46125401 */ sub.s $f16, $f10, $f18 -/* 00530 80A24290 C60AFFFC */ lwc1 $f10, -0x0004($s0) ## FFFFFFFC -/* 00534 80A24294 4600A386 */ mov.s $f14, $f20 -/* 00538 80A24298 46062200 */ add.s $f8, $f4, $f6 -/* 0053C 80A2429C C7A40084 */ lwc1 $f4, 0x0084($sp) -/* 00540 80A242A0 46008600 */ add.s $f24, $f16, $f0 -/* 00544 80A242A4 C7B00090 */ lwc1 $f16, 0x0090($sp) -/* 00548 80A242A8 460A4481 */ sub.s $f18, $f8, $f10 -/* 0054C 80A242AC 46048180 */ add.s $f6, $f16, $f4 -/* 00550 80A242B0 46069580 */ add.s $f22, $f18, $f6 -/* 00554 80A242B4 0C0341F5 */ jal Math_Atan2F - -/* 00558 80A242B8 4600B306 */ mov.s $f12, $f22 -/* 0055C 80A242BC 4614A202 */ mul.s $f8, $f20, $f20 -/* 00560 80A242C0 46000686 */ mov.s $f26, $f0 -/* 00564 80A242C4 4600C386 */ mov.s $f14, $f24 -/* 00568 80A242C8 4616B282 */ mul.s $f10, $f22, $f22 -/* 0056C 80A242CC 460A4000 */ add.s $f0, $f8, $f10 -/* 00570 80A242D0 0C0341F5 */ jal Math_Atan2F - -/* 00574 80A242D4 46000304 */ sqrt.s $f12, $f0 -/* 00578 80A242D8 46000507 */ neg.s $f20, $f0 -/* 0057C 80A242DC 44808000 */ mtc1 $zero, $f16 ## $f16 = 0.00 -/* 00580 80A242E0 E6D4FFF4 */ swc1 $f20, -0x000C($s6) ## FFFFFFF4 -/* 00584 80A242E4 C7A400AC */ lwc1 $f4, 0x00AC($sp) -/* 00588 80A242E8 4600D306 */ mov.s $f12, $f26 -/* 0058C 80A242EC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00590 80A242F0 E7B000A0 */ swc1 $f16, 0x00A0($sp) -/* 00594 80A242F4 0C034348 */ jal Matrix_RotateY -/* 00598 80A242F8 E7A400A8 */ swc1 $f4, 0x00A8($sp) -/* 0059C 80A242FC 4600A306 */ mov.s $f12, $f20 -/* 005A0 80A24300 0C0342DC */ jal Matrix_RotateX -/* 005A4 80A24304 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001 -/* 005A8 80A24308 02A02025 */ or $a0, $s5, $zero ## $a0 = FFFFFFC0 -/* 005AC 80A2430C 0C0346BD */ jal Matrix_MultVec3f -/* 005B0 80A24310 27A50094 */ addiu $a1, $sp, 0x0094 ## $a1 = FFFFFFB4 -/* 005B4 80A24314 C612FFF4 */ lwc1 $f18, -0x000C($s0) ## FFFFFFF4 -/* 005B8 80A24318 C7A60094 */ lwc1 $f6, 0x0094($sp) -/* 005BC 80A2431C C6140000 */ lwc1 $f20, 0x0000($s0) ## 00000000 -/* 005C0 80A24320 C60AFFF8 */ lwc1 $f10, -0x0008($s0) ## FFFFFFF8 -/* 005C4 80A24324 46069200 */ add.s $f8, $f18, $f6 -/* 005C8 80A24328 C6180004 */ lwc1 $f24, 0x0004($s0) ## 00000004 -/* 005CC 80A2432C C612FFFC */ lwc1 $f18, -0x0004($s0) ## FFFFFFFC -/* 005D0 80A24330 C6160008 */ lwc1 $f22, 0x0008($s0) ## 00000008 -/* 005D4 80A24334 E6080000 */ swc1 $f8, 0x0000($s0) ## 00000000 -/* 005D8 80A24338 C7B00098 */ lwc1 $f16, 0x0098($sp) -/* 005DC 80A2433C 3C1980A2 */ lui $t9, %hi(D_80A24E18) ## $t9 = 80A20000 -/* 005E0 80A24340 27394E18 */ addiu $t9, $t9, %lo(D_80A24E18) ## $t9 = 80A24E18 -/* 005E4 80A24344 46105100 */ add.s $f4, $f10, $f16 -/* 005E8 80A24348 C60A0000 */ lwc1 $f10, 0x0000($s0) ## 00000000 -/* 005EC 80A2434C 02791021 */ addu $v0, $s3, $t9 -/* 005F0 80A24350 E6040004 */ swc1 $f4, 0x0004($s0) ## 00000004 -/* 005F4 80A24354 C7A6009C */ lwc1 $f6, 0x009C($sp) -/* 005F8 80A24358 46069200 */ add.s $f8, $f18, $f6 -/* 005FC 80A2435C E6080008 */ swc1 $f8, 0x0008($s0) ## 00000008 -/* 00600 80A24360 C6500024 */ lwc1 $f16, 0x0024($s2) ## 00000024 -/* 00604 80A24364 C652002C */ lwc1 $f18, 0x002C($s2) ## 0000002C -/* 00608 80A24368 C6040008 */ lwc1 $f4, 0x0008($s0) ## 00000008 -/* 0060C 80A2436C 46105381 */ sub.s $f14, $f10, $f16 -/* 00610 80A24370 C65016D0 */ lwc1 $f16, 0x16D0($s2) ## 000016D0 -/* 00614 80A24374 C44A0000 */ lwc1 $f10, 0x0000($v0) ## 00000000 -/* 00618 80A24378 46122301 */ sub.s $f12, $f4, $f18 -/* 0061C 80A2437C 460E7182 */ mul.s $f6, $f14, $f14 -/* 00620 80A24380 00000000 */ nop -/* 00624 80A24384 460C6202 */ mul.s $f8, $f12, $f12 -/* 00628 80A24388 46083000 */ add.s $f0, $f6, $f8 -/* 0062C 80A2438C 46105102 */ mul.s $f4, $f10, $f16 -/* 00630 80A24390 46000004 */ sqrt.s $f0, $f0 -/* 00634 80A24394 4604003C */ c.lt.s $f0, $f4 -/* 00638 80A24398 00000000 */ nop -/* 0063C 80A2439C 45000016 */ bc1f .L80A243F8 -/* 00640 80A243A0 00000000 */ nop -/* 00644 80A243A4 0C0341F5 */ jal Math_Atan2F - -/* 00648 80A243A8 AFA20070 */ sw $v0, 0x0070($sp) -/* 0064C 80A243AC 8FA20070 */ lw $v0, 0x0070($sp) -/* 00650 80A243B0 C64616D0 */ lwc1 $f6, 0x16D0($s2) ## 000016D0 -/* 00654 80A243B4 46000306 */ mov.s $f12, $f0 -/* 00658 80A243B8 C4520000 */ lwc1 $f18, 0x0000($v0) ## 00000000 -/* 0065C 80A243BC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00660 80A243C0 46069202 */ mul.s $f8, $f18, $f6 -/* 00664 80A243C4 0C034348 */ jal Matrix_RotateY -/* 00668 80A243C8 E7A800A8 */ swc1 $f8, 0x00A8($sp) -/* 0066C 80A243CC 02A02025 */ or $a0, $s5, $zero ## $a0 = FFFFFFC0 -/* 00670 80A243D0 0C0346BD */ jal Matrix_MultVec3f -/* 00674 80A243D4 27A50094 */ addiu $a1, $sp, 0x0094 ## $a1 = FFFFFFB4 -/* 00678 80A243D8 C64A0024 */ lwc1 $f10, 0x0024($s2) ## 00000024 -/* 0067C 80A243DC C7B00094 */ lwc1 $f16, 0x0094($sp) -/* 00680 80A243E0 46105100 */ add.s $f4, $f10, $f16 -/* 00684 80A243E4 E6040000 */ swc1 $f4, 0x0000($s0) ## 00000000 -/* 00688 80A243E8 C7A6009C */ lwc1 $f6, 0x009C($sp) -/* 0068C 80A243EC C652002C */ lwc1 $f18, 0x002C($s2) ## 0000002C -/* 00690 80A243F0 46069200 */ add.s $f8, $f18, $f6 -/* 00694 80A243F4 E6080008 */ swc1 $f8, 0x0008($s0) ## 00000008 -.L80A243F8: -/* 00698 80A243F8 C64016AC */ lwc1 $f0, 0x16AC($s2) ## 000016AC -/* 0069C 80A243FC C60A0004 */ lwc1 $f10, 0x0004($s0) ## 00000004 -/* 006A0 80A24400 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000 -/* 006A4 80A24404 4600503C */ c.lt.s $f10, $f0 -/* 006A8 80A24408 00000000 */ nop -/* 006AC 80A2440C 45020003 */ bc1fl .L80A2441C -/* 006B0 80A24410 C6100000 */ lwc1 $f16, 0x0000($s0) ## 00000000 -/* 006B4 80A24414 E6000004 */ swc1 $f0, 0x0004($s0) ## 00000004 -/* 006B8 80A24418 C6100000 */ lwc1 $f16, 0x0000($s0) ## 00000000 -.L80A2441C: -/* 006BC 80A2441C 44810000 */ mtc1 $at, $f0 ## $f0 = 100.00 -/* 006C0 80A24420 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000 -/* 006C4 80A24424 46148101 */ sub.s $f4, $f16, $f20 -/* 006C8 80A24428 44811000 */ mtc1 $at, $f2 ## $f2 = 80.00 -/* 006CC 80A2442C 24010023 */ addiu $at, $zero, 0x0023 ## $at = 00000023 -/* 006D0 80A24430 46022482 */ mul.s $f18, $f4, $f2 -/* 006D4 80A24434 46009183 */ div.s $f6, $f18, $f0 -/* 006D8 80A24438 E6260000 */ swc1 $f6, 0x0000($s1) ## 00000000 -/* 006DC 80A2443C C6080004 */ lwc1 $f8, 0x0004($s0) ## 00000004 -/* 006E0 80A24440 46184281 */ sub.s $f10, $f8, $f24 -/* 006E4 80A24444 46025402 */ mul.s $f16, $f10, $f2 -/* 006E8 80A24448 46008103 */ div.s $f4, $f16, $f0 -/* 006EC 80A2444C E6240004 */ swc1 $f4, 0x0004($s1) ## 00000004 -/* 006F0 80A24450 C6120008 */ lwc1 $f18, 0x0008($s0) ## 00000008 -/* 006F4 80A24454 46169181 */ sub.s $f6, $f18, $f22 -/* 006F8 80A24458 46023202 */ mul.s $f8, $f6, $f2 -/* 006FC 80A2445C 46004283 */ div.s $f10, $f8, $f0 -/* 00700 80A24460 E62A0008 */ swc1 $f10, 0x0008($s1) ## 00000008 -/* 00704 80A24464 8648001C */ lh $t0, 0x001C($s2) ## 0000001C -/* 00708 80A24468 51010026 */ beql $t0, $at, .L80A24504 -/* 0070C 80A2446C C6100000 */ lwc1 $f16, 0x0000($s0) ## 00000000 -/* 00710 80A24470 C6200000 */ lwc1 $f0, 0x0000($s1) ## 00000000 -/* 00714 80A24474 4600E03C */ c.lt.s $f28, $f0 -/* 00718 80A24478 00000000 */ nop -/* 0071C 80A2447C 45020004 */ bc1fl .L80A24490 -/* 00720 80A24480 461E003C */ c.lt.s $f0, $f30 -/* 00724 80A24484 10000006 */ beq $zero, $zero, .L80A244A0 -/* 00728 80A24488 E63C0000 */ swc1 $f28, 0x0000($s1) ## 00000000 -/* 0072C 80A2448C 461E003C */ c.lt.s $f0, $f30 -.L80A24490: -/* 00730 80A24490 00000000 */ nop -/* 00734 80A24494 45020003 */ bc1fl .L80A244A4 -/* 00738 80A24498 C6200004 */ lwc1 $f0, 0x0004($s1) ## 00000004 -/* 0073C 80A2449C E63E0000 */ swc1 $f30, 0x0000($s1) ## 00000000 -.L80A244A0: -/* 00740 80A244A0 C6200004 */ lwc1 $f0, 0x0004($s1) ## 00000004 -.L80A244A4: -/* 00744 80A244A4 4600E03C */ c.lt.s $f28, $f0 -/* 00748 80A244A8 00000000 */ nop -/* 0074C 80A244AC 45020004 */ bc1fl .L80A244C0 -/* 00750 80A244B0 461E003C */ c.lt.s $f0, $f30 -/* 00754 80A244B4 10000006 */ beq $zero, $zero, .L80A244D0 -/* 00758 80A244B8 E63C0004 */ swc1 $f28, 0x0004($s1) ## 00000004 -/* 0075C 80A244BC 461E003C */ c.lt.s $f0, $f30 -.L80A244C0: -/* 00760 80A244C0 00000000 */ nop -/* 00764 80A244C4 45020003 */ bc1fl .L80A244D4 -/* 00768 80A244C8 C6200008 */ lwc1 $f0, 0x0008($s1) ## 00000008 -/* 0076C 80A244CC E63E0004 */ swc1 $f30, 0x0004($s1) ## 00000004 -.L80A244D0: -/* 00770 80A244D0 C6200008 */ lwc1 $f0, 0x0008($s1) ## 00000008 -.L80A244D4: -/* 00774 80A244D4 4600E03C */ c.lt.s $f28, $f0 -/* 00778 80A244D8 00000000 */ nop -/* 0077C 80A244DC 45020004 */ bc1fl .L80A244F0 -/* 00780 80A244E0 461E003C */ c.lt.s $f0, $f30 -/* 00784 80A244E4 10000006 */ beq $zero, $zero, .L80A24500 -/* 00788 80A244E8 E63C0008 */ swc1 $f28, 0x0008($s1) ## 00000008 -/* 0078C 80A244EC 461E003C */ c.lt.s $f0, $f30 -.L80A244F0: -/* 00790 80A244F0 00000000 */ nop -/* 00794 80A244F4 45020003 */ bc1fl .L80A24504 -/* 00798 80A244F8 C6100000 */ lwc1 $f16, 0x0000($s0) ## 00000000 -/* 0079C 80A244FC E63E0008 */ swc1 $f30, 0x0008($s1) ## 00000008 -.L80A24500: -/* 007A0 80A24500 C6100000 */ lwc1 $f16, 0x0000($s0) ## 00000000 -.L80A24504: -/* 007A4 80A24504 C6E40000 */ lwc1 $f4, 0x0000($s7) ## 00000000 -/* 007A8 80A24508 C6120008 */ lwc1 $f18, 0x0008($s0) ## 00000008 -/* 007AC 80A2450C C6E60008 */ lwc1 $f6, 0x0008($s7) ## 00000008 -/* 007B0 80A24510 46048381 */ sub.s $f14, $f16, $f4 -/* 007B4 80A24514 0C0341F5 */ jal Math_Atan2F - -/* 007B8 80A24518 46069301 */ sub.s $f12, $f18, $f6 -/* 007BC 80A2451C E6C0FFF8 */ swc1 $f0, -0x0008($s6) ## FFFFFFF8 -.L80A24520: -/* 007C0 80A24520 26940001 */ addiu $s4, $s4, 0x0001 ## $s4 = 00000001 -/* 007C4 80A24524 0014A400 */ sll $s4, $s4, 16 -/* 007C8 80A24528 0014A403 */ sra $s4, $s4, 16 -/* 007CC 80A2452C 2A81000C */ slti $at, $s4, 0x000C -/* 007D0 80A24530 2610000C */ addiu $s0, $s0, 0x000C ## $s0 = 0000000C -/* 007D4 80A24534 2631000C */ addiu $s1, $s1, 0x000C ## $s1 = 0000000C -/* 007D8 80A24538 26D6000C */ addiu $s6, $s6, 0x000C ## $s6 = 0000000C -/* 007DC 80A2453C 1420FEF9 */ bne $at, $zero, .L80A24124 -/* 007E0 80A24540 26F7000C */ addiu $s7, $s7, 0x000C ## $s7 = 0000000C -/* 007E4 80A24544 AFB700F0 */ sw $s7, 0x00F0($sp) -/* 007E8 80A24548 AFB100F8 */ sw $s1, 0x00F8($sp) -/* 007EC 80A2454C C6C8007C */ lwc1 $f8, 0x007C($s6) ## 00000088 -/* 007F0 80A24550 C6CA0078 */ lwc1 $f10, 0x0078($s6) ## 00000084 -/* 007F4 80A24554 E6C80088 */ swc1 $f8, 0x0088($s6) ## 00000094 -/* 007F8 80A24558 E6CA0084 */ swc1 $f10, 0x0084($s6) ## 00000090 -/* 007FC 80A2455C 8FBF006C */ lw $ra, 0x006C($sp) -/* 00800 80A24560 8FBE0068 */ lw $s8, 0x0068($sp) -/* 00804 80A24564 8FB70064 */ lw $s7, 0x0064($sp) -/* 00808 80A24568 8FB60060 */ lw $s6, 0x0060($sp) -/* 0080C 80A2456C 8FB5005C */ lw $s5, 0x005C($sp) -/* 00810 80A24570 8FB40058 */ lw $s4, 0x0058($sp) -/* 00814 80A24574 8FB30054 */ lw $s3, 0x0054($sp) -/* 00818 80A24578 8FB20050 */ lw $s2, 0x0050($sp) -/* 0081C 80A2457C 8FB1004C */ lw $s1, 0x004C($sp) -/* 00820 80A24580 8FB00048 */ lw $s0, 0x0048($sp) -/* 00824 80A24584 D7BE0040 */ ldc1 $f30, 0x0040($sp) -/* 00828 80A24588 D7BC0038 */ ldc1 $f28, 0x0038($sp) -/* 0082C 80A2458C D7BA0030 */ ldc1 $f26, 0x0030($sp) -/* 00830 80A24590 D7B80028 */ ldc1 $f24, 0x0028($sp) -/* 00834 80A24594 D7B60020 */ ldc1 $f22, 0x0020($sp) -/* 00838 80A24598 D7B40018 */ ldc1 $f20, 0x0018($sp) -/* 0083C 80A2459C 03E00008 */ jr $ra -/* 00840 80A245A0 27BD00E0 */ addiu $sp, $sp, 0x00E0 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A245A4.s b/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A245A4.s deleted file mode 100644 index 66cfe9666e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A245A4.s +++ /dev/null @@ -1,142 +0,0 @@ -glabel func_80A245A4 -/* 00844 80A245A4 27BDFF88 */ addiu $sp, $sp, 0xFF88 ## $sp = FFFFFF88 -/* 00848 80A245A8 AFBF003C */ sw $ra, 0x003C($sp) -/* 0084C 80A245AC AFBE0038 */ sw $s8, 0x0038($sp) -/* 00850 80A245B0 AFB70034 */ sw $s7, 0x0034($sp) -/* 00854 80A245B4 AFB60030 */ sw $s6, 0x0030($sp) -/* 00858 80A245B8 AFB5002C */ sw $s5, 0x002C($sp) -/* 0085C 80A245BC AFB40028 */ sw $s4, 0x0028($sp) -/* 00860 80A245C0 AFB30024 */ sw $s3, 0x0024($sp) -/* 00864 80A245C4 AFB20020 */ sw $s2, 0x0020($sp) -/* 00868 80A245C8 AFB1001C */ sw $s1, 0x001C($sp) -/* 0086C 80A245CC AFB00018 */ sw $s0, 0x0018($sp) -/* 00870 80A245D0 908E1706 */ lbu $t6, 0x1706($a0) ## 00001706 -/* 00874 80A245D4 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 00878 80A245D8 2495014C */ addiu $s5, $a0, 0x014C ## $s5 = 0000014C -/* 0087C 80A245DC 31CF0001 */ andi $t7, $t6, 0x0001 ## $t7 = 00000000 -/* 00880 80A245E0 11E00011 */ beq $t7, $zero, .L80A24628 -/* 00884 80A245E4 27BE004C */ addiu $s8, $sp, 0x004C ## $s8 = FFFFFFD4 -/* 00888 80A245E8 3C0380A2 */ lui $v1, %hi(D_80A26778) ## $v1 = 80A20000 -/* 0088C 80A245EC 24636778 */ addiu $v1, $v1, %lo(D_80A26778) ## $v1 = 80A26778 -/* 00890 80A245F0 0003C100 */ sll $t8, $v1, 4 -/* 00894 80A245F4 0018CF02 */ srl $t9, $t8, 28 -/* 00898 80A245F8 00194080 */ sll $t0, $t9, 2 -/* 0089C 80A245FC 3C098016 */ lui $t1, %hi(gSegments) -/* 008A0 80A24600 01284821 */ addu $t1, $t1, $t0 -/* 008A4 80A24604 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000 -/* 008A8 80A24608 8D296FA8 */ lw $t1, %lo(gSegments)($t1) -/* 008AC 80A2460C 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF -/* 008B0 80A24610 00615024 */ and $t2, $v1, $at -/* 008B4 80A24614 3C018000 */ lui $at, 0x8000 ## $at = 80000000 -/* 008B8 80A24618 012A1021 */ addu $v0, $t1, $t2 -/* 008BC 80A2461C 00411021 */ addu $v0, $v0, $at -/* 008C0 80A24620 10000010 */ beq $zero, $zero, .L80A24664 -/* 008C4 80A24624 AFA2006C */ sw $v0, 0x006C($sp) -.L80A24628: -/* 008C8 80A24628 3C0280A2 */ lui $v0, %hi(D_80A27578) ## $v0 = 80A20000 -/* 008CC 80A2462C 24427578 */ addiu $v0, $v0, %lo(D_80A27578) ## $v0 = 80A27578 -/* 008D0 80A24630 00025900 */ sll $t3, $v0, 4 -/* 008D4 80A24634 000B6702 */ srl $t4, $t3, 28 -/* 008D8 80A24638 000C6880 */ sll $t5, $t4, 2 -/* 008DC 80A2463C 3C0E8016 */ lui $t6, %hi(gSegments) -/* 008E0 80A24640 01CD7021 */ addu $t6, $t6, $t5 -/* 008E4 80A24644 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000 -/* 008E8 80A24648 8DCE6FA8 */ lw $t6, %lo(gSegments)($t6) -/* 008EC 80A2464C 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF -/* 008F0 80A24650 00417824 */ and $t7, $v0, $at -/* 008F4 80A24654 3C018000 */ lui $at, 0x8000 ## $at = 80000000 -/* 008F8 80A24658 01CFC021 */ addu $t8, $t6, $t7 -/* 008FC 80A2465C 0301C821 */ addu $t9, $t8, $at -/* 00900 80A24660 AFB9006C */ sw $t9, 0x006C($sp) -.L80A24664: -/* 00904 80A24664 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000 -/* 00908 80A24668 44812000 */ mtc1 $at, $f4 ## $f4 = 30.00 -/* 0090C 80A2466C E7A00058 */ swc1 $f0, 0x0058($sp) -/* 00910 80A24670 E7A00060 */ swc1 $f0, 0x0060($sp) -/* 00914 80A24674 A7A00076 */ sh $zero, 0x0076($sp) -/* 00918 80A24678 27B70058 */ addiu $s7, $sp, 0x0058 ## $s7 = FFFFFFE0 -/* 0091C 80A2467C 2416000C */ addiu $s6, $zero, 0x000C ## $s6 = 0000000C -/* 00920 80A24680 E7A4005C */ swc1 $f4, 0x005C($sp) -.L80A24684: -/* 00924 80A24684 87A30076 */ lh $v1, 0x0076($sp) -/* 00928 80A24688 3C0980A2 */ lui $t1, %hi(D_80A24E4C) ## $t1 = 80A20000 -/* 0092C 80A2468C 25294E4C */ addiu $t1, $t1, %lo(D_80A24E4C) ## $t1 = 80A24E4C -/* 00930 80A24690 00034040 */ sll $t0, $v1, 1 -/* 00934 80A24694 0109A021 */ addu $s4, $t0, $t1 -/* 00938 80A24698 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000 -/* 0093C 80A2469C 00009825 */ or $s3, $zero, $zero ## $s3 = 00000000 -.L80A246A0: -/* 00940 80A246A0 02560019 */ multu $s2, $s6 -/* 00944 80A246A4 00135040 */ sll $t2, $s3, 1 -/* 00948 80A246A8 028A5821 */ addu $t3, $s4, $t2 -/* 0094C 80A246AC 956C0000 */ lhu $t4, 0x0000($t3) ## 00000000 -/* 00950 80A246B0 8FA2006C */ lw $v0, 0x006C($sp) -/* 00954 80A246B4 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00958 80A246B8 000C6900 */ sll $t5, $t4, 4 -/* 0095C 80A246BC 01A28021 */ addu $s0, $t5, $v0 -/* 00960 80A246C0 00007012 */ mflo $t6 -/* 00964 80A246C4 02AE8821 */ addu $s1, $s5, $t6 -/* 00968 80A246C8 C626000C */ lwc1 $f6, 0x000C($s1) ## 0000000C -/* 0096C 80A246CC 4600320D */ trunc.w.s $f8, $f6 -/* 00970 80A246D0 44184000 */ mfc1 $t8, $f8 -/* 00974 80A246D4 00000000 */ nop -/* 00978 80A246D8 A6180000 */ sh $t8, 0x0000($s0) ## 00000000 -/* 0097C 80A246DC C62A0010 */ lwc1 $f10, 0x0010($s1) ## 00000010 -/* 00980 80A246E0 4600540D */ trunc.w.s $f16, $f10 -/* 00984 80A246E4 44088000 */ mfc1 $t0, $f16 -/* 00988 80A246E8 00000000 */ nop -/* 0098C 80A246EC A6080002 */ sh $t0, 0x0002($s0) ## 00000002 -/* 00990 80A246F0 C6320014 */ lwc1 $f18, 0x0014($s1) ## 00000014 -/* 00994 80A246F4 4600910D */ trunc.w.s $f4, $f18 -/* 00998 80A246F8 440A2000 */ mfc1 $t2, $f4 -/* 0099C 80A246FC 00000000 */ nop -/* 009A0 80A24700 A60A0004 */ sh $t2, 0x0004($s0) ## 00000004 -/* 009A4 80A24704 0C034348 */ jal Matrix_RotateY -/* 009A8 80A24708 C62C00A0 */ lwc1 $f12, 0x00A0($s1) ## 000000A0 -/* 009AC 80A2470C C62C009C */ lwc1 $f12, 0x009C($s1) ## 0000009C -/* 009B0 80A24710 0C0342DC */ jal Matrix_RotateX -/* 009B4 80A24714 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001 -/* 009B8 80A24718 02E02025 */ or $a0, $s7, $zero ## $a0 = FFFFFFE0 -/* 009BC 80A2471C 0C0346BD */ jal Matrix_MultVec3f -/* 009C0 80A24720 03C02825 */ or $a1, $s8, $zero ## $a1 = FFFFFFD4 -/* 009C4 80A24724 C7A6004C */ lwc1 $f6, 0x004C($sp) -/* 009C8 80A24728 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000001 -/* 009CC 80A2472C 00129400 */ sll $s2, $s2, 16 -/* 009D0 80A24730 4600320D */ trunc.w.s $f8, $f6 -/* 009D4 80A24734 00129403 */ sra $s2, $s2, 16 -/* 009D8 80A24738 2673000C */ addiu $s3, $s3, 0x000C ## $s3 = 0000000C -/* 009DC 80A2473C 00139C00 */ sll $s3, $s3, 16 -/* 009E0 80A24740 440C4000 */ mfc1 $t4, $f8 -/* 009E4 80A24744 2A41000C */ slti $at, $s2, 0x000C -/* 009E8 80A24748 00139C03 */ sra $s3, $s3, 16 -/* 009EC 80A2474C A20C000C */ sb $t4, 0x000C($s0) ## 0000000C -/* 009F0 80A24750 C7AA0050 */ lwc1 $f10, 0x0050($sp) -/* 009F4 80A24754 4600540D */ trunc.w.s $f16, $f10 -/* 009F8 80A24758 440E8000 */ mfc1 $t6, $f16 -/* 009FC 80A2475C 00000000 */ nop -/* 00A00 80A24760 A20E000D */ sb $t6, 0x000D($s0) ## 0000000D -/* 00A04 80A24764 C7B20054 */ lwc1 $f18, 0x0054($sp) -/* 00A08 80A24768 4600910D */ trunc.w.s $f4, $f18 -/* 00A0C 80A2476C 44182000 */ mfc1 $t8, $f4 -/* 00A10 80A24770 1420FFCB */ bne $at, $zero, .L80A246A0 -/* 00A14 80A24774 A218000E */ sb $t8, 0x000E($s0) ## 0000000E -/* 00A18 80A24778 87B90076 */ lh $t9, 0x0076($sp) -/* 00A1C 80A2477C 26B501C8 */ addiu $s5, $s5, 0x01C8 ## $s5 = 00000314 -/* 00A20 80A24780 27280001 */ addiu $t0, $t9, 0x0001 ## $t0 = 00000001 -/* 00A24 80A24784 00084C00 */ sll $t1, $t0, 16 -/* 00A28 80A24788 00095403 */ sra $t2, $t1, 16 -/* 00A2C 80A2478C 2941000C */ slti $at, $t2, 0x000C -/* 00A30 80A24790 1420FFBC */ bne $at, $zero, .L80A24684 -/* 00A34 80A24794 A7A80076 */ sh $t0, 0x0076($sp) -/* 00A38 80A24798 8FBF003C */ lw $ra, 0x003C($sp) -/* 00A3C 80A2479C 8FB00018 */ lw $s0, 0x0018($sp) -/* 00A40 80A247A0 8FB1001C */ lw $s1, 0x001C($sp) -/* 00A44 80A247A4 8FB20020 */ lw $s2, 0x0020($sp) -/* 00A48 80A247A8 8FB30024 */ lw $s3, 0x0024($sp) -/* 00A4C 80A247AC 8FB40028 */ lw $s4, 0x0028($sp) -/* 00A50 80A247B0 8FB5002C */ lw $s5, 0x002C($sp) -/* 00A54 80A247B4 8FB60030 */ lw $s6, 0x0030($sp) -/* 00A58 80A247B8 8FB70034 */ lw $s7, 0x0034($sp) -/* 00A5C 80A247BC 8FBE0038 */ lw $s8, 0x0038($sp) -/* 00A60 80A247C0 03E00008 */ jr $ra -/* 00A64 80A247C4 27BD0078 */ addiu $sp, $sp, 0x0078 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A24884.s b/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A24884.s deleted file mode 100644 index b009eef8b4..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A24884.s +++ /dev/null @@ -1,99 +0,0 @@ -.rdata -glabel D_80A27E80 - .asciz "../z_en_ganon_mant.c" - .balign 4 - -glabel D_80A27E98 - .asciz "../z_en_ganon_mant.c" - .balign 4 - -glabel D_80A27EB0 - .asciz "../z_en_ganon_mant.c" - .balign 4 - -.text -glabel func_80A24884 -/* 00B24 80A24884 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0 -/* 00B28 80A24888 AFBF001C */ sw $ra, 0x001C($sp) -/* 00B2C 80A2488C AFB00018 */ sw $s0, 0x0018($sp) -/* 00B30 80A24890 AFA40050 */ sw $a0, 0x0050($sp) -/* 00B34 80A24894 AFA50054 */ sw $a1, 0x0054($sp) -/* 00B38 80A24898 8C850000 */ lw $a1, 0x0000($a0) ## 00000000 -/* 00B3C 80A2489C 3C0680A2 */ lui $a2, %hi(D_80A27E80) ## $a2 = 80A20000 -/* 00B40 80A248A0 24C67E80 */ addiu $a2, $a2, %lo(D_80A27E80) ## $a2 = 80A27E80 -/* 00B44 80A248A4 27A40038 */ addiu $a0, $sp, 0x0038 ## $a0 = FFFFFFE8 -/* 00B48 80A248A8 24070234 */ addiu $a3, $zero, 0x0234 ## $a3 = 00000234 -/* 00B4C 80A248AC 0C031AB1 */ jal Graph_OpenDisps -/* 00B50 80A248B0 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000 -/* 00B54 80A248B4 44806000 */ mtc1 $zero, $f12 ## $f12 = 0.00 -/* 00B58 80A248B8 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 00B5C 80A248BC 44066000 */ mfc1 $a2, $f12 -/* 00B60 80A248C0 0C034261 */ jal Matrix_Translate -/* 00B64 80A248C4 46006386 */ mov.s $f14, $f12 -/* 00B68 80A248C8 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 00B6C 80A248CC 3C18DA38 */ lui $t8, 0xDA38 ## $t8 = DA380000 -/* 00B70 80A248D0 37180003 */ ori $t8, $t8, 0x0003 ## $t8 = DA380003 -/* 00B74 80A248D4 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008 -/* 00B78 80A248D8 AE0F02C0 */ sw $t7, 0x02C0($s0) ## 000002C0 -/* 00B7C 80A248DC AC580000 */ sw $t8, 0x0000($v0) ## 00000000 -/* 00B80 80A248E0 8FB90050 */ lw $t9, 0x0050($sp) -/* 00B84 80A248E4 3C0580A2 */ lui $a1, %hi(D_80A27E98) ## $a1 = 80A20000 -/* 00B88 80A248E8 24A57E98 */ addiu $a1, $a1, %lo(D_80A27E98) ## $a1 = 80A27E98 -/* 00B8C 80A248EC 8F240000 */ lw $a0, 0x0000($t9) ## 00000000 -/* 00B90 80A248F0 2406023C */ addiu $a2, $zero, 0x023C ## $a2 = 0000023C -/* 00B94 80A248F4 0C0346A2 */ jal Matrix_NewMtx -/* 00B98 80A248F8 AFA20034 */ sw $v0, 0x0034($sp) -/* 00B9C 80A248FC 8FA30034 */ lw $v1, 0x0034($sp) -/* 00BA0 80A24900 3C0980A2 */ lui $t1, %hi(D_80A27078) ## $t1 = 80A20000 -/* 00BA4 80A24904 25297078 */ addiu $t1, $t1, %lo(D_80A27078) ## $t1 = 80A27078 -/* 00BA8 80A24908 AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 00BAC 80A2490C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 00BB0 80A24910 3C04DE00 */ lui $a0, 0xDE00 ## $a0 = DE000000 -/* 00BB4 80A24914 3C19DB06 */ lui $t9, 0xDB06 ## $t9 = DB060000 -/* 00BB8 80A24918 24480008 */ addiu $t0, $v0, 0x0008 ## $t0 = 00000008 -/* 00BBC 80A2491C AE0802C0 */ sw $t0, 0x02C0($s0) ## 000002C0 -/* 00BC0 80A24920 AC490004 */ sw $t1, 0x0004($v0) ## 00000004 -/* 00BC4 80A24924 AC440000 */ sw $a0, 0x0000($v0) ## 00000000 -/* 00BC8 80A24928 8FAA0054 */ lw $t2, 0x0054($sp) -/* 00BCC 80A2492C 3C0EDB06 */ lui $t6, 0xDB06 ## $t6 = DB060000 -/* 00BD0 80A24930 37390030 */ ori $t9, $t9, 0x0030 ## $t9 = DB060030 -/* 00BD4 80A24934 914B1706 */ lbu $t3, 0x1706($t2) ## 00001706 -/* 00BD8 80A24938 3C0A80A2 */ lui $t2, %hi(D_80A27128) ## $t2 = 80A20000 -/* 00BDC 80A2493C 254A7128 */ addiu $t2, $t2, %lo(D_80A27128) ## $t2 = 80A27128 -/* 00BE0 80A24940 316C0001 */ andi $t4, $t3, 0x0001 ## $t4 = 00000000 -/* 00BE4 80A24944 1180000A */ beq $t4, $zero, .L80A24970 -/* 00BE8 80A24948 3C0680A2 */ lui $a2, %hi(D_80A27EB0) ## $a2 = 80A20000 -/* 00BEC 80A2494C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 00BF0 80A24950 3C0F80A2 */ lui $t7, %hi(D_80A26778) ## $t7 = 80A20000 -/* 00BF4 80A24954 25EF6778 */ addiu $t7, $t7, %lo(D_80A26778) ## $t7 = 80A26778 -/* 00BF8 80A24958 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008 -/* 00BFC 80A2495C AE0D02C0 */ sw $t5, 0x02C0($s0) ## 000002C0 -/* 00C00 80A24960 35CE0030 */ ori $t6, $t6, 0x0030 ## $t6 = DB060030 -/* 00C04 80A24964 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000 -/* 00C08 80A24968 10000008 */ beq $zero, $zero, .L80A2498C -/* 00C0C 80A2496C AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004 -.L80A24970: -/* 00C10 80A24970 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 00C14 80A24974 3C0880A2 */ lui $t0, %hi(D_80A27578) ## $t0 = 80A20000 -/* 00C18 80A24978 25087578 */ addiu $t0, $t0, %lo(D_80A27578) ## $t0 = 80A27578 -/* 00C1C 80A2497C 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008 -/* 00C20 80A24980 AE1802C0 */ sw $t8, 0x02C0($s0) ## 000002C0 -/* 00C24 80A24984 AC480004 */ sw $t0, 0x0004($v0) ## 00000004 -/* 00C28 80A24988 AC590000 */ sw $t9, 0x0000($v0) ## 00000000 -.L80A2498C: -/* 00C2C 80A2498C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 00C30 80A24990 24C67EB0 */ addiu $a2, $a2, %lo(D_80A27EB0) ## $a2 = 80A27EB0 -/* 00C34 80A24994 24070248 */ addiu $a3, $zero, 0x0248 ## $a3 = 00000248 -/* 00C38 80A24998 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008 -/* 00C3C 80A2499C AE0902C0 */ sw $t1, 0x02C0($s0) ## 000002C0 -/* 00C40 80A249A0 AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004 -/* 00C44 80A249A4 AC440000 */ sw $a0, 0x0000($v0) ## 00000000 -/* 00C48 80A249A8 8FAB0050 */ lw $t3, 0x0050($sp) -/* 00C4C 80A249AC 27A40038 */ addiu $a0, $sp, 0x0038 ## $a0 = FFFFFFE8 -/* 00C50 80A249B0 0C031AD5 */ jal Graph_CloseDisps -/* 00C54 80A249B4 8D650000 */ lw $a1, 0x0000($t3) ## 00000000 -/* 00C58 80A249B8 8FBF001C */ lw $ra, 0x001C($sp) -/* 00C5C 80A249BC 8FB00018 */ lw $s0, 0x0018($sp) -/* 00C60 80A249C0 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000 -/* 00C64 80A249C4 03E00008 */ jr $ra -/* 00C68 80A249C8 00000000 */ nop diff --git a/data/overlays/actors/z_en_ganon_mant.data.s b/data/overlays/actors/z_en_ganon_mant.data.s deleted file mode 100644 index bb979c6c7e..0000000000 --- a/data/overlays/actors/z_en_ganon_mant.data.s +++ /dev/null @@ -1,57 +0,0 @@ -.include "macro.inc" - - # assembler directives - .set noat # allow manual use of $at - .set noreorder # don't insert nops after branches - .set gp=64 # allow use of 64-bit general purpose registers - -.section .data - -.balign 16 - -glabel En_Ganon_Mant_InitVars - .word 0x016F0900, 0x00000030, 0x00010000, 0x00001708 -.word EnGanonMant_Init -.word EnGanonMant_Destroy -.word EnGanonMant_Update -.word EnGanonMant_Draw -glabel D_80A24D20 - .word 0x00000000, 0x00000001, 0x00010001, 0x00010001, 0x00000000 -glabel D_80A24D34 - .word 0x00000000, 0x00000000, 0x00010001, 0x00020002, 0x00020001, 0x00010000, 0x00000000, 0x00000000 -glabel D_80A24D54 - .word 0x00000000, 0x00000000, 0x00000000, 0x00000000 -glabel D_80A24D64 - .word D_80A24D20 -.word 0x000A0000 -.word D_80A24D20 -.word 0x000A0000 -.word D_80A24D34 -.word 0x000F0000 -.word D_80A24D54 -.word 0x00070000 -glabel D_80A24D84 - .word 0x00000000, 0x3F800000, 0x3F000000, 0x3E800000, 0x3DCCCCCD, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 -glabel D_80A24DD0 - .word 0x00000000, 0x3F800000, 0x3F666666, 0x3F4CCCCD, 0x3F333333, 0x3F19999A, 0x3F000000, 0x3ECCCCCD, 0x3E99999A, 0x3E4CCCCD, 0x3DCCCCCD, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 -glabel D_80A24E18 - .word 0x00000000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F8CCCCD, 0x3F99999A, 0x3FA66666, 0x3FB33333, 0x3FC00000, 0x3FCCCCCD, 0x3FD9999A, 0x3FE66666 -glabel D_80A24E4C - .word 0x000B0017, 0x0023002F, 0x003B0047, 0x0053005F, 0x006B0077, 0x0083008F, 0x000A0016, 0x0022002E, 0x003A0046, 0x0052005E, 0x006A0076, 0x0082008E, 0x00090015, 0x0021002D, 0x00390045, 0x0051005D, 0x00690075, 0x0081008D, 0x00080014, 0x0020002C, 0x00380044, 0x0050005C, 0x00680074, 0x0080008C, 0x00070013, 0x001F002B, 0x00370043, 0x004F005B, 0x00670073, 0x007F008B, 0x00060012, 0x001E002A, 0x00360042, 0x004E005A, 0x00660072, 0x007E008A, 0x00050011, 0x001D0029, 0x00350041, 0x004D0059, 0x00650071, 0x007D0089, 0x00040010, 0x001C0028, 0x00340040, 0x004C0058, 0x00640070, 0x007C0088, 0x0003000F, 0x001B0027, 0x0033003F, 0x004B0057, 0x0063006F, 0x007B0087, 0x0002000E, 0x001A0026, 0x0032003E, 0x004A0056, 0x0062006E, 0x007A0086, 0x0001000D, 0x00190025, 0x0031003D, 0x00490055, 0x0061006D, 0x00790085, 0x0000000C, 0x00180024, 0x0030003C, 0x00480054, 0x0060006C, 0x00780084, 0x00000000, 0x00000000, 0x00000000 -glabel D_80A24F78 - .word 0x7001A801, 0x78014801, 0x48017001, 0x90018801, 0x88017801, 0x50015001, 0x58016001, 0x68018801, 0x70015801, 0x48014001, 0x38014001, 0x60018001, 0x9001A801, 0x88015001, 0x40014001, 0x48015801, 0x7001A801, 0x78015801, 0x50016001, 0x90019001, 0x90018001, 0x58015801, 0x58015801, 0x60019001, 0x78016801, 0x48014001, 0x40014001, 0x68018801, 0x9801A001, 0x98016001, 0x40014001, 0x48015801, 0x7001B001, 0x98017001, 0x50016001, 0x98019001, 0x90018001, 0x58015801, 0x58016001, 0x68018801, 0x80017001, 0x50014801, 0x40014801, 0x58018001, 0x9801A001, 0xA8016801, 0x40014001, 0x48016001, 0x6801A801, 0xA0017001, 0x48016001, 0x90018801, 0x88017801, 0x60015801, 0x58016801, 0x78018001, 0x80017801, 0x60015001, 0x40014801, 0x58016001, 0x80019801, 0xA0017801, 0x48014801, 0x48016001, 0x7001A801, 0x98018801, 0x50015801, 0x78018801, 0x88017801, 0x60015801, 0x60016801, 0x80018001, 0x80017801, 0x68015001, 0x48015001, 0x58016001, 0x80019801, 0x98018001, 0x50014801, 0x50016001, 0x7001A001, 0x90018801, 0x60016001, 0x78018801, 0x88017801, 0x60015801, 0x60016801, 0x78018001, 0x88018001, 0x68015801, 0x48015001, 0x58016801, 0x68018801, 0x98019001, 0x50015001, 0x50016001, 0x70019001, 0x80017801, 0x68016001, 0x78018801, 0x80017001, 0x60016001, 0x60017801, 0x80018001, 0x88018801, 0x78016001, 0x48015001, 0x60017001, 0x70018801, 0x98019801, 0x58015001, 0x58016801, 0x70018001, 0x78016801, 0x68016801, 0x78018801, 0x80016801, 0x60016001, 0x60017801, 0x80017801, 0x88018801, 0x80016801, 0x50015801, 0x68017001, 0x70018801, 0x90019801, 0x58015001, 0x58017001, 0x70017801, 0xBB417001, 0x70016801, 0x80018001, 0x78016801, 0x60016801, 0x68017001, 0x78017801, 0x80018801, 0x88017001, 0x50015801, 0x68017001, 0x70018801, 0x90019801, 0x60015001, 0x60017801, 0x70017001, 0xFE43BB41, 0x78017801, 0x80017801, 0x70017001, 0x60016001, 0x68017001, 0x78017801, 0x78018001, 0x90017001, 0x58016001, 0x68017001, 0x70018801, 0x90019801, 0x60015001, 0x60017001, 0x70017001, 0xFE43FE43, 0x70018801, 0x80017801, 0x70017001, 0x60016001, 0x68017001, 0x78017801, 0x78018001, 0x90017801, 0x60016001, 0x68017001, 0x70018801, 0x90019801, 0x68015801, 0x68017001, 0x70017001, 0xFE437001, 0x70018801, 0x80017001, 0x70017001, 0x68016001, 0x68017001, 0x70017801, 0x78018001, 0x90017801, 0x60016801, 0x68017001, 0x70018801, 0x88019001, 0x68015801, 0x68017001, 0x70017001, 0x70017001, 0x78018001, 0x78017001, 0x70016801, 0x68016001, 0x68017001, 0x70017801, 0x78018801, 0x90017801, 0x60016801, 0x68017001, 0x70017801, 0x88019001, 0x68015801, 0x68017001, 0x70017001, 0xFFE17001, 0x78017801, 0x78017001, 0x70016801, 0x68016801, 0x68017001, 0x70017001, 0x78018801, 0x88017801, 0x60016801, 0x68017001, 0x70017801, 0x80019001, 0x68015801, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x68017001, 0x70017001, 0x70017801, 0x80018801, 0x88017801, 0x68016801, 0x68017001, 0x78017001, 0x80019001, 0x68016001, 0x70017001, 0x70017001, 0xFFF77001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017801, 0x80018801, 0x80017801, 0x68016801, 0x70017001, 0x78017001, 0x80018801, 0x68016001, 0x70017001, 0x70017001, 0xFFDB7001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017801, 0x80018001, 0x80017001, 0x68017001, 0x70017801, 0x78017001, 0x80018801, 0x68016801, 0x70017001, 0x70017001, 0x81037001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017801, 0x80018001, 0x78017001, 0x68017001, 0x78018001, 0x80017001, 0x80018001, 0x68016801, 0x70017001, 0x70017001, 0xFF8D7001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x80018001, 0x80017001, 0x70017001, 0x78018001, 0x80017001, 0x78018001, 0x68016801, 0x70017001, 0x70017001, 0xFDC17001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x80018001, 0x78017001, 0x70017001, 0x78018001, 0x80017001, 0x78017801, 0x68017001, 0x70017001, 0x70017001, 0xFDC18901, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x80018001, 0x78017001, 0x70017001, 0x78017801, 0x80017001, 0x78017801, 0x68017001, 0x70017001, 0x70017001, 0xFDC1A201, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x78017801, 0x70017001, 0x70017001, 0x78017801, 0x80017001, 0x78017801, 0x68017001, 0x70017001, 0x70017001, 0xFDC1DC41, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x78017801, 0x78017801, 0x70017001, 0x70017001, 0x78017801, 0x68017001, 0x70017001, 0x70017001, 0xDC41FF8B, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x78017801, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xA201FE85, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017801, 0x78017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017841, 0x8081FE43, 0xCB817001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x78017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xA2D1FFFF, 0x70017001, 0xBAC1FDC1, 0xFF8B7001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xFE01F611, 0x70017001, 0xFF8B7001, 0xFDC17001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001BC1F, 0xFE01FE01, 0x70017001, 0xFE85FDC1, 0xBAC17001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001FFFF, 0xFE01FE01, 0x70017001, 0xFE437001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xAAC3FF49, 0xFE01FE01, 0x70017001, 0xFF8BF541, 0x89417001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017881, 0xDC85FE47, 0xFE8BFE01, 0x70017001, 0xE4C17001, 0xFF8B7001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001BB01, 0xFE01FE01, 0x70017001, 0x8941E4C1, 0xF6457001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001BC1F, 0xFFFFFF8B, 0xDD897001, 0xBB01FE01, 0x70017001, 0x70017001, 0xED837001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xBBC5FE01, 0xFE01FE01, 0xFF8BBBC5, 0x70017001, 0x70017001, 0x7881BB81, 0xC4017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xFE01BB01, 0x7001BB01, 0xFE01FF8B, 0xFF8B7001, 0x70017001, 0x9A817001, 0xFF8B7001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001FE01, 0xFE01FF8B, 0x70017001, 0xFF8B8A01, 0x78817001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001FF8B, 0xFFFFFFFF, 0x7001BB01, 0xFE01FE01, 0x70017001, 0xCC017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x700180C1, 0xDD89FF8B, 0xFFFFDD89, 0x70017001, 0x70017001, 0xFF8BFE01, 0xFE01FE01, 0xFFFF7001, 0xFE01FE01, 0x70017001, 0xCC01FF8B, 0x79017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001BB01, 0xFE01FE01, 0xFE01FE01, 0xFF8B7001, 0x70017001, 0xFE01FE01, 0xFE01FE01, 0xFE017001, 0xFE01FE01, 0x70017001, 0xBB817001, 0x82017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x9181FE01, 0xB381A281, 0xAB01CC81, 0xFE01FFFF, 0x70017001, 0x7001FE01, 0xFE01FE01, 0x7001BC1F, 0xFE01FE01, 0x70017001, 0x78819241, 0xFF8B7001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xCBC1ED41, 0xB2817001, 0x70017001, 0xDC81FE01, 0xBB017001, 0x70017001, 0x70017001, 0x7001FFFF, 0xFE01FE01, 0x70017001, 0x70017001, 0xDCC17001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xFE01DC81, 0x7001FF8B, 0xFFFF91C3, 0x7001EE07, 0xFFFF7001, 0xFF8BDD89, 0x7001BBC5, 0xFF8BFE01, 0xDC817001, 0x70017001, 0x8901E4C1, 0xFF8B7001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xBB01FE01, 0xDC817001, 0xFE01FF8B, 0x7001CC03, 0xFF8BBBC5, 0x7001FF8B, 0xFFFFFFFF, 0xFE01BB01, 0x70017001, 0x70017001, 0xD4817001, 0xD4817001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001DC81, 0xFE01FE01, 0xCC81BBC1, 0x70017001, 0xDD89FF8B, 0xBB017001, 0xED41FE01, 0xBB017001, 0x920FFFFF, 0x70017001, 0xCC41FF8B, 0x89417001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xC3C1BBC1, 0xC3C17001, 0x70017001, 0x7001DD47, 0xFE017001, 0x70017001, 0x700191C3, 0xFE91FF21, 0x70017001, 0x7001DC81, 0x70017001, 0x7001FF8B, 0xBBC57001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xBB01FE01, 0x70017001, 0x7001ED41, 0xFE4BFE8B, 0x70017001, 0xBB01F5C1, 0x7001DCC1, 0x700191C3, 0xFFFFBB41, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001BB01, 0xFE017001, 0x7001A241, 0xFE87FF11, 0x70017001, 0xE541BB01, 0xDCC1FF8B, 0xBB417001, 0xFF8BFE43, 0x70017001, 0xBBC5FF8B, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xBB01FF8B, 0xFFFFBBC5, 0x70017001, 0xFE017001, 0xFECBFF99, 0x70017001, 0xFF8B7001, 0xFFFF7001, 0xFF8B7001, 0xEDC1BB41, 0x7001FFFF, 0xFF8BBBC5, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xFE01FE01, 0xBBC5FFFF, 0x7001BBC5, 0x70017001, 0xFF8FFFE1, 0x70017001, 0xFEC57001, 0xFE43BB41, 0x7001EEC5, 0xE4C17001, 0xBB41E4C1, 0xCC017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xFE01BB01, 0x7001FF8B, 0x7001FF8B, 0x7001FE01, 0xFFD3FFED, 0x70017001, 0xFF8BFDC1, 0x7001FE43, 0xFE437001, 0x700191C3, 0xFF8BBB41, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xBB01FE01, 0x7001C481, 0xA241FF8B, 0x70017001, 0xBC09BDC3, 0x70017001, 0xBBC5FF8B, 0xFFFFBB41, 0x70017001, 0x91C3FF8B, 0x91C37001, 0xBB41FFFF, 0xBB417001, 0x70017001, 0x70017001, 0x70017001, 0x7001DC81, 0x7001BB01, 0xDC81FE01, 0xFFD3BC09, 0xFE017001, 0x70017001, 0x7001BBC5, 0xFF8B7001, 0xFFFFFFFF, 0xFF8BBBC5, 0x7001FF8B, 0xEDC1EEC5, 0xEE47B303, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xFE017001, 0xFE01FFD3, 0x7001FFFF, 0x70017001, 0xFFDD7001, 0xFF8B7001, 0xFF8BFF8B, 0xFD817001, 0x7001FE43, 0x70017001, 0x9181FE43, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001BBC1, 0x7001FE01, 0xBBC1FFD3, 0x70017001, 0xFD817001, 0xFD817001, 0xFD81CC01, 0xB3417001, 0xFFFF7001, 0xFF8BBB41, 0x70017001, 0x70017001, 0x70017001, 0x7001EDC3, 0xFFFF7001, 0x70017001, 0x70017001, 0x7001BBC1, 0xDD01FFD3, 0x70017001, 0x7001BBC5, 0xCC01FFFF, 0x70017001, 0x7001BB41, 0xFE43FF8B, 0x7001FD81, 0x7001DD45, 0xFF8BD505, 0x7001FE83, 0x70017001, 0x70017001, 0xBB817001, 0xA241BBC1, 0x82017001, 0x7001BDDD, 0x70017001, 0xBBC5FFFF, 0x7001E4C1, 0xB341D601, 0xEF4DFFDD, 0x7001FD81, 0xCC017001, 0xFF8BFE01, 0xF5C3FEC9, 0xFF8B7001, 0xBB81EDC3, 0xFE83BB81, 0x7001FE83, 0xE5438A01, 0x7001BC17, 0xFFEDDC81, 0x70017001, 0xFF8BFD81, 0xFD81BBC5, 0x70017001, 0xBC09FD81, 0xFF8B7001, 0x7001FF8B, 0xFF8BBBC5, 0x7001AA41, 0xDD41CC01, 0x70017001, 0x70017001, 0xFE83BBC1, 0x8A018A01, 0xED41ED41, 0xFFD37001, 0x70017001, 0xB341CC01, 0xA3017001, 0xFD81FFD3, 0x7001BBC5, 0xE4C1CC01, 0xE4C1F605, 0xBBC57001, 0x70017001, 0x7001A283, 0xC3C3EE89, 0xFF8BFE83, 0xCC419241, 0x70017001, 0x8201CC01, 0xDC81FFD3, 0x70015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50017001, 0x70017001, 0x70017001, 0x70017001, 0x50015001, 0x50015001, 0x50015001, 0x70017001, 0x50015001, 0x5001ED41, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x20012001, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0xFC8181C1, 0x9A414841, 0xAAC158C1, 0xBB019241, 0xFDC181C1, 0xCB817141, 0xFC819241, 0xC34189C1, 0xFC8189C1, 0xDBC189C1, 0xFC817181, 0xDBC19241, 0xFE019A41, 0xC3419A41, 0xFC81AAC1, 0xFC816941, 0xFFC1E401, 0xFFEFE401, 0xFEC1E401, 0xFFC1E401, 0xFFC9E401, 0xFFEFE401, 0xFFEFE401, 0xFDC1CB81, 0xFF87E401, 0xFE41E401, 0xFF87E401, 0xFE41E401, 0xFFEFE401, 0xFF87E401, 0xFE41E401, 0xFFEFE401 -glabel D_80A25F78 - .word 0x58019001, 0x60014001, 0x30014801, 0x78017001, 0x70016001, 0x38013801, 0x40014001, 0x40017001, 0x60015001, 0x28012001, 0x20012801, 0x48017001, 0x80018001, 0x80014001, 0x20012001, 0x28014001, 0x48019001, 0x80015801, 0x30014001, 0x70017001, 0x68015801, 0x40014001, 0x40014801, 0x60016001, 0x60015801, 0x40013001, 0x28013001, 0x38014801, 0x68018001, 0x80015801, 0x30012801, 0x30014001, 0x50018001, 0x70016801, 0x40014001, 0x58016801, 0x68015801, 0x40013801, 0x48014801, 0x60016801, 0x68016001, 0x50013801, 0x28013001, 0x40014801, 0x50016801, 0x80017001, 0x38013001, 0x38014801, 0x50017001, 0x70015801, 0x48014801, 0x60016801, 0x60015001, 0x40014001, 0x48015801, 0x60016001, 0x68016801, 0x68014801, 0x30014001, 0x48015801, 0x50016801, 0x78017801, 0x40013001, 0x40015001, 0x50016801, 0x68015801, 0x58015801, 0x60016001, 0x58015001, 0x48014801, 0x48015801, 0x58015801, 0x60016801, 0x70015801, 0x38014001, 0x48015001, 0x58017001, 0x78017801, 0x48013801, 0x48015801, 0x50016001, 0x60015801, 0x50016801, 0x60015801, 0x50015001, 0x48014801, 0x50015801, 0x58015801, 0x60016801, 0x70015801, 0x48014801, 0x50015001, 0x58016801, 0x68017801, 0x48013801, 0x50015001, 0x50015801, 0x60015001, 0x58016001, 0x58015801, 0x50015001, 0x48014801, 0x50015001, 0x50015801, 0x60016801, 0x70015801, 0x48014801, 0x50015801, 0x58015801, 0x68017801, 0x48014001, 0x50015001, 0x50015801, 0x58015801, 0x58015801, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015801, 0x68016801, 0x68015801, 0x48015001, 0x50015001, 0x50015801, 0x60017001, 0x48014801, 0x50015001, 0x00004801, 0x58015801, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015801, 0x68016801, 0x60015801, 0x50015001, 0x58015001, 0x50015001, 0x60016001, 0x48014801, 0x50015001, 0x00005001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015801, 0x60016801, 0x60015801, 0x50015801, 0x58015001, 0x50015001, 0x58016001, 0x48015001, 0x50015001, 0x00003001, 0x48015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015801, 0x60016001, 0x58015801, 0x50015801, 0x58015001, 0x50015001, 0x58015801, 0x50015001, 0x50015001, 0x00000000, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x58015801, 0x58015801, 0x58015001, 0x50015801, 0x50015001, 0x50015001, 0x58015801, 0x50015001, 0x50015001, 0x00000000, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015801, 0x58015801, 0x58015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x20001801, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015801, 0x58015001, 0x50015801, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50014801, 0x40004001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x58015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x38004801, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50014801, 0x20004801, 0x50015001, 0x50015001, 0x50014801, 0x20013001, 0x30005001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50013001, 0x48015001, 0x50015001, 0x50015001, 0x50015001, 0x28002800, 0x50015001, 0x50015001, 0x50014001, 0x50010000, 0x18004800, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x38011000, 0x48015001, 0x50015001, 0x50015001, 0x50014001, 0x00000000, 0x00000000, 0x50015001, 0x50015001, 0x50013801, 0x38002801, 0x48015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x18001000, 0x48015001, 0x50015001, 0x50015001, 0x50013801, 0x00000000, 0x18003801, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x48013801, 0x18005001, 0x50015001, 0x50015001, 0x50014001, 0x00000000, 0x10004001, 0x50015001, 0x50015001, 0x50015001, 0x18012800, 0x38014801, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x48013801, 0x30001801, 0x50015001, 0x50015001, 0x50014000, 0x00000000, 0x00000800, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x40010800, 0x00005001, 0x50015001, 0x40013000, 0x18000000, 0x50015001, 0x50015001, 0x50014001, 0x00000000, 0x00000000, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x40000000, 0x00005001, 0x50015001, 0x38000000, 0x00003000, 0x48015001, 0x50015001, 0x50012801, 0x00000000, 0x00002001, 0x28015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x38010000, 0x00005001, 0x50015001, 0x40010800, 0x00003001, 0x40015001, 0x50015001, 0x50014001, 0x40010000, 0x28014001, 0x38014801, 0x48015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x28010000, 0x00000000, 0x50015001, 0x38012000, 0x00000000, 0x38015001, 0x50015001, 0x48014000, 0x20014801, 0x38013001, 0x18012000, 0x10013801, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x10000000, 0x00000000, 0x48014801, 0x28011800, 0x00000000, 0x20015001, 0x50015001, 0x38011800, 0x18003001, 0x40014001, 0x18010000, 0x00005001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x00000000, 0x00000000, 0x30014001, 0x18000000, 0x00000000, 0x00003801, 0x50015001, 0x00000000, 0x00003801, 0x40014801, 0x00000000, 0x00000000, 0x50015001, 0x50014801, 0x00000000, 0x50010000, 0x00000000, 0x00000000, 0x18002801, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003801, 0x48015001, 0x00000000, 0x00000000, 0x38015001, 0x50011001, 0x00000000, 0x50010000, 0x00000000, 0x00005000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00002000, 0x48015001, 0x00000000, 0x00000000, 0x30014801, 0x50010000, 0x00000000, 0x00000000, 0x00000000, 0x50000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00005000, 0x00000000, 0x30013800, 0x00000000, 0x00000000, 0x20003801, 0x50010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001801, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 -glabel D_80A26778 - .word 0x03E80000, 0x00000000, 0x00BA0878, 0x007800FF, 0x03E80000, 0x03E80000, 0x00BA0788, 0x007800FF, 0x03E80000, 0x07D00000, 0x00BA0697, 0x007800FF, 0x03E80000, 0x0BB80000, 0x00BA05A6, 0x007800FF, 0x03E80000, 0x0FA00000, 0x00BA04B5, 0x007800FF, 0x03E80000, 0x13880000, 0x00BA03C4, 0x007800FF, 0x03E80000, 0x17700000, 0x00BA02D3, 0x007800FF, 0x03E80000, 0x1B580000, 0x00BA01E2, 0x007800FF, 0x03E80000, 0x1F400000, 0x00BA00F1, 0x007800FF, 0x03E80000, 0x23280000, 0x00BA0000, 0x007800FF, 0x03E80000, 0x27100000, 0x00BAFF0F, 0x007800FF, 0x03E80000, 0x2AF80000, 0x00BAFE1E, 0x007800FF, 0x00000000, 0x00000000, 0x00000878, 0x007800FF, 0x00000000, 0x03E80000, 0x00000788, 0x007800FF, 0x00000000, 0x07D00000, 0x00000697, 0x007800FF, 0x00000000, 0x0BB80000, 0x000005A6, 0x007800FF, 0x00000000, 0x0FA00000, 0x000004B5, 0x007800FF, 0x00000000, 0x13880000, 0x000003C4, 0x007800FF, 0x00000000, 0x17700000, 0x000002D3, 0x007800FF, 0x00000000, 0x1B580000, 0x000001E2, 0x007800FF, 0x00000000, 0x1F400000, 0x000000F1, 0x007800FF, 0x00000000, 0x23280000, 0x00000000, 0x007800FF, 0x00000000, 0x27100000, 0x0000FF0F, 0x007800FF, 0x00000000, 0x2AF80000, 0x0000FE1E, 0x007800FF, 0x07D00000, 0x00000000, 0x01740878, 0x007800FF, 0x07D00000, 0x03E80000, 0x01740788, 0x007800FF, 0x07D00000, 0x07D00000, 0x01740697, 0x007800FF, 0x07D00000, 0x0BB80000, 0x017405A6, 0x007800FF, 0x07D00000, 0x0FA00000, 0x017404B5, 0x007800FF, 0x07D00000, 0x13880000, 0x017403C4, 0x007800FF, 0x07D00000, 0x17700000, 0x017402D3, 0x007800FF, 0x07D00000, 0x1B580000, 0x017401E2, 0x007800FF, 0x07D00000, 0x1F400000, 0x017400F1, 0x007800FF, 0x07D00000, 0x23280000, 0x01740000, 0x007800FF, 0x07D00000, 0x27100000, 0x0174FF0F, 0x007800FF, 0x07D00000, 0x2AF80000, 0x0174FE1E, 0x007800FF, 0x0BB80000, 0x00000000, 0x022F0878, 0x007800FF, 0x0BB80000, 0x03E80000, 0x022F0788, 0x007800FF, 0x0BB80000, 0x07D00000, 0x022F0697, 0x007800FF, 0x0BB80000, 0x0BB80000, 0x022F05A6, 0x007800FF, 0x0BB80000, 0x0FA00000, 0x022F04B5, 0x007800FF, 0x0BB80000, 0x13880000, 0x022F03C4, 0x007800FF, 0x0BB80000, 0x17700000, 0x022F02D3, 0x007800FF, 0x0BB80000, 0x1B580000, 0x022F01E2, 0x007800FF, 0x0BB80000, 0x1F400000, 0x022F00F1, 0x007800FF, 0x0BB80000, 0x23280000, 0x022F0000, 0x007800FF, 0x0BB80000, 0x27100000, 0x022FFF0F, 0x007800FF, 0x0BB80000, 0x2AF80000, 0x022FFE1E, 0x007800FF, 0x0FA00000, 0x00000000, 0x02E90878, 0x007800FF, 0x0FA00000, 0x03E80000, 0x02E90788, 0x007800FF, 0x0FA00000, 0x07D00000, 0x02E90697, 0x007800FF, 0x0FA00000, 0x0BB80000, 0x02E905A6, 0x007800FF, 0x0FA00000, 0x0FA00000, 0x02E904B5, 0x007800FF, 0x0FA00000, 0x13880000, 0x02E903C4, 0x007800FF, 0x0FA00000, 0x17700000, 0x02E902D3, 0x007800FF, 0x0FA00000, 0x1B580000, 0x02E901E2, 0x007800FF, 0x0FA00000, 0x1F400000, 0x02E900F1, 0x007800FF, 0x0FA00000, 0x23280000, 0x02E90000, 0x007800FF, 0x0FA00000, 0x27100000, 0x02E9FF0F, 0x007800FF, 0x0FA00000, 0x2AF80000, 0x02E9FE1E, 0x007800FF, 0x13880000, 0x00000000, 0x03A30878, 0x007800FF, 0x13880000, 0x03E80000, 0x03A30788, 0x007800FF, 0x13880000, 0x07D00000, 0x03A30697, 0x007800FF, 0x13880000, 0x0BB80000, 0x03A305A6, 0x007800FF, 0x13880000, 0x0FA00000, 0x03A304B5, 0x007800FF, 0x13880000, 0x13880000, 0x03A303C4, 0x007800FF, 0x13880000, 0x17700000, 0x03A302D3, 0x007800FF, 0x13880000, 0x1B580000, 0x03A301E2, 0x007800FF, 0x13880000, 0x1F400000, 0x03A300F1, 0x007800FF, 0x13880000, 0x23280000, 0x03A30000, 0x007800FF, 0x13880000, 0x27100000, 0x03A3FF0F, 0x007800FF, 0x13880000, 0x2AF80000, 0x03A3FE1E, 0x007800FF, 0x17700000, 0x00000000, 0x045D0878, 0x007800FF, 0x17700000, 0x03E80000, 0x045D0788, 0x007800FF, 0x17700000, 0x07D00000, 0x045D0697, 0x007800FF, 0x17700000, 0x0BB80000, 0x045D05A6, 0x007800FF, 0x17700000, 0x0FA00000, 0x045D04B5, 0x007800FF, 0x17700000, 0x13880000, 0x045D03C4, 0x007800FF, 0x17700000, 0x17700000, 0x045D02D3, 0x007800FF, 0x17700000, 0x1B580000, 0x045D01E2, 0x007800FF, 0x17700000, 0x1F400000, 0x045D00F1, 0x007800FF, 0x17700000, 0x23280000, 0x045D0000, 0x007800FF, 0x17700000, 0x27100000, 0x045DFF0F, 0x007800FF, 0x17700000, 0x2AF80000, 0x045DFE1E, 0x007800FF, 0x1B580000, 0x00000000, 0x05170878, 0x007800FF, 0x1B580000, 0x03E80000, 0x05170788, 0x007800FF, 0x1B580000, 0x07D00000, 0x05170697, 0x007800FF, 0x1B580000, 0x0BB80000, 0x051705A6, 0x007800FF, 0x1B580000, 0x0FA00000, 0x051704B5, 0x007800FF, 0x1B580000, 0x13880000, 0x051703C4, 0x007800FF, 0x1B580000, 0x17700000, 0x051702D3, 0x007800FF, 0x1B580000, 0x1B580000, 0x051701E2, 0x007800FF, 0x1B580000, 0x1F400000, 0x051700F1, 0x007800FF, 0x1B580000, 0x23280000, 0x05170000, 0x007800FF, 0x1B580000, 0x27100000, 0x0517FF0F, 0x007800FF, 0x1B580000, 0x2AF80000, 0x0517FE1E, 0x007800FF, 0x1F400000, 0x00000000, 0x05D10878, 0x007800FF, 0x1F400000, 0x03E80000, 0x05D10788, 0x007800FF, 0x1F400000, 0x07D00000, 0x05D10697, 0x007800FF, 0x1F400000, 0x0BB80000, 0x05D105A6, 0x007800FF, 0x1F400000, 0x0FA00000, 0x05D104B5, 0x007800FF, 0x1F400000, 0x13880000, 0x05D103C4, 0x007800FF, 0x1F400000, 0x17700000, 0x05D102D3, 0x007800FF, 0x1F400000, 0x1B580000, 0x05D101E2, 0x007800FF, 0x1F400000, 0x1F400000, 0x05D100F1, 0x007800FF, 0x1F400000, 0x23280000, 0x05D10000, 0x007800FF, 0x1F400000, 0x27100000, 0x05D1FF0F, 0x007800FF, 0x1F400000, 0x2AF80000, 0x05D1FE1E, 0x007800FF, 0x23280000, 0x00000000, 0x068C0878, 0x007800FF, 0x23280000, 0x03E80000, 0x068C0788, 0x007800FF, 0x23280000, 0x07D00000, 0x068C0697, 0x007800FF, 0x23280000, 0x0BB80000, 0x068C05A6, 0x007800FF, 0x23280000, 0x0FA00000, 0x068C04B5, 0x007800FF, 0x23280000, 0x13880000, 0x068C03C4, 0x007800FF, 0x23280000, 0x17700000, 0x068C02D3, 0x007800FF, 0x23280000, 0x1B580000, 0x068C01E2, 0x007800FF, 0x23280000, 0x1F400000, 0x068C00F1, 0x007800FF, 0x23280000, 0x23280000, 0x068C0000, 0x007800FF, 0x23280000, 0x27100000, 0x068CFF0F, 0x007800FF, 0x23280000, 0x2AF80000, 0x068CFE1E, 0x007800FF, 0x27100000, 0x00000000, 0x07460878, 0x007800FF, 0x27100000, 0x03E80000, 0x07460788, 0x007800FF, 0x27100000, 0x07D00000, 0x07460697, 0x007800FF, 0x27100000, 0x0BB80000, 0x074605A6, 0x007800FF, 0x27100000, 0x0FA00000, 0x074604B5, 0x007800FF, 0x27100000, 0x13880000, 0x074603C4, 0x007800FF, 0x27100000, 0x17700000, 0x074602D3, 0x007800FF, 0x27100000, 0x1B580000, 0x074601E2, 0x007800FF, 0x27100000, 0x1F400000, 0x074600F1, 0x007800FF, 0x27100000, 0x23280000, 0x07460000, 0x007800FF, 0x27100000, 0x27100000, 0x0746FF0F, 0x007800FF, 0x27100000, 0x2AF80000, 0x0746FE1E, 0x007800FF, 0x2AF80000, 0x00000000, 0x08000878, 0x007800FF, 0x2AF80000, 0x03E80000, 0x08000788, 0x007800FF, 0x2AF80000, 0x07D00000, 0x08000697, 0x007800FF, 0x2AF80000, 0x0BB80000, 0x080005A6, 0x007800FF, 0x2AF80000, 0x0FA00000, 0x080004B5, 0x007800FF, 0x2AF80000, 0x13880000, 0x080003C4, 0x007800FF, 0x2AF80000, 0x17700000, 0x080002D3, 0x007800FF, 0x2AF80000, 0x1B580000, 0x080001E2, 0x007800FF, 0x2AF80000, 0x1F400000, 0x080000F1, 0x007800FF, 0x2AF80000, 0x23280000, 0x08000000, 0x007800FF, 0x2AF80000, 0x27100000, 0x0800FF0F, 0x007800FF, 0x2AF80000, 0x2AF80000, 0x0800FE1E, 0x007800FF -glabel D_80A27078 - .word 0xE7000000, 0x00000000, 0xE3001001, 0x00000000, 0xD7000002, 0xFFFFFFFF, 0xFD100000 -.word D_80A24F78 -.word 0xF5100000, 0x07098150, 0xE6000000, 0x00000000, 0xF3000000, 0x077FF100, 0xE7000000, 0x00000000, 0xF5101000, 0x00098150, 0xF2000000, 0x0007C0FC, 0xDF000000, 0x00000000, 0xE7000000, 0x00000000, 0xE3001001, 0x00000000, 0xD7000002, 0xFFFFFFFF, 0xFD100000 -.word D_80A25F78 -.word 0xF5100000, 0x07098150, 0xE6000000, 0x00000000, 0xF3000000, 0x077FF100, 0xE7000000, 0x00000000, 0xF5101000, 0x00098150, 0xF2000000, 0x0007C0FC, 0xDF000000, 0x00000000 -glabel D_80A27128 - .word 0xFC127E03, 0xFFFFF3F8, 0xE200001C, 0xC8113078, 0xD9F3FBFF, 0x00000000, 0xD9FFFFFF, 0x00030000, 0xFA000000, 0xFFFFFFFF, 0x01018030, 0x0C000000, 0x0600021A, 0x00001A18, 0x0602041C, 0x00021C1A, 0x0604061E, 0x00041E1C, 0x06060820, 0x0006201E, 0x06080A22, 0x00082220, 0x060A0C24, 0x000A2422, 0x060C0E26, 0x000C2624, 0x060E1028, 0x000E2826, 0x0610122A, 0x00102A28, 0x0612142C, 0x00122C2A, 0x0614162E, 0x00142E2C, 0x0100C030, 0x0C000180, 0x06181A02, 0x00180200, 0x061A1C04, 0x001A0402, 0x061C1E06, 0x001C0604, 0x061E2008, 0x001E0806, 0x0620220A, 0x00200A08, 0x0622240C, 0x00220C0A, 0x0624260E, 0x00240E0C, 0x06262810, 0x0026100E, 0x06282A12, 0x00281210, 0x062A2C14, 0x002A1412, 0x062C2E16, 0x002C1614, 0x0100C018, 0x0C000240, 0x0600021A, 0x00001A18, 0x0602041C, 0x00021C1A, 0x0604061E, 0x00041E1C, 0x06060820, 0x0006201E, 0x06080A22, 0x00082220, 0x060A0C24, 0x000A2422, 0x060C0E26, 0x000C2624, 0x060E1028, 0x000E2826, 0x0610122A, 0x00102A28, 0x0612142C, 0x00122C2A, 0x0614162E, 0x00142E2C, 0x0100C030, 0x0C000300, 0x06181A02, 0x00180200, 0x061A1C04, 0x001A0402, 0x061C1E06, 0x001C0604, 0x061E2008, 0x001E0806, 0x0620220A, 0x00200A08, 0x0622240C, 0x00220C0A, 0x0624260E, 0x00240E0C, 0x06262810, 0x0026100E, 0x06282A12, 0x00281210, 0x062A2C14, 0x002A1412, 0x062C2E16, 0x002C1614, 0x0100C018, 0x0C0003C0, 0x0600021A, 0x00001A18, 0x0602041C, 0x00021C1A, 0x0604061E, 0x00041E1C, 0x06060820, 0x0006201E, 0x06080A22, 0x00082220, 0x060A0C24, 0x000A2422, 0x060C0E26, 0x000C2624, 0x060E1028, 0x000E2826, 0x0610122A, 0x00102A28, 0x0612142C, 0x00122C2A, 0x0614162E, 0x00142E2C, 0x0100C030, 0x0C000480, 0x06181A02, 0x00180200, 0x061A1C04, 0x001A0402, 0x061C1E06, 0x001C0604, 0x061E2008, 0x001E0806, 0x0620220A, 0x00200A08, 0x0622240C, 0x00220C0A, 0x0624260E, 0x00240E0C, 0x06262810, 0x0026100E, 0x06282A12, 0x00281210, 0x062A2C14, 0x002A1412, 0x062C2E16, 0x002C1614, 0x0100C018, 0x0C000540, 0x0600021A, 0x00001A18, 0x0602041C, 0x00021C1A, 0x0604061E, 0x00041E1C, 0x06060820, 0x0006201E, 0x06080A22, 0x00082220, 0x060A0C24, 0x000A2422, 0x060C0E26, 0x000C2624, 0x060E1028, 0x000E2826, 0x0610122A, 0x00102A28, 0x0612142C, 0x00122C2A, 0x0614162E, 0x00142E2C, 0x0100C030, 0x0C000600, 0x06181A02, 0x00180200, 0x061A1C04, 0x001A0402, 0x061C1E06, 0x001C0604, 0x061E2008, 0x001E0806, 0x0620220A, 0x00200A08, 0x0622240C, 0x00220C0A, 0x0624260E, 0x00240E0C, 0x06262810, 0x0026100E, 0x06282A12, 0x00281210, 0x062A2C14, 0x002A1412, 0x062C2E16, 0x002C1614, 0x0100C018, 0x0C0006C0, 0x0600021A, 0x00001A18, 0x0602041C, 0x00021C1A, 0x0604061E, 0x00041E1C, 0x06060820, 0x0006201E, 0x06080A22, 0x00082220, 0x060A0C24, 0x000A2422, 0x060C0E26, 0x000C2624, 0x060E1028, 0x000E2826, 0x0610122A, 0x00102A28, 0x0612142C, 0x00122C2A, 0x0614162E, 0x00142E2C, 0x0100C030, 0x0C000780, 0x06181A02, 0x00180200, 0x061A1C04, 0x001A0402, 0x061C1E06, 0x001C0604, 0x061E2008, 0x001E0806, 0x0620220A, 0x00200A08, 0x0622240C, 0x00220C0A, 0x0624260E, 0x00240E0C, 0x06262810, 0x0026100E, 0x06282A12, 0x00281210, 0x062A2C14, 0x002A1412, 0x062C2E16, 0x002C1614, 0x0100C018, 0x0C000840, 0x0600021A, 0x00001A18, 0x0602041C, 0x00021C1A, 0x0604061E, 0x00041E1C, 0x06060820, 0x0006201E, 0x06080A22, 0x00082220, 0x060A0C24, 0x000A2422, 0x060C0E26, 0x000C2624, 0x060E1028, 0x000E2826, 0x0610122A, 0x00102A28, 0x0612142C, 0x00122C2A, 0x0614162E, 0x00142E2C, 0xDF000000, 0x00000000 -glabel D_80A27578 - .word 0x03E80000, 0x00000000, 0x00BA0878, 0x007800FF, 0x03E80000, 0x03E80000, 0x00BA0788, 0x007800FF, 0x03E80000, 0x07D00000, 0x00BA0697, 0x007800FF, 0x03E80000, 0x0BB80000, 0x00BA05A6, 0x007800FF, 0x03E80000, 0x0FA00000, 0x00BA04B5, 0x007800FF, 0x03E80000, 0x13880000, 0x00BA03C4, 0x007800FF, 0x03E80000, 0x17700000, 0x00BA02D3, 0x007800FF, 0x03E80000, 0x1B580000, 0x00BA01E2, 0x007800FF, 0x03E80000, 0x1F400000, 0x00BA00F1, 0x007800FF, 0x03E80000, 0x23280000, 0x00BA0000, 0x007800FF, 0x03E80000, 0x27100000, 0x00BAFF0F, 0x007800FF, 0x03E80000, 0x2AF80000, 0x00BAFE1E, 0x007800FF, 0x00000000, 0x00000000, 0x00000878, 0x007800FF, 0x00000000, 0x03E80000, 0x00000788, 0x007800FF, 0x00000000, 0x07D00000, 0x00000697, 0x007800FF, 0x00000000, 0x0BB80000, 0x000005A6, 0x007800FF, 0x00000000, 0x0FA00000, 0x000004B5, 0x007800FF, 0x00000000, 0x13880000, 0x000003C4, 0x007800FF, 0x00000000, 0x17700000, 0x000002D3, 0x007800FF, 0x00000000, 0x1B580000, 0x000001E2, 0x007800FF, 0x00000000, 0x1F400000, 0x000000F1, 0x007800FF, 0x00000000, 0x23280000, 0x00000000, 0x007800FF, 0x00000000, 0x27100000, 0x0000FF0F, 0x007800FF, 0x00000000, 0x2AF80000, 0x0000FE1E, 0x007800FF, 0x07D00000, 0x00000000, 0x01740878, 0x007800FF, 0x07D00000, 0x03E80000, 0x01740788, 0x007800FF, 0x07D00000, 0x07D00000, 0x01740697, 0x007800FF, 0x07D00000, 0x0BB80000, 0x017405A6, 0x007800FF, 0x07D00000, 0x0FA00000, 0x017404B5, 0x007800FF, 0x07D00000, 0x13880000, 0x017403C4, 0x007800FF, 0x07D00000, 0x17700000, 0x017402D3, 0x007800FF, 0x07D00000, 0x1B580000, 0x017401E2, 0x007800FF, 0x07D00000, 0x1F400000, 0x017400F1, 0x007800FF, 0x07D00000, 0x23280000, 0x01740000, 0x007800FF, 0x07D00000, 0x27100000, 0x0174FF0F, 0x007800FF, 0x07D00000, 0x2AF80000, 0x0174FE1E, 0x007800FF, 0x0BB80000, 0x00000000, 0x022F0878, 0x007800FF, 0x0BB80000, 0x03E80000, 0x022F0788, 0x007800FF, 0x0BB80000, 0x07D00000, 0x022F0697, 0x007800FF, 0x0BB80000, 0x0BB80000, 0x022F05A6, 0x007800FF, 0x0BB80000, 0x0FA00000, 0x022F04B5, 0x007800FF, 0x0BB80000, 0x13880000, 0x022F03C4, 0x007800FF, 0x0BB80000, 0x17700000, 0x022F02D3, 0x007800FF, 0x0BB80000, 0x1B580000, 0x022F01E2, 0x007800FF, 0x0BB80000, 0x1F400000, 0x022F00F1, 0x007800FF, 0x0BB80000, 0x23280000, 0x022F0000, 0x007800FF, 0x0BB80000, 0x27100000, 0x022FFF0F, 0x007800FF, 0x0BB80000, 0x2AF80000, 0x022FFE1E, 0x007800FF, 0x0FA00000, 0x00000000, 0x02E90878, 0x007800FF, 0x0FA00000, 0x03E80000, 0x02E90788, 0x007800FF, 0x0FA00000, 0x07D00000, 0x02E90697, 0x007800FF, 0x0FA00000, 0x0BB80000, 0x02E905A6, 0x007800FF, 0x0FA00000, 0x0FA00000, 0x02E904B5, 0x007800FF, 0x0FA00000, 0x13880000, 0x02E903C4, 0x007800FF, 0x0FA00000, 0x17700000, 0x02E902D3, 0x007800FF, 0x0FA00000, 0x1B580000, 0x02E901E2, 0x007800FF, 0x0FA00000, 0x1F400000, 0x02E900F1, 0x007800FF, 0x0FA00000, 0x23280000, 0x02E90000, 0x007800FF, 0x0FA00000, 0x27100000, 0x02E9FF0F, 0x007800FF, 0x0FA00000, 0x2AF80000, 0x02E9FE1E, 0x007800FF, 0x13880000, 0x00000000, 0x03A30878, 0x007800FF, 0x13880000, 0x03E80000, 0x03A30788, 0x007800FF, 0x13880000, 0x07D00000, 0x03A30697, 0x007800FF, 0x13880000, 0x0BB80000, 0x03A305A6, 0x007800FF, 0x13880000, 0x0FA00000, 0x03A304B5, 0x007800FF, 0x13880000, 0x13880000, 0x03A303C4, 0x007800FF, 0x13880000, 0x17700000, 0x03A302D3, 0x007800FF, 0x13880000, 0x1B580000, 0x03A301E2, 0x007800FF, 0x13880000, 0x1F400000, 0x03A300F1, 0x007800FF, 0x13880000, 0x23280000, 0x03A30000, 0x007800FF, 0x13880000, 0x27100000, 0x03A3FF0F, 0x007800FF, 0x13880000, 0x2AF80000, 0x03A3FE1E, 0x007800FF, 0x17700000, 0x00000000, 0x045D0878, 0x007800FF, 0x17700000, 0x03E80000, 0x045D0788, 0x007800FF, 0x17700000, 0x07D00000, 0x045D0697, 0x007800FF, 0x17700000, 0x0BB80000, 0x045D05A6, 0x007800FF, 0x17700000, 0x0FA00000, 0x045D04B5, 0x007800FF, 0x17700000, 0x13880000, 0x045D03C4, 0x007800FF, 0x17700000, 0x17700000, 0x045D02D3, 0x007800FF, 0x17700000, 0x1B580000, 0x045D01E2, 0x007800FF, 0x17700000, 0x1F400000, 0x045D00F1, 0x007800FF, 0x17700000, 0x23280000, 0x045D0000, 0x007800FF, 0x17700000, 0x27100000, 0x045DFF0F, 0x007800FF, 0x17700000, 0x2AF80000, 0x045DFE1E, 0x007800FF, 0x1B580000, 0x00000000, 0x05170878, 0x007800FF, 0x1B580000, 0x03E80000, 0x05170788, 0x007800FF, 0x1B580000, 0x07D00000, 0x05170697, 0x007800FF, 0x1B580000, 0x0BB80000, 0x051705A6, 0x007800FF, 0x1B580000, 0x0FA00000, 0x051704B5, 0x007800FF, 0x1B580000, 0x13880000, 0x051703C4, 0x007800FF, 0x1B580000, 0x17700000, 0x051702D3, 0x007800FF, 0x1B580000, 0x1B580000, 0x051701E2, 0x007800FF, 0x1B580000, 0x1F400000, 0x051700F1, 0x007800FF, 0x1B580000, 0x23280000, 0x05170000, 0x007800FF, 0x1B580000, 0x27100000, 0x0517FF0F, 0x007800FF, 0x1B580000, 0x2AF80000, 0x0517FE1E, 0x007800FF, 0x1F400000, 0x00000000, 0x05D10878, 0x007800FF, 0x1F400000, 0x03E80000, 0x05D10788, 0x007800FF, 0x1F400000, 0x07D00000, 0x05D10697, 0x007800FF, 0x1F400000, 0x0BB80000, 0x05D105A6, 0x007800FF, 0x1F400000, 0x0FA00000, 0x05D104B5, 0x007800FF, 0x1F400000, 0x13880000, 0x05D103C4, 0x007800FF, 0x1F400000, 0x17700000, 0x05D102D3, 0x007800FF, 0x1F400000, 0x1B580000, 0x05D101E2, 0x007800FF, 0x1F400000, 0x1F400000, 0x05D100F1, 0x007800FF, 0x1F400000, 0x23280000, 0x05D10000, 0x007800FF, 0x1F400000, 0x27100000, 0x05D1FF0F, 0x007800FF, 0x1F400000, 0x2AF80000, 0x05D1FE1E, 0x007800FF, 0x23280000, 0x00000000, 0x068C0878, 0x007800FF, 0x23280000, 0x03E80000, 0x068C0788, 0x007800FF, 0x23280000, 0x07D00000, 0x068C0697, 0x007800FF, 0x23280000, 0x0BB80000, 0x068C05A6, 0x007800FF, 0x23280000, 0x0FA00000, 0x068C04B5, 0x007800FF, 0x23280000, 0x13880000, 0x068C03C4, 0x007800FF, 0x23280000, 0x17700000, 0x068C02D3, 0x007800FF, 0x23280000, 0x1B580000, 0x068C01E2, 0x007800FF, 0x23280000, 0x1F400000, 0x068C00F1, 0x007800FF, 0x23280000, 0x23280000, 0x068C0000, 0x007800FF, 0x23280000, 0x27100000, 0x068CFF0F, 0x007800FF, 0x23280000, 0x2AF80000, 0x068CFE1E, 0x007800FF, 0x27100000, 0x00000000, 0x07460878, 0x007800FF, 0x27100000, 0x03E80000, 0x07460788, 0x007800FF, 0x27100000, 0x07D00000, 0x07460697, 0x007800FF, 0x27100000, 0x0BB80000, 0x074605A6, 0x007800FF, 0x27100000, 0x0FA00000, 0x074604B5, 0x007800FF, 0x27100000, 0x13880000, 0x074603C4, 0x007800FF, 0x27100000, 0x17700000, 0x074602D3, 0x007800FF, 0x27100000, 0x1B580000, 0x074601E2, 0x007800FF, 0x27100000, 0x1F400000, 0x074600F1, 0x007800FF, 0x27100000, 0x23280000, 0x07460000, 0x007800FF, 0x27100000, 0x27100000, 0x0746FF0F, 0x007800FF, 0x27100000, 0x2AF80000, 0x0746FE1E, 0x007800FF, 0x2AF80000, 0x00000000, 0x08000878, 0x007800FF, 0x2AF80000, 0x03E80000, 0x08000788, 0x007800FF, 0x2AF80000, 0x07D00000, 0x08000697, 0x007800FF, 0x2AF80000, 0x0BB80000, 0x080005A6, 0x007800FF, 0x2AF80000, 0x0FA00000, 0x080004B5, 0x007800FF, 0x2AF80000, 0x13880000, 0x080003C4, 0x007800FF, 0x2AF80000, 0x17700000, 0x080002D3, 0x007800FF, 0x2AF80000, 0x1B580000, 0x080001E2, 0x007800FF, 0x2AF80000, 0x1F400000, 0x080000F1, 0x007800FF, 0x2AF80000, 0x23280000, 0x08000000, 0x007800FF, 0x2AF80000, 0x27100000, 0x0800FF0F, 0x007800FF, 0x2AF80000, 0x2AF80000, 0x0800FE1E, 0x007800FF, 0x00000000, 0x00000000 - diff --git a/spec b/spec index fb5974a008..ddfc3383a5 100644 --- a/spec +++ b/spec @@ -2241,8 +2241,11 @@ endseg beginseg name "ovl_En_Ganon_Mant" include "build/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.o" - include "build/data/overlays/actors/z_en_ganon_mant.data.o" +#ifdef NON_MATCHING + include "build/src/overlays/actors/ovl_En_Ganon_Mant/ovl_En_Ganon_Mant_reloc.o" +#else include "build/data/overlays/actors/z_en_ganon_mant.reloc.o" +#endif endseg beginseg diff --git a/src/overlays/actors/ovl_En_Ganon_Mant/ovl_en_ganon_mant_gfx.c b/src/overlays/actors/ovl_En_Ganon_Mant/ovl_en_ganon_mant_gfx.c new file mode 100644 index 0000000000..6d06427615 --- /dev/null +++ b/src/overlays/actors/ovl_En_Ganon_Mant/ovl_en_ganon_mant_gfx.c @@ -0,0 +1,710 @@ +#include "global.h" +#include "z_en_ganon_mant.h" + +#define MANT_TEX_WIDTH 32 +#define MANT_TEX_HEIGHT 64 + +static u64 sForceDmaAlignment = 0; + +s16 sMantTex[MANT_TEX_WIDTH * MANT_TEX_HEIGHT] = { + 0x7001, 0xA801, 0x7801, 0x4801, 0x4801, 0x7001, 0x9001, 0x8801, 0x8801, 0x7801, 0x5001, 0x5001, 0x5801, 0x6001, + 0x6801, 0x8801, 0x7001, 0x5801, 0x4801, 0x4001, 0x3801, 0x4001, 0x6001, 0x8001, 0x9001, 0xA801, 0x8801, 0x5001, + 0x4001, 0x4001, 0x4801, 0x5801, 0x7001, 0xA801, 0x7801, 0x5801, 0x5001, 0x6001, 0x9001, 0x9001, 0x9001, 0x8001, + 0x5801, 0x5801, 0x5801, 0x5801, 0x6001, 0x9001, 0x7801, 0x6801, 0x4801, 0x4001, 0x4001, 0x4001, 0x6801, 0x8801, + 0x9801, 0xA001, 0x9801, 0x6001, 0x4001, 0x4001, 0x4801, 0x5801, 0x7001, 0xB001, 0x9801, 0x7001, 0x5001, 0x6001, + 0x9801, 0x9001, 0x9001, 0x8001, 0x5801, 0x5801, 0x5801, 0x6001, 0x6801, 0x8801, 0x8001, 0x7001, 0x5001, 0x4801, + 0x4001, 0x4801, 0x5801, 0x8001, 0x9801, 0xA001, 0xA801, 0x6801, 0x4001, 0x4001, 0x4801, 0x6001, 0x6801, 0xA801, + 0xA001, 0x7001, 0x4801, 0x6001, 0x9001, 0x8801, 0x8801, 0x7801, 0x6001, 0x5801, 0x5801, 0x6801, 0x7801, 0x8001, + 0x8001, 0x7801, 0x6001, 0x5001, 0x4001, 0x4801, 0x5801, 0x6001, 0x8001, 0x9801, 0xA001, 0x7801, 0x4801, 0x4801, + 0x4801, 0x6001, 0x7001, 0xA801, 0x9801, 0x8801, 0x5001, 0x5801, 0x7801, 0x8801, 0x8801, 0x7801, 0x6001, 0x5801, + 0x6001, 0x6801, 0x8001, 0x8001, 0x8001, 0x7801, 0x6801, 0x5001, 0x4801, 0x5001, 0x5801, 0x6001, 0x8001, 0x9801, + 0x9801, 0x8001, 0x5001, 0x4801, 0x5001, 0x6001, 0x7001, 0xA001, 0x9001, 0x8801, 0x6001, 0x6001, 0x7801, 0x8801, + 0x8801, 0x7801, 0x6001, 0x5801, 0x6001, 0x6801, 0x7801, 0x8001, 0x8801, 0x8001, 0x6801, 0x5801, 0x4801, 0x5001, + 0x5801, 0x6801, 0x6801, 0x8801, 0x9801, 0x9001, 0x5001, 0x5001, 0x5001, 0x6001, 0x7001, 0x9001, 0x8001, 0x7801, + 0x6801, 0x6001, 0x7801, 0x8801, 0x8001, 0x7001, 0x6001, 0x6001, 0x6001, 0x7801, 0x8001, 0x8001, 0x8801, 0x8801, + 0x7801, 0x6001, 0x4801, 0x5001, 0x6001, 0x7001, 0x7001, 0x8801, 0x9801, 0x9801, 0x5801, 0x5001, 0x5801, 0x6801, + 0x7001, 0x8001, 0x7801, 0x6801, 0x6801, 0x6801, 0x7801, 0x8801, 0x8001, 0x6801, 0x6001, 0x6001, 0x6001, 0x7801, + 0x8001, 0x7801, 0x8801, 0x8801, 0x8001, 0x6801, 0x5001, 0x5801, 0x6801, 0x7001, 0x7001, 0x8801, 0x9001, 0x9801, + 0x5801, 0x5001, 0x5801, 0x7001, 0x7001, 0x7801, 0xBB41, 0x7001, 0x7001, 0x6801, 0x8001, 0x8001, 0x7801, 0x6801, + 0x6001, 0x6801, 0x6801, 0x7001, 0x7801, 0x7801, 0x8001, 0x8801, 0x8801, 0x7001, 0x5001, 0x5801, 0x6801, 0x7001, + 0x7001, 0x8801, 0x9001, 0x9801, 0x6001, 0x5001, 0x6001, 0x7801, 0x7001, 0x7001, 0xFE43, 0xBB41, 0x7801, 0x7801, + 0x8001, 0x7801, 0x7001, 0x7001, 0x6001, 0x6001, 0x6801, 0x7001, 0x7801, 0x7801, 0x7801, 0x8001, 0x9001, 0x7001, + 0x5801, 0x6001, 0x6801, 0x7001, 0x7001, 0x8801, 0x9001, 0x9801, 0x6001, 0x5001, 0x6001, 0x7001, 0x7001, 0x7001, + 0xFE43, 0xFE43, 0x7001, 0x8801, 0x8001, 0x7801, 0x7001, 0x7001, 0x6001, 0x6001, 0x6801, 0x7001, 0x7801, 0x7801, + 0x7801, 0x8001, 0x9001, 0x7801, 0x6001, 0x6001, 0x6801, 0x7001, 0x7001, 0x8801, 0x9001, 0x9801, 0x6801, 0x5801, + 0x6801, 0x7001, 0x7001, 0x7001, 0xFE43, 0x7001, 0x7001, 0x8801, 0x8001, 0x7001, 0x7001, 0x7001, 0x6801, 0x6001, + 0x6801, 0x7001, 0x7001, 0x7801, 0x7801, 0x8001, 0x9001, 0x7801, 0x6001, 0x6801, 0x6801, 0x7001, 0x7001, 0x8801, + 0x8801, 0x9001, 0x6801, 0x5801, 0x6801, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7801, 0x8001, 0x7801, 0x7001, + 0x7001, 0x6801, 0x6801, 0x6001, 0x6801, 0x7001, 0x7001, 0x7801, 0x7801, 0x8801, 0x9001, 0x7801, 0x6001, 0x6801, + 0x6801, 0x7001, 0x7001, 0x7801, 0x8801, 0x9001, 0x6801, 0x5801, 0x6801, 0x7001, 0x7001, 0x7001, 0xFFE1, 0x7001, + 0x7801, 0x7801, 0x7801, 0x7001, 0x7001, 0x6801, 0x6801, 0x6801, 0x6801, 0x7001, 0x7001, 0x7001, 0x7801, 0x8801, + 0x8801, 0x7801, 0x6001, 0x6801, 0x6801, 0x7001, 0x7001, 0x7801, 0x8001, 0x9001, 0x6801, 0x5801, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x6801, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7801, 0x8001, 0x8801, 0x8801, 0x7801, 0x6801, 0x6801, 0x6801, 0x7001, 0x7801, 0x7001, 0x8001, 0x9001, + 0x6801, 0x6001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFFF7, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7801, 0x8001, 0x8801, 0x8001, 0x7801, 0x6801, 0x6801, 0x7001, 0x7001, + 0x7801, 0x7001, 0x8001, 0x8801, 0x6801, 0x6001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFFDB, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7801, 0x8001, 0x8001, 0x8001, 0x7001, + 0x6801, 0x7001, 0x7001, 0x7801, 0x7801, 0x7001, 0x8001, 0x8801, 0x6801, 0x6801, 0x7001, 0x7001, 0x7001, 0x7001, + 0x8103, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7801, + 0x8001, 0x8001, 0x7801, 0x7001, 0x6801, 0x7001, 0x7801, 0x8001, 0x8001, 0x7001, 0x8001, 0x8001, 0x6801, 0x6801, + 0x7001, 0x7001, 0x7001, 0x7001, 0xFF8D, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x8001, 0x8001, 0x8001, 0x7001, 0x7001, 0x7001, 0x7801, 0x8001, 0x8001, 0x7001, + 0x7801, 0x8001, 0x6801, 0x6801, 0x7001, 0x7001, 0x7001, 0x7001, 0xFDC1, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x8001, 0x8001, 0x7801, 0x7001, 0x7001, 0x7001, + 0x7801, 0x8001, 0x8001, 0x7001, 0x7801, 0x7801, 0x6801, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFDC1, 0x8901, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x8001, 0x8001, + 0x7801, 0x7001, 0x7001, 0x7001, 0x7801, 0x7801, 0x8001, 0x7001, 0x7801, 0x7801, 0x6801, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0xFDC1, 0xA201, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7801, 0x7801, 0x7001, 0x7001, 0x7001, 0x7001, 0x7801, 0x7801, 0x8001, 0x7001, 0x7801, 0x7801, + 0x6801, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFDC1, 0xDC41, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7801, 0x7801, 0x7801, 0x7801, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7801, 0x7801, 0x6801, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xDC41, 0xFF8B, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7801, 0x7801, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0xA201, 0xFE85, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7801, 0x7801, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7841, 0x8081, 0xFE43, 0xCB81, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7801, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0xA2D1, 0xFFFF, 0x7001, 0x7001, 0xBAC1, 0xFDC1, 0xFF8B, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFE01, 0xF611, 0x7001, 0x7001, 0xFF8B, 0x7001, + 0xFDC1, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xBC1F, 0xFE01, 0xFE01, + 0x7001, 0x7001, 0xFE85, 0xFDC1, 0xBAC1, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0xFFFF, 0xFE01, 0xFE01, 0x7001, 0x7001, 0xFE43, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0xAAC3, 0xFF49, 0xFE01, 0xFE01, 0x7001, 0x7001, 0xFF8B, 0xF541, 0x8941, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7881, 0xDC85, 0xFE47, 0xFE8B, 0xFE01, 0x7001, 0x7001, + 0xE4C1, 0x7001, 0xFF8B, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xBB01, + 0xFE01, 0xFE01, 0x7001, 0x7001, 0x8941, 0xE4C1, 0xF645, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xBC1F, + 0xFFFF, 0xFF8B, 0xDD89, 0x7001, 0xBB01, 0xFE01, 0x7001, 0x7001, 0x7001, 0x7001, 0xED83, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0xBBC5, 0xFE01, 0xFE01, 0xFE01, 0xFF8B, 0xBBC5, 0x7001, 0x7001, 0x7001, 0x7001, 0x7881, 0xBB81, + 0xC401, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFE01, 0xBB01, 0x7001, 0xBB01, 0xFE01, 0xFF8B, 0xFF8B, 0x7001, + 0x7001, 0x7001, 0x9A81, 0x7001, 0xFF8B, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0xFE01, 0xFE01, 0xFF8B, 0x7001, 0x7001, 0xFF8B, 0x8A01, 0x7881, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0xFF8B, 0xFFFF, 0xFFFF, 0x7001, 0xBB01, 0xFE01, 0xFE01, 0x7001, 0x7001, 0xCC01, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x80C1, 0xDD89, 0xFF8B, 0xFFFF, 0xDD89, + 0x7001, 0x7001, 0x7001, 0x7001, 0xFF8B, 0xFE01, 0xFE01, 0xFE01, 0xFFFF, 0x7001, 0xFE01, 0xFE01, 0x7001, 0x7001, + 0xCC01, 0xFF8B, 0x7901, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xBB01, + 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFF8B, 0x7001, 0x7001, 0x7001, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0x7001, + 0xFE01, 0xFE01, 0x7001, 0x7001, 0xBB81, 0x7001, 0x8201, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x9181, 0xFE01, 0xB381, 0xA281, 0xAB01, 0xCC81, 0xFE01, 0xFFFF, 0x7001, 0x7001, 0x7001, 0xFE01, + 0xFE01, 0xFE01, 0x7001, 0xBC1F, 0xFE01, 0xFE01, 0x7001, 0x7001, 0x7881, 0x9241, 0xFF8B, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xCBC1, 0xED41, 0xB281, 0x7001, 0x7001, 0x7001, 0xDC81, 0xFE01, + 0xBB01, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFFFF, 0xFE01, 0xFE01, 0x7001, 0x7001, 0x7001, 0x7001, + 0xDCC1, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFE01, 0xDC81, 0x7001, 0xFF8B, + 0xFFFF, 0x91C3, 0x7001, 0xEE07, 0xFFFF, 0x7001, 0xFF8B, 0xDD89, 0x7001, 0xBBC5, 0xFF8B, 0xFE01, 0xDC81, 0x7001, + 0x7001, 0x7001, 0x8901, 0xE4C1, 0xFF8B, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0xBB01, 0xFE01, 0xDC81, 0x7001, 0xFE01, 0xFF8B, 0x7001, 0xCC03, 0xFF8B, 0xBBC5, 0x7001, 0xFF8B, 0xFFFF, 0xFFFF, + 0xFE01, 0xBB01, 0x7001, 0x7001, 0x7001, 0x7001, 0xD481, 0x7001, 0xD481, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xDC81, 0xFE01, 0xFE01, 0xCC81, 0xBBC1, 0x7001, 0x7001, 0xDD89, 0xFF8B, + 0xBB01, 0x7001, 0xED41, 0xFE01, 0xBB01, 0x7001, 0x920F, 0xFFFF, 0x7001, 0x7001, 0xCC41, 0xFF8B, 0x8941, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xC3C1, 0xBBC1, 0xC3C1, 0x7001, + 0x7001, 0x7001, 0x7001, 0xDD47, 0xFE01, 0x7001, 0x7001, 0x7001, 0x7001, 0x91C3, 0xFE91, 0xFF21, 0x7001, 0x7001, + 0x7001, 0xDC81, 0x7001, 0x7001, 0x7001, 0xFF8B, 0xBBC5, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xBB01, 0xFE01, 0x7001, 0x7001, 0x7001, 0xED41, + 0xFE4B, 0xFE8B, 0x7001, 0x7001, 0xBB01, 0xF5C1, 0x7001, 0xDCC1, 0x7001, 0x91C3, 0xFFFF, 0xBB41, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xBB01, + 0xFE01, 0x7001, 0x7001, 0xA241, 0xFE87, 0xFF11, 0x7001, 0x7001, 0xE541, 0xBB01, 0xDCC1, 0xFF8B, 0xBB41, 0x7001, + 0xFF8B, 0xFE43, 0x7001, 0x7001, 0xBBC5, 0xFF8B, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0xBB01, 0xFF8B, 0xFFFF, 0xBBC5, 0x7001, 0x7001, 0xFE01, 0x7001, 0xFECB, 0xFF99, 0x7001, 0x7001, 0xFF8B, 0x7001, + 0xFFFF, 0x7001, 0xFF8B, 0x7001, 0xEDC1, 0xBB41, 0x7001, 0xFFFF, 0xFF8B, 0xBBC5, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0xFE01, 0xFE01, 0xBBC5, 0xFFFF, 0x7001, 0xBBC5, 0x7001, 0x7001, 0xFF8F, 0xFFE1, + 0x7001, 0x7001, 0xFEC5, 0x7001, 0xFE43, 0xBB41, 0x7001, 0xEEC5, 0xE4C1, 0x7001, 0xBB41, 0xE4C1, 0xCC01, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFE01, 0xBB01, 0x7001, 0xFF8B, 0x7001, 0xFF8B, + 0x7001, 0xFE01, 0xFFD3, 0xFFED, 0x7001, 0x7001, 0xFF8B, 0xFDC1, 0x7001, 0xFE43, 0xFE43, 0x7001, 0x7001, 0x91C3, + 0xFF8B, 0xBB41, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xBB01, 0xFE01, + 0x7001, 0xC481, 0xA241, 0xFF8B, 0x7001, 0x7001, 0xBC09, 0xBDC3, 0x7001, 0x7001, 0xBBC5, 0xFF8B, 0xFFFF, 0xBB41, + 0x7001, 0x7001, 0x91C3, 0xFF8B, 0x91C3, 0x7001, 0xBB41, 0xFFFF, 0xBB41, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0xDC81, 0x7001, 0xBB01, 0xDC81, 0xFE01, 0xFFD3, 0xBC09, 0xFE01, 0x7001, 0x7001, 0x7001, + 0x7001, 0xBBC5, 0xFF8B, 0x7001, 0xFFFF, 0xFFFF, 0xFF8B, 0xBBC5, 0x7001, 0xFF8B, 0xEDC1, 0xEEC5, 0xEE47, 0xB303, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFE01, 0x7001, 0xFE01, 0xFFD3, + 0x7001, 0xFFFF, 0x7001, 0x7001, 0xFFDD, 0x7001, 0xFF8B, 0x7001, 0xFF8B, 0xFF8B, 0xFD81, 0x7001, 0x7001, 0xFE43, + 0x7001, 0x7001, 0x9181, 0xFE43, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0xBBC1, 0x7001, 0xFE01, 0xBBC1, 0xFFD3, 0x7001, 0x7001, 0xFD81, 0x7001, 0xFD81, 0x7001, 0xFD81, 0xCC01, + 0xB341, 0x7001, 0xFFFF, 0x7001, 0xFF8B, 0xBB41, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xEDC3, + 0xFFFF, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xBBC1, 0xDD01, 0xFFD3, 0x7001, 0x7001, 0x7001, 0xBBC5, + 0xCC01, 0xFFFF, 0x7001, 0x7001, 0x7001, 0xBB41, 0xFE43, 0xFF8B, 0x7001, 0xFD81, 0x7001, 0xDD45, 0xFF8B, 0xD505, + 0x7001, 0xFE83, 0x7001, 0x7001, 0x7001, 0x7001, 0xBB81, 0x7001, 0xA241, 0xBBC1, 0x8201, 0x7001, 0x7001, 0xBDDD, + 0x7001, 0x7001, 0xBBC5, 0xFFFF, 0x7001, 0xE4C1, 0xB341, 0xD601, 0xEF4D, 0xFFDD, 0x7001, 0xFD81, 0xCC01, 0x7001, + 0xFF8B, 0xFE01, 0xF5C3, 0xFEC9, 0xFF8B, 0x7001, 0xBB81, 0xEDC3, 0xFE83, 0xBB81, 0x7001, 0xFE83, 0xE543, 0x8A01, + 0x7001, 0xBC17, 0xFFED, 0xDC81, 0x7001, 0x7001, 0xFF8B, 0xFD81, 0xFD81, 0xBBC5, 0x7001, 0x7001, 0xBC09, 0xFD81, + 0xFF8B, 0x7001, 0x7001, 0xFF8B, 0xFF8B, 0xBBC5, 0x7001, 0xAA41, 0xDD41, 0xCC01, 0x7001, 0x7001, 0x7001, 0x7001, + 0xFE83, 0xBBC1, 0x8A01, 0x8A01, 0xED41, 0xED41, 0xFFD3, 0x7001, 0x7001, 0x7001, 0xB341, 0xCC01, 0xA301, 0x7001, + 0xFD81, 0xFFD3, 0x7001, 0xBBC5, 0xE4C1, 0xCC01, 0xE4C1, 0xF605, 0xBBC5, 0x7001, 0x7001, 0x7001, 0x7001, 0xA283, + 0xC3C3, 0xEE89, 0xFF8B, 0xFE83, 0xCC41, 0x9241, 0x7001, 0x7001, 0x8201, 0xCC01, 0xDC81, 0xFFD3, 0x7001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x7001, 0x7001, 0x5001, 0x5001, + 0x5001, 0xED41, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, + 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, + 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x2001, 0x2001, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, + 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, + 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0xFC81, 0x81C1, 0x9A41, 0x4841, + 0xAAC1, 0x58C1, 0xBB01, 0x9241, 0xFDC1, 0x81C1, 0xCB81, 0x7141, 0xFC81, 0x9241, 0xC341, 0x89C1, 0xFC81, 0x89C1, + 0xDBC1, 0x89C1, 0xFC81, 0x7181, 0xDBC1, 0x9241, 0xFE01, 0x9A41, 0xC341, 0x9A41, 0xFC81, 0xAAC1, 0xFC81, 0x6941, + 0xFFC1, 0xE401, 0xFFEF, 0xE401, 0xFEC1, 0xE401, 0xFFC1, 0xE401, 0xFFC9, 0xE401, 0xFFEF, 0xE401, 0xFFEF, 0xE401, + 0xFDC1, 0xCB81, 0xFF87, 0xE401, 0xFE41, 0xE401, 0xFF87, 0xE401, 0xFE41, 0xE401, 0xFFEF, 0xE401, 0xFF87, 0xE401, + 0xFE41, 0xE401, 0xFFEF, 0xE401, +}; + +s16 sMantUnusedTex[32 * 32] = { + 0x5801, 0x9001, 0x6001, 0x4001, 0x3001, 0x4801, 0x7801, 0x7001, 0x7001, 0x6001, 0x3801, 0x3801, 0x4001, 0x4001, + 0x4001, 0x7001, 0x6001, 0x5001, 0x2801, 0x2001, 0x2001, 0x2801, 0x4801, 0x7001, 0x8001, 0x8001, 0x8001, 0x4001, + 0x2001, 0x2001, 0x2801, 0x4001, 0x4801, 0x9001, 0x8001, 0x5801, 0x3001, 0x4001, 0x7001, 0x7001, 0x6801, 0x5801, + 0x4001, 0x4001, 0x4001, 0x4801, 0x6001, 0x6001, 0x6001, 0x5801, 0x4001, 0x3001, 0x2801, 0x3001, 0x3801, 0x4801, + 0x6801, 0x8001, 0x8001, 0x5801, 0x3001, 0x2801, 0x3001, 0x4001, 0x5001, 0x8001, 0x7001, 0x6801, 0x4001, 0x4001, + 0x5801, 0x6801, 0x6801, 0x5801, 0x4001, 0x3801, 0x4801, 0x4801, 0x6001, 0x6801, 0x6801, 0x6001, 0x5001, 0x3801, + 0x2801, 0x3001, 0x4001, 0x4801, 0x5001, 0x6801, 0x8001, 0x7001, 0x3801, 0x3001, 0x3801, 0x4801, 0x5001, 0x7001, + 0x7001, 0x5801, 0x4801, 0x4801, 0x6001, 0x6801, 0x6001, 0x5001, 0x4001, 0x4001, 0x4801, 0x5801, 0x6001, 0x6001, + 0x6801, 0x6801, 0x6801, 0x4801, 0x3001, 0x4001, 0x4801, 0x5801, 0x5001, 0x6801, 0x7801, 0x7801, 0x4001, 0x3001, + 0x4001, 0x5001, 0x5001, 0x6801, 0x6801, 0x5801, 0x5801, 0x5801, 0x6001, 0x6001, 0x5801, 0x5001, 0x4801, 0x4801, + 0x4801, 0x5801, 0x5801, 0x5801, 0x6001, 0x6801, 0x7001, 0x5801, 0x3801, 0x4001, 0x4801, 0x5001, 0x5801, 0x7001, + 0x7801, 0x7801, 0x4801, 0x3801, 0x4801, 0x5801, 0x5001, 0x6001, 0x6001, 0x5801, 0x5001, 0x6801, 0x6001, 0x5801, + 0x5001, 0x5001, 0x4801, 0x4801, 0x5001, 0x5801, 0x5801, 0x5801, 0x6001, 0x6801, 0x7001, 0x5801, 0x4801, 0x4801, + 0x5001, 0x5001, 0x5801, 0x6801, 0x6801, 0x7801, 0x4801, 0x3801, 0x5001, 0x5001, 0x5001, 0x5801, 0x6001, 0x5001, + 0x5801, 0x6001, 0x5801, 0x5801, 0x5001, 0x5001, 0x4801, 0x4801, 0x5001, 0x5001, 0x5001, 0x5801, 0x6001, 0x6801, + 0x7001, 0x5801, 0x4801, 0x4801, 0x5001, 0x5801, 0x5801, 0x5801, 0x6801, 0x7801, 0x4801, 0x4001, 0x5001, 0x5001, + 0x5001, 0x5801, 0x5801, 0x5801, 0x5801, 0x5801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5801, 0x6801, 0x6801, 0x6801, 0x5801, 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5801, 0x6001, 0x7001, + 0x4801, 0x4801, 0x5001, 0x5001, 0x0000, 0x4801, 0x5801, 0x5801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5801, 0x6801, 0x6801, 0x6001, 0x5801, 0x5001, 0x5001, 0x5801, 0x5001, + 0x5001, 0x5001, 0x6001, 0x6001, 0x4801, 0x4801, 0x5001, 0x5001, 0x0000, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5801, 0x6001, 0x6801, 0x6001, 0x5801, + 0x5001, 0x5801, 0x5801, 0x5001, 0x5001, 0x5001, 0x5801, 0x6001, 0x4801, 0x5001, 0x5001, 0x5001, 0x0000, 0x3001, + 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5801, + 0x6001, 0x6001, 0x5801, 0x5801, 0x5001, 0x5801, 0x5801, 0x5001, 0x5001, 0x5001, 0x5801, 0x5801, 0x5001, 0x5001, + 0x5001, 0x5001, 0x0000, 0x0000, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5801, 0x5801, 0x5801, 0x5801, 0x5801, 0x5001, 0x5001, 0x5801, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5801, 0x5801, 0x5001, 0x5001, 0x5001, 0x5001, 0x0000, 0x0000, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5801, 0x5801, 0x5801, 0x5801, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x2000, 0x1801, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5801, 0x5801, 0x5001, + 0x5001, 0x5801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4801, + 0x4000, 0x4001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x3800, 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4801, + 0x2000, 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4801, 0x2001, 0x3001, 0x3000, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x3001, 0x4801, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x2800, 0x2800, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4001, 0x5001, 0x0000, + 0x1800, 0x4800, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x3801, 0x1000, + 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4001, 0x0000, 0x0000, 0x0000, 0x0000, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x3801, 0x3800, 0x2801, 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x1800, 0x1000, 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x3801, 0x0000, 0x0000, + 0x1800, 0x3801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4801, 0x3801, 0x1800, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4001, 0x0000, 0x0000, 0x1000, 0x4001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x1801, 0x2800, 0x3801, 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x4801, 0x3801, 0x3000, 0x1801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4000, 0x0000, 0x0000, 0x0000, 0x0800, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4001, 0x0800, + 0x0000, 0x5001, 0x5001, 0x5001, 0x4001, 0x3000, 0x1800, 0x0000, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4001, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x4000, 0x0000, 0x0000, 0x5001, 0x5001, 0x5001, 0x3800, 0x0000, 0x0000, 0x3000, 0x4801, 0x5001, + 0x5001, 0x5001, 0x5001, 0x2801, 0x0000, 0x0000, 0x0000, 0x2001, 0x2801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x3801, 0x0000, 0x0000, 0x5001, 0x5001, 0x5001, 0x4001, 0x0800, + 0x0000, 0x3001, 0x4001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4001, 0x4001, 0x0000, 0x2801, 0x4001, 0x3801, 0x4801, + 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x2801, 0x0000, 0x0000, 0x0000, + 0x5001, 0x5001, 0x3801, 0x2000, 0x0000, 0x0000, 0x3801, 0x5001, 0x5001, 0x5001, 0x4801, 0x4000, 0x2001, 0x4801, + 0x3801, 0x3001, 0x1801, 0x2000, 0x1001, 0x3801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x1000, 0x0000, 0x0000, 0x0000, 0x4801, 0x4801, 0x2801, 0x1800, 0x0000, 0x0000, 0x2001, 0x5001, 0x5001, 0x5001, + 0x3801, 0x1800, 0x1800, 0x3001, 0x4001, 0x4001, 0x1801, 0x0000, 0x0000, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x0000, 0x0000, 0x0000, 0x0000, 0x3001, 0x4001, 0x1800, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3801, 0x5001, 0x5001, 0x0000, 0x0000, 0x0000, 0x3801, 0x4001, 0x4801, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5001, 0x5001, 0x5001, 0x4801, 0x0000, 0x0000, 0x5001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1800, 0x2801, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3801, 0x4801, 0x5001, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3801, 0x5001, 0x5001, 0x1001, 0x0000, 0x0000, 0x5001, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5000, 0x0000, 0x0800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2000, 0x4801, 0x5001, 0x0000, 0x0000, 0x0000, 0x0000, 0x3001, 0x4801, 0x5001, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5000, 0x0000, 0x0000, 0x3001, 0x3800, 0x0000, 0x0000, 0x0000, 0x0000, 0x2000, 0x3801, + 0x5001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1801, 0x0800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, +}; + +Vtx sMantVtx1[] = { + VTX(1000, 0, 0, 186, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 1000, 186, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 2000, 186, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 3000, 186, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 4000, 186, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 5000, 186, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 6000, 186, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 7000, 186, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 8000, 186, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 9000, 186, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 10000, 186, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 11000, 186, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(0, 0, 0, 0, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 1000, 0, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 2000, 0, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 3000, 0, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 4000, 0, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 5000, 0, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 6000, 0, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 7000, 0, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 8000, 0, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 9000, 0, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 10000, 0, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 11000, 0, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(2000, 0, 0, 372, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 1000, 372, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 2000, 372, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 3000, 372, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 4000, 372, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 5000, 372, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 6000, 372, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 7000, 372, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 8000, 372, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 9000, 372, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 10000, 372, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 11000, 372, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(3000, 0, 0, 559, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 1000, 559, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 2000, 559, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 3000, 559, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 4000, 559, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 5000, 559, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 6000, 559, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 7000, 559, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 8000, 559, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 9000, 559, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 10000, 559, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 11000, 559, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(4000, 0, 0, 745, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 1000, 745, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 2000, 745, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 3000, 745, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 4000, 745, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 5000, 745, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 6000, 745, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 7000, 745, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 8000, 745, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 9000, 745, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 10000, 745, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 11000, 745, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(5000, 0, 0, 931, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 1000, 931, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 2000, 931, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 3000, 931, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 4000, 931, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 5000, 931, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 6000, 931, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 7000, 931, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 8000, 931, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 9000, 931, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 10000, 931, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 11000, 931, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(6000, 0, 0, 1117, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 1000, 1117, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 2000, 1117, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 3000, 1117, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 4000, 1117, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 5000, 1117, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 6000, 1117, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 7000, 1117, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 8000, 1117, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 9000, 1117, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 10000, 1117, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 11000, 1117, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(7000, 0, 0, 1303, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 1000, 1303, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 2000, 1303, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 3000, 1303, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 4000, 1303, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 5000, 1303, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 6000, 1303, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 7000, 1303, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 8000, 1303, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 9000, 1303, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 10000, 1303, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 11000, 1303, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(8000, 0, 0, 1489, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 1000, 1489, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 2000, 1489, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 3000, 1489, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 4000, 1489, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 5000, 1489, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 6000, 1489, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 7000, 1489, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 8000, 1489, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 9000, 1489, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 10000, 1489, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 11000, 1489, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(9000, 0, 0, 1676, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 1000, 1676, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 2000, 1676, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 3000, 1676, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 4000, 1676, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 5000, 1676, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 6000, 1676, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 7000, 1676, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 8000, 1676, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 9000, 1676, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 10000, 1676, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 11000, 1676, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(10000, 0, 0, 1862, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 1000, 1862, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 2000, 1862, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 3000, 1862, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 4000, 1862, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 5000, 1862, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 6000, 1862, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 7000, 1862, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 8000, 1862, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 9000, 1862, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 10000, 1862, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 11000, 1862, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(11000, 0, 0, 2048, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 1000, 2048, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 2000, 2048, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 3000, 2048, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 4000, 2048, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 5000, 2048, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 6000, 2048, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 7000, 2048, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 8000, 2048, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 9000, 2048, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 10000, 2048, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 11000, 2048, -482, 0x00, 0x78, 0x00, 0xFF), +}; + +Gfx sMantTexDL[] = { + gsDPPipeSync(), + gsDPSetTextureLUT(G_TT_NONE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPLoadTextureBlock(sMantTex, G_IM_FMT_RGBA, G_IM_SIZ_16b, MANT_TEX_WIDTH, MANT_TEX_HEIGHT, 0, G_TX_MIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_CLAMP, 5, 6, G_TX_NOLOD, G_TX_NOLOD), + gsSPEndDisplayList(), +}; + +//! @bug sMantUnusedTex is 32x32 not 32x64, however this dlist is unused +Gfx sMantUnusedTexDL[] = { + gsDPPipeSync(), + gsDPSetTextureLUT(G_TT_NONE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPLoadTextureBlock(sMantUnusedTex, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, G_TX_MIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_CLAMP, 5, 6, G_TX_NOLOD, G_TX_NOLOD), + gsSPEndDisplayList(), +}; + +Gfx sMantDL[] = { + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, TEXEL0, COMBINED, 0, PRIMITIVE, 0, 0, 0, 0, COMBINED), + gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2), + gsSPClearGeometryMode(G_CULL_BACK | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR), + gsSPSetGeometryMode(G_FOG | G_LIGHTING), + gsDPSetPrimColor(0, 0, 255, 255, 255, 255), + gsSPVertex(0x0C000000, 24, 0), + gsSP2Triangles(0, 1, 13, 0, 0, 13, 12, 0), + gsSP2Triangles(1, 2, 14, 0, 1, 14, 13, 0), + gsSP2Triangles(2, 3, 15, 0, 2, 15, 14, 0), + gsSP2Triangles(3, 4, 16, 0, 3, 16, 15, 0), + gsSP2Triangles(4, 5, 17, 0, 4, 17, 16, 0), + gsSP2Triangles(5, 6, 18, 0, 5, 18, 17, 0), + gsSP2Triangles(6, 7, 19, 0, 6, 19, 18, 0), + gsSP2Triangles(7, 8, 20, 0, 7, 20, 19, 0), + gsSP2Triangles(8, 9, 21, 0, 8, 21, 20, 0), + gsSP2Triangles(9, 10, 22, 0, 9, 22, 21, 0), + gsSP2Triangles(10, 11, 23, 0, 10, 23, 22, 0), + gsSPVertex(0x0C000180, 12, 12), + gsSP2Triangles(12, 13, 1, 0, 12, 1, 0, 0), + gsSP2Triangles(13, 14, 2, 0, 13, 2, 1, 0), + gsSP2Triangles(14, 15, 3, 0, 14, 3, 2, 0), + gsSP2Triangles(15, 16, 4, 0, 15, 4, 3, 0), + gsSP2Triangles(16, 17, 5, 0, 16, 5, 4, 0), + gsSP2Triangles(17, 18, 6, 0, 17, 6, 5, 0), + gsSP2Triangles(18, 19, 7, 0, 18, 7, 6, 0), + gsSP2Triangles(19, 20, 8, 0, 19, 8, 7, 0), + gsSP2Triangles(20, 21, 9, 0, 20, 9, 8, 0), + gsSP2Triangles(21, 22, 10, 0, 21, 10, 9, 0), + gsSP2Triangles(22, 23, 11, 0, 22, 11, 10, 0), + gsSPVertex(0x0C000240, 12, 0), + gsSP2Triangles(0, 1, 13, 0, 0, 13, 12, 0), + gsSP2Triangles(1, 2, 14, 0, 1, 14, 13, 0), + gsSP2Triangles(2, 3, 15, 0, 2, 15, 14, 0), + gsSP2Triangles(3, 4, 16, 0, 3, 16, 15, 0), + gsSP2Triangles(4, 5, 17, 0, 4, 17, 16, 0), + gsSP2Triangles(5, 6, 18, 0, 5, 18, 17, 0), + gsSP2Triangles(6, 7, 19, 0, 6, 19, 18, 0), + gsSP2Triangles(7, 8, 20, 0, 7, 20, 19, 0), + gsSP2Triangles(8, 9, 21, 0, 8, 21, 20, 0), + gsSP2Triangles(9, 10, 22, 0, 9, 22, 21, 0), + gsSP2Triangles(10, 11, 23, 0, 10, 23, 22, 0), + gsSPVertex(0x0C000300, 12, 12), + gsSP2Triangles(12, 13, 1, 0, 12, 1, 0, 0), + gsSP2Triangles(13, 14, 2, 0, 13, 2, 1, 0), + gsSP2Triangles(14, 15, 3, 0, 14, 3, 2, 0), + gsSP2Triangles(15, 16, 4, 0, 15, 4, 3, 0), + gsSP2Triangles(16, 17, 5, 0, 16, 5, 4, 0), + gsSP2Triangles(17, 18, 6, 0, 17, 6, 5, 0), + gsSP2Triangles(18, 19, 7, 0, 18, 7, 6, 0), + gsSP2Triangles(19, 20, 8, 0, 19, 8, 7, 0), + gsSP2Triangles(20, 21, 9, 0, 20, 9, 8, 0), + gsSP2Triangles(21, 22, 10, 0, 21, 10, 9, 0), + gsSP2Triangles(22, 23, 11, 0, 22, 11, 10, 0), + gsSPVertex(0x0C0003C0, 12, 0), + gsSP2Triangles(0, 1, 13, 0, 0, 13, 12, 0), + gsSP2Triangles(1, 2, 14, 0, 1, 14, 13, 0), + gsSP2Triangles(2, 3, 15, 0, 2, 15, 14, 0), + gsSP2Triangles(3, 4, 16, 0, 3, 16, 15, 0), + gsSP2Triangles(4, 5, 17, 0, 4, 17, 16, 0), + gsSP2Triangles(5, 6, 18, 0, 5, 18, 17, 0), + gsSP2Triangles(6, 7, 19, 0, 6, 19, 18, 0), + gsSP2Triangles(7, 8, 20, 0, 7, 20, 19, 0), + gsSP2Triangles(8, 9, 21, 0, 8, 21, 20, 0), + gsSP2Triangles(9, 10, 22, 0, 9, 22, 21, 0), + gsSP2Triangles(10, 11, 23, 0, 10, 23, 22, 0), + gsSPVertex(0x0C000480, 12, 12), + gsSP2Triangles(12, 13, 1, 0, 12, 1, 0, 0), + gsSP2Triangles(13, 14, 2, 0, 13, 2, 1, 0), + gsSP2Triangles(14, 15, 3, 0, 14, 3, 2, 0), + gsSP2Triangles(15, 16, 4, 0, 15, 4, 3, 0), + gsSP2Triangles(16, 17, 5, 0, 16, 5, 4, 0), + gsSP2Triangles(17, 18, 6, 0, 17, 6, 5, 0), + gsSP2Triangles(18, 19, 7, 0, 18, 7, 6, 0), + gsSP2Triangles(19, 20, 8, 0, 19, 8, 7, 0), + gsSP2Triangles(20, 21, 9, 0, 20, 9, 8, 0), + gsSP2Triangles(21, 22, 10, 0, 21, 10, 9, 0), + gsSP2Triangles(22, 23, 11, 0, 22, 11, 10, 0), + gsSPVertex(0x0C000540, 12, 0), + gsSP2Triangles(0, 1, 13, 0, 0, 13, 12, 0), + gsSP2Triangles(1, 2, 14, 0, 1, 14, 13, 0), + gsSP2Triangles(2, 3, 15, 0, 2, 15, 14, 0), + gsSP2Triangles(3, 4, 16, 0, 3, 16, 15, 0), + gsSP2Triangles(4, 5, 17, 0, 4, 17, 16, 0), + gsSP2Triangles(5, 6, 18, 0, 5, 18, 17, 0), + gsSP2Triangles(6, 7, 19, 0, 6, 19, 18, 0), + gsSP2Triangles(7, 8, 20, 0, 7, 20, 19, 0), + gsSP2Triangles(8, 9, 21, 0, 8, 21, 20, 0), + gsSP2Triangles(9, 10, 22, 0, 9, 22, 21, 0), + gsSP2Triangles(10, 11, 23, 0, 10, 23, 22, 0), + gsSPVertex(0x0C000600, 12, 12), + gsSP2Triangles(12, 13, 1, 0, 12, 1, 0, 0), + gsSP2Triangles(13, 14, 2, 0, 13, 2, 1, 0), + gsSP2Triangles(14, 15, 3, 0, 14, 3, 2, 0), + gsSP2Triangles(15, 16, 4, 0, 15, 4, 3, 0), + gsSP2Triangles(16, 17, 5, 0, 16, 5, 4, 0), + gsSP2Triangles(17, 18, 6, 0, 17, 6, 5, 0), + gsSP2Triangles(18, 19, 7, 0, 18, 7, 6, 0), + gsSP2Triangles(19, 20, 8, 0, 19, 8, 7, 0), + gsSP2Triangles(20, 21, 9, 0, 20, 9, 8, 0), + gsSP2Triangles(21, 22, 10, 0, 21, 10, 9, 0), + gsSP2Triangles(22, 23, 11, 0, 22, 11, 10, 0), + gsSPVertex(0x0C0006C0, 12, 0), + gsSP2Triangles(0, 1, 13, 0, 0, 13, 12, 0), + gsSP2Triangles(1, 2, 14, 0, 1, 14, 13, 0), + gsSP2Triangles(2, 3, 15, 0, 2, 15, 14, 0), + gsSP2Triangles(3, 4, 16, 0, 3, 16, 15, 0), + gsSP2Triangles(4, 5, 17, 0, 4, 17, 16, 0), + gsSP2Triangles(5, 6, 18, 0, 5, 18, 17, 0), + gsSP2Triangles(6, 7, 19, 0, 6, 19, 18, 0), + gsSP2Triangles(7, 8, 20, 0, 7, 20, 19, 0), + gsSP2Triangles(8, 9, 21, 0, 8, 21, 20, 0), + gsSP2Triangles(9, 10, 22, 0, 9, 22, 21, 0), + gsSP2Triangles(10, 11, 23, 0, 10, 23, 22, 0), + gsSPVertex(0x0C000780, 12, 12), + gsSP2Triangles(12, 13, 1, 0, 12, 1, 0, 0), + gsSP2Triangles(13, 14, 2, 0, 13, 2, 1, 0), + gsSP2Triangles(14, 15, 3, 0, 14, 3, 2, 0), + gsSP2Triangles(15, 16, 4, 0, 15, 4, 3, 0), + gsSP2Triangles(16, 17, 5, 0, 16, 5, 4, 0), + gsSP2Triangles(17, 18, 6, 0, 17, 6, 5, 0), + gsSP2Triangles(18, 19, 7, 0, 18, 7, 6, 0), + gsSP2Triangles(19, 20, 8, 0, 19, 8, 7, 0), + gsSP2Triangles(20, 21, 9, 0, 20, 9, 8, 0), + gsSP2Triangles(21, 22, 10, 0, 21, 10, 9, 0), + gsSP2Triangles(22, 23, 11, 0, 22, 11, 10, 0), + gsSPVertex(0x0C000840, 12, 0), + gsSP2Triangles(0, 1, 13, 0, 0, 13, 12, 0), + gsSP2Triangles(1, 2, 14, 0, 1, 14, 13, 0), + gsSP2Triangles(2, 3, 15, 0, 2, 15, 14, 0), + gsSP2Triangles(3, 4, 16, 0, 3, 16, 15, 0), + gsSP2Triangles(4, 5, 17, 0, 4, 17, 16, 0), + gsSP2Triangles(5, 6, 18, 0, 5, 18, 17, 0), + gsSP2Triangles(6, 7, 19, 0, 6, 19, 18, 0), + gsSP2Triangles(7, 8, 20, 0, 7, 20, 19, 0), + gsSP2Triangles(8, 9, 21, 0, 8, 21, 20, 0), + gsSP2Triangles(9, 10, 22, 0, 9, 22, 21, 0), + gsSP2Triangles(10, 11, 23, 0, 10, 23, 22, 0), + gsSPEndDisplayList(), +}; + +Vtx sMantVtx2[] = { + VTX(1000, 0, 0, 186, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 1000, 186, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 2000, 186, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 3000, 186, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 4000, 186, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 5000, 186, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 6000, 186, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 7000, 186, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 8000, 186, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 9000, 186, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 10000, 186, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 11000, 186, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(0, 0, 0, 0, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 1000, 0, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 2000, 0, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 3000, 0, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 4000, 0, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 5000, 0, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 6000, 0, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 7000, 0, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 8000, 0, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 9000, 0, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 10000, 0, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 11000, 0, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(2000, 0, 0, 372, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 1000, 372, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 2000, 372, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 3000, 372, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 4000, 372, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 5000, 372, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 6000, 372, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 7000, 372, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 8000, 372, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 9000, 372, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 10000, 372, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 11000, 372, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(3000, 0, 0, 559, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 1000, 559, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 2000, 559, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 3000, 559, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 4000, 559, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 5000, 559, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 6000, 559, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 7000, 559, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 8000, 559, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 9000, 559, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 10000, 559, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 11000, 559, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(4000, 0, 0, 745, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 1000, 745, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 2000, 745, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 3000, 745, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 4000, 745, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 5000, 745, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 6000, 745, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 7000, 745, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 8000, 745, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 9000, 745, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 10000, 745, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 11000, 745, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(5000, 0, 0, 931, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 1000, 931, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 2000, 931, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 3000, 931, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 4000, 931, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 5000, 931, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 6000, 931, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 7000, 931, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 8000, 931, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 9000, 931, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 10000, 931, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 11000, 931, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(6000, 0, 0, 1117, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 1000, 1117, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 2000, 1117, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 3000, 1117, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 4000, 1117, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 5000, 1117, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 6000, 1117, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 7000, 1117, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 8000, 1117, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 9000, 1117, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 10000, 1117, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 11000, 1117, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(7000, 0, 0, 1303, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 1000, 1303, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 2000, 1303, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 3000, 1303, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 4000, 1303, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 5000, 1303, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 6000, 1303, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 7000, 1303, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 8000, 1303, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 9000, 1303, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 10000, 1303, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 11000, 1303, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(8000, 0, 0, 1489, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 1000, 1489, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 2000, 1489, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 3000, 1489, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 4000, 1489, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 5000, 1489, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 6000, 1489, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 7000, 1489, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 8000, 1489, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 9000, 1489, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 10000, 1489, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 11000, 1489, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(9000, 0, 0, 1676, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 1000, 1676, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 2000, 1676, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 3000, 1676, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 4000, 1676, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 5000, 1676, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 6000, 1676, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 7000, 1676, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 8000, 1676, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 9000, 1676, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 10000, 1676, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 11000, 1676, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(10000, 0, 0, 1862, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 1000, 1862, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 2000, 1862, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 3000, 1862, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 4000, 1862, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 5000, 1862, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 6000, 1862, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 7000, 1862, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 8000, 1862, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 9000, 1862, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 10000, 1862, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 11000, 1862, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(11000, 0, 0, 2048, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 1000, 2048, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 2000, 2048, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 3000, 2048, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 4000, 2048, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 5000, 2048, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 6000, 2048, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 7000, 2048, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 8000, 2048, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 9000, 2048, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 10000, 2048, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 11000, 2048, -482, 0x00, 0x78, 0x00, 0xFF), +}; diff --git a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c index 50ee39c8c9..59249d0061 100644 --- a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c +++ b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c @@ -1,4 +1,11 @@ +/* + * File: z_en_ganon_mant.c + * Overlay: ovl_En_Ganon_Mant + * Description: Ganondorf's Cape + */ + #include "z_en_ganon_mant.h" +#include "overlays/actors/ovl_Boss_Ganon/z_boss_ganon.h" #define FLAGS 0x00000030 @@ -9,7 +16,6 @@ void EnGanonMant_Destroy(Actor* thisx, GlobalContext* globalCtx); void EnGanonMant_Update(Actor* thisx, GlobalContext* globalCtx); void EnGanonMant_Draw(Actor* thisx, GlobalContext* globalCtx); -/* const ActorInit En_Ganon_Mant_InitVars = { ACTOR_EN_GANON_MANT, ACTORCAT_BOSS, @@ -21,19 +27,438 @@ const ActorInit En_Ganon_Mant_InitVars = { (ActorFunc)EnGanonMant_Update, (ActorFunc)EnGanonMant_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Init.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Destroy.s") +static s16 sTearSizesMedium[] = { + 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23D84.s") +static s16 sTearSizesLarge[] = { + 0, 0, 0, 0, 1, 1, 2, 2, 2, 1, 1, 0, 0, 0, 0, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23FE0.s") +static s16 sTearSizesSmall[] = { + 0, 0, 0, 0, 0, 0, 0, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A245A4.s") +typedef struct { + s16* tearAreaSizes; + s16 count; +} TearShape; // size = 0x8 -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Update.s") +/** + * The arrays pointed to by this table describe how many pixels should + * be removed from the cloak texture in a single pass + */ +static TearShape sTearShapes[] = { + { sTearSizesMedium, ARRAY_COUNT(sTearSizesMedium) }, + { sTearSizesMedium, ARRAY_COUNT(sTearSizesMedium) }, + { sTearSizesLarge, ARRAY_COUNT(sTearSizesLarge) }, + { sTearSizesSmall, ARRAY_COUNT(sTearSizesSmall) }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A24884.s") +/// How much each joint is affected by backwards/forwards swaying motion +static f32 sBackSwayCoefficients[GANON_MANT_NUM_JOINTS] = { + 0.0f, 1.0f, 0.5f, 0.25f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Draw.s") +static f32 D_80A24DB4[] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; + +/// How much each joint is affected by sideways swaying motion, tends to 0 +static f32 sSideSwayCoefficients[GANON_MANT_NUM_JOINTS] = { + 0.0f, 1.0f, 0.9f, 0.8f, 0.7f, 0.6f, 0.5f, 0.4f, 0.3f, 0.2f, 0.1f, 0.0f, +}; + +static f32 D_80A24E00[] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; + +static f32 sDistMultipliers[GANON_MANT_NUM_JOINTS] = { + 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.1f, 1.2f, 1.3f, 1.4f, 1.5f, 1.6f, 1.7f, +}; + +static f32 D_80A24E48[] = { + 1.8f, +}; + +#define MAP_STRAND_TO_VTX(n) \ + (n) + GANON_MANT_NUM_JOINTS * 0, (n) + GANON_MANT_NUM_JOINTS * 1, (n) + GANON_MANT_NUM_JOINTS * 2, \ + (n) + GANON_MANT_NUM_JOINTS * 3, (n) + GANON_MANT_NUM_JOINTS * 4, (n) + GANON_MANT_NUM_JOINTS * 5, \ + (n) + GANON_MANT_NUM_JOINTS * 6, (n) + GANON_MANT_NUM_JOINTS * 7, (n) + GANON_MANT_NUM_JOINTS * 8, \ + (n) + GANON_MANT_NUM_JOINTS * 9, (n) + GANON_MANT_NUM_JOINTS * 10, (n) + GANON_MANT_NUM_JOINTS * 11 + +static u16 sVerticesMap[GANON_MANT_NUM_STRANDS * GANON_MANT_NUM_JOINTS] = { + MAP_STRAND_TO_VTX(11), MAP_STRAND_TO_VTX(10), MAP_STRAND_TO_VTX(9), MAP_STRAND_TO_VTX(8), + MAP_STRAND_TO_VTX(7), MAP_STRAND_TO_VTX(6), MAP_STRAND_TO_VTX(5), MAP_STRAND_TO_VTX(4), + MAP_STRAND_TO_VTX(3), MAP_STRAND_TO_VTX(2), MAP_STRAND_TO_VTX(1), MAP_STRAND_TO_VTX(0), +}; + +#include "ovl_en_ganon_mant_gfx.c" + +void EnGanonMant_Init(Actor* thisx, GlobalContext* globalCtx) { + EnGanonMant* this = THIS; + + this->actor.flags &= ~1; +} + +void EnGanonMant_Destroy(Actor* thisx, GlobalContext* globalCtx) { +} + +/** + * Randomly zeros portions of the cloak texture + */ +void EnGanonMant_Tear(EnGanonMant* this) { + s32 pad; + s16 i; + s16 areaX; + s16 areaY; + s16 texIdx; + f32 tx = Rand_ZeroFloat(MANT_TEX_WIDTH); + f32 ty = Rand_ZeroFloat(MANT_TEX_HEIGHT); + f32 tearAngle = Rand_ZeroFloat(2 * M_PI); + f32 tearDirX = sinf(tearAngle); + f32 tearDirY = cosf(tearAngle); + TearShape* shape = &sTearShapes[(s16)Rand_ZeroFloat(ARRAY_COUNT(sTearShapes) - 0.01f)]; + s16 count = shape->count; + s16* tearAreaSizes = shape->tearAreaSizes; + + for (i = 0; i < count; i++) { + if ((0 <= tx && tx < MANT_TEX_WIDTH) && (0 <= ty && ty < MANT_TEX_HEIGHT)) { + for (areaX = 0; areaX <= tearAreaSizes[i]; areaX++) { + texIdx = 0; + if (1) {} + for (areaY = 0; areaY <= tearAreaSizes[i]; areaY++) { + texIdx = (s16)((s16)tx + ((s16)ty * MANT_TEX_WIDTH)) + ((s16)areaX + ((s16)areaY * MANT_TEX_WIDTH)); + if (texIdx < ARRAY_COUNT(sMantTex)) { + sMantTex[texIdx] = 0; + } + } + } + } + tx += tearDirX; + ty += tearDirY; + } + + for (i = 0; i < 4; i++) { + this->strands[(s16)Rand_ZeroFloat(GANON_MANT_NUM_STRANDS - 0.1f)] + .torn[(s16)Rand_ZeroFloat(GANON_MANT_NUM_JOINTS - 0.1f)] = true; + } +} + +/** + * Updates the dynamic strands that control the shape and motion of the cloak + */ +void EnGanonMant_UpdateStrand(GlobalContext* globalCtx, EnGanonMant* this, Vec3f* root, Vec3f* pos, Vec3f* nextPos, + Vec3f* rot, Vec3f* vel, s16 strandNum) { + f32 xDiff; + f32 zDiff; + f32 gravity; + s32 pad[4]; + f32 yaw; + s16 i; + f32 x; + f32 y; + f32 z; + f32 jointLength; + Vec3f delta; + Vec3f posStep; + Vec3f backSwayOffset; + Vec3f sideSwayOffset; + + delta.y = 0; + if (this->actor.params == 0x23) { + // Pushes all the strands away from the actor + delta.x = 0.0f; + delta.z = -30.0f; + Matrix_RotateY(BINANG_TO_RAD(this->actor.shape.rot.y), MTXMODE_NEW); + Matrix_MultVec3f(&delta, &posStep); + for (i = 0; i < GANON_MANT_NUM_JOINTS; i++) { + (pos + i)->x += posStep.x; + (pos + i)->z += posStep.z; + } + // Set length + jointLength = 6.5f; + } else { + jointLength = 9.5f; + } + + for (i = 0; i < GANON_MANT_NUM_JOINTS; i++, pos++, vel++, rot++, nextPos++) { + if (i == 0) { + // Constraint: first position is always root + pos->x = root->x; + pos->y = root->y; + pos->z = root->z; + } else { + // Decelerate + Math_ApproachZeroF(&vel->x, 1.0f, 0.1f); + Math_ApproachZeroF(&vel->y, 1.0f, 0.1f); + Math_ApproachZeroF(&vel->z, 1.0f, 0.1f); + + // Push the cloak away from attached actor, plus oscillations + delta.x = 0; + delta.z = (this->backPush + (sinf((strandNum * (2 * M_PI)) / 2.1f) * this->backSwayMagnitude)) * + sBackSwayCoefficients[i]; + Matrix_RotateY(this->baseYaw, MTXMODE_NEW); + Matrix_MultVec3f(&delta, &backSwayOffset); + + // Push the cloak out to either side, in a swaying manner + delta.x = cosf((strandNum * M_PI) / (GANON_MANT_NUM_STRANDS - 1.0f)) * this->sideSwayMagnitude * + sSideSwayCoefficients[i]; + delta.z = 0; + Matrix_MultVec3f(&delta, &sideSwayOffset); + + // Calculate position difference + gravity = this->gravity; + x = ((pos->x + vel->x) - (pos - 1)->x) + (backSwayOffset.x + sideSwayOffset.x); + y = ((pos->y + vel->y) - (pos - 1)->y) + gravity; + z = ((pos->z + vel->z) - (pos - 1)->z) + (backSwayOffset.z + sideSwayOffset.z); + + // Calculate rotations in the direction of the position difference + yaw = Math_Atan2F(z, x); + x = -Math_Atan2F(sqrtf(SQ(x) + SQ(z)), y); + (rot - 1)->x = x; + + // Calculate real position difference of correct length in the correct direction + delta.x = 0; + delta.z = jointLength; + Matrix_RotateY(yaw, MTXMODE_NEW); + Matrix_RotateX(x, MTXMODE_APPLY); + Matrix_MultVec3f(&delta, &posStep); + + // Save position + x = pos->x; + y = pos->y; + z = pos->z; + + // Calculate next position + pos->x = (pos - 1)->x + posStep.x; + pos->y = (pos - 1)->y + posStep.y; + pos->z = (pos - 1)->z + posStep.z; + + // Pushes the cloak away from the actor if it is too close + xDiff = pos->x - this->actor.world.pos.x; + zDiff = pos->z - this->actor.world.pos.z; + if (sqrtf(SQ(xDiff) + SQ(zDiff)) < (sDistMultipliers[i] * this->minDist)) { + yaw = Math_Atan2F(zDiff, xDiff); + delta.z = this->minDist * sDistMultipliers[i]; + Matrix_RotateY(yaw, MTXMODE_NEW); + Matrix_MultVec3f(&delta, &posStep); + pos->x = this->actor.world.pos.x + posStep.x; + pos->z = this->actor.world.pos.z + posStep.z; + } + + // Enforces minY constraint + if (pos->y < this->minY) { + pos->y = this->minY; + } + + // Calculate next velocity + vel->x = (pos->x - x) * 80.0f / 100.0f; + vel->y = (pos->y - y) * 80.0f / 100.0f; + vel->z = (pos->z - z) * 80.0f / 100.0f; + + if (this->actor.params != 0x23) { + // Clamp elements of vel into [-5.0, 5.0] + if (vel->x > 5.0f) { + vel->x = 5.0f; + } else if (vel->x < -5.0f) { + vel->x = -5.0f; + } + if (vel->y > 5.0f) { + vel->y = 5.0f; + } else if (vel->y < -5.0f) { + vel->y = -5.0f; + } + if (vel->z > 5.0f) { + vel->z = 5.0f; + } else if (vel->z < -5.0f) { + vel->z = -5.0f; + } + } + + // update angle + xDiff = pos->x - nextPos->x; + zDiff = pos->z - nextPos->z; + (rot - 1)->y = Math_Atan2F(zDiff, xDiff); + } + } + rot[11].y = rot[10].y; + rot[11].x = rot[10].x; +} + +/** + * Update the cloak vertices using the current state of the strands + */ +void EnGanonMant_UpdateVertices(EnGanonMant* this) { + s16 i; + Vtx* vtx; + Vtx* vertices; + MantStrand* strand; + s16 j; + s16 k; + Vec3f up; + Vec3f normal; + + if (this->frameTimer % 2 != 0) { + vertices = SEGMENTED_TO_VIRTUAL(sMantVtx1); + } else { + vertices = SEGMENTED_TO_VIRTUAL(sMantVtx2); + } + up.x = 0.0f; + up.y = 30.0f; + up.z = 0.0f; + + strand = &this->strands[0]; + for (i = 0; i < GANON_MANT_NUM_STRANDS; i++, strand++) { + for (j = 0, k = 0; j < GANON_MANT_NUM_JOINTS; j++, k += GANON_MANT_NUM_JOINTS) { + vtx = &vertices[sVerticesMap[i + k]]; + vtx->n.ob[0] = strand->joints[j].x; + vtx->n.ob[1] = strand->joints[j].y; + vtx->n.ob[2] = strand->joints[j].z; + Matrix_RotateY(strand->rotations[j].y, MTXMODE_NEW); + Matrix_RotateX(strand->rotations[j].x, MTXMODE_APPLY); + Matrix_MultVec3f(&up, &normal); + vtx->n.n[0] = normal.x; + vtx->n.n[1] = normal.y; + vtx->n.n[2] = normal.z; + } + } +} + +void EnGanonMant_Update(Actor* thisx, GlobalContext* globalCtx) { + EnGanonMant* this = THIS; + BossGanon* ganon = (BossGanon*)this->actor.parent; + + this->updateHasRun = true; + this->frameTimer++; + + if (this->attachLeftArmTimer == 0.0f) { + } else { + this->attachLeftArmTimer -= 1.0f; + } + if (this->attachRightArmTimer != 0.0f) { + this->attachRightArmTimer -= 1.0f; + } + if (this->attachShouldersTimer != 0.0f) { + this->attachShouldersTimer -= 1.0f; + } + + this->actor.shape.rot.y = ganon->actor.shape.rot.y; + + if (this->tearTimer != 0) { + this->tearTimer--; + EnGanonMant_Tear(this); + } +} + +void EnGanonMant_DrawCloak(GlobalContext* globalCtx, EnGanonMant* this) { + s32 pad; + + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_ganon_mant.c", 564); + + Matrix_Translate(0.0f, 0.0f, 0.0f, MTXMODE_NEW); + + gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_ganon_mant.c", 572), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + + // set texture + gSPDisplayList(POLY_OPA_DISP++, sMantTexDL); + + // set vertices, vertices are double buffered to prevent + // modification of vertices as they are being drawn + if (this->frameTimer % 2 != 0) { + gSPSegment(POLY_OPA_DISP++, 0x0C, sMantVtx1); + } else { + gSPSegment(POLY_OPA_DISP++, 0x0C, sMantVtx2); + } + + // draw cloak + gSPDisplayList(POLY_OPA_DISP++, sMantDL); + + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_ganon_mant.c", 584); +} + +void EnGanonMant_Draw(Actor* thisx, GlobalContext* globalCtx) { + EnGanonMant* this = THIS; + f32 xDiff; + f32 pitch; + Vec3f strandOffset; + Vec3f strandDivPos; + f32 zDiff; + f32 diffHalfDist; + f32 yDiff; + f32 yaw; + Vec3f* rightPos; + Vec3f* leftPos; + s16 strandIdx; + Vec3f midpoint; + s16 nextStrandIdx; + + if (this->updateHasRun) { + // Only run this if update has run since last draw + + // Choose endpoints + if (this->attachRightArmTimer != 0.0f) { + rightPos = &this->rightForearmPos; + leftPos = &this->leftShoulderPos; + this->gravity = -13.0f; + } else if (this->attachLeftArmTimer != 0.0f) { + rightPos = &this->rightShoulderPos; + leftPos = &this->leftForearmPos; + this->gravity = -13.0f; + } else if (this->attachShouldersTimer != 0.0f) { + rightPos = &this->rightShoulderPos; + leftPos = &this->leftShoulderPos; + this->gravity = -3.0f; + } else { + rightPos = &this->rightForearmPos; + leftPos = &this->leftForearmPos; + } + + xDiff = leftPos->x - rightPos->x; + yDiff = leftPos->y - rightPos->y; + zDiff = leftPos->z - rightPos->z; + + midpoint.x = rightPos->x + xDiff * 0.5f; + midpoint.y = rightPos->y + yDiff * 0.5f; + midpoint.z = rightPos->z + zDiff * 0.5f; + + // Calculte base orientation for chosen endpoints + yaw = Math_Atan2F(zDiff, xDiff); + pitch = -Math_Atan2F(sqrtf(SQ(xDiff) + SQ(zDiff)), yDiff); + diffHalfDist = sqrtf(SQ(xDiff) + SQ(yDiff) + SQ(zDiff)) * 0.5f; + + Matrix_RotateY(yaw, MTXMODE_NEW); + Matrix_RotateX(pitch, MTXMODE_APPLY); + this->baseYaw = yaw - M_PI / 2.0f; + + for (strandIdx = 0; strandIdx < GANON_MANT_NUM_STRANDS; strandIdx++) { + Matrix_Push(); + + // Calculate root positions for chosen endpoints + strandOffset.x = sinf((strandIdx * M_PI) / (GANON_MANT_NUM_STRANDS - 1)) * diffHalfDist; + strandOffset.y = 0; + strandOffset.z = -cosf((strandIdx * M_PI) / (GANON_MANT_NUM_STRANDS - 1)) * diffHalfDist; + Matrix_MultVec3f(&strandOffset, &strandDivPos); + this->strands[strandIdx].root.x = midpoint.x + strandDivPos.x; + this->strands[strandIdx].root.y = midpoint.y + strandDivPos.y; + this->strands[strandIdx].root.z = midpoint.z + strandDivPos.z; + + nextStrandIdx = strandIdx + 1; + if (nextStrandIdx >= GANON_MANT_NUM_STRANDS) { + nextStrandIdx = strandIdx - 1; + } + + // Update the strand joints + EnGanonMant_UpdateStrand(globalCtx, this, &this->strands[strandIdx].root, this->strands[strandIdx].joints, + this->strands[nextStrandIdx].joints, this->strands[strandIdx].rotations, + this->strands[strandIdx].velocities, strandIdx); + Matrix_Pop(); + } + EnGanonMant_UpdateVertices(this); + this->updateHasRun = false; + } + + EnGanonMant_DrawCloak(globalCtx, this); +} diff --git a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.h b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.h index 0d12ac22ae..4a563fae9e 100644 --- a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.h +++ b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.h @@ -6,34 +6,37 @@ struct EnGanonMant; +#define GANON_MANT_NUM_JOINTS 12 +#define GANON_MANT_NUM_STRANDS 12 + typedef struct { - /* 0x000 */ Vec3f unk_00; // 14C - /* 0x00C */ Vec3f unk_0C[12]; // 158 - /* 0x090 */ Vec3f unk_90[12]; // 1E8 - /* 0x120 */ Vec3f unk_120[12]; // 278 - /* 0x1B0 */ u8 unk_1B0[12]; // 308 -} MantSub14C; // size = 0x1C8 + /* 0x000 */ Vec3f root; // root position along the collar + /* 0x00C */ Vec3f joints[GANON_MANT_NUM_JOINTS]; // "joints" for deforming the cloak, stemming from root and propagating down the cloak + /* 0x090 */ Vec3f rotations[GANON_MANT_NUM_JOINTS]; // normal vector rotations, x and y only + /* 0x120 */ Vec3f velocities[GANON_MANT_NUM_JOINTS]; // velocities calculated as differences in position from last update + /* 0x1B0 */ u8 torn[GANON_MANT_NUM_JOINTS]; // guess: whether the joint is torn? +} MantStrand; // size = 0x1C8 typedef struct EnGanonMant { /* 0x0000 */ Actor actor; - /* 0x014C */ MantSub14C unk_14C[12]; - /* 0x16AC */ f32 unk_16AC; - /* 0x16B0 */ f32 unk_16B0; - /* 0x16B4 */ f32 unk_16B4; - /* 0x16B8 */ f32 unk_16B8; - /* 0x16BC */ f32 unk_16BC; - /* 0x16C0 */ f32 unk_16C0; - /* 0x16C4 */ f32 unk_16C4; - /* 0x16C8 */ f32 unk_16C8; - /* 0x16CC */ char unk_16CC[0x4]; - /* 0x16D0 */ f32 unk_16D0; - /* 0x16D4 */ Vec3f unk_16D4; - /* 0x16E0 */ Vec3f unk_16E0; - /* 0x16EC */ Vec3f unk_16EC; - /* 0x16F8 */ Vec3f unk_16F8; - /* 0x1704 */ u8 unk_1704; - /* 0x1705 */ u8 unk_1705; - /* 0x1706 */ u8 unk_1706; + /* 0x014C */ MantStrand strands[GANON_MANT_NUM_STRANDS]; + /* 0x16AC */ f32 minY; // minimum Y value possible for joints, for emulating collision with a floor + /* 0x16B0 */ f32 backPush; // larger values push the cloak further outwards, negative is away from the actor + /* 0x16B4 */ f32 backSwayMagnitude; // magnitude of backwards/forwards swaying + /* 0x16B8 */ f32 sideSwayMagnitude; // magnitude of sideways swaying + /* 0x16BC */ f32 attachRightArmTimer; // timer for the duration of which the cloak is attached to right forearm and left shoulder + /* 0x16C0 */ f32 attachLeftArmTimer; // timer for the duration of which the cloak is attached to left forearm and right shoulder + /* 0x16C4 */ f32 attachShouldersTimer; // timer for the duration of which the cloak is attached to both shoulders + /* 0x16C8 */ f32 gravity; // strand gravity + /* 0x16CC */ f32 baseYaw; + /* 0x16D0 */ f32 minDist; // closest distance the cloak can get to the attached actor without being pushed away + /* 0x16D4 */ Vec3f rightForearmPos; + /* 0x16E0 */ Vec3f leftForearmPos; + /* 0x16EC */ Vec3f rightShoulderPos; + /* 0x16F8 */ Vec3f leftShoulderPos; + /* 0x1704 */ u8 tearTimer; // tear the cloak for x many frames + /* 0x1705 */ u8 updateHasRun; + /* 0x1706 */ u8 frameTimer; } EnGanonMant; // size = 0x1708 extern const ActorInit En_Ganon_Mant_InitVars; diff --git a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c index 61843be28d..a7ea06ad89 100644 --- a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c +++ b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c @@ -837,12 +837,12 @@ void func_80B2CC1C(GlobalContext* globalCtx, EnViewer* this) { if (this->actor.params >> 8 == 5) { if (1) {} - sGanonCape->unk_16B0 = BREG(54) / 10.0f; - sGanonCape->unk_16B4 = (BREG(60) + 25) / 100.0f; - sGanonCape->unk_16B8 = (BREG(55) - 45) / 10.0f; - sGanonCape->unk_16AC = -10000.0f; - sGanonCape->unk_16D0 = 0.0f; - sGanonCape->unk_16C8 = (BREG(67) - 10) / 10.0f; + sGanonCape->backPush = BREG(54) / 10.0f; + sGanonCape->backSwayMagnitude = (BREG(60) + 25) / 100.0f; + sGanonCape->sideSwayMagnitude = (BREG(55) - 45) / 10.0f; + sGanonCape->minY = -10000.0f; + sGanonCape->minDist = 0.0f; + sGanonCape->gravity = (BREG(67) - 10) / 10.0f; vec1.x = KREG(16) - 13.0f; vec1.y = KREG(17) + 3.0f + Math_SinS(D_80B2CFEC) * KREG(20); vec1.z = KREG(18) - 10.0f; @@ -850,13 +850,13 @@ void func_80B2CC1C(GlobalContext* globalCtx, EnViewer* this) { Matrix_RotateY((this->actor.shape.rot.y / (f32)0x8000) * M_PI, MTXMODE_NEW); Matrix_MultVec3f(&vec1, &vec2); - sGanonCape->unk_16D4.x = D_80B2D448.x + vec2.x; - sGanonCape->unk_16D4.y = D_80B2D448.y + vec2.y; - sGanonCape->unk_16D4.z = D_80B2D448.z + vec2.z; + sGanonCape->rightForearmPos.x = D_80B2D448.x + vec2.x; + sGanonCape->rightForearmPos.y = D_80B2D448.y + vec2.y; + sGanonCape->rightForearmPos.z = D_80B2D448.z + vec2.z; vec1.x = -(KREG(16) - 13.0f); Matrix_MultVec3f(&vec1, &vec2); - sGanonCape->unk_16E0.x = D_80B2D448.x + vec2.x; - sGanonCape->unk_16E0.y = D_80B2D448.y + vec2.y; - sGanonCape->unk_16E0.z = D_80B2D448.z + vec2.z; + sGanonCape->leftForearmPos.x = D_80B2D448.x + vec2.x; + sGanonCape->leftForearmPos.y = D_80B2D448.y + vec2.y; + sGanonCape->leftForearmPos.z = D_80B2D448.z + vec2.z; } } From 37871e555fde2e781c9ab8fc50e538e30cd623c6 Mon Sep 17 00:00:00 2001 From: zelda2774 <69368340+zelda2774@users.noreply.github.com> Date: Mon, 30 Aug 2021 02:51:57 +0200 Subject: [PATCH 3/6] Match func_800E4590 (#922) Co-authored-by: zelda2774 --- .../code/audio_load/func_800E4590.s | 119 ------------------ include/z64audio.h | 13 +- src/code/audio_heap.c | 12 +- src/code/audio_load.c | 112 ++++++++--------- 4 files changed, 65 insertions(+), 191 deletions(-) delete mode 100644 asm/non_matchings/code/audio_load/func_800E4590.s diff --git a/asm/non_matchings/code/audio_load/func_800E4590.s b/asm/non_matchings/code/audio_load/func_800E4590.s deleted file mode 100644 index 34541f1f06..0000000000 --- a/asm/non_matchings/code/audio_load/func_800E4590.s +++ /dev/null @@ -1,119 +0,0 @@ -glabel func_800E4590 -/* B5B730 800E4590 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017 -/* B5B734 800E4594 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80 -/* B5B738 800E4598 8CEE176C */ lw $t6, 0x176c($a3) -/* B5B73C 800E459C 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* B5B740 800E45A0 AFBF002C */ sw $ra, 0x2c($sp) -/* B5B744 800E45A4 19C00061 */ blez $t6, .L800E472C -/* B5B748 800E45A8 AFB00028 */ sw $s0, 0x28($sp) -/* B5B74C 800E45AC 1080000B */ beqz $a0, .L800E45DC -/* B5B750 800E45B0 27A5004C */ addiu $a1, $sp, 0x4c -/* B5B754 800E45B4 3C048017 */ lui $a0, %hi(gAudioContext+0x1e78) # $a0, 0x8017 -/* B5B758 800E45B8 24840FF8 */ addiu $a0, %lo(gAudioContext+0x1e78) # addiu $a0, $a0, 0xff8 -/* B5B75C 800E45BC 27A5004C */ addiu $a1, $sp, 0x4c -/* B5B760 800E45C0 0C000CA0 */ jal osRecvMesg -/* B5B764 800E45C4 00003025 */ move $a2, $zero -/* B5B768 800E45C8 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017 -/* B5B76C 800E45CC 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80 -/* B5B770 800E45D0 ACE0176C */ sw $zero, 0x176c($a3) -/* B5B774 800E45D4 10000056 */ b .L800E4730 -/* B5B778 800E45D8 00001025 */ move $v0, $zero -.L800E45DC: -/* B5B77C 800E45DC 3C048017 */ lui $a0, %hi(gAudioContext+0x1e78) # $a0, 0x8017 -/* B5B780 800E45E0 24840FF8 */ addiu $a0, %lo(gAudioContext+0x1e78) # addiu $a0, $a0, 0xff8 -/* B5B784 800E45E4 0C000CA0 */ jal osRecvMesg -/* B5B788 800E45E8 00003025 */ move $a2, $zero -/* B5B78C 800E45EC 3C078017 */ lui $a3, %hi(gAudioContext) # $a3, 0x8017 -/* B5B790 800E45F0 2401FFFF */ li $at, -1 -/* B5B794 800E45F4 14410003 */ bne $v0, $at, .L800E4604 -/* B5B798 800E45F8 24E7F180 */ addiu $a3, %lo(gAudioContext) # addiu $a3, $a3, -0xe80 -/* B5B79C 800E45FC 1000004C */ b .L800E4730 -/* B5B7A0 800E4600 00001025 */ move $v0, $zero -.L800E4604: -/* B5B7A4 800E4604 8FA4004C */ lw $a0, 0x4c($sp) -/* B5B7A8 800E4608 24090001 */ li $t1, 1 -/* B5B7AC 800E460C 240B0014 */ li $t3, 20 -/* B5B7B0 800E4610 00042602 */ srl $a0, $a0, 0x18 -/* B5B7B4 800E4614 00047880 */ sll $t7, $a0, 2 -/* B5B7B8 800E4618 01E47821 */ addu $t7, $t7, $a0 -/* B5B7BC 800E461C 000F7880 */ sll $t7, $t7, 2 -/* B5B7C0 800E4620 00EF1021 */ addu $v0, $a3, $t7 -/* B5B7C4 800E4624 8C580D78 */ lw $t8, 0xd78($v0) -/* B5B7C8 800E4628 24460D68 */ addiu $a2, $v0, 0xd68 -/* B5B7CC 800E462C 00C01825 */ move $v1, $a2 -/* B5B7D0 800E4630 17000014 */ bnez $t8, .L800E4684 -/* B5B7D4 800E4634 AFA4004C */ sw $a0, 0x4c($sp) -/* B5B7D8 800E4638 8CC20004 */ lw $v0, 4($a2) -/* B5B7DC 800E463C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff -/* B5B7E0 800E4640 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* B5B7E4 800E4644 8C440000 */ lw $a0, ($v0) -/* B5B7E8 800E4648 8C590004 */ lw $t9, 4($v0) -/* B5B7EC 800E464C 8CD80000 */ lw $t8, ($a2) -/* B5B7F0 800E4650 00816024 */ and $t4, $a0, $at -/* B5B7F4 800E4654 00047100 */ sll $t6, $a0, 4 -/* B5B7F8 800E4658 000E7F82 */ srl $t7, $t6, 0x1e -/* B5B7FC 800E465C 032C6821 */ addu $t5, $t9, $t4 -/* B5B800 800E4660 01AF2821 */ addu $a1, $t5, $t7 -/* B5B804 800E4664 54B80007 */ bnel $a1, $t8, .L800E4684 -/* B5B808 800E4668 AC690010 */ sw $t1, 0x10($v1) -/* B5B80C 800E466C 904C0000 */ lbu $t4, ($v0) -/* B5B810 800E4670 8CD90008 */ lw $t9, 8($a2) -/* B5B814 800E4674 318EFFF3 */ andi $t6, $t4, 0xfff3 -/* B5B818 800E4678 A04E0000 */ sb $t6, ($v0) -/* B5B81C 800E467C AC590004 */ sw $t9, 4($v0) -/* B5B820 800E4680 AC690010 */ sw $t1, 0x10($v1) -.L800E4684: -/* B5B824 800E4684 24090001 */ li $t1, 1 -.L800E4688: -/* B5B828 800E4688 8CE2176C */ lw $v0, 0x176c($a3) -/* B5B82C 800E468C 18400027 */ blez $v0, .L800E472C -/* B5B830 800E4690 2458FFFF */ addiu $t8, $v0, -1 -/* B5B834 800E4694 004B0019 */ multu $v0, $t3 -/* B5B838 800E4698 00006812 */ mflo $t5 -/* B5B83C 800E469C 00ED1821 */ addu $v1, $a3, $t5 -/* B5B840 800E46A0 8C6F0D64 */ lw $t7, 0xd64($v1) -/* B5B844 800E46A4 24630D54 */ addiu $v1, $v1, 0xd54 -/* B5B848 800E46A8 552F0004 */ bnel $t1, $t7, .L800E46BC -/* B5B84C 800E46AC 8C620004 */ lw $v0, 4($v1) -/* B5B850 800E46B0 1000FFF5 */ b .L800E4688 -/* B5B854 800E46B4 ACF8176C */ sw $t8, 0x176c($a3) -/* B5B858 800E46B8 8C620004 */ lw $v0, 4($v1) -.L800E46BC: -/* B5B85C 800E46BC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff -/* B5B860 800E46C0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* B5B864 800E46C4 8C440000 */ lw $a0, ($v0) -/* B5B868 800E46C8 8C500004 */ lw $s0, 4($v0) -/* B5B86C 800E46CC 8C6C0000 */ lw $t4, ($v1) -/* B5B870 800E46D0 00813024 */ and $a2, $a0, $at -/* B5B874 800E46D4 00044100 */ sll $t0, $a0, 4 -/* B5B878 800E46D8 00084782 */ srl $t0, $t0, 0x1e -/* B5B87C 800E46DC 0206C821 */ addu $t9, $s0, $a2 -/* B5B880 800E46E0 00065302 */ srl $t2, $a2, 0xc -/* B5B884 800E46E4 03282821 */ addu $a1, $t9, $t0 -/* B5B888 800E46E8 10AC0006 */ beq $a1, $t4, .L800E4704 -/* B5B88C 800E46EC 254A0001 */ addiu $t2, $t2, 1 -/* B5B890 800E46F0 AC690010 */ sw $t1, 0x10($v1) -/* B5B894 800E46F4 8CEE176C */ lw $t6, 0x176c($a3) -/* B5B898 800E46F8 25CDFFFF */ addiu $t5, $t6, -1 -/* B5B89C 800E46FC 1000FFE2 */ b .L800E4688 -/* B5B8A0 800E4700 ACED176C */ sw $t5, 0x176c($a3) -.L800E4704: -/* B5B8A4 800E4704 8C650008 */ lw $a1, 8($v1) -/* B5B8A8 800E4708 3C0F8017 */ lui $t7, %hi(gAudioContext+0x1e78) # $t7, 0x8017 -/* B5B8AC 800E470C 25EF0FF8 */ addiu $t7, %lo(gAudioContext+0x1e78) # addiu $t7, $t7, 0xff8 -/* B5B8B0 800E4710 AFAF0014 */ sw $t7, 0x14($sp) -/* B5B8B4 800E4714 AFAA0010 */ sw $t2, 0x10($sp) -/* B5B8B8 800E4718 8C78000C */ lw $t8, 0xc($v1) -/* B5B8BC 800E471C 02002025 */ move $a0, $s0 -/* B5B8C0 800E4720 01003825 */ move $a3, $t0 -/* B5B8C4 800E4724 0C038EB2 */ jal Audio_InitAsyncReq -/* B5B8C8 800E4728 AFB80018 */ sw $t8, 0x18($sp) -.L800E472C: -/* B5B8CC 800E472C 24020001 */ li $v0, 1 -.L800E4730: -/* B5B8D0 800E4730 8FBF002C */ lw $ra, 0x2c($sp) -/* B5B8D4 800E4734 8FB00028 */ lw $s0, 0x28($sp) -/* B5B8D8 800E4738 27BD0058 */ addiu $sp, $sp, 0x58 -/* B5B8DC 800E473C 03E00008 */ jr $ra -/* B5B8E0 800E4740 00000000 */ nop - diff --git a/include/z64audio.h b/include/z64audio.h index a11fa17d48..af758b55e6 100644 --- a/include/z64audio.h +++ b/include/z64audio.h @@ -698,11 +698,11 @@ typedef struct { } ManyStruct_800E0E0C_2; typedef struct { - /* 0x00 */ u8* unk_00; + /* 0x00 */ u32 endAndMediumKey; /* 0x04 */ AudioBankSample* sample; - /* 0x08 */ u8* unk_08; - /* 0x0C */ s32 pad; - /* 0x10 */ s32 unk_10; + /* 0x08 */ u8* ramAddr; + /* 0x0C */ u32 encodedInfo; + /* 0x10 */ s32 isFree; } AudioStruct0D68; // size = 0x14 typedef struct { @@ -882,9 +882,8 @@ typedef struct { /* 0x0014 */ NoteSubEu* noteSubsEu; /* 0x0018 */ SynthesisReverb synthesisReverbs[4]; /* 0x0B38 */ char unk_0B38[0x30]; - /* 0x0B68 */ AudioBankSample* unk_B68[1]; // unknown size. - /* 0x0B6C */ char unk_B6C[0x1E8]; - /* 0x0D54 */ AudioStruct0D68 unk_0D54[129]; // guessing at size + /* 0x0B68 */ AudioBankSample* unk_B68[128]; + /* 0x0D68 */ AudioStruct0D68 unk_0D68[128]; /* 0x1768 */ s32 unk_1768; /* 0x176C */ s32 unk_176C; /* 0x1770 */ AsyncLoadReq asyncReqs[0x10]; diff --git a/src/code/audio_heap.c b/src/code/audio_heap.c index 7048da9076..8c4ea64f75 100644 --- a/src/code/audio_heap.c +++ b/src/code/audio_heap.c @@ -1047,7 +1047,7 @@ UnkHeapEntry* func_800E06CC(u32 size) { s32 index; s32 i; UnkHeapEntry* ret; - AudioStruct0D68* thing; + AudioStruct0D68* item; UnkPool* unkPool; u8* start; u8* end; @@ -1070,10 +1070,10 @@ UnkHeapEntry* func_800E06CC(u32 size) { index = -1; for (i = 0; i < gAudioContext.unk_176C; i++) { - thing = &gAudioContext.unk_0D54[i + 1]; - if (thing->unk_10 == 0) { - start = thing->unk_08; - end = thing->unk_08 + thing->sample->size - 1; + item = &gAudioContext.unk_0D68[i]; + if (item->isFree == false) { + start = item->ramAddr; + end = item->ramAddr + item->sample->size - 1; if (end < allocBefore && start < allocBefore) { continue; @@ -1083,7 +1083,7 @@ UnkHeapEntry* func_800E06CC(u32 size) { } // Overlap - thing->unk_10 = 1; + item->isFree = true; } } diff --git a/src/code/audio_load.c b/src/code/audio_load.c index 3dd1fa958c..62ffc50a56 100644 --- a/src/code/audio_load.c +++ b/src/code/audio_load.c @@ -25,9 +25,9 @@ void func_800E2BCC(u32 devAddr, u8* addr, u32 size, s32 handleType); s32 Audio_DMA(OSIoMesg* mesg, u32 priority, s32 direction, u32 devAddr, void* ramAddr, u32 size, OSMesgQueue* reqQueue, s32 handleType, const char* dmaFuncType); void* Audio_AsyncLoadInner(s32 tableType, s32 arg1, s32 arg2, s32 arg3, OSMesgQueue* retQueue); -AsyncLoadReq* func_800E3A44(s32 arg0, s32 devAddr, void* ramAddr, s32 size, s32 arg4, s32 nChunks, +AsyncLoadReq* func_800E3A44(s32 arg0, u32 devAddr, void* ramAddr, s32 size, s32 arg4, s32 nChunks, OSMesgQueue* retQueue, s32 retMsg); -AsyncLoadReq* Audio_InitAsyncReq(s32 devAddr, void* ramAddr, s32 size, s32 arg3, s32 nChunks, OSMesgQueue* retQueue, +AsyncLoadReq* Audio_InitAsyncReq(u32 devAddr, void* ramAddr, u32 size, s32 arg3, s32 nChunks, OSMesgQueue* retQueue, s32 retMsg); void func_800E3FB4(AsyncLoadReq* req, u32 size); void func_800E4044(u32 devAddr, void* ramAddr, u32 size, s16 arg3); @@ -649,18 +649,18 @@ void* Audio_GetLoadTable(s32 tableType) { #ifdef NON_MATCHING void func_800E283C(s32 arg0, unk_ldr* arg1, RelocInfo* arg2) { - s32 sp50; s32 temp_v1_3; - s32 temp_s5; - s32 temp_a3; void* reloc; - s32 i; Drum* drum; AudioBankSound* sfx; Instrument* inst; Instrument** end; Instrument** instIt; Drum** drums; + s32 temp_a3; + s32 sp50; + s32 temp_s5; + s32 i; temp_a3 = gAudioContext.ctlEntries[arg0].numDrums; sp50 = gAudioContext.ctlEntries[arg0].numInstruments; @@ -809,12 +809,12 @@ void func_800E2CC0(u32 tableType, u32 bankId) { } void* Audio_AsyncLoadInner(s32 tableType, s32 arg1, s32 arg2, s32 arg3, OSMesgQueue* retQueue) { - u32 sp54; + u32 size; AudioTable* sp50; void* sp4C; s32 sp48; s8 temp_a1; - u32 sp40; + u32 devAddr; s32 sp3C; u32 temp_v0; u32 sp34; @@ -844,35 +844,35 @@ void* Audio_AsyncLoadInner(s32 tableType, s32 arg1, s32 arg2, s32 arg3, OSMesgQu osSendMesg(retQueue, arg3 << 0x18, 0); } else { sp50 = Audio_GetLoadTable(tableType); - sp54 = sp50->entries[sp34].size; - sp54 = ALIGN16(sp54); + size = sp50->entries[sp34].size; + size = ALIGN16(size); sp48 = sp50->entries[arg1].unk_08; temp_a1 = sp50->entries[arg1].unk_09; - sp40 = sp50->entries[sp34].romAddr; + devAddr = sp50->entries[sp34].romAddr; sp3C = 2; switch (temp_a1) { case 0: - sp4C = func_800E0540(tableType, sp34, sp54); + sp4C = func_800E0540(tableType, sp34, size); if (sp4C == NULL) { return sp4C; } sp3C = 5; break; case 1: - sp4C = Audio_AllocBankOrSeq(tableType, sp54, 1, sp34); + sp4C = Audio_AllocBankOrSeq(tableType, size, 1, sp34); if (sp4C == NULL) { return sp4C; } break; case 2: - sp4C = Audio_AllocBankOrSeq(tableType, sp54, 0, sp34); + sp4C = Audio_AllocBankOrSeq(tableType, size, 0, sp34); if (sp4C == NULL) { return sp4C; } break; case 3: case 4: - sp4C = Audio_AllocBankOrSeq(tableType, sp54, 2, sp34); + sp4C = Audio_AllocBankOrSeq(tableType, size, 2, sp34); if (sp4C == NULL) { return sp4C; } @@ -880,10 +880,10 @@ void* Audio_AsyncLoadInner(s32 tableType, s32 arg1, s32 arg2, s32 arg3, OSMesgQu } if (sp48 == 1) { - func_800E3A44((s16)sp50->header.unk_02, sp40, sp4C, sp54, sp48, arg2, retQueue, + func_800E3A44((s16)sp50->header.unk_02, devAddr, sp4C, size, sp48, arg2, retQueue, (arg3 << 0x18) | (tableType << 0x10) | (arg1 << 8) | sp3C); } else { - Audio_InitAsyncReq(sp40, sp4C, sp54, sp48, arg2, retQueue, MK_ASYNC_MSG(arg3, tableType, sp34, sp3C)); + Audio_InitAsyncReq(devAddr, sp4C, size, sp48, arg2, retQueue, MK_ASYNC_MSG(arg3, tableType, sp34, sp3C)); } sp3C = 1; } @@ -1238,7 +1238,7 @@ void Audio_AsyncLoadReqInit(void) { } } -AsyncLoadReq* func_800E3A44(s32 arg0, s32 devAddr, void* ramAddr, s32 size, s32 arg4, s32 nChunks, +AsyncLoadReq* func_800E3A44(s32 arg0, u32 devAddr, void* ramAddr, s32 size, s32 arg4, s32 nChunks, OSMesgQueue* retQueue, s32 retMsg) { AsyncLoadReq* loadReq; @@ -1253,7 +1253,7 @@ AsyncLoadReq* func_800E3A44(s32 arg0, s32 devAddr, void* ramAddr, s32 size, s32 return loadReq; } -AsyncLoadReq* Audio_InitAsyncReq(s32 devAddr, void* ramAddr, s32 size, s32 arg3, s32 nChunks, OSMesgQueue* retQueue, +AsyncLoadReq* Audio_InitAsyncReq(u32 devAddr, void* ramAddr, u32 size, s32 arg3, s32 nChunks, OSMesgQueue* retQueue, s32 retMsg) { AsyncLoadReq* loadReq; s32 i; @@ -1281,7 +1281,7 @@ AsyncLoadReq* Audio_InitAsyncReq(s32 devAddr, void* ramAddr, s32 size, s32 arg3, } else if (nChunks == 1) { loadReq->chunkSize = size; } else { - loadReq->chunkSize = ((size / nChunks) + 0xFF) & ~0xFF; + loadReq->chunkSize = (((s32)size / nChunks) + 0xFF) & ~0xFF; if (loadReq->chunkSize < 0x100) { loadReq->chunkSize = 0x100; } @@ -1454,68 +1454,62 @@ void Audio_SampleReloc(AudioBankSound* sound, u32 arg1, RelocInfo* arg2) { #pragma GLOBAL_ASM("asm/non_matchings/code/audio_load/func_800E4198.s") -#ifdef NON_MATCHING s32 func_800E4590(s32 resetStatus) { + AudioBankSample* sample; + AudioStruct0D68* item; u32 sp4C; - AudioBankSample* temp_v0_3; - AudioStruct0D68* temp_v1_2; - s32 temp_a0_2; - s32 temp_v0_2; - u32 temp_a0; - u32 temp_a0_3; - u32 temp_a2_2; - u32 temp_t0; - u8* temp_s0; - AudioStruct0D68* temp_a2; - AudioBankSample* temp_v0; - AudioStruct0D68* temp_v1; + u32 key; + u32 unk; + s32 pad; if (gAudioContext.unk_176C > 0) { if (resetStatus != 0) { - osRecvMesg(&gAudioContext.unk_1E78, &sp4C, 0); + osRecvMesg(&gAudioContext.unk_1E78, (OSMesg*)&sp4C, OS_MESG_NOBLOCK); gAudioContext.unk_176C = 0; return 0; } - if (osRecvMesg(&gAudioContext.unk_1E78, &sp4C, 0) == -1) { + if (osRecvMesg(&gAudioContext.unk_1E78, (OSMesg*)&sp4C, OS_MESG_NOBLOCK) == -1) { return 0; } - sp4C >>= 0x18; + sp4C >>= 24; + item = &gAudioContext.unk_0D68[sp4C]; - if (gAudioContext.unk_0D54[sp4C + 1].unk_10 == 0) { - if ((temp_v0_3->sampleAddr + temp_v0_3->size + temp_v0_3->bits2) == - gAudioContext.unk_0D54[sp4C + 1].unk_00) { - temp_v0_3->bits2 = 0; - temp_v0_3->sampleAddr = temp_v0_3->loop; + if (item->isFree == false) { + sample = item->sample; + key = (u32)sample->sampleAddr + sample->size + sample->bits2; + if (key == item->endAndMediumKey) { + sample->sampleAddr = item->ramAddr; + sample->bits2 = 0; } - gAudioContext.unk_0D54[sp4C + 1].unk_10 = 1; + item->isFree = true; } - while (gAudioContext.unk_176C > 0) { - if (gAudioContext.unk_0D54[gAudioContext.unk_176C].unk_10 == 1) { + for (;;) { + if (gAudioContext.unk_176C <= 0) { + break; + } + item = &gAudioContext.unk_0D68[gAudioContext.unk_176C - 1]; + if (item->isFree == true) { gAudioContext.unk_176C--; continue; + } + + sample = item->sample; + unk = (sample->size >> 12) + 1; + key = (u32)sample->sampleAddr + sample->size + sample->bits2; + if (key != item->endAndMediumKey) { + item->isFree = true; + gAudioContext.unk_176C--; } else { - temp_v0_3 = gAudioContext.unk_0D54[gAudioContext.unk_176C].sample; - if (&temp_v0_3->sampleAddr[temp_v0_3->size + temp_v0_3->bits2] != - gAudioContext.unk_0D54[gAudioContext.unk_176C].unk_00) { - gAudioContext.unk_0D54[gAudioContext.unk_176C].unk_10 = 1; - gAudioContext.unk_176C--; - continue; - } else { - Audio_InitAsyncReq(temp_v0_3->sampleAddr, gAudioContext.unk_0D54[gAudioContext.unk_176C].unk_08, - temp_v0_3->size, temp_v0_3->bits2, (temp_a2_2 >> 0xC) + 1, - &gAudioContext.unk_1E78, gAudioContext.unk_0D54[gAudioContext.unk_176C].pad); - break; - } + Audio_InitAsyncReq((u32)sample->sampleAddr, item->ramAddr, sample->size, sample->bits2, unk, + &gAudioContext.unk_1E78, item->encodedInfo); + break; } } } return 1; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_load/func_800E4590.s") -#endif s32 func_800E4744(AudioBankSample* sample, s32 sampleCnt, AudioBankSample** sampleList) { s32 i; From ead672acc8498c5843ff7125c3ebec56d159d0ce Mon Sep 17 00:00:00 2001 From: Roman971 <32455037+Roman971@users.noreply.github.com> Date: Mon, 30 Aug 2021 03:03:20 +0200 Subject: [PATCH 4/6] Match the remaining function in Boss_Tw (#930) --- .../ovl_Boss_Tw/BossTw_TwinrovaDeathCS.s | 917 ------------------ data/overlays/actors/z_boss_tw.reloc.s | 13 - spec | 4 - src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c | 34 +- 4 files changed, 18 insertions(+), 950 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_Boss_Tw/BossTw_TwinrovaDeathCS.s delete mode 100644 data/overlays/actors/z_boss_tw.reloc.s diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Tw/BossTw_TwinrovaDeathCS.s b/asm/non_matchings/overlays/actors/ovl_Boss_Tw/BossTw_TwinrovaDeathCS.s deleted file mode 100644 index adf2f85a1a..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Tw/BossTw_TwinrovaDeathCS.s +++ /dev/null @@ -1,917 +0,0 @@ -.late_rodata -glabel D_8094AFF8 - .float 1.99000000954 - -glabel jtbl_8094AFFC -.word L8093FDC0 -.word L8093FE58 -.word L809400CC -.word L809402FC -.word L80940690 -glabel D_8094B010 - .word 0x43838000 - -.text -glabel BossTw_TwinrovaDeathCS -/* 06D14 8093F9E4 27BDFF20 */ addiu $sp, $sp, 0xFF20 ## $sp = FFFFFF20 -/* 06D18 8093F9E8 AFB20044 */ sw $s2, 0x0044($sp) -/* 06D1C 8093F9EC AFBF004C */ sw $ra, 0x004C($sp) -/* 06D20 8093F9F0 AFB30048 */ sw $s3, 0x0048($sp) -/* 06D24 8093F9F4 AFB10040 */ sw $s1, 0x0040($sp) -/* 06D28 8093F9F8 AFB0003C */ sw $s0, 0x003C($sp) -/* 06D2C 8093F9FC F7B40030 */ sdc1 $f20, 0x0030($sp) -/* 06D30 8093FA00 8CAE1C44 */ lw $t6, 0x1C44($a1) ## 00001C44 -/* 06D34 8093FA04 00809025 */ or $s2, $a0, $zero ## $s2 = 00000000 -/* 06D38 8093FA08 00A09825 */ or $s3, $a1, $zero ## $s3 = 00000000 -/* 06D3C 8093FA0C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 06D40 8093FA10 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 06D44 8093FA14 0C030129 */ jal Gameplay_GetCamera -/* 06D48 8093FA18 AFAE00CC */ sw $t6, 0x00CC($sp) -/* 06D4C 8093FA1C 26500568 */ addiu $s0, $s2, 0x0568 ## $s0 = 00000568 -/* 06D50 8093FA20 AFA200C8 */ sw $v0, 0x00C8($sp) -/* 06D54 8093FA24 0C02927F */ jal SkelAnime_Update - -/* 06D58 8093FA28 02002025 */ or $a0, $s0, $zero ## $a0 = 00000568 -/* 06D5C 8093FA2C 864F0160 */ lh $t7, 0x0160($s2) ## 00000160 -/* 06D60 8093FA30 240800FF */ addiu $t0, $zero, 0x00FF ## $t0 = 000000FF -/* 06D64 8093FA34 264401B4 */ addiu $a0, $s2, 0x01B4 ## $a0 = 000001B4 -/* 06D68 8093FA38 25F80014 */ addiu $t8, $t7, 0x0014 ## $t8 = 00000014 -/* 06D6C 8093FA3C A6580160 */ sh $t8, 0x0160($s2) ## 00000160 -/* 06D70 8093FA40 86590160 */ lh $t9, 0x0160($s2) ## 00000160 -/* 06D74 8093FA44 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000 -/* 06D78 8093FA48 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000 -/* 06D7C 8093FA4C 2B210100 */ slti $at, $t9, 0x0100 -/* 06D80 8093FA50 14200002 */ bne $at, $zero, .L8093FA5C -/* 06D84 8093FA54 3C073D4C */ lui $a3, 0x3D4C ## $a3 = 3D4C0000 -/* 06D88 8093FA58 A6480160 */ sh $t0, 0x0160($s2) ## 00000160 -.L8093FA5C: -/* 06D8C 8093FA5C 0C01E107 */ jal Math_ApproachF - -/* 06D90 8093FA60 34E7CCCD */ ori $a3, $a3, 0xCCCD ## $a3 = 3D4CCCCD -/* 06D94 8093FA64 86420440 */ lh $v0, 0x0440($s2) ## 00000440 -/* 06D98 8093FA68 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001 -/* 06D9C 8093FA6C A24905F8 */ sb $t1, 0x05F8($s2) ## 000005F8 -/* 06DA0 8093FA70 10400005 */ beq $v0, $zero, .L8093FA88 -/* 06DA4 8093FA74 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001 -/* 06DA8 8093FA78 504100C9 */ beql $v0, $at, .L8093FDA0 -/* 06DAC 8093FA7C 964F05FA */ lhu $t7, 0x05FA($s2) ## 000005FA -/* 06DB0 8093FA80 100000C7 */ beq $zero, $zero, .L8093FDA0 -/* 06DB4 8093FA84 964F05FA */ lhu $t7, 0x05FA($s2) ## 000005FA -.L8093FA88: -/* 06DB8 8093FA88 86420150 */ lh $v0, 0x0150($s2) ## 00000150 -/* 06DBC 8093FA8C 2401000F */ addiu $at, $zero, 0x000F ## $at = 0000000F -/* 06DC0 8093FA90 02002025 */ or $a0, $s0, $zero ## $a0 = 00000568 -/* 06DC4 8093FA94 14410005 */ bne $v0, $at, .L8093FAAC -/* 06DC8 8093FA98 3C050602 */ lui $a1, %hi(object_tw_Anim_0216DC) ## $a1 = 06020000 -/* 06DCC 8093FA9C 24A516DC */ addiu $a1, $a1, %lo(object_tw_Anim_0216DC) ## $a1 = 060216DC -/* 06DD0 8093FAA0 0C029490 */ jal Animation_MorphToPlayOnce -/* 06DD4 8093FAA4 3C06C040 */ lui $a2, 0xC040 ## $a2 = C0400000 -/* 06DD8 8093FAA8 86420150 */ lh $v0, 0x0150($s2) ## 00000150 -.L8093FAAC: -/* 06DDC 8093FAAC 2841000F */ slti $at, $v0, 0x000F -/* 06DE0 8093FAB0 14200007 */ bne $at, $zero, .L8093FAD0 -/* 06DE4 8093FAB4 26440028 */ addiu $a0, $s2, 0x0028 ## $a0 = 00000028 -/* 06DE8 8093FAB8 3C063D4C */ lui $a2, 0x3D4C ## $a2 = 3D4C0000 -/* 06DEC 8093FABC 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3D4CCCCD -/* 06DF0 8093FAC0 3C0543C8 */ lui $a1, 0x43C8 ## $a1 = 43C80000 -/* 06DF4 8093FAC4 0C01E107 */ jal Math_ApproachF - -/* 06DF8 8093FAC8 3C074120 */ lui $a3, 0x4120 ## $a3 = 41200000 -/* 06DFC 8093FACC 86420150 */ lh $v0, 0x0150($s2) ## 00000150 -.L8093FAD0: -/* 06E00 8093FAD0 28410037 */ slti $at, $v0, 0x0037 -/* 06E04 8093FAD4 142000AE */ bne $at, $zero, .L8093FD90 -/* 06E08 8093FAD8 240AFFFF */ addiu $t2, $zero, 0xFFFF ## $t2 = FFFFFFFF -/* 06E0C 8093FADC 24010037 */ addiu $at, $zero, 0x0037 ## $at = 00000037 -/* 06E10 8093FAE0 14410005 */ bne $v0, $at, .L8093FAF8 -/* 06E14 8093FAE4 240B0005 */ addiu $t3, $zero, 0x0005 ## $t3 = 00000005 -/* 06E18 8093FAE8 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00 -/* 06E1C 8093FAEC 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 06E20 8093FAF0 00330821 */ addu $at, $at, $s3 -/* 06E24 8093FAF4 E4240AFC */ swc1 $f4, 0x0AFC($at) ## 00010AFC -.L8093FAF8: -/* 06E28 8093FAF8 3C018095 */ lui $at, %hi(sEnvType) ## $at = 80950000 -/* 06E2C 8093FAFC A02AC840 */ sb $t2, %lo(sEnvType)($at) -/* 06E30 8093FB00 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 06E34 8093FB04 00330821 */ addu $at, $at, $s3 -/* 06E38 8093FB08 A02B0AE2 */ sb $t3, 0x0AE2($at) ## 00010AE2 -/* 06E3C 8093FB0C 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 06E40 8093FB10 00330821 */ addu $at, $at, $s3 -/* 06E44 8093FB14 A0200AE1 */ sb $zero, 0x0AE1($at) ## 00010AE1 -/* 06E48 8093FB18 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 06E4C 8093FB1C 34210AFC */ ori $at, $at, 0x0AFC ## $at = 00010AFC -/* 06E50 8093FB20 3C073C75 */ lui $a3, 0x3C75 ## $a3 = 3C750000 -/* 06E54 8093FB24 34E7C28F */ ori $a3, $a3, 0xC28F ## $a3 = 3C75C28F -/* 06E58 8093FB28 02612021 */ addu $a0, $s3, $at -/* 06E5C 8093FB2C 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000 -/* 06E60 8093FB30 0C01E107 */ jal Math_ApproachF - -/* 06E64 8093FB34 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000 -/* 06E68 8093FB38 3C053983 */ lui $a1, 0x3983 ## $a1 = 39830000 -/* 06E6C 8093FB3C 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -/* 06E70 8093FB40 3C073851 */ lui $a3, 0x3851 ## $a3 = 38510000 -/* 06E74 8093FB44 34E7B717 */ ori $a3, $a3, 0xB717 ## $a3 = 3851B717 -/* 06E78 8093FB48 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD -/* 06E7C 8093FB4C 34A5126E */ ori $a1, $a1, 0x126E ## $a1 = 3983126E -/* 06E80 8093FB50 0C01E107 */ jal Math_ApproachF - -/* 06E84 8093FB54 26440050 */ addiu $a0, $s2, 0x0050 ## $a0 = 00000050 -/* 06E88 8093FB58 C6400068 */ lwc1 $f0, 0x0068($s2) ## 00000068 -/* 06E8C 8093FB5C C64801B8 */ lwc1 $f8, 0x01B8($s2) ## 000001B8 -/* 06E90 8093FB60 3C014780 */ lui $at, 0x4780 ## $at = 47800000 -/* 06E94 8093FB64 4600018D */ trunc.w.s $f6, $f0 -/* 06E98 8093FB68 44816000 */ mtc1 $at, $f12 ## $f12 = 65536.00 -/* 06E9C 8093FB6C 864C00B6 */ lh $t4, 0x00B6($s2) ## 000000B6 -/* 06EA0 8093FB70 46004280 */ add.s $f10, $f8, $f0 -/* 06EA4 8093FB74 44183000 */ mfc1 $t8, $f6 -/* 06EA8 8093FB78 E64A01B8 */ swc1 $f10, 0x01B8($s2) ## 000001B8 -/* 06EAC 8093FB7C C64201B8 */ lwc1 $f2, 0x01B8($s2) ## 000001B8 -/* 06EB0 8093FB80 0198C821 */ addu $t9, $t4, $t8 -/* 06EB4 8093FB84 A65900B6 */ sh $t9, 0x00B6($s2) ## 000000B6 -/* 06EB8 8093FB88 4602603C */ c.lt.s $f12, $f2 -/* 06EBC 8093FB8C 00000000 */ nop -/* 06EC0 8093FB90 45020007 */ bc1fl .L8093FBB0 -/* 06EC4 8093FB94 26440068 */ addiu $a0, $s2, 0x0068 ## $a0 = 00000068 -/* 06EC8 8093FB98 460C1401 */ sub.s $f16, $f2, $f12 -/* 06ECC 8093FB9C 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000 -/* 06ED0 8093FBA0 24053921 */ addiu $a1, $zero, 0x3921 ## $a1 = 00003921 -/* 06ED4 8093FBA4 0C00BE0A */ jal Audio_PlayActorSound2 - -/* 06ED8 8093FBA8 E65001B8 */ swc1 $f16, 0x01B8($s2) ## 000001B8 -/* 06EDC 8093FBAC 26440068 */ addiu $a0, $s2, 0x0068 ## $a0 = 00000068 -.L8093FBB0: -/* 06EE0 8093FBB0 3C054640 */ lui $a1, 0x4640 ## $a1 = 46400000 -/* 06EE4 8093FBB4 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000 -/* 06EE8 8093FBB8 0C01E107 */ jal Math_ApproachF - -/* 06EEC 8093FBBC 3C074380 */ lui $a3, 0x4380 ## $a3 = 43800000 -/* 06EF0 8093FBC0 86480150 */ lh $t0, 0x0150($s2) ## 00000150 -/* 06EF4 8093FBC4 24010087 */ addiu $at, $zero, 0x0087 ## $at = 00000087 -/* 06EF8 8093FBC8 27A900A4 */ addiu $t1, $sp, 0x00A4 ## $t1 = FFFFFFC4 -/* 06EFC 8093FBCC 15010070 */ bne $t0, $at, .L8093FD90 -/* 06F00 8093FBD0 3C0A8095 */ lui $t2, %hi(D_8094A8E8) ## $t2 = 80950000 -/* 06F04 8093FBD4 254AA8E8 */ addiu $t2, $t2, %lo(D_8094A8E8) ## $t2 = 8094A8E8 -/* 06F08 8093FBD8 8D4D0000 */ lw $t5, 0x0000($t2) ## 8094A8E8 -/* 06F0C 8093FBDC 8D4B0004 */ lw $t3, 0x0004($t2) ## 8094A8EC -/* 06F10 8093FBE0 2404390D */ addiu $a0, $zero, 0x390D ## $a0 = 0000390D -/* 06F14 8093FBE4 AD2D0000 */ sw $t5, 0x0000($t1) ## FFFFFFC4 -/* 06F18 8093FBE8 8D4D0008 */ lw $t5, 0x0008($t2) ## 8094A8F0 -/* 06F1C 8093FBEC AD2B0004 */ sw $t3, 0x0004($t1) ## FFFFFFC8 -/* 06F20 8093FBF0 0C01E221 */ jal func_80078884 -/* 06F24 8093FBF4 AD2D0008 */ sw $t5, 0x0008($t1) ## FFFFFFCC -/* 06F28 8093FBF8 264E0024 */ addiu $t6, $s2, 0x0024 ## $t6 = 00000024 -/* 06F2C 8093FBFC AFAE0064 */ sw $t6, 0x0064($sp) -/* 06F30 8093FC00 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000 -/* 06F34 8093FC04 27B100BC */ addiu $s1, $sp, 0x00BC ## $s1 = FFFFFFDC -/* 06F38 8093FC08 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000 -.L8093FC0C: -/* 06F3C 8093FC0C 44816000 */ mtc1 $at, $f12 ## $f12 = 5.00 -/* 06F40 8093FC10 0C00CFC8 */ jal Rand_CenteredFloat - -/* 06F44 8093FC14 00000000 */ nop -/* 06F48 8093FC18 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000 -/* 06F4C 8093FC1C 44816000 */ mtc1 $at, $f12 ## $f12 = 5.00 -/* 06F50 8093FC20 0C00CFC8 */ jal Rand_CenteredFloat - -/* 06F54 8093FC24 E7A000B0 */ swc1 $f0, 0x00B0($sp) -/* 06F58 8093FC28 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000 -/* 06F5C 8093FC2C 44816000 */ mtc1 $at, $f12 ## $f12 = 5.00 -/* 06F60 8093FC30 0C00CFC8 */ jal Rand_CenteredFloat - -/* 06F64 8093FC34 E7A000B4 */ swc1 $f0, 0x00B4($sp) -/* 06F68 8093FC38 8FAF0064 */ lw $t7, 0x0064($sp) -/* 06F6C 8093FC3C E7A000B8 */ swc1 $f0, 0x00B8($sp) -/* 06F70 8093FC40 3C014000 */ lui $at, 0x4000 ## $at = 40000000 -/* 06F74 8093FC44 8DF80000 */ lw $t8, 0x0000($t7) ## 00000000 -/* 06F78 8093FC48 44816000 */ mtc1 $at, $f12 ## $f12 = 2.00 -/* 06F7C 8093FC4C AE380000 */ sw $t8, 0x0000($s1) ## FFFFFFDC -/* 06F80 8093FC50 8DEC0004 */ lw $t4, 0x0004($t7) ## 00000004 -/* 06F84 8093FC54 AE2C0004 */ sw $t4, 0x0004($s1) ## FFFFFFE0 -/* 06F88 8093FC58 8DF80008 */ lw $t8, 0x0008($t7) ## 00000008 -/* 06F8C 8093FC5C AE380008 */ sw $t8, 0x0008($s1) ## FFFFFFE4 -/* 06F90 8093FC60 C7B200BC */ lwc1 $f18, 0x00BC($sp) -/* 06F94 8093FC64 C7A400B0 */ lwc1 $f4, 0x00B0($sp) -/* 06F98 8093FC68 C7A800C0 */ lwc1 $f8, 0x00C0($sp) -/* 06F9C 8093FC6C C7AA00B4 */ lwc1 $f10, 0x00B4($sp) -/* 06FA0 8093FC70 46049180 */ add.s $f6, $f18, $f4 -/* 06FA4 8093FC74 C7B200C4 */ lwc1 $f18, 0x00C4($sp) -/* 06FA8 8093FC78 460A4400 */ add.s $f16, $f8, $f10 -/* 06FAC 8093FC7C E7A600BC */ swc1 $f6, 0x00BC($sp) -/* 06FB0 8093FC80 46009100 */ add.s $f4, $f18, $f0 -/* 06FB4 8093FC84 E7B000C0 */ swc1 $f16, 0x00C0($sp) -/* 06FB8 8093FC88 0C00CFBE */ jal Rand_ZeroFloat - -/* 06FBC 8093FC8C E7A400C4 */ swc1 $f4, 0x00C4($sp) -/* 06FC0 8093FC90 3C018095 */ lui $at, %hi(D_8094AFF8) ## $at = 80950000 -/* 06FC4 8093FC94 C42CAFF8 */ lwc1 $f12, %lo(D_8094AFF8)($at) -/* 06FC8 8093FC98 0C00CFBE */ jal Rand_ZeroFloat - -/* 06FCC 8093FC9C 46000506 */ mov.s $f20, $f0 -/* 06FD0 8093FCA0 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000 -/* 06FD4 8093FCA4 4600028D */ trunc.w.s $f10, $f0 -/* 06FD8 8093FCA8 44813000 */ mtc1 $at, $f6 ## $f6 = 5.00 -/* 06FDC 8093FCAC 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 -/* 06FE0 8093FCB0 02202825 */ or $a1, $s1, $zero ## $a1 = FFFFFFDC -/* 06FE4 8093FCB4 4606A200 */ add.s $f8, $f20, $f6 -/* 06FE8 8093FCB8 44085000 */ mfc1 $t0, $f10 -/* 06FEC 8093FCBC 27A600B0 */ addiu $a2, $sp, 0x00B0 ## $a2 = FFFFFFD0 -/* 06FF0 8093FCC0 27A700A4 */ addiu $a3, $sp, 0x00A4 ## $a3 = FFFFFFC4 -/* 06FF4 8093FCC4 E7A80010 */ swc1 $f8, 0x0010($sp) -/* 06FF8 8093FCC8 0C24E41C */ jal BossTw_AddFlameEffect -/* 06FFC 8093FCCC AFA80014 */ sw $t0, 0x0014($sp) -/* 07000 8093FCD0 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001 -/* 07004 8093FCD4 00108400 */ sll $s0, $s0, 16 -/* 07008 8093FCD8 00108403 */ sra $s0, $s0, 16 -/* 0700C 8093FCDC 2A010064 */ slti $at, $s0, 0x0064 -/* 07010 8093FCE0 5420FFCA */ bnel $at, $zero, .L8093FC0C -/* 07014 8093FCE4 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000 -/* 07018 8093FCE8 44808000 */ mtc1 $zero, $f16 ## $f16 = 0.00 -/* 0701C 8093FCEC C6520024 */ lwc1 $f18, 0x0024($s2) ## 00000024 -/* 07020 8093FCF0 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001 -/* 07024 8093FCF4 A6490440 */ sh $t1, 0x0440($s2) ## 00000440 -/* 07028 8093FCF8 A2400564 */ sb $zero, 0x0564($s2) ## 00000564 -/* 0702C 8093FCFC E6500050 */ swc1 $f16, 0x0050($s2) ## 00000050 -/* 07030 8093FD00 E7B20010 */ swc1 $f18, 0x0010($sp) -/* 07034 8093FD04 C6440028 */ lwc1 $f4, 0x0028($s2) ## 00000028 -/* 07038 8093FD08 26701C24 */ addiu $s0, $s3, 0x1C24 ## $s0 = 00001C24 -/* 0703C 8093FD0C 240A0069 */ addiu $t2, $zero, 0x0069 ## $t2 = 00000069 -/* 07040 8093FD10 E7A40014 */ swc1 $f4, 0x0014($sp) -/* 07044 8093FD14 C646002C */ lwc1 $f6, 0x002C($s2) ## 0000002C -/* 07048 8093FD18 AFAA0028 */ sw $t2, 0x0028($sp) -/* 0704C 8093FD1C AFA00024 */ sw $zero, 0x0024($sp) -/* 07050 8093FD20 AFA00020 */ sw $zero, 0x0020($sp) -/* 07054 8093FD24 AFA0001C */ sw $zero, 0x001C($sp) -/* 07058 8093FD28 02002025 */ or $a0, $s0, $zero ## $a0 = 00001C24 -/* 0705C 8093FD2C 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000 -/* 07060 8093FD30 02603025 */ or $a2, $s3, $zero ## $a2 = 00000000 -/* 07064 8093FD34 240700DC */ addiu $a3, $zero, 0x00DC ## $a3 = 000000DC -/* 07068 8093FD38 0C00C916 */ jal Actor_SpawnAsChild - -/* 0706C 8093FD3C E7A60018 */ swc1 $f6, 0x0018($sp) -/* 07070 8093FD40 C6480024 */ lwc1 $f8, 0x0024($s2) ## 00000024 -/* 07074 8093FD44 240B0068 */ addiu $t3, $zero, 0x0068 ## $t3 = 00000068 -/* 07078 8093FD48 02002025 */ or $a0, $s0, $zero ## $a0 = 00001C24 -/* 0707C 8093FD4C E7A80010 */ swc1 $f8, 0x0010($sp) -/* 07080 8093FD50 C64A0028 */ lwc1 $f10, 0x0028($s2) ## 00000028 -/* 07084 8093FD54 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000 -/* 07088 8093FD58 02603025 */ or $a2, $s3, $zero ## $a2 = 00000000 -/* 0708C 8093FD5C E7AA0014 */ swc1 $f10, 0x0014($sp) -/* 07090 8093FD60 C650002C */ lwc1 $f16, 0x002C($s2) ## 0000002C -/* 07094 8093FD64 AFAB0028 */ sw $t3, 0x0028($sp) -/* 07098 8093FD68 AFA00024 */ sw $zero, 0x0024($sp) -/* 0709C 8093FD6C AFA00020 */ sw $zero, 0x0020($sp) -/* 070A0 8093FD70 AFA0001C */ sw $zero, 0x001C($sp) -/* 070A4 8093FD74 240700DC */ addiu $a3, $zero, 0x00DC ## $a3 = 000000DC -/* 070A8 8093FD78 0C00C916 */ jal Actor_SpawnAsChild - -/* 070AC 8093FD7C E7B00018 */ swc1 $f16, 0x0018($sp) -/* 070B0 8093FD80 8E4D0004 */ lw $t5, 0x0004($s2) ## 00000004 -/* 070B4 8093FD84 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE -/* 070B8 8093FD88 01A17024 */ and $t6, $t5, $at -/* 070BC 8093FD8C AE4E0004 */ sw $t6, 0x0004($s2) ## 00000004 -.L8093FD90: -/* 070C0 8093FD90 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000 -/* 070C4 8093FD94 0C00B58B */ jal Actor_SetScale - -/* 070C8 8093FD98 8E450050 */ lw $a1, 0x0050($s2) ## 00000050 -/* 070CC 8093FD9C 964F05FA */ lhu $t7, 0x05FA($s2) ## 000005FA -.L8093FDA0: -/* 070D0 8093FDA0 2DE10005 */ sltiu $at, $t7, 0x0005 -/* 070D4 8093FDA4 1020023C */ beq $at, $zero, .L80940698 -/* 070D8 8093FDA8 000F7880 */ sll $t7, $t7, 2 -/* 070DC 8093FDAC 3C018095 */ lui $at, %hi(jtbl_8094AFFC) ## $at = 80950000 -/* 070E0 8093FDB0 002F0821 */ addu $at, $at, $t7 -/* 070E4 8093FDB4 8C2FAFFC */ lw $t7, %lo(jtbl_8094AFFC)($at) -/* 070E8 8093FDB8 01E00008 */ jr $t7 -/* 070EC 8093FDBC 00000000 */ nop -glabel L8093FDC0 -/* 070F0 8093FDC0 240C0001 */ addiu $t4, $zero, 0x0001 ## $t4 = 00000001 -/* 070F4 8093FDC4 A64C05FA */ sh $t4, 0x05FA($s2) ## 000005FA -/* 070F8 8093FDC8 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 -/* 070FC 8093FDCC 0C019148 */ jal func_80064520 -/* 07100 8093FDD0 26651D64 */ addiu $a1, $s3, 0x1D64 ## $a1 = 00001D64 -/* 07104 8093FDD4 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 -/* 07108 8093FDD8 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000 -/* 0710C 8093FDDC 0C00B7D5 */ jal func_8002DF54 -/* 07110 8093FDE0 24060008 */ addiu $a2, $zero, 0x0008 ## $a2 = 00000008 -/* 07114 8093FDE4 0C03008C */ jal Gameplay_CreateSubCamera -/* 07118 8093FDE8 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 -/* 0711C 8093FDEC A64205FC */ sh $v0, 0x05FC($s2) ## 000005FC -/* 07120 8093FDF0 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 -/* 07124 8093FDF4 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 07128 8093FDF8 0C0300C5 */ jal Gameplay_ChangeCameraStatus -/* 0712C 8093FDFC 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001 -/* 07130 8093FE00 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 -/* 07134 8093FE04 864505FC */ lh $a1, 0x05FC($s2) ## 000005FC -/* 07138 8093FE08 0C0300C5 */ jal Gameplay_ChangeCameraStatus -/* 0713C 8093FE0C 24060007 */ addiu $a2, $zero, 0x0007 ## $a2 = 00000007 -/* 07140 8093FE10 8FA300C8 */ lw $v1, 0x00C8($sp) -/* 07144 8093FE14 3C041001 */ lui $a0, 0x1001 ## $a0 = 10010000 -/* 07148 8093FE18 348400FF */ ori $a0, $a0, 0x00FF ## $a0 = 100100FF -/* 0714C 8093FE1C 8C79005C */ lw $t9, 0x005C($v1) ## 0000005C -/* 07150 8093FE20 AE590600 */ sw $t9, 0x0600($s2) ## 00000600 -/* 07154 8093FE24 8C780060 */ lw $t8, 0x0060($v1) ## 00000060 -/* 07158 8093FE28 AE580604 */ sw $t8, 0x0604($s2) ## 00000604 -/* 0715C 8093FE2C 8C790064 */ lw $t9, 0x0064($v1) ## 00000064 -/* 07160 8093FE30 AE590608 */ sw $t9, 0x0608($s2) ## 00000608 -/* 07164 8093FE34 8C690050 */ lw $t1, 0x0050($v1) ## 00000050 -/* 07168 8093FE38 AE49060C */ sw $t1, 0x060C($s2) ## 0000060C -/* 0716C 8093FE3C 8C680054 */ lw $t0, 0x0054($v1) ## 00000054 -/* 07170 8093FE40 AE480610 */ sw $t0, 0x0610($s2) ## 00000610 -/* 07174 8093FE44 8C690058 */ lw $t1, 0x0058($v1) ## 00000058 -/* 07178 8093FE48 0C03E803 */ jal Audio_QueueSeqCmd - -/* 0717C 8093FE4C AE490614 */ sw $t1, 0x0614($s2) ## 00000614 -/* 07180 8093FE50 10000212 */ beq $zero, $zero, .L8094069C -/* 07184 8093FE54 864505FC */ lh $a1, 0x05FC($s2) ## 000005FC -glabel L8093FE58 -/* 07188 8093FE58 0C01DE1C */ jal Math_SinS - ## sins? -/* 0718C 8093FE5C 86440032 */ lh $a0, 0x0032($s2) ## 00000032 -/* 07190 8093FE60 3C014348 */ lui $at, 0x4348 ## $at = 43480000 -/* 07194 8093FE64 44819000 */ mtc1 $at, $f18 ## $f18 = 200.00 -/* 07198 8093FE68 00000000 */ nop -/* 0719C 8093FE6C 46120102 */ mul.s $f4, $f0, $f18 -/* 071A0 8093FE70 E7A400D0 */ swc1 $f4, 0x00D0($sp) -/* 071A4 8093FE74 0C01DE0D */ jal Math_CosS - ## coss? -/* 071A8 8093FE78 86440032 */ lh $a0, 0x0032($s2) ## 00000032 -/* 071AC 8093FE7C 3C014248 */ lui $at, 0x4248 ## $at = 42480000 -/* 071B0 8093FE80 4481A000 */ mtc1 $at, $f20 ## $f20 = 50.00 -/* 071B4 8093FE84 3C014348 */ lui $at, 0x4348 ## $at = 43480000 -/* 071B8 8093FE88 44813000 */ mtc1 $at, $f6 ## $f6 = 200.00 -/* 071BC 8093FE8C C7B000D0 */ lwc1 $f16, 0x00D0($sp) -/* 071C0 8093FE90 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -/* 071C4 8093FE94 46060202 */ mul.s $f8, $f0, $f6 -/* 071C8 8093FE98 4407A000 */ mfc1 $a3, $f20 -/* 071CC 8093FE9C 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD -/* 071D0 8093FEA0 26440600 */ addiu $a0, $s2, 0x0600 ## $a0 = 00000600 -/* 071D4 8093FEA4 E7A800D8 */ swc1 $f8, 0x00D8($sp) -/* 071D8 8093FEA8 C64A0024 */ lwc1 $f10, 0x0024($s2) ## 00000024 -/* 071DC 8093FEAC 46105480 */ add.s $f18, $f10, $f16 -/* 071E0 8093FEB0 44059000 */ mfc1 $a1, $f18 -/* 071E4 8093FEB4 0C01E107 */ jal Math_ApproachF - -/* 071E8 8093FEB8 00000000 */ nop -/* 071EC 8093FEBC 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -/* 071F0 8093FEC0 4407A000 */ mfc1 $a3, $f20 -/* 071F4 8093FEC4 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD -/* 071F8 8093FEC8 26440604 */ addiu $a0, $s2, 0x0604 ## $a0 = 00000604 -/* 071FC 8093FECC 0C01E107 */ jal Math_ApproachF - -/* 07200 8093FED0 3C054396 */ lui $a1, 0x4396 ## $a1 = 43960000 -/* 07204 8093FED4 C644002C */ lwc1 $f4, 0x002C($s2) ## 0000002C -/* 07208 8093FED8 C7A600D8 */ lwc1 $f6, 0x00D8($sp) -/* 0720C 8093FEDC 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -/* 07210 8093FEE0 4407A000 */ mfc1 $a3, $f20 -/* 07214 8093FEE4 46062200 */ add.s $f8, $f4, $f6 -/* 07218 8093FEE8 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD -/* 0721C 8093FEEC 26440608 */ addiu $a0, $s2, 0x0608 ## $a0 = 00000608 -/* 07220 8093FEF0 44054000 */ mfc1 $a1, $f8 -/* 07224 8093FEF4 0C01E107 */ jal Math_ApproachF - -/* 07228 8093FEF8 00000000 */ nop -/* 0722C 8093FEFC 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -/* 07230 8093FF00 4407A000 */ mfc1 $a3, $f20 -/* 07234 8093FF04 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD -/* 07238 8093FF08 2644060C */ addiu $a0, $s2, 0x060C ## $a0 = 0000060C -/* 0723C 8093FF0C 0C01E107 */ jal Math_ApproachF - -/* 07240 8093FF10 8E450024 */ lw $a1, 0x0024($s2) ## 00000024 -/* 07244 8093FF14 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -/* 07248 8093FF18 4407A000 */ mfc1 $a3, $f20 -/* 0724C 8093FF1C 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD -/* 07250 8093FF20 26440610 */ addiu $a0, $s2, 0x0610 ## $a0 = 00000610 -/* 07254 8093FF24 0C01E107 */ jal Math_ApproachF - -/* 07258 8093FF28 8E450028 */ lw $a1, 0x0028($s2) ## 00000028 -/* 0725C 8093FF2C 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -/* 07260 8093FF30 4407A000 */ mfc1 $a3, $f20 -/* 07264 8093FF34 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD -/* 07268 8093FF38 26440614 */ addiu $a0, $s2, 0x0614 ## $a0 = 00000614 -/* 0726C 8093FF3C 0C01E107 */ jal Math_ApproachF - -/* 07270 8093FF40 8E45002C */ lw $a1, 0x002C($s2) ## 0000002C -/* 07274 8093FF44 864A0150 */ lh $t2, 0x0150($s2) ## 00000150 -/* 07278 8093FF48 240100AA */ addiu $at, $zero, 0x00AA ## $at = 000000AA -/* 0727C 8093FF4C 8FA300CC */ lw $v1, 0x00CC($sp) -/* 07280 8093FF50 154101D1 */ bne $t2, $at, .L80940698 -/* 07284 8093FF54 240B0002 */ addiu $t3, $zero, 0x0002 ## $t3 = 00000002 -/* 07288 8093FF58 3C01432A */ lui $at, 0x432A ## $at = 432A0000 -/* 0728C 8093FF5C 44810000 */ mtc1 $at, $f0 ## $f0 = 170.00 -/* 07290 8093FF60 3C014382 */ lui $at, 0x4382 ## $at = 43820000 -/* 07294 8093FF64 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00 -/* 07298 8093FF68 44815000 */ mtc1 $at, $f10 ## $f10 = 260.00 -/* 0729C 8093FF6C 3C01C220 */ lui $at, 0xC220 ## $at = C2200000 -/* 072A0 8093FF70 44818000 */ mtc1 $at, $f16 ## $f16 = -40.00 -/* 072A4 8093FF74 3C014370 */ lui $at, 0x4370 ## $at = 43700000 -/* 072A8 8093FF78 44819000 */ mtc1 $at, $f18 ## $f18 = 240.00 -/* 072AC 8093FF7C A64B05FA */ sh $t3, 0x05FA($s2) ## 000005FA -/* 072B0 8093FF80 A6400152 */ sh $zero, 0x0152($s2) ## 00000152 -/* 072B4 8093FF84 3C0142B4 */ lui $at, 0x42B4 ## $at = 42B40000 -/* 072B8 8093FF88 E6400608 */ swc1 $f0, 0x0608($s2) ## 00000608 -/* 072BC 8093FF8C E64006A4 */ swc1 $f0, 0x06A4($s2) ## 000006A4 -/* 072C0 8093FF90 E6420600 */ swc1 $f2, 0x0600($s2) ## 00000600 -/* 072C4 8093FF94 E642060C */ swc1 $f2, 0x060C($s2) ## 0000060C -/* 072C8 8093FF98 E6420614 */ swc1 $f2, 0x0614($s2) ## 00000614 -/* 072CC 8093FF9C E64A0604 */ swc1 $f10, 0x0604($s2) ## 00000604 -/* 072D0 8093FFA0 44812000 */ mtc1 $at, $f4 ## $f4 = 90.00 -/* 072D4 8093FFA4 240D8000 */ addiu $t5, $zero, 0x8000 ## $t5 = FFFF8000 -/* 072D8 8093FFA8 A46D00B6 */ sh $t5, 0x00B6($v1) ## 000000B6 -/* 072DC 8093FFAC 3C01C214 */ lui $at, 0xC214 ## $at = C2140000 -/* 072E0 8093FFB0 3C0E8095 */ lui $t6, %hi(sKoumePtr) ## $t6 = 80950000 -/* 072E4 8093FFB4 E4700024 */ swc1 $f16, 0x0024($v1) ## 00000024 -/* 072E8 8093FFB8 E4720028 */ swc1 $f18, 0x0028($v1) ## 00000028 -/* 072EC 8093FFBC E464002C */ swc1 $f4, 0x002C($v1) ## 0000002C -/* 072F0 8093FFC0 8DCEC848 */ lw $t6, %lo(sKoumePtr)($t6) -/* 072F4 8093FFC4 44813000 */ mtc1 $at, $f6 ## $f6 = -37.00 -/* 072F8 8093FFC8 3C014214 */ lui $at, 0x4214 ## $at = 42140000 -/* 072FC 8093FFCC 3C0F8095 */ lui $t7, %hi(sKotakePtr) ## $t7 = 80950000 -/* 07300 8093FFD0 E5C60024 */ swc1 $f6, 0x0024($t6) ## 80950024 -/* 07304 8093FFD4 8DEFC844 */ lw $t7, %lo(sKotakePtr)($t7) -/* 07308 8093FFD8 44814000 */ mtc1 $at, $f8 ## $f8 = 37.00 -/* 0730C 8093FFDC 3C018095 */ lui $at, %hi(D_8094B010) ## $at = 80950000 -/* 07310 8093FFE0 3C0C8095 */ lui $t4, %hi(sKotakePtr) ## $t4 = 80950000 -/* 07314 8093FFE4 E5E80024 */ swc1 $f8, 0x0024($t7) ## 80950024 -/* 07318 8093FFE8 8D8CC844 */ lw $t4, %lo(sKotakePtr)($t4) -/* 0731C 8093FFEC C42AB010 */ lwc1 $f10, %lo(D_8094B010)($at) -/* 07320 8093FFF0 3C188095 */ lui $t8, %hi(sKotakePtr) ## $t8 = 80950000 -/* 07324 8093FFF4 3C198095 */ lui $t9, %hi(sKoumePtr) ## $t9 = 80950000 -/* 07328 8093FFF8 E58A0028 */ swc1 $f10, 0x0028($t4) ## 80950028 -/* 0732C 8093FFFC 8F18C844 */ lw $t8, %lo(sKotakePtr)($t8) -/* 07330 80940000 8F39C848 */ lw $t9, %lo(sKoumePtr)($t9) -/* 07334 80940004 3C088095 */ lui $t0, %hi(sKoumePtr) ## $t0 = 80950000 -/* 07338 80940008 C7100028 */ lwc1 $f16, 0x0028($t8) ## 80950028 -/* 0733C 8094000C 3C014188 */ lui $at, 0x4188 ## $at = 41880000 -/* 07340 80940010 44812000 */ mtc1 $at, $f4 ## $f4 = 17.00 -/* 07344 80940014 E7300028 */ swc1 $f16, 0x0028($t9) ## 80950028 -/* 07348 80940018 8D08C848 */ lw $t0, %lo(sKoumePtr)($t0) -/* 0734C 8094001C 3C098095 */ lui $t1, %hi(sKotakePtr) ## $t1 = 80950000 -/* 07350 80940020 3C0A8095 */ lui $t2, %hi(sKotakePtr) ## $t2 = 80950000 -/* 07354 80940024 C5120028 */ lwc1 $f18, 0x0028($t0) ## 80950028 -/* 07358 80940028 3C0B8095 */ lui $t3, %hi(sKoumePtr) ## $t3 = 80950000 -/* 0735C 8094002C 3C0D8095 */ lui $t5, %hi(sKotakePtr) ## $t5 = 80950000 -/* 07360 80940030 46049180 */ add.s $f6, $f18, $f4 -/* 07364 80940034 3C0E8095 */ lui $t6, %hi(sKotakePtr) ## $t6 = 80950000 -/* 07368 80940038 3C0F8095 */ lui $t7, %hi(sKoumePtr) ## $t7 = 80950000 -/* 0736C 8094003C 3C0C8095 */ lui $t4, %hi(sKotakePtr) ## $t4 = 80950000 -/* 07370 80940040 E6460610 */ swc1 $f6, 0x0610($s2) ## 00000610 -/* 07374 80940044 8D29C844 */ lw $t1, %lo(sKotakePtr)($t1) -/* 07378 80940048 3C188095 */ lui $t8, %hi(sKoumePtr) ## $t8 = 80950000 -/* 0737C 8094004C 3C198095 */ lui $t9, %hi(sKotakePtr) ## $t9 = 80950000 -/* 07380 80940050 E522002C */ swc1 $f2, 0x002C($t1) ## 8095002C -/* 07384 80940054 8D4AC844 */ lw $t2, %lo(sKotakePtr)($t2) -/* 07388 80940058 8D6BC848 */ lw $t3, %lo(sKoumePtr)($t3) -/* 0738C 8094005C 3C088095 */ lui $t0, %hi(sKoumePtr) ## $t0 = 80950000 -/* 07390 80940060 C548002C */ lwc1 $f8, 0x002C($t2) ## 8095002C -/* 07394 80940064 3C058095 */ lui $a1, %hi(sKoumePtr) ## $a1 = 80950000 -/* 07398 80940068 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 -/* 0739C 8094006C E568002C */ swc1 $f8, 0x002C($t3) ## 8095002C -/* 073A0 80940070 8DADC844 */ lw $t5, %lo(sKotakePtr)($t5) -/* 073A4 80940074 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001 -/* 073A8 80940078 A5A000B6 */ sh $zero, 0x00B6($t5) ## 809500B6 -/* 073AC 8094007C 8DCEC844 */ lw $t6, %lo(sKotakePtr)($t6) -/* 073B0 80940080 8DEFC848 */ lw $t7, %lo(sKoumePtr)($t7) -/* 073B4 80940084 85C200B6 */ lh $v0, 0x00B6($t6) ## 809500B6 -/* 073B8 80940088 A5E200B6 */ sh $v0, 0x00B6($t7) ## 809500B6 -/* 073BC 8094008C 8D8CC844 */ lw $t4, %lo(sKotakePtr)($t4) -/* 073C0 80940090 A58200B4 */ sh $v0, 0x00B4($t4) ## 809500B4 -/* 073C4 80940094 8F18C848 */ lw $t8, %lo(sKoumePtr)($t8) -/* 073C8 80940098 A70200B4 */ sh $v0, 0x00B4($t8) ## 809500B4 -/* 073CC 8094009C 8F39C844 */ lw $t9, %lo(sKotakePtr)($t9) -/* 073D0 809400A0 A7220164 */ sh $v0, 0x0164($t9) ## 80950164 -/* 073D4 809400A4 8D08C848 */ lw $t0, %lo(sKoumePtr)($t0) -/* 073D8 809400A8 A5020164 */ sh $v0, 0x0164($t0) ## 80950164 -/* 073DC 809400AC 0C00B7D5 */ jal func_8002DF54 -/* 073E0 809400B0 8CA5C848 */ lw $a1, %lo(sKoumePtr)($a1) -/* 073E4 809400B4 3C048095 */ lui $a0, %hi(sKoumePtr) ## $a0 = 80950000 -/* 073E8 809400B8 8C84C848 */ lw $a0, %lo(sKoumePtr)($a0) -/* 073EC 809400BC 8C890004 */ lw $t1, 0x0004($a0) ## 80950004 -/* 073F0 809400C0 352A0001 */ ori $t2, $t1, 0x0001 ## $t2 = 00000001 -/* 073F4 809400C4 10000174 */ beq $zero, $zero, .L80940698 -/* 073F8 809400C8 AC8A0004 */ sw $t2, 0x0004($a0) ## 80950004 -glabel L809400CC -/* 073FC 809400CC 864B0152 */ lh $t3, 0x0152($s2) ## 00000152 -/* 07400 809400D0 24010064 */ addiu $at, $zero, 0x0064 ## $at = 00000064 -/* 07404 809400D4 27AD0080 */ addiu $t5, $sp, 0x0080 ## $t5 = FFFFFFA0 -/* 07408 809400D8 1561016F */ bne $t3, $at, .L80940698 -/* 0740C 809400DC 3C0E8095 */ lui $t6, %hi(D_8094A8F4) ## $t6 = 80950000 -/* 07410 809400E0 25CEA8F4 */ addiu $t6, $t6, %lo(D_8094A8F4) ## $t6 = 8094A8F4 -/* 07414 809400E4 8DCC0000 */ lw $t4, 0x0000($t6) ## 8094A8F4 -/* 07418 809400E8 8DCF0004 */ lw $t7, 0x0004($t6) ## 8094A8F8 -/* 0741C 809400EC 3C014040 */ lui $at, 0x4040 ## $at = 40400000 -/* 07420 809400F0 ADAC0000 */ sw $t4, 0x0000($t5) ## FFFFFFA0 -/* 07424 809400F4 8DCC0008 */ lw $t4, 0x0008($t6) ## 8094A8FC -/* 07428 809400F8 4481A000 */ mtc1 $at, $f20 ## $f20 = 3.00 -/* 0742C 809400FC 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000 -/* 07430 80940100 27B10098 */ addiu $s1, $sp, 0x0098 ## $s1 = FFFFFFB8 -/* 07434 80940104 ADAF0004 */ sw $t7, 0x0004($t5) ## FFFFFFA4 -/* 07438 80940108 ADAC0008 */ sw $t4, 0x0008($t5) ## FFFFFFA8 -.L8094010C: -/* 0743C 8094010C 0C00CFC8 */ jal Rand_CenteredFloat - -/* 07440 80940110 4600A306 */ mov.s $f12, $f20 -/* 07444 80940114 E7A0008C */ swc1 $f0, 0x008C($sp) -/* 07448 80940118 0C00CFC8 */ jal Rand_CenteredFloat - -/* 0744C 8094011C 4600A306 */ mov.s $f12, $f20 -/* 07450 80940120 E7A00090 */ swc1 $f0, 0x0090($sp) -/* 07454 80940124 0C00CFC8 */ jal Rand_CenteredFloat - -/* 07458 80940128 4600A306 */ mov.s $f12, $f20 -/* 0745C 8094012C 3C188095 */ lui $t8, %hi(sKoumePtr) ## $t8 = 80950000 -/* 07460 80940130 8F18C848 */ lw $t8, %lo(sKoumePtr)($t8) -/* 07464 80940134 E7A00094 */ swc1 $f0, 0x0094($sp) -/* 07468 80940138 3C014000 */ lui $at, 0x4000 ## $at = 40000000 -/* 0746C 8094013C 8F080024 */ lw $t0, 0x0024($t8) ## 80950024 -/* 07470 80940140 44816000 */ mtc1 $at, $f12 ## $f12 = 2.00 -/* 07474 80940144 AE280000 */ sw $t0, 0x0000($s1) ## FFFFFFB8 -/* 07478 80940148 8F190028 */ lw $t9, 0x0028($t8) ## 80950028 -/* 0747C 8094014C AE390004 */ sw $t9, 0x0004($s1) ## FFFFFFBC -/* 07480 80940150 8F08002C */ lw $t0, 0x002C($t8) ## 8095002C -/* 07484 80940154 AE280008 */ sw $t0, 0x0008($s1) ## FFFFFFC0 -/* 07488 80940158 C7AA008C */ lwc1 $f10, 0x008C($sp) -/* 0748C 8094015C C7B20098 */ lwc1 $f18, 0x0098($sp) -/* 07490 80940160 C7A60090 */ lwc1 $f6, 0x0090($sp) -/* 07494 80940164 460A5400 */ add.s $f16, $f10, $f10 -/* 07498 80940168 C7AA009C */ lwc1 $f10, 0x009C($sp) -/* 0749C 8094016C 46063200 */ add.s $f8, $f6, $f6 -/* 074A0 80940170 46109100 */ add.s $f4, $f18, $f16 -/* 074A4 80940174 C7B000A0 */ lwc1 $f16, 0x00A0($sp) -/* 074A8 80940178 46085480 */ add.s $f18, $f10, $f8 -/* 074AC 8094017C E7A40098 */ swc1 $f4, 0x0098($sp) -/* 074B0 80940180 46000100 */ add.s $f4, $f0, $f0 -/* 074B4 80940184 E7B2009C */ swc1 $f18, 0x009C($sp) -/* 074B8 80940188 46048180 */ add.s $f6, $f16, $f4 -/* 074BC 8094018C 0C00CFBE */ jal Rand_ZeroFloat - -/* 074C0 80940190 E7A600A0 */ swc1 $f6, 0x00A0($sp) -/* 074C4 80940194 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000 -/* 074C8 80940198 44815000 */ mtc1 $at, $f10 ## $f10 = 5.00 -/* 074CC 8094019C 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001 -/* 074D0 809401A0 AFA90014 */ sw $t1, 0x0014($sp) -/* 074D4 809401A4 460A0200 */ add.s $f8, $f0, $f10 -/* 074D8 809401A8 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 -/* 074DC 809401AC 02202825 */ or $a1, $s1, $zero ## $a1 = FFFFFFB8 -/* 074E0 809401B0 27A6008C */ addiu $a2, $sp, 0x008C ## $a2 = FFFFFFAC -/* 074E4 809401B4 E7A80010 */ swc1 $f8, 0x0010($sp) -/* 074E8 809401B8 0C24E41C */ jal BossTw_AddFlameEffect -/* 074EC 809401BC 27A70080 */ addiu $a3, $sp, 0x0080 ## $a3 = FFFFFFA0 -/* 074F0 809401C0 0C00CFC8 */ jal Rand_CenteredFloat - -/* 074F4 809401C4 4600A306 */ mov.s $f12, $f20 -/* 074F8 809401C8 E7A0008C */ swc1 $f0, 0x008C($sp) -/* 074FC 809401CC 0C00CFC8 */ jal Rand_CenteredFloat - -/* 07500 809401D0 4600A306 */ mov.s $f12, $f20 -/* 07504 809401D4 E7A00090 */ swc1 $f0, 0x0090($sp) -/* 07508 809401D8 0C00CFC8 */ jal Rand_CenteredFloat - -/* 0750C 809401DC 4600A306 */ mov.s $f12, $f20 -/* 07510 809401E0 3C0A8095 */ lui $t2, %hi(sKotakePtr) ## $t2 = 80950000 -/* 07514 809401E4 8D4AC844 */ lw $t2, %lo(sKotakePtr)($t2) -/* 07518 809401E8 E7A00094 */ swc1 $f0, 0x0094($sp) -/* 0751C 809401EC 3C014000 */ lui $at, 0x4000 ## $at = 40000000 -/* 07520 809401F0 8D4D0024 */ lw $t5, 0x0024($t2) ## 80950024 -/* 07524 809401F4 44816000 */ mtc1 $at, $f12 ## $f12 = 2.00 -/* 07528 809401F8 AE2D0000 */ sw $t5, 0x0000($s1) ## FFFFFFB8 -/* 0752C 809401FC 8D4B0028 */ lw $t3, 0x0028($t2) ## 80950028 -/* 07530 80940200 AE2B0004 */ sw $t3, 0x0004($s1) ## FFFFFFBC -/* 07534 80940204 8D4D002C */ lw $t5, 0x002C($t2) ## 8095002C -/* 07538 80940208 AE2D0008 */ sw $t5, 0x0008($s1) ## FFFFFFC0 -/* 0753C 8094020C C7B2008C */ lwc1 $f18, 0x008C($sp) -/* 07540 80940210 C7A40098 */ lwc1 $f4, 0x0098($sp) -/* 07544 80940214 C7AA0090 */ lwc1 $f10, 0x0090($sp) -/* 07548 80940218 46129400 */ add.s $f16, $f18, $f18 -/* 0754C 8094021C C7B2009C */ lwc1 $f18, 0x009C($sp) -/* 07550 80940220 460A5200 */ add.s $f8, $f10, $f10 -/* 07554 80940224 46102180 */ add.s $f6, $f4, $f16 -/* 07558 80940228 C7B000A0 */ lwc1 $f16, 0x00A0($sp) -/* 0755C 8094022C 46089100 */ add.s $f4, $f18, $f8 -/* 07560 80940230 E7A60098 */ swc1 $f6, 0x0098($sp) -/* 07564 80940234 46000180 */ add.s $f6, $f0, $f0 -/* 07568 80940238 E7A4009C */ swc1 $f4, 0x009C($sp) -/* 0756C 8094023C 46068280 */ add.s $f10, $f16, $f6 -/* 07570 80940240 0C00CFBE */ jal Rand_ZeroFloat - -/* 07574 80940244 E7AA00A0 */ swc1 $f10, 0x00A0($sp) -/* 07578 80940248 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000 -/* 0757C 8094024C 44819000 */ mtc1 $at, $f18 ## $f18 = 5.00 -/* 07580 80940250 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 -/* 07584 80940254 02202825 */ or $a1, $s1, $zero ## $a1 = FFFFFFB8 -/* 07588 80940258 46120200 */ add.s $f8, $f0, $f18 -/* 0758C 8094025C 27A6008C */ addiu $a2, $sp, 0x008C ## $a2 = FFFFFFAC -/* 07590 80940260 27A70080 */ addiu $a3, $sp, 0x0080 ## $a3 = FFFFFFA0 -/* 07594 80940264 AFA00014 */ sw $zero, 0x0014($sp) -/* 07598 80940268 0C24E41C */ jal BossTw_AddFlameEffect -/* 0759C 8094026C E7A80010 */ swc1 $f8, 0x0010($sp) -/* 075A0 80940270 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001 -/* 075A4 80940274 00108400 */ sll $s0, $s0, 16 -/* 075A8 80940278 00108403 */ sra $s0, $s0, 16 -/* 075AC 8094027C 2A010032 */ slti $at, $s0, 0x0032 -/* 075B0 80940280 1420FFA2 */ bne $at, $zero, .L8094010C -/* 075B4 80940284 00000000 */ nop -/* 075B8 80940288 3C048095 */ lui $a0, %hi(sKoumePtr) ## $a0 = 80950000 -/* 075BC 8094028C 8C84C848 */ lw $a0, %lo(sKoumePtr)($a0) -/* 075C0 80940290 0C00B58B */ jal Actor_SetScale - -/* 075C4 80940294 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000 -/* 075C8 80940298 3C048095 */ lui $a0, %hi(sKotakePtr) ## $a0 = 80950000 -/* 075CC 8094029C 8C84C844 */ lw $a0, %lo(sKotakePtr)($a0) -/* 075D0 809402A0 0C00B58B */ jal Actor_SetScale - -/* 075D4 809402A4 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000 -/* 075D8 809402A8 3C0F8095 */ lui $t7, %hi(sKoumePtr) ## $t7 = 80950000 -/* 075DC 809402AC 8DEFC848 */ lw $t7, %lo(sKoumePtr)($t7) -/* 075E0 809402B0 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001 -/* 075E4 809402B4 3C188095 */ lui $t8, %hi(sKotakePtr) ## $t8 = 80950000 -/* 075E8 809402B8 A1EE0564 */ sb $t6, 0x0564($t7) ## 80950564 -/* 075EC 809402BC 8F18C844 */ lw $t8, %lo(sKotakePtr)($t8) -/* 075F0 809402C0 240C0001 */ addiu $t4, $zero, 0x0001 ## $t4 = 00000001 -/* 075F4 809402C4 2404390D */ addiu $a0, $zero, 0x390D ## $a0 = 0000390D -/* 075F8 809402C8 0C01E221 */ jal func_80078884 -/* 075FC 809402CC A30C0564 */ sb $t4, 0x0564($t8) ## 80950564 -/* 07600 809402D0 0C03E803 */ jal Audio_QueueSeqCmd - -/* 07604 809402D4 24040061 */ addiu $a0, $zero, 0x0061 ## $a0 = 00000061 -/* 07608 809402D8 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 0760C 809402DC 24190003 */ addiu $t9, $zero, 0x0003 ## $t9 = 00000003 -/* 07610 809402E0 A65905FA */ sh $t9, 0x05FA($s2) ## 000005FA -/* 07614 809402E4 A6400152 */ sh $zero, 0x0152($s2) ## 00000152 -/* 07618 809402E8 E64006A0 */ swc1 $f0, 0x06A0($s2) ## 000006A0 -/* 0761C 809402EC E6400068 */ swc1 $f0, 0x0068($s2) ## 00000068 -/* 07620 809402F0 E64006B0 */ swc1 $f0, 0x06B0($s2) ## 000006B0 -/* 07624 809402F4 100000E8 */ beq $zero, $zero, .L80940698 -/* 07628 809402F8 E64006AC */ swc1 $f0, 0x06AC($s2) ## 000006AC -glabel L809402FC -/* 0762C 809402FC 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 07630 80940300 34210AFC */ ori $at, $at, 0x0AFC ## $at = 00010AFC -/* 07634 80940304 02618021 */ addu $s0, $s3, $at -/* 07638 80940308 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000 -/* 0763C 8094030C 0C24FC71 */ jal BossTw_DeathCSMsgSfx -/* 07640 80940310 02602825 */ or $a1, $s3, $zero ## $a1 = 00000000 -/* 07644 80940314 86480152 */ lh $t0, 0x0152($s2) ## 00000152 -/* 07648 80940318 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001 -/* 0764C 8094031C 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001 -/* 07650 80940320 29010096 */ slti $at, $t0, 0x0096 -/* 07654 80940324 1020000E */ beq $at, $zero, .L80940360 -/* 07658 80940328 240B0006 */ addiu $t3, $zero, 0x0006 ## $t3 = 00000006 -/* 0765C 8094032C 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 07660 80940330 00330821 */ addu $at, $at, $s3 -/* 07664 80940334 A0290AE2 */ sb $t1, 0x0AE2($at) ## 00010AE2 -/* 07668 80940338 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 0766C 8094033C 00330821 */ addu $at, $at, $s3 -/* 07670 80940340 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -/* 07674 80940344 A0200AE1 */ sb $zero, 0x0AE1($at) ## 00010AE1 -/* 07678 80940348 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD -/* 0767C 8094034C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000001 -/* 07680 80940350 0C01E123 */ jal Math_ApproachZeroF - -/* 07684 80940354 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000 -/* 07688 80940358 10000019 */ beq $zero, $zero, .L809403C0 -/* 0768C 8094035C 00000000 */ nop -.L80940360: -/* 07690 80940360 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 07694 80940364 00330821 */ addu $at, $at, $s3 -/* 07698 80940368 A02A0AE2 */ sb $t2, 0x0AE2($at) ## 00010AE2 -/* 0769C 8094036C 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 076A0 80940370 00330821 */ addu $at, $at, $s3 -/* 076A4 80940374 A02B0AE1 */ sb $t3, 0x0AE1($at) ## 00010AE1 -/* 076A8 80940378 86440152 */ lh $a0, 0x0152($s2) ## 00000152 -/* 076AC 8094037C 00042300 */ sll $a0, $a0, 12 -/* 076B0 80940380 00042400 */ sll $a0, $a0, 16 -/* 076B4 80940384 0C01DE1C */ jal Math_SinS - ## sins? -/* 076B8 80940388 00042403 */ sra $a0, $a0, 16 -/* 076BC 8094038C 3C013E80 */ lui $at, 0x3E80 ## $at = 3E800000 -/* 076C0 80940390 44812000 */ mtc1 $at, $f4 ## $f4 = 0.25 -/* 076C4 80940394 3C013F40 */ lui $at, 0x3F40 ## $at = 3F400000 -/* 076C8 80940398 44813000 */ mtc1 $at, $f6 ## $f6 = 0.75 -/* 076CC 8094039C 46040402 */ mul.s $f16, $f0, $f4 -/* 076D0 809403A0 3C073DCC */ lui $a3, 0x3DCC ## $a3 = 3DCC0000 -/* 076D4 809403A4 34E7CCCD */ ori $a3, $a3, 0xCCCD ## $a3 = 3DCCCCCD -/* 076D8 809403A8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000001 -/* 076DC 809403AC 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000 -/* 076E0 809403B0 46068280 */ add.s $f10, $f16, $f6 -/* 076E4 809403B4 44055000 */ mfc1 $a1, $f10 -/* 076E8 809403B8 0C01E107 */ jal Math_ApproachF - -/* 076EC 809403BC 00000000 */ nop -.L809403C0: -/* 076F0 809403C0 3C0D8095 */ lui $t5, %hi(sKoumePtr) ## $t5 = 80950000 -/* 076F4 809403C4 8DADC848 */ lw $t5, %lo(sKoumePtr)($t5) -/* 076F8 809403C8 3C014188 */ lui $at, 0x4188 ## $at = 41880000 -/* 076FC 809403CC 44814000 */ mtc1 $at, $f8 ## $f8 = 17.00 -/* 07700 809403D0 C5B20028 */ lwc1 $f18, 0x0028($t5) ## 80950028 -/* 07704 809403D4 3C063D4C */ lui $a2, 0x3D4C ## $a2 = 3D4C0000 -/* 07708 809403D8 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3D4CCCCD -/* 0770C 809403DC 46089100 */ add.s $f4, $f18, $f8 -/* 07710 809403E0 26440610 */ addiu $a0, $s2, 0x0610 ## $a0 = 00000610 -/* 07714 809403E4 3C074120 */ lui $a3, 0x4120 ## $a3 = 41200000 -/* 07718 809403E8 44052000 */ mfc1 $a1, $f4 -/* 0771C 809403EC 0C01E107 */ jal Math_ApproachF - -/* 07720 809403F0 00000000 */ nop -/* 07724 809403F4 864E0152 */ lh $t6, 0x0152($s2) ## 00000152 -/* 07728 809403F8 264406A4 */ addiu $a0, $s2, 0x06A4 ## $a0 = 000006A4 -/* 0772C 809403FC 3C0542DC */ lui $a1, 0x42DC ## $a1 = 42DC0000 -/* 07730 80940400 29C10032 */ slti $at, $t6, 0x0032 -/* 07734 80940404 1420002E */ bne $at, $zero, .L809404C0 -/* 07738 80940408 3C063D4C */ lui $a2, 0x3D4C ## $a2 = 3D4C0000 -/* 0773C 8094040C 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3D4CCCCD -/* 07740 80940410 0C01E107 */ jal Math_ApproachF - -/* 07744 80940414 8E4706A0 */ lw $a3, 0x06A0($s2) ## 000006A0 -/* 07748 80940418 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 0774C 8094041C 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00 -/* 07750 80940420 3C073CCC */ lui $a3, 0x3CCC ## $a3 = 3CCC0000 -/* 07754 80940424 34E7CCCD */ ori $a3, $a3, 0xCCCD ## $a3 = 3CCCCCCD -/* 07758 80940428 44050000 */ mfc1 $a1, $f0 -/* 0775C 8094042C 44060000 */ mfc1 $a2, $f0 -/* 07760 80940430 0C01E107 */ jal Math_ApproachF - -/* 07764 80940434 264406A0 */ addiu $a0, $s2, 0x06A0 ## $a0 = 000006A0 -/* 07768 80940438 0C0400A4 */ jal sinf - -/* 0776C 8094043C C64C06AC */ lwc1 $f12, 0x06AC($s2) ## 000006AC -/* 07770 80940440 C65006A4 */ lwc1 $f16, 0x06A4($s2) ## 000006A4 -/* 07774 80940444 C64C06AC */ lwc1 $f12, 0x06AC($s2) ## 000006AC -/* 07778 80940448 46100182 */ mul.s $f6, $f0, $f16 -/* 0777C 8094044C 0C041184 */ jal cosf - -/* 07780 80940450 E6460600 */ swc1 $f6, 0x0600($s2) ## 00000600 -/* 07784 80940454 C64A06A4 */ lwc1 $f10, 0x06A4($s2) ## 000006A4 -/* 07788 80940458 86420152 */ lh $v0, 0x0152($s2) ## 00000152 -/* 0778C 8094045C 460A0482 */ mul.s $f18, $f0, $f10 -/* 07790 80940460 28410097 */ slti $at, $v0, 0x0097 -/* 07794 80940464 14200016 */ bne $at, $zero, .L809404C0 -/* 07798 80940468 E6520608 */ swc1 $f18, 0x0608($s2) ## 00000608 -/* 0779C 8094046C C64806AC */ lwc1 $f8, 0x06AC($s2) ## 000006AC -/* 077A0 80940470 C64406B0 */ lwc1 $f4, 0x06B0($s2) ## 000006B0 -/* 077A4 80940474 28410320 */ slti $at, $v0, 0x0320 -/* 077A8 80940478 3C053C75 */ lui $a1, 0x3C75 ## $a1 = 3C750000 -/* 077AC 8094047C 46044400 */ add.s $f16, $f8, $f4 -/* 077B0 80940480 34A5C28F */ ori $a1, $a1, 0xC28F ## $a1 = 3C75C28F -/* 077B4 80940484 264406B0 */ addiu $a0, $s2, 0x06B0 ## $a0 = 000006B0 -/* 077B8 80940488 14200009 */ bne $at, $zero, .L809404B0 -/* 077BC 8094048C E65006AC */ swc1 $f16, 0x06AC($s2) ## 000006AC -/* 077C0 80940490 3C0738D1 */ lui $a3, 0x38D1 ## $a3 = 38D10000 -/* 077C4 80940494 34E7B717 */ ori $a3, $a3, 0xB717 ## $a3 = 38D1B717 -/* 077C8 80940498 264406B0 */ addiu $a0, $s2, 0x06B0 ## $a0 = 000006B0 -/* 077CC 8094049C 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000 -/* 077D0 809404A0 0C01E107 */ jal Math_ApproachF - -/* 077D4 809404A4 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000 -/* 077D8 809404A8 10000005 */ beq $zero, $zero, .L809404C0 -/* 077DC 809404AC 00000000 */ nop -.L809404B0: -/* 077E0 809404B0 3C0738D1 */ lui $a3, 0x38D1 ## $a3 = 38D10000 -/* 077E4 809404B4 34E7B717 */ ori $a3, $a3, 0xB717 ## $a3 = 38D1B717 -/* 077E8 809404B8 0C01E107 */ jal Math_ApproachF - -/* 077EC 809404BC 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000 -.L809404C0: -/* 077F0 809404C0 3C048095 */ lui $a0, %hi(sKoumePtr) ## $a0 = 80950000 -/* 077F4 809404C4 8C84C848 */ lw $a0, %lo(sKoumePtr)($a0) -/* 077F8 809404C8 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000 -/* 077FC 809404CC 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -/* 07800 809404D0 3C073A83 */ lui $a3, 0x3A83 ## $a3 = 3A830000 -/* 07804 809404D4 34E7126F */ ori $a3, $a3, 0x126F ## $a3 = 3A83126F -/* 07808 809404D8 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD -/* 0780C 809404DC 34A5D709 */ ori $a1, $a1, 0xD709 ## $a1 = 3C23D709 -/* 07810 809404E0 0C01E107 */ jal Math_ApproachF - -/* 07814 809404E4 24840050 */ addiu $a0, $a0, 0x0050 ## $a0 = 80950050 -/* 07818 809404E8 3C048095 */ lui $a0, %hi(sKoumePtr) ## $a0 = 80950000 -/* 0781C 809404EC 8C84C848 */ lw $a0, %lo(sKoumePtr)($a0) -/* 07820 809404F0 0C00B58B */ jal Actor_SetScale - -/* 07824 809404F4 8C850050 */ lw $a1, 0x0050($a0) ## 80950050 -/* 07828 809404F8 3C0F8095 */ lui $t7, %hi(sKoumePtr) ## $t7 = 80950000 -/* 0782C 809404FC 8DEFC848 */ lw $t7, %lo(sKoumePtr)($t7) -/* 07830 80940500 3C048095 */ lui $a0, %hi(sKotakePtr) ## $a0 = 80950000 -/* 07834 80940504 8C84C844 */ lw $a0, %lo(sKotakePtr)($a0) -/* 07838 80940508 0C00B58B */ jal Actor_SetScale - -/* 0783C 8094050C 8DE50050 */ lw $a1, 0x0050($t7) ## 80950050 -/* 07840 80940510 864C0152 */ lh $t4, 0x0152($s2) ## 00000152 -/* 07844 80940514 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 -/* 07848 80940518 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 0784C 8094051C 298103FC */ slti $at, $t4, 0x03FC -/* 07850 80940520 5420005E */ bnel $at, $zero, .L8094069C -/* 07854 80940524 864505FC */ lh $a1, 0x05FC($s2) ## 000005FC -/* 07858 80940528 0C030129 */ jal Gameplay_GetCamera -/* 0785C 8094052C 26701C24 */ addiu $s0, $s3, 0x1C24 ## $s0 = 00001C24 -/* 07860 80940530 26510600 */ addiu $s1, $s2, 0x0600 ## $s1 = 00000600 -/* 07864 80940534 8E390000 */ lw $t9, 0x0000($s1) ## 00000600 -/* 07868 80940538 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 -/* 0786C 8094053C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 -/* 07870 80940540 AC59005C */ sw $t9, 0x005C($v0) ## 0000005C -/* 07874 80940544 8E380004 */ lw $t8, 0x0004($s1) ## 00000604 -/* 07878 80940548 AC580060 */ sw $t8, 0x0060($v0) ## 00000060 -/* 0787C 8094054C 8E390008 */ lw $t9, 0x0008($s1) ## 00000608 -/* 07880 80940550 AC590064 */ sw $t9, 0x0064($v0) ## 00000064 -/* 07884 80940554 8E290000 */ lw $t1, 0x0000($s1) ## 00000600 -/* 07888 80940558 AC490074 */ sw $t1, 0x0074($v0) ## 00000074 -/* 0788C 8094055C 8E280004 */ lw $t0, 0x0004($s1) ## 00000604 -/* 07890 80940560 AC480078 */ sw $t0, 0x0078($v0) ## 00000078 -/* 07894 80940564 8E290008 */ lw $t1, 0x0008($s1) ## 00000608 -/* 07898 80940568 AC49007C */ sw $t1, 0x007C($v0) ## 0000007C -/* 0789C 8094056C 8E4B060C */ lw $t3, 0x060C($s2) ## 0000060C -/* 078A0 80940570 AC4B0050 */ sw $t3, 0x0050($v0) ## 00000050 -/* 078A4 80940574 8E4A0610 */ lw $t2, 0x0610($s2) ## 00000610 -/* 078A8 80940578 AC4A0054 */ sw $t2, 0x0054($v0) ## 00000054 -/* 078AC 8094057C 8E4B0614 */ lw $t3, 0x0614($s2) ## 00000614 -/* 078B0 80940580 AC4B0058 */ sw $t3, 0x0058($v0) ## 00000058 -/* 078B4 80940584 0C03022B */ jal func_800C08AC -/* 078B8 80940588 864505FC */ lh $a1, 0x05FC($s2) ## 000005FC -/* 078BC 8094058C 240D0004 */ addiu $t5, $zero, 0x0004 ## $t5 = 00000004 -/* 078C0 80940590 A64D05FA */ sh $t5, 0x05FA($s2) ## 000005FA -/* 078C4 80940594 A64005FC */ sh $zero, 0x05FC($s2) ## 000005FC -/* 078C8 80940598 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 -/* 078CC 8094059C 0C01914D */ jal func_80064534 -/* 078D0 809405A0 26651D64 */ addiu $a1, $s3, 0x1D64 ## $a1 = 00001D64 -/* 078D4 809405A4 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 -/* 078D8 809405A8 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000 -/* 078DC 809405AC 0C00B7D5 */ jal func_8002DF54 -/* 078E0 809405B0 24060007 */ addiu $a2, $zero, 0x0007 ## $a2 = 00000007 -/* 078E4 809405B4 0C03E803 */ jal Audio_QueueSeqCmd - -/* 078E8 809405B8 24040021 */ addiu $a0, $zero, 0x0021 ## $a0 = 00000021 -/* 078EC 809405BC 3C014416 */ lui $at, 0x4416 ## $at = 44160000 -/* 078F0 809405C0 44813000 */ mtc1 $at, $f6 ## $f6 = 600.00 -/* 078F4 809405C4 3C014366 */ lui $at, 0x4366 ## $at = 43660000 -/* 078F8 809405C8 44815000 */ mtc1 $at, $f10 ## $f10 = 230.00 -/* 078FC 809405CC 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00 -/* 07900 809405D0 240EFFFF */ addiu $t6, $zero, 0xFFFF ## $t6 = FFFFFFFF -/* 07904 809405D4 AFAE0028 */ sw $t6, 0x0028($sp) -/* 07908 809405D8 02002025 */ or $a0, $s0, $zero ## $a0 = 00001C24 -/* 0790C 809405DC 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000 -/* 07910 809405E0 02603025 */ or $a2, $s3, $zero ## $a2 = 00000000 -/* 07914 809405E4 2407005D */ addiu $a3, $zero, 0x005D ## $a3 = 0000005D -/* 07918 809405E8 AFA0001C */ sw $zero, 0x001C($sp) -/* 0791C 809405EC AFA00020 */ sw $zero, 0x0020($sp) -/* 07920 809405F0 AFA00024 */ sw $zero, 0x0024($sp) -/* 07924 809405F4 E7A60010 */ swc1 $f6, 0x0010($sp) -/* 07928 809405F8 E7AA0014 */ swc1 $f10, 0x0014($sp) -/* 0792C 809405FC 0C00C916 */ jal Actor_SpawnAsChild - -/* 07930 80940600 E7B20018 */ swc1 $f18, 0x0018($sp) -/* 07934 80940604 3C014366 */ lui $at, 0x4366 ## $at = 43660000 -/* 07938 80940608 44814000 */ mtc1 $at, $f8 ## $f8 = 230.00 -/* 0793C 8094060C 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00 -/* 07940 80940610 02002025 */ or $a0, $s0, $zero ## $a0 = 00001C24 -/* 07944 80940614 02602825 */ or $a1, $s3, $zero ## $a1 = 00000000 -/* 07948 80940618 2406005F */ addiu $a2, $zero, 0x005F ## $a2 = 0000005F -/* 0794C 8094061C 3C07C416 */ lui $a3, 0xC416 ## $a3 = C4160000 -/* 07950 80940620 AFA00018 */ sw $zero, 0x0018($sp) -/* 07954 80940624 AFA0001C */ sw $zero, 0x001C($sp) -/* 07958 80940628 AFA00020 */ sw $zero, 0x0020($sp) -/* 0795C 8094062C AFA00024 */ sw $zero, 0x0024($sp) -/* 07960 80940630 E7A80010 */ swc1 $f8, 0x0010($sp) -/* 07964 80940634 0C00C7D4 */ jal Actor_Spawn - ## ActorSpawn -/* 07968 80940638 E7A40014 */ swc1 $f4, 0x0014($sp) -/* 0796C 8094063C 3C01C4FA */ lui $at, 0xC4FA ## $at = C4FA0000 -/* 07970 80940640 44818000 */ mtc1 $at, $f16 ## $f16 = -2000.00 -/* 07974 80940644 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00 -/* 07978 80940648 3C038095 */ lui $v1, %hi(sKotakePtr) ## $v1 = 80950000 -/* 0797C 8094064C 2463C844 */ addiu $v1, $v1, %lo(sKotakePtr) ## $v1 = 8094C844 -/* 07980 80940650 E6500028 */ swc1 $f16, 0x0028($s2) ## 00000028 -/* 07984 80940654 E64601CC */ swc1 $f6, 0x01CC($s2) ## 000001CC -/* 07988 80940658 8C6F0000 */ lw $t7, 0x0000($v1) ## 8094C844 -/* 0798C 8094065C 3C198095 */ lui $t9, %hi(sKoumePtr) ## $t9 = 80950000 -/* 07990 80940660 3C050001 */ lui $a1, 0x0001 ## $a1 = 00010000 -/* 07994 80940664 A1E00564 */ sb $zero, 0x0564($t7) ## 00000564 -/* 07998 80940668 8C6C0000 */ lw $t4, 0x0000($v1) ## 8094C844 -/* 0799C 8094066C 8F39C848 */ lw $t9, %lo(sKoumePtr)($t9) -/* 079A0 80940670 00B32821 */ addu $a1, $a1, $s3 -/* 079A4 80940674 91980564 */ lbu $t8, 0x0564($t4) ## 00000564 -/* 079A8 80940678 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 -/* 079AC 8094067C A3380564 */ sb $t8, 0x0564($t9) ## 80950564 -/* 079B0 80940680 0C00B33C */ jal Flags_SetClear - -/* 079B4 80940684 80A51CBC */ lb $a1, 0x1CBC($a1) ## 00011CBC -/* 079B8 80940688 10000004 */ beq $zero, $zero, .L8094069C -/* 079BC 8094068C 864505FC */ lh $a1, 0x05FC($s2) ## 000005FC -glabel L80940690 -/* 079C0 80940690 3C018095 */ lui $at, %hi(sEnvType) ## $at = 80950000 -/* 079C4 80940694 A020C840 */ sb $zero, %lo(sEnvType)($at) -.L80940698: -/* 079C8 80940698 864505FC */ lh $a1, 0x05FC($s2) ## 000005FC -.L8094069C: -/* 079CC 8094069C 26470600 */ addiu $a3, $s2, 0x0600 ## $a3 = 00000600 -/* 079D0 809406A0 2646060C */ addiu $a2, $s2, 0x060C ## $a2 = 0000060C -/* 079D4 809406A4 50A00004 */ beql $a1, $zero, .L809406B8 -/* 079D8 809406A8 8FBF004C */ lw $ra, 0x004C($sp) -/* 079DC 809406AC 0C030136 */ jal Gameplay_CameraSetAtEye -/* 079E0 809406B0 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 -/* 079E4 809406B4 8FBF004C */ lw $ra, 0x004C($sp) -.L809406B8: -/* 079E8 809406B8 D7B40030 */ ldc1 $f20, 0x0030($sp) -/* 079EC 809406BC 8FB0003C */ lw $s0, 0x003C($sp) -/* 079F0 809406C0 8FB10040 */ lw $s1, 0x0040($sp) -/* 079F4 809406C4 8FB20044 */ lw $s2, 0x0044($sp) -/* 079F8 809406C8 8FB30048 */ lw $s3, 0x0048($sp) -/* 079FC 809406CC 03E00008 */ jr $ra -/* 07A00 809406D0 27BD00E0 */ addiu $sp, $sp, 0x00E0 ## $sp = 00000000 diff --git a/data/overlays/actors/z_boss_tw.reloc.s b/data/overlays/actors/z_boss_tw.reloc.s deleted file mode 100644 index 0fba020f20..0000000000 --- a/data/overlays/actors/z_boss_tw.reloc.s +++ /dev/null @@ -1,13 +0,0 @@ -.include "macro.inc" - - # assembler directives - .set noat # allow manual use of $at - .set noreorder # don't insert nops after branches - .set gp=64 # allow use of 64-bit general purpose registers - -.section .rodata - -.balign 16 - -glabel D_8094B230 - .incbin "baserom/ovl_Boss_Tw", 0x12560, 0x00001610 diff --git a/spec b/spec index ddfc3383a5..187864e180 100644 --- a/spec +++ b/spec @@ -1429,11 +1429,7 @@ endseg beginseg name "ovl_Boss_Tw" include "build/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.o" -#ifdef NON_MATCHING include "build/src/overlays/actors/ovl_Boss_Tw/ovl_Boss_Tw_reloc.o" -#else - include "build/data/overlays/actors/z_boss_tw.reloc.o" -#endif endseg beginseg diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c index f94059e976..529288e01e 100644 --- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c +++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c @@ -2604,10 +2604,9 @@ void BossTw_DeathCSMsgSfx(BossTw* this, GlobalContext* globalCtx) { } } -#ifdef NON_MATCHING void BossTw_TwinrovaDeathCS(BossTw* this, GlobalContext* globalCtx) { s16 i; - Vec3f spD8; + Vec3f spD0; Player* player = PLAYER; Camera* mainCam = Gameplay_GetCamera(globalCtx, MAIN_CAM); @@ -2695,11 +2694,11 @@ void BossTw_TwinrovaDeathCS(BossTw* this, GlobalContext* globalCtx) { Audio_QueueSeqCmd(0x100100FF); break; case 1: - spD8.x = Math_SinS(this->actor.world.rot.y) * 200.0f; - spD8.z = Math_CosS(this->actor.world.rot.y) * 200.0f; - Math_ApproachF(&this->subCamEye.x, spD8.x + this->actor.world.pos.x, 0.1f, 50.0f); + spD0.x = Math_SinS(this->actor.world.rot.y) * 200.0f; + spD0.z = Math_CosS(this->actor.world.rot.y) * 200.0f; + Math_ApproachF(&this->subCamEye.x, spD0.x + this->actor.world.pos.x, 0.1f, 50.0f); Math_ApproachF(&this->subCamEye.y, 300.0f, 0.1f, 50.0f); - Math_ApproachF(&this->subCamEye.z, spD8.z + this->actor.world.pos.z, 0.1f, 50.0f); + Math_ApproachF(&this->subCamEye.z, spD0.z + this->actor.world.pos.z, 0.1f, 50.0f); Math_ApproachF(&this->subCamAt.x, this->actor.world.pos.x, 0.1f, 50.0f); Math_ApproachF(&this->subCamAt.y, this->actor.world.pos.y, 0.1f, 50.0f); Math_ApproachF(&this->subCamAt.z, this->actor.world.pos.z, 0.1f, 50.0f); @@ -2734,6 +2733,7 @@ void BossTw_TwinrovaDeathCS(BossTw* this, GlobalContext* globalCtx) { Vec3f pos; Vec3f velocity; Vec3f accel = { 0.0f, 0.0f, 0.0f }; + s32 zero = 0; for (i = 0; i < 50; i++) { velocity.x = Rand_CenteredFloat(3.0f); @@ -2744,6 +2744,13 @@ void BossTw_TwinrovaDeathCS(BossTw* this, GlobalContext* globalCtx) { pos.y += velocity.y * 2.0f; pos.z += velocity.z * 2.0f; BossTw_AddFlameEffect(globalCtx, &pos, &velocity, &accel, Rand_ZeroFloat(2.0f) + 5, 1); + + // fake code needed to match, tricks the compiler into allocating more stack + if (1) {} + if (zero) { + accel.x *= 2.0; + } + velocity.x = Rand_CenteredFloat(3.0f); velocity.y = Rand_CenteredFloat(3.0f); velocity.z = Rand_CenteredFloat(3.0f); @@ -2753,6 +2760,7 @@ void BossTw_TwinrovaDeathCS(BossTw* this, GlobalContext* globalCtx) { pos.z += velocity.z * 2.0f; BossTw_AddFlameEffect(globalCtx, &pos, &velocity, &accel, Rand_ZeroFloat(2.0f) + 5, 0); } + Actor_SetScale(&sKoumePtr->actor, 0.0f); Actor_SetScale(&sKotakePtr->actor, 0.0f); sKoumePtr->visible = 1; @@ -2797,11 +2805,10 @@ void BossTw_TwinrovaDeathCS(BossTw* this, GlobalContext* globalCtx) { Actor_SetScale(&sKoumePtr->actor, sKoumePtr->actor.scale.x); Actor_SetScale(&sKotakePtr->actor, sKoumePtr->actor.scale.x); if (this->work[CS_TIMER_2] >= 1020) { - Camera* cam = Gameplay_GetCamera(globalCtx, MAIN_CAM); - - cam->eye = this->subCamEye; - cam->eyeNext = this->subCamEye; - cam->at = this->subCamAt; + mainCam = Gameplay_GetCamera(globalCtx, MAIN_CAM); + mainCam->eye = this->subCamEye; + mainCam->eyeNext = this->subCamEye; + mainCam->at = this->subCamAt; func_800C08AC(globalCtx, this->subCamId, 0); this->csState2 = 4; this->subCamId = 0; @@ -2828,11 +2835,6 @@ void BossTw_TwinrovaDeathCS(BossTw* this, GlobalContext* globalCtx) { Gameplay_CameraSetAtEye(globalCtx, this->subCamId, &this->subCamAt, &this->subCamEye); } } -#else -Vec3f D_8094A8E8 = { 0.0f, 0.0f, 0.0f }; -Vec3f D_8094A8F4 = { 0.0f, 0.0f, 0.0f }; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Boss_Tw/BossTw_TwinrovaDeathCS.s") -#endif static s16 D_8094A900[] = { 0, 1, 2, 2, 1, From f3c930917bca9bcc5a0c9e53a82d8e4ce8f7e6e9 Mon Sep 17 00:00:00 2001 From: Roman971 <32455037+Roman971@users.noreply.github.com> Date: Mon, 30 Aug 2021 03:24:32 +0200 Subject: [PATCH 5/6] Implement define tables for objects, actors and effect soft sprites (#906) * Implement a single Object Table for the enum and the segments * Implement a single Actor Table for the enum and the overlays * Implement a single Effect SS Table for the enum and the overlays * Remove initvars.h and move its content to relevant files * Update object 0 to use OBJECT_NONE and document it in the table * Rename OBJECT_NONE to OBJECT_INVALID to avoid confusion --- include/initvars.h | 471 ---------- include/segment_symbols.h | 849 ------------------ include/tables/actor_table.h | 483 ++++++++++ include/tables/effect_ss_table.h | 46 + include/tables/object_table.h | 411 +++++++++ include/z64actor.h | 482 +--------- include/z64effect.h | 44 +- include/z64object.h | 411 +-------- src/code/z_actor_dlftbls.c | 521 +---------- src/code/z_effect_soft_sprite_dlftbls.c | 80 +- src/code/z_scene.c | 427 +-------- .../ZAPDConfigs/MqDbg/ObjectList_OoTMqDbg.txt | 2 +- 12 files changed, 1063 insertions(+), 3164 deletions(-) delete mode 100644 include/initvars.h create mode 100644 include/tables/actor_table.h create mode 100644 include/tables/effect_ss_table.h create mode 100644 include/tables/object_table.h diff --git a/include/initvars.h b/include/initvars.h deleted file mode 100644 index 4489b2bb2b..0000000000 --- a/include/initvars.h +++ /dev/null @@ -1,471 +0,0 @@ -#ifndef _INITVARS_H_ -#define _INITVARS_H_ - -extern EffectSsInit Effect_Ss_Dust_InitVars; -extern EffectSsInit Effect_Ss_KiraKira_InitVars; -extern EffectSsInit Effect_Ss_Bomb_InitVars; -extern EffectSsInit Effect_Ss_Bomb2_InitVars; -extern EffectSsInit Effect_Ss_Blast_InitVars; -extern EffectSsInit Effect_Ss_G_Spk_InitVars; -extern EffectSsInit Effect_Ss_D_Fire_InitVars; -extern EffectSsInit Effect_Ss_Bubble_InitVars; -extern EffectSsInit Effect_Ss_G_Ripple_InitVars; -extern EffectSsInit Effect_Ss_G_Splash_InitVars; -extern EffectSsInit Effect_Ss_G_Magma_InitVars; -extern EffectSsInit Effect_Ss_G_Fire_InitVars; -extern EffectSsInit Effect_Ss_Lightning_InitVars; -extern EffectSsInit Effect_Ss_Dt_Bubble_InitVars; -extern EffectSsInit Effect_Ss_Hahen_InitVars; -extern EffectSsInit Effect_Ss_Stick_InitVars; -extern EffectSsInit Effect_Ss_Sibuki_InitVars; -extern EffectSsInit Effect_Ss_Sibuki2_InitVars; -extern EffectSsInit Effect_Ss_G_Magma2_InitVars; -extern EffectSsInit Effect_Ss_Stone1_InitVars; -extern EffectSsInit Effect_Ss_HitMark_InitVars; -extern EffectSsInit Effect_Ss_Fhg_Flash_InitVars; -extern EffectSsInit Effect_Ss_K_Fire_InitVars; -extern EffectSsInit Effect_Ss_Solder_Srch_Ball_InitVars; -extern EffectSsInit Effect_Ss_Kakera_InitVars; -extern EffectSsInit Effect_Ss_Ice_Piece_InitVars; -extern EffectSsInit Effect_Ss_En_Ice_InitVars; -extern EffectSsInit Effect_Ss_Fire_Tail_InitVars; -extern EffectSsInit Effect_Ss_En_Fire_InitVars; -extern EffectSsInit Effect_Ss_Extra_InitVars; -extern EffectSsInit Effect_Ss_Fcircle_InitVars; -extern EffectSsInit Effect_Ss_Dead_Db_InitVars; -extern EffectSsInit Effect_Ss_Dead_Dd_InitVars; -extern EffectSsInit Effect_Ss_Dead_Ds_InitVars; -extern EffectSsInit Effect_Ss_Dead_Sound_InitVars; -extern EffectSsInit Effect_Ss_Ice_Smoke_InitVars; - -extern ActorInit Player_InitVars; -extern ActorInit En_Test_InitVars; -extern ActorInit En_GirlA_InitVars; -extern ActorInit En_Part_InitVars; -extern ActorInit En_Light_InitVars; -extern ActorInit En_Door_InitVars; -extern ActorInit En_Box_InitVars; -extern ActorInit Bg_Dy_Yoseizo_InitVars; -extern ActorInit Bg_Hidan_Firewall_InitVars; -extern ActorInit En_Poh_InitVars; -extern ActorInit En_Okuta_InitVars; -extern ActorInit Bg_Ydan_Sp_InitVars; -extern ActorInit En_Bom_InitVars; -extern ActorInit En_Wallmas_InitVars; -extern ActorInit En_Dodongo_InitVars; -extern ActorInit En_Firefly_InitVars; -extern ActorInit En_Horse_InitVars; -extern ActorInit En_Item00_InitVars; -extern ActorInit En_Arrow_InitVars; -extern ActorInit En_Elf_InitVars; -extern ActorInit En_Niw_InitVars; -extern ActorInit En_Tite_InitVars; -extern ActorInit En_Reeba_InitVars; -extern ActorInit En_Peehat_InitVars; -extern ActorInit En_Butte_InitVars; -extern ActorInit En_Insect_InitVars; -extern ActorInit En_Fish_InitVars; -extern ActorInit En_Holl_InitVars; -extern ActorInit En_Scene_Change_InitVars; -extern ActorInit En_Zf_InitVars; -extern ActorInit En_Hata_InitVars; -extern ActorInit Boss_Dodongo_InitVars; -extern ActorInit Boss_Goma_InitVars; -extern ActorInit En_Zl1_InitVars; -extern ActorInit En_Viewer_InitVars; -extern ActorInit En_Goma_InitVars; -extern ActorInit Bg_Pushbox_InitVars; -extern ActorInit En_Bubble_InitVars; -extern ActorInit Door_Shutter_InitVars; -extern ActorInit En_Dodojr_InitVars; -extern ActorInit En_Bdfire_InitVars; -extern ActorInit En_Boom_InitVars; -extern ActorInit En_Torch2_InitVars; -extern ActorInit En_Bili_InitVars; -extern ActorInit En_Tp_InitVars; -extern ActorInit En_St_InitVars; -extern ActorInit En_Bw_InitVars; -extern ActorInit En_A_Obj_InitVars; -extern ActorInit En_Eiyer_InitVars; -extern ActorInit En_River_Sound_InitVars; -extern ActorInit En_Horse_Normal_InitVars; -extern ActorInit En_Ossan_InitVars; -extern ActorInit Bg_Treemouth_InitVars; -extern ActorInit Bg_Dodoago_InitVars; -extern ActorInit Bg_Hidan_Dalm_InitVars; -extern ActorInit Bg_Hidan_Hrock_InitVars; -extern ActorInit En_Horse_Ganon_InitVars; -extern ActorInit Bg_Hidan_Rock_InitVars; -extern ActorInit Bg_Hidan_Rsekizou_InitVars; -extern ActorInit Bg_Hidan_Sekizou_InitVars; -extern ActorInit Bg_Hidan_Sima_InitVars; -extern ActorInit Bg_Hidan_Syoku_InitVars; -extern ActorInit En_Xc_InitVars; -extern ActorInit Bg_Hidan_Curtain_InitVars; -extern ActorInit Bg_Spot00_Hanebasi_InitVars; -extern ActorInit En_Mb_InitVars; -extern ActorInit En_Bombf_InitVars; -extern ActorInit En_Zl2_InitVars; -extern ActorInit Bg_Hidan_Fslift_InitVars; -extern ActorInit En_OE2_InitVars; -extern ActorInit Bg_Ydan_Hasi_InitVars; -extern ActorInit Bg_Ydan_Maruta_InitVars; -extern ActorInit Boss_Ganondrof_InitVars; -extern ActorInit En_Am_InitVars; -extern ActorInit En_Dekubaba_InitVars; -extern ActorInit En_M_Fire1_InitVars; -extern ActorInit En_M_Thunder_InitVars; -extern ActorInit Bg_Ddan_Jd_InitVars; -extern ActorInit Bg_Breakwall_InitVars; -extern ActorInit En_Jj_InitVars; -extern ActorInit En_Horse_Zelda_InitVars; -extern ActorInit Bg_Ddan_Kd_InitVars; -extern ActorInit Door_Warp1_InitVars; -extern ActorInit Obj_Syokudai_InitVars; -extern ActorInit Item_B_Heart_InitVars; -extern ActorInit En_Dekunuts_InitVars; -extern ActorInit Bg_Menkuri_Kaiten_InitVars; -extern ActorInit Bg_Menkuri_Eye_InitVars; -extern ActorInit En_Vali_InitVars; -extern ActorInit Bg_Mizu_Movebg_InitVars; -extern ActorInit Bg_Mizu_Water_InitVars; -extern ActorInit Arms_Hook_InitVars; -extern ActorInit En_fHG_InitVars; -extern ActorInit Bg_Mori_Hineri_InitVars; -extern ActorInit En_Bb_InitVars; -extern ActorInit Bg_Toki_Hikari_InitVars; -extern ActorInit En_Yukabyun_InitVars; -extern ActorInit Bg_Toki_Swd_InitVars; -extern ActorInit En_Fhg_Fire_InitVars; -extern ActorInit Bg_Mjin_InitVars; -extern ActorInit Bg_Hidan_Kousi_InitVars; -extern ActorInit Door_Toki_InitVars; -extern ActorInit Bg_Hidan_Hamstep_InitVars; -extern ActorInit En_Bird_InitVars; -extern ActorInit En_Wood02_InitVars; -extern ActorInit En_Lightbox_InitVars; -extern ActorInit En_Pu_box_InitVars; -extern ActorInit En_Trap_InitVars; -extern ActorInit En_Arow_Trap_InitVars; -extern ActorInit En_Vase_InitVars; -extern ActorInit En_Ta_InitVars; -extern ActorInit En_Tk_InitVars; -extern ActorInit Bg_Mori_Bigst_InitVars; -extern ActorInit Bg_Mori_Elevator_InitVars; -extern ActorInit Bg_Mori_Kaitenkabe_InitVars; -extern ActorInit Bg_Mori_Rakkatenjo_InitVars; -extern ActorInit En_Vm_InitVars; -extern ActorInit Demo_Effect_InitVars; -extern ActorInit Demo_Kankyo_InitVars; -extern ActorInit Bg_Hidan_Fwbig_InitVars; -extern ActorInit En_Floormas_InitVars; -extern ActorInit En_Heishi1_InitVars; -extern ActorInit En_Rd_InitVars; -extern ActorInit En_Po_Sisters_InitVars; -extern ActorInit Bg_Heavy_Block_InitVars; -extern ActorInit Bg_Po_Event_InitVars; -extern ActorInit Obj_Mure_InitVars; -extern ActorInit En_Sw_InitVars; -extern ActorInit Boss_Fd_InitVars; -extern ActorInit Object_Kankyo_InitVars; -extern ActorInit En_Du_InitVars; -extern ActorInit En_Fd_InitVars; -extern ActorInit En_Horse_Link_Child_InitVars; -extern ActorInit Door_Ana_InitVars; -extern ActorInit Bg_Spot02_Objects_InitVars; -extern ActorInit Bg_Haka_InitVars; -extern ActorInit Magic_Wind_InitVars; -extern ActorInit Magic_Fire_InitVars; -extern ActorInit En_Ru1_InitVars; -extern ActorInit Boss_Fd2_InitVars; -extern ActorInit En_Fd_Fire_InitVars; -extern ActorInit En_Dh_InitVars; -extern ActorInit En_Dha_InitVars; -extern ActorInit En_Rl_InitVars; -extern ActorInit En_Encount1_InitVars; -extern ActorInit Demo_Du_InitVars; -extern ActorInit Demo_Im_InitVars; -extern ActorInit Demo_Tre_Lgt_InitVars; -extern ActorInit En_Fw_InitVars; -extern ActorInit Bg_Vb_Sima_InitVars; -extern ActorInit En_Vb_Ball_InitVars; -extern ActorInit Bg_Haka_Megane_InitVars; -extern ActorInit Bg_Haka_MeganeBG_InitVars; -extern ActorInit Bg_Haka_Ship_InitVars; -extern ActorInit Bg_Haka_Sgami_InitVars; -extern ActorInit En_Heishi2_InitVars; -extern ActorInit En_Encount2_InitVars; -extern ActorInit En_Fire_Rock_InitVars; -extern ActorInit En_Brob_InitVars; -extern ActorInit Mir_Ray_InitVars; -extern ActorInit Bg_Spot09_Obj_InitVars; -extern ActorInit Bg_Spot18_Obj_InitVars; -extern ActorInit Boss_Va_InitVars; -extern ActorInit Bg_Haka_Tubo_InitVars; -extern ActorInit Bg_Haka_Trap_InitVars; -extern ActorInit Bg_Haka_Huta_InitVars; -extern ActorInit Bg_Haka_Zou_InitVars; -extern ActorInit Bg_Spot17_Funen_InitVars; -extern ActorInit En_Syateki_Itm_InitVars; -extern ActorInit En_Syateki_Man_InitVars; -extern ActorInit En_Tana_InitVars; -extern ActorInit En_Nb_InitVars; -extern ActorInit Boss_Mo_InitVars; -extern ActorInit En_Sb_InitVars; -extern ActorInit En_Bigokuta_InitVars; -extern ActorInit En_Karebaba_InitVars; -extern ActorInit Bg_Bdan_Objects_InitVars; -extern ActorInit Demo_Sa_InitVars; -extern ActorInit Demo_Go_InitVars; -extern ActorInit En_In_InitVars; -extern ActorInit En_Tr_InitVars; -extern ActorInit Bg_Spot16_Bombstone_InitVars; -extern ActorInit Bg_Hidan_Kowarerukabe_InitVars; -extern ActorInit Bg_Bombwall_InitVars; -extern ActorInit Bg_Spot08_Iceblock_InitVars; -extern ActorInit En_Ru2_InitVars; -extern ActorInit Obj_Dekujr_InitVars; -extern ActorInit Bg_Mizu_Uzu_InitVars; -extern ActorInit Bg_Spot06_Objects_InitVars; -extern ActorInit Bg_Ice_Objects_InitVars; -extern ActorInit Bg_Haka_Water_InitVars; -extern ActorInit En_Ma2_InitVars; -extern ActorInit En_Bom_Chu_InitVars; -extern ActorInit En_Horse_Game_Check_InitVars; -extern ActorInit Boss_Tw_InitVars; -extern ActorInit En_Rr_InitVars; -extern ActorInit En_Ba_InitVars; -extern ActorInit En_Bx_InitVars; -extern ActorInit En_Anubice_InitVars; -extern ActorInit En_Anubice_Fire_InitVars; -extern ActorInit Bg_Mori_Hashigo_InitVars; -extern ActorInit Bg_Mori_Hashira4_InitVars; -extern ActorInit Bg_Mori_Idomizu_InitVars; -extern ActorInit Bg_Spot16_Doughnut_InitVars; -extern ActorInit Bg_Bdan_Switch_InitVars; -extern ActorInit En_Ma1_InitVars; -extern ActorInit Boss_Ganon_InitVars; -extern ActorInit Boss_Sst_InitVars; -extern ActorInit En_Ny_InitVars; -extern ActorInit En_Fr_InitVars; -extern ActorInit Item_Shield_InitVars; -extern ActorInit Bg_Ice_Shelter_InitVars; -extern ActorInit En_Ice_Hono_InitVars; -extern ActorInit Item_Ocarina_InitVars; -extern ActorInit Magic_Dark_InitVars; -extern ActorInit Demo_6K_InitVars; -extern ActorInit En_Anubice_Tag_InitVars; -extern ActorInit Bg_Haka_Gate_InitVars; -extern ActorInit Bg_Spot15_Saku_InitVars; -extern ActorInit Bg_Jya_Goroiwa_InitVars; -extern ActorInit Bg_Jya_Zurerukabe_InitVars; -extern ActorInit Bg_Jya_Cobra_InitVars; -extern ActorInit Bg_Jya_Kanaami_InitVars; -extern ActorInit Fishing_InitVars; -extern ActorInit Obj_Oshihiki_InitVars; -extern ActorInit Bg_Gate_Shutter_InitVars; -extern ActorInit Eff_Dust_InitVars; -extern ActorInit Bg_Spot01_Fusya_InitVars; -extern ActorInit Bg_Spot01_Idohashira_InitVars; -extern ActorInit Bg_Spot01_Idomizu_InitVars; -extern ActorInit Bg_Po_Syokudai_InitVars; -extern ActorInit Bg_Ganon_Otyuka_InitVars; -extern ActorInit Bg_Spot15_Rrbox_InitVars; -extern ActorInit Bg_Umajump_InitVars; -extern ActorInit Arrow_Fire_InitVars; -extern ActorInit Arrow_Ice_InitVars; -extern ActorInit Arrow_Light_InitVars; -extern ActorInit Item_Etcetera_InitVars; -extern ActorInit Obj_Kibako_InitVars; -extern ActorInit Obj_Tsubo_InitVars; -extern ActorInit En_Wonder_Item_InitVars; -extern ActorInit En_Ik_InitVars; -extern ActorInit Demo_Ik_InitVars; -extern ActorInit En_Skj_InitVars; -extern ActorInit En_Skjneedle_InitVars; -extern ActorInit En_G_Switch_InitVars; -extern ActorInit Demo_Ext_InitVars; -extern ActorInit Demo_Shd_InitVars; -extern ActorInit En_Dns_InitVars; -extern ActorInit Elf_Msg_InitVars; -extern ActorInit En_Honotrap_InitVars; -extern ActorInit En_Tubo_Trap_InitVars; -extern ActorInit Obj_Ice_Poly_InitVars; -extern ActorInit Bg_Spot03_Taki_InitVars; -extern ActorInit Bg_Spot07_Taki_InitVars; -extern ActorInit En_Fz_InitVars; -extern ActorInit En_Po_Relay_InitVars; -extern ActorInit Bg_Relay_Objects_InitVars; -extern ActorInit En_Diving_Game_InitVars; -extern ActorInit En_Kusa_InitVars; -extern ActorInit Obj_Bean_InitVars; -extern ActorInit Obj_Bombiwa_InitVars; -extern ActorInit Obj_Switch_InitVars; -extern ActorInit Obj_Elevator_InitVars; -extern ActorInit Obj_Lift_InitVars; -extern ActorInit Obj_Hsblock_InitVars; -extern ActorInit En_Okarina_Tag_InitVars; -extern ActorInit En_Yabusame_Mark_InitVars; -extern ActorInit En_Goroiwa_InitVars; -extern ActorInit En_Ex_Ruppy_InitVars; -extern ActorInit En_Toryo_InitVars; -extern ActorInit En_Daiku_InitVars; -extern ActorInit En_Nwc_InitVars; -extern ActorInit En_Blkobj_InitVars; -extern ActorInit Item_Inbox_InitVars; -extern ActorInit En_Ge1_InitVars; -extern ActorInit Obj_Blockstop_InitVars; -extern ActorInit En_Sda_InitVars; -extern ActorInit En_Clear_Tag_InitVars; -extern ActorInit En_Niw_Lady_InitVars; -extern ActorInit En_Gm_InitVars; -extern ActorInit En_Ms_InitVars; -extern ActorInit En_Hs_InitVars; -extern ActorInit Bg_Ingate_InitVars; -extern ActorInit En_Kanban_InitVars; -extern ActorInit En_Heishi3_InitVars; -extern ActorInit En_Syateki_Niw_InitVars; -extern ActorInit En_Attack_Niw_InitVars; -extern ActorInit Bg_Spot01_Idosoko_InitVars; -extern ActorInit En_Sa_InitVars; -extern ActorInit En_Wonder_Talk_InitVars; -extern ActorInit Bg_Gjyo_Bridge_InitVars; -extern ActorInit En_Ds_InitVars; -extern ActorInit En_Mk_InitVars; -extern ActorInit En_Bom_Bowl_Man_InitVars; -extern ActorInit En_Bom_Bowl_Pit_InitVars; -extern ActorInit En_Owl_InitVars; -extern ActorInit En_Ishi_InitVars; -extern ActorInit Obj_Hana_InitVars; -extern ActorInit Obj_Lightswitch_InitVars; -extern ActorInit Obj_Mure2_InitVars; -extern ActorInit En_Go_InitVars; -extern ActorInit En_Fu_InitVars; -extern ActorInit En_Changer_InitVars; -extern ActorInit Bg_Jya_Megami_InitVars; -extern ActorInit Bg_Jya_Lift_InitVars; -extern ActorInit Bg_Jya_Bigmirror_InitVars; -extern ActorInit Bg_Jya_Bombchuiwa_InitVars; -extern ActorInit Bg_Jya_Amishutter_InitVars; -extern ActorInit Bg_Jya_Bombiwa_InitVars; -extern ActorInit Bg_Spot18_Basket_InitVars; -extern ActorInit En_Ganon_Organ_InitVars; -extern ActorInit En_Siofuki_InitVars; -extern ActorInit En_Stream_InitVars; -extern ActorInit En_Mm_InitVars; -extern ActorInit En_Ko_InitVars; -extern ActorInit En_Kz_InitVars; -extern ActorInit En_Weather_Tag_InitVars; -extern ActorInit Bg_Sst_Floor_InitVars; -extern ActorInit En_Ani_InitVars; -extern ActorInit En_Ex_Item_InitVars; -extern ActorInit Bg_Jya_Ironobj_InitVars; -extern ActorInit En_Js_InitVars; -extern ActorInit En_Jsjutan_InitVars; -extern ActorInit En_Cs_InitVars; -extern ActorInit En_Md_InitVars; -extern ActorInit En_Hy_InitVars; -extern ActorInit En_Ganon_Mant_InitVars; -extern ActorInit En_Okarina_Effect_InitVars; -extern ActorInit En_Mag_InitVars; -extern ActorInit Door_Gerudo_InitVars; -extern ActorInit Elf_Msg2_InitVars; -extern ActorInit Demo_Gt_InitVars; -extern ActorInit En_Po_Field_InitVars; -extern ActorInit Efc_Erupc_InitVars; -extern ActorInit Bg_Zg_InitVars; -extern ActorInit En_Heishi4_InitVars; -extern ActorInit En_Zl3_InitVars; -extern ActorInit Boss_Ganon2_InitVars; -extern ActorInit En_Kakasi_InitVars; -extern ActorInit En_Takara_Man_InitVars; -extern ActorInit Obj_Makeoshihiki_InitVars; -extern ActorInit Oceff_Spot_InitVars; -extern ActorInit End_Title_InitVars; -extern ActorInit En_Torch_InitVars; -extern ActorInit Demo_Ec_InitVars; -extern ActorInit Shot_Sun_InitVars; -extern ActorInit En_Dy_Extra_InitVars; -extern ActorInit En_Wonder_Talk2_InitVars; -extern ActorInit En_Ge2_InitVars; -extern ActorInit Obj_Roomtimer_InitVars; -extern ActorInit En_Ssh_InitVars; -extern ActorInit En_Sth_InitVars; -extern ActorInit Oceff_Wipe_InitVars; -extern ActorInit Oceff_Storm_InitVars; -extern ActorInit En_Weiyer_InitVars; -extern ActorInit Bg_Spot05_Soko_InitVars; -extern ActorInit Bg_Jya_1flift_InitVars; -extern ActorInit Bg_Jya_Haheniron_InitVars; -extern ActorInit Bg_Spot12_Gate_InitVars; -extern ActorInit Bg_Spot12_Saku_InitVars; -extern ActorInit En_Hintnuts_InitVars; -extern ActorInit En_Nutsball_InitVars; -extern ActorInit Bg_Spot00_Break_InitVars; -extern ActorInit En_Shopnuts_InitVars; -extern ActorInit En_It_InitVars; -extern ActorInit En_GeldB_InitVars; -extern ActorInit Oceff_Wipe2_InitVars; -extern ActorInit Oceff_Wipe3_InitVars; -extern ActorInit En_Niw_Girl_InitVars; -extern ActorInit En_Dog_InitVars; -extern ActorInit En_Si_InitVars; -extern ActorInit Bg_Spot01_Objects2_InitVars; -extern ActorInit Obj_Comb_InitVars; -extern ActorInit Bg_Spot11_Bakudankabe_InitVars; -extern ActorInit Obj_Kibako2_InitVars; -extern ActorInit En_Dnt_Demo_InitVars; -extern ActorInit En_Dnt_Jiji_InitVars; -extern ActorInit En_Dnt_Nomal_InitVars; -extern ActorInit En_Guest_InitVars; -extern ActorInit Bg_Bom_Guard_InitVars; -extern ActorInit En_Hs2_InitVars; -extern ActorInit Demo_Kekkai_InitVars; -extern ActorInit Bg_Spot08_Bakudankabe_InitVars; -extern ActorInit Bg_Spot17_Bakudankabe_InitVars; -extern ActorInit Obj_Mure3_InitVars; -extern ActorInit En_Tg_InitVars; -extern ActorInit En_Mu_InitVars; -extern ActorInit En_Go2_InitVars; -extern ActorInit En_Wf_InitVars; -extern ActorInit En_Skb_InitVars; -extern ActorInit Demo_Gj_InitVars; -extern ActorInit Demo_Geff_InitVars; -extern ActorInit Bg_Gnd_Firemeiro_InitVars; -extern ActorInit Bg_Gnd_Darkmeiro_InitVars; -extern ActorInit Bg_Gnd_Soulmeiro_InitVars; -extern ActorInit Bg_Gnd_Nisekabe_InitVars; -extern ActorInit Bg_Gnd_Iceblock_InitVars; -extern ActorInit En_Gb_InitVars; -extern ActorInit En_Gs_InitVars; -extern ActorInit Bg_Mizu_Bwall_InitVars; -extern ActorInit Bg_Mizu_Shutter_InitVars; -extern ActorInit En_Daiku_Kakariko_InitVars; -extern ActorInit Bg_Bowl_Wall_InitVars; -extern ActorInit En_Wall_Tubo_InitVars; -extern ActorInit En_Po_Desert_InitVars; -extern ActorInit En_Crow_InitVars; -extern ActorInit Door_Killer_InitVars; -extern ActorInit Bg_Spot11_Oasis_InitVars; -extern ActorInit Bg_Spot18_Futa_InitVars; -extern ActorInit Bg_Spot18_Shutter_InitVars; -extern ActorInit En_Ma3_InitVars; -extern ActorInit En_Cow_InitVars; -extern ActorInit Bg_Ice_Turara_InitVars; -extern ActorInit Bg_Ice_Shutter_InitVars; -extern ActorInit En_Kakasi2_InitVars; -extern ActorInit En_Kakasi3_InitVars; -extern ActorInit Oceff_Wipe4_InitVars; -extern ActorInit En_Eg_InitVars; -extern ActorInit Bg_Menkuri_Nisekabe_InitVars; -extern ActorInit En_Zo_InitVars; -extern ActorInit Obj_Makekinsuta_InitVars; -extern ActorInit En_Ge3_InitVars; -extern ActorInit Obj_Timeblock_InitVars; -extern ActorInit Obj_Hamishi_InitVars; -extern ActorInit En_Zl4_InitVars; -extern ActorInit En_Mm2_InitVars; -extern ActorInit Bg_Jya_Block_InitVars; -extern ActorInit Obj_Warp2block_InitVars; - -#endif diff --git a/include/segment_symbols.h b/include/segment_symbols.h index 684c34b53f..5344244ebb 100644 --- a/include/segment_symbols.h +++ b/include/segment_symbols.h @@ -63,855 +63,6 @@ DECLARE_OVERLAY_SEGMENT(kaleido_scope) DECLARE_OVERLAY_SEGMENT(player_actor) DECLARE_OVERLAY_SEGMENT(map_mark_data) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Dust) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_KiraKira) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Bomb) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Bomb2) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Blast) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_G_Spk) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_D_Fire) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Bubble) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_G_Ripple) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_G_Splash) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_G_Magma) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_G_Fire) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Lightning) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Dt_Bubble) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Hahen) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Stick) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Sibuki) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Sibuki2) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_G_Magma2) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Stone1) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_HitMark) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Fhg_Flash) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_K_Fire) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Solder_Srch_Ball) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Kakera) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Ice_Piece) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_En_Ice) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Fire_Tail) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_En_Fire) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Extra) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Fcircle) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Dead_Db) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Dead_Dd) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Dead_Ds) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Dead_Sound) -DECLARE_OVERLAY_SEGMENT(Effect_Ss_Ice_Smoke) - -DECLARE_OVERLAY_SEGMENT(En_Test) -DECLARE_OVERLAY_SEGMENT(En_GirlA) -DECLARE_OVERLAY_SEGMENT(En_Part) -DECLARE_OVERLAY_SEGMENT(En_Light) -DECLARE_OVERLAY_SEGMENT(En_Door) -DECLARE_OVERLAY_SEGMENT(En_Box) -DECLARE_OVERLAY_SEGMENT(Bg_Dy_Yoseizo) -DECLARE_OVERLAY_SEGMENT(Bg_Hidan_Firewall) -DECLARE_OVERLAY_SEGMENT(En_Poh) -DECLARE_OVERLAY_SEGMENT(En_Okuta) -DECLARE_OVERLAY_SEGMENT(Bg_Ydan_Sp) -DECLARE_OVERLAY_SEGMENT(En_Bom) -DECLARE_OVERLAY_SEGMENT(En_Wallmas) -DECLARE_OVERLAY_SEGMENT(En_Dodongo) -DECLARE_OVERLAY_SEGMENT(En_Firefly) -DECLARE_OVERLAY_SEGMENT(En_Horse) -DECLARE_OVERLAY_SEGMENT(En_Item00) -DECLARE_OVERLAY_SEGMENT(En_Arrow) -DECLARE_OVERLAY_SEGMENT(En_Elf) -DECLARE_OVERLAY_SEGMENT(En_Niw) -DECLARE_OVERLAY_SEGMENT(En_Tite) -DECLARE_OVERLAY_SEGMENT(En_Reeba) -DECLARE_OVERLAY_SEGMENT(En_Peehat) -DECLARE_OVERLAY_SEGMENT(En_Butte) -DECLARE_OVERLAY_SEGMENT(En_Insect) -DECLARE_OVERLAY_SEGMENT(En_Fish) -DECLARE_OVERLAY_SEGMENT(En_Holl) -DECLARE_OVERLAY_SEGMENT(En_Scene_Change) -DECLARE_OVERLAY_SEGMENT(En_Zf) -DECLARE_OVERLAY_SEGMENT(En_Hata) -DECLARE_OVERLAY_SEGMENT(Boss_Dodongo) -DECLARE_OVERLAY_SEGMENT(Boss_Goma) -DECLARE_OVERLAY_SEGMENT(En_Zl1) -DECLARE_OVERLAY_SEGMENT(En_Viewer) -DECLARE_OVERLAY_SEGMENT(En_Goma) -DECLARE_OVERLAY_SEGMENT(Bg_Pushbox) -DECLARE_OVERLAY_SEGMENT(En_Bubble) -DECLARE_OVERLAY_SEGMENT(Door_Shutter) -DECLARE_OVERLAY_SEGMENT(En_Dodojr) -DECLARE_OVERLAY_SEGMENT(En_Bdfire) -DECLARE_OVERLAY_SEGMENT(En_Boom) -DECLARE_OVERLAY_SEGMENT(En_Torch2) -DECLARE_OVERLAY_SEGMENT(En_Bili) -DECLARE_OVERLAY_SEGMENT(En_Tp) -DECLARE_OVERLAY_SEGMENT(En_St) -DECLARE_OVERLAY_SEGMENT(En_Bw) -DECLARE_OVERLAY_SEGMENT(En_A_Obj) -DECLARE_OVERLAY_SEGMENT(En_Eiyer) -DECLARE_OVERLAY_SEGMENT(En_River_Sound) -DECLARE_OVERLAY_SEGMENT(En_Horse_Normal) -DECLARE_OVERLAY_SEGMENT(En_Ossan) -DECLARE_OVERLAY_SEGMENT(Bg_Treemouth) -DECLARE_OVERLAY_SEGMENT(Bg_Dodoago) -DECLARE_OVERLAY_SEGMENT(Bg_Hidan_Dalm) -DECLARE_OVERLAY_SEGMENT(Bg_Hidan_Hrock) -DECLARE_OVERLAY_SEGMENT(En_Horse_Ganon) -DECLARE_OVERLAY_SEGMENT(Bg_Hidan_Rock) -DECLARE_OVERLAY_SEGMENT(Bg_Hidan_Rsekizou) -DECLARE_OVERLAY_SEGMENT(Bg_Hidan_Sekizou) -DECLARE_OVERLAY_SEGMENT(Bg_Hidan_Sima) -DECLARE_OVERLAY_SEGMENT(Bg_Hidan_Syoku) -DECLARE_OVERLAY_SEGMENT(En_Xc) -DECLARE_OVERLAY_SEGMENT(Bg_Hidan_Curtain) -DECLARE_OVERLAY_SEGMENT(Bg_Spot00_Hanebasi) -DECLARE_OVERLAY_SEGMENT(En_Mb) -DECLARE_OVERLAY_SEGMENT(En_Bombf) -DECLARE_OVERLAY_SEGMENT(En_Zl2) -DECLARE_OVERLAY_SEGMENT(Bg_Hidan_Fslift) -DECLARE_OVERLAY_SEGMENT(En_OE2) -DECLARE_OVERLAY_SEGMENT(Bg_Ydan_Hasi) -DECLARE_OVERLAY_SEGMENT(Bg_Ydan_Maruta) -DECLARE_OVERLAY_SEGMENT(Boss_Ganondrof) -DECLARE_OVERLAY_SEGMENT(En_Am) -DECLARE_OVERLAY_SEGMENT(En_Dekubaba) -DECLARE_OVERLAY_SEGMENT(En_M_Fire1) -DECLARE_OVERLAY_SEGMENT(En_M_Thunder) -DECLARE_OVERLAY_SEGMENT(Bg_Ddan_Jd) -DECLARE_OVERLAY_SEGMENT(Bg_Breakwall) -DECLARE_OVERLAY_SEGMENT(En_Jj) -DECLARE_OVERLAY_SEGMENT(En_Horse_Zelda) -DECLARE_OVERLAY_SEGMENT(Bg_Ddan_Kd) -DECLARE_OVERLAY_SEGMENT(Door_Warp1) -DECLARE_OVERLAY_SEGMENT(Obj_Syokudai) -DECLARE_OVERLAY_SEGMENT(Item_B_Heart) -DECLARE_OVERLAY_SEGMENT(En_Dekunuts) -DECLARE_OVERLAY_SEGMENT(Bg_Menkuri_Kaiten) -DECLARE_OVERLAY_SEGMENT(Bg_Menkuri_Eye) -DECLARE_OVERLAY_SEGMENT(En_Vali) -DECLARE_OVERLAY_SEGMENT(Bg_Mizu_Movebg) -DECLARE_OVERLAY_SEGMENT(Bg_Mizu_Water) -DECLARE_OVERLAY_SEGMENT(Arms_Hook) -DECLARE_OVERLAY_SEGMENT(En_fHG) -DECLARE_OVERLAY_SEGMENT(Bg_Mori_Hineri) -DECLARE_OVERLAY_SEGMENT(En_Bb) -DECLARE_OVERLAY_SEGMENT(Bg_Toki_Hikari) -DECLARE_OVERLAY_SEGMENT(En_Yukabyun) -DECLARE_OVERLAY_SEGMENT(Bg_Toki_Swd) -DECLARE_OVERLAY_SEGMENT(En_Fhg_Fire) -DECLARE_OVERLAY_SEGMENT(Bg_Mjin) -DECLARE_OVERLAY_SEGMENT(Bg_Hidan_Kousi) -DECLARE_OVERLAY_SEGMENT(Door_Toki) -DECLARE_OVERLAY_SEGMENT(Bg_Hidan_Hamstep) -DECLARE_OVERLAY_SEGMENT(En_Bird) -DECLARE_OVERLAY_SEGMENT(En_Wood02) -DECLARE_OVERLAY_SEGMENT(En_Lightbox) -DECLARE_OVERLAY_SEGMENT(En_Pu_box) -DECLARE_OVERLAY_SEGMENT(En_Trap) -DECLARE_OVERLAY_SEGMENT(En_Arow_Trap) -DECLARE_OVERLAY_SEGMENT(En_Vase) -DECLARE_OVERLAY_SEGMENT(En_Ta) -DECLARE_OVERLAY_SEGMENT(En_Tk) -DECLARE_OVERLAY_SEGMENT(Bg_Mori_Bigst) -DECLARE_OVERLAY_SEGMENT(Bg_Mori_Elevator) -DECLARE_OVERLAY_SEGMENT(Bg_Mori_Kaitenkabe) -DECLARE_OVERLAY_SEGMENT(Bg_Mori_Rakkatenjo) -DECLARE_OVERLAY_SEGMENT(En_Vm) -DECLARE_OVERLAY_SEGMENT(Demo_Effect) -DECLARE_OVERLAY_SEGMENT(Demo_Kankyo) -DECLARE_OVERLAY_SEGMENT(Bg_Hidan_Fwbig) -DECLARE_OVERLAY_SEGMENT(En_Floormas) -DECLARE_OVERLAY_SEGMENT(En_Heishi1) -DECLARE_OVERLAY_SEGMENT(En_Rd) -DECLARE_OVERLAY_SEGMENT(En_Po_Sisters) -DECLARE_OVERLAY_SEGMENT(Bg_Heavy_Block) -DECLARE_OVERLAY_SEGMENT(Bg_Po_Event) -DECLARE_OVERLAY_SEGMENT(Obj_Mure) -DECLARE_OVERLAY_SEGMENT(En_Sw) -DECLARE_OVERLAY_SEGMENT(Boss_Fd) -DECLARE_OVERLAY_SEGMENT(Object_Kankyo) -DECLARE_OVERLAY_SEGMENT(En_Du) -DECLARE_OVERLAY_SEGMENT(En_Fd) -DECLARE_OVERLAY_SEGMENT(En_Horse_Link_Child) -DECLARE_OVERLAY_SEGMENT(Door_Ana) -DECLARE_OVERLAY_SEGMENT(Bg_Spot02_Objects) -DECLARE_OVERLAY_SEGMENT(Bg_Haka) -DECLARE_OVERLAY_SEGMENT(Magic_Wind) -DECLARE_OVERLAY_SEGMENT(Magic_Fire) -DECLARE_OVERLAY_SEGMENT(En_Ru1) -DECLARE_OVERLAY_SEGMENT(Boss_Fd2) -DECLARE_OVERLAY_SEGMENT(En_Fd_Fire) -DECLARE_OVERLAY_SEGMENT(En_Dh) -DECLARE_OVERLAY_SEGMENT(En_Dha) -DECLARE_OVERLAY_SEGMENT(En_Rl) -DECLARE_OVERLAY_SEGMENT(En_Encount1) -DECLARE_OVERLAY_SEGMENT(Demo_Du) -DECLARE_OVERLAY_SEGMENT(Demo_Im) -DECLARE_OVERLAY_SEGMENT(Demo_Tre_Lgt) -DECLARE_OVERLAY_SEGMENT(En_Fw) -DECLARE_OVERLAY_SEGMENT(Bg_Vb_Sima) -DECLARE_OVERLAY_SEGMENT(En_Vb_Ball) -DECLARE_OVERLAY_SEGMENT(Bg_Haka_Megane) -DECLARE_OVERLAY_SEGMENT(Bg_Haka_MeganeBG) -DECLARE_OVERLAY_SEGMENT(Bg_Haka_Ship) -DECLARE_OVERLAY_SEGMENT(Bg_Haka_Sgami) -DECLARE_OVERLAY_SEGMENT(En_Heishi2) -DECLARE_OVERLAY_SEGMENT(En_Encount2) -DECLARE_OVERLAY_SEGMENT(En_Fire_Rock) -DECLARE_OVERLAY_SEGMENT(En_Brob) -DECLARE_OVERLAY_SEGMENT(Mir_Ray) -DECLARE_OVERLAY_SEGMENT(Bg_Spot09_Obj) -DECLARE_OVERLAY_SEGMENT(Bg_Spot18_Obj) -DECLARE_OVERLAY_SEGMENT(Boss_Va) -DECLARE_OVERLAY_SEGMENT(Bg_Haka_Tubo) -DECLARE_OVERLAY_SEGMENT(Bg_Haka_Trap) -DECLARE_OVERLAY_SEGMENT(Bg_Haka_Huta) -DECLARE_OVERLAY_SEGMENT(Bg_Haka_Zou) -DECLARE_OVERLAY_SEGMENT(Bg_Spot17_Funen) -DECLARE_OVERLAY_SEGMENT(En_Syateki_Itm) -DECLARE_OVERLAY_SEGMENT(En_Syateki_Man) -DECLARE_OVERLAY_SEGMENT(En_Tana) -DECLARE_OVERLAY_SEGMENT(En_Nb) -DECLARE_OVERLAY_SEGMENT(Boss_Mo) -DECLARE_OVERLAY_SEGMENT(En_Sb) -DECLARE_OVERLAY_SEGMENT(En_Bigokuta) -DECLARE_OVERLAY_SEGMENT(En_Karebaba) -DECLARE_OVERLAY_SEGMENT(Bg_Bdan_Objects) -DECLARE_OVERLAY_SEGMENT(Demo_Sa) -DECLARE_OVERLAY_SEGMENT(Demo_Go) -DECLARE_OVERLAY_SEGMENT(En_In) -DECLARE_OVERLAY_SEGMENT(En_Tr) -DECLARE_OVERLAY_SEGMENT(Bg_Spot16_Bombstone) -DECLARE_OVERLAY_SEGMENT(Bg_Hidan_Kowarerukabe) -DECLARE_OVERLAY_SEGMENT(Bg_Bombwall) -DECLARE_OVERLAY_SEGMENT(Bg_Spot08_Iceblock) -DECLARE_OVERLAY_SEGMENT(En_Ru2) -DECLARE_OVERLAY_SEGMENT(Obj_Dekujr) -DECLARE_OVERLAY_SEGMENT(Bg_Mizu_Uzu) -DECLARE_OVERLAY_SEGMENT(Bg_Spot06_Objects) -DECLARE_OVERLAY_SEGMENT(Bg_Ice_Objects) -DECLARE_OVERLAY_SEGMENT(Bg_Haka_Water) -DECLARE_OVERLAY_SEGMENT(En_Ma2) -DECLARE_OVERLAY_SEGMENT(En_Bom_Chu) -DECLARE_OVERLAY_SEGMENT(En_Horse_Game_Check) -DECLARE_OVERLAY_SEGMENT(Boss_Tw) -DECLARE_OVERLAY_SEGMENT(En_Rr) -DECLARE_OVERLAY_SEGMENT(En_Ba) -DECLARE_OVERLAY_SEGMENT(En_Bx) -DECLARE_OVERLAY_SEGMENT(En_Anubice) -DECLARE_OVERLAY_SEGMENT(En_Anubice_Fire) -DECLARE_OVERLAY_SEGMENT(Bg_Mori_Hashigo) -DECLARE_OVERLAY_SEGMENT(Bg_Mori_Hashira4) -DECLARE_OVERLAY_SEGMENT(Bg_Mori_Idomizu) -DECLARE_OVERLAY_SEGMENT(Bg_Spot16_Doughnut) -DECLARE_OVERLAY_SEGMENT(Bg_Bdan_Switch) -DECLARE_OVERLAY_SEGMENT(En_Ma1) -DECLARE_OVERLAY_SEGMENT(Boss_Ganon) -DECLARE_OVERLAY_SEGMENT(Boss_Sst) -DECLARE_OVERLAY_SEGMENT(En_Ny) -DECLARE_OVERLAY_SEGMENT(En_Fr) -DECLARE_OVERLAY_SEGMENT(Item_Shield) -DECLARE_OVERLAY_SEGMENT(Bg_Ice_Shelter) -DECLARE_OVERLAY_SEGMENT(En_Ice_Hono) -DECLARE_OVERLAY_SEGMENT(Item_Ocarina) -DECLARE_OVERLAY_SEGMENT(Magic_Dark) -DECLARE_OVERLAY_SEGMENT(Demo_6K) -DECLARE_OVERLAY_SEGMENT(En_Anubice_Tag) -DECLARE_OVERLAY_SEGMENT(Bg_Haka_Gate) -DECLARE_OVERLAY_SEGMENT(Bg_Spot15_Saku) -DECLARE_OVERLAY_SEGMENT(Bg_Jya_Goroiwa) -DECLARE_OVERLAY_SEGMENT(Bg_Jya_Zurerukabe) -DECLARE_OVERLAY_SEGMENT(Bg_Jya_Cobra) -DECLARE_OVERLAY_SEGMENT(Bg_Jya_Kanaami) -DECLARE_OVERLAY_SEGMENT(Fishing) -DECLARE_OVERLAY_SEGMENT(Obj_Oshihiki) -DECLARE_OVERLAY_SEGMENT(Bg_Gate_Shutter) -DECLARE_OVERLAY_SEGMENT(Eff_Dust) -DECLARE_OVERLAY_SEGMENT(Bg_Spot01_Fusya) -DECLARE_OVERLAY_SEGMENT(Bg_Spot01_Idohashira) -DECLARE_OVERLAY_SEGMENT(Bg_Spot01_Idomizu) -DECLARE_OVERLAY_SEGMENT(Bg_Po_Syokudai) -DECLARE_OVERLAY_SEGMENT(Bg_Ganon_Otyuka) -DECLARE_OVERLAY_SEGMENT(Bg_Spot15_Rrbox) -DECLARE_OVERLAY_SEGMENT(Bg_Umajump) -DECLARE_OVERLAY_SEGMENT(Arrow_Fire) -DECLARE_OVERLAY_SEGMENT(Arrow_Ice) -DECLARE_OVERLAY_SEGMENT(Arrow_Light) -DECLARE_OVERLAY_SEGMENT(Item_Etcetera) -DECLARE_OVERLAY_SEGMENT(Obj_Kibako) -DECLARE_OVERLAY_SEGMENT(Obj_Tsubo) -DECLARE_OVERLAY_SEGMENT(En_Wonder_Item) -DECLARE_OVERLAY_SEGMENT(En_Ik) -DECLARE_OVERLAY_SEGMENT(Demo_Ik) -DECLARE_OVERLAY_SEGMENT(En_Skj) -DECLARE_OVERLAY_SEGMENT(En_Skjneedle) -DECLARE_OVERLAY_SEGMENT(En_G_Switch) -DECLARE_OVERLAY_SEGMENT(Demo_Ext) -DECLARE_OVERLAY_SEGMENT(Demo_Shd) -DECLARE_OVERLAY_SEGMENT(En_Dns) -DECLARE_OVERLAY_SEGMENT(Elf_Msg) -DECLARE_OVERLAY_SEGMENT(En_Honotrap) -DECLARE_OVERLAY_SEGMENT(En_Tubo_Trap) -DECLARE_OVERLAY_SEGMENT(Obj_Ice_Poly) -DECLARE_OVERLAY_SEGMENT(Bg_Spot03_Taki) -DECLARE_OVERLAY_SEGMENT(Bg_Spot07_Taki) -DECLARE_OVERLAY_SEGMENT(En_Fz) -DECLARE_OVERLAY_SEGMENT(En_Po_Relay) -DECLARE_OVERLAY_SEGMENT(Bg_Relay_Objects) -DECLARE_OVERLAY_SEGMENT(En_Diving_Game) -DECLARE_OVERLAY_SEGMENT(En_Kusa) -DECLARE_OVERLAY_SEGMENT(Obj_Bean) -DECLARE_OVERLAY_SEGMENT(Obj_Bombiwa) -DECLARE_OVERLAY_SEGMENT(Obj_Switch) -DECLARE_OVERLAY_SEGMENT(Obj_Elevator) -DECLARE_OVERLAY_SEGMENT(Obj_Lift) -DECLARE_OVERLAY_SEGMENT(Obj_Hsblock) -DECLARE_OVERLAY_SEGMENT(En_Okarina_Tag) -DECLARE_OVERLAY_SEGMENT(En_Yabusame_Mark) -DECLARE_OVERLAY_SEGMENT(En_Goroiwa) -DECLARE_OVERLAY_SEGMENT(En_Ex_Ruppy) -DECLARE_OVERLAY_SEGMENT(En_Toryo) -DECLARE_OVERLAY_SEGMENT(En_Daiku) -DECLARE_OVERLAY_SEGMENT(En_Nwc) -DECLARE_OVERLAY_SEGMENT(En_Blkobj) -DECLARE_OVERLAY_SEGMENT(Item_Inbox) -DECLARE_OVERLAY_SEGMENT(En_Ge1) -DECLARE_OVERLAY_SEGMENT(Obj_Blockstop) -DECLARE_OVERLAY_SEGMENT(En_Sda) -DECLARE_OVERLAY_SEGMENT(En_Clear_Tag) -DECLARE_OVERLAY_SEGMENT(En_Niw_Lady) -DECLARE_OVERLAY_SEGMENT(En_Gm) -DECLARE_OVERLAY_SEGMENT(En_Ms) -DECLARE_OVERLAY_SEGMENT(En_Hs) -DECLARE_OVERLAY_SEGMENT(Bg_Ingate) -DECLARE_OVERLAY_SEGMENT(En_Kanban) -DECLARE_OVERLAY_SEGMENT(En_Heishi3) -DECLARE_OVERLAY_SEGMENT(En_Syateki_Niw) -DECLARE_OVERLAY_SEGMENT(En_Attack_Niw) -DECLARE_OVERLAY_SEGMENT(Bg_Spot01_Idosoko) -DECLARE_OVERLAY_SEGMENT(En_Sa) -DECLARE_OVERLAY_SEGMENT(En_Wonder_Talk) -DECLARE_OVERLAY_SEGMENT(Bg_Gjyo_Bridge) -DECLARE_OVERLAY_SEGMENT(En_Ds) -DECLARE_OVERLAY_SEGMENT(En_Mk) -DECLARE_OVERLAY_SEGMENT(En_Bom_Bowl_Man) -DECLARE_OVERLAY_SEGMENT(En_Bom_Bowl_Pit) -DECLARE_OVERLAY_SEGMENT(En_Owl) -DECLARE_OVERLAY_SEGMENT(En_Ishi) -DECLARE_OVERLAY_SEGMENT(Obj_Hana) -DECLARE_OVERLAY_SEGMENT(Obj_Lightswitch) -DECLARE_OVERLAY_SEGMENT(Obj_Mure2) -DECLARE_OVERLAY_SEGMENT(En_Go) -DECLARE_OVERLAY_SEGMENT(En_Fu) -DECLARE_OVERLAY_SEGMENT(En_Changer) -DECLARE_OVERLAY_SEGMENT(Bg_Jya_Megami) -DECLARE_OVERLAY_SEGMENT(Bg_Jya_Lift) -DECLARE_OVERLAY_SEGMENT(Bg_Jya_Bigmirror) -DECLARE_OVERLAY_SEGMENT(Bg_Jya_Bombchuiwa) -DECLARE_OVERLAY_SEGMENT(Bg_Jya_Amishutter) -DECLARE_OVERLAY_SEGMENT(Bg_Jya_Bombiwa) -DECLARE_OVERLAY_SEGMENT(Bg_Spot18_Basket) -DECLARE_OVERLAY_SEGMENT(En_Ganon_Organ) -DECLARE_OVERLAY_SEGMENT(En_Siofuki) -DECLARE_OVERLAY_SEGMENT(En_Stream) -DECLARE_OVERLAY_SEGMENT(En_Mm) -DECLARE_OVERLAY_SEGMENT(En_Ko) -DECLARE_OVERLAY_SEGMENT(En_Kz) -DECLARE_OVERLAY_SEGMENT(En_Weather_Tag) -DECLARE_OVERLAY_SEGMENT(Bg_Sst_Floor) -DECLARE_OVERLAY_SEGMENT(En_Ani) -DECLARE_OVERLAY_SEGMENT(En_Ex_Item) -DECLARE_OVERLAY_SEGMENT(Bg_Jya_Ironobj) -DECLARE_OVERLAY_SEGMENT(En_Js) -DECLARE_OVERLAY_SEGMENT(En_Jsjutan) -DECLARE_OVERLAY_SEGMENT(En_Cs) -DECLARE_OVERLAY_SEGMENT(En_Md) -DECLARE_OVERLAY_SEGMENT(En_Hy) -DECLARE_OVERLAY_SEGMENT(En_Ganon_Mant) -DECLARE_OVERLAY_SEGMENT(En_Okarina_Effect) -DECLARE_OVERLAY_SEGMENT(En_Mag) -DECLARE_OVERLAY_SEGMENT(Door_Gerudo) -DECLARE_OVERLAY_SEGMENT(Elf_Msg2) -DECLARE_OVERLAY_SEGMENT(Demo_Gt) -DECLARE_OVERLAY_SEGMENT(En_Po_Field) -DECLARE_OVERLAY_SEGMENT(Efc_Erupc) -DECLARE_OVERLAY_SEGMENT(Bg_Zg) -DECLARE_OVERLAY_SEGMENT(En_Heishi4) -DECLARE_OVERLAY_SEGMENT(En_Zl3) -DECLARE_OVERLAY_SEGMENT(Boss_Ganon2) -DECLARE_OVERLAY_SEGMENT(En_Kakasi) -DECLARE_OVERLAY_SEGMENT(En_Takara_Man) -DECLARE_OVERLAY_SEGMENT(Obj_Makeoshihiki) -DECLARE_OVERLAY_SEGMENT(Oceff_Spot) -DECLARE_OVERLAY_SEGMENT(End_Title) -DECLARE_OVERLAY_SEGMENT(En_Torch) -DECLARE_OVERLAY_SEGMENT(Demo_Ec) -DECLARE_OVERLAY_SEGMENT(Shot_Sun) -DECLARE_OVERLAY_SEGMENT(En_Dy_Extra) -DECLARE_OVERLAY_SEGMENT(En_Wonder_Talk2) -DECLARE_OVERLAY_SEGMENT(En_Ge2) -DECLARE_OVERLAY_SEGMENT(Obj_Roomtimer) -DECLARE_OVERLAY_SEGMENT(En_Ssh) -DECLARE_OVERLAY_SEGMENT(En_Sth) -DECLARE_OVERLAY_SEGMENT(Oceff_Wipe) -DECLARE_OVERLAY_SEGMENT(Oceff_Storm) -DECLARE_OVERLAY_SEGMENT(En_Weiyer) -DECLARE_OVERLAY_SEGMENT(Bg_Spot05_Soko) -DECLARE_OVERLAY_SEGMENT(Bg_Jya_1flift) -DECLARE_OVERLAY_SEGMENT(Bg_Jya_Haheniron) -DECLARE_OVERLAY_SEGMENT(Bg_Spot12_Gate) -DECLARE_OVERLAY_SEGMENT(Bg_Spot12_Saku) -DECLARE_OVERLAY_SEGMENT(En_Hintnuts) -DECLARE_OVERLAY_SEGMENT(En_Nutsball) -DECLARE_OVERLAY_SEGMENT(Bg_Spot00_Break) -DECLARE_OVERLAY_SEGMENT(En_Shopnuts) -DECLARE_OVERLAY_SEGMENT(En_It) -DECLARE_OVERLAY_SEGMENT(En_GeldB) -DECLARE_OVERLAY_SEGMENT(Oceff_Wipe2) -DECLARE_OVERLAY_SEGMENT(Oceff_Wipe3) -DECLARE_OVERLAY_SEGMENT(En_Niw_Girl) -DECLARE_OVERLAY_SEGMENT(En_Dog) -DECLARE_OVERLAY_SEGMENT(En_Si) -DECLARE_OVERLAY_SEGMENT(Bg_Spot01_Objects2) -DECLARE_OVERLAY_SEGMENT(Obj_Comb) -DECLARE_OVERLAY_SEGMENT(Bg_Spot11_Bakudankabe) -DECLARE_OVERLAY_SEGMENT(Obj_Kibako2) -DECLARE_OVERLAY_SEGMENT(En_Dnt_Demo) -DECLARE_OVERLAY_SEGMENT(En_Dnt_Jiji) -DECLARE_OVERLAY_SEGMENT(En_Dnt_Nomal) -DECLARE_OVERLAY_SEGMENT(En_Guest) -DECLARE_OVERLAY_SEGMENT(Bg_Bom_Guard) -DECLARE_OVERLAY_SEGMENT(En_Hs2) -DECLARE_OVERLAY_SEGMENT(Demo_Kekkai) -DECLARE_OVERLAY_SEGMENT(Bg_Spot08_Bakudankabe) -DECLARE_OVERLAY_SEGMENT(Bg_Spot17_Bakudankabe) -DECLARE_OVERLAY_SEGMENT(Obj_Mure3) -DECLARE_OVERLAY_SEGMENT(En_Tg) -DECLARE_OVERLAY_SEGMENT(En_Mu) -DECLARE_OVERLAY_SEGMENT(En_Go2) -DECLARE_OVERLAY_SEGMENT(En_Wf) -DECLARE_OVERLAY_SEGMENT(En_Skb) -DECLARE_OVERLAY_SEGMENT(Demo_Gj) -DECLARE_OVERLAY_SEGMENT(Demo_Geff) -DECLARE_OVERLAY_SEGMENT(Bg_Gnd_Firemeiro) -DECLARE_OVERLAY_SEGMENT(Bg_Gnd_Darkmeiro) -DECLARE_OVERLAY_SEGMENT(Bg_Gnd_Soulmeiro) -DECLARE_OVERLAY_SEGMENT(Bg_Gnd_Nisekabe) -DECLARE_OVERLAY_SEGMENT(Bg_Gnd_Iceblock) -DECLARE_OVERLAY_SEGMENT(En_Gb) -DECLARE_OVERLAY_SEGMENT(En_Gs) -DECLARE_OVERLAY_SEGMENT(Bg_Mizu_Bwall) -DECLARE_OVERLAY_SEGMENT(Bg_Mizu_Shutter) -DECLARE_OVERLAY_SEGMENT(En_Daiku_Kakariko) -DECLARE_OVERLAY_SEGMENT(Bg_Bowl_Wall) -DECLARE_OVERLAY_SEGMENT(En_Wall_Tubo) -DECLARE_OVERLAY_SEGMENT(En_Po_Desert) -DECLARE_OVERLAY_SEGMENT(En_Crow) -DECLARE_OVERLAY_SEGMENT(Door_Killer) -DECLARE_OVERLAY_SEGMENT(Bg_Spot11_Oasis) -DECLARE_OVERLAY_SEGMENT(Bg_Spot18_Futa) -DECLARE_OVERLAY_SEGMENT(Bg_Spot18_Shutter) -DECLARE_OVERLAY_SEGMENT(En_Ma3) -DECLARE_OVERLAY_SEGMENT(En_Cow) -DECLARE_OVERLAY_SEGMENT(Bg_Ice_Turara) -DECLARE_OVERLAY_SEGMENT(Bg_Ice_Shutter) -DECLARE_OVERLAY_SEGMENT(En_Kakasi2) -DECLARE_OVERLAY_SEGMENT(En_Kakasi3) -DECLARE_OVERLAY_SEGMENT(Oceff_Wipe4) -DECLARE_OVERLAY_SEGMENT(En_Eg) -DECLARE_OVERLAY_SEGMENT(Bg_Menkuri_Nisekabe) -DECLARE_OVERLAY_SEGMENT(En_Zo) -DECLARE_OVERLAY_SEGMENT(Obj_Makekinsuta) -DECLARE_OVERLAY_SEGMENT(En_Ge3) -DECLARE_OVERLAY_SEGMENT(Obj_Timeblock) -DECLARE_OVERLAY_SEGMENT(Obj_Hamishi) -DECLARE_OVERLAY_SEGMENT(En_Zl4) -DECLARE_OVERLAY_SEGMENT(En_Mm2) -DECLARE_OVERLAY_SEGMENT(Bg_Jya_Block) -DECLARE_OVERLAY_SEGMENT(Obj_Warp2block) - -DECLARE_ROM_SEGMENT(gameplay_keep) -DECLARE_ROM_SEGMENT(gameplay_field_keep) -DECLARE_ROM_SEGMENT(gameplay_dangeon_keep) -DECLARE_ROM_SEGMENT(object_human) -DECLARE_ROM_SEGMENT(object_okuta) -DECLARE_ROM_SEGMENT(object_crow) -DECLARE_ROM_SEGMENT(object_poh) -DECLARE_ROM_SEGMENT(object_dy_obj) -DECLARE_ROM_SEGMENT(object_wallmaster) -DECLARE_ROM_SEGMENT(object_dodongo) -DECLARE_ROM_SEGMENT(object_firefly) -DECLARE_ROM_SEGMENT(object_box) -DECLARE_ROM_SEGMENT(object_fire) -DECLARE_ROM_SEGMENT(object_bubble) -DECLARE_ROM_SEGMENT(object_niw) -DECLARE_ROM_SEGMENT(object_link_boy) -DECLARE_ROM_SEGMENT(object_link_child) -DECLARE_ROM_SEGMENT(object_tite) -DECLARE_ROM_SEGMENT(object_reeba) -DECLARE_ROM_SEGMENT(object_peehat) -DECLARE_ROM_SEGMENT(object_kingdodongo) -DECLARE_ROM_SEGMENT(object_horse) -DECLARE_ROM_SEGMENT(object_zf) -DECLARE_ROM_SEGMENT(object_goma) -DECLARE_ROM_SEGMENT(object_zl1) -DECLARE_ROM_SEGMENT(object_gol) -DECLARE_ROM_SEGMENT(object_dodojr) -DECLARE_ROM_SEGMENT(object_torch2) -DECLARE_ROM_SEGMENT(object_bl) -DECLARE_ROM_SEGMENT(object_tp) -DECLARE_ROM_SEGMENT(object_oA1) -DECLARE_ROM_SEGMENT(object_st) -DECLARE_ROM_SEGMENT(object_bw) -DECLARE_ROM_SEGMENT(object_ei) -DECLARE_ROM_SEGMENT(object_horse_normal) -DECLARE_ROM_SEGMENT(object_oB1) -DECLARE_ROM_SEGMENT(object_o_anime) -DECLARE_ROM_SEGMENT(object_spot04_objects) -DECLARE_ROM_SEGMENT(object_ddan_objects) -DECLARE_ROM_SEGMENT(object_hidan_objects) -DECLARE_ROM_SEGMENT(object_horse_ganon) -DECLARE_ROM_SEGMENT(object_oA2) -DECLARE_ROM_SEGMENT(object_spot00_objects) -DECLARE_ROM_SEGMENT(object_mb) -DECLARE_ROM_SEGMENT(object_bombf) -DECLARE_ROM_SEGMENT(object_sk2) -DECLARE_ROM_SEGMENT(object_oE1) -DECLARE_ROM_SEGMENT(object_oE_anime) -DECLARE_ROM_SEGMENT(object_oE2) -DECLARE_ROM_SEGMENT(object_ydan_objects) -DECLARE_ROM_SEGMENT(object_gnd) -DECLARE_ROM_SEGMENT(object_am) -DECLARE_ROM_SEGMENT(object_dekubaba) -DECLARE_ROM_SEGMENT(object_oA3) -DECLARE_ROM_SEGMENT(object_oA4) -DECLARE_ROM_SEGMENT(object_oA5) -DECLARE_ROM_SEGMENT(object_oA6) -DECLARE_ROM_SEGMENT(object_oA7) -DECLARE_ROM_SEGMENT(object_jj) -DECLARE_ROM_SEGMENT(object_oA8) -DECLARE_ROM_SEGMENT(object_oA9) -DECLARE_ROM_SEGMENT(object_oB2) -DECLARE_ROM_SEGMENT(object_oB3) -DECLARE_ROM_SEGMENT(object_oB4) -DECLARE_ROM_SEGMENT(object_horse_zelda) -DECLARE_ROM_SEGMENT(object_opening_demo1) -DECLARE_ROM_SEGMENT(object_warp1) -DECLARE_ROM_SEGMENT(object_b_heart) -DECLARE_ROM_SEGMENT(object_dekunuts) -DECLARE_ROM_SEGMENT(object_oE3) -DECLARE_ROM_SEGMENT(object_oE4) -DECLARE_ROM_SEGMENT(object_menkuri_objects) -DECLARE_ROM_SEGMENT(object_oE5) -DECLARE_ROM_SEGMENT(object_oE6) -DECLARE_ROM_SEGMENT(object_oE7) -DECLARE_ROM_SEGMENT(object_oE8) -DECLARE_ROM_SEGMENT(object_oE9) -DECLARE_ROM_SEGMENT(object_oE10) -DECLARE_ROM_SEGMENT(object_oE11) -DECLARE_ROM_SEGMENT(object_oE12) -DECLARE_ROM_SEGMENT(object_vali) -DECLARE_ROM_SEGMENT(object_oA10) -DECLARE_ROM_SEGMENT(object_oA11) -DECLARE_ROM_SEGMENT(object_mizu_objects) -DECLARE_ROM_SEGMENT(object_fhg) -DECLARE_ROM_SEGMENT(object_ossan) -DECLARE_ROM_SEGMENT(object_mori_hineri1) -DECLARE_ROM_SEGMENT(object_Bb) -DECLARE_ROM_SEGMENT(object_toki_objects) -DECLARE_ROM_SEGMENT(object_yukabyun) -DECLARE_ROM_SEGMENT(object_zl2) -DECLARE_ROM_SEGMENT(object_mjin) -DECLARE_ROM_SEGMENT(object_mjin_flash) -DECLARE_ROM_SEGMENT(object_mjin_dark) -DECLARE_ROM_SEGMENT(object_mjin_flame) -DECLARE_ROM_SEGMENT(object_mjin_ice) -DECLARE_ROM_SEGMENT(object_mjin_soul) -DECLARE_ROM_SEGMENT(object_mjin_wind) -DECLARE_ROM_SEGMENT(object_mjin_oka) -DECLARE_ROM_SEGMENT(object_haka_objects) -DECLARE_ROM_SEGMENT(object_spot06_objects) -DECLARE_ROM_SEGMENT(object_ice_objects) -DECLARE_ROM_SEGMENT(object_relay_objects) -DECLARE_ROM_SEGMENT(object_po_field) -DECLARE_ROM_SEGMENT(object_po_composer) -DECLARE_ROM_SEGMENT(object_mori_hineri1a) -DECLARE_ROM_SEGMENT(object_mori_hineri2) -DECLARE_ROM_SEGMENT(object_mori_hineri2a) -DECLARE_ROM_SEGMENT(object_mori_objects) -DECLARE_ROM_SEGMENT(object_mori_tex) -DECLARE_ROM_SEGMENT(object_spot08_obj) -DECLARE_ROM_SEGMENT(object_warp2) -DECLARE_ROM_SEGMENT(object_hata) -DECLARE_ROM_SEGMENT(object_bird) -DECLARE_ROM_SEGMENT(object_wood02) -DECLARE_ROM_SEGMENT(object_lightbox) -DECLARE_ROM_SEGMENT(object_pu_box) -DECLARE_ROM_SEGMENT(object_trap) -DECLARE_ROM_SEGMENT(object_vase) -DECLARE_ROM_SEGMENT(object_im) -DECLARE_ROM_SEGMENT(object_ta) -DECLARE_ROM_SEGMENT(object_tk) -DECLARE_ROM_SEGMENT(object_xc) -DECLARE_ROM_SEGMENT(object_vm) -DECLARE_ROM_SEGMENT(object_bv) -DECLARE_ROM_SEGMENT(object_hakach_objects) -DECLARE_ROM_SEGMENT(object_efc_crystal_light) -DECLARE_ROM_SEGMENT(object_efc_fire_ball) -DECLARE_ROM_SEGMENT(object_efc_flash) -DECLARE_ROM_SEGMENT(object_efc_lgt_shower) -DECLARE_ROM_SEGMENT(object_efc_star_field) -DECLARE_ROM_SEGMENT(object_god_lgt) -DECLARE_ROM_SEGMENT(object_light_ring) -DECLARE_ROM_SEGMENT(object_triforce_spot) -DECLARE_ROM_SEGMENT(object_bdan_objects) -DECLARE_ROM_SEGMENT(object_sd) -DECLARE_ROM_SEGMENT(object_rd) -DECLARE_ROM_SEGMENT(object_po_sisters) -DECLARE_ROM_SEGMENT(object_heavy_object) -DECLARE_ROM_SEGMENT(object_gndd) -DECLARE_ROM_SEGMENT(object_fd) -DECLARE_ROM_SEGMENT(object_du) -DECLARE_ROM_SEGMENT(object_fw) -DECLARE_ROM_SEGMENT(object_medal) -DECLARE_ROM_SEGMENT(object_horse_link_child) -DECLARE_ROM_SEGMENT(object_spot02_objects) -DECLARE_ROM_SEGMENT(object_haka) -DECLARE_ROM_SEGMENT(object_ru1) -DECLARE_ROM_SEGMENT(object_syokudai) -DECLARE_ROM_SEGMENT(object_fd2) -DECLARE_ROM_SEGMENT(object_dh) -DECLARE_ROM_SEGMENT(object_rl) -DECLARE_ROM_SEGMENT(object_efc_tw) -DECLARE_ROM_SEGMENT(object_demo_tre_lgt) -DECLARE_ROM_SEGMENT(object_gi_key) -DECLARE_ROM_SEGMENT(object_mir_ray) -DECLARE_ROM_SEGMENT(object_brob) -DECLARE_ROM_SEGMENT(object_gi_jewel) -DECLARE_ROM_SEGMENT(object_spot09_obj) -DECLARE_ROM_SEGMENT(object_spot18_obj) -DECLARE_ROM_SEGMENT(object_bdoor) -DECLARE_ROM_SEGMENT(object_spot17_obj) -DECLARE_ROM_SEGMENT(object_shop_dungen) -DECLARE_ROM_SEGMENT(object_nb) -DECLARE_ROM_SEGMENT(object_mo) -DECLARE_ROM_SEGMENT(object_sb) -DECLARE_ROM_SEGMENT(object_gi_melody) -DECLARE_ROM_SEGMENT(object_gi_heart) -DECLARE_ROM_SEGMENT(object_gi_compass) -DECLARE_ROM_SEGMENT(object_gi_bosskey) -DECLARE_ROM_SEGMENT(object_gi_medal) -DECLARE_ROM_SEGMENT(object_gi_nuts) -DECLARE_ROM_SEGMENT(object_sa) -DECLARE_ROM_SEGMENT(object_gi_hearts) -DECLARE_ROM_SEGMENT(object_gi_arrowcase) -DECLARE_ROM_SEGMENT(object_gi_bombpouch) -DECLARE_ROM_SEGMENT(object_in) -DECLARE_ROM_SEGMENT(object_tr) -DECLARE_ROM_SEGMENT(object_spot16_obj) -DECLARE_ROM_SEGMENT(object_oE1s) -DECLARE_ROM_SEGMENT(object_oE4s) -DECLARE_ROM_SEGMENT(object_os_anime) -DECLARE_ROM_SEGMENT(object_gi_bottle) -DECLARE_ROM_SEGMENT(object_gi_stick) -DECLARE_ROM_SEGMENT(object_gi_map) -DECLARE_ROM_SEGMENT(object_oF1d_map) -DECLARE_ROM_SEGMENT(object_ru2) -DECLARE_ROM_SEGMENT(object_gi_shield_1) -DECLARE_ROM_SEGMENT(object_dekujr) -DECLARE_ROM_SEGMENT(object_gi_magicpot) -DECLARE_ROM_SEGMENT(object_gi_bomb_1) -DECLARE_ROM_SEGMENT(object_oF1s) -DECLARE_ROM_SEGMENT(object_ma2) -DECLARE_ROM_SEGMENT(object_gi_purse) -DECLARE_ROM_SEGMENT(object_hni) -DECLARE_ROM_SEGMENT(object_tw) -DECLARE_ROM_SEGMENT(object_rr) -DECLARE_ROM_SEGMENT(object_bxa) -DECLARE_ROM_SEGMENT(object_anubice) -DECLARE_ROM_SEGMENT(object_gi_gerudo) -DECLARE_ROM_SEGMENT(object_gi_arrow) -DECLARE_ROM_SEGMENT(object_gi_bomb_2) -DECLARE_ROM_SEGMENT(object_gi_egg) -DECLARE_ROM_SEGMENT(object_gi_scale) -DECLARE_ROM_SEGMENT(object_gi_shield_2) -DECLARE_ROM_SEGMENT(object_gi_hookshot) -DECLARE_ROM_SEGMENT(object_gi_ocarina) -DECLARE_ROM_SEGMENT(object_gi_milk) -DECLARE_ROM_SEGMENT(object_ma1) -DECLARE_ROM_SEGMENT(object_ganon) -DECLARE_ROM_SEGMENT(object_sst) -DECLARE_ROM_SEGMENT(object_ny) -DECLARE_ROM_SEGMENT(object_ny) -DECLARE_ROM_SEGMENT(object_fr) -DECLARE_ROM_SEGMENT(object_gi_pachinko) -DECLARE_ROM_SEGMENT(object_gi_boomerang) -DECLARE_ROM_SEGMENT(object_gi_bow) -DECLARE_ROM_SEGMENT(object_gi_glasses) -DECLARE_ROM_SEGMENT(object_gi_liquid) -DECLARE_ROM_SEGMENT(object_ani) -DECLARE_ROM_SEGMENT(object_demo_6k) -DECLARE_ROM_SEGMENT(object_gi_shield_3) -DECLARE_ROM_SEGMENT(object_gi_letter) -DECLARE_ROM_SEGMENT(object_spot15_obj) -DECLARE_ROM_SEGMENT(object_jya_obj) -DECLARE_ROM_SEGMENT(object_gi_clothes) -DECLARE_ROM_SEGMENT(object_gi_bean) -DECLARE_ROM_SEGMENT(object_gi_fish) -DECLARE_ROM_SEGMENT(object_gi_saw) -DECLARE_ROM_SEGMENT(object_gi_hammer) -DECLARE_ROM_SEGMENT(object_gi_grass) -DECLARE_ROM_SEGMENT(object_gi_longsword) -DECLARE_ROM_SEGMENT(object_spot01_objects) -DECLARE_ROM_SEGMENT(object_md) -DECLARE_ROM_SEGMENT(object_md) -DECLARE_ROM_SEGMENT(object_km1) -DECLARE_ROM_SEGMENT(object_kw1) -DECLARE_ROM_SEGMENT(object_zo) -DECLARE_ROM_SEGMENT(object_kz) -DECLARE_ROM_SEGMENT(object_umajump) -DECLARE_ROM_SEGMENT(object_masterkokiri) -DECLARE_ROM_SEGMENT(object_masterkokirihead) -DECLARE_ROM_SEGMENT(object_mastergolon) -DECLARE_ROM_SEGMENT(object_masterzoora) -DECLARE_ROM_SEGMENT(object_aob) -DECLARE_ROM_SEGMENT(object_ik) -DECLARE_ROM_SEGMENT(object_ahg) -DECLARE_ROM_SEGMENT(object_cne) -DECLARE_ROM_SEGMENT(object_gi_niwatori) -DECLARE_ROM_SEGMENT(object_skj) -DECLARE_ROM_SEGMENT(object_gi_bottle_letter) -DECLARE_ROM_SEGMENT(object_bji) -DECLARE_ROM_SEGMENT(object_bba) -DECLARE_ROM_SEGMENT(object_gi_ocarina_0) -DECLARE_ROM_SEGMENT(object_ds) -DECLARE_ROM_SEGMENT(object_ane) -DECLARE_ROM_SEGMENT(object_boj) -DECLARE_ROM_SEGMENT(object_spot03_object) -DECLARE_ROM_SEGMENT(object_spot07_object) -DECLARE_ROM_SEGMENT(object_fz) -DECLARE_ROM_SEGMENT(object_bob) -DECLARE_ROM_SEGMENT(object_ge1) -DECLARE_ROM_SEGMENT(object_yabusame_point) -DECLARE_ROM_SEGMENT(object_gi_boots_2) -DECLARE_ROM_SEGMENT(object_gi_seed) -DECLARE_ROM_SEGMENT(object_gnd_magic) -DECLARE_ROM_SEGMENT(object_d_elevator) -DECLARE_ROM_SEGMENT(object_d_hsblock) -DECLARE_ROM_SEGMENT(object_d_lift) -DECLARE_ROM_SEGMENT(object_mamenoki) -DECLARE_ROM_SEGMENT(object_goroiwa) -DECLARE_ROM_SEGMENT(object_toryo) -DECLARE_ROM_SEGMENT(object_daiku) -DECLARE_ROM_SEGMENT(object_nwc) -DECLARE_ROM_SEGMENT(object_blkobj) -DECLARE_ROM_SEGMENT(object_gm) -DECLARE_ROM_SEGMENT(object_ms) -DECLARE_ROM_SEGMENT(object_hs) -DECLARE_ROM_SEGMENT(object_ingate) -DECLARE_ROM_SEGMENT(object_lightswitch) -DECLARE_ROM_SEGMENT(object_kusa) -DECLARE_ROM_SEGMENT(object_tsubo) -DECLARE_ROM_SEGMENT(object_gi_gloves) -DECLARE_ROM_SEGMENT(object_gi_coin) -DECLARE_ROM_SEGMENT(object_kanban) -DECLARE_ROM_SEGMENT(object_gjyo_objects) -DECLARE_ROM_SEGMENT(object_owl) -DECLARE_ROM_SEGMENT(object_mk) -DECLARE_ROM_SEGMENT(object_fu) -DECLARE_ROM_SEGMENT(object_gi_ki_tan_mask) -DECLARE_ROM_SEGMENT(object_gi_redead_mask) -DECLARE_ROM_SEGMENT(object_gi_skj_mask) -DECLARE_ROM_SEGMENT(object_gi_rabit_mask) -DECLARE_ROM_SEGMENT(object_gi_truth_mask) -DECLARE_ROM_SEGMENT(object_ganon_objects) -DECLARE_ROM_SEGMENT(object_siofuki) -DECLARE_ROM_SEGMENT(object_stream) -DECLARE_ROM_SEGMENT(object_mm) -DECLARE_ROM_SEGMENT(object_fa) -DECLARE_ROM_SEGMENT(object_os) -DECLARE_ROM_SEGMENT(object_gi_eye_lotion) -DECLARE_ROM_SEGMENT(object_gi_powder) -DECLARE_ROM_SEGMENT(object_gi_mushroom) -DECLARE_ROM_SEGMENT(object_gi_ticketstone) -DECLARE_ROM_SEGMENT(object_gi_brokensword) -DECLARE_ROM_SEGMENT(object_js) -DECLARE_ROM_SEGMENT(object_cs) -DECLARE_ROM_SEGMENT(object_gi_prescription) -DECLARE_ROM_SEGMENT(object_gi_bracelet) -DECLARE_ROM_SEGMENT(object_gi_soldout) -DECLARE_ROM_SEGMENT(object_gi_frog) -DECLARE_ROM_SEGMENT(object_mag) -DECLARE_ROM_SEGMENT(object_door_gerudo) -DECLARE_ROM_SEGMENT(object_gt) -DECLARE_ROM_SEGMENT(object_efc_erupc) -DECLARE_ROM_SEGMENT(object_zl2_anime1) -DECLARE_ROM_SEGMENT(object_zl2_anime2) -DECLARE_ROM_SEGMENT(object_gi_golonmask) -DECLARE_ROM_SEGMENT(object_gi_zoramask) -DECLARE_ROM_SEGMENT(object_gi_gerudomask) -DECLARE_ROM_SEGMENT(object_ganon2) -DECLARE_ROM_SEGMENT(object_ka) -DECLARE_ROM_SEGMENT(object_ts) -DECLARE_ROM_SEGMENT(object_zg) -DECLARE_ROM_SEGMENT(object_gi_hoverboots) -DECLARE_ROM_SEGMENT(object_gi_m_arrow) -DECLARE_ROM_SEGMENT(object_ds2) -DECLARE_ROM_SEGMENT(object_ec) -DECLARE_ROM_SEGMENT(object_fish) -DECLARE_ROM_SEGMENT(object_gi_sutaru) -DECLARE_ROM_SEGMENT(object_gi_goddess) -DECLARE_ROM_SEGMENT(object_ssh) -DECLARE_ROM_SEGMENT(object_bigokuta) -DECLARE_ROM_SEGMENT(object_bg) -DECLARE_ROM_SEGMENT(object_spot05_objects) -DECLARE_ROM_SEGMENT(object_spot12_obj) -DECLARE_ROM_SEGMENT(object_bombiwa) -DECLARE_ROM_SEGMENT(object_hintnuts) -DECLARE_ROM_SEGMENT(object_rs) -DECLARE_ROM_SEGMENT(object_spot00_break) -DECLARE_ROM_SEGMENT(object_gla) -DECLARE_ROM_SEGMENT(object_shopnuts) -DECLARE_ROM_SEGMENT(object_geldb) -DECLARE_ROM_SEGMENT(object_gr) -DECLARE_ROM_SEGMENT(object_dog) -DECLARE_ROM_SEGMENT(object_jya_iron) -DECLARE_ROM_SEGMENT(object_jya_door) -DECLARE_ROM_SEGMENT(object_spot11_obj) -DECLARE_ROM_SEGMENT(object_kibako2) -DECLARE_ROM_SEGMENT(object_dns) -DECLARE_ROM_SEGMENT(object_dnk) -DECLARE_ROM_SEGMENT(object_gi_fire) -DECLARE_ROM_SEGMENT(object_gi_insect) -DECLARE_ROM_SEGMENT(object_gi_butterfly) -DECLARE_ROM_SEGMENT(object_gi_ghost) -DECLARE_ROM_SEGMENT(object_gi_soul) -DECLARE_ROM_SEGMENT(object_bowl) -DECLARE_ROM_SEGMENT(object_demo_kekkai) -DECLARE_ROM_SEGMENT(object_efc_doughnut) -DECLARE_ROM_SEGMENT(object_gi_dekupouch) -DECLARE_ROM_SEGMENT(object_ganon_anime1) -DECLARE_ROM_SEGMENT(object_ganon_anime2) -DECLARE_ROM_SEGMENT(object_ganon_anime3) -DECLARE_ROM_SEGMENT(object_gi_rupy) -DECLARE_ROM_SEGMENT(object_spot01_matoya) -DECLARE_ROM_SEGMENT(object_spot01_matoyab) -DECLARE_ROM_SEGMENT(object_mu) -DECLARE_ROM_SEGMENT(object_wf) -DECLARE_ROM_SEGMENT(object_skb) -DECLARE_ROM_SEGMENT(object_gj) -DECLARE_ROM_SEGMENT(object_geff) -DECLARE_ROM_SEGMENT(object_haka_door) -DECLARE_ROM_SEGMENT(object_gs) -DECLARE_ROM_SEGMENT(object_ps) -DECLARE_ROM_SEGMENT(object_bwall) -DECLARE_ROM_SEGMENT(object_cow) -DECLARE_ROM_SEGMENT(object_cob) -DECLARE_ROM_SEGMENT(object_gi_sword_1) -DECLARE_ROM_SEGMENT(object_door_killer) -DECLARE_ROM_SEGMENT(object_ouke_haka) -DECLARE_ROM_SEGMENT(object_timeblock) -DECLARE_ROM_SEGMENT(object_zl4) - DECLARE_ROM_SEGMENT(g_pn_01) DECLARE_ROM_SEGMENT(g_pn_02) DECLARE_ROM_SEGMENT(g_pn_03) diff --git a/include/tables/actor_table.h b/include/tables/actor_table.h new file mode 100644 index 0000000000..cdbebbc630 --- /dev/null +++ b/include/tables/actor_table.h @@ -0,0 +1,483 @@ +/** + * Actor Table + * + * DEFINE_ACTOR should be used for normal actors + * - Argument 1: Name of the actor (without the ovl_ part) + * - Argument 2: Enum value for this actor + * - Argument 3: Allocation type (normal, permanent or absolute) + * + * DEFINE_ACTOR_INTERNAL should be used for actors that aren't an overlay, with the same arguments as DEFINE_ACTOR + * + * DEFINE_ACTOR_UNSET is needed to define empty entries from the original game + */ +/* 0x0000 */ DEFINE_ACTOR_INTERNAL(Player, ACTOR_PLAYER, ALLOCTYPE_NORMAL) +/* 0x0001 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_1) +/* 0x0002 */ DEFINE_ACTOR(En_Test, ACTOR_EN_TEST, ALLOCTYPE_NORMAL) +/* 0x0003 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_3) +/* 0x0004 */ DEFINE_ACTOR(En_GirlA, ACTOR_EN_GIRLA, ALLOCTYPE_NORMAL) +/* 0x0005 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_5) +/* 0x0006 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_6) +/* 0x0007 */ DEFINE_ACTOR(En_Part, ACTOR_EN_PART, ALLOCTYPE_NORMAL) +/* 0x0008 */ DEFINE_ACTOR(En_Light, ACTOR_EN_LIGHT, ALLOCTYPE_NORMAL) +/* 0x0009 */ DEFINE_ACTOR(En_Door, ACTOR_EN_DOOR, ALLOCTYPE_PERMANENT) +/* 0x000A */ DEFINE_ACTOR(En_Box, ACTOR_EN_BOX, ALLOCTYPE_NORMAL) +/* 0x000B */ DEFINE_ACTOR(Bg_Dy_Yoseizo, ACTOR_BG_DY_YOSEIZO, ALLOCTYPE_NORMAL) +/* 0x000C */ DEFINE_ACTOR(Bg_Hidan_Firewall, ACTOR_BG_HIDAN_FIREWALL, ALLOCTYPE_NORMAL) +/* 0x000D */ DEFINE_ACTOR(En_Poh, ACTOR_EN_POH, ALLOCTYPE_NORMAL) +/* 0x000E */ DEFINE_ACTOR(En_Okuta, ACTOR_EN_OKUTA, ALLOCTYPE_NORMAL) +/* 0x000F */ DEFINE_ACTOR(Bg_Ydan_Sp, ACTOR_BG_YDAN_SP, ALLOCTYPE_NORMAL) +/* 0x0010 */ DEFINE_ACTOR(En_Bom, ACTOR_EN_BOM, ALLOCTYPE_PERMANENT) +/* 0x0011 */ DEFINE_ACTOR(En_Wallmas, ACTOR_EN_WALLMAS, ALLOCTYPE_NORMAL) +/* 0x0012 */ DEFINE_ACTOR(En_Dodongo, ACTOR_EN_DODONGO, ALLOCTYPE_NORMAL) +/* 0x0013 */ DEFINE_ACTOR(En_Firefly, ACTOR_EN_FIREFLY, ALLOCTYPE_NORMAL) +/* 0x0014 */ DEFINE_ACTOR(En_Horse, ACTOR_EN_HORSE, ALLOCTYPE_NORMAL) +/* 0x0015 */ DEFINE_ACTOR_INTERNAL(En_Item00, ACTOR_EN_ITEM00, ALLOCTYPE_NORMAL) +/* 0x0016 */ DEFINE_ACTOR(En_Arrow, ACTOR_EN_ARROW, ALLOCTYPE_PERMANENT) +/* 0x0017 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_17) +/* 0x0018 */ DEFINE_ACTOR(En_Elf, ACTOR_EN_ELF, ALLOCTYPE_NORMAL) +/* 0x0019 */ DEFINE_ACTOR(En_Niw, ACTOR_EN_NIW, ALLOCTYPE_NORMAL) +/* 0x001A */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_1A) +/* 0x001B */ DEFINE_ACTOR(En_Tite, ACTOR_EN_TITE, ALLOCTYPE_NORMAL) +/* 0x001C */ DEFINE_ACTOR(En_Reeba, ACTOR_EN_REEBA, ALLOCTYPE_NORMAL) +/* 0x001D */ DEFINE_ACTOR(En_Peehat, ACTOR_EN_PEEHAT, ALLOCTYPE_NORMAL) +/* 0x001E */ DEFINE_ACTOR(En_Butte, ACTOR_EN_BUTTE, ALLOCTYPE_NORMAL) +/* 0x001F */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_1F) +/* 0x0020 */ DEFINE_ACTOR(En_Insect, ACTOR_EN_INSECT, ALLOCTYPE_NORMAL) +/* 0x0021 */ DEFINE_ACTOR(En_Fish, ACTOR_EN_FISH, ALLOCTYPE_NORMAL) +/* 0x0022 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_22) +/* 0x0023 */ DEFINE_ACTOR(En_Holl, ACTOR_EN_HOLL, ALLOCTYPE_PERMANENT) +/* 0x0024 */ DEFINE_ACTOR(En_Scene_Change, ACTOR_EN_SCENE_CHANGE, ALLOCTYPE_NORMAL) +/* 0x0025 */ DEFINE_ACTOR(En_Zf, ACTOR_EN_ZF, ALLOCTYPE_NORMAL) +/* 0x0026 */ DEFINE_ACTOR(En_Hata, ACTOR_EN_HATA, ALLOCTYPE_NORMAL) +/* 0x0027 */ DEFINE_ACTOR(Boss_Dodongo, ACTOR_BOSS_DODONGO, ALLOCTYPE_NORMAL) +/* 0x0028 */ DEFINE_ACTOR(Boss_Goma, ACTOR_BOSS_GOMA, ALLOCTYPE_NORMAL) +/* 0x0029 */ DEFINE_ACTOR(En_Zl1, ACTOR_EN_ZL1, ALLOCTYPE_NORMAL) +/* 0x002A */ DEFINE_ACTOR(En_Viewer, ACTOR_EN_VIEWER, ALLOCTYPE_NORMAL) +/* 0x002B */ DEFINE_ACTOR(En_Goma, ACTOR_EN_GOMA, ALLOCTYPE_NORMAL) +/* 0x002C */ DEFINE_ACTOR(Bg_Pushbox, ACTOR_BG_PUSHBOX, ALLOCTYPE_NORMAL) +/* 0x002D */ DEFINE_ACTOR(En_Bubble, ACTOR_EN_BUBBLE, ALLOCTYPE_NORMAL) +/* 0x002E */ DEFINE_ACTOR(Door_Shutter, ACTOR_DOOR_SHUTTER, ALLOCTYPE_PERMANENT) +/* 0x002F */ DEFINE_ACTOR(En_Dodojr, ACTOR_EN_DODOJR, ALLOCTYPE_NORMAL) +/* 0x0030 */ DEFINE_ACTOR(En_Bdfire, ACTOR_EN_BDFIRE, ALLOCTYPE_NORMAL) +/* 0x0031 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_31) +/* 0x0032 */ DEFINE_ACTOR(En_Boom, ACTOR_EN_BOOM, ALLOCTYPE_PERMANENT) +/* 0x0033 */ DEFINE_ACTOR(En_Torch2, ACTOR_EN_TORCH2, ALLOCTYPE_NORMAL) +/* 0x0034 */ DEFINE_ACTOR(En_Bili, ACTOR_EN_BILI, ALLOCTYPE_NORMAL) +/* 0x0035 */ DEFINE_ACTOR(En_Tp, ACTOR_EN_TP, ALLOCTYPE_NORMAL) +/* 0x0036 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_36) +/* 0x0037 */ DEFINE_ACTOR(En_St, ACTOR_EN_ST, ALLOCTYPE_NORMAL) +/* 0x0038 */ DEFINE_ACTOR(En_Bw, ACTOR_EN_BW, ALLOCTYPE_NORMAL) +/* 0x0039 */ DEFINE_ACTOR_INTERNAL(En_A_Obj, ACTOR_EN_A_OBJ, ALLOCTYPE_NORMAL) +/* 0x003A */ DEFINE_ACTOR(En_Eiyer, ACTOR_EN_EIYER, ALLOCTYPE_NORMAL) +/* 0x003B */ DEFINE_ACTOR(En_River_Sound, ACTOR_EN_RIVER_SOUND, ALLOCTYPE_NORMAL) +/* 0x003C */ DEFINE_ACTOR(En_Horse_Normal, ACTOR_EN_HORSE_NORMAL, ALLOCTYPE_NORMAL) +/* 0x003D */ DEFINE_ACTOR(En_Ossan, ACTOR_EN_OSSAN, ALLOCTYPE_NORMAL) +/* 0x003E */ DEFINE_ACTOR(Bg_Treemouth, ACTOR_BG_TREEMOUTH, ALLOCTYPE_NORMAL) +/* 0x003F */ DEFINE_ACTOR(Bg_Dodoago, ACTOR_BG_DODOAGO, ALLOCTYPE_NORMAL) +/* 0x0040 */ DEFINE_ACTOR(Bg_Hidan_Dalm, ACTOR_BG_HIDAN_DALM, ALLOCTYPE_NORMAL) +/* 0x0041 */ DEFINE_ACTOR(Bg_Hidan_Hrock, ACTOR_BG_HIDAN_HROCK, ALLOCTYPE_NORMAL) +/* 0x0042 */ DEFINE_ACTOR(En_Horse_Ganon, ACTOR_EN_HORSE_GANON, ALLOCTYPE_NORMAL) +/* 0x0043 */ DEFINE_ACTOR(Bg_Hidan_Rock, ACTOR_BG_HIDAN_ROCK, ALLOCTYPE_NORMAL) +/* 0x0044 */ DEFINE_ACTOR(Bg_Hidan_Rsekizou, ACTOR_BG_HIDAN_RSEKIZOU, ALLOCTYPE_NORMAL) +/* 0x0045 */ DEFINE_ACTOR(Bg_Hidan_Sekizou, ACTOR_BG_HIDAN_SEKIZOU, ALLOCTYPE_NORMAL) +/* 0x0046 */ DEFINE_ACTOR(Bg_Hidan_Sima, ACTOR_BG_HIDAN_SIMA, ALLOCTYPE_NORMAL) +/* 0x0047 */ DEFINE_ACTOR(Bg_Hidan_Syoku, ACTOR_BG_HIDAN_SYOKU, ALLOCTYPE_NORMAL) +/* 0x0048 */ DEFINE_ACTOR(En_Xc, ACTOR_EN_XC, ALLOCTYPE_NORMAL) +/* 0x0049 */ DEFINE_ACTOR(Bg_Hidan_Curtain, ACTOR_BG_HIDAN_CURTAIN, ALLOCTYPE_NORMAL) +/* 0x004A */ DEFINE_ACTOR(Bg_Spot00_Hanebasi, ACTOR_BG_SPOT00_HANEBASI, ALLOCTYPE_NORMAL) +/* 0x004B */ DEFINE_ACTOR(En_Mb, ACTOR_EN_MB, ALLOCTYPE_NORMAL) +/* 0x004C */ DEFINE_ACTOR(En_Bombf, ACTOR_EN_BOMBF, ALLOCTYPE_NORMAL) +/* 0x004D */ DEFINE_ACTOR(En_Zl2, ACTOR_EN_ZL2, ALLOCTYPE_NORMAL) +/* 0x004E */ DEFINE_ACTOR(Bg_Hidan_Fslift, ACTOR_BG_HIDAN_FSLIFT, ALLOCTYPE_NORMAL) +/* 0x004F */ DEFINE_ACTOR(En_OE2, ACTOR_EN_OE2, ALLOCTYPE_NORMAL) +/* 0x0050 */ DEFINE_ACTOR(Bg_Ydan_Hasi, ACTOR_BG_YDAN_HASI, ALLOCTYPE_NORMAL) +/* 0x0051 */ DEFINE_ACTOR(Bg_Ydan_Maruta, ACTOR_BG_YDAN_MARUTA, ALLOCTYPE_NORMAL) +/* 0x0052 */ DEFINE_ACTOR(Boss_Ganondrof, ACTOR_BOSS_GANONDROF, ALLOCTYPE_NORMAL) +/* 0x0053 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_53) +/* 0x0054 */ DEFINE_ACTOR(En_Am, ACTOR_EN_AM, ALLOCTYPE_NORMAL) +/* 0x0055 */ DEFINE_ACTOR(En_Dekubaba, ACTOR_EN_DEKUBABA, ALLOCTYPE_NORMAL) +/* 0x0056 */ DEFINE_ACTOR(En_M_Fire1, ACTOR_EN_M_FIRE1, ALLOCTYPE_PERMANENT) +/* 0x0057 */ DEFINE_ACTOR(En_M_Thunder, ACTOR_EN_M_THUNDER, ALLOCTYPE_PERMANENT) +/* 0x0058 */ DEFINE_ACTOR(Bg_Ddan_Jd, ACTOR_BG_DDAN_JD, ALLOCTYPE_NORMAL) +/* 0x0059 */ DEFINE_ACTOR(Bg_Breakwall, ACTOR_BG_BREAKWALL, ALLOCTYPE_NORMAL) +/* 0x005A */ DEFINE_ACTOR(En_Jj, ACTOR_EN_JJ, ALLOCTYPE_NORMAL) +/* 0x005B */ DEFINE_ACTOR(En_Horse_Zelda, ACTOR_EN_HORSE_ZELDA, ALLOCTYPE_NORMAL) +/* 0x005C */ DEFINE_ACTOR(Bg_Ddan_Kd, ACTOR_BG_DDAN_KD, ALLOCTYPE_NORMAL) +/* 0x005D */ DEFINE_ACTOR(Door_Warp1, ACTOR_DOOR_WARP1, ALLOCTYPE_NORMAL) +/* 0x005E */ DEFINE_ACTOR(Obj_Syokudai, ACTOR_OBJ_SYOKUDAI, ALLOCTYPE_NORMAL) +/* 0x005F */ DEFINE_ACTOR(Item_B_Heart, ACTOR_ITEM_B_HEART, ALLOCTYPE_NORMAL) +/* 0x0060 */ DEFINE_ACTOR(En_Dekunuts, ACTOR_EN_DEKUNUTS, ALLOCTYPE_NORMAL) +/* 0x0061 */ DEFINE_ACTOR(Bg_Menkuri_Kaiten, ACTOR_BG_MENKURI_KAITEN, ALLOCTYPE_NORMAL) +/* 0x0062 */ DEFINE_ACTOR(Bg_Menkuri_Eye, ACTOR_BG_MENKURI_EYE, ALLOCTYPE_NORMAL) +/* 0x0063 */ DEFINE_ACTOR(En_Vali, ACTOR_EN_VALI, ALLOCTYPE_NORMAL) +/* 0x0064 */ DEFINE_ACTOR(Bg_Mizu_Movebg, ACTOR_BG_MIZU_MOVEBG, ALLOCTYPE_NORMAL) +/* 0x0065 */ DEFINE_ACTOR(Bg_Mizu_Water, ACTOR_BG_MIZU_WATER, ALLOCTYPE_NORMAL) +/* 0x0066 */ DEFINE_ACTOR(Arms_Hook, ACTOR_ARMS_HOOK, ALLOCTYPE_PERMANENT) +/* 0x0067 */ DEFINE_ACTOR(En_fHG, ACTOR_EN_FHG, ALLOCTYPE_NORMAL) +/* 0x0068 */ DEFINE_ACTOR(Bg_Mori_Hineri, ACTOR_BG_MORI_HINERI, ALLOCTYPE_NORMAL) +/* 0x0069 */ DEFINE_ACTOR(En_Bb, ACTOR_EN_BB, ALLOCTYPE_NORMAL) +/* 0x006A */ DEFINE_ACTOR(Bg_Toki_Hikari, ACTOR_BG_TOKI_HIKARI, ALLOCTYPE_NORMAL) +/* 0x006B */ DEFINE_ACTOR(En_Yukabyun, ACTOR_EN_YUKABYUN, ALLOCTYPE_NORMAL) +/* 0x006C */ DEFINE_ACTOR(Bg_Toki_Swd, ACTOR_BG_TOKI_SWD, ALLOCTYPE_NORMAL) +/* 0x006D */ DEFINE_ACTOR(En_Fhg_Fire, ACTOR_EN_FHG_FIRE, ALLOCTYPE_NORMAL) +/* 0x006E */ DEFINE_ACTOR(Bg_Mjin, ACTOR_BG_MJIN, ALLOCTYPE_NORMAL) +/* 0x006F */ DEFINE_ACTOR(Bg_Hidan_Kousi, ACTOR_BG_HIDAN_KOUSI, ALLOCTYPE_NORMAL) +/* 0x0070 */ DEFINE_ACTOR(Door_Toki, ACTOR_DOOR_TOKI, ALLOCTYPE_NORMAL) +/* 0x0071 */ DEFINE_ACTOR(Bg_Hidan_Hamstep, ACTOR_BG_HIDAN_HAMSTEP, ALLOCTYPE_NORMAL) +/* 0x0072 */ DEFINE_ACTOR(En_Bird, ACTOR_EN_BIRD, ALLOCTYPE_NORMAL) +/* 0x0073 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_73) +/* 0x0074 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_74) +/* 0x0075 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_75) +/* 0x0076 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_76) +/* 0x0077 */ DEFINE_ACTOR(En_Wood02, ACTOR_EN_WOOD02, ALLOCTYPE_NORMAL) +/* 0x0078 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_78) +/* 0x0079 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_79) +/* 0x007A */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_7A) +/* 0x007B */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_7B) +/* 0x007C */ DEFINE_ACTOR(En_Lightbox, ACTOR_EN_LIGHTBOX, ALLOCTYPE_NORMAL) +/* 0x007D */ DEFINE_ACTOR(En_Pu_box, ACTOR_EN_PU_BOX, ALLOCTYPE_NORMAL) +/* 0x007E */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_7E) +/* 0x007F */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_7F) +/* 0x0080 */ DEFINE_ACTOR(En_Trap, ACTOR_EN_TRAP, ALLOCTYPE_NORMAL) +/* 0x0081 */ DEFINE_ACTOR(En_Arow_Trap, ACTOR_EN_AROW_TRAP, ALLOCTYPE_NORMAL) +/* 0x0082 */ DEFINE_ACTOR(En_Vase, ACTOR_EN_VASE, ALLOCTYPE_NORMAL) +/* 0x0083 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_83) +/* 0x0084 */ DEFINE_ACTOR(En_Ta, ACTOR_EN_TA, ALLOCTYPE_NORMAL) +/* 0x0085 */ DEFINE_ACTOR(En_Tk, ACTOR_EN_TK, ALLOCTYPE_NORMAL) +/* 0x0086 */ DEFINE_ACTOR(Bg_Mori_Bigst, ACTOR_BG_MORI_BIGST, ALLOCTYPE_NORMAL) +/* 0x0087 */ DEFINE_ACTOR(Bg_Mori_Elevator, ACTOR_BG_MORI_ELEVATOR, ALLOCTYPE_NORMAL) +/* 0x0088 */ DEFINE_ACTOR(Bg_Mori_Kaitenkabe, ACTOR_BG_MORI_KAITENKABE, ALLOCTYPE_NORMAL) +/* 0x0089 */ DEFINE_ACTOR(Bg_Mori_Rakkatenjo, ACTOR_BG_MORI_RAKKATENJO, ALLOCTYPE_NORMAL) +/* 0x008A */ DEFINE_ACTOR(En_Vm, ACTOR_EN_VM, ALLOCTYPE_NORMAL) +/* 0x008B */ DEFINE_ACTOR(Demo_Effect, ACTOR_DEMO_EFFECT, ALLOCTYPE_NORMAL) +/* 0x008C */ DEFINE_ACTOR(Demo_Kankyo, ACTOR_DEMO_KANKYO, ALLOCTYPE_NORMAL) +/* 0x008D */ DEFINE_ACTOR(Bg_Hidan_Fwbig, ACTOR_BG_HIDAN_FWBIG, ALLOCTYPE_NORMAL) +/* 0x008E */ DEFINE_ACTOR(En_Floormas, ACTOR_EN_FLOORMAS, ALLOCTYPE_NORMAL) +/* 0x008F */ DEFINE_ACTOR(En_Heishi1, ACTOR_EN_HEISHI1, ALLOCTYPE_NORMAL) +/* 0x0090 */ DEFINE_ACTOR(En_Rd, ACTOR_EN_RD, ALLOCTYPE_NORMAL) +/* 0x0091 */ DEFINE_ACTOR(En_Po_Sisters, ACTOR_EN_PO_SISTERS, ALLOCTYPE_NORMAL) +/* 0x0092 */ DEFINE_ACTOR(Bg_Heavy_Block, ACTOR_BG_HEAVY_BLOCK, ALLOCTYPE_NORMAL) +/* 0x0093 */ DEFINE_ACTOR(Bg_Po_Event, ACTOR_BG_PO_EVENT, ALLOCTYPE_NORMAL) +/* 0x0094 */ DEFINE_ACTOR(Obj_Mure, ACTOR_OBJ_MURE, ALLOCTYPE_NORMAL) +/* 0x0095 */ DEFINE_ACTOR(En_Sw, ACTOR_EN_SW, ALLOCTYPE_NORMAL) +/* 0x0096 */ DEFINE_ACTOR(Boss_Fd, ACTOR_BOSS_FD, ALLOCTYPE_NORMAL) +/* 0x0097 */ DEFINE_ACTOR(Object_Kankyo, ACTOR_OBJECT_KANKYO, ALLOCTYPE_NORMAL) +/* 0x0098 */ DEFINE_ACTOR(En_Du, ACTOR_EN_DU, ALLOCTYPE_NORMAL) +/* 0x0099 */ DEFINE_ACTOR(En_Fd, ACTOR_EN_FD, ALLOCTYPE_NORMAL) +/* 0x009A */ DEFINE_ACTOR(En_Horse_Link_Child, ACTOR_EN_HORSE_LINK_CHILD, ALLOCTYPE_NORMAL) +/* 0x009B */ DEFINE_ACTOR(Door_Ana, ACTOR_DOOR_ANA, ALLOCTYPE_NORMAL) +/* 0x009C */ DEFINE_ACTOR(Bg_Spot02_Objects, ACTOR_BG_SPOT02_OBJECTS, ALLOCTYPE_NORMAL) +/* 0x009D */ DEFINE_ACTOR(Bg_Haka, ACTOR_BG_HAKA, ALLOCTYPE_NORMAL) +/* 0x009E */ DEFINE_ACTOR(Magic_Wind, ACTOR_MAGIC_WIND, ALLOCTYPE_ABSOLUTE) +/* 0x009F */ DEFINE_ACTOR(Magic_Fire, ACTOR_MAGIC_FIRE, ALLOCTYPE_ABSOLUTE) +/* 0x00A0 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_A0) +/* 0x00A1 */ DEFINE_ACTOR(En_Ru1, ACTOR_EN_RU1, ALLOCTYPE_NORMAL) +/* 0x00A2 */ DEFINE_ACTOR(Boss_Fd2, ACTOR_BOSS_FD2, ALLOCTYPE_NORMAL) +/* 0x00A3 */ DEFINE_ACTOR(En_Fd_Fire, ACTOR_EN_FD_FIRE, ALLOCTYPE_NORMAL) +/* 0x00A4 */ DEFINE_ACTOR(En_Dh, ACTOR_EN_DH, ALLOCTYPE_NORMAL) +/* 0x00A5 */ DEFINE_ACTOR(En_Dha, ACTOR_EN_DHA, ALLOCTYPE_NORMAL) +/* 0x00A6 */ DEFINE_ACTOR(En_Rl, ACTOR_EN_RL, ALLOCTYPE_NORMAL) +/* 0x00A7 */ DEFINE_ACTOR(En_Encount1, ACTOR_EN_ENCOUNT1, ALLOCTYPE_NORMAL) +/* 0x00A8 */ DEFINE_ACTOR(Demo_Du, ACTOR_DEMO_DU, ALLOCTYPE_NORMAL) +/* 0x00A9 */ DEFINE_ACTOR(Demo_Im, ACTOR_DEMO_IM, ALLOCTYPE_NORMAL) +/* 0x00AA */ DEFINE_ACTOR(Demo_Tre_Lgt, ACTOR_DEMO_TRE_LGT, ALLOCTYPE_NORMAL) +/* 0x00AB */ DEFINE_ACTOR(En_Fw, ACTOR_EN_FW, ALLOCTYPE_NORMAL) +/* 0x00AC */ DEFINE_ACTOR(Bg_Vb_Sima, ACTOR_BG_VB_SIMA, ALLOCTYPE_NORMAL) +/* 0x00AD */ DEFINE_ACTOR(En_Vb_Ball, ACTOR_EN_VB_BALL, ALLOCTYPE_NORMAL) +/* 0x00AE */ DEFINE_ACTOR(Bg_Haka_Megane, ACTOR_BG_HAKA_MEGANE, ALLOCTYPE_NORMAL) +/* 0x00AF */ DEFINE_ACTOR(Bg_Haka_MeganeBG, ACTOR_BG_HAKA_MEGANEBG, ALLOCTYPE_NORMAL) +/* 0x00B0 */ DEFINE_ACTOR(Bg_Haka_Ship, ACTOR_BG_HAKA_SHIP, ALLOCTYPE_NORMAL) +/* 0x00B1 */ DEFINE_ACTOR(Bg_Haka_Sgami, ACTOR_BG_HAKA_SGAMI, ALLOCTYPE_NORMAL) +/* 0x00B2 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_B2) +/* 0x00B3 */ DEFINE_ACTOR(En_Heishi2, ACTOR_EN_HEISHI2, ALLOCTYPE_NORMAL) +/* 0x00B4 */ DEFINE_ACTOR(En_Encount2, ACTOR_EN_ENCOUNT2, ALLOCTYPE_NORMAL) +/* 0x00B5 */ DEFINE_ACTOR(En_Fire_Rock, ACTOR_EN_FIRE_ROCK, ALLOCTYPE_NORMAL) +/* 0x00B6 */ DEFINE_ACTOR(En_Brob, ACTOR_EN_BROB, ALLOCTYPE_NORMAL) +/* 0x00B7 */ DEFINE_ACTOR(Mir_Ray, ACTOR_MIR_RAY, ALLOCTYPE_NORMAL) +/* 0x00B8 */ DEFINE_ACTOR(Bg_Spot09_Obj, ACTOR_BG_SPOT09_OBJ, ALLOCTYPE_NORMAL) +/* 0x00B9 */ DEFINE_ACTOR(Bg_Spot18_Obj, ACTOR_BG_SPOT18_OBJ, ALLOCTYPE_NORMAL) +/* 0x00BA */ DEFINE_ACTOR(Boss_Va, ACTOR_BOSS_VA, ALLOCTYPE_NORMAL) +/* 0x00BB */ DEFINE_ACTOR(Bg_Haka_Tubo, ACTOR_BG_HAKA_TUBO, ALLOCTYPE_NORMAL) +/* 0x00BC */ DEFINE_ACTOR(Bg_Haka_Trap, ACTOR_BG_HAKA_TRAP, ALLOCTYPE_NORMAL) +/* 0x00BD */ DEFINE_ACTOR(Bg_Haka_Huta, ACTOR_BG_HAKA_HUTA, ALLOCTYPE_NORMAL) +/* 0x00BE */ DEFINE_ACTOR(Bg_Haka_Zou, ACTOR_BG_HAKA_ZOU, ALLOCTYPE_NORMAL) +/* 0x00BF */ DEFINE_ACTOR(Bg_Spot17_Funen, ACTOR_BG_SPOT17_FUNEN, ALLOCTYPE_NORMAL) +/* 0x00C0 */ DEFINE_ACTOR(En_Syateki_Itm, ACTOR_EN_SYATEKI_ITM, ALLOCTYPE_NORMAL) +/* 0x00C1 */ DEFINE_ACTOR(En_Syateki_Man, ACTOR_EN_SYATEKI_MAN, ALLOCTYPE_NORMAL) +/* 0x00C2 */ DEFINE_ACTOR(En_Tana, ACTOR_EN_TANA, ALLOCTYPE_NORMAL) +/* 0x00C3 */ DEFINE_ACTOR(En_Nb, ACTOR_EN_NB, ALLOCTYPE_NORMAL) +/* 0x00C4 */ DEFINE_ACTOR(Boss_Mo, ACTOR_BOSS_MO, ALLOCTYPE_NORMAL) +/* 0x00C5 */ DEFINE_ACTOR(En_Sb, ACTOR_EN_SB, ALLOCTYPE_NORMAL) +/* 0x00C6 */ DEFINE_ACTOR(En_Bigokuta, ACTOR_EN_BIGOKUTA, ALLOCTYPE_NORMAL) +/* 0x00C7 */ DEFINE_ACTOR(En_Karebaba, ACTOR_EN_KAREBABA, ALLOCTYPE_NORMAL) +/* 0x00C8 */ DEFINE_ACTOR(Bg_Bdan_Objects, ACTOR_BG_BDAN_OBJECTS, ALLOCTYPE_NORMAL) +/* 0x00C9 */ DEFINE_ACTOR(Demo_Sa, ACTOR_DEMO_SA, ALLOCTYPE_NORMAL) +/* 0x00CA */ DEFINE_ACTOR(Demo_Go, ACTOR_DEMO_GO, ALLOCTYPE_NORMAL) +/* 0x00CB */ DEFINE_ACTOR(En_In, ACTOR_EN_IN, ALLOCTYPE_NORMAL) +/* 0x00CC */ DEFINE_ACTOR(En_Tr, ACTOR_EN_TR, ALLOCTYPE_NORMAL) +/* 0x00CD */ DEFINE_ACTOR(Bg_Spot16_Bombstone, ACTOR_BG_SPOT16_BOMBSTONE, ALLOCTYPE_NORMAL) +/* 0x00CE */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_CE) +/* 0x00CF */ DEFINE_ACTOR(Bg_Hidan_Kowarerukabe, ACTOR_BG_HIDAN_KOWARERUKABE, ALLOCTYPE_NORMAL) +/* 0x00D0 */ DEFINE_ACTOR(Bg_Bombwall, ACTOR_BG_BOMBWALL, ALLOCTYPE_NORMAL) +/* 0x00D1 */ DEFINE_ACTOR(Bg_Spot08_Iceblock, ACTOR_BG_SPOT08_ICEBLOCK, ALLOCTYPE_NORMAL) +/* 0x00D2 */ DEFINE_ACTOR(En_Ru2, ACTOR_EN_RU2, ALLOCTYPE_NORMAL) +/* 0x00D3 */ DEFINE_ACTOR(Obj_Dekujr, ACTOR_OBJ_DEKUJR, ALLOCTYPE_NORMAL) +/* 0x00D4 */ DEFINE_ACTOR(Bg_Mizu_Uzu, ACTOR_BG_MIZU_UZU, ALLOCTYPE_NORMAL) +/* 0x00D5 */ DEFINE_ACTOR(Bg_Spot06_Objects, ACTOR_BG_SPOT06_OBJECTS, ALLOCTYPE_NORMAL) +/* 0x00D6 */ DEFINE_ACTOR(Bg_Ice_Objects, ACTOR_BG_ICE_OBJECTS, ALLOCTYPE_NORMAL) +/* 0x00D7 */ DEFINE_ACTOR(Bg_Haka_Water, ACTOR_BG_HAKA_WATER, ALLOCTYPE_NORMAL) +/* 0x00D8 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_D8) +/* 0x00D9 */ DEFINE_ACTOR(En_Ma2, ACTOR_EN_MA2, ALLOCTYPE_NORMAL) +/* 0x00DA */ DEFINE_ACTOR(En_Bom_Chu, ACTOR_EN_BOM_CHU, ALLOCTYPE_NORMAL) +/* 0x00DB */ DEFINE_ACTOR(En_Horse_Game_Check, ACTOR_EN_HORSE_GAME_CHECK, ALLOCTYPE_NORMAL) +/* 0x00DC */ DEFINE_ACTOR(Boss_Tw, ACTOR_BOSS_TW, ALLOCTYPE_NORMAL) +/* 0x00DD */ DEFINE_ACTOR(En_Rr, ACTOR_EN_RR, ALLOCTYPE_NORMAL) +/* 0x00DE */ DEFINE_ACTOR(En_Ba, ACTOR_EN_BA, ALLOCTYPE_NORMAL) +/* 0x00DF */ DEFINE_ACTOR(En_Bx, ACTOR_EN_BX, ALLOCTYPE_NORMAL) +/* 0x00E0 */ DEFINE_ACTOR(En_Anubice, ACTOR_EN_ANUBICE, ALLOCTYPE_NORMAL) +/* 0x00E1 */ DEFINE_ACTOR(En_Anubice_Fire, ACTOR_EN_ANUBICE_FIRE, ALLOCTYPE_NORMAL) +/* 0x00E2 */ DEFINE_ACTOR(Bg_Mori_Hashigo, ACTOR_BG_MORI_HASHIGO, ALLOCTYPE_NORMAL) +/* 0x00E3 */ DEFINE_ACTOR(Bg_Mori_Hashira4, ACTOR_BG_MORI_HASHIRA4, ALLOCTYPE_NORMAL) +/* 0x00E4 */ DEFINE_ACTOR(Bg_Mori_Idomizu, ACTOR_BG_MORI_IDOMIZU, ALLOCTYPE_NORMAL) +/* 0x00E5 */ DEFINE_ACTOR(Bg_Spot16_Doughnut, ACTOR_BG_SPOT16_DOUGHNUT, ALLOCTYPE_NORMAL) +/* 0x00E6 */ DEFINE_ACTOR(Bg_Bdan_Switch, ACTOR_BG_BDAN_SWITCH, ALLOCTYPE_NORMAL) +/* 0x00E7 */ DEFINE_ACTOR(En_Ma1, ACTOR_EN_MA1, ALLOCTYPE_NORMAL) +/* 0x00E8 */ DEFINE_ACTOR(Boss_Ganon, ACTOR_BOSS_GANON, ALLOCTYPE_NORMAL) +/* 0x00E9 */ DEFINE_ACTOR(Boss_Sst, ACTOR_BOSS_SST, ALLOCTYPE_NORMAL) +/* 0x00EA */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_EA) +/* 0x00EB */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_EB) +/* 0x00EC */ DEFINE_ACTOR(En_Ny, ACTOR_EN_NY, ALLOCTYPE_NORMAL) +/* 0x00ED */ DEFINE_ACTOR(En_Fr, ACTOR_EN_FR, ALLOCTYPE_NORMAL) +/* 0x00EE */ DEFINE_ACTOR(Item_Shield, ACTOR_ITEM_SHIELD, ALLOCTYPE_NORMAL) +/* 0x00EF */ DEFINE_ACTOR(Bg_Ice_Shelter, ACTOR_BG_ICE_SHELTER, ALLOCTYPE_NORMAL) +/* 0x00F0 */ DEFINE_ACTOR(En_Ice_Hono, ACTOR_EN_ICE_HONO, ALLOCTYPE_NORMAL) +/* 0x00F1 */ DEFINE_ACTOR(Item_Ocarina, ACTOR_ITEM_OCARINA, ALLOCTYPE_NORMAL) +/* 0x00F2 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_F2) +/* 0x00F3 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_F3) +/* 0x00F4 */ DEFINE_ACTOR(Magic_Dark, ACTOR_MAGIC_DARK, ALLOCTYPE_ABSOLUTE) +/* 0x00F5 */ DEFINE_ACTOR(Demo_6K, ACTOR_DEMO_6K, ALLOCTYPE_NORMAL) +/* 0x00F6 */ DEFINE_ACTOR(En_Anubice_Tag, ACTOR_EN_ANUBICE_TAG, ALLOCTYPE_NORMAL) +/* 0x00F7 */ DEFINE_ACTOR(Bg_Haka_Gate, ACTOR_BG_HAKA_GATE, ALLOCTYPE_NORMAL) +/* 0x00F8 */ DEFINE_ACTOR(Bg_Spot15_Saku, ACTOR_BG_SPOT15_SAKU, ALLOCTYPE_NORMAL) +/* 0x00F9 */ DEFINE_ACTOR(Bg_Jya_Goroiwa, ACTOR_BG_JYA_GOROIWA, ALLOCTYPE_NORMAL) +/* 0x00FA */ DEFINE_ACTOR(Bg_Jya_Zurerukabe, ACTOR_BG_JYA_ZURERUKABE, ALLOCTYPE_NORMAL) +/* 0x00FB */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_FB) +/* 0x00FC */ DEFINE_ACTOR(Bg_Jya_Cobra, ACTOR_BG_JYA_COBRA, ALLOCTYPE_NORMAL) +/* 0x00FD */ DEFINE_ACTOR(Bg_Jya_Kanaami, ACTOR_BG_JYA_KANAAMI, ALLOCTYPE_NORMAL) +/* 0x00FE */ DEFINE_ACTOR(Fishing, ACTOR_FISHING, ALLOCTYPE_NORMAL) +/* 0x00FF */ DEFINE_ACTOR(Obj_Oshihiki, ACTOR_OBJ_OSHIHIKI, ALLOCTYPE_NORMAL) +/* 0x0100 */ DEFINE_ACTOR(Bg_Gate_Shutter, ACTOR_BG_GATE_SHUTTER, ALLOCTYPE_NORMAL) +/* 0x0101 */ DEFINE_ACTOR(Eff_Dust, ACTOR_EFF_DUST, ALLOCTYPE_NORMAL) +/* 0x0102 */ DEFINE_ACTOR(Bg_Spot01_Fusya, ACTOR_BG_SPOT01_FUSYA, ALLOCTYPE_NORMAL) +/* 0x0103 */ DEFINE_ACTOR(Bg_Spot01_Idohashira, ACTOR_BG_SPOT01_IDOHASHIRA, ALLOCTYPE_NORMAL) +/* 0x0104 */ DEFINE_ACTOR(Bg_Spot01_Idomizu, ACTOR_BG_SPOT01_IDOMIZU, ALLOCTYPE_NORMAL) +/* 0x0105 */ DEFINE_ACTOR(Bg_Po_Syokudai, ACTOR_BG_PO_SYOKUDAI, ALLOCTYPE_NORMAL) +/* 0x0106 */ DEFINE_ACTOR(Bg_Ganon_Otyuka, ACTOR_BG_GANON_OTYUKA, ALLOCTYPE_NORMAL) +/* 0x0107 */ DEFINE_ACTOR(Bg_Spot15_Rrbox, ACTOR_BG_SPOT15_RRBOX, ALLOCTYPE_NORMAL) +/* 0x0108 */ DEFINE_ACTOR(Bg_Umajump, ACTOR_BG_UMAJUMP, ALLOCTYPE_NORMAL) +/* 0x0109 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_109) +/* 0x010A */ DEFINE_ACTOR(Arrow_Fire, ACTOR_ARROW_FIRE, ALLOCTYPE_ABSOLUTE) +/* 0x010B */ DEFINE_ACTOR(Arrow_Ice, ACTOR_ARROW_ICE, ALLOCTYPE_ABSOLUTE) +/* 0x010C */ DEFINE_ACTOR(Arrow_Light, ACTOR_ARROW_LIGHT, ALLOCTYPE_ABSOLUTE) +/* 0x010D */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_10D) +/* 0x010E */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_10E) +/* 0x010F */ DEFINE_ACTOR(Item_Etcetera, ACTOR_ITEM_ETCETERA, ALLOCTYPE_NORMAL) +/* 0x0110 */ DEFINE_ACTOR(Obj_Kibako, ACTOR_OBJ_KIBAKO, ALLOCTYPE_NORMAL) +/* 0x0111 */ DEFINE_ACTOR(Obj_Tsubo, ACTOR_OBJ_TSUBO, ALLOCTYPE_NORMAL) +/* 0x0112 */ DEFINE_ACTOR(En_Wonder_Item, ACTOR_EN_WONDER_ITEM, ALLOCTYPE_NORMAL) +/* 0x0113 */ DEFINE_ACTOR(En_Ik, ACTOR_EN_IK, ALLOCTYPE_NORMAL) +/* 0x0114 */ DEFINE_ACTOR(Demo_Ik, ACTOR_DEMO_IK, ALLOCTYPE_NORMAL) +/* 0x0115 */ DEFINE_ACTOR(En_Skj, ACTOR_EN_SKJ, ALLOCTYPE_NORMAL) +/* 0x0116 */ DEFINE_ACTOR(En_Skjneedle, ACTOR_EN_SKJNEEDLE, ALLOCTYPE_NORMAL) +/* 0x0117 */ DEFINE_ACTOR(En_G_Switch, ACTOR_EN_G_SWITCH, ALLOCTYPE_NORMAL) +/* 0x0118 */ DEFINE_ACTOR(Demo_Ext, ACTOR_DEMO_EXT, ALLOCTYPE_NORMAL) +/* 0x0119 */ DEFINE_ACTOR(Demo_Shd, ACTOR_DEMO_SHD, ALLOCTYPE_NORMAL) +/* 0x011A */ DEFINE_ACTOR(En_Dns, ACTOR_EN_DNS, ALLOCTYPE_NORMAL) +/* 0x011B */ DEFINE_ACTOR(Elf_Msg, ACTOR_ELF_MSG, ALLOCTYPE_NORMAL) +/* 0x011C */ DEFINE_ACTOR(En_Honotrap, ACTOR_EN_HONOTRAP, ALLOCTYPE_NORMAL) +/* 0x011D */ DEFINE_ACTOR(En_Tubo_Trap, ACTOR_EN_TUBO_TRAP, ALLOCTYPE_NORMAL) +/* 0x011E */ DEFINE_ACTOR(Obj_Ice_Poly, ACTOR_OBJ_ICE_POLY, ALLOCTYPE_NORMAL) +/* 0x011F */ DEFINE_ACTOR(Bg_Spot03_Taki, ACTOR_BG_SPOT03_TAKI, ALLOCTYPE_NORMAL) +/* 0x0120 */ DEFINE_ACTOR(Bg_Spot07_Taki, ACTOR_BG_SPOT07_TAKI, ALLOCTYPE_NORMAL) +/* 0x0121 */ DEFINE_ACTOR(En_Fz, ACTOR_EN_FZ, ALLOCTYPE_NORMAL) +/* 0x0122 */ DEFINE_ACTOR(En_Po_Relay, ACTOR_EN_PO_RELAY, ALLOCTYPE_NORMAL) +/* 0x0123 */ DEFINE_ACTOR(Bg_Relay_Objects, ACTOR_BG_RELAY_OBJECTS, ALLOCTYPE_NORMAL) +/* 0x0124 */ DEFINE_ACTOR(En_Diving_Game, ACTOR_EN_DIVING_GAME, ALLOCTYPE_NORMAL) +/* 0x0125 */ DEFINE_ACTOR(En_Kusa, ACTOR_EN_KUSA, ALLOCTYPE_NORMAL) +/* 0x0126 */ DEFINE_ACTOR(Obj_Bean, ACTOR_OBJ_BEAN, ALLOCTYPE_NORMAL) +/* 0x0127 */ DEFINE_ACTOR(Obj_Bombiwa, ACTOR_OBJ_BOMBIWA, ALLOCTYPE_NORMAL) +/* 0x0128 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_128) +/* 0x0129 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_129) +/* 0x012A */ DEFINE_ACTOR(Obj_Switch, ACTOR_OBJ_SWITCH, ALLOCTYPE_NORMAL) +/* 0x012B */ DEFINE_ACTOR(Obj_Elevator, ACTOR_OBJ_ELEVATOR, ALLOCTYPE_NORMAL) +/* 0x012C */ DEFINE_ACTOR(Obj_Lift, ACTOR_OBJ_LIFT, ALLOCTYPE_NORMAL) +/* 0x012D */ DEFINE_ACTOR(Obj_Hsblock, ACTOR_OBJ_HSBLOCK, ALLOCTYPE_NORMAL) +/* 0x012E */ DEFINE_ACTOR(En_Okarina_Tag, ACTOR_EN_OKARINA_TAG, ALLOCTYPE_NORMAL) +/* 0x012F */ DEFINE_ACTOR(En_Yabusame_Mark, ACTOR_EN_YABUSAME_MARK, ALLOCTYPE_NORMAL) +/* 0x0130 */ DEFINE_ACTOR(En_Goroiwa, ACTOR_EN_GOROIWA, ALLOCTYPE_NORMAL) +/* 0x0131 */ DEFINE_ACTOR(En_Ex_Ruppy, ACTOR_EN_EX_RUPPY, ALLOCTYPE_NORMAL) +/* 0x0132 */ DEFINE_ACTOR(En_Toryo, ACTOR_EN_TORYO, ALLOCTYPE_NORMAL) +/* 0x0133 */ DEFINE_ACTOR(En_Daiku, ACTOR_EN_DAIKU, ALLOCTYPE_NORMAL) +/* 0x0134 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_134) +/* 0x0135 */ DEFINE_ACTOR(En_Nwc, ACTOR_EN_NWC, ALLOCTYPE_NORMAL) +/* 0x0136 */ DEFINE_ACTOR(En_Blkobj, ACTOR_EN_BLKOBJ, ALLOCTYPE_NORMAL) +/* 0x0137 */ DEFINE_ACTOR(Item_Inbox, ACTOR_ITEM_INBOX, ALLOCTYPE_NORMAL) +/* 0x0138 */ DEFINE_ACTOR(En_Ge1, ACTOR_EN_GE1, ALLOCTYPE_NORMAL) +/* 0x0139 */ DEFINE_ACTOR(Obj_Blockstop, ACTOR_OBJ_BLOCKSTOP, ALLOCTYPE_NORMAL) +/* 0x013A */ DEFINE_ACTOR(En_Sda, ACTOR_EN_SDA, ALLOCTYPE_NORMAL) +/* 0x013B */ DEFINE_ACTOR(En_Clear_Tag, ACTOR_EN_CLEAR_TAG, ALLOCTYPE_NORMAL) +/* 0x013C */ DEFINE_ACTOR(En_Niw_Lady, ACTOR_EN_NIW_LADY, ALLOCTYPE_NORMAL) +/* 0x013D */ DEFINE_ACTOR(En_Gm, ACTOR_EN_GM, ALLOCTYPE_NORMAL) +/* 0x013E */ DEFINE_ACTOR(En_Ms, ACTOR_EN_MS, ALLOCTYPE_NORMAL) +/* 0x013F */ DEFINE_ACTOR(En_Hs, ACTOR_EN_HS, ALLOCTYPE_NORMAL) +/* 0x0140 */ DEFINE_ACTOR(Bg_Ingate, ACTOR_BG_INGATE, ALLOCTYPE_NORMAL) +/* 0x0141 */ DEFINE_ACTOR(En_Kanban, ACTOR_EN_KANBAN, ALLOCTYPE_NORMAL) +/* 0x0142 */ DEFINE_ACTOR(En_Heishi3, ACTOR_EN_HEISHI3, ALLOCTYPE_NORMAL) +/* 0x0143 */ DEFINE_ACTOR(En_Syateki_Niw, ACTOR_EN_SYATEKI_NIW, ALLOCTYPE_NORMAL) +/* 0x0144 */ DEFINE_ACTOR(En_Attack_Niw, ACTOR_EN_ATTACK_NIW, ALLOCTYPE_NORMAL) +/* 0x0145 */ DEFINE_ACTOR(Bg_Spot01_Idosoko, ACTOR_BG_SPOT01_IDOSOKO, ALLOCTYPE_NORMAL) +/* 0x0146 */ DEFINE_ACTOR(En_Sa, ACTOR_EN_SA, ALLOCTYPE_NORMAL) +/* 0x0147 */ DEFINE_ACTOR(En_Wonder_Talk, ACTOR_EN_WONDER_TALK, ALLOCTYPE_NORMAL) +/* 0x0148 */ DEFINE_ACTOR(Bg_Gjyo_Bridge, ACTOR_BG_GJYO_BRIDGE, ALLOCTYPE_NORMAL) +/* 0x0149 */ DEFINE_ACTOR(En_Ds, ACTOR_EN_DS, ALLOCTYPE_NORMAL) +/* 0x014A */ DEFINE_ACTOR(En_Mk, ACTOR_EN_MK, ALLOCTYPE_NORMAL) +/* 0x014B */ DEFINE_ACTOR(En_Bom_Bowl_Man, ACTOR_EN_BOM_BOWL_MAN, ALLOCTYPE_NORMAL) +/* 0x014C */ DEFINE_ACTOR(En_Bom_Bowl_Pit, ACTOR_EN_BOM_BOWL_PIT, ALLOCTYPE_NORMAL) +/* 0x014D */ DEFINE_ACTOR(En_Owl, ACTOR_EN_OWL, ALLOCTYPE_NORMAL) +/* 0x014E */ DEFINE_ACTOR(En_Ishi, ACTOR_EN_ISHI, ALLOCTYPE_NORMAL) +/* 0x014F */ DEFINE_ACTOR(Obj_Hana, ACTOR_OBJ_HANA, ALLOCTYPE_NORMAL) +/* 0x0150 */ DEFINE_ACTOR(Obj_Lightswitch, ACTOR_OBJ_LIGHTSWITCH, ALLOCTYPE_NORMAL) +/* 0x0151 */ DEFINE_ACTOR(Obj_Mure2, ACTOR_OBJ_MURE2, ALLOCTYPE_NORMAL) +/* 0x0152 */ DEFINE_ACTOR(En_Go, ACTOR_EN_GO, ALLOCTYPE_NORMAL) +/* 0x0153 */ DEFINE_ACTOR(En_Fu, ACTOR_EN_FU, ALLOCTYPE_NORMAL) +/* 0x0154 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_154) +/* 0x0155 */ DEFINE_ACTOR(En_Changer, ACTOR_EN_CHANGER, ALLOCTYPE_NORMAL) +/* 0x0156 */ DEFINE_ACTOR(Bg_Jya_Megami, ACTOR_BG_JYA_MEGAMI, ALLOCTYPE_NORMAL) +/* 0x0157 */ DEFINE_ACTOR(Bg_Jya_Lift, ACTOR_BG_JYA_LIFT, ALLOCTYPE_NORMAL) +/* 0x0158 */ DEFINE_ACTOR(Bg_Jya_Bigmirror, ACTOR_BG_JYA_BIGMIRROR, ALLOCTYPE_NORMAL) +/* 0x0159 */ DEFINE_ACTOR(Bg_Jya_Bombchuiwa, ACTOR_BG_JYA_BOMBCHUIWA, ALLOCTYPE_NORMAL) +/* 0x015A */ DEFINE_ACTOR(Bg_Jya_Amishutter, ACTOR_BG_JYA_AMISHUTTER, ALLOCTYPE_NORMAL) +/* 0x015B */ DEFINE_ACTOR(Bg_Jya_Bombiwa, ACTOR_BG_JYA_BOMBIWA, ALLOCTYPE_NORMAL) +/* 0x015C */ DEFINE_ACTOR(Bg_Spot18_Basket, ACTOR_BG_SPOT18_BASKET, ALLOCTYPE_NORMAL) +/* 0x015D */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_15D) +/* 0x015E */ DEFINE_ACTOR(En_Ganon_Organ, ACTOR_EN_GANON_ORGAN, ALLOCTYPE_NORMAL) +/* 0x015F */ DEFINE_ACTOR(En_Siofuki, ACTOR_EN_SIOFUKI, ALLOCTYPE_NORMAL) +/* 0x0160 */ DEFINE_ACTOR(En_Stream, ACTOR_EN_STREAM, ALLOCTYPE_NORMAL) +/* 0x0161 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_161) +/* 0x0162 */ DEFINE_ACTOR(En_Mm, ACTOR_EN_MM, ALLOCTYPE_NORMAL) +/* 0x0163 */ DEFINE_ACTOR(En_Ko, ACTOR_EN_KO, ALLOCTYPE_NORMAL) +/* 0x0164 */ DEFINE_ACTOR(En_Kz, ACTOR_EN_KZ, ALLOCTYPE_NORMAL) +/* 0x0165 */ DEFINE_ACTOR(En_Weather_Tag, ACTOR_EN_WEATHER_TAG, ALLOCTYPE_NORMAL) +/* 0x0166 */ DEFINE_ACTOR(Bg_Sst_Floor, ACTOR_BG_SST_FLOOR, ALLOCTYPE_NORMAL) +/* 0x0167 */ DEFINE_ACTOR(En_Ani, ACTOR_EN_ANI, ALLOCTYPE_NORMAL) +/* 0x0168 */ DEFINE_ACTOR(En_Ex_Item, ACTOR_EN_EX_ITEM, ALLOCTYPE_NORMAL) +/* 0x0169 */ DEFINE_ACTOR(Bg_Jya_Ironobj, ACTOR_BG_JYA_IRONOBJ, ALLOCTYPE_NORMAL) +/* 0x016A */ DEFINE_ACTOR(En_Js, ACTOR_EN_JS, ALLOCTYPE_NORMAL) +/* 0x016B */ DEFINE_ACTOR(En_Jsjutan, ACTOR_EN_JSJUTAN, ALLOCTYPE_NORMAL) +/* 0x016C */ DEFINE_ACTOR(En_Cs, ACTOR_EN_CS, ALLOCTYPE_NORMAL) +/* 0x016D */ DEFINE_ACTOR(En_Md, ACTOR_EN_MD, ALLOCTYPE_NORMAL) +/* 0x016E */ DEFINE_ACTOR(En_Hy, ACTOR_EN_HY, ALLOCTYPE_NORMAL) +/* 0x016F */ DEFINE_ACTOR(En_Ganon_Mant, ACTOR_EN_GANON_MANT, ALLOCTYPE_NORMAL) +/* 0x0170 */ DEFINE_ACTOR(En_Okarina_Effect, ACTOR_EN_OKARINA_EFFECT, ALLOCTYPE_NORMAL) +/* 0x0171 */ DEFINE_ACTOR(En_Mag, ACTOR_EN_MAG, ALLOCTYPE_NORMAL) +/* 0x0172 */ DEFINE_ACTOR(Door_Gerudo, ACTOR_DOOR_GERUDO, ALLOCTYPE_NORMAL) +/* 0x0173 */ DEFINE_ACTOR(Elf_Msg2, ACTOR_ELF_MSG2, ALLOCTYPE_NORMAL) +/* 0x0174 */ DEFINE_ACTOR(Demo_Gt, ACTOR_DEMO_GT, ALLOCTYPE_NORMAL) +/* 0x0175 */ DEFINE_ACTOR(En_Po_Field, ACTOR_EN_PO_FIELD, ALLOCTYPE_NORMAL) +/* 0x0176 */ DEFINE_ACTOR(Efc_Erupc, ACTOR_EFC_ERUPC, ALLOCTYPE_NORMAL) +/* 0x0177 */ DEFINE_ACTOR(Bg_Zg, ACTOR_BG_ZG, ALLOCTYPE_NORMAL) +/* 0x0178 */ DEFINE_ACTOR(En_Heishi4, ACTOR_EN_HEISHI4, ALLOCTYPE_NORMAL) +/* 0x0179 */ DEFINE_ACTOR(En_Zl3, ACTOR_EN_ZL3, ALLOCTYPE_NORMAL) +/* 0x017A */ DEFINE_ACTOR(Boss_Ganon2, ACTOR_BOSS_GANON2, ALLOCTYPE_NORMAL) +/* 0x017B */ DEFINE_ACTOR(En_Kakasi, ACTOR_EN_KAKASI, ALLOCTYPE_NORMAL) +/* 0x017C */ DEFINE_ACTOR(En_Takara_Man, ACTOR_EN_TAKARA_MAN, ALLOCTYPE_NORMAL) +/* 0x017D */ DEFINE_ACTOR(Obj_Makeoshihiki, ACTOR_OBJ_MAKEOSHIHIKI, ALLOCTYPE_NORMAL) +/* 0x017E */ DEFINE_ACTOR(Oceff_Spot, ACTOR_OCEFF_SPOT, ALLOCTYPE_ABSOLUTE) +/* 0x017F */ DEFINE_ACTOR(End_Title, ACTOR_END_TITLE, ALLOCTYPE_NORMAL) +/* 0x0180 */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_180) +/* 0x0181 */ DEFINE_ACTOR(En_Torch, ACTOR_EN_TORCH, ALLOCTYPE_NORMAL) +/* 0x0182 */ DEFINE_ACTOR(Demo_Ec, ACTOR_DEMO_EC, ALLOCTYPE_NORMAL) +/* 0x0183 */ DEFINE_ACTOR(Shot_Sun, ACTOR_SHOT_SUN, ALLOCTYPE_NORMAL) +/* 0x0184 */ DEFINE_ACTOR(En_Dy_Extra, ACTOR_EN_DY_EXTRA, ALLOCTYPE_NORMAL) +/* 0x0185 */ DEFINE_ACTOR(En_Wonder_Talk2, ACTOR_EN_WONDER_TALK2, ALLOCTYPE_NORMAL) +/* 0x0186 */ DEFINE_ACTOR(En_Ge2, ACTOR_EN_GE2, ALLOCTYPE_NORMAL) +/* 0x0187 */ DEFINE_ACTOR(Obj_Roomtimer, ACTOR_OBJ_ROOMTIMER, ALLOCTYPE_NORMAL) +/* 0x0188 */ DEFINE_ACTOR(En_Ssh, ACTOR_EN_SSH, ALLOCTYPE_NORMAL) +/* 0x0189 */ DEFINE_ACTOR(En_Sth, ACTOR_EN_STH, ALLOCTYPE_NORMAL) +/* 0x018A */ DEFINE_ACTOR(Oceff_Wipe, ACTOR_OCEFF_WIPE, ALLOCTYPE_ABSOLUTE) +/* 0x018B */ DEFINE_ACTOR(Oceff_Storm, ACTOR_OCEFF_STORM, ALLOCTYPE_ABSOLUTE) +/* 0x018C */ DEFINE_ACTOR(En_Weiyer, ACTOR_EN_WEIYER, ALLOCTYPE_NORMAL) +/* 0x018D */ DEFINE_ACTOR(Bg_Spot05_Soko, ACTOR_BG_SPOT05_SOKO, ALLOCTYPE_NORMAL) +/* 0x018E */ DEFINE_ACTOR(Bg_Jya_1flift, ACTOR_BG_JYA_1FLIFT, ALLOCTYPE_NORMAL) +/* 0x018F */ DEFINE_ACTOR(Bg_Jya_Haheniron, ACTOR_BG_JYA_HAHENIRON, ALLOCTYPE_NORMAL) +/* 0x0190 */ DEFINE_ACTOR(Bg_Spot12_Gate, ACTOR_BG_SPOT12_GATE, ALLOCTYPE_NORMAL) +/* 0x0191 */ DEFINE_ACTOR(Bg_Spot12_Saku, ACTOR_BG_SPOT12_SAKU, ALLOCTYPE_NORMAL) +/* 0x0192 */ DEFINE_ACTOR(En_Hintnuts, ACTOR_EN_HINTNUTS, ALLOCTYPE_NORMAL) +/* 0x0193 */ DEFINE_ACTOR(En_Nutsball, ACTOR_EN_NUTSBALL, ALLOCTYPE_NORMAL) +/* 0x0194 */ DEFINE_ACTOR(Bg_Spot00_Break, ACTOR_BG_SPOT00_BREAK, ALLOCTYPE_NORMAL) +/* 0x0195 */ DEFINE_ACTOR(En_Shopnuts, ACTOR_EN_SHOPNUTS, ALLOCTYPE_NORMAL) +/* 0x0196 */ DEFINE_ACTOR(En_It, ACTOR_EN_IT, ALLOCTYPE_NORMAL) +/* 0x0197 */ DEFINE_ACTOR(En_GeldB, ACTOR_EN_GELDB, ALLOCTYPE_NORMAL) +/* 0x0198 */ DEFINE_ACTOR(Oceff_Wipe2, ACTOR_OCEFF_WIPE2, ALLOCTYPE_ABSOLUTE) +/* 0x0199 */ DEFINE_ACTOR(Oceff_Wipe3, ACTOR_OCEFF_WIPE3, ALLOCTYPE_ABSOLUTE) +/* 0x019A */ DEFINE_ACTOR(En_Niw_Girl, ACTOR_EN_NIW_GIRL, ALLOCTYPE_NORMAL) +/* 0x019B */ DEFINE_ACTOR(En_Dog, ACTOR_EN_DOG, ALLOCTYPE_NORMAL) +/* 0x019C */ DEFINE_ACTOR(En_Si, ACTOR_EN_SI, ALLOCTYPE_NORMAL) +/* 0x019D */ DEFINE_ACTOR(Bg_Spot01_Objects2, ACTOR_BG_SPOT01_OBJECTS2, ALLOCTYPE_NORMAL) +/* 0x019E */ DEFINE_ACTOR(Obj_Comb, ACTOR_OBJ_COMB, ALLOCTYPE_NORMAL) +/* 0x019F */ DEFINE_ACTOR(Bg_Spot11_Bakudankabe, ACTOR_BG_SPOT11_BAKUDANKABE, ALLOCTYPE_NORMAL) +/* 0x01A0 */ DEFINE_ACTOR(Obj_Kibako2, ACTOR_OBJ_KIBAKO2, ALLOCTYPE_NORMAL) +/* 0x01A1 */ DEFINE_ACTOR(En_Dnt_Demo, ACTOR_EN_DNT_DEMO, ALLOCTYPE_NORMAL) +/* 0x01A2 */ DEFINE_ACTOR(En_Dnt_Jiji, ACTOR_EN_DNT_JIJI, ALLOCTYPE_NORMAL) +/* 0x01A3 */ DEFINE_ACTOR(En_Dnt_Nomal, ACTOR_EN_DNT_NOMAL, ALLOCTYPE_NORMAL) +/* 0x01A4 */ DEFINE_ACTOR(En_Guest, ACTOR_EN_GUEST, ALLOCTYPE_NORMAL) +/* 0x01A5 */ DEFINE_ACTOR(Bg_Bom_Guard, ACTOR_BG_BOM_GUARD, ALLOCTYPE_NORMAL) +/* 0x01A6 */ DEFINE_ACTOR(En_Hs2, ACTOR_EN_HS2, ALLOCTYPE_NORMAL) +/* 0x01A7 */ DEFINE_ACTOR(Demo_Kekkai, ACTOR_DEMO_KEKKAI, ALLOCTYPE_NORMAL) +/* 0x01A8 */ DEFINE_ACTOR(Bg_Spot08_Bakudankabe, ACTOR_BG_SPOT08_BAKUDANKABE, ALLOCTYPE_NORMAL) +/* 0x01A9 */ DEFINE_ACTOR(Bg_Spot17_Bakudankabe, ACTOR_BG_SPOT17_BAKUDANKABE, ALLOCTYPE_NORMAL) +/* 0x01AA */ DEFINE_ACTOR_UNSET(ACTOR_UNSET_1AA) +/* 0x01AB */ DEFINE_ACTOR(Obj_Mure3, ACTOR_OBJ_MURE3, ALLOCTYPE_NORMAL) +/* 0x01AC */ DEFINE_ACTOR(En_Tg, ACTOR_EN_TG, ALLOCTYPE_NORMAL) +/* 0x01AD */ DEFINE_ACTOR(En_Mu, ACTOR_EN_MU, ALLOCTYPE_NORMAL) +/* 0x01AE */ DEFINE_ACTOR(En_Go2, ACTOR_EN_GO2, ALLOCTYPE_NORMAL) +/* 0x01AF */ DEFINE_ACTOR(En_Wf, ACTOR_EN_WF, ALLOCTYPE_NORMAL) +/* 0x01B0 */ DEFINE_ACTOR(En_Skb, ACTOR_EN_SKB, ALLOCTYPE_NORMAL) +/* 0x01B1 */ DEFINE_ACTOR(Demo_Gj, ACTOR_DEMO_GJ, ALLOCTYPE_NORMAL) +/* 0x01B2 */ DEFINE_ACTOR(Demo_Geff, ACTOR_DEMO_GEFF, ALLOCTYPE_NORMAL) +/* 0x01B3 */ DEFINE_ACTOR(Bg_Gnd_Firemeiro, ACTOR_BG_GND_FIREMEIRO, ALLOCTYPE_NORMAL) +/* 0x01B4 */ DEFINE_ACTOR(Bg_Gnd_Darkmeiro, ACTOR_BG_GND_DARKMEIRO, ALLOCTYPE_NORMAL) +/* 0x01B5 */ DEFINE_ACTOR(Bg_Gnd_Soulmeiro, ACTOR_BG_GND_SOULMEIRO, ALLOCTYPE_NORMAL) +/* 0x01B6 */ DEFINE_ACTOR(Bg_Gnd_Nisekabe, ACTOR_BG_GND_NISEKABE, ALLOCTYPE_NORMAL) +/* 0x01B7 */ DEFINE_ACTOR(Bg_Gnd_Iceblock, ACTOR_BG_GND_ICEBLOCK, ALLOCTYPE_NORMAL) +/* 0x01B8 */ DEFINE_ACTOR(En_Gb, ACTOR_EN_GB, ALLOCTYPE_NORMAL) +/* 0x01B9 */ DEFINE_ACTOR(En_Gs, ACTOR_EN_GS, ALLOCTYPE_NORMAL) +/* 0x01BA */ DEFINE_ACTOR(Bg_Mizu_Bwall, ACTOR_BG_MIZU_BWALL, ALLOCTYPE_NORMAL) +/* 0x01BB */ DEFINE_ACTOR(Bg_Mizu_Shutter, ACTOR_BG_MIZU_SHUTTER, ALLOCTYPE_NORMAL) +/* 0x01BC */ DEFINE_ACTOR(En_Daiku_Kakariko, ACTOR_EN_DAIKU_KAKARIKO, ALLOCTYPE_NORMAL) +/* 0x01BD */ DEFINE_ACTOR(Bg_Bowl_Wall, ACTOR_BG_BOWL_WALL, ALLOCTYPE_NORMAL) +/* 0x01BE */ DEFINE_ACTOR(En_Wall_Tubo, ACTOR_EN_WALL_TUBO, ALLOCTYPE_NORMAL) +/* 0x01BF */ DEFINE_ACTOR(En_Po_Desert, ACTOR_EN_PO_DESERT, ALLOCTYPE_NORMAL) +/* 0x01C0 */ DEFINE_ACTOR(En_Crow, ACTOR_EN_CROW, ALLOCTYPE_NORMAL) +/* 0x01C1 */ DEFINE_ACTOR(Door_Killer, ACTOR_DOOR_KILLER, ALLOCTYPE_NORMAL) +/* 0x01C2 */ DEFINE_ACTOR(Bg_Spot11_Oasis, ACTOR_BG_SPOT11_OASIS, ALLOCTYPE_NORMAL) +/* 0x01C3 */ DEFINE_ACTOR(Bg_Spot18_Futa, ACTOR_BG_SPOT18_FUTA, ALLOCTYPE_NORMAL) +/* 0x01C4 */ DEFINE_ACTOR(Bg_Spot18_Shutter, ACTOR_BG_SPOT18_SHUTTER, ALLOCTYPE_NORMAL) +/* 0x01C5 */ DEFINE_ACTOR(En_Ma3, ACTOR_EN_MA3, ALLOCTYPE_NORMAL) +/* 0x01C6 */ DEFINE_ACTOR(En_Cow, ACTOR_EN_COW, ALLOCTYPE_NORMAL) +/* 0x01C7 */ DEFINE_ACTOR(Bg_Ice_Turara, ACTOR_BG_ICE_TURARA, ALLOCTYPE_NORMAL) +/* 0x01C8 */ DEFINE_ACTOR(Bg_Ice_Shutter, ACTOR_BG_ICE_SHUTTER, ALLOCTYPE_NORMAL) +/* 0x01C9 */ DEFINE_ACTOR(En_Kakasi2, ACTOR_EN_KAKASI2, ALLOCTYPE_NORMAL) +/* 0x01CA */ DEFINE_ACTOR(En_Kakasi3, ACTOR_EN_KAKASI3, ALLOCTYPE_NORMAL) +/* 0x01CB */ DEFINE_ACTOR(Oceff_Wipe4, ACTOR_OCEFF_WIPE4, ALLOCTYPE_ABSOLUTE) +/* 0x01CC */ DEFINE_ACTOR(En_Eg, ACTOR_EN_EG, ALLOCTYPE_NORMAL) +/* 0x01CD */ DEFINE_ACTOR(Bg_Menkuri_Nisekabe, ACTOR_BG_MENKURI_NISEKABE, ALLOCTYPE_NORMAL) +/* 0x01CE */ DEFINE_ACTOR(En_Zo, ACTOR_EN_ZO, ALLOCTYPE_NORMAL) +/* 0x01CF */ DEFINE_ACTOR(Obj_Makekinsuta, ACTOR_OBJ_MAKEKINSUTA, ALLOCTYPE_NORMAL) +/* 0x01D0 */ DEFINE_ACTOR(En_Ge3, ACTOR_EN_GE3, ALLOCTYPE_NORMAL) +/* 0x01D1 */ DEFINE_ACTOR(Obj_Timeblock, ACTOR_OBJ_TIMEBLOCK, ALLOCTYPE_NORMAL) +/* 0x01D2 */ DEFINE_ACTOR(Obj_Hamishi, ACTOR_OBJ_HAMISHI, ALLOCTYPE_NORMAL) +/* 0x01D3 */ DEFINE_ACTOR(En_Zl4, ACTOR_EN_ZL4, ALLOCTYPE_NORMAL) +/* 0x01D4 */ DEFINE_ACTOR(En_Mm2, ACTOR_EN_MM2, ALLOCTYPE_NORMAL) +/* 0x01D5 */ DEFINE_ACTOR(Bg_Jya_Block, ACTOR_BG_JYA_BLOCK, ALLOCTYPE_NORMAL) +/* 0x01D6 */ DEFINE_ACTOR(Obj_Warp2block, ACTOR_OBJ_WARP2BLOCK, ALLOCTYPE_NORMAL) diff --git a/include/tables/effect_ss_table.h b/include/tables/effect_ss_table.h new file mode 100644 index 0000000000..5df91784a9 --- /dev/null +++ b/include/tables/effect_ss_table.h @@ -0,0 +1,46 @@ +/** + * Effect Soft Sprite Table + * + * DEFINE_EFFECT_SS should be used for normal effects soft sprites + * - Argument 1: Name of the effect (without the ovl_ part) + * - Argument 2: Enum value for this effect + * + * DEFINE_EFFECT_SS_UNSET is needed to define empty entries from the original game + */ +/* 0x00 */ DEFINE_EFFECT_SS(Effect_Ss_Dust, EFFECT_SS_DUST) +/* 0x01 */ DEFINE_EFFECT_SS(Effect_Ss_KiraKira, EFFECT_SS_KIRAKIRA) +/* 0x02 */ DEFINE_EFFECT_SS(Effect_Ss_Bomb, EFFECT_SS_BOMB) +/* 0x03 */ DEFINE_EFFECT_SS(Effect_Ss_Bomb2, EFFECT_SS_BOMB2) +/* 0x04 */ DEFINE_EFFECT_SS(Effect_Ss_Blast, EFFECT_SS_BLAST) +/* 0x05 */ DEFINE_EFFECT_SS(Effect_Ss_G_Spk, EFFECT_SS_G_SPK) +/* 0x06 */ DEFINE_EFFECT_SS(Effect_Ss_D_Fire, EFFECT_SS_D_FIRE) +/* 0x07 */ DEFINE_EFFECT_SS(Effect_Ss_Bubble, EFFECT_SS_BUBBLE) +/* 0x08 */ DEFINE_EFFECT_SS_UNSET(EFFECT_SS_UNSET) +/* 0x09 */ DEFINE_EFFECT_SS(Effect_Ss_G_Ripple, EFFECT_SS_G_RIPPLE) +/* 0x0A */ DEFINE_EFFECT_SS(Effect_Ss_G_Splash, EFFECT_SS_G_SPLASH) +/* 0x0B */ DEFINE_EFFECT_SS(Effect_Ss_G_Magma, EFFECT_SS_G_MAGMA) +/* 0x0C */ DEFINE_EFFECT_SS(Effect_Ss_G_Fire, EFFECT_SS_G_FIRE) +/* 0x0D */ DEFINE_EFFECT_SS(Effect_Ss_Lightning, EFFECT_SS_LIGHTNING) +/* 0x0E */ DEFINE_EFFECT_SS(Effect_Ss_Dt_Bubble, EFFECT_SS_DT_BUBBLE) +/* 0x0F */ DEFINE_EFFECT_SS(Effect_Ss_Hahen, EFFECT_SS_HAHEN) +/* 0x10 */ DEFINE_EFFECT_SS(Effect_Ss_Stick, EFFECT_SS_STICK) +/* 0x11 */ DEFINE_EFFECT_SS(Effect_Ss_Sibuki, EFFECT_SS_SIBUKI) +/* 0x12 */ DEFINE_EFFECT_SS(Effect_Ss_Sibuki2, EFFECT_SS_SIBUKI2) +/* 0x13 */ DEFINE_EFFECT_SS(Effect_Ss_G_Magma2, EFFECT_SS_G_MAGMA2) +/* 0x14 */ DEFINE_EFFECT_SS(Effect_Ss_Stone1, EFFECT_SS_STONE1) +/* 0x15 */ DEFINE_EFFECT_SS(Effect_Ss_HitMark, EFFECT_SS_HITMARK) +/* 0x16 */ DEFINE_EFFECT_SS(Effect_Ss_Fhg_Flash, EFFECT_SS_FHG_FLASH) +/* 0x17 */ DEFINE_EFFECT_SS(Effect_Ss_K_Fire, EFFECT_SS_K_FIRE) +/* 0x18 */ DEFINE_EFFECT_SS(Effect_Ss_Solder_Srch_Ball, EFFECT_SS_SOLDER_SRCH_BALL) +/* 0x19 */ DEFINE_EFFECT_SS(Effect_Ss_Kakera, EFFECT_SS_KAKERA) +/* 0x1A */ DEFINE_EFFECT_SS(Effect_Ss_Ice_Piece, EFFECT_SS_ICE_PIECE) +/* 0x1B */ DEFINE_EFFECT_SS(Effect_Ss_En_Ice, EFFECT_SS_EN_ICE) +/* 0x1C */ DEFINE_EFFECT_SS(Effect_Ss_Fire_Tail, EFFECT_SS_FIRE_TAIL) +/* 0x1D */ DEFINE_EFFECT_SS(Effect_Ss_En_Fire, EFFECT_SS_EN_FIRE) +/* 0x1E */ DEFINE_EFFECT_SS(Effect_Ss_Extra, EFFECT_SS_EXTRA) +/* 0x1F */ DEFINE_EFFECT_SS(Effect_Ss_Fcircle, EFFECT_SS_FCIRCLE) +/* 0x20 */ DEFINE_EFFECT_SS(Effect_Ss_Dead_Db, EFFECT_SS_DEAD_DB) +/* 0x21 */ DEFINE_EFFECT_SS(Effect_Ss_Dead_Dd, EFFECT_SS_DEAD_DD) +/* 0x22 */ DEFINE_EFFECT_SS(Effect_Ss_Dead_Ds, EFFECT_SS_DEAD_DS) +/* 0x23 */ DEFINE_EFFECT_SS(Effect_Ss_Dead_Sound, EFFECT_SS_DEAD_SOUND) +/* 0x24 */ DEFINE_EFFECT_SS(Effect_Ss_Ice_Smoke, EFFECT_SS_ICE_SMOKE) diff --git a/include/tables/object_table.h b/include/tables/object_table.h new file mode 100644 index 0000000000..97e6aa2558 --- /dev/null +++ b/include/tables/object_table.h @@ -0,0 +1,411 @@ +/** + * Object Table + * + * DEFINE_OBJECT should be used for normal objects + * - Argument 1: Name of the object segment in spec + * - Argument 2: Enum value for this object + * + * DEFINE_OBJECT_UNSET and DEFINE_OBJECT_NULL are needed to define empty entries from the original game + */ +/* 0x0000 */ DEFINE_OBJECT_UNSET(OBJECT_INVALID) // Object ID 0 isn't usable and should remain unset +/* 0x0001 */ DEFINE_OBJECT(gameplay_keep, OBJECT_GAMEPLAY_KEEP) +/* 0x0002 */ DEFINE_OBJECT(gameplay_field_keep, OBJECT_GAMEPLAY_FIELD_KEEP) +/* 0x0003 */ DEFINE_OBJECT(gameplay_dangeon_keep, OBJECT_GAMEPLAY_DANGEON_KEEP) +/* 0x0004 */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_4) +/* 0x0005 */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_5) +/* 0x0006 */ DEFINE_OBJECT(object_human, OBJECT_HUMAN) +/* 0x0007 */ DEFINE_OBJECT(object_okuta, OBJECT_OKUTA) +/* 0x0008 */ DEFINE_OBJECT(object_crow, OBJECT_CROW) +/* 0x0009 */ DEFINE_OBJECT(object_poh, OBJECT_POH) +/* 0x000A */ DEFINE_OBJECT(object_dy_obj, OBJECT_DY_OBJ) +/* 0x000B */ DEFINE_OBJECT(object_wallmaster, OBJECT_WALLMASTER) +/* 0x000C */ DEFINE_OBJECT(object_dodongo, OBJECT_DODONGO) +/* 0x000D */ DEFINE_OBJECT(object_firefly, OBJECT_FIREFLY) +/* 0x000E */ DEFINE_OBJECT(object_box, OBJECT_BOX) +/* 0x000F */ DEFINE_OBJECT(object_fire, OBJECT_FIRE) +/* 0x0010 */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_10) +/* 0x0011 */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_11) +/* 0x0012 */ DEFINE_OBJECT(object_bubble, OBJECT_BUBBLE) +/* 0x0013 */ DEFINE_OBJECT(object_niw, OBJECT_NIW) +/* 0x0014 */ DEFINE_OBJECT(object_link_boy, OBJECT_LINK_BOY) +/* 0x0015 */ DEFINE_OBJECT(object_link_child, OBJECT_LINK_CHILD) +/* 0x0016 */ DEFINE_OBJECT(object_tite, OBJECT_TITE) +/* 0x0017 */ DEFINE_OBJECT(object_reeba, OBJECT_REEBA) +/* 0x0018 */ DEFINE_OBJECT(object_peehat, OBJECT_PEEHAT) +/* 0x0019 */ DEFINE_OBJECT(object_kingdodongo, OBJECT_KINGDODONGO) +/* 0x001A */ DEFINE_OBJECT(object_horse, OBJECT_HORSE) +/* 0x001B */ DEFINE_OBJECT(object_zf, OBJECT_ZF) +/* 0x001C */ DEFINE_OBJECT(object_goma, OBJECT_GOMA) +/* 0x001D */ DEFINE_OBJECT(object_zl1, OBJECT_ZL1) +/* 0x001E */ DEFINE_OBJECT(object_gol, OBJECT_GOL) +/* 0x001F */ DEFINE_OBJECT(object_dodojr, OBJECT_DODOJR) +/* 0x0020 */ DEFINE_OBJECT(object_torch2, OBJECT_TORCH2) +/* 0x0021 */ DEFINE_OBJECT(object_bl, OBJECT_BL) +/* 0x0022 */ DEFINE_OBJECT(object_tp, OBJECT_TP) +/* 0x0023 */ DEFINE_OBJECT(object_oA1, OBJECT_OA1) +/* 0x0024 */ DEFINE_OBJECT(object_st, OBJECT_ST) +/* 0x0025 */ DEFINE_OBJECT(object_bw, OBJECT_BW) +/* 0x0026 */ DEFINE_OBJECT(object_ei, OBJECT_EI) +/* 0x0027 */ DEFINE_OBJECT(object_horse_normal, OBJECT_HORSE_NORMAL) +/* 0x0028 */ DEFINE_OBJECT(object_oB1, OBJECT_OB1) +/* 0x0029 */ DEFINE_OBJECT(object_o_anime, OBJECT_O_ANIME) +/* 0x002A */ DEFINE_OBJECT(object_spot04_objects, OBJECT_SPOT04_OBJECTS) +/* 0x002B */ DEFINE_OBJECT(object_ddan_objects, OBJECT_DDAN_OBJECTS) +/* 0x002C */ DEFINE_OBJECT(object_hidan_objects, OBJECT_HIDAN_OBJECTS) +/* 0x002D */ DEFINE_OBJECT(object_horse_ganon, OBJECT_HORSE_GANON) +/* 0x002E */ DEFINE_OBJECT(object_oA2, OBJECT_OA2) +/* 0x002F */ DEFINE_OBJECT(object_spot00_objects, OBJECT_SPOT00_OBJECTS) +/* 0x0030 */ DEFINE_OBJECT(object_mb, OBJECT_MB) +/* 0x0031 */ DEFINE_OBJECT(object_bombf, OBJECT_BOMBF) +/* 0x0032 */ DEFINE_OBJECT(object_sk2, OBJECT_SK2) +/* 0x0033 */ DEFINE_OBJECT(object_oE1, OBJECT_OE1) +/* 0x0034 */ DEFINE_OBJECT(object_oE_anime, OBJECT_OE_ANIME) +/* 0x0035 */ DEFINE_OBJECT(object_oE2, OBJECT_OE2) +/* 0x0036 */ DEFINE_OBJECT(object_ydan_objects, OBJECT_YDAN_OBJECTS) +/* 0x0037 */ DEFINE_OBJECT(object_gnd, OBJECT_GND) +/* 0x0038 */ DEFINE_OBJECT(object_am, OBJECT_AM) +/* 0x0039 */ DEFINE_OBJECT(object_dekubaba, OBJECT_DEKUBABA) +/* 0x003A */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_3A) +/* 0x003B */ DEFINE_OBJECT(object_oA3, OBJECT_OA3) +/* 0x003C */ DEFINE_OBJECT(object_oA4, OBJECT_OA4) +/* 0x003D */ DEFINE_OBJECT(object_oA5, OBJECT_OA5) +/* 0x003E */ DEFINE_OBJECT(object_oA6, OBJECT_OA6) +/* 0x003F */ DEFINE_OBJECT(object_oA7, OBJECT_OA7) +/* 0x0040 */ DEFINE_OBJECT(object_jj, OBJECT_JJ) +/* 0x0041 */ DEFINE_OBJECT(object_oA8, OBJECT_OA8) +/* 0x0042 */ DEFINE_OBJECT(object_oA9, OBJECT_OA9) +/* 0x0043 */ DEFINE_OBJECT(object_oB2, OBJECT_OB2) +/* 0x0044 */ DEFINE_OBJECT(object_oB3, OBJECT_OB3) +/* 0x0045 */ DEFINE_OBJECT(object_oB4, OBJECT_OB4) +/* 0x0046 */ DEFINE_OBJECT(object_horse_zelda, OBJECT_HORSE_ZELDA) +/* 0x0047 */ DEFINE_OBJECT(object_opening_demo1, OBJECT_OPENING_DEMO1) +/* 0x0048 */ DEFINE_OBJECT(object_warp1, OBJECT_WARP1) +/* 0x0049 */ DEFINE_OBJECT(object_b_heart, OBJECT_B_HEART) +/* 0x004A */ DEFINE_OBJECT(object_dekunuts, OBJECT_DEKUNUTS) +/* 0x004B */ DEFINE_OBJECT(object_oE3, OBJECT_OE3) +/* 0x004C */ DEFINE_OBJECT(object_oE4, OBJECT_OE4) +/* 0x004D */ DEFINE_OBJECT(object_menkuri_objects, OBJECT_MENKURI_OBJECTS) +/* 0x004E */ DEFINE_OBJECT(object_oE5, OBJECT_OE5) +/* 0x004F */ DEFINE_OBJECT(object_oE6, OBJECT_OE6) +/* 0x0050 */ DEFINE_OBJECT(object_oE7, OBJECT_OE7) +/* 0x0051 */ DEFINE_OBJECT(object_oE8, OBJECT_OE8) +/* 0x0052 */ DEFINE_OBJECT(object_oE9, OBJECT_OE9) +/* 0x0053 */ DEFINE_OBJECT(object_oE10, OBJECT_OE10) +/* 0x0054 */ DEFINE_OBJECT(object_oE11, OBJECT_OE11) +/* 0x0055 */ DEFINE_OBJECT(object_oE12, OBJECT_OE12) +/* 0x0056 */ DEFINE_OBJECT(object_vali, OBJECT_VALI) +/* 0x0057 */ DEFINE_OBJECT(object_oA10, OBJECT_OA10) +/* 0x0058 */ DEFINE_OBJECT(object_oA11, OBJECT_OA11) +/* 0x0059 */ DEFINE_OBJECT(object_mizu_objects, OBJECT_MIZU_OBJECTS) +/* 0x005A */ DEFINE_OBJECT(object_fhg, OBJECT_FHG) +/* 0x005B */ DEFINE_OBJECT(object_ossan, OBJECT_OSSAN) +/* 0x005C */ DEFINE_OBJECT(object_mori_hineri1, OBJECT_MORI_HINERI1) +/* 0x005D */ DEFINE_OBJECT(object_Bb, OBJECT_BB) +/* 0x005E */ DEFINE_OBJECT(object_toki_objects, OBJECT_TOKI_OBJECTS) +/* 0x005F */ DEFINE_OBJECT(object_yukabyun, OBJECT_YUKABYUN) +/* 0x0060 */ DEFINE_OBJECT(object_zl2, OBJECT_ZL2) +/* 0x0061 */ DEFINE_OBJECT(object_mjin, OBJECT_MJIN) +/* 0x0062 */ DEFINE_OBJECT(object_mjin_flash, OBJECT_MJIN_FLASH) +/* 0x0063 */ DEFINE_OBJECT(object_mjin_dark, OBJECT_MJIN_DARK) +/* 0x0064 */ DEFINE_OBJECT(object_mjin_flame, OBJECT_MJIN_FLAME) +/* 0x0065 */ DEFINE_OBJECT(object_mjin_ice, OBJECT_MJIN_ICE) +/* 0x0066 */ DEFINE_OBJECT(object_mjin_soul, OBJECT_MJIN_SOUL) +/* 0x0067 */ DEFINE_OBJECT(object_mjin_wind, OBJECT_MJIN_WIND) +/* 0x0068 */ DEFINE_OBJECT(object_mjin_oka, OBJECT_MJIN_OKA) +/* 0x0069 */ DEFINE_OBJECT(object_haka_objects, OBJECT_HAKA_OBJECTS) +/* 0x006A */ DEFINE_OBJECT(object_spot06_objects, OBJECT_SPOT06_OBJECTS) +/* 0x006B */ DEFINE_OBJECT(object_ice_objects, OBJECT_ICE_OBJECTS) +/* 0x006C */ DEFINE_OBJECT(object_relay_objects, OBJECT_RELAY_OBJECTS) +/* 0x006D */ DEFINE_OBJECT(object_po_field, OBJECT_PO_FIELD) +/* 0x006E */ DEFINE_OBJECT(object_po_composer, OBJECT_PO_COMPOSER) +/* 0x006F */ DEFINE_OBJECT(object_mori_hineri1a, OBJECT_MORI_HINERI1A) +/* 0x0070 */ DEFINE_OBJECT(object_mori_hineri2, OBJECT_MORI_HINERI2) +/* 0x0071 */ DEFINE_OBJECT(object_mori_hineri2a, OBJECT_MORI_HINERI2A) +/* 0x0072 */ DEFINE_OBJECT(object_mori_objects, OBJECT_MORI_OBJECTS) +/* 0x0073 */ DEFINE_OBJECT(object_mori_tex, OBJECT_MORI_TEX) +/* 0x0074 */ DEFINE_OBJECT(object_spot08_obj, OBJECT_SPOT08_OBJ) +/* 0x0075 */ DEFINE_OBJECT(object_warp2, OBJECT_WARP2) +/* 0x0076 */ DEFINE_OBJECT(object_hata, OBJECT_HATA) +/* 0x0077 */ DEFINE_OBJECT(object_bird, OBJECT_BIRD) +/* 0x0078 */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_78) +/* 0x0079 */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_79) +/* 0x007A */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_7A) +/* 0x007B */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_7B) +/* 0x007C */ DEFINE_OBJECT(object_wood02, OBJECT_WOOD02) +/* 0x007D */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_7D) +/* 0x007E */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_7E) +/* 0x007F */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_7F) +/* 0x0080 */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_80) +/* 0x0081 */ DEFINE_OBJECT(object_lightbox, OBJECT_LIGHTBOX) +/* 0x0082 */ DEFINE_OBJECT(object_pu_box, OBJECT_PU_BOX) +/* 0x0083 */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_83) +/* 0x0084 */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_84) +/* 0x0085 */ DEFINE_OBJECT(object_trap, OBJECT_TRAP) +/* 0x0086 */ DEFINE_OBJECT(object_vase, OBJECT_VASE) +/* 0x0087 */ DEFINE_OBJECT(object_im, OBJECT_IM) +/* 0x0088 */ DEFINE_OBJECT(object_ta, OBJECT_TA) +/* 0x0089 */ DEFINE_OBJECT(object_tk, OBJECT_TK) +/* 0x008A */ DEFINE_OBJECT(object_xc, OBJECT_XC) +/* 0x008B */ DEFINE_OBJECT(object_vm, OBJECT_VM) +/* 0x008C */ DEFINE_OBJECT(object_bv, OBJECT_BV) +/* 0x008D */ DEFINE_OBJECT(object_hakach_objects, OBJECT_HAKACH_OBJECTS) +/* 0x008E */ DEFINE_OBJECT(object_efc_crystal_light, OBJECT_EFC_CRYSTAL_LIGHT) +/* 0x008F */ DEFINE_OBJECT(object_efc_fire_ball, OBJECT_EFC_FIRE_BALL) +/* 0x0090 */ DEFINE_OBJECT(object_efc_flash, OBJECT_EFC_FLASH) +/* 0x0091 */ DEFINE_OBJECT(object_efc_lgt_shower, OBJECT_EFC_LGT_SHOWER) +/* 0x0092 */ DEFINE_OBJECT(object_efc_star_field, OBJECT_EFC_STAR_FIELD) +/* 0x0093 */ DEFINE_OBJECT(object_god_lgt, OBJECT_GOD_LGT) +/* 0x0094 */ DEFINE_OBJECT(object_light_ring, OBJECT_LIGHT_RING) +/* 0x0095 */ DEFINE_OBJECT(object_triforce_spot, OBJECT_TRIFORCE_SPOT) +/* 0x0096 */ DEFINE_OBJECT(object_bdan_objects, OBJECT_BDAN_OBJECTS) +/* 0x0097 */ DEFINE_OBJECT(object_sd, OBJECT_SD) +/* 0x0098 */ DEFINE_OBJECT(object_rd, OBJECT_RD) +/* 0x0099 */ DEFINE_OBJECT(object_po_sisters, OBJECT_PO_SISTERS) +/* 0x009A */ DEFINE_OBJECT(object_heavy_object, OBJECT_HEAVY_OBJECT) +/* 0x009B */ DEFINE_OBJECT(object_gndd, OBJECT_GNDD) +/* 0x009C */ DEFINE_OBJECT(object_fd, OBJECT_FD) +/* 0x009D */ DEFINE_OBJECT(object_du, OBJECT_DU) +/* 0x009E */ DEFINE_OBJECT(object_fw, OBJECT_FW) +/* 0x009F */ DEFINE_OBJECT(object_medal, OBJECT_MEDAL) +/* 0x00A0 */ DEFINE_OBJECT(object_horse_link_child, OBJECT_HORSE_LINK_CHILD) +/* 0x00A1 */ DEFINE_OBJECT(object_spot02_objects, OBJECT_SPOT02_OBJECTS) +/* 0x00A2 */ DEFINE_OBJECT(object_haka, OBJECT_HAKA) +/* 0x00A3 */ DEFINE_OBJECT(object_ru1, OBJECT_RU1) +/* 0x00A4 */ DEFINE_OBJECT(object_syokudai, OBJECT_SYOKUDAI) +/* 0x00A5 */ DEFINE_OBJECT(object_fd2, OBJECT_FD2) +/* 0x00A6 */ DEFINE_OBJECT(object_dh, OBJECT_DH) +/* 0x00A7 */ DEFINE_OBJECT(object_rl, OBJECT_RL) +/* 0x00A8 */ DEFINE_OBJECT(object_efc_tw, OBJECT_EFC_TW) +/* 0x00A9 */ DEFINE_OBJECT(object_demo_tre_lgt, OBJECT_DEMO_TRE_LGT) +/* 0x00AA */ DEFINE_OBJECT(object_gi_key, OBJECT_GI_KEY) +/* 0x00AB */ DEFINE_OBJECT(object_mir_ray, OBJECT_MIR_RAY) +/* 0x00AC */ DEFINE_OBJECT(object_brob, OBJECT_BROB) +/* 0x00AD */ DEFINE_OBJECT(object_gi_jewel, OBJECT_GI_JEWEL) +/* 0x00AE */ DEFINE_OBJECT(object_spot09_obj, OBJECT_SPOT09_OBJ) +/* 0x00AF */ DEFINE_OBJECT(object_spot18_obj, OBJECT_SPOT18_OBJ) +/* 0x00B0 */ DEFINE_OBJECT(object_bdoor, OBJECT_BDOOR) +/* 0x00B1 */ DEFINE_OBJECT(object_spot17_obj, OBJECT_SPOT17_OBJ) +/* 0x00B2 */ DEFINE_OBJECT(object_shop_dungen, OBJECT_SHOP_DUNGEN) +/* 0x00B3 */ DEFINE_OBJECT(object_nb, OBJECT_NB) +/* 0x00B4 */ DEFINE_OBJECT(object_mo, OBJECT_MO) +/* 0x00B5 */ DEFINE_OBJECT(object_sb, OBJECT_SB) +/* 0x00B6 */ DEFINE_OBJECT(object_gi_melody, OBJECT_GI_MELODY) +/* 0x00B7 */ DEFINE_OBJECT(object_gi_heart, OBJECT_GI_HEART) +/* 0x00B8 */ DEFINE_OBJECT(object_gi_compass, OBJECT_GI_COMPASS) +/* 0x00B9 */ DEFINE_OBJECT(object_gi_bosskey, OBJECT_GI_BOSSKEY) +/* 0x00BA */ DEFINE_OBJECT(object_gi_medal, OBJECT_GI_MEDAL) +/* 0x00BB */ DEFINE_OBJECT(object_gi_nuts, OBJECT_GI_NUTS) +/* 0x00BC */ DEFINE_OBJECT(object_sa, OBJECT_SA) +/* 0x00BD */ DEFINE_OBJECT(object_gi_hearts, OBJECT_GI_HEARTS) +/* 0x00BE */ DEFINE_OBJECT(object_gi_arrowcase, OBJECT_GI_ARROWCASE) +/* 0x00BF */ DEFINE_OBJECT(object_gi_bombpouch, OBJECT_GI_BOMBPOUCH) +/* 0x00C0 */ DEFINE_OBJECT(object_in, OBJECT_IN) +/* 0x00C1 */ DEFINE_OBJECT(object_tr, OBJECT_TR) +/* 0x00C2 */ DEFINE_OBJECT(object_spot16_obj, OBJECT_SPOT16_OBJ) +/* 0x00C3 */ DEFINE_OBJECT(object_oE1s, OBJECT_OE1S) +/* 0x00C4 */ DEFINE_OBJECT(object_oE4s, OBJECT_OE4S) +/* 0x00C5 */ DEFINE_OBJECT(object_os_anime, OBJECT_OS_ANIME) +/* 0x00C6 */ DEFINE_OBJECT(object_gi_bottle, OBJECT_GI_BOTTLE) +/* 0x00C7 */ DEFINE_OBJECT(object_gi_stick, OBJECT_GI_STICK) +/* 0x00C8 */ DEFINE_OBJECT(object_gi_map, OBJECT_GI_MAP) +/* 0x00C9 */ DEFINE_OBJECT(object_oF1d_map, OBJECT_OF1D_MAP) +/* 0x00CA */ DEFINE_OBJECT(object_ru2, OBJECT_RU2) +/* 0x00CB */ DEFINE_OBJECT(object_gi_shield_1, OBJECT_GI_SHIELD_1) +/* 0x00CC */ DEFINE_OBJECT(object_dekujr, OBJECT_DEKUJR) +/* 0x00CD */ DEFINE_OBJECT(object_gi_magicpot, OBJECT_GI_MAGICPOT) +/* 0x00CE */ DEFINE_OBJECT(object_gi_bomb_1, OBJECT_GI_BOMB_1) +/* 0x00CF */ DEFINE_OBJECT(object_oF1s, OBJECT_OF1S) +/* 0x00D0 */ DEFINE_OBJECT(object_ma2, OBJECT_MA2) +/* 0x00D1 */ DEFINE_OBJECT(object_gi_purse, OBJECT_GI_PURSE) +/* 0x00D2 */ DEFINE_OBJECT(object_hni, OBJECT_HNI) +/* 0x00D3 */ DEFINE_OBJECT(object_tw, OBJECT_TW) +/* 0x00D4 */ DEFINE_OBJECT(object_rr, OBJECT_RR) +/* 0x00D5 */ DEFINE_OBJECT(object_bxa, OBJECT_BXA) +/* 0x00D6 */ DEFINE_OBJECT(object_anubice, OBJECT_ANUBICE) +/* 0x00D7 */ DEFINE_OBJECT(object_gi_gerudo, OBJECT_GI_GERUDO) +/* 0x00D8 */ DEFINE_OBJECT(object_gi_arrow, OBJECT_GI_ARROW) +/* 0x00D9 */ DEFINE_OBJECT(object_gi_bomb_2, OBJECT_GI_BOMB_2) +/* 0x00DA */ DEFINE_OBJECT(object_gi_egg, OBJECT_GI_EGG) +/* 0x00DB */ DEFINE_OBJECT(object_gi_scale, OBJECT_GI_SCALE) +/* 0x00DC */ DEFINE_OBJECT(object_gi_shield_2, OBJECT_GI_SHIELD_2) +/* 0x00DD */ DEFINE_OBJECT(object_gi_hookshot, OBJECT_GI_HOOKSHOT) +/* 0x00DE */ DEFINE_OBJECT(object_gi_ocarina, OBJECT_GI_OCARINA) +/* 0x00DF */ DEFINE_OBJECT(object_gi_milk, OBJECT_GI_MILK) +/* 0x00E0 */ DEFINE_OBJECT(object_ma1, OBJECT_MA1) +/* 0x00E1 */ DEFINE_OBJECT(object_ganon, OBJECT_GANON) +/* 0x00E2 */ DEFINE_OBJECT(object_sst, OBJECT_SST) +/* 0x00E3 */ DEFINE_OBJECT_NULL(object_ny, OBJECT_NY_UNUSED) // unused duplicate with size 0 +/* 0x00E4 */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_E4) +/* 0x00E5 */ DEFINE_OBJECT(object_ny, OBJECT_NY) +/* 0x00E6 */ DEFINE_OBJECT(object_fr, OBJECT_FR) +/* 0x00E7 */ DEFINE_OBJECT(object_gi_pachinko, OBJECT_GI_PACHINKO) +/* 0x00E8 */ DEFINE_OBJECT(object_gi_boomerang, OBJECT_GI_BOOMERANG) +/* 0x00E9 */ DEFINE_OBJECT(object_gi_bow, OBJECT_GI_BOW) +/* 0x00EA */ DEFINE_OBJECT(object_gi_glasses, OBJECT_GI_GLASSES) +/* 0x00EB */ DEFINE_OBJECT(object_gi_liquid, OBJECT_GI_LIQUID) +/* 0x00EC */ DEFINE_OBJECT(object_ani, OBJECT_ANI) +/* 0x00ED */ DEFINE_OBJECT(object_demo_6k, OBJECT_DEMO_6K) +/* 0x00EE */ DEFINE_OBJECT(object_gi_shield_3, OBJECT_GI_SHIELD_3) +/* 0x00EF */ DEFINE_OBJECT(object_gi_letter, OBJECT_GI_LETTER) +/* 0x00F0 */ DEFINE_OBJECT(object_spot15_obj, OBJECT_SPOT15_OBJ) +/* 0x00F1 */ DEFINE_OBJECT(object_jya_obj, OBJECT_JYA_OBJ) +/* 0x00F2 */ DEFINE_OBJECT(object_gi_clothes, OBJECT_GI_CLOTHES) +/* 0x00F3 */ DEFINE_OBJECT(object_gi_bean, OBJECT_GI_BEAN) +/* 0x00F4 */ DEFINE_OBJECT(object_gi_fish, OBJECT_GI_FISH) +/* 0x00F5 */ DEFINE_OBJECT(object_gi_saw, OBJECT_GI_SAW) +/* 0x00F6 */ DEFINE_OBJECT(object_gi_hammer, OBJECT_GI_HAMMER) +/* 0x00F7 */ DEFINE_OBJECT(object_gi_grass, OBJECT_GI_GRASS) +/* 0x00F8 */ DEFINE_OBJECT(object_gi_longsword, OBJECT_GI_LONGSWORD) +/* 0x00F9 */ DEFINE_OBJECT(object_spot01_objects, OBJECT_SPOT01_OBJECTS) +/* 0x00FA */ DEFINE_OBJECT_NULL(object_md, OBJECT_MD_UNUSED) // unused duplicate with size 0 +/* 0x00FB */ DEFINE_OBJECT(object_md, OBJECT_MD) +/* 0x00FC */ DEFINE_OBJECT(object_km1, OBJECT_KM1) +/* 0x00FD */ DEFINE_OBJECT(object_kw1, OBJECT_KW1) +/* 0x00FE */ DEFINE_OBJECT(object_zo, OBJECT_ZO) +/* 0x00FF */ DEFINE_OBJECT(object_kz, OBJECT_KZ) +/* 0x0100 */ DEFINE_OBJECT(object_umajump, OBJECT_UMAJUMP) +/* 0x0101 */ DEFINE_OBJECT(object_masterkokiri, OBJECT_MASTERKOKIRI) +/* 0x0102 */ DEFINE_OBJECT(object_masterkokirihead, OBJECT_MASTERKOKIRIHEAD) +/* 0x0103 */ DEFINE_OBJECT(object_mastergolon, OBJECT_MASTERGOLON) +/* 0x0104 */ DEFINE_OBJECT(object_masterzoora, OBJECT_MASTERZOORA) +/* 0x0105 */ DEFINE_OBJECT(object_aob, OBJECT_AOB) +/* 0x0106 */ DEFINE_OBJECT(object_ik, OBJECT_IK) +/* 0x0107 */ DEFINE_OBJECT(object_ahg, OBJECT_AHG) +/* 0x0108 */ DEFINE_OBJECT(object_cne, OBJECT_CNE) +/* 0x0109 */ DEFINE_OBJECT(object_gi_niwatori, OBJECT_GI_NIWATORI) +/* 0x010A */ DEFINE_OBJECT(object_skj, OBJECT_SKJ) +/* 0x010B */ DEFINE_OBJECT(object_gi_bottle_letter, OBJECT_GI_BOTTLE_LETTER) +/* 0x010C */ DEFINE_OBJECT(object_bji, OBJECT_BJI) +/* 0x010D */ DEFINE_OBJECT(object_bba, OBJECT_BBA) +/* 0x010E */ DEFINE_OBJECT(object_gi_ocarina_0, OBJECT_GI_OCARINA_0) +/* 0x010F */ DEFINE_OBJECT(object_ds, OBJECT_DS) +/* 0x0110 */ DEFINE_OBJECT(object_ane, OBJECT_ANE) +/* 0x0111 */ DEFINE_OBJECT(object_boj, OBJECT_BOJ) +/* 0x0112 */ DEFINE_OBJECT(object_spot03_object, OBJECT_SPOT03_OBJECT) +/* 0x0113 */ DEFINE_OBJECT(object_spot07_object, OBJECT_SPOT07_OBJECT) +/* 0x0114 */ DEFINE_OBJECT(object_fz, OBJECT_FZ) +/* 0x0115 */ DEFINE_OBJECT(object_bob, OBJECT_BOB) +/* 0x0116 */ DEFINE_OBJECT(object_ge1, OBJECT_GE1) +/* 0x0117 */ DEFINE_OBJECT(object_yabusame_point, OBJECT_YABUSAME_POINT) +/* 0x0118 */ DEFINE_OBJECT(object_gi_boots_2, OBJECT_GI_BOOTS_2) +/* 0x0119 */ DEFINE_OBJECT(object_gi_seed, OBJECT_GI_SEED) +/* 0x011A */ DEFINE_OBJECT(object_gnd_magic, OBJECT_GND_MAGIC) +/* 0x011B */ DEFINE_OBJECT(object_d_elevator, OBJECT_D_ELEVATOR) +/* 0x011C */ DEFINE_OBJECT(object_d_hsblock, OBJECT_D_HSBLOCK) +/* 0x011D */ DEFINE_OBJECT(object_d_lift, OBJECT_D_LIFT) +/* 0x011E */ DEFINE_OBJECT(object_mamenoki, OBJECT_MAMENOKI) +/* 0x011F */ DEFINE_OBJECT(object_goroiwa, OBJECT_GOROIWA) +/* 0x0120 */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_120) +/* 0x0121 */ DEFINE_OBJECT(object_toryo, OBJECT_TORYO) +/* 0x0122 */ DEFINE_OBJECT(object_daiku, OBJECT_DAIKU) +/* 0x0123 */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_123) +/* 0x0124 */ DEFINE_OBJECT(object_nwc, OBJECT_NWC) +/* 0x0125 */ DEFINE_OBJECT(object_blkobj, OBJECT_BLKOBJ) +/* 0x0126 */ DEFINE_OBJECT(object_gm, OBJECT_GM) +/* 0x0127 */ DEFINE_OBJECT(object_ms, OBJECT_MS) +/* 0x0128 */ DEFINE_OBJECT(object_hs, OBJECT_HS) +/* 0x0129 */ DEFINE_OBJECT(object_ingate, OBJECT_INGATE) +/* 0x012A */ DEFINE_OBJECT(object_lightswitch, OBJECT_LIGHTSWITCH) +/* 0x012B */ DEFINE_OBJECT(object_kusa, OBJECT_KUSA) +/* 0x012C */ DEFINE_OBJECT(object_tsubo, OBJECT_TSUBO) +/* 0x012D */ DEFINE_OBJECT(object_gi_gloves, OBJECT_GI_GLOVES) +/* 0x012E */ DEFINE_OBJECT(object_gi_coin, OBJECT_GI_COIN) +/* 0x012F */ DEFINE_OBJECT(object_kanban, OBJECT_KANBAN) +/* 0x0130 */ DEFINE_OBJECT(object_gjyo_objects, OBJECT_GJYO_OBJECTS) +/* 0x0131 */ DEFINE_OBJECT(object_owl, OBJECT_OWL) +/* 0x0132 */ DEFINE_OBJECT(object_mk, OBJECT_MK) +/* 0x0133 */ DEFINE_OBJECT(object_fu, OBJECT_FU) +/* 0x0134 */ DEFINE_OBJECT(object_gi_ki_tan_mask, OBJECT_GI_KI_TAN_MASK) +/* 0x0135 */ DEFINE_OBJECT(object_gi_redead_mask, OBJECT_GI_REDEAD_MASK) +/* 0x0136 */ DEFINE_OBJECT(object_gi_skj_mask, OBJECT_GI_SKJ_MASK) +/* 0x0137 */ DEFINE_OBJECT(object_gi_rabit_mask, OBJECT_GI_RABIT_MASK) +/* 0x0138 */ DEFINE_OBJECT(object_gi_truth_mask, OBJECT_GI_TRUTH_MASK) +/* 0x0139 */ DEFINE_OBJECT(object_ganon_objects, OBJECT_GANON_OBJECTS) +/* 0x013A */ DEFINE_OBJECT(object_siofuki, OBJECT_SIOFUKI) +/* 0x013B */ DEFINE_OBJECT(object_stream, OBJECT_STREAM) +/* 0x013C */ DEFINE_OBJECT(object_mm, OBJECT_MM) +/* 0x013D */ DEFINE_OBJECT(object_fa, OBJECT_FA) +/* 0x013E */ DEFINE_OBJECT(object_os, OBJECT_OS) +/* 0x013F */ DEFINE_OBJECT(object_gi_eye_lotion, OBJECT_GI_EYE_LOTION) +/* 0x0140 */ DEFINE_OBJECT(object_gi_powder, OBJECT_GI_POWDER) +/* 0x0141 */ DEFINE_OBJECT(object_gi_mushroom, OBJECT_GI_MUSHROOM) +/* 0x0142 */ DEFINE_OBJECT(object_gi_ticketstone, OBJECT_GI_TICKETSTONE) +/* 0x0143 */ DEFINE_OBJECT(object_gi_brokensword, OBJECT_GI_BROKENSWORD) +/* 0x0144 */ DEFINE_OBJECT(object_js, OBJECT_JS) +/* 0x0145 */ DEFINE_OBJECT(object_cs, OBJECT_CS) +/* 0x0146 */ DEFINE_OBJECT(object_gi_prescription, OBJECT_GI_PRESCRIPTION) +/* 0x0147 */ DEFINE_OBJECT(object_gi_bracelet, OBJECT_GI_BRACELET) +/* 0x0148 */ DEFINE_OBJECT(object_gi_soldout, OBJECT_GI_SOLDOUT) +/* 0x0149 */ DEFINE_OBJECT(object_gi_frog, OBJECT_GI_FROG) +/* 0x014A */ DEFINE_OBJECT(object_mag, OBJECT_MAG) +/* 0x014B */ DEFINE_OBJECT(object_door_gerudo, OBJECT_DOOR_GERUDO) +/* 0x014C */ DEFINE_OBJECT(object_gt, OBJECT_GT) +/* 0x014D */ DEFINE_OBJECT(object_efc_erupc, OBJECT_EFC_ERUPC) +/* 0x014E */ DEFINE_OBJECT(object_zl2_anime1, OBJECT_ZL2_ANIME1) +/* 0x014F */ DEFINE_OBJECT(object_zl2_anime2, OBJECT_ZL2_ANIME2) +/* 0x0150 */ DEFINE_OBJECT(object_gi_golonmask, OBJECT_GI_GOLONMASK) +/* 0x0151 */ DEFINE_OBJECT(object_gi_zoramask, OBJECT_GI_ZORAMASK) +/* 0x0152 */ DEFINE_OBJECT(object_gi_gerudomask, OBJECT_GI_GERUDOMASK) +/* 0x0153 */ DEFINE_OBJECT(object_ganon2, OBJECT_GANON2) +/* 0x0154 */ DEFINE_OBJECT(object_ka, OBJECT_KA) +/* 0x0155 */ DEFINE_OBJECT(object_ts, OBJECT_TS) +/* 0x0156 */ DEFINE_OBJECT(object_zg, OBJECT_ZG) +/* 0x0157 */ DEFINE_OBJECT(object_gi_hoverboots, OBJECT_GI_HOVERBOOTS) +/* 0x0158 */ DEFINE_OBJECT(object_gi_m_arrow, OBJECT_GI_M_ARROW) +/* 0x0159 */ DEFINE_OBJECT(object_ds2, OBJECT_DS2) +/* 0x015A */ DEFINE_OBJECT(object_ec, OBJECT_EC) +/* 0x015B */ DEFINE_OBJECT(object_fish, OBJECT_FISH) +/* 0x015C */ DEFINE_OBJECT(object_gi_sutaru, OBJECT_GI_SUTARU) +/* 0x015D */ DEFINE_OBJECT(object_gi_goddess, OBJECT_GI_GODDESS) +/* 0x015E */ DEFINE_OBJECT(object_ssh, OBJECT_SSH) +/* 0x015F */ DEFINE_OBJECT(object_bigokuta, OBJECT_BIGOKUTA) +/* 0x0160 */ DEFINE_OBJECT(object_bg, OBJECT_BG) +/* 0x0161 */ DEFINE_OBJECT(object_spot05_objects, OBJECT_SPOT05_OBJECTS) +/* 0x0162 */ DEFINE_OBJECT(object_spot12_obj, OBJECT_SPOT12_OBJ) +/* 0x0163 */ DEFINE_OBJECT(object_bombiwa, OBJECT_BOMBIWA) +/* 0x0164 */ DEFINE_OBJECT(object_hintnuts, OBJECT_HINTNUTS) +/* 0x0165 */ DEFINE_OBJECT(object_rs, OBJECT_RS) +/* 0x0166 */ DEFINE_OBJECT(object_spot00_break, OBJECT_SPOT00_BREAK) +/* 0x0167 */ DEFINE_OBJECT(object_gla, OBJECT_GLA) +/* 0x0168 */ DEFINE_OBJECT(object_shopnuts, OBJECT_SHOPNUTS) +/* 0x0169 */ DEFINE_OBJECT(object_geldb, OBJECT_GELDB) +/* 0x016A */ DEFINE_OBJECT(object_gr, OBJECT_GR) +/* 0x016B */ DEFINE_OBJECT(object_dog, OBJECT_DOG) +/* 0x016C */ DEFINE_OBJECT(object_jya_iron, OBJECT_JYA_IRON) +/* 0x016D */ DEFINE_OBJECT(object_jya_door, OBJECT_JYA_DOOR) +/* 0x016E */ DEFINE_OBJECT_UNSET(OBJECT_UNSET_16E) +/* 0x016F */ DEFINE_OBJECT(object_spot11_obj, OBJECT_SPOT11_OBJ) +/* 0x0170 */ DEFINE_OBJECT(object_kibako2, OBJECT_KIBAKO2) +/* 0x0171 */ DEFINE_OBJECT(object_dns, OBJECT_DNS) +/* 0x0172 */ DEFINE_OBJECT(object_dnk, OBJECT_DNK) +/* 0x0173 */ DEFINE_OBJECT(object_gi_fire, OBJECT_GI_FIRE) +/* 0x0174 */ DEFINE_OBJECT(object_gi_insect, OBJECT_GI_INSECT) +/* 0x0175 */ DEFINE_OBJECT(object_gi_butterfly, OBJECT_GI_BUTTERFLY) +/* 0x0176 */ DEFINE_OBJECT(object_gi_ghost, OBJECT_GI_GHOST) +/* 0x0177 */ DEFINE_OBJECT(object_gi_soul, OBJECT_GI_SOUL) +/* 0x0178 */ DEFINE_OBJECT(object_bowl, OBJECT_BOWL) +/* 0x0179 */ DEFINE_OBJECT(object_demo_kekkai, OBJECT_DEMO_KEKKAI) +/* 0x017A */ DEFINE_OBJECT(object_efc_doughnut, OBJECT_EFC_DOUGHNUT) +/* 0x017B */ DEFINE_OBJECT(object_gi_dekupouch, OBJECT_GI_DEKUPOUCH) +/* 0x017C */ DEFINE_OBJECT(object_ganon_anime1, OBJECT_GANON_ANIME1) +/* 0x017D */ DEFINE_OBJECT(object_ganon_anime2, OBJECT_GANON_ANIME2) +/* 0x017E */ DEFINE_OBJECT(object_ganon_anime3, OBJECT_GANON_ANIME3) +/* 0x017F */ DEFINE_OBJECT(object_gi_rupy, OBJECT_GI_RUPY) +/* 0x0180 */ DEFINE_OBJECT(object_spot01_matoya, OBJECT_SPOT01_MATOYA) +/* 0x0181 */ DEFINE_OBJECT(object_spot01_matoyab, OBJECT_SPOT01_MATOYAB) +/* 0x0182 */ DEFINE_OBJECT(object_mu, OBJECT_MU) +/* 0x0183 */ DEFINE_OBJECT(object_wf, OBJECT_WF) +/* 0x0184 */ DEFINE_OBJECT(object_skb, OBJECT_SKB) +/* 0x0185 */ DEFINE_OBJECT(object_gj, OBJECT_GJ) +/* 0x0186 */ DEFINE_OBJECT(object_geff, OBJECT_GEFF) +/* 0x0187 */ DEFINE_OBJECT(object_haka_door, OBJECT_HAKA_DOOR) +/* 0x0188 */ DEFINE_OBJECT(object_gs, OBJECT_GS) +/* 0x0189 */ DEFINE_OBJECT(object_ps, OBJECT_PS) +/* 0x018A */ DEFINE_OBJECT(object_bwall, OBJECT_BWALL) +/* 0x018B */ DEFINE_OBJECT(object_cow, OBJECT_COW) +/* 0x018C */ DEFINE_OBJECT(object_cob, OBJECT_COB) +/* 0x018D */ DEFINE_OBJECT(object_gi_sword_1, OBJECT_GI_SWORD_1) +/* 0x018E */ DEFINE_OBJECT(object_door_killer, OBJECT_DOOR_KILLER) +/* 0x018F */ DEFINE_OBJECT(object_ouke_haka, OBJECT_OUKE_HAKA) +/* 0x0190 */ DEFINE_OBJECT(object_timeblock, OBJECT_TIMEBLOCK) +/* 0x0191 */ DEFINE_OBJECT(object_zl4, OBJECT_ZL4) diff --git a/include/z64actor.h b/include/z64actor.h index 57908769ae..4d3a5b8399 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -306,479 +306,17 @@ typedef enum { /* 0x0B */ ACTORCAT_CHEST } ActorCategory; +#define DEFINE_ACTOR(_0, enum, _2) enum, +#define DEFINE_ACTOR_INTERNAL(_0, enum, _2) enum, +#define DEFINE_ACTOR_UNSET(enum) enum, + typedef enum { - /* 0x0000 */ ACTOR_PLAYER, - /* 0x0001 */ ACTOR_UNSET_1, - /* 0x0002 */ ACTOR_EN_TEST, - /* 0x0003 */ ACTOR_UNSET_3, - /* 0x0004 */ ACTOR_EN_GIRLA, - /* 0x0005 */ ACTOR_UNSET_5, - /* 0x0006 */ ACTOR_UNSET_6, - /* 0x0007 */ ACTOR_EN_PART, - /* 0x0008 */ ACTOR_EN_LIGHT, - /* 0x0009 */ ACTOR_EN_DOOR, - /* 0x000A */ ACTOR_EN_BOX, // Treasure Chest - /* 0x000B */ ACTOR_BG_DY_YOSEIZO, - /* 0x000C */ ACTOR_BG_HIDAN_FIREWALL, - /* 0x000D */ ACTOR_EN_POH, - /* 0x000E */ ACTOR_EN_OKUTA, - /* 0x000F */ ACTOR_BG_YDAN_SP, - /* 0x0010 */ ACTOR_EN_BOM, - /* 0x0011 */ ACTOR_EN_WALLMAS, - /* 0x0012 */ ACTOR_EN_DODONGO, - /* 0x0013 */ ACTOR_EN_FIREFLY, - /* 0x0014 */ ACTOR_EN_HORSE, - /* 0x0015 */ ACTOR_EN_ITEM00, - /* 0x0016 */ ACTOR_EN_ARROW, - /* 0x0017 */ ACTOR_UNSET_17, - /* 0x0018 */ ACTOR_EN_ELF, - /* 0x0019 */ ACTOR_EN_NIW, - /* 0x001A */ ACTOR_UNSET_1A, - /* 0x001B */ ACTOR_EN_TITE, - /* 0x001C */ ACTOR_EN_REEBA, - /* 0x001D */ ACTOR_EN_PEEHAT, - /* 0x001E */ ACTOR_EN_BUTTE, - /* 0x001F */ ACTOR_UNSET_1F, - /* 0x0020 */ ACTOR_EN_INSECT, - /* 0x0021 */ ACTOR_EN_FISH, - /* 0x0022 */ ACTOR_UNSET_22, - /* 0x0023 */ ACTOR_EN_HOLL, - /* 0x0024 */ ACTOR_EN_SCENE_CHANGE, - /* 0x0025 */ ACTOR_EN_ZF, - /* 0x0026 */ ACTOR_EN_HATA, - /* 0x0027 */ ACTOR_BOSS_DODONGO, - /* 0x0028 */ ACTOR_BOSS_GOMA, - /* 0x0029 */ ACTOR_EN_ZL1, - /* 0x002A */ ACTOR_EN_VIEWER, - /* 0x002B */ ACTOR_EN_GOMA, - /* 0x002C */ ACTOR_BG_PUSHBOX, - /* 0x002D */ ACTOR_EN_BUBBLE, - /* 0x002E */ ACTOR_DOOR_SHUTTER, - /* 0x002F */ ACTOR_EN_DODOJR, - /* 0x0030 */ ACTOR_EN_BDFIRE, - /* 0x0031 */ ACTOR_UNSET_31, - /* 0x0032 */ ACTOR_EN_BOOM, - /* 0x0033 */ ACTOR_EN_TORCH2, - /* 0x0034 */ ACTOR_EN_BILI, - /* 0x0035 */ ACTOR_EN_TP, - /* 0x0036 */ ACTOR_UNSET_36, - /* 0x0037 */ ACTOR_EN_ST, - /* 0x0038 */ ACTOR_EN_BW, - /* 0x0039 */ ACTOR_EN_A_OBJ, - /* 0x003A */ ACTOR_EN_EIYER, - /* 0x003B */ ACTOR_EN_RIVER_SOUND, - /* 0x003C */ ACTOR_EN_HORSE_NORMAL, - /* 0x003D */ ACTOR_EN_OSSAN, - /* 0x003E */ ACTOR_BG_TREEMOUTH, - /* 0x003F */ ACTOR_BG_DODOAGO, - /* 0x0040 */ ACTOR_BG_HIDAN_DALM, - /* 0x0041 */ ACTOR_BG_HIDAN_HROCK, - /* 0x0042 */ ACTOR_EN_HORSE_GANON, - /* 0x0043 */ ACTOR_BG_HIDAN_ROCK, - /* 0x0044 */ ACTOR_BG_HIDAN_RSEKIZOU, - /* 0x0045 */ ACTOR_BG_HIDAN_SEKIZOU, - /* 0x0046 */ ACTOR_BG_HIDAN_SIMA, - /* 0x0047 */ ACTOR_BG_HIDAN_SYOKU, - /* 0x0048 */ ACTOR_EN_XC, - /* 0x0049 */ ACTOR_BG_HIDAN_CURTAIN, - /* 0x004A */ ACTOR_BG_SPOT00_HANEBASI, - /* 0x004B */ ACTOR_EN_MB, - /* 0x004C */ ACTOR_EN_BOMBF, - /* 0x004D */ ACTOR_EN_ZL2, - /* 0x004E */ ACTOR_BG_HIDAN_FSLIFT, - /* 0x004F */ ACTOR_EN_OE2, - /* 0x0050 */ ACTOR_BG_YDAN_HASI, - /* 0x0051 */ ACTOR_BG_YDAN_MARUTA, - /* 0x0052 */ ACTOR_BOSS_GANONDROF, - /* 0x0053 */ ACTOR_UNSET_53, - /* 0x0054 */ ACTOR_EN_AM, - /* 0x0055 */ ACTOR_EN_DEKUBABA, - /* 0x0056 */ ACTOR_EN_M_FIRE1, - /* 0x0057 */ ACTOR_EN_M_THUNDER, - /* 0x0058 */ ACTOR_BG_DDAN_JD, - /* 0x0059 */ ACTOR_BG_BREAKWALL, - /* 0x005A */ ACTOR_EN_JJ, - /* 0x005B */ ACTOR_EN_HORSE_ZELDA, - /* 0x005C */ ACTOR_BG_DDAN_KD, - /* 0x005D */ ACTOR_DOOR_WARP1, - /* 0x005E */ ACTOR_OBJ_SYOKUDAI, - /* 0x005F */ ACTOR_ITEM_B_HEART, - /* 0x0060 */ ACTOR_EN_DEKUNUTS, - /* 0x0061 */ ACTOR_BG_MENKURI_KAITEN, - /* 0x0062 */ ACTOR_BG_MENKURI_EYE, - /* 0x0063 */ ACTOR_EN_VALI, - /* 0x0064 */ ACTOR_BG_MIZU_MOVEBG, - /* 0x0065 */ ACTOR_BG_MIZU_WATER, - /* 0x0066 */ ACTOR_ARMS_HOOK, - /* 0x0067 */ ACTOR_EN_FHG, - /* 0x0068 */ ACTOR_BG_MORI_HINERI, - /* 0x0069 */ ACTOR_EN_BB, - /* 0x006A */ ACTOR_BG_TOKI_HIKARI, - /* 0x006B */ ACTOR_EN_YUKABYUN, - /* 0x006C */ ACTOR_BG_TOKI_SWD, - /* 0x006D */ ACTOR_EN_FHG_FIRE, - /* 0x006E */ ACTOR_BG_MJIN, - /* 0x006F */ ACTOR_BG_HIDAN_KOUSI, - /* 0x0070 */ ACTOR_DOOR_TOKI, - /* 0x0071 */ ACTOR_BG_HIDAN_HAMSTEP, - /* 0x0072 */ ACTOR_EN_BIRD, - /* 0x0073 */ ACTOR_UNSET_73, - /* 0x0074 */ ACTOR_UNSET_74, - /* 0x0075 */ ACTOR_UNSET_75, - /* 0x0076 */ ACTOR_UNSET_76, - /* 0x0077 */ ACTOR_EN_WOOD02, - /* 0x0078 */ ACTOR_UNSET_78, - /* 0x0079 */ ACTOR_UNSET_79, - /* 0x007A */ ACTOR_UNSET_7A, - /* 0x007B */ ACTOR_UNSET_7B, - /* 0x007C */ ACTOR_EN_LIGHTBOX, - /* 0x007D */ ACTOR_EN_PU_BOX, - /* 0x007E */ ACTOR_UNSET_7E, - /* 0x007F */ ACTOR_UNSET_7F, - /* 0x0080 */ ACTOR_EN_TRAP, - /* 0x0081 */ ACTOR_EN_AROW_TRAP, - /* 0x0082 */ ACTOR_EN_VASE, - /* 0x0083 */ ACTOR_UNSET_83, - /* 0x0084 */ ACTOR_EN_TA, - /* 0x0085 */ ACTOR_EN_TK, - /* 0x0086 */ ACTOR_BG_MORI_BIGST, - /* 0x0087 */ ACTOR_BG_MORI_ELEVATOR, - /* 0x0088 */ ACTOR_BG_MORI_KAITENKABE, - /* 0x0089 */ ACTOR_BG_MORI_RAKKATENJO, - /* 0x008A */ ACTOR_EN_VM, - /* 0x008B */ ACTOR_DEMO_EFFECT, - /* 0x008C */ ACTOR_DEMO_KANKYO, - /* 0x008D */ ACTOR_BG_HIDAN_FWBIG, - /* 0x008E */ ACTOR_EN_FLOORMAS, - /* 0x008F */ ACTOR_EN_HEISHI1, - /* 0x0090 */ ACTOR_EN_RD, - /* 0x0091 */ ACTOR_EN_PO_SISTERS, - /* 0x0092 */ ACTOR_BG_HEAVY_BLOCK, - /* 0x0093 */ ACTOR_BG_PO_EVENT, - /* 0x0094 */ ACTOR_OBJ_MURE, - /* 0x0095 */ ACTOR_EN_SW, - /* 0x0096 */ ACTOR_BOSS_FD, - /* 0x0097 */ ACTOR_OBJECT_KANKYO, - /* 0x0098 */ ACTOR_EN_DU, - /* 0x0099 */ ACTOR_EN_FD, - /* 0x009A */ ACTOR_EN_HORSE_LINK_CHILD, - /* 0x009B */ ACTOR_DOOR_ANA, - /* 0x009C */ ACTOR_BG_SPOT02_OBJECTS, - /* 0x009D */ ACTOR_BG_HAKA, - /* 0x009E */ ACTOR_MAGIC_WIND, - /* 0x009F */ ACTOR_MAGIC_FIRE, - /* 0x00A0 */ ACTOR_UNSET_A0, - /* 0x00A1 */ ACTOR_EN_RU1, - /* 0x00A2 */ ACTOR_BOSS_FD2, - /* 0x00A3 */ ACTOR_EN_FD_FIRE, - /* 0x00A4 */ ACTOR_EN_DH, - /* 0x00A5 */ ACTOR_EN_DHA, - /* 0x00A6 */ ACTOR_EN_RL, - /* 0x00A7 */ ACTOR_EN_ENCOUNT1, - /* 0x00A8 */ ACTOR_DEMO_DU, - /* 0x00A9 */ ACTOR_DEMO_IM, - /* 0x00AA */ ACTOR_DEMO_TRE_LGT, - /* 0x00AB */ ACTOR_EN_FW, - /* 0x00AC */ ACTOR_BG_VB_SIMA, - /* 0x00AD */ ACTOR_EN_VB_BALL, - /* 0x00AE */ ACTOR_BG_HAKA_MEGANE, - /* 0x00AF */ ACTOR_BG_HAKA_MEGANEBG, - /* 0x00B0 */ ACTOR_BG_HAKA_SHIP, - /* 0x00B1 */ ACTOR_BG_HAKA_SGAMI, - /* 0x00B2 */ ACTOR_UNSET_B2, - /* 0x00B3 */ ACTOR_EN_HEISHI2, - /* 0x00B4 */ ACTOR_EN_ENCOUNT2, - /* 0x00B5 */ ACTOR_EN_FIRE_ROCK, - /* 0x00B6 */ ACTOR_EN_BROB, - /* 0x00B7 */ ACTOR_MIR_RAY, - /* 0x00B8 */ ACTOR_BG_SPOT09_OBJ, - /* 0x00B9 */ ACTOR_BG_SPOT18_OBJ, - /* 0x00BA */ ACTOR_BOSS_VA, - /* 0x00BB */ ACTOR_BG_HAKA_TUBO, - /* 0x00BC */ ACTOR_BG_HAKA_TRAP, - /* 0x00BD */ ACTOR_BG_HAKA_HUTA, - /* 0x00BE */ ACTOR_BG_HAKA_ZOU, - /* 0x00BF */ ACTOR_BG_SPOT17_FUNEN, - /* 0x00C0 */ ACTOR_EN_SYATEKI_ITM, - /* 0x00C1 */ ACTOR_EN_SYATEKI_MAN, - /* 0x00C2 */ ACTOR_EN_TANA, - /* 0x00C3 */ ACTOR_EN_NB, - /* 0x00C4 */ ACTOR_BOSS_MO, - /* 0x00C5 */ ACTOR_EN_SB, - /* 0x00C6 */ ACTOR_EN_BIGOKUTA, - /* 0x00C7 */ ACTOR_EN_KAREBABA, - /* 0x00C8 */ ACTOR_BG_BDAN_OBJECTS, - /* 0x00C9 */ ACTOR_DEMO_SA, - /* 0x00CA */ ACTOR_DEMO_GO, - /* 0x00CB */ ACTOR_EN_IN, - /* 0x00CC */ ACTOR_EN_TR, - /* 0x00CD */ ACTOR_BG_SPOT16_BOMBSTONE, - /* 0x00CE */ ACTOR_UNSET_CE, - /* 0x00CF */ ACTOR_BG_HIDAN_KOWARERUKABE, - /* 0x00D0 */ ACTOR_BG_BOMBWALL, - /* 0x00D1 */ ACTOR_BG_SPOT08_ICEBLOCK, - /* 0x00D2 */ ACTOR_EN_RU2, - /* 0x00D3 */ ACTOR_OBJ_DEKUJR, - /* 0x00D4 */ ACTOR_BG_MIZU_UZU, - /* 0x00D5 */ ACTOR_BG_SPOT06_OBJECTS, - /* 0x00D6 */ ACTOR_BG_ICE_OBJECTS, - /* 0x00D7 */ ACTOR_BG_HAKA_WATER, - /* 0x00D8 */ ACTOR_UNSET_D8, - /* 0x00D9 */ ACTOR_EN_MA2, - /* 0x00DA */ ACTOR_EN_BOM_CHU, - /* 0x00DB */ ACTOR_EN_HORSE_GAME_CHECK, - /* 0x00DC */ ACTOR_BOSS_TW, - /* 0x00DD */ ACTOR_EN_RR, - /* 0x00DE */ ACTOR_EN_BA, - /* 0x00DF */ ACTOR_EN_BX, - /* 0x00E0 */ ACTOR_EN_ANUBICE, - /* 0x00E1 */ ACTOR_EN_ANUBICE_FIRE, - /* 0x00E2 */ ACTOR_BG_MORI_HASHIGO, - /* 0x00E3 */ ACTOR_BG_MORI_HASHIRA4, - /* 0x00E4 */ ACTOR_BG_MORI_IDOMIZU, - /* 0x00E5 */ ACTOR_BG_SPOT16_DOUGHNUT, - /* 0x00E6 */ ACTOR_BG_BDAN_SWITCH, - /* 0x00E7 */ ACTOR_EN_MA1, - /* 0x00E8 */ ACTOR_BOSS_GANON, - /* 0x00E9 */ ACTOR_BOSS_SST, - /* 0x00EA */ ACTOR_UNSET_EA, - /* 0x00EB */ ACTOR_UNSET_EB, - /* 0x00EC */ ACTOR_EN_NY, - /* 0x00ED */ ACTOR_EN_FR, - /* 0x00EE */ ACTOR_ITEM_SHIELD, - /* 0x00EF */ ACTOR_BG_ICE_SHELTER, - /* 0x00F0 */ ACTOR_EN_ICE_HONO, - /* 0x00F1 */ ACTOR_ITEM_OCARINA, - /* 0x00F2 */ ACTOR_UNSET_F2, - /* 0x00F3 */ ACTOR_UNSET_F3, - /* 0x00F4 */ ACTOR_MAGIC_DARK, - /* 0x00F5 */ ACTOR_DEMO_6K, - /* 0x00F6 */ ACTOR_EN_ANUBICE_TAG, - /* 0x00F7 */ ACTOR_BG_HAKA_GATE, - /* 0x00F8 */ ACTOR_BG_SPOT15_SAKU, - /* 0x00F9 */ ACTOR_BG_JYA_GOROIWA, - /* 0x00FA */ ACTOR_BG_JYA_ZURERUKABE, - /* 0x00FB */ ACTOR_UNSET_FB, - /* 0x00FC */ ACTOR_BG_JYA_COBRA, - /* 0x00FD */ ACTOR_BG_JYA_KANAAMI, - /* 0x00FE */ ACTOR_FISHING, - /* 0x00FF */ ACTOR_OBJ_OSHIHIKI, - /* 0x0100 */ ACTOR_BG_GATE_SHUTTER, - /* 0x0101 */ ACTOR_EFF_DUST, - /* 0x0102 */ ACTOR_BG_SPOT01_FUSYA, - /* 0x0103 */ ACTOR_BG_SPOT01_IDOHASHIRA, - /* 0x0104 */ ACTOR_BG_SPOT01_IDOMIZU, - /* 0x0105 */ ACTOR_BG_PO_SYOKUDAI, - /* 0x0106 */ ACTOR_BG_GANON_OTYUKA, - /* 0x0107 */ ACTOR_BG_SPOT15_RRBOX, - /* 0x0108 */ ACTOR_BG_UMAJUMP, - /* 0x0109 */ ACTOR_UNSET_109, - /* 0x010A */ ACTOR_ARROW_FIRE, - /* 0x010B */ ACTOR_ARROW_ICE, - /* 0x010C */ ACTOR_ARROW_LIGHT, - /* 0x010D */ ACTOR_UNSET_10D, - /* 0x010E */ ACTOR_UNSET_10E, - /* 0x010F */ ACTOR_ITEM_ETCETERA, - /* 0x0110 */ ACTOR_OBJ_KIBAKO, - /* 0x0111 */ ACTOR_OBJ_TSUBO, - /* 0x0112 */ ACTOR_EN_WONDER_ITEM, - /* 0x0113 */ ACTOR_EN_IK, - /* 0x0114 */ ACTOR_DEMO_IK, - /* 0x0115 */ ACTOR_EN_SKJ, - /* 0x0116 */ ACTOR_EN_SKJNEEDLE, - /* 0x0117 */ ACTOR_EN_G_SWITCH, - /* 0x0118 */ ACTOR_DEMO_EXT, - /* 0x0119 */ ACTOR_DEMO_SHD, - /* 0x011A */ ACTOR_EN_DNS, - /* 0x011B */ ACTOR_ELF_MSG, - /* 0x011C */ ACTOR_EN_HONOTRAP, - /* 0x011D */ ACTOR_EN_TUBO_TRAP, - /* 0x011E */ ACTOR_OBJ_ICE_POLY, - /* 0x011F */ ACTOR_BG_SPOT03_TAKI, - /* 0x0120 */ ACTOR_BG_SPOT07_TAKI, - /* 0x0121 */ ACTOR_EN_FZ, - /* 0x0122 */ ACTOR_EN_PO_RELAY, - /* 0x0123 */ ACTOR_BG_RELAY_OBJECTS, - /* 0x0124 */ ACTOR_EN_DIVING_GAME, - /* 0x0125 */ ACTOR_EN_KUSA, - /* 0x0126 */ ACTOR_OBJ_BEAN, - /* 0x0127 */ ACTOR_OBJ_BOMBIWA, - /* 0x0128 */ ACTOR_UNSET_128, - /* 0x0129 */ ACTOR_UNSET_129, - /* 0x012A */ ACTOR_OBJ_SWITCH, - /* 0x012B */ ACTOR_OBJ_ELEVATOR, - /* 0x012C */ ACTOR_OBJ_LIFT, - /* 0x012D */ ACTOR_OBJ_HSBLOCK, - /* 0x012E */ ACTOR_EN_OKARINA_TAG, - /* 0x012F */ ACTOR_EN_YABUSAME_MARK, - /* 0x0130 */ ACTOR_EN_GOROIWA, - /* 0x0131 */ ACTOR_EN_EX_RUPPY, - /* 0x0132 */ ACTOR_EN_TORYO, - /* 0x0133 */ ACTOR_EN_DAIKU, - /* 0x0134 */ ACTOR_UNSET_134, - /* 0x0135 */ ACTOR_EN_NWC, - /* 0x0136 */ ACTOR_EN_BLKOBJ, - /* 0x0137 */ ACTOR_ITEM_INBOX, - /* 0x0138 */ ACTOR_EN_GE1, - /* 0x0139 */ ACTOR_OBJ_BLOCKSTOP, - /* 0x013A */ ACTOR_EN_SDA, - /* 0x013B */ ACTOR_EN_CLEAR_TAG, - /* 0x013C */ ACTOR_EN_NIW_LADY, - /* 0x013D */ ACTOR_EN_GM, - /* 0x013E */ ACTOR_EN_MS, - /* 0x013F */ ACTOR_EN_HS, - /* 0x0140 */ ACTOR_BG_INGATE, - /* 0x0141 */ ACTOR_EN_KANBAN, - /* 0x0142 */ ACTOR_EN_HEISHI3, - /* 0x0143 */ ACTOR_EN_SYATEKI_NIW, - /* 0x0144 */ ACTOR_EN_ATTACK_NIW, - /* 0x0145 */ ACTOR_BG_SPOT01_IDOSOKO, - /* 0x0146 */ ACTOR_EN_SA, - /* 0x0147 */ ACTOR_EN_WONDER_TALK, - /* 0x0148 */ ACTOR_BG_GJYO_BRIDGE, - /* 0x0149 */ ACTOR_EN_DS, - /* 0x014A */ ACTOR_EN_MK, - /* 0x014B */ ACTOR_EN_BOM_BOWL_MAN, - /* 0x014C */ ACTOR_EN_BOM_BOWL_PIT, - /* 0x014D */ ACTOR_EN_OWL, - /* 0x014E */ ACTOR_EN_ISHI, - /* 0x014F */ ACTOR_OBJ_HANA, - /* 0x0150 */ ACTOR_OBJ_LIGHTSWITCH, - /* 0x0151 */ ACTOR_OBJ_MURE2, - /* 0x0152 */ ACTOR_EN_GO, - /* 0x0153 */ ACTOR_EN_FU, - /* 0x0154 */ ACTOR_UNSET_154, - /* 0x0155 */ ACTOR_EN_CHANGER, - /* 0x0156 */ ACTOR_BG_JYA_MEGAMI, - /* 0x0157 */ ACTOR_BG_JYA_LIFT, - /* 0x0158 */ ACTOR_BG_JYA_BIGMIRROR, - /* 0x0159 */ ACTOR_BG_JYA_BOMBCHUIWA, - /* 0x015A */ ACTOR_BG_JYA_AMISHUTTER, - /* 0x015B */ ACTOR_BG_JYA_BOMBIWA, - /* 0x015C */ ACTOR_BG_SPOT18_BASKET, - /* 0x015D */ ACTOR_UNSET_15D, - /* 0x015E */ ACTOR_EN_GANON_ORGAN, - /* 0x015F */ ACTOR_EN_SIOFUKI, - /* 0x0160 */ ACTOR_EN_STREAM, - /* 0x0161 */ ACTOR_UNSET_161, - /* 0x0162 */ ACTOR_EN_MM, - /* 0x0163 */ ACTOR_EN_KO, - /* 0x0164 */ ACTOR_EN_KZ, - /* 0x0165 */ ACTOR_EN_WEATHER_TAG, - /* 0x0166 */ ACTOR_BG_SST_FLOOR, - /* 0x0167 */ ACTOR_EN_ANI, - /* 0x0168 */ ACTOR_EN_EX_ITEM, - /* 0x0169 */ ACTOR_BG_JYA_IRONOBJ, - /* 0x016A */ ACTOR_EN_JS, - /* 0x016B */ ACTOR_EN_JSJUTAN, - /* 0x016C */ ACTOR_EN_CS, - /* 0x016D */ ACTOR_EN_MD, - /* 0x016E */ ACTOR_EN_HY, - /* 0x016F */ ACTOR_EN_GANON_MANT, - /* 0x0170 */ ACTOR_EN_OKARINA_EFFECT, - /* 0x0171 */ ACTOR_EN_MAG, - /* 0x0172 */ ACTOR_DOOR_GERUDO, - /* 0x0173 */ ACTOR_ELF_MSG2, - /* 0x0174 */ ACTOR_DEMO_GT, - /* 0x0175 */ ACTOR_EN_PO_FIELD, - /* 0x0176 */ ACTOR_EFC_ERUPC, - /* 0x0177 */ ACTOR_BG_ZG, - /* 0x0178 */ ACTOR_EN_HEISHI4, - /* 0x0179 */ ACTOR_EN_ZL3, - /* 0x017A */ ACTOR_BOSS_GANON2, - /* 0x017B */ ACTOR_EN_KAKASI, - /* 0x017C */ ACTOR_EN_TAKARA_MAN, - /* 0x017D */ ACTOR_OBJ_MAKEOSHIHIKI, - /* 0x017E */ ACTOR_OCEFF_SPOT, - /* 0x017F */ ACTOR_END_TITLE, - /* 0x0180 */ ACTOR_UNSET_180, - /* 0x0181 */ ACTOR_EN_TORCH, - /* 0x0182 */ ACTOR_DEMO_EC, - /* 0x0183 */ ACTOR_SHOT_SUN, - /* 0x0184 */ ACTOR_EN_DY_EXTRA, - /* 0x0185 */ ACTOR_EN_WONDER_TALK2, - /* 0x0186 */ ACTOR_EN_GE2, - /* 0x0187 */ ACTOR_OBJ_ROOMTIMER, - /* 0x0188 */ ACTOR_EN_SSH, - /* 0x0189 */ ACTOR_EN_STH, - /* 0x018A */ ACTOR_OCEFF_WIPE, - /* 0x018B */ ACTOR_OCEFF_STORM, - /* 0x018C */ ACTOR_EN_WEIYER, - /* 0x018D */ ACTOR_BG_SPOT05_SOKO, - /* 0x018E */ ACTOR_BG_JYA_1FLIFT, - /* 0x018F */ ACTOR_BG_JYA_HAHENIRON, - /* 0x0190 */ ACTOR_BG_SPOT12_GATE, - /* 0x0191 */ ACTOR_BG_SPOT12_SAKU, - /* 0x0192 */ ACTOR_EN_HINTNUTS, - /* 0x0193 */ ACTOR_EN_NUTSBALL, - /* 0x0194 */ ACTOR_BG_SPOT00_BREAK, - /* 0x0195 */ ACTOR_EN_SHOPNUTS, - /* 0x0196 */ ACTOR_EN_IT, - /* 0x0197 */ ACTOR_EN_GELDB, - /* 0x0198 */ ACTOR_OCEFF_WIPE2, - /* 0x0199 */ ACTOR_OCEFF_WIPE3, - /* 0x019A */ ACTOR_EN_NIW_GIRL, - /* 0x019B */ ACTOR_EN_DOG, - /* 0x019C */ ACTOR_EN_SI, - /* 0x019D */ ACTOR_BG_SPOT01_OBJECTS2, - /* 0x019E */ ACTOR_OBJ_COMB, - /* 0x019F */ ACTOR_BG_SPOT11_BAKUDANKABE, - /* 0x01A0 */ ACTOR_OBJ_KIBAKO2, - /* 0x01A1 */ ACTOR_EN_DNT_DEMO, - /* 0x01A2 */ ACTOR_EN_DNT_JIJI, - /* 0x01A3 */ ACTOR_EN_DNT_NOMAL, - /* 0x01A4 */ ACTOR_EN_GUEST, - /* 0x01A5 */ ACTOR_BG_BOM_GUARD, - /* 0x01A6 */ ACTOR_EN_HS2, - /* 0x01A7 */ ACTOR_DEMO_KEKKAI, - /* 0x01A8 */ ACTOR_BG_SPOT08_BAKUDANKABE, - /* 0x01A9 */ ACTOR_BG_SPOT17_BAKUDANKABE, - /* 0x01AA */ ACTOR_UNSET_1AA, - /* 0x01AB */ ACTOR_OBJ_MURE3, - /* 0x01AC */ ACTOR_EN_TG, - /* 0x01AD */ ACTOR_EN_MU, - /* 0x01AE */ ACTOR_EN_GO2, - /* 0x01AF */ ACTOR_EN_WF, - /* 0x01B0 */ ACTOR_EN_SKB, - /* 0x01B1 */ ACTOR_DEMO_GJ, - /* 0x01B2 */ ACTOR_DEMO_GEFF, - /* 0x01B3 */ ACTOR_BG_GND_FIREMEIRO, - /* 0x01B4 */ ACTOR_BG_GND_DARKMEIRO, - /* 0x01B5 */ ACTOR_BG_GND_SOULMEIRO, - /* 0x01B6 */ ACTOR_BG_GND_NISEKABE, - /* 0x01B7 */ ACTOR_BG_GND_ICEBLOCK, - /* 0x01B8 */ ACTOR_EN_GB, - /* 0x01B9 */ ACTOR_EN_GS, - /* 0x01BA */ ACTOR_BG_MIZU_BWALL, - /* 0x01BB */ ACTOR_BG_MIZU_SHUTTER, - /* 0x01BC */ ACTOR_EN_DAIKU_KAKARIKO, - /* 0x01BD */ ACTOR_BG_BOWL_WALL, - /* 0x01BE */ ACTOR_EN_WALL_TUBO, - /* 0x01BF */ ACTOR_EN_PO_DESERT, - /* 0x01C0 */ ACTOR_EN_CROW, - /* 0x01C1 */ ACTOR_DOOR_KILLER, - /* 0x01C2 */ ACTOR_BG_SPOT11_OASIS, - /* 0x01C3 */ ACTOR_BG_SPOT18_FUTA, - /* 0x01C4 */ ACTOR_BG_SPOT18_SHUTTER, - /* 0x01C5 */ ACTOR_EN_MA3, - /* 0x01C6 */ ACTOR_EN_COW, - /* 0x01C7 */ ACTOR_BG_ICE_TURARA, - /* 0x01C8 */ ACTOR_BG_ICE_SHUTTER, - /* 0x01C9 */ ACTOR_EN_KAKASI2, - /* 0x01CA */ ACTOR_EN_KAKASI3, - /* 0x01CB */ ACTOR_OCEFF_WIPE4, - /* 0x01CC */ ACTOR_EN_EG, - /* 0x01CD */ ACTOR_BG_MENKURI_NISEKABE, - /* 0x01CE */ ACTOR_EN_ZO, - /* 0x01CF */ ACTOR_OBJ_MAKEKINSUTA, - /* 0x01D0 */ ACTOR_EN_GE3, - /* 0x01D1 */ ACTOR_OBJ_TIMEBLOCK, - /* 0x01D2 */ ACTOR_OBJ_HAMISHI, - /* 0x01D3 */ ACTOR_EN_ZL4, - /* 0x01D4 */ ACTOR_EN_MM2, - /* 0x01D5 */ ACTOR_BG_JYA_BLOCK, - /* 0x01D6 */ ACTOR_OBJ_WARP2BLOCK, - /* 0x01D7 */ ACTOR_ID_MAX // originally "ACTOR_DLF_MAX" + #include "tables/actor_table.h" + /* 0x0192 */ ACTOR_ID_MAX // originally "ACTOR_DLF_MAX" } ActorID; +#undef DEFINE_ACTOR +#undef DEFINE_ACTOR_INTERNAL +#undef DEFINE_ACTOR_UNSET + #endif diff --git a/include/z64effect.h b/include/z64effect.h index dae18f92f9..48ce257314 100644 --- a/include/z64effect.h +++ b/include/z64effect.h @@ -248,45 +248,15 @@ typedef struct { #define rgEnvColorA regs[10] #define rgObjBankIdx regs[11] +#define DEFINE_EFFECT_SS(_0, enum) enum, +#define DEFINE_EFFECT_SS_UNSET(enum) enum, + typedef enum { - /* 0x00 */ EFFECT_SS_DUST, - /* 0x01 */ EFFECT_SS_KIRAKIRA, - /* 0x02 */ EFFECT_SS_BOMB, - /* 0x03 */ EFFECT_SS_BOMB2, - /* 0x04 */ EFFECT_SS_BLAST, - /* 0x05 */ EFFECT_SS_G_SPK, - /* 0x06 */ EFFECT_SS_D_FIRE, - /* 0x07 */ EFFECT_SS_BUBBLE, - /* 0x08 */ EFFECT_SS_UNSET, - /* 0x09 */ EFFECT_SS_G_RIPPLE, - /* 0x0A */ EFFECT_SS_G_SPLASH, - /* 0x0B */ EFFECT_SS_G_MAGMA, - /* 0x0C */ EFFECT_SS_G_FIRE, - /* 0x0D */ EFFECT_SS_LIGHTNING, - /* 0x0E */ EFFECT_SS_DT_BUBBLE, - /* 0x0F */ EFFECT_SS_HAHEN, - /* 0x10 */ EFFECT_SS_STICK, - /* 0x11 */ EFFECT_SS_SIBUKI, - /* 0x12 */ EFFECT_SS_SIBUKI2, - /* 0x13 */ EFFECT_SS_G_MAGMA2, - /* 0x14 */ EFFECT_SS_STONE1, - /* 0x15 */ EFFECT_SS_HITMARK, - /* 0x16 */ EFFECT_SS_FHG_FLASH, - /* 0x17 */ EFFECT_SS_K_FIRE, - /* 0x18 */ EFFECT_SS_SOLDER_SRCH_BALL, - /* 0x19 */ EFFECT_SS_KAKERA, - /* 0x1A */ EFFECT_SS_ICE_PIECE, - /* 0x1B */ EFFECT_SS_EN_ICE, - /* 0x1C */ EFFECT_SS_FIRE_TAIL, - /* 0x1D */ EFFECT_SS_EN_FIRE, - /* 0x1E */ EFFECT_SS_EXTRA, - /* 0x1F */ EFFECT_SS_FCIRCLE, - /* 0x20 */ EFFECT_SS_DEAD_DB, - /* 0x21 */ EFFECT_SS_DEAD_DD, - /* 0x22 */ EFFECT_SS_DEAD_DS, - /* 0x23 */ EFFECT_SS_DEAD_SOUND, - /* 0x24 */ EFFECT_SS_ICE_SMOKE, + #include "tables/effect_ss_table.h" /* 0x25 */ EFFECT_SS_TYPE_MAX // originally "EFFECT_SS2_TYPE_LAST_LABEL" } EffectSsType; +#undef DEFINE_EFFECT_SS +#undef DEFINE_EFFECT_SS_UNSET + #endif diff --git a/include/z64object.h b/include/z64object.h index 7e36e5b13e..06356a6700 100644 --- a/include/z64object.h +++ b/include/z64object.h @@ -3,410 +3,17 @@ #define OBJECT_EXCHANGE_BANK_MAX 19 +#define DEFINE_OBJECT(_0, enum) enum, +#define DEFINE_OBJECT_NULL(_0, enum) enum, +#define DEFINE_OBJECT_UNSET(enum) enum, + typedef enum { - /* 0x0000 */ OBJECT_UNSET_0, - /* 0x0001 */ OBJECT_GAMEPLAY_KEEP, - /* 0x0002 */ OBJECT_GAMEPLAY_FIELD_KEEP, - /* 0x0003 */ OBJECT_GAMEPLAY_DANGEON_KEEP, - /* 0x0004 */ OBJECT_UNSET_4, - /* 0x0005 */ OBJECT_UNSET_5, - /* 0x0006 */ OBJECT_HUMAN, - /* 0x0007 */ OBJECT_OKUTA, - /* 0x0008 */ OBJECT_CROW, - /* 0x0009 */ OBJECT_POH, - /* 0x000A */ OBJECT_DY_OBJ, - /* 0x000B */ OBJECT_WALLMASTER, - /* 0x000C */ OBJECT_DODONGO, - /* 0x000D */ OBJECT_FIREFLY, - /* 0x000E */ OBJECT_BOX, - /* 0x000F */ OBJECT_FIRE, - /* 0x0010 */ OBJECT_UNSET_10, - /* 0x0011 */ OBJECT_UNSET_11, - /* 0x0012 */ OBJECT_BUBBLE, - /* 0x0013 */ OBJECT_NIW, - /* 0x0014 */ OBJECT_LINK_BOY, - /* 0x0015 */ OBJECT_LINK_CHILD, - /* 0x0016 */ OBJECT_TITE, - /* 0x0017 */ OBJECT_REEBA, - /* 0x0018 */ OBJECT_PEEHAT, - /* 0x0019 */ OBJECT_KINGDODONGO, - /* 0x001A */ OBJECT_HORSE, - /* 0x001B */ OBJECT_ZF, - /* 0x001C */ OBJECT_GOMA, - /* 0x001D */ OBJECT_ZL1, - /* 0x001E */ OBJECT_GOL, - /* 0x001F */ OBJECT_DODOJR, - /* 0x0020 */ OBJECT_TORCH2, - /* 0x0021 */ OBJECT_BL, - /* 0x0022 */ OBJECT_TP, - /* 0x0023 */ OBJECT_OA1, - /* 0x0024 */ OBJECT_ST, - /* 0x0025 */ OBJECT_BW, - /* 0x0026 */ OBJECT_EI, - /* 0x0027 */ OBJECT_HORSE_NORMAL, - /* 0x0028 */ OBJECT_OB1, - /* 0x0029 */ OBJECT_O_ANIME, - /* 0x002A */ OBJECT_SPOT04_OBJECTS, - /* 0x002B */ OBJECT_DDAN_OBJECTS, - /* 0x002C */ OBJECT_HIDAN_OBJECTS, - /* 0x002D */ OBJECT_HORSE_GANON, - /* 0x002E */ OBJECT_OA2, - /* 0x002F */ OBJECT_SPOT00_OBJECTS, - /* 0x0030 */ OBJECT_MB, - /* 0x0031 */ OBJECT_BOMBF, - /* 0x0032 */ OBJECT_SK2, - /* 0x0033 */ OBJECT_OE1, - /* 0x0034 */ OBJECT_OE_ANIME, - /* 0x0035 */ OBJECT_OE2, - /* 0x0036 */ OBJECT_YDAN_OBJECTS, - /* 0x0037 */ OBJECT_GND, - /* 0x0038 */ OBJECT_AM, - /* 0x0039 */ OBJECT_DEKUBABA, - /* 0x003A */ OBJECT_UNSET_3A, - /* 0x003B */ OBJECT_OA3, - /* 0x003C */ OBJECT_OA4, - /* 0x003D */ OBJECT_OA5, - /* 0x003E */ OBJECT_OA6, - /* 0x003F */ OBJECT_OA7, - /* 0x0040 */ OBJECT_JJ, - /* 0x0041 */ OBJECT_OA8, - /* 0x0042 */ OBJECT_OA9, - /* 0x0043 */ OBJECT_OB2, - /* 0x0044 */ OBJECT_OB3, - /* 0x0045 */ OBJECT_OB4, - /* 0x0046 */ OBJECT_HORSE_ZELDA, - /* 0x0047 */ OBJECT_OPENING_DEMO1, - /* 0x0048 */ OBJECT_WARP1, - /* 0x0049 */ OBJECT_B_HEART, - /* 0x004A */ OBJECT_DEKUNUTS, - /* 0x004B */ OBJECT_OE3, - /* 0x004C */ OBJECT_OE4, - /* 0x004D */ OBJECT_MENKURI_OBJECTS, - /* 0x004E */ OBJECT_OE5, - /* 0x004F */ OBJECT_OE6, - /* 0x0050 */ OBJECT_OE7, - /* 0x0051 */ OBJECT_OE8, - /* 0x0052 */ OBJECT_OE9, - /* 0x0053 */ OBJECT_OE10, - /* 0x0054 */ OBJECT_OE11, - /* 0x0055 */ OBJECT_OE12, - /* 0x0056 */ OBJECT_VALI, - /* 0x0057 */ OBJECT_OA10, - /* 0x0058 */ OBJECT_OA11, - /* 0x0059 */ OBJECT_MIZU_OBJECTS, - /* 0x005A */ OBJECT_FHG, - /* 0x005B */ OBJECT_OSSAN, - /* 0x005C */ OBJECT_MORI_HINERI1, - /* 0x005D */ OBJECT_BB, - /* 0x005E */ OBJECT_TOKI_OBJECTS, - /* 0x005F */ OBJECT_YUKABYUN, - /* 0x0060 */ OBJECT_ZL2, - /* 0x0061 */ OBJECT_MJIN, - /* 0x0062 */ OBJECT_MJIN_FLASH, - /* 0x0063 */ OBJECT_MJIN_DARK, - /* 0x0064 */ OBJECT_MJIN_FLAME, - /* 0x0065 */ OBJECT_MJIN_ICE, - /* 0x0066 */ OBJECT_MJIN_SOUL, - /* 0x0067 */ OBJECT_MJIN_WIND, - /* 0x0068 */ OBJECT_MJIN_OKA, - /* 0x0069 */ OBJECT_HAKA_OBJECTS, - /* 0x006A */ OBJECT_SPOT06_OBJECTS, - /* 0x006B */ OBJECT_ICE_OBJECTS, - /* 0x006C */ OBJECT_RELAY_OBJECTS, - /* 0x006D */ OBJECT_PO_FIELD, - /* 0x006E */ OBJECT_PO_COMPOSER, - /* 0x006F */ OBJECT_MORI_HINERI1A, - /* 0x0070 */ OBJECT_MORI_HINERI2, - /* 0x0071 */ OBJECT_MORI_HINERI2A, - /* 0x0072 */ OBJECT_MORI_OBJECTS, - /* 0x0073 */ OBJECT_MORI_TEX, - /* 0x0074 */ OBJECT_SPOT08_OBJ, - /* 0x0075 */ OBJECT_WARP2, - /* 0x0076 */ OBJECT_HATA, - /* 0x0077 */ OBJECT_BIRD, - /* 0x0078 */ OBJECT_UNSET_78, - /* 0x0079 */ OBJECT_UNSET_79, - /* 0x007A */ OBJECT_UNSET_7A, - /* 0x007B */ OBJECT_UNSET_7B, - /* 0x007C */ OBJECT_WOOD02, - /* 0x007D */ OBJECT_UNSET_7D, - /* 0x007E */ OBJECT_UNSET_7E, - /* 0x007F */ OBJECT_UNSET_7F, - /* 0x0080 */ OBJECT_UNSET_80, - /* 0x0081 */ OBJECT_LIGHTBOX, - /* 0x0082 */ OBJECT_PU_BOX, - /* 0x0083 */ OBJECT_UNSET_83, - /* 0x0084 */ OBJECT_UNSET_84, - /* 0x0085 */ OBJECT_TRAP, - /* 0x0086 */ OBJECT_VASE, - /* 0x0087 */ OBJECT_IM, - /* 0x0088 */ OBJECT_TA, - /* 0x0089 */ OBJECT_TK, - /* 0x008A */ OBJECT_XC, - /* 0x008B */ OBJECT_VM, - /* 0x008C */ OBJECT_BV, - /* 0x008D */ OBJECT_HAKACH_OBJECTS, - /* 0x008E */ OBJECT_EFC_CRYSTAL_LIGHT, - /* 0x008F */ OBJECT_EFC_FIRE_BALL, - /* 0x0090 */ OBJECT_EFC_FLASH, - /* 0x0091 */ OBJECT_EFC_LGT_SHOWER, - /* 0x0092 */ OBJECT_EFC_STAR_FIELD, - /* 0x0093 */ OBJECT_GOD_LGT, - /* 0x0094 */ OBJECT_LIGHT_RING, - /* 0x0095 */ OBJECT_TRIFORCE_SPOT, - /* 0x0096 */ OBJECT_BDAN_OBJECTS, - /* 0x0097 */ OBJECT_SD, - /* 0x0098 */ OBJECT_RD, - /* 0x0099 */ OBJECT_PO_SISTERS, - /* 0x009A */ OBJECT_HEAVY_OBJECT, - /* 0x009B */ OBJECT_GNDD, - /* 0x009C */ OBJECT_FD, - /* 0x009D */ OBJECT_DU, - /* 0x009E */ OBJECT_FW, - /* 0x009F */ OBJECT_MEDAL, - /* 0x00A0 */ OBJECT_HORSE_LINK_CHILD, - /* 0x00A1 */ OBJECT_SPOT02_OBJECTS, - /* 0x00A2 */ OBJECT_HAKA, - /* 0x00A3 */ OBJECT_RU1, - /* 0x00A4 */ OBJECT_SYOKUDAI, - /* 0x00A5 */ OBJECT_FD2, - /* 0x00A6 */ OBJECT_DH, - /* 0x00A7 */ OBJECT_RL, - /* 0x00A8 */ OBJECT_EFC_TW, - /* 0x00A9 */ OBJECT_DEMO_TRE_LGT, - /* 0x00AA */ OBJECT_GI_KEY, - /* 0x00AB */ OBJECT_MIR_RAY, - /* 0x00AC */ OBJECT_BROB, - /* 0x00AD */ OBJECT_GI_JEWEL, - /* 0x00AE */ OBJECT_SPOT09_OBJ, - /* 0x00AF */ OBJECT_SPOT18_OBJ, - /* 0x00B0 */ OBJECT_BDOOR, - /* 0x00B1 */ OBJECT_SPOT17_OBJ, - /* 0x00B2 */ OBJECT_SHOP_DUNGEN, - /* 0x00B3 */ OBJECT_NB, - /* 0x00B4 */ OBJECT_MO, - /* 0x00B5 */ OBJECT_SB, - /* 0x00B6 */ OBJECT_GI_MELODY, - /* 0x00B7 */ OBJECT_GI_HEART, - /* 0x00B8 */ OBJECT_GI_COMPASS, - /* 0x00B9 */ OBJECT_GI_BOSSKEY, - /* 0x00BA */ OBJECT_GI_MEDAL, - /* 0x00BB */ OBJECT_GI_NUTS, - /* 0x00BC */ OBJECT_SA, - /* 0x00BD */ OBJECT_GI_HEARTS, - /* 0x00BE */ OBJECT_GI_ARROWCASE, - /* 0x00BF */ OBJECT_GI_BOMBPOUCH, - /* 0x00C0 */ OBJECT_IN, - /* 0x00C1 */ OBJECT_TR, - /* 0x00C2 */ OBJECT_SPOT16_OBJ, - /* 0x00C3 */ OBJECT_OE1S, - /* 0x00C4 */ OBJECT_OE4S, - /* 0x00C5 */ OBJECT_OS_ANIME, - /* 0x00C6 */ OBJECT_GI_BOTTLE, - /* 0x00C7 */ OBJECT_GI_STICK, - /* 0x00C8 */ OBJECT_GI_MAP, - /* 0x00C9 */ OBJECT_OF1D_MAP, - /* 0x00CA */ OBJECT_RU2, - /* 0x00CB */ OBJECT_GI_SHIELD_1, - /* 0x00CC */ OBJECT_DEKUJR, - /* 0x00CD */ OBJECT_GI_MAGICPOT, - /* 0x00CE */ OBJECT_GI_BOMB_1, - /* 0x00CF */ OBJECT_OF1S, - /* 0x00D0 */ OBJECT_MA2, - /* 0x00D1 */ OBJECT_GI_PURSE, - /* 0x00D2 */ OBJECT_HNI, - /* 0x00D3 */ OBJECT_TW, - /* 0x00D4 */ OBJECT_RR, - /* 0x00D5 */ OBJECT_BXA, - /* 0x00D6 */ OBJECT_ANUBICE, - /* 0x00D7 */ OBJECT_GI_GERUDO, - /* 0x00D8 */ OBJECT_GI_ARROW, - /* 0x00D9 */ OBJECT_GI_BOMB_2, - /* 0x00DA */ OBJECT_GI_EGG, - /* 0x00DB */ OBJECT_GI_SCALE, - /* 0x00DC */ OBJECT_GI_SHIELD_2, - /* 0x00DD */ OBJECT_GI_HOOKSHOT, - /* 0x00DE */ OBJECT_GI_OCARINA, - /* 0x00DF */ OBJECT_GI_MILK, - /* 0x00E0 */ OBJECT_MA1, - /* 0x00E1 */ OBJECT_GANON, - /* 0x00E2 */ OBJECT_SST, - /* 0x00E3 */ OBJECT_NY_UNUSED, - /* 0x00E4 */ OBJECT_UNSET_E4, - /* 0x00E5 */ OBJECT_NY, - /* 0x00E6 */ OBJECT_FR, - /* 0x00E7 */ OBJECT_GI_PACHINKO, - /* 0x00E8 */ OBJECT_GI_BOOMERANG, - /* 0x00E9 */ OBJECT_GI_BOW, - /* 0x00EA */ OBJECT_GI_GLASSES, - /* 0x00EB */ OBJECT_GI_LIQUID, - /* 0x00EC */ OBJECT_ANI, - /* 0x00ED */ OBJECT_DEMO_6K, - /* 0x00EE */ OBJECT_GI_SHIELD_3, - /* 0x00EF */ OBJECT_GI_LETTER, - /* 0x00F0 */ OBJECT_SPOT15_OBJ, - /* 0x00F1 */ OBJECT_JYA_OBJ, - /* 0x00F2 */ OBJECT_GI_CLOTHES, - /* 0x00F3 */ OBJECT_GI_BEAN, - /* 0x00F4 */ OBJECT_GI_FISH, - /* 0x00F5 */ OBJECT_GI_SAW, - /* 0x00F6 */ OBJECT_GI_HAMMER, - /* 0x00F7 */ OBJECT_GI_GRASS, - /* 0x00F8 */ OBJECT_GI_LONGSWORD, - /* 0x00F9 */ OBJECT_SPOT01_OBJECTS, - /* 0x00FA */ OBJECT_MD_UNUSED, - /* 0x00FB */ OBJECT_MD, - /* 0x00FC */ OBJECT_KM1, - /* 0x00FD */ OBJECT_KW1, - /* 0x00FE */ OBJECT_ZO, - /* 0x00FF */ OBJECT_KZ, - /* 0x0100 */ OBJECT_UMAJUMP, - /* 0x0101 */ OBJECT_MASTERKOKIRI, - /* 0x0102 */ OBJECT_MASTERKOKIRIHEAD, - /* 0x0103 */ OBJECT_MASTERGOLON, - /* 0x0104 */ OBJECT_MASTERZOORA, - /* 0x0105 */ OBJECT_AOB, - /* 0x0106 */ OBJECT_IK, - /* 0x0107 */ OBJECT_AHG, - /* 0x0108 */ OBJECT_CNE, - /* 0x0109 */ OBJECT_GI_NIWATORI, - /* 0x010A */ OBJECT_SKJ, - /* 0x010B */ OBJECT_GI_BOTTLE_LETTER, - /* 0x010C */ OBJECT_BJI, - /* 0x010D */ OBJECT_BBA, - /* 0x010E */ OBJECT_GI_OCARINA_0, - /* 0x010F */ OBJECT_DS, - /* 0x0110 */ OBJECT_ANE, - /* 0x0111 */ OBJECT_BOJ, - /* 0x0112 */ OBJECT_SPOT03_OBJECT, - /* 0x0113 */ OBJECT_SPOT07_OBJECT, - /* 0x0114 */ OBJECT_FZ, - /* 0x0115 */ OBJECT_BOB, - /* 0x0116 */ OBJECT_GE1, - /* 0x0117 */ OBJECT_YABUSAME_POINT, - /* 0x0118 */ OBJECT_GI_BOOTS_2, - /* 0x0119 */ OBJECT_GI_SEED, - /* 0x011A */ OBJECT_GND_MAGIC, - /* 0x011B */ OBJECT_D_ELEVATOR, - /* 0x011C */ OBJECT_D_HSBLOCK, - /* 0x011D */ OBJECT_D_LIFT, - /* 0x011E */ OBJECT_MAMENOKI, - /* 0x011F */ OBJECT_GOROIWA, - /* 0x0120 */ OBJECT_UNSET_120, - /* 0x0121 */ OBJECT_TORYO, - /* 0x0122 */ OBJECT_DAIKU, - /* 0x0123 */ OBJECT_UNSET_123, - /* 0x0124 */ OBJECT_NWC, - /* 0x0125 */ OBJECT_BLKOBJ, - /* 0x0126 */ OBJECT_GM, - /* 0x0127 */ OBJECT_MS, - /* 0x0128 */ OBJECT_HS, - /* 0x0129 */ OBJECT_INGATE, - /* 0x012A */ OBJECT_LIGHTSWITCH, - /* 0x012B */ OBJECT_KUSA, - /* 0x012C */ OBJECT_TSUBO, - /* 0x012D */ OBJECT_GI_GLOVES, - /* 0x012E */ OBJECT_GI_COIN, - /* 0x012F */ OBJECT_KANBAN, - /* 0x0130 */ OBJECT_GJYO_OBJECTS, - /* 0x0131 */ OBJECT_OWL, - /* 0x0132 */ OBJECT_MK, - /* 0x0133 */ OBJECT_FU, - /* 0x0134 */ OBJECT_GI_KI_TAN_MASK, - /* 0x0135 */ OBJECT_GI_REDEAD_MASK, - /* 0x0136 */ OBJECT_GI_SKJ_MASK, - /* 0x0137 */ OBJECT_GI_RABIT_MASK, - /* 0x0138 */ OBJECT_GI_TRUTH_MASK, - /* 0x0139 */ OBJECT_GANON_OBJECTS, - /* 0x013A */ OBJECT_SIOFUKI, - /* 0x013B */ OBJECT_STREAM, - /* 0x013C */ OBJECT_MM, - /* 0x013D */ OBJECT_FA, - /* 0x013E */ OBJECT_OS, - /* 0x013F */ OBJECT_GI_EYE_LOTION, - /* 0x0140 */ OBJECT_GI_POWDER, - /* 0x0141 */ OBJECT_GI_MUSHROOM, - /* 0x0142 */ OBJECT_GI_TICKETSTONE, - /* 0x0143 */ OBJECT_GI_BROKENSWORD, - /* 0x0144 */ OBJECT_JS, - /* 0x0145 */ OBJECT_CS, - /* 0x0146 */ OBJECT_GI_PRESCRIPTION, - /* 0x0147 */ OBJECT_GI_BRACELET, - /* 0x0148 */ OBJECT_GI_SOLDOUT, - /* 0x0149 */ OBJECT_GI_FROG, - /* 0x014A */ OBJECT_MAG, - /* 0x014B */ OBJECT_DOOR_GERUDO, - /* 0x014C */ OBJECT_GT, - /* 0x014D */ OBJECT_EFC_ERUPC, - /* 0x014E */ OBJECT_ZL2_ANIME1, - /* 0x014F */ OBJECT_ZL2_ANIME2, - /* 0x0150 */ OBJECT_GI_GOLONMASK, - /* 0x0151 */ OBJECT_GI_ZORAMASK, - /* 0x0152 */ OBJECT_GI_GERUDOMASK, - /* 0x0153 */ OBJECT_GANON2, - /* 0x0154 */ OBJECT_KA, - /* 0x0155 */ OBJECT_TS, - /* 0x0156 */ OBJECT_ZG, - /* 0x0157 */ OBJECT_GI_HOVERBOOTS, - /* 0x0158 */ OBJECT_GI_M_ARROW, - /* 0x0159 */ OBJECT_DS2, - /* 0x015A */ OBJECT_EC, - /* 0x015B */ OBJECT_FISH, - /* 0x015C */ OBJECT_GI_SUTARU, - /* 0x015D */ OBJECT_GI_GODDESS, - /* 0x015E */ OBJECT_SSH, - /* 0x015F */ OBJECT_BIGOKUTA, - /* 0x0160 */ OBJECT_BG, - /* 0x0161 */ OBJECT_SPOT05_OBJECTS, - /* 0x0162 */ OBJECT_SPOT12_OBJ, - /* 0x0163 */ OBJECT_BOMBIWA, - /* 0x0164 */ OBJECT_HINTNUTS, - /* 0x0165 */ OBJECT_RS, - /* 0x0166 */ OBJECT_SPOT00_BREAK, - /* 0x0167 */ OBJECT_GLA, - /* 0x0168 */ OBJECT_SHOPNUTS, - /* 0x0169 */ OBJECT_GELDB, - /* 0x016A */ OBJECT_GR, - /* 0x016B */ OBJECT_DOG, - /* 0x016C */ OBJECT_JYA_IRON, - /* 0x016D */ OBJECT_JYA_DOOR, - /* 0x016E */ OBJECT_UNSET_16E, - /* 0x016F */ OBJECT_SPOT11_OBJ, - /* 0x0170 */ OBJECT_KIBAKO2, - /* 0x0171 */ OBJECT_DNS, - /* 0x0172 */ OBJECT_DNK, - /* 0x0173 */ OBJECT_GI_FIRE, - /* 0x0174 */ OBJECT_GI_INSECT, - /* 0x0175 */ OBJECT_GI_BUTTERFLY, - /* 0x0176 */ OBJECT_GI_GHOST, - /* 0x0177 */ OBJECT_GI_SOUL, - /* 0x0178 */ OBJECT_BOWL, - /* 0x0179 */ OBJECT_DEMO_KEKKAI, - /* 0x017A */ OBJECT_EFC_DOUGHNUT, - /* 0x017B */ OBJECT_GI_DEKUPOUCH, - /* 0x017C */ OBJECT_GANON_ANIME1, - /* 0x017D */ OBJECT_GANON_ANIME2, - /* 0x017E */ OBJECT_GANON_ANIME3, - /* 0x017F */ OBJECT_GI_RUPY, - /* 0x0180 */ OBJECT_SPOT01_MATOYA, - /* 0x0181 */ OBJECT_SPOT01_MATOYAB, - /* 0x0182 */ OBJECT_MU, - /* 0x0183 */ OBJECT_WF, - /* 0x0184 */ OBJECT_SKB, - /* 0x0185 */ OBJECT_GJ, - /* 0x0186 */ OBJECT_GEFF, - /* 0x0187 */ OBJECT_HAKA_DOOR, - /* 0x0188 */ OBJECT_GS, - /* 0x0189 */ OBJECT_PS, - /* 0x018A */ OBJECT_BWALL, - /* 0x018B */ OBJECT_COW, - /* 0x018C */ OBJECT_COB, - /* 0x018D */ OBJECT_GI_SWORD_1, - /* 0x018E */ OBJECT_DOOR_KILLER, - /* 0x018F */ OBJECT_OUKE_HAKA, - /* 0x0190 */ OBJECT_TIMEBLOCK, - /* 0x0191 */ OBJECT_ZL4, + #include "tables/object_table.h" /* 0x0192 */ OBJECT_ID_MAX } ObjectID; +#undef DEFINE_OBJECT +#undef DEFINE_OBJECT_NULL +#undef DEFINE_OBJECT_UNSET + #endif diff --git a/src/code/z_actor_dlftbls.c b/src/code/z_actor_dlftbls.c index 7d26cb86ab..bb70385d98 100644 --- a/src/code/z_actor_dlftbls.c +++ b/src/code/z_actor_dlftbls.c @@ -1,492 +1,51 @@ #include "global.h" -#include "initvars.h" -#define ACTOR_OVERLAY(name, allocType) \ - { \ - (u32) _ovl_##name##SegmentRomStart, (u32)_ovl_##name##SegmentRomEnd, _ovl_##name##SegmentStart, \ - _ovl_##name##SegmentEnd, NULL, &name##_InitVars, #name, allocType, 0 \ - } +// Linker symbol declarations (used in the table below) +#define DEFINE_ACTOR(name, _1, _2) DECLARE_OVERLAY_SEGMENT(name) +#define DEFINE_ACTOR_INTERNAL(_0, _1, _2) +#define DEFINE_ACTOR_UNSET(_0) -#define ACTOR_OVERLAY_INTERNAL(name, allocType) \ - { 0, 0, NULL, NULL, NULL, &name##_InitVars, #name, allocType, 0 } +#include "tables/actor_table.h" -#define ACTOR_OVERLAY_UNSET \ - { 0 } +#undef DEFINE_ACTOR +#undef DEFINE_ACTOR_INTERNAL +#undef DEFINE_ACTOR_UNSET + +// Init Vars declarations (also used in the table below) +#define DEFINE_ACTOR(name, _1, _2) extern ActorInit name##_InitVars; +#define DEFINE_ACTOR_INTERNAL(name, _1, _2) extern ActorInit name##_InitVars; +#define DEFINE_ACTOR_UNSET(_0) + +#include "tables/actor_table.h" + +#undef DEFINE_ACTOR +#undef DEFINE_ACTOR_INTERNAL +#undef DEFINE_ACTOR_UNSET + +// Actor Overlay Table definition +#define DEFINE_ACTOR(name, _1, allocType) \ + { (u32)_ovl_##name##SegmentRomStart, \ + (u32)_ovl_##name##SegmentRomEnd, \ + _ovl_##name##SegmentStart, \ + _ovl_##name##SegmentEnd, \ + NULL, \ + &name##_InitVars, \ + #name, \ + allocType, \ + 0 }, + +#define DEFINE_ACTOR_INTERNAL(name, _1, allocType) { 0, 0, NULL, NULL, NULL, &name##_InitVars, #name, allocType, 0 }, + +#define DEFINE_ACTOR_UNSET(_0) { 0 }, ActorOverlay gActorOverlayTable[] = { - ACTOR_OVERLAY_INTERNAL(Player, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Test, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_GirlA, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Part, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Light, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Door, ALLOCTYPE_PERMANENT), - ACTOR_OVERLAY(En_Box, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Dy_Yoseizo, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Hidan_Firewall, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Poh, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Okuta, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Ydan_Sp, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Bom, ALLOCTYPE_PERMANENT), - ACTOR_OVERLAY(En_Wallmas, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Dodongo, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Firefly, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Horse, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_INTERNAL(En_Item00, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Arrow, ALLOCTYPE_PERMANENT), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Elf, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Niw, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Tite, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Reeba, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Peehat, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Butte, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Insect, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Fish, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Holl, ALLOCTYPE_PERMANENT), - ACTOR_OVERLAY(En_Scene_Change, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Zf, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Hata, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Boss_Dodongo, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Boss_Goma, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Zl1, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Viewer, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Goma, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Pushbox, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Bubble, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Door_Shutter, ALLOCTYPE_PERMANENT), - ACTOR_OVERLAY(En_Dodojr, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Bdfire, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Boom, ALLOCTYPE_PERMANENT), - ACTOR_OVERLAY(En_Torch2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Bili, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Tp, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_St, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Bw, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_INTERNAL(En_A_Obj, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Eiyer, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_River_Sound, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Horse_Normal, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ossan, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Treemouth, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Dodoago, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Hidan_Dalm, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Hidan_Hrock, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Horse_Ganon, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Hidan_Rock, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Hidan_Rsekizou, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Hidan_Sekizou, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Hidan_Sima, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Hidan_Syoku, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Xc, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Hidan_Curtain, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot00_Hanebasi, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Mb, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Bombf, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Zl2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Hidan_Fslift, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_OE2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Ydan_Hasi, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Ydan_Maruta, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Boss_Ganondrof, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Am, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Dekubaba, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_M_Fire1, ALLOCTYPE_PERMANENT), - ACTOR_OVERLAY(En_M_Thunder, ALLOCTYPE_PERMANENT), - ACTOR_OVERLAY(Bg_Ddan_Jd, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Breakwall, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Jj, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Horse_Zelda, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Ddan_Kd, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Door_Warp1, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Syokudai, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Item_B_Heart, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Dekunuts, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Menkuri_Kaiten, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Menkuri_Eye, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Vali, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Mizu_Movebg, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Mizu_Water, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Arms_Hook, ALLOCTYPE_PERMANENT), - ACTOR_OVERLAY(En_fHG, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Mori_Hineri, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Bb, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Toki_Hikari, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Yukabyun, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Toki_Swd, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Fhg_Fire, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Mjin, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Hidan_Kousi, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Door_Toki, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Hidan_Hamstep, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Bird, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Wood02, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Lightbox, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Pu_box, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Trap, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Arow_Trap, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Vase, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Ta, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Tk, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Mori_Bigst, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Mori_Elevator, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Mori_Kaitenkabe, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Mori_Rakkatenjo, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Vm, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Demo_Effect, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Demo_Kankyo, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Hidan_Fwbig, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Floormas, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Heishi1, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Rd, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Po_Sisters, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Heavy_Block, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Po_Event, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Mure, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Sw, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Boss_Fd, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Object_Kankyo, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Du, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Fd, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Horse_Link_Child, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Door_Ana, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot02_Objects, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Haka, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Magic_Wind, ALLOCTYPE_ABSOLUTE), - ACTOR_OVERLAY(Magic_Fire, ALLOCTYPE_ABSOLUTE), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Ru1, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Boss_Fd2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Fd_Fire, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Dh, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Dha, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Rl, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Encount1, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Demo_Du, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Demo_Im, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Demo_Tre_Lgt, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Fw, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Vb_Sima, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Vb_Ball, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Haka_Megane, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Haka_MeganeBG, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Haka_Ship, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Haka_Sgami, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Heishi2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Encount2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Fire_Rock, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Brob, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Mir_Ray, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot09_Obj, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot18_Obj, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Boss_Va, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Haka_Tubo, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Haka_Trap, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Haka_Huta, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Haka_Zou, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot17_Funen, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Syateki_Itm, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Syateki_Man, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Tana, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Nb, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Boss_Mo, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Sb, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Bigokuta, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Karebaba, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Bdan_Objects, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Demo_Sa, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Demo_Go, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_In, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Tr, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot16_Bombstone, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(Bg_Hidan_Kowarerukabe, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Bombwall, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot08_Iceblock, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ru2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Dekujr, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Mizu_Uzu, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot06_Objects, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Ice_Objects, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Haka_Water, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Ma2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Bom_Chu, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Horse_Game_Check, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Boss_Tw, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Rr, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ba, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Bx, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Anubice, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Anubice_Fire, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Mori_Hashigo, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Mori_Hashira4, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Mori_Idomizu, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot16_Doughnut, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Bdan_Switch, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ma1, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Boss_Ganon, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Boss_Sst, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Ny, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Fr, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Item_Shield, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Ice_Shelter, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ice_Hono, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Item_Ocarina, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(Magic_Dark, ALLOCTYPE_ABSOLUTE), - ACTOR_OVERLAY(Demo_6K, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Anubice_Tag, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Haka_Gate, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot15_Saku, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Jya_Goroiwa, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Jya_Zurerukabe, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(Bg_Jya_Cobra, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Jya_Kanaami, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Fishing, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Oshihiki, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Gate_Shutter, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Eff_Dust, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot01_Fusya, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot01_Idohashira, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot01_Idomizu, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Po_Syokudai, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Ganon_Otyuka, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot15_Rrbox, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Umajump, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(Arrow_Fire, ALLOCTYPE_ABSOLUTE), - ACTOR_OVERLAY(Arrow_Ice, ALLOCTYPE_ABSOLUTE), - ACTOR_OVERLAY(Arrow_Light, ALLOCTYPE_ABSOLUTE), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(Item_Etcetera, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Kibako, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Tsubo, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Wonder_Item, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ik, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Demo_Ik, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Skj, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Skjneedle, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_G_Switch, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Demo_Ext, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Demo_Shd, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Dns, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Elf_Msg, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Honotrap, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Tubo_Trap, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Ice_Poly, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot03_Taki, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot07_Taki, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Fz, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Po_Relay, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Relay_Objects, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Diving_Game, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Kusa, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Bean, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Bombiwa, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(Obj_Switch, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Elevator, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Lift, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Hsblock, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Okarina_Tag, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Yabusame_Mark, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Goroiwa, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ex_Ruppy, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Toryo, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Daiku, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Nwc, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Blkobj, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Item_Inbox, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ge1, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Blockstop, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Sda, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Clear_Tag, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Niw_Lady, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Gm, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ms, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Hs, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Ingate, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Kanban, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Heishi3, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Syateki_Niw, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Attack_Niw, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot01_Idosoko, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Sa, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Wonder_Talk, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Gjyo_Bridge, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ds, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Mk, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Bom_Bowl_Man, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Bom_Bowl_Pit, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Owl, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ishi, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Hana, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Lightswitch, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Mure2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Go, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Fu, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Changer, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Jya_Megami, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Jya_Lift, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Jya_Bigmirror, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Jya_Bombchuiwa, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Jya_Amishutter, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Jya_Bombiwa, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot18_Basket, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Ganon_Organ, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Siofuki, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Stream, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Mm, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ko, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Kz, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Weather_Tag, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Sst_Floor, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ani, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ex_Item, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Jya_Ironobj, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Js, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Jsjutan, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Cs, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Md, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Hy, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ganon_Mant, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Okarina_Effect, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Mag, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Door_Gerudo, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Elf_Msg2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Demo_Gt, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Po_Field, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Efc_Erupc, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Zg, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Heishi4, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Zl3, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Boss_Ganon2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Kakasi, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Takara_Man, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Makeoshihiki, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Oceff_Spot, ALLOCTYPE_ABSOLUTE), - ACTOR_OVERLAY(End_Title, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(En_Torch, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Demo_Ec, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Shot_Sun, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Dy_Extra, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Wonder_Talk2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ge2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Roomtimer, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ssh, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Sth, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Oceff_Wipe, ALLOCTYPE_ABSOLUTE), - ACTOR_OVERLAY(Oceff_Storm, ALLOCTYPE_ABSOLUTE), - ACTOR_OVERLAY(En_Weiyer, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot05_Soko, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Jya_1flift, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Jya_Haheniron, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot12_Gate, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot12_Saku, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Hintnuts, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Nutsball, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot00_Break, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Shopnuts, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_It, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_GeldB, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Oceff_Wipe2, ALLOCTYPE_ABSOLUTE), - ACTOR_OVERLAY(Oceff_Wipe3, ALLOCTYPE_ABSOLUTE), - ACTOR_OVERLAY(En_Niw_Girl, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Dog, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Si, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot01_Objects2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Comb, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot11_Bakudankabe, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Kibako2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Dnt_Demo, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Dnt_Jiji, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Dnt_Nomal, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Guest, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Bom_Guard, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Hs2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Demo_Kekkai, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot08_Bakudankabe, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot17_Bakudankabe, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY_UNSET, - ACTOR_OVERLAY(Obj_Mure3, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Tg, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Mu, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Go2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Wf, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Skb, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Demo_Gj, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Demo_Geff, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Gnd_Firemeiro, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Gnd_Darkmeiro, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Gnd_Soulmeiro, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Gnd_Nisekabe, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Gnd_Iceblock, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Gb, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Gs, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Mizu_Bwall, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Mizu_Shutter, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Daiku_Kakariko, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Bowl_Wall, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Wall_Tubo, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Po_Desert, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Crow, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Door_Killer, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot11_Oasis, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot18_Futa, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Spot18_Shutter, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ma3, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Cow, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Ice_Turara, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Ice_Shutter, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Kakasi2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Kakasi3, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Oceff_Wipe4, ALLOCTYPE_ABSOLUTE), - ACTOR_OVERLAY(En_Eg, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Menkuri_Nisekabe, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Zo, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Makekinsuta, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Ge3, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Timeblock, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Hamishi, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Zl4, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(En_Mm2, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Bg_Jya_Block, ALLOCTYPE_NORMAL), - ACTOR_OVERLAY(Obj_Warp2block, ALLOCTYPE_NORMAL), +#include "tables/actor_table.h" }; +#undef DEFINE_ACTOR +#undef DEFINE_ACTOR_INTERNAL +#undef DEFINE_ACTOR_UNSET + s32 gMaxActorId = 0; static FaultClient sFaultClient; diff --git a/src/code/z_effect_soft_sprite_dlftbls.c b/src/code/z_effect_soft_sprite_dlftbls.c index bc7ec83b91..2368931836 100644 --- a/src/code/z_effect_soft_sprite_dlftbls.c +++ b/src/code/z_effect_soft_sprite_dlftbls.c @@ -1,54 +1,40 @@ #include "global.h" -#include "initvars.h" -#define EFFECT_SS_OVERLAY(name) \ - { \ - (u32) _ovl_##name##SegmentRomStart, (u32)_ovl_##name##SegmentRomEnd, _ovl_##name##SegmentStart, \ - _ovl_##name##SegmentEnd, NULL, &name##_InitVars, 1, \ - } +// Linker symbol declarations (used in the table below) +#define DEFINE_EFFECT_SS(name, _1) DECLARE_OVERLAY_SEGMENT(name) +#define DEFINE_EFFECT_SS_UNSET(_0) -#define EFFECT_SS_OVERLAY_INTERNAL(name) \ - { 0, 0, NULL, NULL, NULL, &name##_InitVars, 1 } +#include "tables/effect_ss_table.h" -#define EFFECT_SS_OVERLAY_UNSET \ - { 0 } +#undef DEFINE_EFFECT_SS +#undef DEFINE_EFFECT_SS_UNSET + +// Init Vars declarations (also used in the table below) +#define DEFINE_EFFECT_SS(name, _1) extern EffectSsInit name##_InitVars; +#define DEFINE_EFFECT_SS_UNSET(_0) + +#include "tables/effect_ss_table.h" + +#undef DEFINE_EFFECT_SS +#undef DEFINE_EFFECT_SS_UNSET + +// Effect SS Overlay Table definition +#define DEFINE_EFFECT_SS(name, _1) \ + { \ + (u32)_ovl_##name##SegmentRomStart, \ + (u32)_ovl_##name##SegmentRomEnd, \ + _ovl_##name##SegmentStart, \ + _ovl_##name##SegmentEnd, \ + NULL, \ + &name##_InitVars, \ + 1, \ + }, + +#define DEFINE_EFFECT_SS_UNSET(_0) { 0 }, EffectSsOverlay gEffectSsOverlayTable[] = { - EFFECT_SS_OVERLAY(Effect_Ss_Dust), - EFFECT_SS_OVERLAY(Effect_Ss_KiraKira), - EFFECT_SS_OVERLAY(Effect_Ss_Bomb), - EFFECT_SS_OVERLAY(Effect_Ss_Bomb2), - EFFECT_SS_OVERLAY(Effect_Ss_Blast), - EFFECT_SS_OVERLAY(Effect_Ss_G_Spk), - EFFECT_SS_OVERLAY(Effect_Ss_D_Fire), - EFFECT_SS_OVERLAY(Effect_Ss_Bubble), - EFFECT_SS_OVERLAY_UNSET, - EFFECT_SS_OVERLAY(Effect_Ss_G_Ripple), - EFFECT_SS_OVERLAY(Effect_Ss_G_Splash), - EFFECT_SS_OVERLAY(Effect_Ss_G_Magma), - EFFECT_SS_OVERLAY(Effect_Ss_G_Fire), - EFFECT_SS_OVERLAY(Effect_Ss_Lightning), - EFFECT_SS_OVERLAY(Effect_Ss_Dt_Bubble), - EFFECT_SS_OVERLAY(Effect_Ss_Hahen), - EFFECT_SS_OVERLAY(Effect_Ss_Stick), - EFFECT_SS_OVERLAY(Effect_Ss_Sibuki), - EFFECT_SS_OVERLAY(Effect_Ss_Sibuki2), - EFFECT_SS_OVERLAY(Effect_Ss_G_Magma2), - EFFECT_SS_OVERLAY(Effect_Ss_Stone1), - EFFECT_SS_OVERLAY(Effect_Ss_HitMark), - EFFECT_SS_OVERLAY(Effect_Ss_Fhg_Flash), - EFFECT_SS_OVERLAY(Effect_Ss_K_Fire), - EFFECT_SS_OVERLAY(Effect_Ss_Solder_Srch_Ball), - EFFECT_SS_OVERLAY(Effect_Ss_Kakera), - EFFECT_SS_OVERLAY(Effect_Ss_Ice_Piece), - EFFECT_SS_OVERLAY(Effect_Ss_En_Ice), - EFFECT_SS_OVERLAY(Effect_Ss_Fire_Tail), - EFFECT_SS_OVERLAY(Effect_Ss_En_Fire), - EFFECT_SS_OVERLAY(Effect_Ss_Extra), - EFFECT_SS_OVERLAY(Effect_Ss_Fcircle), - EFFECT_SS_OVERLAY(Effect_Ss_Dead_Db), - EFFECT_SS_OVERLAY(Effect_Ss_Dead_Dd), - EFFECT_SS_OVERLAY(Effect_Ss_Dead_Ds), - EFFECT_SS_OVERLAY(Effect_Ss_Dead_Sound), - EFFECT_SS_OVERLAY(Effect_Ss_Ice_Smoke), +#include "tables/effect_ss_table.h" }; + +#undef DEFINE_EFFECT_SS +#undef DEFINE_EFFECT_SS_UNSET diff --git a/src/code/z_scene.c b/src/code/z_scene.c index 7cd3d8c392..9920a27c0e 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -60,7 +60,7 @@ void Object_InitBank(GlobalContext* globalCtx, ObjectContext* objectCtx) { objectCtx->mainKeepIndex = objectCtx->subKeepIndex = 0; for (i = 0; i < OBJECT_EXCHANGE_BANK_MAX; i++) { - objectCtx->status[i].id = 0; + objectCtx->status[i].id = OBJECT_INVALID; } osSyncPrintf(VT_FGCOL(GREEN)); @@ -276,7 +276,7 @@ void func_8009899C(GlobalContext* globalCtx, SceneCmd* cmd) { if (status->id != *objectEntry) { status2 = &globalCtx->objectCtx.status[i]; for (j = i; j < globalCtx->objectCtx.num; j++) { - status2->id = 0; + status2->id = OBJECT_INVALID; status2++; } globalCtx->objectCtx.num = i; @@ -519,407 +519,26 @@ s16 gLinkObjectIds[] = { OBJECT_LINK_BOY, OBJECT_LINK_CHILD }; u32 gObjectTableSize = ARRAY_COUNT(gObjectTable); +// Object linker symbol declarations (used in the table below) +#define DEFINE_OBJECT(name, _1) DECLARE_ROM_SEGMENT(name) +#define DEFINE_OBJECT_NULL(_0, _1) +#define DEFINE_OBJECT_UNSET(_0) + +#include "tables/object_table.h" + +#undef DEFINE_OBJECT +#undef DEFINE_OBJECT_NULL +#undef DEFINE_OBJECT_UNSET + +// Object Table definition +#define DEFINE_OBJECT(name, _1) ROM_FILE(name), +#define DEFINE_OBJECT_NULL(name, _1) ROM_FILE_EMPTY(name), +#define DEFINE_OBJECT_UNSET(_0) { 0 }, + RomFile gObjectTable[] = { - ROM_FILE_UNSET, - ROM_FILE(gameplay_keep), - ROM_FILE(gameplay_field_keep), - ROM_FILE(gameplay_dangeon_keep), - ROM_FILE_UNSET, - ROM_FILE_UNSET, - ROM_FILE(object_human), - ROM_FILE(object_okuta), - ROM_FILE(object_crow), - ROM_FILE(object_poh), - ROM_FILE(object_dy_obj), - ROM_FILE(object_wallmaster), - ROM_FILE(object_dodongo), - ROM_FILE(object_firefly), - ROM_FILE(object_box), - ROM_FILE(object_fire), - ROM_FILE_UNSET, - ROM_FILE_UNSET, - ROM_FILE(object_bubble), - ROM_FILE(object_niw), - ROM_FILE(object_link_boy), - ROM_FILE(object_link_child), - ROM_FILE(object_tite), - ROM_FILE(object_reeba), - ROM_FILE(object_peehat), - ROM_FILE(object_kingdodongo), - ROM_FILE(object_horse), - ROM_FILE(object_zf), - ROM_FILE(object_goma), - ROM_FILE(object_zl1), - ROM_FILE(object_gol), - ROM_FILE(object_dodojr), - ROM_FILE(object_torch2), - ROM_FILE(object_bl), - ROM_FILE(object_tp), - ROM_FILE(object_oA1), - ROM_FILE(object_st), - ROM_FILE(object_bw), - ROM_FILE(object_ei), - ROM_FILE(object_horse_normal), - ROM_FILE(object_oB1), - ROM_FILE(object_o_anime), - ROM_FILE(object_spot04_objects), - ROM_FILE(object_ddan_objects), - ROM_FILE(object_hidan_objects), - ROM_FILE(object_horse_ganon), - ROM_FILE(object_oA2), - ROM_FILE(object_spot00_objects), - ROM_FILE(object_mb), - ROM_FILE(object_bombf), - ROM_FILE(object_sk2), - ROM_FILE(object_oE1), - ROM_FILE(object_oE_anime), - ROM_FILE(object_oE2), - ROM_FILE(object_ydan_objects), - ROM_FILE(object_gnd), - ROM_FILE(object_am), - ROM_FILE(object_dekubaba), - ROM_FILE_UNSET, - ROM_FILE(object_oA3), - ROM_FILE(object_oA4), - ROM_FILE(object_oA5), - ROM_FILE(object_oA6), - ROM_FILE(object_oA7), - ROM_FILE(object_jj), - ROM_FILE(object_oA8), - ROM_FILE(object_oA9), - ROM_FILE(object_oB2), - ROM_FILE(object_oB3), - ROM_FILE(object_oB4), - ROM_FILE(object_horse_zelda), - ROM_FILE(object_opening_demo1), - ROM_FILE(object_warp1), - ROM_FILE(object_b_heart), - ROM_FILE(object_dekunuts), - ROM_FILE(object_oE3), - ROM_FILE(object_oE4), - ROM_FILE(object_menkuri_objects), - ROM_FILE(object_oE5), - ROM_FILE(object_oE6), - ROM_FILE(object_oE7), - ROM_FILE(object_oE8), - ROM_FILE(object_oE9), - ROM_FILE(object_oE10), - ROM_FILE(object_oE11), - ROM_FILE(object_oE12), - ROM_FILE(object_vali), - ROM_FILE(object_oA10), - ROM_FILE(object_oA11), - ROM_FILE(object_mizu_objects), - ROM_FILE(object_fhg), - ROM_FILE(object_ossan), - ROM_FILE(object_mori_hineri1), - ROM_FILE(object_Bb), - ROM_FILE(object_toki_objects), - ROM_FILE(object_yukabyun), - ROM_FILE(object_zl2), - ROM_FILE(object_mjin), - ROM_FILE(object_mjin_flash), - ROM_FILE(object_mjin_dark), - ROM_FILE(object_mjin_flame), - ROM_FILE(object_mjin_ice), - ROM_FILE(object_mjin_soul), - ROM_FILE(object_mjin_wind), - ROM_FILE(object_mjin_oka), - ROM_FILE(object_haka_objects), - ROM_FILE(object_spot06_objects), - ROM_FILE(object_ice_objects), - ROM_FILE(object_relay_objects), - ROM_FILE(object_po_field), - ROM_FILE(object_po_composer), - ROM_FILE(object_mori_hineri1a), - ROM_FILE(object_mori_hineri2), - ROM_FILE(object_mori_hineri2a), - ROM_FILE(object_mori_objects), - ROM_FILE(object_mori_tex), - ROM_FILE(object_spot08_obj), - ROM_FILE(object_warp2), - ROM_FILE(object_hata), - ROM_FILE(object_bird), - ROM_FILE_UNSET, - ROM_FILE_UNSET, - ROM_FILE_UNSET, - ROM_FILE_UNSET, - ROM_FILE(object_wood02), - ROM_FILE_UNSET, - ROM_FILE_UNSET, - ROM_FILE_UNSET, - ROM_FILE_UNSET, - ROM_FILE(object_lightbox), - ROM_FILE(object_pu_box), - ROM_FILE_UNSET, - ROM_FILE_UNSET, - ROM_FILE(object_trap), - ROM_FILE(object_vase), - ROM_FILE(object_im), - ROM_FILE(object_ta), - ROM_FILE(object_tk), - ROM_FILE(object_xc), - ROM_FILE(object_vm), - ROM_FILE(object_bv), - ROM_FILE(object_hakach_objects), - ROM_FILE(object_efc_crystal_light), - ROM_FILE(object_efc_fire_ball), - ROM_FILE(object_efc_flash), - ROM_FILE(object_efc_lgt_shower), - ROM_FILE(object_efc_star_field), - ROM_FILE(object_god_lgt), - ROM_FILE(object_light_ring), - ROM_FILE(object_triforce_spot), - ROM_FILE(object_bdan_objects), - ROM_FILE(object_sd), - ROM_FILE(object_rd), - ROM_FILE(object_po_sisters), - ROM_FILE(object_heavy_object), - ROM_FILE(object_gndd), - ROM_FILE(object_fd), - ROM_FILE(object_du), - ROM_FILE(object_fw), - ROM_FILE(object_medal), - ROM_FILE(object_horse_link_child), - ROM_FILE(object_spot02_objects), - ROM_FILE(object_haka), - ROM_FILE(object_ru1), - ROM_FILE(object_syokudai), - ROM_FILE(object_fd2), - ROM_FILE(object_dh), - ROM_FILE(object_rl), - ROM_FILE(object_efc_tw), - ROM_FILE(object_demo_tre_lgt), - ROM_FILE(object_gi_key), - ROM_FILE(object_mir_ray), - ROM_FILE(object_brob), - ROM_FILE(object_gi_jewel), - ROM_FILE(object_spot09_obj), - ROM_FILE(object_spot18_obj), - ROM_FILE(object_bdoor), - ROM_FILE(object_spot17_obj), - ROM_FILE(object_shop_dungen), - ROM_FILE(object_nb), - ROM_FILE(object_mo), - ROM_FILE(object_sb), - ROM_FILE(object_gi_melody), - ROM_FILE(object_gi_heart), - ROM_FILE(object_gi_compass), - ROM_FILE(object_gi_bosskey), - ROM_FILE(object_gi_medal), - ROM_FILE(object_gi_nuts), - ROM_FILE(object_sa), - ROM_FILE(object_gi_hearts), - ROM_FILE(object_gi_arrowcase), - ROM_FILE(object_gi_bombpouch), - ROM_FILE(object_in), - ROM_FILE(object_tr), - ROM_FILE(object_spot16_obj), - ROM_FILE(object_oE1s), - ROM_FILE(object_oE4s), - ROM_FILE(object_os_anime), - ROM_FILE(object_gi_bottle), - ROM_FILE(object_gi_stick), - ROM_FILE(object_gi_map), - ROM_FILE(object_oF1d_map), - ROM_FILE(object_ru2), - ROM_FILE(object_gi_shield_1), - ROM_FILE(object_dekujr), - ROM_FILE(object_gi_magicpot), - ROM_FILE(object_gi_bomb_1), - ROM_FILE(object_oF1s), - ROM_FILE(object_ma2), - ROM_FILE(object_gi_purse), - ROM_FILE(object_hni), - ROM_FILE(object_tw), - ROM_FILE(object_rr), - ROM_FILE(object_bxa), - ROM_FILE(object_anubice), - ROM_FILE(object_gi_gerudo), - ROM_FILE(object_gi_arrow), - ROM_FILE(object_gi_bomb_2), - ROM_FILE(object_gi_egg), - ROM_FILE(object_gi_scale), - ROM_FILE(object_gi_shield_2), - ROM_FILE(object_gi_hookshot), - ROM_FILE(object_gi_ocarina), - ROM_FILE(object_gi_milk), - ROM_FILE(object_ma1), - ROM_FILE(object_ganon), - ROM_FILE(object_sst), - ROM_FILE_EMPTY(object_ny), // unused duplicate with size 0 - ROM_FILE_UNSET, - ROM_FILE(object_ny), - ROM_FILE(object_fr), - ROM_FILE(object_gi_pachinko), - ROM_FILE(object_gi_boomerang), - ROM_FILE(object_gi_bow), - ROM_FILE(object_gi_glasses), - ROM_FILE(object_gi_liquid), - ROM_FILE(object_ani), - ROM_FILE(object_demo_6k), - ROM_FILE(object_gi_shield_3), - ROM_FILE(object_gi_letter), - ROM_FILE(object_spot15_obj), - ROM_FILE(object_jya_obj), - ROM_FILE(object_gi_clothes), - ROM_FILE(object_gi_bean), - ROM_FILE(object_gi_fish), - ROM_FILE(object_gi_saw), - ROM_FILE(object_gi_hammer), - ROM_FILE(object_gi_grass), - ROM_FILE(object_gi_longsword), - ROM_FILE(object_spot01_objects), - ROM_FILE_EMPTY(object_md), // unused duplicate with size 0 - ROM_FILE(object_md), - ROM_FILE(object_km1), - ROM_FILE(object_kw1), - ROM_FILE(object_zo), - ROM_FILE(object_kz), - ROM_FILE(object_umajump), - ROM_FILE(object_masterkokiri), - ROM_FILE(object_masterkokirihead), - ROM_FILE(object_mastergolon), - ROM_FILE(object_masterzoora), - ROM_FILE(object_aob), - ROM_FILE(object_ik), - ROM_FILE(object_ahg), - ROM_FILE(object_cne), - ROM_FILE(object_gi_niwatori), - ROM_FILE(object_skj), - ROM_FILE(object_gi_bottle_letter), - ROM_FILE(object_bji), - ROM_FILE(object_bba), - ROM_FILE(object_gi_ocarina_0), - ROM_FILE(object_ds), - ROM_FILE(object_ane), - ROM_FILE(object_boj), - ROM_FILE(object_spot03_object), - ROM_FILE(object_spot07_object), - ROM_FILE(object_fz), - ROM_FILE(object_bob), - ROM_FILE(object_ge1), - ROM_FILE(object_yabusame_point), - ROM_FILE(object_gi_boots_2), - ROM_FILE(object_gi_seed), - ROM_FILE(object_gnd_magic), - ROM_FILE(object_d_elevator), - ROM_FILE(object_d_hsblock), - ROM_FILE(object_d_lift), - ROM_FILE(object_mamenoki), - ROM_FILE(object_goroiwa), - ROM_FILE_UNSET, - ROM_FILE(object_toryo), - ROM_FILE(object_daiku), - ROM_FILE_UNSET, - ROM_FILE(object_nwc), - ROM_FILE(object_blkobj), - ROM_FILE(object_gm), - ROM_FILE(object_ms), - ROM_FILE(object_hs), - ROM_FILE(object_ingate), - ROM_FILE(object_lightswitch), - ROM_FILE(object_kusa), - ROM_FILE(object_tsubo), - ROM_FILE(object_gi_gloves), - ROM_FILE(object_gi_coin), - ROM_FILE(object_kanban), - ROM_FILE(object_gjyo_objects), - ROM_FILE(object_owl), - ROM_FILE(object_mk), - ROM_FILE(object_fu), - ROM_FILE(object_gi_ki_tan_mask), - ROM_FILE(object_gi_redead_mask), - ROM_FILE(object_gi_skj_mask), - ROM_FILE(object_gi_rabit_mask), - ROM_FILE(object_gi_truth_mask), - ROM_FILE(object_ganon_objects), - ROM_FILE(object_siofuki), - ROM_FILE(object_stream), - ROM_FILE(object_mm), - ROM_FILE(object_fa), - ROM_FILE(object_os), - ROM_FILE(object_gi_eye_lotion), - ROM_FILE(object_gi_powder), - ROM_FILE(object_gi_mushroom), - ROM_FILE(object_gi_ticketstone), - ROM_FILE(object_gi_brokensword), - ROM_FILE(object_js), - ROM_FILE(object_cs), - ROM_FILE(object_gi_prescription), - ROM_FILE(object_gi_bracelet), - ROM_FILE(object_gi_soldout), - ROM_FILE(object_gi_frog), - ROM_FILE(object_mag), - ROM_FILE(object_door_gerudo), - ROM_FILE(object_gt), - ROM_FILE(object_efc_erupc), - ROM_FILE(object_zl2_anime1), - ROM_FILE(object_zl2_anime2), - ROM_FILE(object_gi_golonmask), - ROM_FILE(object_gi_zoramask), - ROM_FILE(object_gi_gerudomask), - ROM_FILE(object_ganon2), - ROM_FILE(object_ka), - ROM_FILE(object_ts), - ROM_FILE(object_zg), - ROM_FILE(object_gi_hoverboots), - ROM_FILE(object_gi_m_arrow), - ROM_FILE(object_ds2), - ROM_FILE(object_ec), - ROM_FILE(object_fish), - ROM_FILE(object_gi_sutaru), - ROM_FILE(object_gi_goddess), - ROM_FILE(object_ssh), - ROM_FILE(object_bigokuta), - ROM_FILE(object_bg), - ROM_FILE(object_spot05_objects), - ROM_FILE(object_spot12_obj), - ROM_FILE(object_bombiwa), - ROM_FILE(object_hintnuts), - ROM_FILE(object_rs), - ROM_FILE(object_spot00_break), - ROM_FILE(object_gla), - ROM_FILE(object_shopnuts), - ROM_FILE(object_geldb), - ROM_FILE(object_gr), - ROM_FILE(object_dog), - ROM_FILE(object_jya_iron), - ROM_FILE(object_jya_door), - ROM_FILE_UNSET, - ROM_FILE(object_spot11_obj), - ROM_FILE(object_kibako2), - ROM_FILE(object_dns), - ROM_FILE(object_dnk), - ROM_FILE(object_gi_fire), - ROM_FILE(object_gi_insect), - ROM_FILE(object_gi_butterfly), - ROM_FILE(object_gi_ghost), - ROM_FILE(object_gi_soul), - ROM_FILE(object_bowl), - ROM_FILE(object_demo_kekkai), - ROM_FILE(object_efc_doughnut), - ROM_FILE(object_gi_dekupouch), - ROM_FILE(object_ganon_anime1), - ROM_FILE(object_ganon_anime2), - ROM_FILE(object_ganon_anime3), - ROM_FILE(object_gi_rupy), - ROM_FILE(object_spot01_matoya), - ROM_FILE(object_spot01_matoyab), - ROM_FILE(object_mu), - ROM_FILE(object_wf), - ROM_FILE(object_skb), - ROM_FILE(object_gj), - ROM_FILE(object_geff), - ROM_FILE(object_haka_door), - ROM_FILE(object_gs), - ROM_FILE(object_ps), - ROM_FILE(object_bwall), - ROM_FILE(object_cow), - ROM_FILE(object_cob), - ROM_FILE(object_gi_sword_1), - ROM_FILE(object_door_killer), - ROM_FILE(object_ouke_haka), - ROM_FILE(object_timeblock), - ROM_FILE(object_zl4), +#include "tables/object_table.h" }; + +#undef DEFINE_OBJECT +#undef DEFINE_OBJECT_NULL +#undef DEFINE_OBJECT_UNSET diff --git a/tools/ZAPDConfigs/MqDbg/ObjectList_OoTMqDbg.txt b/tools/ZAPDConfigs/MqDbg/ObjectList_OoTMqDbg.txt index e5ba0331b5..1ecc3441bb 100644 --- a/tools/ZAPDConfigs/MqDbg/ObjectList_OoTMqDbg.txt +++ b/tools/ZAPDConfigs/MqDbg/ObjectList_OoTMqDbg.txt @@ -1,4 +1,4 @@ -OBJECT_UNSET_0 +OBJECT_INVALID OBJECT_GAMEPLAY_KEEP OBJECT_GAMEPLAY_FIELD_KEEP OBJECT_GAMEPLAY_DANGEON_KEEP From f8498478c466a0a8ceb9650427cf37e3c3bf4a0b Mon Sep 17 00:00:00 2001 From: Revo Date: Mon, 30 Aug 2021 12:29:12 -0400 Subject: [PATCH 6/6] fix UB in DemoSa_FrameUpdateMatrix. (#933) --- src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c b/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c index 3cf3fc578d..e605c10ec0 100644 --- a/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c +++ b/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c @@ -156,7 +156,7 @@ void func_8098E5C8(DemoSa* this, GlobalContext* globalCtx) { } s32 DemoSa_FrameUpdateMatrix(DemoSa* this) { - SkelAnime_Update(&this->skelAnime); + return SkelAnime_Update(&this->skelAnime); } CsCmdActorAction* DemoSa_GetNpcAction(GlobalContext* globalCtx, s32 idx) {