mirror of
https://github.com/zeldaret/mm.git
synced 2026-08-08 02:30:14 -04:00
Merge remote-tracking branch 'origin/master' into z_en_box
This commit is contained in:
@@ -14,6 +14,7 @@ tags
|
||||
|
||||
# Project-specific ignores
|
||||
*.z64
|
||||
*.sra
|
||||
*.bin
|
||||
*.elf
|
||||
archive/
|
||||
|
||||
Vendored
+6
@@ -14,6 +14,12 @@ pipeline {
|
||||
sh 'bash -c "tools/check_format.sh 2>&1 >(tee tools/check_format.txt)"'
|
||||
}
|
||||
}
|
||||
stage('Check relocs') {
|
||||
steps {
|
||||
echo 'Checking relocs on spec...'
|
||||
sh 'bash -c "tools/reloc_spec_check.sh"'
|
||||
}
|
||||
}
|
||||
stage('Copy ROM') {
|
||||
steps {
|
||||
echo 'Setting up ROM...'
|
||||
|
||||
@@ -21,8 +21,9 @@ ifeq ($(NON_MATCHING),1)
|
||||
COMPARE := 0
|
||||
endif
|
||||
|
||||
DISASM_FLAGS := --reg-names=o32
|
||||
ifneq ($(FULL_DISASM), 0)
|
||||
DISASM_FLAGS += --full
|
||||
DISASM_FLAGS += --all
|
||||
endif
|
||||
|
||||
PROJECT_DIR := $(dir $(realpath $(firstword $(MAKEFILE_LIST))))
|
||||
@@ -72,6 +73,9 @@ AS := $(MIPS_BINUTILS_PREFIX)as
|
||||
LD := $(MIPS_BINUTILS_PREFIX)ld
|
||||
OBJCOPY := $(MIPS_BINUTILS_PREFIX)objcopy
|
||||
OBJDUMP := $(MIPS_BINUTILS_PREFIX)objdump
|
||||
ASM_PROC := python3 tools/asm-processor/build.py
|
||||
|
||||
ASM_PROC_FLAGS := --input-enc=utf-8 --output-enc=euc-jp
|
||||
|
||||
IINC := -Iinclude -Isrc -Iassets -Ibuild -I.
|
||||
|
||||
@@ -96,7 +100,10 @@ ASFLAGS := -march=vr4300 -32 -Iinclude
|
||||
MIPS_VERSION := -mips2
|
||||
|
||||
# we support Microsoft extensions such as anonymous structs, which the compiler does support but warns for their usage. Surpress the warnings with -woff.
|
||||
CFLAGS += -G 0 -non_shared -Xfullwarn -Xcpluscomm $(IINC) -nostdinc -Wab,-r4300_mul -woff 624,649,838,712
|
||||
CFLAGS += -G 0 -non_shared -fullwarn -verbose -Xcpluscomm $(IINC) -nostdinc -Wab,-r4300_mul -woff 624,649,838,712,516
|
||||
|
||||
# Use relocations and abi fpr names in the dump
|
||||
OBJDUMP_FLAGS := -d -r -z -Mreg-names=32
|
||||
|
||||
ifeq ($(shell getconf LONG_BIT), 32)
|
||||
# Work around memory allocation bug in QEMU
|
||||
@@ -177,6 +184,7 @@ build/src/libultra/flash/%.o: MIPS_VERSION := -mips1
|
||||
build/src/code/audio/%.o: OPTFLAGS := -O2
|
||||
|
||||
build/assets/%.o: OPTFLAGS := -O1
|
||||
build/assets/%.o: ASM_PROC_FLAGS :=
|
||||
|
||||
# file flags
|
||||
build/src/boot_O2_g3/fault.o: CFLAGS += -trapuv
|
||||
@@ -193,21 +201,19 @@ build/src/libultra/libc/llcvt.o: OPTFLAGS := -O1
|
||||
build/src/libultra/libc/llcvt.o: MIPS_VERSION := -mips3 -32
|
||||
|
||||
# cc & asm-processor
|
||||
build/src/boot_O2/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
build/src/boot_O2_g3/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
build/src/boot_O2/%.o: CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(CC) -- $(AS) $(ASFLAGS) --
|
||||
build/src/boot_O2_g3/%.o: CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(CC) -- $(AS) $(ASFLAGS) --
|
||||
|
||||
build/src/libultra/%.o: CC := python3 tools/asm-processor/build.py $(CC_OLD) -- $(AS) $(ASFLAGS) --
|
||||
build/src/libultra/%.o: CC := $(CC_OLD)
|
||||
# Needed at least until voice is decompiled
|
||||
build/src/libultra/voice/%.o: CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(CC_OLD) -- $(AS) $(ASFLAGS) --
|
||||
|
||||
build/src/code/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
build/src/code/audio/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
build/src/code/%.o: CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(CC) -- $(AS) $(ASFLAGS) --
|
||||
build/src/code/audio/%.o: CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(CC) -- $(AS) $(ASFLAGS) --
|
||||
|
||||
build/src/overlays/actors/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
build/src/overlays/effects/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
build/src/overlays/fbdemos/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
build/src/overlays/gamestates/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
build/src/overlays/kaleido_scope/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
build/src/overlays/%.o: CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(CC) -- $(AS) $(ASFLAGS) --
|
||||
|
||||
build/assets/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
build/assets/%.o: CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(CC) -- $(AS) $(ASFLAGS) --
|
||||
|
||||
#### Main Targets ###
|
||||
|
||||
@@ -302,7 +308,7 @@ build/data/%.o: data/%.s
|
||||
build/src/overlays/%.o: src/overlays/%.c
|
||||
$(CC_CHECK) $<
|
||||
$(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $<
|
||||
@$(OBJDUMP) -d $@ > $(@:.o=.s)
|
||||
@$(OBJDUMP) $(OBJDUMP_FLAGS) $@ > $(@:.o=.s)
|
||||
# TODO: `() || true` is currently necessary to suppress `Error 1 (ignored)` make warnings caused by `test`, but this will go away if
|
||||
# the following is moved to a separate rule that is only run once when all the required objects have been compiled.
|
||||
$(ZAPD) bovl -eh -i $@ -cfg $< --outputpath $(@D)/$(notdir $(@D))_reloc.s
|
||||
@@ -312,21 +318,21 @@ build/src/overlays/%.o: src/overlays/%.c
|
||||
build/src/%.o: src/%.c
|
||||
$(CC_CHECK) $<
|
||||
$(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $<
|
||||
@$(OBJDUMP) -d $@ > $(@:.o=.s)
|
||||
@$(OBJDUMP) $(OBJDUMP_FLAGS) $@ > $(@:.o=.s)
|
||||
$(RM_MDEBUG)
|
||||
|
||||
build/src/libultra/libc/ll.o: src/libultra/libc/ll.c
|
||||
$(CC_CHECK) $<
|
||||
$(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $<
|
||||
python3 tools/set_o32abi_bit.py $@
|
||||
@$(OBJDUMP) -d $@ > $(@:.o=.s)
|
||||
@$(OBJDUMP) $(OBJDUMP_FLAGS) $@ > $(@:.o=.s)
|
||||
$(RM_MDEBUG)
|
||||
|
||||
build/src/libultra/libc/llcvt.o: src/libultra/libc/llcvt.c
|
||||
$(CC_CHECK) $<
|
||||
$(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $<
|
||||
python3 tools/set_o32abi_bit.py $@
|
||||
@$(OBJDUMP) -d $@ > $(@:.o=.s)
|
||||
@$(OBJDUMP) $(OBJDUMP_FLAGS) $@ > $(@:.o=.s)
|
||||
$(RM_MDEBUG)
|
||||
|
||||
# Build C files from assets
|
||||
|
||||
@@ -50,7 +50,7 @@ We recommend using Debian or Ubuntu 20.04 Linux distributions.
|
||||
|
||||
### MacOS
|
||||
|
||||
Preparation is covered in a [separate document](docsBUILDING_MACOS.md).
|
||||
Preparation is covered in a [separate document](docs/BUILDING_MACOS.md).
|
||||
|
||||
|
||||
### Linux (Native or under WSL / VM)
|
||||
@@ -74,13 +74,7 @@ sudo apt update
|
||||
sudo apt install make git build-essential binutils-mips-linux-gnu python3 python3-pip libpng-dev
|
||||
```
|
||||
|
||||
To install the Python dependencies simply run in a terminal:
|
||||
|
||||
```bash
|
||||
python3 -m pip install -r requirements.txt
|
||||
```
|
||||
|
||||
#### 2. Fork the repository
|
||||
#### 2. Clone the repository
|
||||
|
||||
Create your own fork of the repository at `https://github.com/zeldaret/mm`. Then clone your fork where you wish to have the project, with the command:
|
||||
|
||||
@@ -88,11 +82,27 @@ Create your own fork of the repository at `https://github.com/zeldaret/mm`. Then
|
||||
git clone https://github.com/<YOUR_USERNAME>/mm.git
|
||||
```
|
||||
|
||||
#### 3. Prepare a base ROM
|
||||
This will copy the GitHub repository contents into a new folder in the current directory called `mm`. Change into this directory before doing anything else:
|
||||
|
||||
```bash
|
||||
cd mm
|
||||
```
|
||||
|
||||
#### 3. Install python dependencies
|
||||
|
||||
The build process has a few python packages required that are located in `requirements.txt`.
|
||||
|
||||
To install them simply run in a terminal:
|
||||
|
||||
```bash
|
||||
python3 -m pip install -r requirements.txt
|
||||
```
|
||||
|
||||
#### 4. Prepare a base ROM
|
||||
|
||||
Copy your ROM to inside the root of this new project directory, and rename the file of the baserom to reflect the version of ROM you are using. ex: `baserom.mm.us.rev1.z64`
|
||||
|
||||
#### 4. Make and Build the ROM
|
||||
#### 5. Make and Build the ROM
|
||||
|
||||
To start the extraction/build process, run the following command:
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<Root>
|
||||
<File Name="code" OutName="sub_s" BaseAddress="0x800A5AC0" RangeStart="0x120260" RangeEnd="0x1202F0" >
|
||||
<DList Name="gShadowDL" Offset="0x1202A0"/>
|
||||
<DList Name="gShadowVtxDL" Offset="0x1202C0"/>
|
||||
</File>
|
||||
</Root>
|
||||
@@ -0,0 +1,57 @@
|
||||
<Root>
|
||||
<File Name="do_action_static" Segment="9">
|
||||
<Texture Name="gDoActionAttackENGTex" OutName="attack_eng" Format="ia4" Width="48" Height="16" Offset="0x0"/>
|
||||
<Texture Name="gDoActionCheckENGTex" OutName="check_eng" Format="ia4" Width="48" Height="16" Offset="0x180"/>
|
||||
<Texture Name="gDoActionEnterENGTex" OutName="enter_eng" Format="ia4" Width="48" Height="16" Offset="0x300"/>
|
||||
<Texture Name="gDoActionReturnENGTex" OutName="return_eng" Format="ia4" Width="48" Height="16" Offset="0x480"/>
|
||||
<Texture Name="gDoActionOpenENGTex" OutName="open_eng" Format="ia4" Width="48" Height="16" Offset="0x600"/>
|
||||
<Texture Name="gDoActionJumpENGTex" OutName="jump_eng" Format="ia4" Width="48" Height="16" Offset="0x780"/>
|
||||
<Texture Name="gDoActionDecideENGTex" OutName="decide_eng" Format="ia4" Width="48" Height="16" Offset="0x900"/>
|
||||
<Texture Name="gDoActionDiveENGTex" OutName="dive_eng" Format="ia4" Width="48" Height="16" Offset="0xA80"/>
|
||||
<Texture Name="gDoActionFasterENGTex" OutName="faster_eng" Format="ia4" Width="48" Height="16" Offset="0xC00"/>
|
||||
<Texture Name="gDoActionThrowENGTex" OutName="throw_eng" Format="ia4" Width="48" Height="16" Offset="0xD80"/>
|
||||
|
||||
<!-- Unused and left untranslated from Japanese -->
|
||||
<Texture Name="gDoActionNaviENGTex" OutName="navi_eng" Format="ia4" Width="48" Height="16" Offset="0xF00"/>
|
||||
|
||||
<Texture Name="gDoActionClimbENGTex" OutName="climb_eng" Format="ia4" Width="48" Height="16" Offset="0x1080"/>
|
||||
<Texture Name="gDoActionDropENGTex" OutName="drop_eng" Format="ia4" Width="48" Height="16" Offset="0x1200"/>
|
||||
<Texture Name="gDoActionDownENGTex" OutName="down_eng" Format="ia4" Width="48" Height="16" Offset="0x1380"/>
|
||||
<Texture Name="gDoActionQuitENGTex" OutName="quit_eng" Format="ia4" Width="48" Height="16" Offset="0x1500"/>
|
||||
<Texture Name="gDoActionSpeakENGTex" OutName="speak_eng" Format="ia4" Width="48" Height="16" Offset="0x1680"/>
|
||||
<Texture Name="gDoActionNextENGTex" OutName="next_eng" Format="ia4" Width="48" Height="16" Offset="0x1800"/>
|
||||
<Texture Name="gDoActionGrabENGTex" OutName="grab_eng" Format="ia4" Width="48" Height="16" Offset="0x1980"/>
|
||||
<Texture Name="gDoActionStopENGTex" OutName="stop_eng" Format="ia4" Width="48" Height="16" Offset="0x1B00"/>
|
||||
<Texture Name="gDoActionPutAwayENGTex" OutName="put_away_eng" Format="ia4" Width="48" Height="16" Offset="0x1C80"/>
|
||||
|
||||
<!-- Unused and left untranslated from Japanese -->
|
||||
<Texture Name="gDoActionReelENGTex" OutName="reel_eng" Format="ia4" Width="48" Height="16" Offset="0x1E00"/>
|
||||
|
||||
<Texture Name="gDoActionInfoENGTex" OutName="info_eng" Format="ia4" Width="48" Height="16" Offset="0x1F80"/>
|
||||
<Texture Name="gDoActionWarpENGTex" OutName="warp_eng" Format="ia4" Width="48" Height="16" Offset="0x2100"/>
|
||||
<Texture Name="gDoActionSnapENGTex" OutName="snap_eng" Format="ia4" Width="48" Height="16" Offset="0x2280"/>
|
||||
<Texture Name="gDoActionExplodeENGTex" OutName="explode_eng" Format="ia4" Width="48" Height="16" Offset="0x2400"/>
|
||||
<Texture Name="gDoActionDanceENGTex" OutName="dance_eng" Format="ia4" Width="48" Height="16" Offset="0x2580"/>
|
||||
<Texture Name="gDoActionMarchENGTex" OutName="march_eng" Format="ia4" Width="48" Height="16" Offset="0x2700"/>
|
||||
|
||||
<Texture Name="gDoActionNum1ENGTex" OutName="num_1_eng" Format="ia4" Width="48" Height="16" Offset="0x2880"/>
|
||||
<Texture Name="gDoActionNum2ENGTex" OutName="num_2_eng" Format="ia4" Width="48" Height="16" Offset="0x2A00"/>
|
||||
<Texture Name="gDoActionNum3ENGTex" OutName="num_3_eng" Format="ia4" Width="48" Height="16" Offset="0x2B80"/>
|
||||
<Texture Name="gDoActionNum4ENGTex" OutName="num_4_eng" Format="ia4" Width="48" Height="16" Offset="0x2D00"/>
|
||||
<Texture Name="gDoActionNum5ENGTex" OutName="num_5_eng" Format="ia4" Width="48" Height="16" Offset="0x2E80"/>
|
||||
<Texture Name="gDoActionNum6ENGTex" OutName="num_6_eng" Format="ia4" Width="48" Height="16" Offset="0x3000"/>
|
||||
<Texture Name="gDoActionNum7ENGTex" OutName="num_7_eng" Format="ia4" Width="48" Height="16" Offset="0x3180"/>
|
||||
<Texture Name="gDoActionNum8ENGTex" OutName="num_8_eng" Format="ia4" Width="48" Height="16" Offset="0x3300"/>
|
||||
|
||||
<Texture Name="gDoActionCurlENGTex" OutName="curl_eng" Format="ia4" Width="48" Height="16" Offset="0x3480"/>
|
||||
<Texture Name="gDoActionSurfaceENGTex" OutName="surface_eng" Format="ia4" Width="48" Height="16" Offset="0x3600"/>
|
||||
<Texture Name="gDoActionSwimENGTex" OutName="swim_eng" Format="ia4" Width="48" Height="16" Offset="0x3780"/>
|
||||
<Texture Name="gDoActionPunchENGTex" OutName="punch_eng" Format="ia4" Width="48" Height="16" Offset="0x3900"/>
|
||||
<Texture Name="gDoActionPoundENGTex" OutName="pound_eng" Format="ia4" Width="48" Height="16" Offset="0x3A80"/>
|
||||
|
||||
<!-- Unused and left untranslated from Japanese -->
|
||||
<Texture Name="gDoActionHookENGTex" OutName="hook_eng" Format="ia4" Width="48" Height="16" Offset="0x3C00"/>
|
||||
|
||||
<Texture Name="gDoActionShootENGTex" OutName="shoot_eng" Format="ia4" Width="48" Height="16" Offset="0x3D80"/>
|
||||
</File>
|
||||
</Root>
|
||||
@@ -1,5 +1,5 @@
|
||||
<Root>
|
||||
<File Name="week_static">
|
||||
<File Name="week_static" Segment="9">
|
||||
<Texture Name="gClockDay1stTex" OutName="clock_day_1st_tex" Format="i8" Width="48" Height="27" Offset="0x0"/>
|
||||
<Texture Name="gClockDay2ndTex" OutName="clock_day_2nd_tex" Format="i8" Width="48" Height="27" Offset="0x510"/>
|
||||
<Texture Name="gClockDayFinalTex" OutName="clock_day_final_tex" Format="i8" Width="48" Height="27" Offset="0xA20"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<Root>
|
||||
<File Name="story_static">
|
||||
<File Name="story_static" Segment="7">
|
||||
<Texture Name="gStoryMaskFestivalTex" OutName="story_mask_festival" Format="ci8" Width="320" Height="240" TlutOffset="0x25800" Offset="0x0"/>
|
||||
<Texture Name="gStoryGiantsLeavingTex" OutName="story_giants_leaving" Format="ci8" Width="320" Height="240" TlutOffset="0x25A00" Offset="0x12C00"/>
|
||||
<Texture Name="gStoryMaskFestivalTLUT" OutName="story_mask_festival_tlut" Format="rgba16" Width="16" Height="16" Offset="0x25800"/>
|
||||
|
||||
@@ -14,20 +14,20 @@
|
||||
<DList Name="gameplay_dangeon_keep_DL_007A50" Offset="0x7A50" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_007B20" Offset="0x7B20" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_007BF0" Offset="0x7BF0" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_007E00" Offset="0x7E00" />
|
||||
<Collision Name="gameplay_dangeon_keep_Colheader_008018" Offset="0x8018" />
|
||||
<DList Name="gRustyFloorSwitchDL" Offset="0x7E00" />
|
||||
<Collision Name="gFloorSwitchCol" Offset="0x8018" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_0081D0" Offset="0x81D0" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_0083F0" Offset="0x83F0" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_0085F0" Offset="0x85F0" />
|
||||
<DList Name="gEyeSwitchGoldDL" Offset="0x83F0" />
|
||||
<DList Name="gEyeSwitchSilverDL" Offset="0x85F0" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_0086C0" OutName="tex_0086C0" Format="rgba16" Width="32" Height="32" Offset="0x86C0" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_008EC0" OutName="tex_008EC0" Format="rgba16" Width="32" Height="32" Offset="0x8EC0" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_0096C0" OutName="tex_0096C0" Format="rgba16" Width="32" Height="32" Offset="0x96C0" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_009EC0" OutName="tex_009EC0" Format="rgba16" Width="32" Height="32" Offset="0x9EC0" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_00A6C0" OutName="tex_00A6C0" Format="rgba16" Width="32" Height="32" Offset="0xA6C0" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_00AEC0" OutName="tex_00AEC0" Format="rgba16" Width="32" Height="32" Offset="0xAEC0" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_00B6C0" OutName="tex_00B6C0" Format="rgba16" Width="32" Height="32" Offset="0xB6C0" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_00BEC0" OutName="tex_00BEC0" Format="rgba16" Width="32" Height="32" Offset="0xBEC0" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_00C6C0" OutName="tex_00C6C0" Format="rgba16" Width="32" Height="32" Offset="0xC6C0" />
|
||||
<Texture Name="gEyeSwitchGoldClosedTex" OutName="eye_gold_closed" Format="rgba16" Width="32" Height="32" Offset="0x96C0" />
|
||||
<Texture Name="gEyeSwitchGoldOpeningTex" OutName="eye_gold_opening" Format="rgba16" Width="32" Height="32" Offset="0x9EC0" />
|
||||
<Texture Name="gEyeSwitchGoldClosingTex" OutName="eye_gold_closing" Format="rgba16" Width="32" Height="32" Offset="0xA6C0" />
|
||||
<Texture Name="gEyeSwitchGoldOpenTex" OutName="eye_gold_open" Format="rgba16" Width="32" Height="32" Offset="0xAEC0" />
|
||||
<Texture Name="gEyeSwitchSilverOpenTex" OutName="eye_silver_open" Format="rgba16" Width="32" Height="32" Offset="0xB6C0" />
|
||||
<Texture Name="gEyeSwitchSilverHalfTex" OutName="eye_silver_half" Format="rgba16" Width="32" Height="32" Offset="0xBEC0" />
|
||||
<Texture Name="gEyeSwitchSilverClosedTex" OutName="eye_silver_closed" Format="rgba16" Width="32" Height="32" Offset="0xC6C0" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_00CEC0" OutName="tex_00CEC0" Format="rgba16" Width="32" Height="32" Offset="0xCEC0" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_00D6C0" OutName="tex_00D6C0" Format="rgba16" Width="32" Height="32" Offset="0xD6C0" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_00DEC0" OutName="tex_00DEC0" Format="rgba16" Width="32" Height="32" Offset="0xDEC0" />
|
||||
@@ -59,15 +59,15 @@
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_01A350" OutName="tex_01A350" Format="i8" Width="64" Height="64" Offset="0x1A350" />
|
||||
<TextureAnimation Name="gameplay_dangeon_keep_Matanimheader_01B370" Offset="0x1B370" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_01B500" Offset="0x1B500" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_01B508" Offset="0x1B508" />
|
||||
<DList Name="gFloorSwitch1DL" Offset="0x1B508" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_01B780" Offset="0x1B780" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_01B788" Offset="0x1B788" />
|
||||
<DList Name="gFloorSwitch2DL" Offset="0x1B788" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_01B9F0" Offset="0x1B9F0" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_01B9F8" Offset="0x1B9F8" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_01BEE0" Offset="0x1BEE0" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_01BFB8" Offset="0x1BFB8" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_01C058" Offset="0x1C058" />
|
||||
<TextureAnimation Name="gameplay_dangeon_keep_Matanimheader_01C118" Offset="0x1C118" />
|
||||
<DList Name="gFloorSwitch3DL" Offset="0x1B9F8" />
|
||||
<DList Name="gCrystalSwitchCoreDL" Offset="0x1BEE0" />
|
||||
<DList Name="gCrystalSwitchDiamondDL" Offset="0x1BFB8" />
|
||||
<DList Name="gCrystalSwitchBaseDL" Offset="0x1C058" />
|
||||
<TextureAnimation Name="gCrystalSwitchAnimatedMat" Offset="0x1C118" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_01C220" Offset="0x1C220" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_01C228" Offset="0x1C228" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_01C2D8" OutName="tex_01C2D8" Format="rgba16" Width="32" Height="64" Offset="0x1C2D8" />
|
||||
@@ -75,15 +75,19 @@
|
||||
<DList Name="gameplay_dangeon_keep_DL_01D980" Offset="0x1D980" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_01DC70" OutName="tex_01DC70" Format="rgba16" Width="32" Height="32" Offset="0x1DC70" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_01E470" OutName="tex_01E470" Format="rgba16" Width="32" Height="32" Offset="0x1E470" />
|
||||
<!-- snowhead(?) floor changing stone staircase stone textures -->
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_01EC70" OutName="tex_01EC70" Format="rgba16" Width="32" Height="32" Offset="0x1EC70" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_01F470" OutName="tex_01F470" Format="i4" Width="64" Height="64" Offset="0x1F470" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_01FC70" OutName="tex_01FC70" Format="i4" Width="64" Height="64" Offset="0x1FC70" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_020470" OutName="tex_020470" Format="i4" Width="64" Height="64" Offset="0x20470" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_020C70" OutName="tex_020C70" Format="i4" Width="64" Height="64" Offset="0x20C70" />
|
||||
<!-- snowhead(?) floor changing stone staircase -->
|
||||
<DList Name="gameplay_dangeon_keep_DL_0219E0" Offset="0x219E0" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_021EF0" Offset="0x21EF0" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_021FF8" OutName="tex_021FF8" Format="rgba32" Width="32" Height="32" Offset="0x21FF8" />
|
||||
<TextureAnimation Name="gameplay_dangeon_keep_Matanimheader_023008" Offset="0x23008" />
|
||||
<Collision Name="gameplay_dangeon_keep_Colheader_02324C" Offset="0x2324C" />
|
||||
|
||||
<!-- En_Warp_tag assets -->
|
||||
<DList Name="gWarpTagGoronTrialBaseDL" Offset="0x21EF0" />
|
||||
<Texture Name="gWarpTagRainbowTex" OutName="warptag_rainbow" Format="rgba32" Width="32" Height="32" Offset="0x21FF8" />
|
||||
<TextureAnimation Name="gWarpTagRainbowAnimMat" Offset="0x23008" />
|
||||
<Collision Name="gWarpTagGoronTrialBaseCollider" Offset="0x2324C" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -40,8 +40,8 @@
|
||||
<DList Name="gameplay_field_keep_DL_006760" Offset="0x6760" />
|
||||
<Texture Name="gameplay_field_keep_Tex_006810" OutName="tex_006810" Format="rgba16" Width="32" Height="32" Offset="0x6810" />
|
||||
<Texture Name="gameplay_field_keep_Tex_007010" OutName="tex_007010" Format="rgba16" Width="32" Height="32" Offset="0x7010" />
|
||||
<DList Name="gameplay_field_keep_DL_0078A0" Offset="0x78A0" />
|
||||
<DList Name="gameplay_field_keep_DL_007938" Offset="0x7938" />
|
||||
<DList Name="gKusaBushType1" Offset="0x78A0" />
|
||||
<DList Name="gKusaBushType2" Offset="0x7938" />
|
||||
<Texture Name="gameplay_field_keep_Tex_0079D0" OutName="tex_0079D0" Format="i8" Width="64" Height="32" Offset="0x79D0" />
|
||||
<Texture Name="gameplay_field_keep_Tex_0081D0" OutName="tex_0081D0" Format="ia8" Width="64" Height="32" Offset="0x81D0" />
|
||||
<DList Name="gameplay_field_keep_DL_0089D0" Offset="0x89D0" />
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<Texture Name="gameplay_keep_Tex_002E08" OutName="tex_002E08" Format="rgba16" Width="16" Height="16" Offset="0x2E08" />
|
||||
<Texture Name="gameplay_keep_Tex_003008" OutName="tex_003008" Format="i8" Width="8" Height="8" Offset="0x3008" />
|
||||
<Blob Name="gameplay_keep_Blob_003050" Size="0x20" Offset="0x3050" />
|
||||
<DList Name="gameplay_keep_DL_0032B0" Offset="0x32B0" />
|
||||
<DList Name="gDekuStickDL" Offset="0x32B0" />
|
||||
<Blob Name="gameplay_keep_Blob_003400" Size="0x9D0" Offset="0x3400" />
|
||||
<DList Name="gameplay_keep_DL_005360" Offset="0x5360" />
|
||||
<DList Name="gameplay_keep_DL_0056C0" Offset="0x56C0" />
|
||||
@@ -68,7 +68,7 @@
|
||||
<Texture Name="gameplay_keep_Tex_00C7B0" OutName="tex_00C7B0" Format="rgba16" Width="8" Height="8" Offset="0xC7B0" />
|
||||
<Texture Name="gameplay_keep_Tex_00C830" OutName="tex_00C830" Format="rgba16" Width="16" Height="16" Offset="0xC830" />
|
||||
<Texture Name="gameplay_keep_Tex_00CA30" OutName="tex_00CA30" Format="rgba16" Width="16" Height="16" Offset="0xCA30" />
|
||||
<Texture Name="gameplay_keep_Tex_00CC30" OutName="tex_00CC30" Format="i8" Width="16" Height="16" Offset="0xCC30" />
|
||||
<Texture Name="gDekuStickTex" OutName="tex_00CC30" Format="i8" Width="16" Height="16" Offset="0xCC30" />
|
||||
<Blob Name="gameplay_keep_Blob_00CD30" Size="0x210" Offset="0xCD30" />
|
||||
<PlayerAnimation Name="gameplay_keep_Linkanim_00CF40" Offset="0xCF40" />
|
||||
<PlayerAnimation Name="gameplay_keep_Linkanim_00CF48" Offset="0xCF48" />
|
||||
@@ -838,8 +838,11 @@
|
||||
<DList Name="gameplay_keep_DL_015DB0" Offset="0x15DB0" />
|
||||
<Texture Name="gameplay_keep_Tex_015E40" OutName="tex_015E40" Format="rgba16" Width="8" Height="8" Offset="0x15E40" />
|
||||
<DList Name="gameplay_keep_DL_015FA0" Offset="0x15FA0" />
|
||||
<Texture Name="gameplay_keep_Tex_016060" OutName="tex_016060" Format="rgba16" Width="8" Height="8" Offset="0x16060" />
|
||||
<DList Name="gameplay_keep_DL_016360" Offset="0x16360" />
|
||||
|
||||
<!-- Bombchu -->
|
||||
<Texture Name="gBombchuBodyTex" OutName="bombchu_body" Format="rgba16" Width="8" Height="8" Offset="0x16060" />
|
||||
<DList Name="gBombchuDL" Offset="0x16360" />
|
||||
|
||||
<Texture Name="gameplay_keep_Tex_0164D0" OutName="tex_0164D0" Format="ia16" Width="32" Height="32" Offset="0x164D0" />
|
||||
<Texture Name="gameplay_keep_Tex_016CD0" OutName="tex_016CD0" Format="ia16" Width="32" Height="32" Offset="0x16CD0" />
|
||||
<Texture Name="gameplay_keep_Tex_0174D0" OutName="tex_0174D0" Format="ia16" Width="32" Height="32" Offset="0x174D0" />
|
||||
@@ -870,9 +873,9 @@
|
||||
<Texture Name="gameplay_keep_Tex_01F200" OutName="tex_01F200" Format="i8" Width="8" Height="8" Offset="0x1F200" />
|
||||
<DList Name="gameplay_keep_DL_01F300" Offset="0x1F300" />
|
||||
<Texture Name="gameplay_keep_Tex_01F340" OutName="tex_01F340" Format="ia8" Width="32" Height="32" Offset="0x1F340" />
|
||||
<Texture Name="gameplay_keep_Tex_01F740" OutName="tex_01F740" Format="ia4" Width="16" Height="16" Offset="0x1F740" />
|
||||
<Texture Name="gameplay_keep_Tex_01F7C0" OutName="tex_01F7C0" Format="ia8" Width="16" Height="16" Offset="0x1F7C0" />
|
||||
<Texture Name="gameplay_keep_Tex_01F8C0" OutName="tex_01F8C0" Format="ia8" Width="16" Height="24" Offset="0x1F8C0" />
|
||||
<Texture Name="gSelectionCursorTex" OutName="selection_cursor" Format="ia4" Width="16" Height="16" Offset="0x1F740" />
|
||||
<Texture Name="gControlStickTex" OutName="control_stick" Format="ia8" Width="16" Height="16" Offset="0x1F7C0" />
|
||||
<Texture Name="gArrowCursorTex" OutName="arrow_cursor" Format="ia8" Width="16" Height="24" Offset="0x1F8C0" />
|
||||
|
||||
<!-- Boulder Fragments -->
|
||||
<DList Name="gBoulderFragmentsDL" Offset="0x1FA40" />
|
||||
@@ -903,12 +906,12 @@
|
||||
<DList Name="gameplay_keep_DL_023130" Offset="0x23130" />
|
||||
<DList Name="gOwlStatueWhiteFlashDL" Offset="0x23210" />
|
||||
<DList Name="gameplay_keep_DL_023288" Offset="0x23288" />
|
||||
<DList Name="gameplay_keep_DL_023348" Offset="0x23348" />
|
||||
<DList Name="gameplay_keep_DL_0233B8" Offset="0x233B8" />
|
||||
<DList Name="gameplay_keep_DL_023428" Offset="0x23428" />
|
||||
<DList Name="gameplay_keep_DL_023480" Offset="0x23480" />
|
||||
<DList Name="gameplay_keep_DL_0234F0" Offset="0x234F0" />
|
||||
<Texture Name="gameplay_keep_Tex_023508" OutName="tex_023508" Format="i8" Width="64" Height="64" Offset="0x23508" />
|
||||
<DList Name="gLightOrb1DL" Offset="0x23348" />
|
||||
<DList Name="gLightOrb2DL" Offset="0x233B8" />
|
||||
<DList Name="gLightOrbVtxDL" Offset="0x23428" />
|
||||
<DList Name="gElectricSparkDL" Offset="0x23480" />
|
||||
<DList Name="gElectricSparkVtxDL" Offset="0x234F0" />
|
||||
<Texture Name="gLightOrbTex" OutName="light_orb" Format="i8" Width="64" Height="64" Offset="0x23508" />
|
||||
<Texture Name="gameplay_keep_Tex_024510" OutName="tex_024510" Format="i8" Width="64" Height="32" Offset="0x24510" />
|
||||
<Texture Name="gameplay_keep_Tex_024D10" OutName="tex_024D10" Format="i8" Width="64" Height="32" Offset="0x24D10" />
|
||||
<DList Name="gameplay_keep_DL_025850" Offset="0x25850" />
|
||||
@@ -1000,7 +1003,7 @@
|
||||
<Animation Name="gameplay_keep_Anim_02F0EC" Offset="0x2F0EC" />
|
||||
<Texture Name="gameplay_keep_Tex_02F100" OutName="tex_02F100" Format="i8" Width="64" Height="64" Offset="0x2F100" />
|
||||
<DList Name="gameplay_keep_DL_030100" Offset="0x30100" /> <!-- Floor shockwave ring -->
|
||||
<DList Name="gameplay_keep_DL_0301B0" Offset="0x301B0" />
|
||||
<DList Name="gEffBubbleDL" Offset="0x301B0" />
|
||||
<Texture Name="gameplay_keep_Tex_030270" OutName="tex_030270" Format="ia8" Width="32" Height="32" Offset="0x30270" />
|
||||
<Texture Name="gameplay_keep_Tex_030670" OutName="tex_030670" Format="ia8" Width="32" Height="32" Offset="0x30670" />
|
||||
<Texture Name="gameplay_keep_Tex_030A70" OutName="tex_030A70" Format="ia8" Width="32" Height="32" Offset="0x30A70" />
|
||||
@@ -1050,15 +1053,15 @@
|
||||
<Texture Name="gExplosionSplashTex7" OutName="tex_0396F0" Format="i8" Width="32" Height="40" Offset="0x396F0" />
|
||||
<Texture Name="gExplosionSplashTex8" OutName="tex_039BF0" Format="i8" Width="32" Height="40" Offset="0x39BF0" />
|
||||
<DList Name="gExplosionSplashDL" Offset="0x3A0F0" />
|
||||
<Texture Name="gameplay_keep_Tex_03A190" OutName="tex_03A190" Format="ia8" Width="32" Height="32" Offset="0x3A190" />
|
||||
<Texture Name="gameplay_keep_Tex_03A590" OutName="tex_03A590" Format="ia8" Width="32" Height="32" Offset="0x3A590" />
|
||||
<Texture Name="gameplay_keep_Tex_03A990" OutName="tex_03A990" Format="ia8" Width="32" Height="32" Offset="0x3A990" />
|
||||
<Texture Name="gameplay_keep_Tex_03AD90" OutName="tex_03AD90" Format="ia8" Width="32" Height="32" Offset="0x3AD90" />
|
||||
<Texture Name="gameplay_keep_Tex_03B190" OutName="tex_03B190" Format="ia8" Width="32" Height="32" Offset="0x3B190" />
|
||||
<Texture Name="gameplay_keep_Tex_03B590" OutName="tex_03B590" Format="ia8" Width="32" Height="32" Offset="0x3B590" />
|
||||
<Texture Name="gameplay_keep_Tex_03B990" OutName="tex_03B990" Format="ia8" Width="32" Height="32" Offset="0x3B990" />
|
||||
<Texture Name="gameplay_keep_Tex_03BD90" OutName="tex_03BD90" Format="ia8" Width="32" Height="32" Offset="0x3BD90" />
|
||||
<DList Name="gameplay_keep_DL_03C190" Offset="0x3C190" />
|
||||
<Texture Name="gEffStone1Tex" OutName="eff_stone_1" Format="ia8" Width="32" Height="32" Offset="0x3A190" />
|
||||
<Texture Name="gEffStone2Tex" OutName="eff_stone_2" Format="ia8" Width="32" Height="32" Offset="0x3A590" />
|
||||
<Texture Name="gEffStone3Tex" OutName="eff_stone_3" Format="ia8" Width="32" Height="32" Offset="0x3A990" />
|
||||
<Texture Name="gEffStone4Tex" OutName="eff_stone_4" Format="ia8" Width="32" Height="32" Offset="0x3AD90" />
|
||||
<Texture Name="gEffStone5Tex" OutName="eff_stone_5" Format="ia8" Width="32" Height="32" Offset="0x3B190" />
|
||||
<Texture Name="gEffStone6Tex" OutName="eff_stone_6" Format="ia8" Width="32" Height="32" Offset="0x3B590" />
|
||||
<Texture Name="gEffStone7Tex" OutName="eff_stone_7" Format="ia8" Width="32" Height="32" Offset="0x3B990" />
|
||||
<Texture Name="gEffStone8Tex" OutName="eff_stone_8" Format="ia8" Width="32" Height="32" Offset="0x3BD90" />
|
||||
<DList Name="gEffStoneDL" Offset="0x3C190" />
|
||||
<Texture Name="gameplay_keep_Tex_03C230" OutName="tex_03C230" Format="i4" Width="32" Height="96" Offset="0x3C230" />
|
||||
<Texture Name="gameplay_keep_Tex_03C830" OutName="tex_03C830" Format="i4" Width="32" Height="96" Offset="0x3C830" />
|
||||
<Texture Name="gameplay_keep_Tex_03CE30" OutName="tex_03CE30" Format="i4" Width="32" Height="96" Offset="0x3CE30" />
|
||||
@@ -1082,7 +1085,7 @@
|
||||
<Texture Name="gameplay_keep_Tex_0443B0" OutName="tex_0443B0" Format="i8" Width="32" Height="32" Offset="0x443B0" />
|
||||
<Texture Name="gameplay_keep_Tex_0447B0" OutName="tex_0447B0" Format="i8" Width="32" Height="32" Offset="0x447B0" />
|
||||
<Texture Name="gameplay_keep_Tex_044BB0" OutName="tex_044BB0" Format="i8" Width="32" Height="32" Offset="0x44BB0" />
|
||||
<Texture Name="gameplay_keep_Tex_044FB0" OutName="tex_044FB0" Format="i8" Width="32" Height="32" Offset="0x44FB0" />
|
||||
<Texture Name="gFrozenIceTex" OutName="frozen_ice" Format="i8" Width="32" Height="32" Offset="0x44FB0" />
|
||||
<Texture Name="gameplay_keep_Tex_0453B0" OutName="tex_0453B0" Format="i8" Width="32" Height="32" Offset="0x453B0" />
|
||||
<DList Name="gameplay_keep_DL_048DF0" Offset="0x48DF0" />
|
||||
<Texture Name="gameplay_keep_TLUT_04A460" OutName="tlut_04A460" Format="rgba16" Width="16" Height="16" Offset="0x4A460" />
|
||||
@@ -1108,13 +1111,13 @@
|
||||
<DList Name="gameplay_keep_DL_04F250" Offset="0x4F250" />
|
||||
<Texture Name="gameplay_keep_Tex_04F2C0" OutName="tex_04F2C0" Format="ia16" Width="32" Height="64" Offset="0x4F2C0" />
|
||||
<DList Name="gameplay_keep_DL_050550" Offset="0x50550" />
|
||||
<DList Name="gameplay_keep_DL_050648" Offset="0x50648" />
|
||||
<DList Name="gameplay_keep_DL_0506E0" Offset="0x506E0" />
|
||||
<DList Name="gFrozenIceDL" Offset="0x50648" />
|
||||
<DList Name="gFrozenIceVtxDL" Offset="0x506E0" />
|
||||
<DList Name="gameplay_keep_DL_050D10" Offset="0x50D10" />
|
||||
<Texture Name="gameplay_keep_Tex_050E80" OutName="tex_050E80" Format="i4" Width="32" Height="32" Offset="0x50E80" />
|
||||
<DList Name="gameplay_keep_DL_0510B0" Offset="0x510B0" />
|
||||
<DList Name="gameplay_keep_DL_051180" Offset="0x51180" />
|
||||
<DList Name="gameplay_keep_DL_051238" Offset="0x51238" />
|
||||
<DList Name="gFrozenSteamDL" Offset="0x51180" />
|
||||
<DList Name="gFrozenSteamVtxDL" Offset="0x51238" />
|
||||
<Animation Name="gameplay_keep_Anim_05140C" Offset="0x5140C" />
|
||||
<DList Name="gameplay_keep_DL_051420" Offset="0x51420" />
|
||||
<DList Name="gameplay_keep_DL_0514C0" Offset="0x514C0" />
|
||||
@@ -1169,8 +1172,8 @@
|
||||
<Limb Name="gameplay_keep_Standardlimb_05272C" Type="Standard" Offset="0x5272C" />
|
||||
<Limb Name="gameplay_keep_Standardlimb_052738" Type="Standard" Offset="0x52738" />
|
||||
<Skeleton Name="gameplay_keep_Skel_0527A0" Type="Normal" LimbType="Standard" Offset="0x527A0" />
|
||||
<DList Name="gameplay_keep_DL_0527F0" Offset="0x527F0" />
|
||||
<DList Name="gameplay_keep_DL_0528B0" Offset="0x528B0" />
|
||||
<DList Name="gKakeraLeafMiddle" Offset="0x527F0" />
|
||||
<DList Name="gKakeraLeafTip" Offset="0x528B0" />
|
||||
<Texture Name="gameplay_keep_Tex_052940" OutName="tex_052940" Format="rgba16" Width="32" Height="32" Offset="0x52940" />
|
||||
<Texture Name="gameplay_keep_Tex_053140" OutName="tex_053140" Format="rgba16" Width="32" Height="32" Offset="0x53140" />
|
||||
<Texture Name="gameplay_keep_Tex_053940" OutName="tex_053940" Format="i4" Width="64" Height="64" Offset="0x53940" />
|
||||
@@ -1259,7 +1262,8 @@
|
||||
<Texture Name="gameplay_keep_Tex_06ABF8" OutName="tex_06ABF8" Format="rgba16" Width="36" Height="36" Offset="0x6ABF8" />
|
||||
<TextureAnimation Name="gameplay_keep_Matanimheader_06B6A0" Offset="0x6B6A0" />
|
||||
<TextureAnimation Name="gameplay_keep_Matanimheader_06B730" Offset="0x6B730" />
|
||||
<Blob Name="gameplay_keep_Blob_06B750" Size="0x3D0" Offset="0x6B750" />
|
||||
<Blob Name="gameplay_keep_Blob_06B750" Size="0x3BC" Offset="0x6B750" />
|
||||
<Blob Name="gameplay_keep_Blob_06BB0C" Size="0x4D4" Offset="0x6BB0C" />
|
||||
<DList Name="gameplay_keep_DL_06BFE0" Offset="0x6BFE0" />
|
||||
<DList Name="gameplay_keep_DL_06C098" Offset="0x6C098" />
|
||||
<DList Name="gameplay_keep_DL_06C1E8" Offset="0x6C1E8" />
|
||||
@@ -1268,7 +1272,8 @@
|
||||
<Texture Name="gameplay_keep_Tex_06D350" OutName="tex_06D350" Format="i4" Width="64" Height="64" Offset="0x6D350" />
|
||||
<Texture Name="gameplay_keep_Tex_06DB50" OutName="tex_06DB50" Format="i4" Width="64" Height="64" Offset="0x6DB50" />
|
||||
<Texture Name="gameplay_keep_Tex_06E350" OutName="tex_06E350" Format="i4" Width="64" Height="64" Offset="0x6E350" />
|
||||
<Blob Name="gameplay_keep_Blob_06EB50" Size="0x30" Offset="0x6EB50" />
|
||||
<Blob Name="gameplay_keep_Blob_06EB50" Size="0x20" Offset="0x6EB50" />
|
||||
<Blob Name="gameplay_keep_Blob_06EB70" Size="0x10" Offset="0x6EB70" />
|
||||
<Texture Name="gameplay_keep_Tex_06EB80" OutName="tex_06EB80" Format="i4" Width="64" Height="64" Offset="0x6EB80" />
|
||||
<DList Name="gameplay_keep_DL_06F380" Offset="0x6F380" />
|
||||
<DList Name="gameplay_keep_DL_06F9F0" Offset="0x6F9F0" />
|
||||
@@ -1282,27 +1287,27 @@
|
||||
<Texture Name="gameplay_keep_Tex_0707F0" OutName="tex_0707F0" Format="i4" Width="32" Height="32" Offset="0x707F0" />
|
||||
<Texture Name="gameplay_keep_Tex_0709F0" OutName="tex_0709F0" Format="i4" Width="64" Height="64" Offset="0x709F0" />
|
||||
<TextureAnimation Name="gameplay_keep_Matanimheader_0711F8" Offset="0x711F8" />
|
||||
<DList Name="gameplay_keep_DL_071230" Offset="0x71230" />
|
||||
<DList Name="gEffPoppedDekuBubbleSlidingDL" Offset="0x71230" />
|
||||
<TextureAnimation Name="gameplay_keep_Matanimheader_0712F8" Offset="0x712F8" />
|
||||
<Texture Name="gameplay_keep_Tex_071300" OutName="tex_071300" Format="i4" Width="32" Height="64" Offset="0x71300" />
|
||||
<Texture Name="gameplay_keep_Tex_071700" OutName="tex_071700" Format="i4" Width="32" Height="64" Offset="0x71700" />
|
||||
<Texture Name="gameplay_keep_Tex_071B00" OutName="tex_071B00" Format="i4" Width="32" Height="64" Offset="0x71B00" />
|
||||
<Texture Name="gameplay_keep_Tex_071F00" OutName="tex_071F00" Format="i4" Width="32" Height="64" Offset="0x71F00" />
|
||||
<Texture Name="gameplay_keep_Tex_072300" OutName="tex_072300" Format="i4" Width="32" Height="64" Offset="0x72300" />
|
||||
<Texture Name="gameplay_keep_Tex_072700" OutName="tex_072700" Format="i4" Width="32" Height="64" Offset="0x72700" />
|
||||
<Texture Name="gameplay_keep_Tex_072B00" OutName="tex_072B00" Format="i4" Width="32" Height="64" Offset="0x72B00" />
|
||||
<Texture Name="gameplay_keep_Tex_072F00" OutName="tex_072F00" Format="i4" Width="32" Height="64" Offset="0x72F00" />
|
||||
<Texture Name="gameplay_keep_Tex_073300" OutName="tex_073300" Format="i4" Width="32" Height="64" Offset="0x73300" />
|
||||
<Texture Name="gameplay_keep_Tex_073700" OutName="tex_073700" Format="i4" Width="32" Height="64" Offset="0x73700" />
|
||||
<Texture Name="gameplay_keep_Tex_073B00" OutName="tex_073B00" Format="i4" Width="32" Height="64" Offset="0x73B00" />
|
||||
<Texture Name="gameplay_keep_Tex_073F00" OutName="tex_073F00" Format="i4" Width="32" Height="64" Offset="0x73F00" />
|
||||
<DList Name="gameplay_keep_DL_074330" Offset="0x74330" />
|
||||
<Texture Name="gEffPoppedDekuBubbleSliding1Tex" OutName="eff_popped_deku_bubble_sliding_1" Format="i4" Width="32" Height="64" Offset="0x71300" />
|
||||
<Texture Name="gEffPoppedDekuBubbleSliding2Tex" OutName="eff_popped_deku_bubble_sliding_2" Format="i4" Width="32" Height="64" Offset="0x71700" />
|
||||
<Texture Name="gEffPoppedDekuBubbleSliding3Tex" OutName="eff_popped_deku_bubble_sliding_3" Format="i4" Width="32" Height="64" Offset="0x71B00" />
|
||||
<Texture Name="gEffPoppedDekuBubbleSliding4Tex" OutName="eff_popped_deku_bubble_sliding_4" Format="i4" Width="32" Height="64" Offset="0x71F00" />
|
||||
<Texture Name="gEffPoppedDekuBubbleSliding5Tex" OutName="eff_popped_deku_bubble_sliding_5" Format="i4" Width="32" Height="64" Offset="0x72300" />
|
||||
<Texture Name="gEffPoppedDekuBubbleSliding6Tex" OutName="eff_popped_deku_bubble_sliding_6" Format="i4" Width="32" Height="64" Offset="0x72700" />
|
||||
<Texture Name="gEffPoppedDekuBubbleSliding7Tex" OutName="eff_popped_deku_bubble_sliding_7" Format="i4" Width="32" Height="64" Offset="0x72B00" />
|
||||
<Texture Name="gEffPoppedDekuBubbleSliding8Tex" OutName="eff_popped_deku_bubble_sliding_8" Format="i4" Width="32" Height="64" Offset="0x72F00" />
|
||||
<Texture Name="gEffPoppedDekuBubbleSliding9Tex" OutName="eff_popped_deku_bubble_sliding_9" Format="i4" Width="32" Height="64" Offset="0x73300" />
|
||||
<Texture Name="gEffPoppedDekuBubbleSliding10Tex" OutName="eff_popped_deku_bubble_sliding_10" Format="i4" Width="32" Height="64" Offset="0x73700" />
|
||||
<Texture Name="gEffPoppedDekuBubbleSliding11Tex" OutName="eff_popped_deku_bubble_sliding_11" Format="i4" Width="32" Height="64" Offset="0x73B00" />
|
||||
<Texture Name="gEffPoppedDekuBubbleSliding12Tex" OutName="eff_popped_deku_bubble_sliding_12" Format="i4" Width="32" Height="64" Offset="0x73F00" />
|
||||
<DList Name="gEffPoppedDekuBubbleDL" Offset="0x74330" />
|
||||
<Blob Name="gameplay_keep_DL_0743F0" Size="0x10" Offset="0x743F0" />
|
||||
<Texture Name="gameplay_keep_Tex_074400" OutName="tex_074400" Format="i4" Width="32" Height="64" Offset="0x74400" />
|
||||
<Texture Name="gameplay_keep_Tex_074800" OutName="tex_074800" Format="i4" Width="32" Height="64" Offset="0x74800" />
|
||||
<Texture Name="gameplay_keep_Tex_074C00" OutName="tex_074C00" Format="i4" Width="32" Height="64" Offset="0x74C00" />
|
||||
<Texture Name="gameplay_keep_Tex_075000" OutName="tex_075000" Format="i4" Width="32" Height="64" Offset="0x75000" />
|
||||
<Texture Name="gameplay_keep_Tex_075400" OutName="tex_075400" Format="i4" Width="32" Height="64" Offset="0x75400" />
|
||||
<Texture Name="gEffPoppedDekuBubble1Tex" OutName="eff_popped_deku_bubble_1" Format="i4" Width="32" Height="64" Offset="0x74400" />
|
||||
<Texture Name="gEffPoppedDekuBubble2Tex" OutName="eff_popped_deku_bubble_2" Format="i4" Width="32" Height="64" Offset="0x74800" />
|
||||
<Texture Name="gEffPoppedDekuBubble3Tex" OutName="eff_popped_deku_bubble_3" Format="i4" Width="32" Height="64" Offset="0x74C00" />
|
||||
<Texture Name="gEffPoppedDekuBubble4Tex" OutName="eff_popped_deku_bubble_4" Format="i4" Width="32" Height="64" Offset="0x75000" />
|
||||
<Texture Name="gEffPoppedDekuBubble5Tex" OutName="eff_popped_deku_bubble_5" Format="i4" Width="32" Height="64" Offset="0x75400" />
|
||||
<Texture Name="gameplay_keep_Tex_075800" OutName="tex_075800" Format="i4" Width="32" Height="32" Offset="0x75800" />
|
||||
<DList Name="gSquareShadowDL" Offset="0x75A40" />
|
||||
<Texture Name="gameplay_keep_Tex_075AA8" OutName="tex_075AA8" Format="i4" Width="16" Height="16" Offset="0x75AA8" />
|
||||
@@ -1353,7 +1358,8 @@
|
||||
<DList Name="gameplay_keep_DL_081620" Offset="0x81620" />
|
||||
<DList Name="gameplay_keep_DL_081628" Offset="0x81628" />
|
||||
<Texture Name="gameplay_keep_Tex_0816C0" OutName="tex_0816C0" Format="rgba16" Width="16" Height="32" Offset="0x816C0" />
|
||||
<Blob Name="gameplay_keep_Blob_081AC0" Size="0x1A90" Offset="0x81AC0" />
|
||||
<Blob Name="gameplay_keep_Blob_081AC0" Size="0x1A74" Offset="0x81AC0" />
|
||||
<Blob Name="gameplay_keep_Blob_083534" Size="0x125C" Offset="0x83534" />
|
||||
<DList Name="gameplay_keep_DL_084790" Offset="0x84790" />
|
||||
<DList Name="gameplay_keep_DL_0847E0" Offset="0x847E0" />
|
||||
<DList Name="gameplay_keep_DL_084850" Offset="0x84850" />
|
||||
@@ -1384,7 +1390,8 @@
|
||||
<DList Name="gameplay_keep_DL_0853B0" Offset="0x853B0" />
|
||||
<DList Name="gameplay_keep_DL_085418" Offset="0x85418" />
|
||||
<DList Name="gameplay_keep_DL_085490" Offset="0x85490" />
|
||||
<Blob Name="gameplay_keep_Blob_085510" Size="0x140" Offset="0x85510" />
|
||||
<Blob Name="gameplay_keep_Blob_085510" Size="0x130" Offset="0x85510" />
|
||||
<Blob Name="gameplay_keep_Blob_085640" Size="0x3A30" Offset="0x85640" />
|
||||
<DList Name="gameplay_keep_DL_089070" Offset="0x89070" />
|
||||
<Texture Name="gameplay_keep_TLUT_08A420" OutName="tlut_08A420" Format="rgba16" Width="16" Height="16" Offset="0x8A420" />
|
||||
<Texture Name="gameplay_keep_Tex_08A620" OutName="tex_08A620" Format="rgba16" Width="16" Height="16" Offset="0x8A620" />
|
||||
@@ -1405,23 +1412,28 @@
|
||||
<Texture Name="gameplay_keep_Tex_08CEE0" OutName="tex_08CEE0" Format="ci8" Width="32" Height="32" Offset="0x8CEE0" />
|
||||
<Texture Name="gameplay_keep_Tex_08D2E0" OutName="tex_08D2E0" Format="rgba16" Width="8" Height="16" Offset="0x8D2E0" />
|
||||
<Texture Name="gameplay_keep_Tex_08D3E0" OutName="tex_08D3E0" Format="i8" Width="64" Height="32" Offset="0x8D3E0" />
|
||||
<Texture Name="gDust1Tex" OutName="tex_08DBE0" Format="i8" Width="32" Height="32" Offset="0x8DBE0" />
|
||||
<Texture Name="gDust2Tex" OutName="tex_08DFE0" Format="i8" Width="32" Height="32" Offset="0x8DFE0" />
|
||||
<Texture Name="gDust3Tex" OutName="tex_08E3E0" Format="i8" Width="32" Height="32" Offset="0x8E3E0" />
|
||||
<Texture Name="gDust4Tex" OutName="tex_08E7E0" Format="i8" Width="32" Height="32" Offset="0x8E7E0" />
|
||||
<Texture Name="gDust5Tex" OutName="tex_08EBE0" Format="i8" Width="32" Height="32" Offset="0x8EBE0" />
|
||||
<Texture Name="gDust6Tex" OutName="tex_08EFE0" Format="i8" Width="32" Height="32" Offset="0x8EFE0" />
|
||||
<Texture Name="gDust7Tex" OutName="tex_08F3E0" Format="i8" Width="32" Height="32" Offset="0x8F3E0" />
|
||||
<Texture Name="gDust8Tex" OutName="tex_08F7E0" Format="i8" Width="32" Height="32" Offset="0x8F7E0" />
|
||||
|
||||
<!-- Dust Textures -->
|
||||
<Texture Name="gDust1Tex" OutName="dust_1" Format="i8" Width="32" Height="32" Offset="0x8DBE0" />
|
||||
<Texture Name="gDust2Tex" OutName="dust_2" Format="i8" Width="32" Height="32" Offset="0x8DFE0" />
|
||||
<Texture Name="gDust3Tex" OutName="dust_3" Format="i8" Width="32" Height="32" Offset="0x8E3E0" />
|
||||
<Texture Name="gDust4Tex" OutName="dust_4" Format="i8" Width="32" Height="32" Offset="0x8E7E0" />
|
||||
<Texture Name="gDust5Tex" OutName="dust_5" Format="i8" Width="32" Height="32" Offset="0x8EBE0" />
|
||||
<Texture Name="gDust6Tex" OutName="dust_6" Format="i8" Width="32" Height="32" Offset="0x8EFE0" />
|
||||
<Texture Name="gDust7Tex" OutName="dust_7" Format="i8" Width="32" Height="32" Offset="0x8F3E0" />
|
||||
<Texture Name="gDust8Tex" OutName="dust_8" Format="i8" Width="32" Height="32" Offset="0x8F7E0" />
|
||||
|
||||
<Texture Name="gameplay_keep_Tex_08FBE0" OutName="tex_08FBE0" Format="i8" Width="32" Height="64" Offset="0x8FBE0" />
|
||||
<Texture Name="gameplay_keep_Tex_0903E0" OutName="tex_0903E0" Format="i8" Width="32" Height="64" Offset="0x903E0" />
|
||||
<Texture Name="gameplay_keep_Tex_090BE0" OutName="tex_090BE0" Format="i8" Width="32" Height="64" Offset="0x90BE0" />
|
||||
<Texture Name="gameplay_keep_Tex_0913E0" OutName="tex_0913E0" Format="i8" Width="32" Height="64" Offset="0x913E0" />
|
||||
<Texture Name="gameplay_keep_Tex_091BE0" OutName="tex_091BE0" Format="ia8" Width="16" Height="16" Offset="0x91BE0" />
|
||||
<Texture Name="gameplay_keep_Tex_091CE0" OutName="tex_091CE0" Format="ia8" Width="16" Height="16" Offset="0x91CE0" />
|
||||
<Texture Name="gameplay_keep_Tex_091DE0" OutName="tex_091DE0" Format="i4" Width="32" Height="32" Offset="0x91DE0" />
|
||||
<Texture Name="gameplay_keep_Tex_091FE0" OutName="tex_091FE0" Format="i4" Width="32" Height="32" Offset="0x91FE0" />
|
||||
<Texture Name="gameplay_keep_Tex_0921E0" OutName="tex_0921E0" Format="i4" Width="32" Height="32" Offset="0x921E0" />
|
||||
<Texture Name="gameplay_keep_Tex_0923E0" OutName="tex_0923E0" Format="i4" Width="32" Height="32" Offset="0x923E0" />
|
||||
<Texture Name="gEffBubble1Tex" OutName="eff_bubble_1" Format="ia8" Width="16" Height="16" Offset="0x91BE0" />
|
||||
<Texture Name="gEffBubble2Tex" OutName="eff_bubble_2" Format="ia8" Width="16" Height="16" Offset="0x91CE0" />
|
||||
|
||||
<!-- Electric spark textures from Zora-Form attack -->
|
||||
<Texture Name="gElectricSpark1Tex" OutName="electric_spark_1" Format="i4" Width="32" Height="32" Offset="0x91DE0" />
|
||||
<Texture Name="gElectricSpark2Tex" OutName="electric_spark_2" Format="i4" Width="32" Height="32" Offset="0x91FE0" />
|
||||
<Texture Name="gElectricSpark3Tex" OutName="electric_spark_3" Format="i4" Width="32" Height="32" Offset="0x921E0" />
|
||||
<Texture Name="gElectricSpark4Tex" OutName="electric_spark_4" Format="i4" Width="32" Height="32" Offset="0x923E0" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -35,15 +35,22 @@
|
||||
<Texture Name="object_an1_Tex_00DF20" OutName="tex_00DF20" Format="rgba16" Width="16" Height="16" Offset="0xDF20" />
|
||||
<Texture Name="object_an1_Tex_00E120" OutName="tex_00E120" Format="ci8" Width="8" Height="8" Offset="0xE120" />
|
||||
<Texture Name="object_an1_Tex_00E160" OutName="tex_00E160" Format="ci8" Width="8" Height="16" Offset="0xE160" />
|
||||
<!-- <Blob Name="object_an1_Blob_00E1E0" Size="0x400" Offset="0xE1E0" /> -->
|
||||
<Texture Name="object_an1_Tex_00E1E0" OutName="tex_00E1E0" Format="ci8" Width="32" Height="32" Offset="0xE1E0" />
|
||||
<Texture Name="object_an1_Tex_00E5E0" OutName="tex_00E5E0" Format="ci8" Width="16" Height="16" Offset="0xE5E0" />
|
||||
<!-- <Blob Name="object_an1_Blob_00E6E0" Size="0x200" Offset="0xE6E0" /> -->
|
||||
<Texture Name="object_an1_Tex_00E6E0" OutName="tex_00E6E0" Format="ci8" Width="32" Height="16" Offset="0xE6E0" />
|
||||
<Texture Name="object_an1_Tex_00E8E0" OutName="tex_00E8E0" Format="ci8" Width="8" Height="8" Offset="0xE8E0" />
|
||||
<Texture Name="object_an1_Tex_00E920" OutName="tex_00E920" Format="ci8" Width="16" Height="16" Offset="0xE920" />
|
||||
<Texture Name="object_an1_Tex_00EA20" OutName="tex_00EA20" Format="ci8" Width="32" Height="32" Offset="0xEA20" />
|
||||
<Texture Name="object_an1_Tex_00EE20" OutName="tex_00EE20" Format="ci8" Width="16" Height="16" Offset="0xEE20" />
|
||||
<Texture Name="object_an1_Tex_00EF20" OutName="tex_00EF20" Format="ci8" Width="8" Height="16" Offset="0xEF20" />
|
||||
<!-- <Blob Name="object_an1_Blob_00EFA0" Size="0x1800" Offset="0xEFA0" /> -->
|
||||
<Texture Name="object_an1_Tex_00EFA0" OutName="tex_00EFA0" Format="ci8" Width="32" Height="32" Offset="0xEFA0" />
|
||||
<Texture Name="object_an1_Tex_00F3A0" OutName="tex_00F3A0" Format="ci8" Width="32" Height="32" Offset="0xF3A0" />
|
||||
<Texture Name="object_an1_Tex_00F7A0" OutName="tex_00F7A0" Format="ci8" Width="32" Height="16" Offset="0xF7A0" />
|
||||
<Texture Name="object_an1_Tex_00F9A0" OutName="tex_00F9A0" Format="ci8" Width="32" Height="32" Offset="0xF9A0" />
|
||||
<Texture Name="object_an1_Tex_00FDA0" OutName="tex_00FDA0" Format="ci8" Width="32" Height="32" Offset="0xFDA0" />
|
||||
<Texture Name="object_an1_Tex_0101A0" OutName="tex_0101A0" Format="ci8" Width="32" Height="16" Offset="0x101A0" />
|
||||
<Texture Name="object_an1_Tex_0103A0" OutName="tex_0103A0" Format="ci8" Width="32" Height="32" Offset="0x103A0" />
|
||||
<!-- <Blob Name="object_an1_Blob_0107A0" Size="0xA40" Offset="0x107A0" /> -->
|
||||
<DList Name="object_an1_DL_0111E0" Offset="0x111E0" />
|
||||
<DList Name="object_an1_DL_0111E8" Offset="0x111E8" />
|
||||
<Texture Name="object_an1_Tex_011928" OutName="tex_011928" Format="i8" Width="32" Height="32" Offset="0x11928" />
|
||||
|
||||
@@ -1,53 +1,65 @@
|
||||
<Root>
|
||||
<!-- Assets for Mamamu Yan, the proprietor of the Doggy Racetrack. -->
|
||||
<File Name="object_aob" Segment="6">
|
||||
<Animation Name="object_aob_Anim_00007C" Offset="0x7C" />
|
||||
<Limb Name="object_aob_Standardlimb_000090" Type="Standard" EnumName="OBJECT_AOB_LIMB_01" Offset="0x90" />
|
||||
<Limb Name="object_aob_Standardlimb_00009C" Type="Standard" EnumName="OBJECT_AOB_LIMB_02" Offset="0x9C" />
|
||||
<Limb Name="object_aob_Standardlimb_0000A8" Type="Standard" EnumName="OBJECT_AOB_LIMB_03" Offset="0xA8" />
|
||||
<Limb Name="object_aob_Standardlimb_0000B4" Type="Standard" EnumName="OBJECT_AOB_LIMB_04" Offset="0xB4" />
|
||||
<Limb Name="object_aob_Standardlimb_0000C0" Type="Standard" EnumName="OBJECT_AOB_LIMB_05" Offset="0xC0" />
|
||||
<Limb Name="object_aob_Standardlimb_0000CC" Type="Standard" EnumName="OBJECT_AOB_LIMB_06" Offset="0xCC" />
|
||||
<Limb Name="object_aob_Standardlimb_0000D8" Type="Standard" EnumName="OBJECT_AOB_LIMB_07" Offset="0xD8" />
|
||||
<Limb Name="object_aob_Standardlimb_0000E4" Type="Standard" EnumName="OBJECT_AOB_LIMB_08" Offset="0xE4" />
|
||||
<Limb Name="object_aob_Standardlimb_0000F0" Type="Standard" EnumName="OBJECT_AOB_LIMB_09" Offset="0xF0" />
|
||||
<Limb Name="object_aob_Standardlimb_0000FC" Type="Standard" EnumName="OBJECT_AOB_LIMB_0A" Offset="0xFC" />
|
||||
<Limb Name="object_aob_Standardlimb_000108" Type="Standard" EnumName="OBJECT_AOB_LIMB_0B" Offset="0x108" />
|
||||
<Limb Name="object_aob_Standardlimb_000114" Type="Standard" EnumName="OBJECT_AOB_LIMB_0C" Offset="0x114" />
|
||||
<Limb Name="object_aob_Standardlimb_000120" Type="Standard" EnumName="OBJECT_AOB_LIMB_0D" Offset="0x120" />
|
||||
<Limb Name="object_aob_Standardlimb_00012C" Type="Standard" EnumName="OBJECT_AOB_LIMB_0E" Offset="0x12C" />
|
||||
<Limb Name="object_aob_Standardlimb_000138" Type="Standard" EnumName="OBJECT_AOB_LIMB_0F" Offset="0x138" />
|
||||
<Skeleton Name="object_aob_Skel_000180" Type="Flex" LimbType="Standard" LimbNone="OBJECT_AOB_LIMB_NONE" LimbMax="OBJECT_AOB_LIMB_MAX" EnumName="object_aob_Limbs" Offset="0x180" />
|
||||
<Texture Name="object_aob_TLUT_000198" OutName="tlut_000198" Format="rgba16" Width="16" Height="16" Offset="0x198" />
|
||||
<Texture Name="object_aob_Tex_000398" OutName="tex_000398" Format="ci8" Width="16" Height="16" Offset="0x398" />
|
||||
<Texture Name="object_aob_Tex_000498" OutName="tex_000498" Format="ci8" Width="8" Height="8" Offset="0x498" />
|
||||
<Texture Name="object_aob_Tex_0004D8" OutName="tex_0004D8" Format="ci8" Width="16" Height="16" Offset="0x4D8" />
|
||||
<Texture Name="object_aob_Tex_0005D8" OutName="tex_0005D8" Format="ci8" Width="8" Height="8" Offset="0x5D8" />
|
||||
<Texture Name="object_aob_Tex_000618" OutName="tex_000618" Format="ci8" Width="8" Height="8" Offset="0x618" />
|
||||
<Texture Name="object_aob_Tex_000658" OutName="tex_000658" Format="rgba16" Width="32" Height="32" Offset="0x658" />
|
||||
<Texture Name="object_aob_Tex_000E58" OutName="tex_000E58" Format="rgba16" Width="32" Height="32" Offset="0xE58" />
|
||||
<Texture Name="object_aob_Tex_001658" OutName="tex_001658" Format="rgba16" Width="32" Height="32" Offset="0x1658" />
|
||||
<Texture Name="object_aob_Tex_001E58" OutName="tex_001E58" Format="ci8" Width="16" Height="16" Offset="0x1E58" />
|
||||
<Texture Name="object_aob_Tex_001F58" OutName="tex_001F58" Format="ci8" Width="8" Height="8" Offset="0x1F58" />
|
||||
<Texture Name="object_aob_Tex_001F98" OutName="tex_001F98" Format="ci8" Width="8" Height="8" Offset="0x1F98" />
|
||||
<DList Name="object_aob_DL_003D18" Offset="0x3D18" />
|
||||
<DList Name="object_aob_DL_0044D8" Offset="0x44D8" />
|
||||
<DList Name="object_aob_DL_0046E0" Offset="0x46E0" />
|
||||
<DList Name="object_aob_DL_004810" Offset="0x4810" />
|
||||
<DList Name="object_aob_DL_0049B8" Offset="0x49B8" />
|
||||
<DList Name="object_aob_DL_004BC0" Offset="0x4BC0" />
|
||||
<DList Name="object_aob_DL_004CF0" Offset="0x4CF0" />
|
||||
<DList Name="object_aob_DL_004E98" Offset="0x4E98" />
|
||||
<DList Name="object_aob_DL_005138" Offset="0x5138" />
|
||||
<DList Name="object_aob_DL_005208" Offset="0x5208" />
|
||||
<DList Name="object_aob_DL_0052D8" Offset="0x52D8" />
|
||||
<DList Name="object_aob_DL_0053A8" Offset="0x53A8" />
|
||||
<DList Name="object_aob_DL_005478" Offset="0x5478" />
|
||||
<DList Name="object_aob_DL_005548" Offset="0x5548" />
|
||||
<DList Name="object_aob_DL_005618" Offset="0x5618" />
|
||||
<Animation Name="object_aob_Anim_0058EC" Offset="0x58EC" />
|
||||
<Animation Name="object_aob_Anim_006040" Offset="0x6040" />
|
||||
<Animation Name="object_aob_Anim_0068B4" Offset="0x68B4" />
|
||||
<Animation Name="object_aob_Anim_00700C" Offset="0x700C" />
|
||||
<Animation Name="object_aob_Anim_007758" Offset="0x7758" />
|
||||
<!-- Unused dummied-out idle animation. Probably an OoT leftover, since her idle animation in that game has the same name. -->
|
||||
<Animation Name="gMamamuYanUnusedIdleAnim" Offset="0x7C" /> <!-- Original name is "Aob_mastu" (probably a misspelling of "matsu" or "wait") -->
|
||||
|
||||
<!-- Mamamu Yan Limbs -->
|
||||
<Limb Name="gMamamuYanDressLimb" Type="Standard" EnumName="MAMAMU_YAN_LIMB_DRESS" Offset="0x90" />
|
||||
<Limb Name="gMamamuYanLeftThighLimb" Type="Standard" EnumName="MAMAMU_YAN_LIMB_LEFT_THIGH" Offset="0x9C" />
|
||||
<Limb Name="gMamamuYanLeftShinLimb" Type="Standard" EnumName="MAMAMU_YAN_LIMB_LEFT_SHIN" Offset="0xA8" />
|
||||
<Limb Name="gMamamuYanLeftFootLimb" Type="Standard" EnumName="MAMAMU_YAN_LIMB_LEFT_FOOT" Offset="0xB4" />
|
||||
<Limb Name="gMamamuYanRightThighLimb" Type="Standard" EnumName="MAMAMU_YAN_LIMB_RIGHT_THIGH" Offset="0xC0" />
|
||||
<Limb Name="gMamamuYanRightShinLimb" Type="Standard" EnumName="MAMAMU_YAN_LIMB_RIGHT_SHIN" Offset="0xCC" />
|
||||
<Limb Name="gMamamuYanRightFootLimb" Type="Standard" EnumName="MAMAMU_YAN_LIMB_RIGHT_FOOT" Offset="0xD8" />
|
||||
<Limb Name="gMamamuYanTorsoLimb" Type="Standard" EnumName="MAMAMU_YAN_LIMB_TORSO" Offset="0xE4" />
|
||||
<Limb Name="gMamamuYanLeftUpperArmLimb" Type="Standard" EnumName="MAMAMU_YAN_LIMB_LEFT_UPPER_ARM" Offset="0xF0" />
|
||||
<Limb Name="gMamamuYanLeftForearmLimb" Type="Standard" EnumName="MAMAMU_YAN_LIMB_LEFT_FOREARM" Offset="0xFC" />
|
||||
<Limb Name="gMamamuYanLeftHandLimb" Type="Standard" EnumName="MAMAMU_YAN_LIMB_LEFT_HAND" Offset="0x108" />
|
||||
<Limb Name="gMamamuYanRightUpperArmLimb" Type="Standard" EnumName="MAMAMU_YAN_LIMB_RIGHT_UPPER_ARM" Offset="0x114" />
|
||||
<Limb Name="gMamamuYanRightForearmLimb" Type="Standard" EnumName="MAMAMU_YAN_LIMB_RIGHT_FOREARM" Offset="0x120" />
|
||||
<Limb Name="gMamamuYanRightHandLimb" Type="Standard" EnumName="MAMAMU_YAN_LIMB_RIGHT_HAND" Offset="0x12C" />
|
||||
<Limb Name="gMamamuYanHeadLimb" Type="Standard" EnumName="MAMAMU_YAN_LIMB_HEAD" Offset="0x138" />
|
||||
|
||||
<!-- Mamamu Yan Skeleton -->
|
||||
<Skeleton Name="gMamamuYanSkel" Type="Flex" LimbType="Standard" LimbNone="MAMAMU_YAN_LIMB_NONE" LimbMax="MAMAMU_YAN_LIMB_MAX" EnumName="MamamuYanLimbs" Offset="0x180" />
|
||||
|
||||
<!-- Mamamu Yan Textures -->
|
||||
<Texture Name="gMamamuYanTLUT" OutName="mamamu_yan_tlut" Format="rgba16" Width="16" Height="16" Offset="0x198" />
|
||||
<Texture Name="gMamamuYanHairTex" OutName="mamamu_yan_hair" Format="ci8" Width="16" Height="16" Offset="0x398" />
|
||||
<Texture Name="gMamamuYanSkinTex" OutName="mamamu_yan_skin" Format="ci8" Width="8" Height="8" Offset="0x498" />
|
||||
<Texture Name="gMamamuYanEarTex" OutName="mamamu_yan_ear" Format="ci8" Width="16" Height="16" Offset="0x4D8" />
|
||||
<Texture Name="gMamamuYanLipsTex" OutName="mamamu_yan_lips" Format="ci8" Width="8" Height="8" Offset="0x5D8" />
|
||||
<Texture Name="gMamamuYanNostrilTex" OutName="mamamu_yan_nostril" Format="ci8" Width="8" Height="8" Offset="0x618" />
|
||||
<Texture Name="gMamamuYanEyeOpenTex" OutName="mamamu_yan_eye_open" Format="rgba16" Width="32" Height="32" Offset="0x658" />
|
||||
<Texture Name="gMamamuYanEyeHalfTex" OutName="mamamu_yan_eye_half" Format="rgba16" Width="32" Height="32" Offset="0xE58" />
|
||||
<Texture Name="gMamamuYanEyeClosedTex" OutName="mamamu_yan_eye_closed" Format="rgba16" Width="32" Height="32" Offset="0x1658" />
|
||||
<Texture Name="gMamamuYanFingersTex" OutName="mamamu_yan_fingers" Format="ci8" Width="16" Height="16" Offset="0x1E58" />
|
||||
<Texture Name="gMamamuYanSleevesTex" OutName="mamamu_yan_sleeves" Format="ci8" Width="8" Height="8" Offset="0x1F58" />
|
||||
<Texture Name="gMamamuYanDressTex" OutName="mamamu_yan_dress" Format="ci8" Width="8" Height="8" Offset="0x1F98" />
|
||||
|
||||
<!-- Mamamu Yan Limb DisplayLists -->
|
||||
<DList Name="gMamamuYanHeadDL" Offset="0x3D18" />
|
||||
<DList Name="gMamamuYanRightHandDL" Offset="0x44D8" />
|
||||
<DList Name="gMamamuYanRightForearmDL" Offset="0x46E0" />
|
||||
<DList Name="gMamamuYanRightUpperArmDL" Offset="0x4810" />
|
||||
<DList Name="gMamamuYanLeftHandDL" Offset="0x49B8" />
|
||||
<DList Name="gMamamuYanLeftForearmDL" Offset="0x4BC0" />
|
||||
<DList Name="gMamamuYanLeftUpperArmDL" Offset="0x4CF0" />
|
||||
<DList Name="gMamamuYanTorsoDL" Offset="0x4E98" />
|
||||
<DList Name="gMamamuYanRightFootDL" Offset="0x5138" /> <!-- Renders a single triangle instead of a normal-looking limb -->
|
||||
<DList Name="gMamamuYanRightShinDL" Offset="0x5208" /> <!-- Renders a single triangle instead of a normal-looking limb -->
|
||||
<DList Name="gMamamuYanRightThighDL" Offset="0x52D8" /> <!-- Renders a single triangle instead of a normal-looking limb -->
|
||||
<DList Name="gMamamuYanLeftFootDL" Offset="0x53A8" /> <!-- Renders a single triangle instead of a normal-looking limb -->
|
||||
<DList Name="gMamamuYanLeftShinDL" Offset="0x5478" /> <!-- Renders a single triangle instead of a normal-looking limb -->
|
||||
<DList Name="gMamamuYanLeftThighDL" Offset="0x5548" /> <!-- Renders a single triangle instead of a normal-looking limb -->
|
||||
<DList Name="gMamamuYanDressDL" Offset="0x5618" />
|
||||
|
||||
<!-- Mamamu Yan Animations -->
|
||||
<Animation Name="gMamamuYanSurpriseStartAnim" Offset="0x58EC" /> <!-- Original name is "Aob_odoroku" ("surprise") -->
|
||||
<Animation Name="gMamamuYanSurpriseLoopAnim" Offset="0x6040" /> <!-- Original name is "Aob_odorokuroop" -->
|
||||
<Animation Name="gMamamuYanLaughStartAnim" Offset="0x68B4" /> <!-- Original name is "Aob_sikkari" (reference to her catchphrase in the Japanese text) -->
|
||||
<Animation Name="gMamamuYanLaughLoopAnim" Offset="0x700C" /> <!-- Original name is "Aob_sikkariroop" -->
|
||||
<Animation Name="gMamamuYanIdleAnim" Offset="0x7758" /> <!-- Original name is "Aob_wait" -->
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,37 +1,47 @@
|
||||
<Root>
|
||||
<!-- Assets for red and blue Bubbles -->
|
||||
<File Name="object_bb" Segment="6">
|
||||
<Animation Name="object_bb_Anim_000184" Offset="0x184" />
|
||||
<Animation Name="object_bb_Anim_0002AC" Offset="0x2AC" />
|
||||
<Animation Name="object_bb_Anim_000444" Offset="0x444" />
|
||||
<DList Name="object_bb_DL_000C20" Offset="0xC20" />
|
||||
<DList Name="object_bb_DL_000CB0" Offset="0xCB0" />
|
||||
<DList Name="object_bb_DL_000D40" Offset="0xD40" />
|
||||
<DList Name="object_bb_DL_000E08" Offset="0xE08" />
|
||||
<DList Name="object_bb_DL_001100" Offset="0x1100" />
|
||||
<DList Name="object_bb_DL_001190" Offset="0x1190" />
|
||||
<Texture Name="object_bb_Tex_001220" OutName="tex_001220" Format="rgba16" Width="16" Height="16" Offset="0x1220" />
|
||||
<Texture Name="object_bb_Tex_001420" OutName="tex_001420" Format="rgba16" Width="8" Height="8" Offset="0x1420" />
|
||||
<Texture Name="object_bb_Tex_0014A0" OutName="tex_0014A0" Format="rgba16" Width="4" Height="4" Offset="0x14A0" />
|
||||
<Texture Name="object_bb_Tex_0014C0" OutName="tex_0014C0" Format="rgba16" Width="8" Height="8" Offset="0x14C0" />
|
||||
<Texture Name="object_bb_Tex_001540" OutName="tex_001540" Format="rgba16" Width="8" Height="8" Offset="0x1540" />
|
||||
<Texture Name="object_bb_Tex_0015C0" OutName="tex_0015C0" Format="rgba16" Width="8" Height="8" Offset="0x15C0" />
|
||||
<Texture Name="object_bb_Tex_001640" OutName="tex_001640" Format="rgba16" Width="16" Height="8" Offset="0x1640" />
|
||||
<Texture Name="object_bb_Tex_001740" OutName="tex_001740" Format="rgba16" Width="16" Height="16" Offset="0x1740" />
|
||||
<Limb Name="object_bb_Standardlimb_001940" Type="Standard" EnumName="OBJECT_BB_LIMB_01" Offset="0x1940" />
|
||||
<Limb Name="object_bb_Standardlimb_00194C" Type="Standard" EnumName="OBJECT_BB_LIMB_02" Offset="0x194C" />
|
||||
<Limb Name="object_bb_Standardlimb_001958" Type="Standard" EnumName="OBJECT_BB_LIMB_03" Offset="0x1958" />
|
||||
<Limb Name="object_bb_Standardlimb_001964" Type="Standard" EnumName="OBJECT_BB_LIMB_04" Offset="0x1964" />
|
||||
<Limb Name="object_bb_Standardlimb_001970" Type="Standard" EnumName="OBJECT_BB_LIMB_05" Offset="0x1970" />
|
||||
<Limb Name="object_bb_Standardlimb_00197C" Type="Standard" EnumName="OBJECT_BB_LIMB_06" Offset="0x197C" />
|
||||
<Limb Name="object_bb_Standardlimb_001988" Type="Standard" EnumName="OBJECT_BB_LIMB_07" Offset="0x1988" />
|
||||
<Limb Name="object_bb_Standardlimb_001994" Type="Standard" EnumName="OBJECT_BB_LIMB_08" Offset="0x1994" />
|
||||
<Limb Name="object_bb_Standardlimb_0019A0" Type="Standard" EnumName="OBJECT_BB_LIMB_09" Offset="0x19A0" />
|
||||
<Limb Name="object_bb_Standardlimb_0019AC" Type="Standard" EnumName="OBJECT_BB_LIMB_0A" Offset="0x19AC" />
|
||||
<Limb Name="object_bb_Standardlimb_0019B8" Type="Standard" EnumName="OBJECT_BB_LIMB_0B" Offset="0x19B8" />
|
||||
<Limb Name="object_bb_Standardlimb_0019C4" Type="Standard" EnumName="OBJECT_BB_LIMB_0C" Offset="0x19C4" />
|
||||
<Limb Name="object_bb_Standardlimb_0019D0" Type="Standard" EnumName="OBJECT_BB_LIMB_0D" Offset="0x19D0" />
|
||||
<Limb Name="object_bb_Standardlimb_0019DC" Type="Standard" EnumName="OBJECT_BB_LIMB_0E" Offset="0x19DC" />
|
||||
<Limb Name="object_bb_Standardlimb_0019E8" Type="Standard" EnumName="OBJECT_BB_LIMB_0F" Offset="0x19E8" />
|
||||
<Skeleton Name="object_bb_Skel_001A30" Type="Normal" LimbType="Standard" LimbNone="OBJECT_BB_LIMB_NONE" LimbMax="OBJECT_BB_LIMB_MAX" EnumName="object_bb_Limbs" Offset="0x1A30" />
|
||||
<!-- Bubble Animations -->
|
||||
<Animation Name="gBubbleAttackAnim" Offset="0x184" /> <!-- Original name is "bb_atack" -->
|
||||
<Animation Name="gBubblePainAnim" Offset="0x2AC" /> <!-- Original name might be "bb_damage". Unused. -->
|
||||
<Animation Name="gBubbleFlyingAnim" Offset="0x444" /> <!-- Original name is "bb_fly" -->
|
||||
|
||||
<!-- Bubble Limb DisplayLimbs -->
|
||||
<DList Name="gBubbleLeftWingWebbingDL" Offset="0xC20" />
|
||||
<DList Name="gBubbleLeftWingBoneDL" Offset="0xCB0" />
|
||||
<DList Name="gBubbleJawDL" Offset="0xD40" />
|
||||
<DList Name="gBubbleCraniumDL" Offset="0xE08" />
|
||||
<DList Name="gBubbleRightWingBoneDL" Offset="0x1100" />
|
||||
<DList Name="gBubbleRightWingWebbingDL" Offset="0x1190" />
|
||||
|
||||
<!-- Bubble Textures -->
|
||||
<Texture Name="gBubbleEyeSocketBottomTex" OutName="eye_socket_bottom" Format="rgba16" Width="16" Height="16" Offset="0x1220" />
|
||||
<Texture Name="gBubbleNostrilTex" OutName="nostril" Format="rgba16" Width="8" Height="8" Offset="0x1420" />
|
||||
<Texture Name="gBubbleEyeSocketTopAndJawTex" OutName="eye_socket_top_and_jaw" Format="rgba16" Width="4" Height="4" Offset="0x14A0" />
|
||||
<Texture Name="gBubbleCraniumTopTex" OutName="cranium_top" Format="rgba16" Width="8" Height="8" Offset="0x14C0" />
|
||||
<Texture Name="gBubbleCraniumSidesAndBackTex" OutName="cranium_sides_and_back" Format="rgba16" Width="8" Height="8" Offset="0x1540" />
|
||||
<Texture Name="gBubbleEyeGlowTex" OutName="eye_glow" Format="rgba16" Width="8" Height="8" Offset="0x15C0" />
|
||||
<Texture Name="gBubbleWingBoneTex" OutName="wing_bone" Format="rgba16" Width="16" Height="8" Offset="0x1640" />
|
||||
<Texture Name="gBubbleWingWebbingTex" OutName="wing_webbing" Format="rgba16" Width="16" Height="16" Offset="0x1740" />
|
||||
|
||||
<!-- Bubble Limbs -->
|
||||
<Limb Name="gBubbleRootLimb" Type="Standard" EnumName="BUBBLE_LIMB_ROOT" Offset="0x1940" />
|
||||
<Limb Name="gBubbleCraniumRootLimb" Type="Standard" EnumName="BUBBLE_LIMB_CRANIUM_ROOT" Offset="0x194C" />
|
||||
<Limb Name="gBubbleJawRootLimb" Type="Standard" EnumName="BUBBLE_LIMB_JAW_ROOT" Offset="0x1958" />
|
||||
<Limb Name="gBubbleJawLimb" Type="Standard" EnumName="BUBBLE_LIMB_JAW" Offset="0x1964" />
|
||||
<Limb Name="gBubbleLeftWingRootLimb" Type="Standard" EnumName="BUBBLE_LIMB_LEFT_WING_ROOT" Offset="0x1970" />
|
||||
<Limb Name="gBubbleLeftWingWrapperLimb" Type="Standard" EnumName="BUBBLE_LIMB_LEFT_WING_WRAPPER" Offset="0x197C" />
|
||||
<Limb Name="gBubbleLeftWingWebbingRootLimb" Type="Standard" EnumName="BUBBLE_LIMB_LEFT_WING_WEBBING_ROOT" Offset="0x1988" />
|
||||
<Limb Name="gBubbleLeftWingWebbingLimb" Type="Standard" EnumName="BUBBLE_LIMB_LEFT_WING_WEBBING" Offset="0x1994" />
|
||||
<Limb Name="gBubbleLeftWingBoneLimb" Type="Standard" EnumName="BUBBLE_LIMB_LEFT_WING_BONE" Offset="0x19A0" />
|
||||
<Limb Name="gBubbleRightWingRootLimb" Type="Standard" EnumName="BUBBLE_LIMB_RIGHT_WING_ROOT" Offset="0x19AC" />
|
||||
<Limb Name="gBubbleRightWingWrapperLimb" Type="Standard" EnumName="BUBBLE_LIMB_RIGHT_WING_WRAPPER" Offset="0x19B8" />
|
||||
<Limb Name="gBubbleRightWingWebbingRootLimb" Type="Standard" EnumName="BUBBLE_LIMB_RIGHT_WING_WEBBING_ROOT" Offset="0x19C4" />
|
||||
<Limb Name="gBubbleRightWingWebbingLimb" Type="Standard" EnumName="BUBBLE_LIMB_RIGHT_WING_WEBBING" Offset="0x19D0" />
|
||||
<Limb Name="gBubbleRightWingBoneLimb" Type="Standard" EnumName="BUBBLE_LIMB_RIGHT_WING_BONE" Offset="0x19DC" />
|
||||
<Limb Name="gBubbleCraniumLimb" Type="Standard" EnumName="BUBBLE_LIMB_CRANIUM" Offset="0x19E8" />
|
||||
|
||||
<!-- Bubble Skeleton -->
|
||||
<Skeleton Name="gBubbleSkel" Type="Normal" LimbType="Standard" LimbNone="BUBBLE_LIMB_NONE" LimbMax="BUBBLE_LIMB_MAX" EnumName="BubbleLimbs" Offset="0x1A30" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,99 +1,125 @@
|
||||
<Root>
|
||||
<!-- Assets for the Twinmold boss fight (Twinmold itself, the props in its arena, its title card, etc.)-->
|
||||
<File Name="object_boss02" Segment="6">
|
||||
<Texture Name="object_boss02_Tex_000000" OutName="tex_000000" Format="i4" Width="32" Height="32" Offset="0x0" />
|
||||
<DList Name="object_boss02_DL_000230" Offset="0x230" />
|
||||
<DList Name="object_boss02_DL_0002E0" Offset="0x2E0" />
|
||||
<Texture Name="object_boss02_Tex_000300" OutName="tex_000300" Format="rgba16" Width="4" Height="4" Offset="0x300" />
|
||||
<Texture Name="object_boss02_TLUT_000320" OutName="tlut_000320" Format="rgba16" Width="4" Height="4" Offset="0x320" />
|
||||
<Texture Name="object_boss02_TLUT_000340" OutName="tlut_000340" Format="rgba16" Width="4" Height="4" Offset="0x340" />
|
||||
<Texture Name="object_boss02_TLUT_000360" OutName="tlut_000360" Format="rgba16" Width="4" Height="4" Offset="0x360" />
|
||||
<Texture Name="object_boss02_TLUT_000380" OutName="tlut_000380" Format="rgba16" Width="4" Height="4" Offset="0x380" />
|
||||
<Texture Name="object_boss02_Tex_0003A0" OutName="tex_0003A0" Format="ci4" Width="64" Height="64" Offset="0x3A0" />
|
||||
<Texture Name="object_boss02_Tex_000BA0" OutName="tex_000BA0" Format="rgba16" Width="32" Height="32" Offset="0xBA0" />
|
||||
<Texture Name="object_boss02_Tex_0013A0" OutName="tex_0013A0" Format="ci4" Width="64" Height="64" Offset="0x13A0" />
|
||||
<Texture Name="object_boss02_Tex_001BA0" OutName="tex_001BA0" Format="ci4" Width="64" Height="64" Offset="0x1BA0" />
|
||||
<Texture Name="object_boss02_Tex_0023A0" OutName="tex_0023A0" Format="rgba16" Width="16" Height="32" Offset="0x23A0" />
|
||||
<Texture Name="object_boss02_Tex_0027A0" OutName="tex_0027A0" Format="ci4" Width="64" Height="64" Offset="0x27A0" />
|
||||
<Texture Name="object_boss02_Tex_002FA0" OutName="tex_002FA0" Format="ci4" Width="64" Height="64" Offset="0x2FA0" />
|
||||
<Texture Name="object_boss02_Tex_0037A0" OutName="tex_0037A0" Format="rgba16" Width="16" Height="16" Offset="0x37A0" />
|
||||
<Texture Name="object_boss02_Tex_0039A0" OutName="tex_0039A0" Format="rgba16" Width="32" Height="32" Offset="0x39A0" />
|
||||
<Texture Name="object_boss02_Tex_0041A0" OutName="tex_0041A0" Format="ci4" Width="64" Height="64" Offset="0x41A0" />
|
||||
<Animation Name="object_boss02_Anim_004A1C" Offset="0x4A1C" />
|
||||
<DList Name="object_boss02_DL_006160" Offset="0x6160" />
|
||||
<DList Name="object_boss02_DL_006820" Offset="0x6820" />
|
||||
<DList Name="object_boss02_DL_0068C8" Offset="0x68C8" />
|
||||
<DList Name="object_boss02_DL_006970" Offset="0x6970" />
|
||||
<DList Name="object_boss02_DL_006A18" Offset="0x6A18" />
|
||||
<DList Name="object_boss02_DL_006AC0" Offset="0x6AC0" />
|
||||
<DList Name="object_boss02_DL_006C68" Offset="0x6C68" />
|
||||
<DList Name="object_boss02_DL_006FD0" Offset="0x6FD0" />
|
||||
<Texture Name="object_boss02_TLUT_007158" OutName="tlut_007158" Format="rgba16" Width="4" Height="4" Offset="0x7158" />
|
||||
<Texture Name="object_boss02_Tex_007178" OutName="tex_007178" Format="ci4" Width="64" Height="64" Offset="0x7178" />
|
||||
<DList Name="object_boss02_DL_007A88" Offset="0x7A88" />
|
||||
<DList Name="object_boss02_DL_007D18" Offset="0x7D18" />
|
||||
<Texture Name="object_boss02_TLUT_007E30" OutName="tlut_007E30" Format="rgba16" Width="4" Height="4" Offset="0x7E30" />
|
||||
<Texture Name="object_boss02_Tex_007E50" OutName="tex_007E50" Format="ci4" Width="64" Height="64" Offset="0x7E50" />
|
||||
<Texture Name="object_boss02_Tex_008650" OutName="tex_008650" Format="ia8" Width="128" Height="40" Offset="0x8650" />
|
||||
<Limb Name="object_boss02_Standardlimb_009A50" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_01" Offset="0x9A50" />
|
||||
<Limb Name="object_boss02_Standardlimb_009A5C" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_02" Offset="0x9A5C" />
|
||||
<Limb Name="object_boss02_Standardlimb_009A68" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_03" Offset="0x9A68" />
|
||||
<Limb Name="object_boss02_Standardlimb_009A74" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_04" Offset="0x9A74" />
|
||||
<Limb Name="object_boss02_Standardlimb_009A80" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_05" Offset="0x9A80" />
|
||||
<Limb Name="object_boss02_Standardlimb_009A8C" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_06" Offset="0x9A8C" />
|
||||
<Limb Name="object_boss02_Standardlimb_009A98" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_07" Offset="0x9A98" />
|
||||
<Limb Name="object_boss02_Standardlimb_009AA4" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_08" Offset="0x9AA4" />
|
||||
<Limb Name="object_boss02_Standardlimb_009AB0" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_09" Offset="0x9AB0" />
|
||||
<Limb Name="object_boss02_Standardlimb_009ABC" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_0A" Offset="0x9ABC" />
|
||||
<Limb Name="object_boss02_Standardlimb_009AC8" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_0B" Offset="0x9AC8" />
|
||||
<Limb Name="object_boss02_Standardlimb_009AD4" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_0C" Offset="0x9AD4" />
|
||||
<Skeleton Name="object_boss02_Skel_009B10" Type="Normal" LimbType="Standard" LimbNone="OBJECT_BOSS02_1_LIMB_NONE" LimbMax="OBJECT_BOSS02_1_LIMB_MAX" EnumName="object_boss02_1_Limbs" Offset="0x9B10" />
|
||||
<Animation Name="object_boss02_Anim_009C78" Offset="0x9C78" />
|
||||
<!-- <Blob Name="object_boss02_Blob_009C88" Size="0x18" Offset="0x9C88" /> -->
|
||||
<DList Name="object_boss02_DL_00ECF0" Offset="0xECF0" />
|
||||
<DList Name="object_boss02_DL_00EF90" Offset="0xEF90" />
|
||||
<DList Name="object_boss02_DL_00F310" Offset="0xF310" />
|
||||
<DList Name="object_boss02_DL_00F690" Offset="0xF690" />
|
||||
<DList Name="object_boss02_DL_00FA10" Offset="0xFA10" />
|
||||
<DList Name="object_boss02_DL_00FD90" Offset="0xFD90" />
|
||||
<DList Name="object_boss02_DL_010110" Offset="0x10110" />
|
||||
<DList Name="object_boss02_DL_010490" Offset="0x10490" />
|
||||
<DList Name="object_boss02_DL_010810" Offset="0x10810" />
|
||||
<DList Name="object_boss02_DL_010B90" Offset="0x10B90" />
|
||||
<DList Name="object_boss02_DL_010F10" Offset="0x10F10" />
|
||||
<DList Name="object_boss02_DL_011290" Offset="0x11290" />
|
||||
<DList Name="object_boss02_DL_011610" Offset="0x11610" />
|
||||
<DList Name="object_boss02_DL_011990" Offset="0x11990" />
|
||||
<DList Name="object_boss02_DL_011D10" Offset="0x11D10" />
|
||||
<DList Name="object_boss02_DL_012090" Offset="0x12090" />
|
||||
<DList Name="object_boss02_DL_012410" Offset="0x12410" />
|
||||
<DList Name="object_boss02_DL_012790" Offset="0x12790" />
|
||||
<DList Name="object_boss02_DL_012B10" Offset="0x12B10" />
|
||||
<DList Name="object_boss02_DL_012E90" Offset="0x12E90" />
|
||||
<DList Name="object_boss02_DL_013210" Offset="0x13210" />
|
||||
<DList Name="object_boss02_DL_013590" Offset="0x13590" />
|
||||
<Limb Name="object_boss02_Standardlimb_013818" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_01" Offset="0x13818" />
|
||||
<Limb Name="object_boss02_Standardlimb_013824" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_02" Offset="0x13824" />
|
||||
<Limb Name="object_boss02_Standardlimb_013830" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_03" Offset="0x13830" />
|
||||
<Limb Name="object_boss02_Standardlimb_01383C" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_04" Offset="0x1383C" />
|
||||
<Limb Name="object_boss02_Standardlimb_013848" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_05" Offset="0x13848" />
|
||||
<Limb Name="object_boss02_Standardlimb_013854" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_06" Offset="0x13854" />
|
||||
<Limb Name="object_boss02_Standardlimb_013860" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_07" Offset="0x13860" />
|
||||
<Limb Name="object_boss02_Standardlimb_01386C" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_08" Offset="0x1386C" />
|
||||
<Limb Name="object_boss02_Standardlimb_013878" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_09" Offset="0x13878" />
|
||||
<Limb Name="object_boss02_Standardlimb_013884" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_0A" Offset="0x13884" />
|
||||
<Limb Name="object_boss02_Standardlimb_013890" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_0B" Offset="0x13890" />
|
||||
<Limb Name="object_boss02_Standardlimb_01389C" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_0C" Offset="0x1389C" />
|
||||
<Limb Name="object_boss02_Standardlimb_0138A8" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_0D" Offset="0x138A8" />
|
||||
<Limb Name="object_boss02_Standardlimb_0138B4" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_0E" Offset="0x138B4" />
|
||||
<Limb Name="object_boss02_Standardlimb_0138C0" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_0F" Offset="0x138C0" />
|
||||
<Limb Name="object_boss02_Standardlimb_0138CC" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_10" Offset="0x138CC" />
|
||||
<Limb Name="object_boss02_Standardlimb_0138D8" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_11" Offset="0x138D8" />
|
||||
<Limb Name="object_boss02_Standardlimb_0138E4" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_12" Offset="0x138E4" />
|
||||
<Limb Name="object_boss02_Standardlimb_0138F0" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_13" Offset="0x138F0" />
|
||||
<Limb Name="object_boss02_Standardlimb_0138FC" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_14" Offset="0x138FC" />
|
||||
<Limb Name="object_boss02_Standardlimb_013908" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_15" Offset="0x13908" />
|
||||
<Limb Name="object_boss02_Standardlimb_013914" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_16" Offset="0x13914" />
|
||||
<Limb Name="object_boss02_Standardlimb_013920" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_17" Offset="0x13920" />
|
||||
<Skeleton Name="object_boss02_Skel_013988" Type="Flex" LimbType="Standard" LimbNone="OBJECT_BOSS02_2_LIMB_NONE" LimbMax="OBJECT_BOSS02_2_LIMB_MAX" EnumName="object_boss02_2_Limbs" Offset="0x13988" />
|
||||
<!-- DisplayLists and Textures for the dust that appears wherever Twinmold contacts the ground -->
|
||||
<Texture Name="gTwinmoldDustMaskTex" OutName="dust_mask" Format="i4" Width="32" Height="32" Offset="0x0" />
|
||||
<DList Name="gTwinmoldDustMaterialDL" Offset="0x230" />
|
||||
<DList Name="gTwinmoldDustModelDL" Offset="0x2E0" />
|
||||
|
||||
<!-- Twinmold Textures -->
|
||||
<Texture Name="gTwinmoldSkinTLUT" OutName="twinmold_skin_tlut" Format="rgba16" Width="4" Height="4" Offset="0x300" />
|
||||
<Texture Name="gTwinmoldSnoutTLUT" OutName="twinmold_snout_tlut" Format="rgba16" Width="4" Height="4" Offset="0x320" />
|
||||
<Texture Name="gTwinmoldVeinsTLUT" OutName="twinmold_veins_tlut" Format="rgba16" Width="4" Height="4" Offset="0x340" />
|
||||
<Texture Name="gTwinmoldUndersideTLUT" OutName="twinmold_underside_tlut" Format="rgba16" Width="4" Height="4" Offset="0x360" />
|
||||
<Texture Name="gTwinmoldSpikeAndMandibleTLUT" OutName="twinmold_spike_and_mandible_tlut" Format="rgba16" Width="4" Height="4" Offset="0x380" />
|
||||
<Texture Name="gTwinmoldRedSkinTex" OutName="twinmold_red_skin" Format="ci4" Width="64" Height="64" Offset="0x3A0" TlutOffset="0x300" />
|
||||
<Texture Name="gTwinmoldEyeTex" OutName="twinmold_eye" Format="rgba16" Width="32" Height="32" Offset="0xBA0" />
|
||||
<Texture Name="gTwinmoldSnoutTex" OutName="twinmold_snout" Format="ci4" Width="64" Height="64" Offset="0x13A0" />
|
||||
<Texture Name="gTwinmoldVeinsTex" OutName="twinmold_veins" Format="ci4" Width="64" Height="64" Offset="0x1BA0" />
|
||||
<Texture Name="gTwinmoldTeethTex" OutName="twinmold_teeth" Format="rgba16" Width="16" Height="32" Offset="0x23A0" />
|
||||
<Texture Name="gTwinmoldUndersideTex" OutName="twinmold_underside" Format="ci4" Width="64" Height="64" Offset="0x27A0" />
|
||||
<Texture Name="gTwinmoldSpikeAndMandibleTex" OutName="twinmold_spike_and_mandible" Format="ci4" Width="64" Height="64" Offset="0x2FA0" />
|
||||
<Texture Name="gTwinmoldAntennaTex" OutName="twinmold_antenna" Format="rgba16" Width="16" Height="16" Offset="0x37A0" />
|
||||
<Texture Name="gTwinmoldTailGemTex" OutName="twinmold_tail_gem" Format="rgba16" Width="32" Height="32" Offset="0x39A0" />
|
||||
<Texture Name="gTwinmoldBlueSkinTex" OutName="twinmold_blue_skin" Format="ci4" Width="64" Height="64" Offset="0x41A0" TlutOffset="0x300"/>
|
||||
|
||||
<!-- Unused, completely motionless Twinmold Head animation -->
|
||||
<Animation Name="gTwinmoldHeadStationaryAnim" Offset="0x4A1C" />
|
||||
|
||||
<!-- Twinmold Head Limb DisplayLists -->
|
||||
<DList Name="gTwinmoldHeadDL" Offset="0x6160" />
|
||||
<DList Name="gTwinmoldHeadLeftAntennaBackDL" Offset="0x6820" />
|
||||
<DList Name="gTwinmoldHeadLeftAntennaFrontDL" Offset="0x68C8" />
|
||||
<DList Name="gTwinmoldHeadRightAntennaBackDL" Offset="0x6970" />
|
||||
<DList Name="gTwinmoldHeadRightAntennaFrontDL" Offset="0x6A18" />
|
||||
<DList Name="gTwinmoldHeadLeftMandibleDL" Offset="0x6AC0" />
|
||||
<DList Name="gTwinmoldHeadRightMandibleDL" Offset="0x6C68" />
|
||||
|
||||
<!-- DisplayLists and Textures for the destructible props in Twinmold's arena -->
|
||||
<DList Name="gTwinmoldPyramidRuinDL" Offset="0x6FD0" />
|
||||
<Texture Name="gTwinmoldPyramidRuinTLUT" OutName="pyramid_ruin_tlut" Format="rgba16" Width="4" Height="4" Offset="0x7158" />
|
||||
<Texture Name="gTwinmoldPyramidRuinTex" OutName="pyramid_ruin" Format="ci4" Width="64" Height="64" Offset="0x7178" />
|
||||
<DList Name="gRuinFragmentDL" Offset="0x7A88" />
|
||||
<DList Name="gTwinmoldMajoraPillarDL" Offset="0x7D18" />
|
||||
<Texture Name="gTwinmoldMajoraPillarTLUT" OutName="majora_pillar_tlut" Format="rgba16" Width="4" Height="4" Offset="0x7E30" />
|
||||
<Texture Name="gTwinmoldMajoraPillarTex" OutName="majora_pillar" Format="ci4" Width="64" Height="64" Offset="0x7E50" />
|
||||
|
||||
<!-- Twinmold Title Card -->
|
||||
<Texture Name="gTwinmoldTitleCardTex" OutName="twinmold_title_card" Format="ia8" Width="128" Height="40" Offset="0x8650" />
|
||||
|
||||
<!-- Twinmold Head Limbs -->
|
||||
<Limb Name="gTwinmoldHeadRootLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_ROOT" Offset="0x9A50" />
|
||||
<Limb Name="gTwinmoldHeadLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_HEAD" Offset="0x9A5C" />
|
||||
<Limb Name="gTwinmoldHeadRightMandibleRootLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_RIGHT_MANDIBLE_ROOT" Offset="0x9A68" />
|
||||
<Limb Name="gTwinmoldHeadRightMandibleLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_RIGHT_MANDIBLE" Offset="0x9A74" />
|
||||
<Limb Name="gTwinmoldHeadLeftMandibleRootLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_LEFT_MANDIBLE_ROOT" Offset="0x9A80" />
|
||||
<Limb Name="gTwinmoldHeadLeftMandibleLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_LEFT_MANDIBLE" Offset="0x9A8C" />
|
||||
<Limb Name="gTwinmoldHeadRightAntennaRootLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_RIGHT_ANTENNA_ROOT" Offset="0x9A98" />
|
||||
<Limb Name="gTwinmoldHeadRightAntennaBackLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_RIGHT_ANTENNA_BACK" Offset="0x9AA4" />
|
||||
<Limb Name="gTwinmoldHeadRightAntennaFrontLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_RIGHT_ANTENNA_FRONT" Offset="0x9AB0" />
|
||||
<Limb Name="gTwinmoldHeadLeftAntennaRootLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_LEFT_ANTENNA_ROOT" Offset="0x9ABC" />
|
||||
<Limb Name="gTwinmoldHeadLeftAntennaBackLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_LEFT_ANTENNA_BACK" Offset="0x9AC8" />
|
||||
<Limb Name="gTwinmoldHeadLeftAntennaFrontLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_LEFT_ANTENNA_FRONT" Offset="0x9AD4" />
|
||||
|
||||
<!-- Twinmold Head Skeleton -->
|
||||
<Skeleton Name="gTwinmoldHeadSkel" Type="Normal" LimbType="Standard" LimbNone="TWINMOLD_HEAD_LIMB_NONE" LimbMax="TWINMOLD_HEAD_LIMB_MAX" EnumName="TwinmoldHeadLimbs" Offset="0x9B10" />
|
||||
|
||||
<!-- The only used animation for Twinmold's Head -->
|
||||
<Animation Name="gTwinmoldHeadFlyAnim" Offset="0x9C78" />
|
||||
|
||||
<!-- Unused Empty Texture Animation -->
|
||||
<TextureAnimation Name="gTwinmoldUnusedTexAnim" Offset="0x9C90" />
|
||||
|
||||
<!-- Twinmold Body Limb DisplayLists -->
|
||||
<DList Name="gTwinmoldBodySegment1DL" Offset="0xECF0" />
|
||||
<DList Name="gTwinmoldBodySegment2DL" Offset="0xEF90" />
|
||||
<DList Name="gTwinmoldBodySegment3DL" Offset="0xF310" />
|
||||
<DList Name="gTwinmoldBodySegment4DL" Offset="0xF690" />
|
||||
<DList Name="gTwinmoldBodySegment5DL" Offset="0xFA10" />
|
||||
<DList Name="gTwinmoldBodySegment6DL" Offset="0xFD90" />
|
||||
<DList Name="gTwinmoldBodySegment7DL" Offset="0x10110" />
|
||||
<DList Name="gTwinmoldBodySegment8DL" Offset="0x10490" />
|
||||
<DList Name="gTwinmoldBodySegment9DL" Offset="0x10810" />
|
||||
<DList Name="gTwinmoldBodySegment10DL" Offset="0x10B90" />
|
||||
<DList Name="gTwinmoldBodySegment11DL" Offset="0x10F10" />
|
||||
<DList Name="gTwinmoldBodySegment12DL" Offset="0x11290" />
|
||||
<DList Name="gTwinmoldBodySegment13DL" Offset="0x11610" />
|
||||
<DList Name="gTwinmoldBodySegment14DL" Offset="0x11990" />
|
||||
<DList Name="gTwinmoldBodySegment15DL" Offset="0x11D10" />
|
||||
<DList Name="gTwinmoldBodySegment16DL" Offset="0x12090" />
|
||||
<DList Name="gTwinmoldBodySegment17DL" Offset="0x12410" />
|
||||
<DList Name="gTwinmoldBodySegment18DL" Offset="0x12790" />
|
||||
<DList Name="gTwinmoldBodySegment19DL" Offset="0x12B10" />
|
||||
<DList Name="gTwinmoldBodySegment20DL" Offset="0x12E90" />
|
||||
<DList Name="gTwinmoldBodySegment21DL" Offset="0x13210" />
|
||||
<DList Name="gTwinmoldBodyTailDL" Offset="0x13590" />
|
||||
|
||||
<!-- Twinmold Body Limbs -->
|
||||
<Limb Name="gTwinmoldBodyRootLimb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_ROOT" Offset="0x13818" />
|
||||
<Limb Name="gTwinmoldBodySegment1Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_1" Offset="0x13824" />
|
||||
<Limb Name="gTwinmoldBodySegment2Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_2" Offset="0x13830" />
|
||||
<Limb Name="gTwinmoldBodySegment3Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_3" Offset="0x1383C" />
|
||||
<Limb Name="gTwinmoldBodySegment4Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_4" Offset="0x13848" />
|
||||
<Limb Name="gTwinmoldBodySegment5Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_5" Offset="0x13854" />
|
||||
<Limb Name="gTwinmoldBodySegment6Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_6" Offset="0x13860" />
|
||||
<Limb Name="gTwinmoldBodySegment7Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_7" Offset="0x1386C" />
|
||||
<Limb Name="gTwinmoldBodySegment8Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_8" Offset="0x13878" />
|
||||
<Limb Name="gTwinmoldBodySegment9Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_9" Offset="0x13884" />
|
||||
<Limb Name="gTwinmoldBodySegment10Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_10" Offset="0x13890" />
|
||||
<Limb Name="gTwinmoldBodySegment11Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_11" Offset="0x1389C" />
|
||||
<Limb Name="gTwinmoldBodySegment12Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_12" Offset="0x138A8" />
|
||||
<Limb Name="gTwinmoldBodySegment13Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_13" Offset="0x138B4" />
|
||||
<Limb Name="gTwinmoldBodySegment14Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_14" Offset="0x138C0" />
|
||||
<Limb Name="gTwinmoldBodySegment15Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_15" Offset="0x138CC" />
|
||||
<Limb Name="gTwinmoldBodySegment16Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_16" Offset="0x138D8" />
|
||||
<Limb Name="gTwinmoldBodySegment17Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_17" Offset="0x138E4" />
|
||||
<Limb Name="gTwinmoldBodySegment18Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_18" Offset="0x138F0" />
|
||||
<Limb Name="gTwinmoldBodySegment19Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_19" Offset="0x138FC" />
|
||||
<Limb Name="gTwinmoldBodySegment20Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_20" Offset="0x13908" />
|
||||
<Limb Name="gTwinmoldBodySegment21Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_21" Offset="0x13914" />
|
||||
<Limb Name="gTwinmoldBodyTailLimb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_TAIL" Offset="0x13920" />
|
||||
|
||||
<!-- Unused Twinmold Body Skeleton -->
|
||||
<Skeleton Name="gTwinmoldBodySkel" Type="Flex" LimbType="Standard" LimbNone="TWINMOLD_BODY_LIMB_NONE" LimbMax="TWINMOLD_BODY_LIMB_MAX" EnumName="TwinmoldBodyLimbs" Offset="0x13988" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -49,23 +49,23 @@
|
||||
<Texture Name="gGyorgTitleCardTex" OutName="gyorg_title_card" Format="i8" Width="128" Height="40" Offset="0x7EC8" />
|
||||
|
||||
<!-- Gyorg Limbs -->
|
||||
<Limb Name="gGyorgRootLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_01" Offset="0x92C8" />
|
||||
<Limb Name="gGyorgHeadLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_02" Offset="0x92D4" />
|
||||
<Limb Name="gGyorgBodyRootLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_03" Offset="0x92E0" />
|
||||
<Limb Name="gGyorgUpperTrunkLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_04" Offset="0x92EC" />
|
||||
<Limb Name="gGyorgLowerTrunkLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_05" Offset="0x92F8" />
|
||||
<Limb Name="gGyorgTailLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_06" Offset="0x9304" />
|
||||
<Limb Name="gGyorgRightFinRootLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_07" Offset="0x9310" />
|
||||
<Limb Name="gGyorgUpperRightFinLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_08" Offset="0x931C" />
|
||||
<Limb Name="gGyorgLowerRightFinLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_09" Offset="0x9328" />
|
||||
<Limb Name="gGyorgLeftFinRootLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_0A" Offset="0x9334" />
|
||||
<Limb Name="gGyorgUpperLeftFinLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_0B" Offset="0x9340" />
|
||||
<Limb Name="gGyorgLowerLeftFinLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_0C" Offset="0x934C" />
|
||||
<Limb Name="gGyorgJawRootLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_0D" Offset="0x9358" />
|
||||
<Limb Name="gGyorgJawLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_0E" Offset="0x9364" />
|
||||
<Limb Name="gGyorgRootLimb" Type="Standard" EnumName="GYORG_LIMB_ROOT" Offset="0x92C8" />
|
||||
<Limb Name="gGyorgHeadLimb" Type="Standard" EnumName="GYORG_LIMB_HEAD" Offset="0x92D4" />
|
||||
<Limb Name="gGyorgBodyRootLimb" Type="Standard" EnumName="GYORG_LIMB_BODY_ROOT" Offset="0x92E0" />
|
||||
<Limb Name="gGyorgUpperTrunkLimb" Type="Standard" EnumName="GYORG_LIMB_UPPER_TRUNK" Offset="0x92EC" />
|
||||
<Limb Name="gGyorgLowerTrunkLimb" Type="Standard" EnumName="GYORG_LIMB_LOWER_TRUNK" Offset="0x92F8" />
|
||||
<Limb Name="gGyorgTailLimb" Type="Standard" EnumName="GYORG_LIMB_TAIL" Offset="0x9304" />
|
||||
<Limb Name="gGyorgRightFinRootLimb" Type="Standard" EnumName="GYORG_LIMB_RIGHT_FIN_ROOT" Offset="0x9310" />
|
||||
<Limb Name="gGyorgUpperRightFinLimb" Type="Standard" EnumName="GYORG_LIMB_UPPER_RIGHT_FIN" Offset="0x931C" />
|
||||
<Limb Name="gGyorgLowerRightFinLimb" Type="Standard" EnumName="GYORG_LIMB_LOWER_RIGHT_FIN" Offset="0x9328" />
|
||||
<Limb Name="gGyorgLeftFinRootLimb" Type="Standard" EnumName="GYORG_LIMB_LEFT_FIN_ROOT" Offset="0x9334" />
|
||||
<Limb Name="gGyorgUpperLeftFinLimb" Type="Standard" EnumName="GYORG_LIMB_UPPER_LEFT_FIN" Offset="0x9340" />
|
||||
<Limb Name="gGyorgLowerLeftFinLimb" Type="Standard" EnumName="GYORG_LIMB_LOWER_LEFT_FIN" Offset="0x934C" />
|
||||
<Limb Name="gGyorgJawRootLimb" Type="Standard" EnumName="GYORG_LIMB_JAW_ROOT" Offset="0x9358" />
|
||||
<Limb Name="gGyorgJawLimb" Type="Standard" EnumName="GYORG_LIMB_JAW" Offset="0x9364" />
|
||||
|
||||
<!-- Gyorg Skeleton-->
|
||||
<Skeleton Name="gGyorgSkel" Type="Flex" LimbType="Standard" LimbNone="OBJECT_BOSS03_1_LIMB_NONE" LimbMax="OBJECT_BOSS03_1_LIMB_MAX" EnumName="object_boss03_1_Limbs" Offset="0x93A8" />
|
||||
<Skeleton Name="gGyorgSkel" Type="Flex" LimbType="Standard" LimbNone="GYORG_LIMB_NONE" LimbMax="GYORG_LIMB_MAX" EnumName="GyorgLimbs" Offset="0x93A8" />
|
||||
|
||||
<!-- Gyorg Animations -->
|
||||
<Animation Name="gGyorgFloppingAnim" Offset="0x9554" /> <!-- Original name is "bus_dead" -->
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
<Root>
|
||||
<File Name="object_crow" Segment="6">
|
||||
<Animation Name="object_crow_Anim_0000F0" Offset="0xF0" />
|
||||
<DList Name="object_crow_DL_000490" Offset="0x490" />
|
||||
<DList Name="object_crow_DL_0005E0" Offset="0x5E0" />
|
||||
<DList Name="object_crow_DL_0006B0" Offset="0x6B0" />
|
||||
<DList Name="object_crow_DL_000770" Offset="0x770" />
|
||||
<DList Name="object_crow_DL_000840" Offset="0x840" />
|
||||
<DList Name="object_crow_DL_000900" Offset="0x900" />
|
||||
<DList Name="object_crow_DL_0009A0" Offset="0x9A0" />
|
||||
<Texture Name="object_crow_Tex_000A40" OutName="tex_000A40" Format="rgba16" Width="16" Height="16" Offset="0xA40" />
|
||||
<Texture Name="object_crow_Tex_000C40" OutName="tex_000C40" Format="rgba16" Width="16" Height="16" Offset="0xC40" />
|
||||
<Texture Name="object_crow_Tex_000E40" OutName="tex_000E40" Format="rgba16" Width="16" Height="16" Offset="0xE40" />
|
||||
<Limb Name="object_crow_Standardlimb_001040" Type="Standard" EnumName="OBJECT_CROW_LIMB_01" Offset="0x1040" />
|
||||
<Limb Name="object_crow_Standardlimb_00104C" Type="Standard" EnumName="OBJECT_CROW_LIMB_02" Offset="0x104C" />
|
||||
<Limb Name="object_crow_Standardlimb_001058" Type="Standard" EnumName="OBJECT_CROW_LIMB_03" Offset="0x1058" />
|
||||
<Limb Name="object_crow_Standardlimb_001064" Type="Standard" EnumName="OBJECT_CROW_LIMB_04" Offset="0x1064" />
|
||||
<Limb Name="object_crow_Standardlimb_001070" Type="Standard" EnumName="OBJECT_CROW_LIMB_05" Offset="0x1070" />
|
||||
<Limb Name="object_crow_Standardlimb_00107C" Type="Standard" EnumName="OBJECT_CROW_LIMB_06" Offset="0x107C" />
|
||||
<Limb Name="object_crow_Standardlimb_001088" Type="Standard" EnumName="OBJECT_CROW_LIMB_07" Offset="0x1088" />
|
||||
<Limb Name="object_crow_Standardlimb_001094" Type="Standard" EnumName="OBJECT_CROW_LIMB_08" Offset="0x1094" />
|
||||
<Skeleton Name="object_crow_Skel_0010C0" Type="Flex" LimbType="Standard" LimbNone="OBJECT_CROW_LIMB_NONE" LimbMax="OBJECT_CROW_LIMB_MAX" EnumName="object_crow_Limbs" Offset="0x10C0" />
|
||||
<Animation Name="gGuayFlyAnim" Offset="0xF0" />
|
||||
<DList Name="gGuayBodyDL" Offset="0x490" />
|
||||
<DList Name="gGuayRightWingTipDL" Offset="0x5E0" />
|
||||
<DList Name="gGuayRightWingBodyDL" Offset="0x6B0" />
|
||||
<DList Name="gGuayLeftWingTipDL" Offset="0x770" />
|
||||
<DList Name="gGuayLeftWingBodyDL" Offset="0x840" />
|
||||
<DList Name="gGuayTailDL" Offset="0x900" />
|
||||
<DList Name="gGuayUpperTailDL" Offset="0x9A0" />
|
||||
<Texture Name="gGuayBodyTex" OutName="body" Format="rgba16" Width="16" Height="16" Offset="0xA40" />
|
||||
<Texture Name="gGuayEyeTex" OutName="eye" Format="rgba16" Width="16" Height="16" Offset="0xC40" />
|
||||
<Texture Name="gGuayTailTex" OutName="tail" Format="rgba16" Width="16" Height="16" Offset="0xE40" />
|
||||
<Limb Name="gGuayRootLimb" Type="Standard" EnumName="OBJECT_CROW_LIMB_ROOT" Offset="0x1040" />
|
||||
<Limb Name="gGuayBodyLimb" Type="Standard" EnumName="OBJECT_CROW_LIMB_BODY" Offset="0x104C" />
|
||||
<Limb Name="gGuayRightWingBodyLimb" Type="Standard" EnumName="OBJECT_CROW_LIMB_RIGHT_WING_BODY" Offset="0x1058" />
|
||||
<Limb Name="gGuayRightWingTipLimb" Type="Standard" EnumName="OBJECT_CROW_LIMB_RIGHT_WING_TIP" Offset="0x1064" />
|
||||
<Limb Name="gGuayLeftWingBodyLimb" Type="Standard" EnumName="OBJECT_CROW_LIMB_LEFT_WING_BODY" Offset="0x1070" />
|
||||
<Limb Name="gGuayLeftWingTipLimb" Type="Standard" EnumName="OBJECT_CROW_LIMB_LEFT_WING_TIP" Offset="0x107C" />
|
||||
<Limb Name="gGuayUpperTailLimb" Type="Standard" EnumName="OBJECT_CROW_LIMB_UPPER_TAIL" Offset="0x1088" />
|
||||
<Limb Name="gGuayTailLimb" Type="Standard" EnumName="OBJECT_CROW_LIMB_TAIL" Offset="0x1094" />
|
||||
<Skeleton Name="gGuaySkel" Type="Flex" LimbType="Standard" LimbNone="OBJECT_CROW_LIMB_NONE" LimbMax="OBJECT_CROW_LIMB_MAX" EnumName="objectCrowLimbs" Offset="0x10C0" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<Animation Name="object_cs_Anim_0057C8" Offset="0x57C8" />
|
||||
<Animation Name="object_cs_Anim_005DC4" Offset="0x5DC4" />
|
||||
<Animation Name="object_cs_Anim_0060E8" Offset="0x60E8" />
|
||||
<Animation Name="object_cs_Anim_0064B8" Offset="0x64B8" />
|
||||
<Animation Name="gBomberIdleAnim" Offset="0x64B8" />
|
||||
<DList Name="object_cs_DL_009130" Offset="0x9130" />
|
||||
<DList Name="object_cs_DL_009478" Offset="0x9478" />
|
||||
<DList Name="object_cs_DL_009578" Offset="0x9578" />
|
||||
@@ -62,7 +62,7 @@
|
||||
<Texture Name="object_cs_Tex_00D520" OutName="tex_00D520" Format="rgba16" Width="32" Height="32" Offset="0xD520" />
|
||||
<Texture Name="object_cs_Tex_00DD20" OutName="tex_00DD20" Format="i8" Width="32" Height="32" Offset="0xDD20" />
|
||||
<Texture Name="object_cs_Tex_00E120" OutName="tex_00E120" Format="i8" Width="16" Height="16" Offset="0xE120" />
|
||||
<Blob Name="object_cs_Blob_00E220" Size="0x400" Offset="0xE220" />
|
||||
<Texture Name="object_cs_Tex_00E220" OutName="tex_00E220" Format="i8" Width="32" Height="32" Offset="0xE220"/>
|
||||
<Texture Name="object_cs_Tex_00E620" OutName="tex_00E620" Format="i8" Width="32" Height="32" Offset="0xE620" />
|
||||
<Texture Name="object_cs_Tex_00EA20" OutName="tex_00EA20" Format="i8" Width="32" Height="32" Offset="0xEA20" />
|
||||
<Texture Name="object_cs_Tex_00EE20" OutName="tex_00EE20" Format="i8" Width="32" Height="32" Offset="0xEE20" />
|
||||
|
||||
@@ -1,42 +1,55 @@
|
||||
<Root>
|
||||
<!-- Assets for Deku Scrubs and their flowers -->
|
||||
<File Name="object_dekunuts" Segment="6">
|
||||
<Animation Name="object_dekunuts_Anim_000168" Offset="0x168" />
|
||||
<DList Name="object_dekunuts_DL_000A00" Offset="0xA00" />
|
||||
<DList Name="object_dekunuts_DL_000AA8" Offset="0xAA8" />
|
||||
<DList Name="object_dekunuts_DL_000B40" Offset="0xB40" />
|
||||
<DList Name="object_dekunuts_DL_000BE8" Offset="0xBE8" />
|
||||
<DList Name="object_dekunuts_DL_000C80" Offset="0xC80" />
|
||||
<DList Name="object_dekunuts_DL_000D90" Offset="0xD90" />
|
||||
<DList Name="object_dekunuts_DL_000E30" Offset="0xE30" />
|
||||
<DList Name="object_dekunuts_DL_000F20" Offset="0xF20" />
|
||||
<DList Name="object_dekunuts_DL_001050" Offset="0x1050" />
|
||||
<Texture Name="object_dekunuts_Tex_0010F0" OutName="tex_0010F0" Format="rgba16" Width="8" Height="8" Offset="0x10F0" />
|
||||
<Texture Name="object_dekunuts_Tex_001170" OutName="tex_001170" Format="rgba16" Width="8" Height="8" Offset="0x1170" />
|
||||
<Texture Name="object_dekunuts_Tex_0011F0" OutName="tex_0011F0" Format="rgba16" Width="32" Height="32" Offset="0x11F0" />
|
||||
<Texture Name="object_dekunuts_Tex_0019F0" OutName="tex_0019F0" Format="rgba16" Width="8" Height="8" Offset="0x19F0" />
|
||||
<Texture Name="object_dekunuts_Tex_001A70" OutName="tex_001A70" Format="rgba16" Width="16" Height="16" Offset="0x1A70" />
|
||||
<DList Name="object_dekunuts_DL_001E50" Offset="0x1E50" />
|
||||
<DList Name="object_dekunuts_DL_001F50" Offset="0x1F50" />
|
||||
<Texture Name="object_dekunuts_Tex_001FD8" OutName="tex_001FD8" Format="rgba16" Width="16" Height="32" Offset="0x1FD8" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_0023D8" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_01" Offset="0x23D8" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_0023E4" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_02" Offset="0x23E4" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_0023F0" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_03" Offset="0x23F0" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_0023FC" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_04" Offset="0x23FC" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_002408" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_05" Offset="0x2408" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_002414" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_06" Offset="0x2414" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_002420" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_07" Offset="0x2420" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_00242C" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_08" Offset="0x242C" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_002438" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_09" Offset="0x2438" />
|
||||
<Skeleton Name="object_dekunuts_Skel_002468" Type="Normal" LimbType="Standard" LimbNone="OBJECT_DEKUNUTS_LIMB_NONE" LimbMax="OBJECT_DEKUNUTS_LIMB_MAX" EnumName="object_dekunuts_Limbs" Offset="0x2468" />
|
||||
<Animation Name="object_dekunuts_Anim_00259C" Offset="0x259C" />
|
||||
<Animation Name="object_dekunuts_Anim_002950" Offset="0x2950" />
|
||||
<Animation Name="object_dekunuts_Anim_002A5C" Offset="0x2A5C" />
|
||||
<Animation Name="object_dekunuts_Anim_002BD4" Offset="0x2BD4" />
|
||||
<Animation Name="object_dekunuts_Anim_002DD4" Offset="0x2DD4" />
|
||||
<Animation Name="object_dekunuts_Anim_002FA4" Offset="0x2FA4" />
|
||||
<Animation Name="object_dekunuts_Anim_003180" Offset="0x3180" />
|
||||
<Animation Name="object_dekunuts_Anim_00326C" Offset="0x326C" />
|
||||
<Animation Name="object_dekunuts_Anim_0033E4" Offset="0x33E4" />
|
||||
<Animation Name="object_dekunuts_Anim_003780" Offset="0x3780" />
|
||||
<Animation Name="gDekuScrubSpitAnim" Offset="0x168" /> <!-- Original name is "dn_atack" -->
|
||||
|
||||
<!-- Deku Scrub Limb DisplayLists -->
|
||||
<DList Name="gDekuScrubRightFootDL" Offset="0xA00" />
|
||||
<DList Name="gDekuScrubRightLegDL" Offset="0xAA8" />
|
||||
<DList Name="gDekuScrubLeftFootDL" Offset="0xB40" />
|
||||
<DList Name="gDekuScrubLeftLegDL" Offset="0xBE8" />
|
||||
<DList Name="gDekuScrubSnoutDL" Offset="0xC80" />
|
||||
<DList Name="gDekuScrubCrestDL" Offset="0xD90" />
|
||||
<DList Name="gDekuScrubHeaddressDL" Offset="0xE30" />
|
||||
<DList Name="gDekuScrubHeadDL" Offset="0xF20" />
|
||||
<DList Name="gDekuScrubBodyDL" Offset="0x1050" />
|
||||
|
||||
<!-- Deku Scrub Textures -->
|
||||
<Texture Name="gDekuScrubSnoutTex" OutName="deku_scrub_snout" Format="rgba16" Width="8" Height="8" Offset="0x10F0" />
|
||||
<Texture Name="gDekuScrubMouthTex" OutName="deku_scrub_mouth" Format="rgba16" Width="8" Height="8" Offset="0x1170" />
|
||||
<Texture Name="gDekuScrubLeafTex" OutName="deku_scrub_leaf" Format="rgba16" Width="32" Height="32" Offset="0x11F0" />
|
||||
<Texture Name="gDekuScrubEyeTex" OutName="deku_scrub_eye" Format="rgba16" Width="8" Height="8" Offset="0x19F0" />
|
||||
<Texture Name="gDekuScrubSkinTex" OutName="deku_scrub_skin" Format="rgba16" Width="16" Height="16" Offset="0x1A70" />
|
||||
|
||||
<!-- Deku Scrub Flower and Flower Fragment DisplayLists and Textures -->
|
||||
<DList Name="gDekuScrubFlowerDL" Offset="0x1E50" />
|
||||
<DList Name="gDekuScrubFlowerFragmentDL" Offset="0x1F50" />
|
||||
<Texture Name="gDekuScrubFlowerFragmentTex" OutName="deku_scrub_flower_fragment" Format="rgba16" Width="16" Height="32" Offset="0x1FD8" />
|
||||
|
||||
<!-- Deku Scrub Limbs -->
|
||||
<Limb Name="gDekuScrubBodyLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_BODY" Offset="0x23D8" />
|
||||
<Limb Name="gDekuScrubHeadLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_HEAD" Offset="0x23E4" />
|
||||
<Limb Name="gDekuScrubHeaddressLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_HEADDRESS" Offset="0x23F0" />
|
||||
<Limb Name="gDekuScrubCrestLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_CREST" Offset="0x23FC" />
|
||||
<Limb Name="gDekuScrubSnoutLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_SNOUT" Offset="0x2408" />
|
||||
<Limb Name="gDekuScrubLeftLegLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_LEFT_LEG" Offset="0x2414" />
|
||||
<Limb Name="gDekuScrubLeftFootLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_LEFT_FOOT" Offset="0x2420" />
|
||||
<Limb Name="gDekuScrubRightLegLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_RIGHT_LEG" Offset="0x242C" />
|
||||
<Limb Name="gDekuScrubRightFootLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_RIGHT_FOOT" Offset="0x2438" />
|
||||
|
||||
<!-- Deku Scrub Skeleton -->
|
||||
<Skeleton Name="gDekuScrubSkel" Type="Normal" LimbType="Standard" LimbNone="DEKU_SCRUB_LIMB_NONE" LimbMax="DEKU_SCRUB_LIMB_MAX" EnumName="DekuScrubLimbs" Offset="0x2468" />
|
||||
|
||||
<!-- Deku Scrub Animations -->
|
||||
<Animation Name="gDekuScrubDamageAnim" Offset="0x259C" /> <!-- Original name is "dn_damage" -->
|
||||
<Animation Name="gDekuScrubStandingIdleAnim" Offset="0x2950" /> <!-- Original name is "dn_demowait" -->
|
||||
<Animation Name="gDekuScrubBurrowAnim" Offset="0x2A5C" /> <!-- Original name is "dn_dig" -->
|
||||
<Animation Name="gDekuScrubDieAnim" Offset="0x2BD4" /> <!-- Original name is "dn_down" -->
|
||||
<Animation Name="gDekuScrubUnburrowAnim" Offset="0x2DD4" /> <!-- Original name is "dn_jump" -->
|
||||
<Animation Name="gDekuScrubLookAroundAnim" Offset="0x2FA4" /> <!-- Original name is "dn_lookaround" -->
|
||||
<Animation Name="gDekuScrubUpAnim" Offset="0x3180" /> <!-- Original name is "dn_start" -->
|
||||
<Animation Name="gDekuScrubIdleAnim" Offset="0x326C" /> <!-- Original name is "dn_wait" -->
|
||||
<Animation Name="gDekuScrubPantingAnim" Offset="0x33E4" /> <!-- Original name is "dn_wait02" -->
|
||||
<Animation Name="gDekuScrubRunAnim" Offset="0x3780" /> <!-- Original name is "dn_walk" -->
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,50 +1,51 @@
|
||||
<Root>
|
||||
<!-- Assets for Deku Palace Guards -->
|
||||
<File Name="object_dnk" Segment="6">
|
||||
<Animation Name="object_dnk_Anim_00031C" Offset="0x31C" />
|
||||
<Animation Name="object_dnk_Anim_000430" Offset="0x430" />
|
||||
<Animation Name="object_dnk_Anim_0006CC" Offset="0x6CC" />
|
||||
<Animation Name="object_dnk_Anim_000894" Offset="0x894" />
|
||||
<Animation Name="object_dnk_Anim_000B70" Offset="0xB70" />
|
||||
<Texture Name="object_dnk_Tex_000B80" OutName="tex_000B80" Format="rgba16" Width="32" Height="32" Offset="0xB80" />
|
||||
<Texture Name="object_dnk_Tex_001380" OutName="tex_001380" Format="rgba16" Width="16" Height="16" Offset="0x1380" />
|
||||
<Texture Name="object_dnk_Tex_001580" OutName="tex_001580" Format="rgba16" Width="8" Height="8" Offset="0x1580" />
|
||||
<Texture Name="object_dnk_Tex_001600" OutName="tex_001600" Format="rgba16" Width="8" Height="8" Offset="0x1600" />
|
||||
<Texture Name="object_dnk_Tex_001680" OutName="tex_001680" Format="rgba16" Width="8" Height="8" Offset="0x1680" />
|
||||
<Texture Name="object_dnk_Tex_001700" OutName="tex_001700" Format="rgba16" Width="8" Height="8" Offset="0x1700" />
|
||||
<Texture Name="object_dnk_Tex_001780" OutName="tex_001780" Format="rgba16" Width="8" Height="8" Offset="0x1780" />
|
||||
<DList Name="object_dnk_DL_001DD0" Offset="0x1DD0" />
|
||||
<DList Name="object_dnk_DL_001E58" Offset="0x1E58" />
|
||||
<DList Name="object_dnk_DL_001E68" Offset="0x1E68" />
|
||||
<DList Name="object_dnk_DL_001EF0" Offset="0x1EF0" />
|
||||
<DList Name="object_dnk_DL_001F00" Offset="0x1F00" />
|
||||
<DList Name="object_dnk_DL_001F90" Offset="0x1F90" />
|
||||
<DList Name="object_dnk_DL_001FA0" Offset="0x1FA0" />
|
||||
<DList Name="object_dnk_DL_002030" Offset="0x2030" />
|
||||
<DList Name="object_dnk_DL_002040" Offset="0x2040" />
|
||||
<DList Name="object_dnk_DL_0020F0" Offset="0x20F0" />
|
||||
<DList Name="object_dnk_DL_002100" Offset="0x2100" />
|
||||
<DList Name="object_dnk_DL_002188" Offset="0x2188" />
|
||||
<DList Name="object_dnk_DL_002198" Offset="0x2198" />
|
||||
<DList Name="object_dnk_DL_002240" Offset="0x2240" />
|
||||
<DList Name="object_dnk_DL_002250" Offset="0x2250" />
|
||||
<DList Name="object_dnk_DL_0022F8" Offset="0x22F8" />
|
||||
<DList Name="object_dnk_DL_002308" Offset="0x2308" />
|
||||
<DList Name="object_dnk_DL_002400" Offset="0x2400" />
|
||||
<DList Name="object_dnk_DL_002410" Offset="0x2410" />
|
||||
<DList Name="object_dnk_DL_002510" Offset="0x2510" />
|
||||
<DList Name="object_dnk_DL_002700" Offset="0x2700" />
|
||||
<Limb Name="object_dnk_Standardlimb_0027A8" Type="Standard" EnumName="OBJECT_DNK_LIMB_01" Offset="0x27A8" />
|
||||
<Limb Name="object_dnk_Standardlimb_0027B4" Type="Standard" EnumName="OBJECT_DNK_LIMB_02" Offset="0x27B4" />
|
||||
<Limb Name="object_dnk_Standardlimb_0027C0" Type="Standard" EnumName="OBJECT_DNK_LIMB_03" Offset="0x27C0" />
|
||||
<Limb Name="object_dnk_Standardlimb_0027CC" Type="Standard" EnumName="OBJECT_DNK_LIMB_04" Offset="0x27CC" />
|
||||
<Limb Name="object_dnk_Standardlimb_0027D8" Type="Standard" EnumName="OBJECT_DNK_LIMB_05" Offset="0x27D8" />
|
||||
<Limb Name="object_dnk_Standardlimb_0027E4" Type="Standard" EnumName="OBJECT_DNK_LIMB_06" Offset="0x27E4" />
|
||||
<Limb Name="object_dnk_Standardlimb_0027F0" Type="Standard" EnumName="OBJECT_DNK_LIMB_07" Offset="0x27F0" />
|
||||
<Limb Name="object_dnk_Standardlimb_0027FC" Type="Standard" EnumName="OBJECT_DNK_LIMB_08" Offset="0x27FC" />
|
||||
<Limb Name="object_dnk_Standardlimb_002808" Type="Standard" EnumName="OBJECT_DNK_LIMB_09" Offset="0x2808" />
|
||||
<Limb Name="object_dnk_Standardlimb_002814" Type="Standard" EnumName="OBJECT_DNK_LIMB_0A" Offset="0x2814" />
|
||||
<Skeleton Name="object_dnk_Skel_002848" Type="Normal" LimbType="Standard" LimbNone="OBJECT_DNK_LIMB_NONE" LimbMax="OBJECT_DNK_LIMB_MAX" EnumName="object_dnk_Limbs" Offset="0x2848" />
|
||||
<Animation Name="object_dnk_Anim_002A08" Offset="0x2A08" />
|
||||
<Animation Name="object_dnk_Anim_002B6C" Offset="0x2B6C" />
|
||||
<Animation Name="gDekuPalaceGuardAttackAnim" Offset="0x31C" /> <!-- Original named: dnk_attack -->
|
||||
<Animation Name="gDekuPalaceGuardDigAnim" Offset="0x430" /> <!-- Original named: dnk_dig -->
|
||||
<Animation Name="gDekuPalaceGuardHappyAnim" Offset="0x6CC" /> <!-- Original named: dnk_happy -->
|
||||
<Animation Name="gDekuPalaceGuardJumpAnim" Offset="0x894" /> <!-- Original named: dnk_jump -->
|
||||
<Animation Name="gDekuPalaceGuardStartAnim" Offset="0xB70" /> <!-- Original named: dnk_start -->
|
||||
<Texture Name="gDekuPalaceGuardLeafTorsoTex" OutName="deku_palace_guard_leaf_torso" Format="rgba16" Width="32" Height="32" Offset="0xB80" />
|
||||
<Texture Name="gDekuPalaceGuardFootTex" OutName="deku_palace_guard_foot" Format="rgba16" Width="16" Height="16" Offset="0x1380" />
|
||||
<Texture Name="gDekuPalaceGuardHeadTex" OutName="deku_palace_guard_head" Format="rgba16" Width="8" Height="8" Offset="0x1580" />
|
||||
<Texture Name="gDekuPalaceGuardMouthTex" OutName="deku_palace_guard_mouth" Format="rgba16" Width="8" Height="8" Offset="0x1600" />
|
||||
<Texture Name="gDekuPalaceGuardEyeOpenTex" OutName="deku_palace_guard_eye_open" Format="rgba16" Width="8" Height="8" Offset="0x1680" />
|
||||
<Texture Name="gDekuPalaceGuardEyeHalfTex" OutName="deku_palace_guard_eye_half" Format="rgba16" Width="8" Height="8" Offset="0x1700" />
|
||||
<Texture Name="gDekuPalaceGuardEyeClosedTex" OutName="deku_palace_guard_eye_closed" Format="rgba16" Width="8" Height="8" Offset="0x1780" />
|
||||
<DList Name="gDekuPalaceGuardRightLeafDL" Offset="0x1DD0" />
|
||||
<DList Name="gDekuPalaceGuardRightLeaf2DL" Offset="0x1E58" />
|
||||
<DList Name="gDekuPalaceGuardLeftLeafDL" Offset="0x1E68" />
|
||||
<DList Name="gDekuPalaceGuardLeftLeaf2DL" Offset="0x1EF0" />
|
||||
<DList Name="gDekuPalaceGuardRearLeafDL" Offset="0x1F00" />
|
||||
<DList Name="gDekuPalaceGuardRearLeaf2DL" Offset="0x1F90" />
|
||||
<DList Name="gDekuPalaceGuardCenterLeafDL" Offset="0x1FA0" />
|
||||
<DList Name="gDekuPalaceGuardCenterLeaf2DL" Offset="0x2030" />
|
||||
<DList Name="gDekuPalaceGuardTorsoDL" Offset="0x2040" />
|
||||
<DList Name="gDekuPalaceGuardTorso2DL" Offset="0x20F0" />
|
||||
<DList Name="gDekuPalaceGuardEyesDL" Offset="0x2100" />
|
||||
<DList Name="gDekuPalaceGuardEyes2DL" Offset="0x2188" />
|
||||
<DList Name="gDekuPalaceGuardRightFootDL" Offset="0x2198" />
|
||||
<DList Name="gDekuPalaceGuardRightFoot2DL" Offset="0x2240" />
|
||||
<DList Name="gDekuPalaceGuardLeftFootDL" Offset="0x2250" />
|
||||
<DList Name="gDekuPalaceGuardLeftFoot2DL" Offset="0x22F8" />
|
||||
<DList Name="gDekuPalaceGuardHeadDL" Offset="0x2308" />
|
||||
<DList Name="gDekuPalaceGuardHead2DL" Offset="0x2400" />
|
||||
<DList Name="gDekuPalaceGuardSnoutDL" Offset="0x2410" />
|
||||
<DList Name="gDekuPalaceGuardSnout2DL" Offset="0x2510" />
|
||||
<DList Name="gDekuPalaceGuardFlower" Offset="0x2700" />
|
||||
<Limb Name="gDekuPalaceGuardTorsoLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_TORSO" Offset="0x27A8" />
|
||||
<Limb Name="gDekuPalaceGuardHeadLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_HEAD" Offset="0x27B4" />
|
||||
<Limb Name="gDekuPalaceGuardLeftLeafLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_LEFT_LEAF" Offset="0x27C0" />
|
||||
<Limb Name="gDekuPalaceGuardRightLeafLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_RIGHT_LEAF" Offset="0x27CC" />
|
||||
<Limb Name="gDekuPalaceGuardCenterLeafLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_CENTER_LEAF" Offset="0x27D8" />
|
||||
<Limb Name="gDekuPalaceGuardRearLeafLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_REAR_LEAF" Offset="0x27E4" />
|
||||
<Limb Name="gDekuPalaceGuardSnoutLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_SNOUT" Offset="0x27F0" />
|
||||
<Limb Name="gDekuPalaceGuardEyesLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_EYES" Offset="0x27FC" />
|
||||
<Limb Name="gDekuPalaceGuardLeftFootLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_LEFT_FOOT" Offset="0x2808" />
|
||||
<Limb Name="gDekuPalaceGuardRightFootLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_RIGHT_FOOT" Offset="0x2814" />
|
||||
<Skeleton Name="gDekuPalaceGuardSkel" Type="Normal" LimbType="Standard" LimbNone="DEKU_PALACE_GUARD_LIMB_NONE" LimbMax="DEKU_PALACE_GUARD_LIMB_MAX" EnumName="DekuPalaceGuardLimbs" Offset="0x2848" />
|
||||
<Animation Name="gDekuPalaceGuardWaitAnim" Offset="0x2A08" /> <!-- Original named: dnk_wait -->
|
||||
<Animation Name="gDekuPalaceGuardWalkAnim" Offset="0x2B6C" /> <!-- Original named: dnk_walk -->
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,53 +1,65 @@
|
||||
<Root>
|
||||
<!-- Assets for dogs and the arrow that appears over your selected dog in the Doggy Racetrack -->
|
||||
<File Name="object_dog" Segment="6">
|
||||
<Mtx Name="object_dog_Mtx_000130" Offset="0x130" />
|
||||
<DList Name="object_dog_DL_000170" Offset="0x170" />
|
||||
<DList Name="object_dog_DL_000250" Offset="0x250" />
|
||||
<Texture Name="object_dog_Tex_000258" OutName="tex_000258" Format="i8" Width="8" Height="32" Offset="0x258" />
|
||||
<TextureAnimation Name="object_dog_Matanimheader_0003C4" Offset="0x3C4" />
|
||||
<Mtx Name="object_dog_Mtx_000510" Offset="0x510" />
|
||||
<DList Name="object_dog_DL_000550" Offset="0x550" />
|
||||
<DList Name="object_dog_DL_000618" Offset="0x618" />
|
||||
<Texture Name="object_dog_Tex_000620" OutName="tex_000620" Format="i4" Width="16" Height="32" Offset="0x620" />
|
||||
<Animation Name="object_dog_Anim_000998" Offset="0x998" />
|
||||
<Animation Name="object_dog_Anim_001048" Offset="0x1048" />
|
||||
<Animation Name="object_dog_Anim_001348" Offset="0x1348" />
|
||||
<Animation Name="object_dog_Anim_001560" Offset="0x1560" />
|
||||
<Animation Name="object_dog_Anim_0017C0" Offset="0x17C0" />
|
||||
<Animation Name="object_dog_Anim_001A84" Offset="0x1A84" />
|
||||
<Animation Name="object_dog_Anim_001BD8" Offset="0x1BD8" />
|
||||
<Animation Name="object_dog_Anim_001FB0" Offset="0x1FB0" />
|
||||
<Animation Name="object_dog_Anim_0021C8" Offset="0x21C8" />
|
||||
<Texture Name="object_dog_Tex_0021E0" OutName="tex_0021E0" Format="rgba16" Width="32" Height="32" Offset="0x21E0" />
|
||||
<Texture Name="object_dog_Tex_0029E0" OutName="tex_0029E0" Format="rgba16" Width="32" Height="32" Offset="0x29E0" />
|
||||
<Texture Name="object_dog_Tex_0031E0" OutName="tex_0031E0" Format="rgba16" Width="32" Height="32" Offset="0x31E0" />
|
||||
<Texture Name="object_dog_Tex_0039E0" OutName="tex_0039E0" Format="rgba16" Width="32" Height="32" Offset="0x39E0" />
|
||||
<Texture Name="object_dog_Tex_0041E0" OutName="tex_0041E0" Format="rgba16" Width="32" Height="32" Offset="0x41E0" />
|
||||
<Texture Name="object_dog_Tex_0049E0" OutName="tex_0049E0" Format="rgba16" Width="32" Height="32" Offset="0x49E0" />
|
||||
<Texture Name="object_dog_Tex_0051E0" OutName="tex_0051E0" Format="rgba16" Width="16" Height="16" Offset="0x51E0" />
|
||||
<Texture Name="object_dog_Tex_0053E0" OutName="tex_0053E0" Format="rgba16" Width="32" Height="32" Offset="0x53E0" />
|
||||
<DList Name="object_dog_DL_006F40" Offset="0x6F40" />
|
||||
<DList Name="object_dog_DL_0072A8" Offset="0x72A8" />
|
||||
<DList Name="object_dog_DL_007348" Offset="0x7348" />
|
||||
<DList Name="object_dog_DL_0073E8" Offset="0x73E8" />
|
||||
<DList Name="object_dog_DL_007600" Offset="0x7600" />
|
||||
<DList Name="object_dog_DL_0077B0" Offset="0x77B0" />
|
||||
<DList Name="object_dog_DL_007960" Offset="0x7960" />
|
||||
<DList Name="object_dog_DL_007B00" Offset="0x7B00" />
|
||||
<DList Name="object_dog_DL_007CB0" Offset="0x7CB0" />
|
||||
<DList Name="object_dog_DL_007E60" Offset="0x7E60" />
|
||||
<Limb Name="object_dog_Standardlimb_008030" Type="Standard" EnumName="OBJECT_DOG_LIMB_01" Offset="0x8030" />
|
||||
<Limb Name="object_dog_Standardlimb_00803C" Type="Standard" EnumName="OBJECT_DOG_LIMB_02" Offset="0x803C" />
|
||||
<Limb Name="object_dog_Standardlimb_008048" Type="Standard" EnumName="OBJECT_DOG_LIMB_03" Offset="0x8048" />
|
||||
<Limb Name="object_dog_Standardlimb_008054" Type="Standard" EnumName="OBJECT_DOG_LIMB_04" Offset="0x8054" />
|
||||
<Limb Name="object_dog_Standardlimb_008060" Type="Standard" EnumName="OBJECT_DOG_LIMB_05" Offset="0x8060" />
|
||||
<Limb Name="object_dog_Standardlimb_00806C" Type="Standard" EnumName="OBJECT_DOG_LIMB_06" Offset="0x806C" />
|
||||
<Limb Name="object_dog_Standardlimb_008078" Type="Standard" EnumName="OBJECT_DOG_LIMB_07" Offset="0x8078" />
|
||||
<Limb Name="object_dog_Standardlimb_008084" Type="Standard" EnumName="OBJECT_DOG_LIMB_08" Offset="0x8084" />
|
||||
<Limb Name="object_dog_Standardlimb_008090" Type="Standard" EnumName="OBJECT_DOG_LIMB_09" Offset="0x8090" />
|
||||
<Limb Name="object_dog_Standardlimb_00809C" Type="Standard" EnumName="OBJECT_DOG_LIMB_0A" Offset="0x809C" />
|
||||
<Limb Name="object_dog_Standardlimb_0080A8" Type="Standard" EnumName="OBJECT_DOG_LIMB_0B" Offset="0x80A8" />
|
||||
<Limb Name="object_dog_Standardlimb_0080B4" Type="Standard" EnumName="OBJECT_DOG_LIMB_0C" Offset="0x80B4" />
|
||||
<Skeleton Name="object_dog_Skel_0080F0" Type="Flex" LimbType="Standard" LimbNone="OBJECT_DOG_LIMB_NONE" LimbMax="OBJECT_DOG_LIMB_MAX" EnumName="object_dog_Limbs" Offset="0x80F0" />
|
||||
<!-- Unused Selection Arrow with a Texture Animation -->
|
||||
<DList Name="gDogSelectionArrowAnimatedDL" Offset="0x170" /> <!-- Original name is "cursor_00_anim_model" -->
|
||||
<DList Name="gDogSelectionArrowAnimatedEmptyDL" Offset="0x250" /> <!-- Original name is "cursor_00_anim_modelT". Probably meant "transparent" at one point -->
|
||||
<Texture Name="gDogSelectionArrowAnimatedTex" OutName="dog_selection_arrow_animated" Format="i8" Width="8" Height="32" Offset="0x258" />
|
||||
<TextureAnimation Name="gDogSelectionArrowTexAnim" Offset="0x3C4" />
|
||||
|
||||
<!-- Selection Arrow DisplayLists and Texture -->
|
||||
<DList Name="gDogSelectionArrowDL" Offset="0x550" /> <!-- Original name is "cursor_00_none_model" -->
|
||||
<DList Name="gDogSelectionArrowEmptyDL" Offset="0x618" /> <!-- Original name is "cursor_00_none_modelT". Probably meant "transparent" at one point-->
|
||||
<Texture Name="gDogSelectionArrowTex" OutName="dog_selection_arrow" Format="i4" Width="16" Height="32" Offset="0x620" />
|
||||
|
||||
<!-- Dog Animations -->
|
||||
<Animation Name="gDogBarkAnim" Offset="0x998" /> <!-- Original name is "dog_bark" -->
|
||||
<Animation Name="gDogLyingDownAnim" Offset="0x1048" /> <!-- Original name is "dog_fuse" ("lying on the ground") -->
|
||||
<Animation Name="gDogLyingDownLoopAnim" Offset="0x1348" /> <!-- Original name is "dog_fusetamama" ("lying on the ground continues") -->
|
||||
<Animation Name="gDogJumpAnim" Offset="0x1560" /> <!-- Original name is "dog_jump" -->
|
||||
<Animation Name="gDogJump2Anim" Offset="0x17C0" /> <!-- Original name is "dog_jump2" -->
|
||||
<Animation Name="gDogLongJumpAnim" Offset="0x1A84" /> <!-- Original name is "dog_longjump" -->
|
||||
<Animation Name="gDogRunAnim" Offset="0x1BD8" /> <!-- Original name is "dog_run" -->
|
||||
<Animation Name="gDogSitAnim" Offset="0x1FB0" /> <!-- Original name is "dog_sit" -->
|
||||
<Animation Name="gDogWalkAnim" Offset="0x21C8" /> <!-- Original name is "dog_walk" -->
|
||||
|
||||
<!-- Dog Textures -->
|
||||
<Texture Name="gDogFur1Tex" OutName="dog_fur_1" Format="rgba16" Width="32" Height="32" Offset="0x21E0" /> <!-- Lower body, legs, and tail -->
|
||||
<Texture Name="gDogFur2Tex" OutName="dog_fur_2" Format="rgba16" Width="32" Height="32" Offset="0x29E0" /> <!-- Front of ears, back of the tail, and around the feet-->
|
||||
<Texture Name="gDogFur3Tex" OutName="dog_fur_3" Format="rgba16" Width="32" Height="32" Offset="0x31E0" /> <!-- Upper body, top of head-->
|
||||
<Texture Name="gDogFaceAndEyeTex" OutName="dog_face_and_eye" Format="rgba16" Width="32" Height="32" Offset="0x39E0" />
|
||||
<Texture Name="gDogFaceAndNoseTex" OutName="dog_face_and_nose" Format="rgba16" Width="32" Height="32" Offset="0x41E0" />
|
||||
<Texture Name="gDogFur4Tex" OutName="dog_fur_4" Format="rgba16" Width="32" Height="32" Offset="0x49E0" /> <!-- Back of ears, side of head, and part of front body-->
|
||||
<Texture Name="gDogPawTex" OutName="dog_paw" Format="rgba16" Width="16" Height="16" Offset="0x51E0" />
|
||||
<Texture Name="gDogFaceHairTex" OutName="dog_face_hair" Format="rgba16" Width="32" Height="32" Offset="0x53E0" />
|
||||
|
||||
<!-- Dog Limb DisplayLists -->
|
||||
<DList Name="gDogHeadDL" Offset="0x6F40" />
|
||||
<DList Name="gDogRightFaceHairDL" Offset="0x72A8" />
|
||||
<DList Name="gDogLeftFaceHairDL" Offset="0x7348" />
|
||||
<DList Name="gDogBodyFrontDL" Offset="0x73E8" />
|
||||
<DList Name="gDogFrontRightLegDL" Offset="0x7600" />
|
||||
<DList Name="gDogFrontLeftLegDL" Offset="0x77B0" />
|
||||
<DList Name="gDogBodyBackDL" Offset="0x7960" />
|
||||
<DList Name="gDogBackRightLegDL" Offset="0x7B00" />
|
||||
<DList Name="gDogBackLeftLegDL" Offset="0x7CB0" />
|
||||
<DList Name="gDogTailDL" Offset="0x7E60" />
|
||||
|
||||
<!-- Dog Limbs -->
|
||||
<Limb Name="gDogRootLimb" Type="Standard" EnumName="DOG_LIMB_ROOT" Offset="0x8030" />
|
||||
<Limb Name="gDogBodyBackLimb" Type="Standard" EnumName="DOG_LIMB_BODY_BACK" Offset="0x803C" />
|
||||
<Limb Name="gDogBodyFrontLimb" Type="Standard" EnumName="DOG_LIMB_BODY_FRONT" Offset="0x8048" />
|
||||
<Limb Name="gDogHeadRootLimb" Type="Standard" EnumName="DOG_LIMB_HEAD_ROOT" Offset="0x8054" />
|
||||
<Limb Name="gDogHeadLimb" Type="Standard" EnumName="DOG_LIMB_HEAD" Offset="0x8060" />
|
||||
<Limb Name="gDogRightFaceHairLimb" Type="Standard" EnumName="DOG_LIMB_RIGHT_FACE_HAIR" Offset="0x806C" />
|
||||
<Limb Name="gDogLeftFaceHairLimb" Type="Standard" EnumName="DOG_LIMB_LEFT_FACE_HAIR" Offset="0x8078" />
|
||||
<Limb Name="gDogFrontRightLegLimb" Type="Standard" EnumName="DOG_LIMB_FRONT_RIGHT_LEG" Offset="0x8084" />
|
||||
<Limb Name="gDogFrontLeftLegLimb" Type="Standard" EnumName="DOG_LIMB_FRONT_LEFT_LEG" Offset="0x8090" />
|
||||
<Limb Name="gDogBackRightLegLimb" Type="Standard" EnumName="DOG_LIMB_BACK_RIGHT_LEG" Offset="0x809C" />
|
||||
<Limb Name="gDogBackLeftLegLimb" Type="Standard" EnumName="DOG_LIMB_BACK_LEFT_LEG" Offset="0x80A8" />
|
||||
<Limb Name="gDogTailLimb" Type="Standard" EnumName="DOG_LIMB_TAIL" Offset="0x80B4" />
|
||||
|
||||
<!-- Dog Skeleton -->
|
||||
<Skeleton Name="gDogSkel" Type="Flex" LimbType="Standard" LimbNone="DOG_LIMB_NONE" LimbMax="DOG_LIMB_MAX" EnumName="DogLimbs" Offset="0x80F0" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
<Root>
|
||||
<!-- Object for the Gong and KendoKanban board in the Swordsman's School -->
|
||||
<File Name="object_dora" Segment="6">
|
||||
<DList Name="object_dora_DL_000180" Offset="0x180" />
|
||||
<Texture Name="object_dora_Tex_000280" OutName="tex_000280" Format="rgba16" Width="32" Height="64" Offset="0x280" />
|
||||
<Texture Name="object_dora_Tex_001280" OutName="tex_001280" Format="rgba16" Width="32" Height="32" Offset="0x1280" />
|
||||
<DList Name="object_dora_DL_002080" Offset="0x2080" />
|
||||
<DList Name="object_dora_DL_002180" Offset="0x2180" />
|
||||
<DList Name="object_dora_DL_002280" Offset="0x2280" />
|
||||
<DList Name="object_dora_DL_002380" Offset="0x2380" />
|
||||
<Texture Name="object_dora_Tex_002480" OutName="tex_002480" Format="rgba16" Width="32" Height="64" Offset="0x2480" />
|
||||
<Texture Name="object_dora_Tex_003480" OutName="tex_003480" Format="rgba16" Width="32" Height="32" Offset="0x3480" />
|
||||
<DList Name="object_dora_DL_003FD0" Offset="0x3FD0" />
|
||||
<DList Name="object_dora_DL_004160" Offset="0x4160" />
|
||||
<Texture Name="object_dora_Tex_004208" OutName="tex_004208" Format="rgba16" Width="32" Height="32" Offset="0x4208" />
|
||||
<Texture Name="object_dora_Tex_004A08" OutName="tex_004A08" Format="rgba16" Width="16" Height="64" Offset="0x4A08" />
|
||||
<DList Name="gKendoKanbanDL" Offset="0x180" />
|
||||
<Texture Name="gKendoKanbanFrontTex" OutName="kendo_kanban_front" Format="rgba16" Width="32" Height="64" Offset="0x280" />
|
||||
<Texture Name="gKendoKanbanSideTex" OutName="kendo_kanban_side" Format="rgba16" Width="32" Height="32" Offset="0x1280" />
|
||||
<DList Name="gKendoKanbanTopRightDL" Offset="0x2080" />
|
||||
<DList Name="gKendoKanbanTopLeftDL" Offset="0x2180" />
|
||||
<DList Name="gKendoKanbanBottomLeftDL" Offset="0x2280" />
|
||||
<DList Name="gKendoKanbanBottomRightDL" Offset="0x2380" />
|
||||
<Texture Name="gKendoKanbanSplitFrontTex" OutName="kendo_kanban_front_split_alt" Format="rgba16" Width="32" Height="64" Offset="0x2480" />
|
||||
<Texture Name="gKendoKanbanSplitSideTex" OutName="kendo_kanban_side_split_alt" Format="rgba16" Width="32" Height="32" Offset="0x3480" />
|
||||
<DList Name="gDoraChainDL" Offset="0x3FD0" />
|
||||
<DList Name="gDoraGongDL" Offset="0x4160" />
|
||||
<Texture Name="gDoraGongTex" OutName="dora_gong" Format="rgba16" Width="32" Height="32" Offset="0x4208" />
|
||||
<Texture Name="gDoraChainTex" OutName="dora_chain" Format="rgba16" Width="16" Height="64" Offset="0x4A08" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
<Root>
|
||||
<File Name="object_efc_tw" Segment="6">
|
||||
<!-- <Blob Name="object_efc_tw_Blob_000000" Size="0x60" Offset="0x0" /> -->
|
||||
<CurveAnimation Name="object_efc_tw_CurveAnim_000050" SkelOffset="0x12E8" Offset="0x50" />
|
||||
<Array Name="object_efc_tw_Vtx_000060" Count="21" Offset="0x60" >
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="object_efc_tw_DL_0001B0" Offset="0x1B0" />
|
||||
<Texture Name="object_efc_tw_Tex_0002C8" OutName="tex_0002C8" Format="i8" Width="64" Height="64" Offset="0x2C8" />
|
||||
<Limb Name="object_efc_tw_Standardlimb_0012C8" Type="Standard" EnumName="OBJECT_EFC_TW_LIMB_01" Offset="0x12C8" />
|
||||
<Limb Name="object_efc_tw_Standardlimb_0012D4" Type="Standard" EnumName="OBJECT_EFC_TW_LIMB_02" Offset="0x12D4" />
|
||||
<Skeleton Name="object_efc_tw_Skel_0012E8" Type="Normal" LimbType="Standard" LimbNone="OBJECT_EFC_TW_LIMB_NONE" LimbMax="OBJECT_EFC_TW_LIMB_MAX" EnumName="object_efc_tw_Limbs" Offset="0x12E8" />
|
||||
<Limb Name="object_efc_tw_Curvelimb_0012C8" Type="Curve" EnumName="OBJECT_EFC_TW_LIMB_01" Offset="0x12C8" />
|
||||
<Limb Name="object_efc_tw_Curvelimb_0012D4" Type="Curve" EnumName="OBJECT_EFC_TW_LIMB_02" Offset="0x12D4" />
|
||||
<Skeleton Name="object_efc_tw_Skel_0012E8" Type="Curve" LimbType="Curve" LimbNone="OBJECT_EFC_TW_LIMB_NONE" LimbMax="OBJECT_EFC_TW_LIMB_MAX" EnumName="object_efc_tw_Limbs" Offset="0x12E8" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,63 +1,111 @@
|
||||
<Root>
|
||||
<!-- Object for the Curisoity Shop Man -->
|
||||
<File Name="object_fsn" Segment="6">
|
||||
<DList Name="object_fsn_DL_002A20" Offset="0x2A20" />
|
||||
<DList Name="object_fsn_DL_002D88" Offset="0x2D88" />
|
||||
<DList Name="object_fsn_DL_002EF0" Offset="0x2EF0" />
|
||||
<DList Name="object_fsn_DL_0034C8" Offset="0x34C8" />
|
||||
<DList Name="object_fsn_DL_003600" Offset="0x3600" />
|
||||
<DList Name="object_fsn_DL_003718" Offset="0x3718" />
|
||||
<DList Name="object_fsn_DL_003860" Offset="0x3860" />
|
||||
<DList Name="object_fsn_DL_003998" Offset="0x3998" />
|
||||
<DList Name="object_fsn_DL_003AB0" Offset="0x3AB0" />
|
||||
<DList Name="object_fsn_DL_003BF8" Offset="0x3BF8" />
|
||||
<DList Name="object_fsn_DL_003CF0" Offset="0x3CF0" />
|
||||
<DList Name="object_fsn_DL_003DD8" Offset="0x3DD8" />
|
||||
<DList Name="object_fsn_DL_003F20" Offset="0x3F20" />
|
||||
<DList Name="object_fsn_DL_003FF8" Offset="0x3FF8" />
|
||||
<DList Name="object_fsn_DL_0040E0" Offset="0x40E0" />
|
||||
<DList Name="object_fsn_DL_004228" Offset="0x4228" />
|
||||
<Texture Name="object_fsn_TLUT_004300" OutName="tlut_004300" Format="rgba16" Width="16" Height="16" Offset="0x4300" />
|
||||
<Texture Name="object_fsn_TLUT_004500" OutName="tlut_004500" Format="rgba16" Width="16" Height="16" Offset="0x4500" />
|
||||
<Texture Name="object_fsn_TLUT_004700" OutName="tlut_004700" Format="rgba16" Width="16" Height="16" Offset="0x4700" />
|
||||
<Texture Name="object_fsn_TLUT_004900" OutName="tlut_004900" Format="rgba16" Width="16" Height="16" Offset="0x4900" />
|
||||
<Texture Name="object_fsn_Tex_004B00" OutName="tex_004B00" Format="rgba16" Width="16" Height="16" Offset="0x4B00" />
|
||||
<Texture Name="object_fsn_TLUT_004D00" OutName="tlut_004D00" Format="rgba16" Width="16" Height="16" Offset="0x4D00" />
|
||||
<Texture Name="object_fsn_TLUT_004F00" OutName="tlut_004F00" Format="rgba16" Width="16" Height="16" Offset="0x4F00" />
|
||||
<Texture Name="object_fsn_TLUT_005100" OutName="tlut_005100" Format="rgba16" Width="16" Height="16" Offset="0x5100" />
|
||||
<Texture Name="object_fsn_TLUT_005300" OutName="tlut_005300" Format="rgba16" Width="16" Height="16" Offset="0x5300" />
|
||||
<Texture Name="object_fsn_Tex_005500" OutName="tex_005500" Format="ci8" Width="16" Height="16" Offset="0x5500" />
|
||||
<Texture Name="object_fsn_Tex_005600" OutName="tex_005600" Format="ci8" Width="8" Height="8" Offset="0x5600" />
|
||||
<Texture Name="object_fsn_Tex_005640" OutName="tex_005640" Format="ci8" Width="8" Height="16" Offset="0x5640" />
|
||||
<Texture Name="object_fsn_Tex_0056C0" OutName="tex_0056C0" Format="rgba16" Width="16" Height="16" Offset="0x56C0" />
|
||||
<Texture Name="object_fsn_Tex_0058C0" OutName="tex_0058C0" Format="rgba16" Width="16" Height="16" Offset="0x58C0" />
|
||||
<Texture Name="object_fsn_Tex_005AC0" OutName="tex_005AC0" Format="ci8" Width="16" Height="16" Offset="0x5AC0" />
|
||||
<Texture Name="object_fsn_Tex_005BC0" OutName="tex_005BC0" Format="ci8" Width="32" Height="32" Offset="0x5BC0" />
|
||||
<Texture Name="object_fsn_Tex_005FC0" OutName="tex_005FC0" Format="ci8" Width="8" Height="8" Offset="0x5FC0" />
|
||||
<Texture Name="object_fsn_Tex_006000" OutName="tex_006000" Format="ci8" Width="16" Height="16" Offset="0x6000" />
|
||||
<Texture Name="object_fsn_Tex_006100" OutName="tex_006100" Format="ci8" Width="32" Height="32" Offset="0x6100" />
|
||||
<Texture Name="object_fsn_Tex_006500" OutName="tex_006500" Format="ci8" Width="8" Height="8" Offset="0x6500" />
|
||||
<Texture Name="object_fsn_Tex_006540" OutName="tex_006540" Format="rgba16" Width="32" Height="32" Offset="0x6540" />
|
||||
<Texture Name="object_fsn_Tex_006D40" OutName="tex_006D40" Format="ci8" Width="32" Height="32" Offset="0x6D40" />
|
||||
<Texture Name="object_fsn_Tex_007140" OutName="tex_007140" Format="ci8" Width="32" Height="32" Offset="0x7140" />
|
||||
<!-- <Blob Name="object_fsn_Blob_007540" Size="0x4498" Offset="0x7540" /> -->
|
||||
<Animation Name="object_fsn_Anim_00B9D8" Offset="0xB9D8" />
|
||||
<Animation Name="object_fsn_Anim_00C26C" Offset="0xC26C" />
|
||||
<Animation Name="object_fsn_Anim_00C58C" Offset="0xC58C" />
|
||||
<Animation Name="object_fsn_Anim_00CB3C" Offset="0xCB3C" />
|
||||
<Animation Name="object_fsn_Anim_00D354" Offset="0xD354" />
|
||||
<Animation Name="object_fsn_Anim_00DE34" Offset="0xDE34" />
|
||||
<Animation Name="object_fsn_Anim_00E3EC" Offset="0xE3EC" />
|
||||
<Animation Name="object_fsn_Anim_00F00C" Offset="0xF00C" />
|
||||
<DList Name="object_fsn_DL_00F180" Offset="0xF180" />
|
||||
<DList Name="object_fsn_DL_00F218" Offset="0xF218" />
|
||||
<Texture Name="object_fsn_Tex_00F2B0" OutName="tex_00F2B0" Format="rgba16" Width="32" Height="32" Offset="0xF2B0" />
|
||||
<Texture Name="object_fsn_Tex_00FAB0" OutName="tex_00FAB0" Format="rgba16" Width="8" Height="8" Offset="0xFAB0" />
|
||||
<!-- DLists -->
|
||||
<DList Name="gFsnTorsoDL" Offset="0x2A20" />
|
||||
<DList Name="gFsnToupeeDL" Offset="0x2D88" />
|
||||
<DList Name="gFsnHeadDL" Offset="0x2EF0" />
|
||||
<DList Name="gFsnRightUpperArmDL" Offset="0x34C8" />
|
||||
<DList Name="gFsnRightForeArmDL" Offset="0x3600" />
|
||||
<DList Name="gFsnRightHandDL" Offset="0x3718" />
|
||||
<DList Name="gFsnLeftUpperArmDL" Offset="0x3860" />
|
||||
<DList Name="gFsnLeftForeArmDL" Offset="0x3998" />
|
||||
<DList Name="gFsnLeftHandDL" Offset="0x3AB0" />
|
||||
<DList Name="gFsnPelvisDL" Offset="0x3BF8" />
|
||||
<DList Name="gFsnRightThighDL" Offset="0x3CF0" />
|
||||
<DList Name="gFsnRightShinDL" Offset="0x3DD8" />
|
||||
<DList Name="gFsnRightFootDL" Offset="0x3F20" />
|
||||
<DList Name="gFsnLeftThighDL" Offset="0x3FF8" />
|
||||
<DList Name="gFsnLeftShinDL" Offset="0x40E0" />
|
||||
<DList Name="gFsnLeftFootDL" Offset="0x4228" />
|
||||
|
||||
<!-- TLUTs -->
|
||||
<Texture Name="gFsnHandTLUT" OutName="fsn_hand_tlut" Format="rgba16" Width="16" Height="16" Offset="0x4300" />
|
||||
<Texture Name="gFsnSkinTLUT" OutName="fsn_skin_tlut" Format="rgba16" Width="16" Height="16" Offset="0x4500" />
|
||||
<Texture Name="gFsnShirtTLUT" OutName="fsn_shirt_tlut" Format="rgba16" Width="16" Height="16" Offset="0x4700" />
|
||||
<Texture Name="gFsnHairTLUT" OutName="fsn_hair_tlut" Format="rgba16" Width="16" Height="16" Offset="0x4900" />
|
||||
<Texture Name="gFsnEyeTLUT" OutName="fsn_eye_tlut" Format="rgba16" Width="16" Height="16" Offset="0x4B00" />
|
||||
<Texture Name="gFsnEarTLUT" OutName="fsn_ear_tlut" Format="rgba16" Width="16" Height="16" Offset="0x4D00" />
|
||||
<Texture Name="gFsnHairSkinTLUT" OutName="fsn_hair_skin_tlut" Format="rgba16" Width="16" Height="16" Offset="0x4F00" />
|
||||
<Texture Name="gFsnMouthTLUT" OutName="fsn_mouth_tlut" Format="rgba16" Width="16" Height="16" Offset="0x5100" />
|
||||
<Texture Name="gFsnNostrilTLUT" OutName="fsn_nostril_tlut" Format="rgba16" Width="16" Height="16" Offset="0x5300" />
|
||||
|
||||
<!-- Textures -->
|
||||
<Texture Name="gFsnHandTex" OutName="fsn_hand" Format="ci8" Width="16" Height="16" Offset="0x5500" />
|
||||
<Texture Name="gFsnSkinTex" OutName="fsn_skin" Format="ci8" Width="8" Height="8" Offset="0x5600" />
|
||||
<Texture Name="gFsnShirtTex" OutName="fsn_shirt" Format="ci8" Width="8" Height="16" Offset="0x5640" />
|
||||
<Texture Name="gFsnPantsTex" OutName="fsn_pants" Format="rgba16" Width="16" Height="16" Offset="0x56C0" />
|
||||
<Texture Name="gFsnBootsTex" OutName="fsn_boots" Format="rgba16" Width="16" Height="16" Offset="0x58C0" />
|
||||
<Texture Name="gFsnHairTex" OutName="fsn_hair" Format="ci8" Width="16" Height="16" Offset="0x5AC0" />
|
||||
<Texture Name="gFsnEyeOpenTex" OutName="fsn_eye_open" Format="ci8" Width="32" Height="32" Offset="0x5BC0" />
|
||||
<Texture Name="gFsnEarTex" OutName="fsn_ear" Format="ci8" Width="8" Height="8" Offset="0x5FC0" />
|
||||
<Texture Name="gFsnHairSkinTex" OutName="fsn_hair_and_skin" Format="ci8" Width="16" Height="16" Offset="0x6000" />
|
||||
<Texture Name="gFsnMouthTex" OutName="fsn_mouth" Format="ci8" Width="32" Height="32" Offset="0x6100" />
|
||||
<Texture Name="gFsnNostrilTex" OutName="fsn_nostril" Format="ci8" Width="8" Height="8" Offset="0x6500" />
|
||||
<Texture Name="gFsnVestTex" OutName="fsn_vest" Format="rgba16" Width="32" Height="32" Offset="0x6540" />
|
||||
<Texture Name="gFsnEyeHalfTex" OutName="fsn_eye_half" Format="ci8" Width="32" Height="32" Offset="0x6D40" />
|
||||
<Texture Name="gFsnEyeClosedTex" OutName="fsn_eye_closed" Format="ci8" Width="32" Height="32" Offset="0x7140" />
|
||||
|
||||
<!-- Unused -->
|
||||
<!-- <Blob Name="object_fsn_Blob_007540" Size="0x1100" Offset="0x7540" /> -->
|
||||
|
||||
<Texture Name="gFsnUnusedEyeOpenTex" OutName="fsn_unused_eye_open" Format="rgba32" Width="32" Height="32" Offset="0x8640" />
|
||||
<Texture Name="gFsnUnusedEyeHalfTex" OutName="fsn_unused_eye_half" Format="rgba32" Width="32" Height="32" Offset="0x9640" />
|
||||
<Texture Name="gFsnUnusedEyeClosedTex" OutName="fsn_unused_eye_closed" Format="rgba32" Width="32" Height="32" Offset="0xA640" />
|
||||
|
||||
<!-- <Blob Name="object_fsn_Blob_00B640" Size="398" Offset="0xB640" /> -->
|
||||
|
||||
<!-- Animations -->
|
||||
<Animation Name="gFsnSlamCounterStartAnim" Offset="0xB9D8" />
|
||||
<Animation Name="gFsnSlamCounterLoopAnim" Offset="0xC26C" />
|
||||
<Animation Name="gFsnTurnAroundAnim" Offset="0xC58C" />
|
||||
<Animation Name="gFsnHandOnFaceStartAnim" Offset="0xCB3C" />
|
||||
<Animation Name="gFsnHandOnFaceLoopAnim" Offset="0xD354" />
|
||||
<Animation Name="gFsnMakeOfferAnim" Offset="0xDE34" />
|
||||
<Animation Name="gFsnHandsOnCounterStartAnim" Offset="0xE3EC" />
|
||||
<Animation Name="gFsnHandsOnCounterLoopAnim" Offset="0xF00C" />
|
||||
|
||||
|
||||
<!-- Glasses DLists -->
|
||||
<DList Name="gFsnGlassesFrameDL" Offset="0xF180" />
|
||||
<DList Name="gFsnGlassesLensesDL" Offset="0xF218" />
|
||||
|
||||
<!-- Glasses Textures -->
|
||||
<Texture Name="gFsnGlassesLensesTex" OutName="fsn_glasses_lenses" Format="rgba16" Width="32" Height="32" Offset="0xF2B0" />
|
||||
<Texture Name="gFsnGlassesFrameTex" OutName="fsn_glasses_frame" Format="rgba16" Width="8" Height="8" Offset="0xFAB0" />
|
||||
|
||||
<!-- <Blob Name="object_fsn_Blob_00FB30" Size="0x3040" Offset="0xFB30" /> -->
|
||||
<Animation Name="object_fsn_Anim_012C34" Offset="0x12C34" />
|
||||
<Animation Name="object_fsn_Anim_0131FC" Offset="0x131FC" />
|
||||
<LimbTable Name="object_fsn_LimbTable_0132DC" LimbType="Standard" Count="17" Offset="0x132DC"/> <!-- object_fsn_Skel_013320 specifies 18 limbs but only 17 exist, ZAPD breaks if this is not specified manually -->
|
||||
<Skeleton Name="object_fsn_Skel_013320" Type="Flex" LimbType="Standard" Offset="0x13320" />
|
||||
<Animation Name="object_fsn_Anim_0138B0" Offset="0x138B0" />
|
||||
<Animation Name="object_fsn_Anim_01430C" Offset="0x1430C" />
|
||||
|
||||
<!-- Animations -->
|
||||
<Animation Name="gFsnIdleAnim" Offset="0x12C34" />
|
||||
<Animation Name="gFsnScratchBackAnim" Offset="0x131FC" />
|
||||
|
||||
<!-- Limbs -->
|
||||
<Limb Name="gFsnPelvisLimb" Type="Standard" EnumName="FSN_LIMB_PELVIS" Offset="0x13210" />
|
||||
<Limb Name="gFsnLeftThighLimb" Type="Standard" EnumName="FSN_LIMB_LEFT_THIGH" Offset="0x1321C" />
|
||||
<Limb Name="gFsnLeftShinLimb" Type="Standard" EnumName="FSN_LIMB_LEFT_SHIN" Offset="0x13228" />
|
||||
<Limb Name="gFsnLeftFootLimb" Type="Standard" EnumName="FSN_LIMB_LEFT_FOOT" Offset="0x13234" />
|
||||
<Limb Name="gFsnRightThighLimb" Type="Standard" EnumName="FSN_LIMB_RIGHT_THIGH" Offset="0x13240" />
|
||||
<Limb Name="gFsnRightShinLimb" Type="Standard" EnumName="FSN_LIMB_RIGHT_SHIN" Offset="0x1324C" />
|
||||
<Limb Name="gFsnRightFootLimb" Type="Standard" EnumName="FSN_LIMB_RIGHT_FOOT" Offset="0x13258" />
|
||||
<Limb Name="gFsnTorsoLimb" Type="Standard" EnumName="FSN_LIMB_TORSO" Offset="0x13264" />
|
||||
<Limb Name="gFsnLeftUpperArmLimb" Type="Standard" EnumName="FSN_LIMB_LEFT_UPPER_ARM" Offset="0x13270" />
|
||||
<Limb Name="gFsnLeftForearmLimb" Type="Standard" EnumName="FSN_LIMB_LEFT_FOREARM" Offset="0x1327C" />
|
||||
<Limb Name="gFsnLeftHandLimb" Type="Standard" EnumName="FSN_LIMB_LEFT_HAND" Offset="0x13288" />
|
||||
<Limb Name="gFsnRightUpperArmLimb" Type="Standard" EnumName="FSN_LIMB_RIGHT_UPPER_ARM" Offset="0x13294" />
|
||||
<Limb Name="gFsnRightForearmLimb" Type="Standard" EnumName="FSN_LIMB_RIGHT_FOREARM" Offset="0x132A0" />
|
||||
<Limb Name="gFsnRightHandLimb" Type="Standard" EnumName="FSN_LIMB_RIGHT_HAND" Offset="0x132AC" />
|
||||
<Limb Name="gFsnHeadRootLimb" Type="Standard" EnumName="FSN_LIMB_HEAD_ROOT" Offset="0x132B8" />
|
||||
<Limb Name="gFsnHeadLimb" Type="Standard" EnumName="FSN_LIMB_HEAD" Offset="0x132C4" />
|
||||
<Limb Name="gFsnToupeeLimb" Type="Standard" EnumName="FSN_LIMB_TOUPEE" Offset="0x132D0" />
|
||||
|
||||
<!-- Skeleton -->
|
||||
<!-- @bug: gFsnSkel specifies 18 limbs but only 17 exist, ZAPD breaks if gFsnLimbs is not extracted manually -->
|
||||
<LimbTable Name="gFsnLimbs" LimbType="Standard" Count="17" Offset="0x132DC"/>
|
||||
<Skeleton Name="gFsnSkel" Type="Flex" LimbType="Standard" LimbNone="FSN_LIMB_NONE" LimbMax="FSN_LIMB_MAX" EnumName="FsnLimbs" Offset="0x13320" />
|
||||
|
||||
<!-- Animations -->
|
||||
<Animation Name="gFsnLeanForwardStartAnim" Offset="0x138B0" />
|
||||
<Animation Name="gFsnLeanForwardLoopAnim" Offset="0x1430C" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
<Root>
|
||||
<!-- Object for the Clock Town cow statues -->
|
||||
<File Name="object_hariko" Segment="6">
|
||||
<DList Name="object_hariko_DL_000080" Offset="0x80" />
|
||||
<DList Name="object_hariko_DL_000110" Offset="0x110" />
|
||||
<Texture Name="object_hariko_Tex_0001A0" OutName="tex_0001A0" Format="rgba16" Width="8" Height="8" Offset="0x1A0" />
|
||||
<Texture Name="object_hariko_Tex_000220" OutName="tex_000220" Format="rgba16" Width="16" Height="16" Offset="0x220" />
|
||||
<DList Name="gHarikoBodyDL" Offset="0x80" />
|
||||
<DList Name="gHarikoFaceDL" Offset="0x110" />
|
||||
<Texture Name="gHarikoBodyTex" OutName="hariko_body" Format="rgba16" Width="8" Height="8" Offset="0x1A0" />
|
||||
<Texture Name="gHarikoFaceTex" OutName="hariko_face" Format="rgba16" Width="16" Height="16" Offset="0x220" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -10,7 +10,9 @@
|
||||
<DList Name="object_horse_link_child_DL_001568" Offset="0x1568" />
|
||||
<DList Name="object_horse_link_child_DL_001678" Offset="0x1678" />
|
||||
<Texture Name="object_horse_link_child_Tex_001728" OutName="tex_001728" Format="rgba16" Width="16" Height="16" Offset="0x1728" />
|
||||
<!-- <Blob Name="object_horse_link_child_Blob_001928" Size="0x600" Offset="0x1928" /> -->
|
||||
<Texture Name="object_horse_link_child_Tex_001928" OutName="tex_001928" Format="ci8" Width="32" Height="16" Offset="0x1928" />
|
||||
<Texture Name="object_horse_link_child_Tex_001B28" OutName="tex_001B28" Format="ci8" Width="32" Height="16" Offset="0x1B28" />
|
||||
<Texture Name="object_horse_link_child_Tex_001D28" OutName="tex_001D28" Format="ci8" Width="32" Height="16" Offset="0x1D28" />
|
||||
<Texture Name="object_horse_link_child_Tex_001F28" OutName="tex_001F28" Format="rgba16" Width="4" Height="8" Offset="0x1F28" />
|
||||
<Texture Name="object_horse_link_child_Tex_001F68" OutName="tex_001F68" Format="rgba16" Width="16" Height="16" Offset="0x1F68" />
|
||||
<Texture Name="object_horse_link_child_Tex_002168" OutName="tex_002168" Format="rgba16" Width="16" Height="16" Offset="0x2168" />
|
||||
|
||||
@@ -1,15 +1,28 @@
|
||||
<Root>
|
||||
<File Name="object_ice_block" Segment="6">
|
||||
<DList Name="object_ice_block_DL_0001A0" Offset="0x1A0" />
|
||||
<DList Name="object_ice_block_DL_000310" Offset="0x310" />
|
||||
<TextureAnimation Name="object_ice_block_Matanimheader_000328" Offset="0x328" />
|
||||
<Collision Name="object_ice_block_Colheader_000438" Offset="0x438" />
|
||||
<DList Name="object_ice_block_DL_0007F0" Offset="0x7F0" />
|
||||
<DList Name="object_ice_block_DL_0009B8" Offset="0x9B8" />
|
||||
<TextureAnimation Name="object_ice_block_Matanimheader_0009D0" Offset="0x9D0" />
|
||||
<DList Name="object_ice_block_DL_000A30" Offset="0xA30" />
|
||||
<DList Name="object_ice_block_DL_000A38" Offset="0xA38" />
|
||||
<Texture Name="object_ice_block_Tex_000AE0" OutName="tex_000AE0" Format="i4" Width="64" Height="64" Offset="0xAE0" />
|
||||
<Texture Name="object_ice_block_Tex_0012E0" OutName="tex_0012E0" Format="i4" Width="64" Height="64" Offset="0x12E0" />
|
||||
<!-- IceArrow Freezes ChuChu into a Pushable/Climbable Cube block -->
|
||||
<DList Name="gIceBlockCubeDL" Offset="0x1A0" />
|
||||
<DList Name="gIceBlockCubeEndDL" Offset="0x310" />
|
||||
<!-- this TexAnim is for the cube surface -->
|
||||
<TextureAnimation Name="gIceBlockCubeSublimatingAirTexAnim" Offset="0x328" />
|
||||
<Collision Name="gIceBlockDynaColHeader" Offset="0x438" />
|
||||
|
||||
<!-- IceArrow Freezes Octarock into a floating Iceberg platform -->
|
||||
<DList Name="gIceBlockIceBergDL" Offset="0x7F0" />
|
||||
<DList Name="gIceBlockIceBergEndDL" Offset="0x9B8" />
|
||||
<!-- this TexAnim is for the iceberg surface -->
|
||||
<TextureAnimation Name="gIceBlockIceBergSublimatingAirTexAnim" Offset="0x9D0" />
|
||||
|
||||
<!-- Shard of Ice thrown off of IceBlock (EffectEnIceBlock) -->
|
||||
<!-- IceArrow creates frozen block or platform, throws shards during growing animation -->
|
||||
<!-- too big to be a snow flake, more like thin block of ice, better described as "Chip", or "Shard" or "Plate" -->
|
||||
<DList Name="gIceBlockShardEffectEndDL" Offset="0xA30" />
|
||||
<DList Name="gIceBlockShardEffectDL" Offset="0xA38" />
|
||||
|
||||
<!-- These two appear to be identical (but different hash) -->
|
||||
<!-- first is used in CubeDL and ShardDL -->
|
||||
<Texture Name="gIceBlockIceTex1" OutName="ice_texture_1" Format="i4" Width="64" Height="64" Offset="0xAE0" />
|
||||
<!-- second is used in CubeDL and IceBergDL -->
|
||||
<Texture Name="gIceBlockIceTex2" OutName="ice_texture_2" Format="i4" Width="64" Height="64" Offset="0x12E0" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -42,7 +42,13 @@
|
||||
<Texture Name="object_kbt_Tex_00A2F8" OutName="tex_00A2F8" Format="ci8" Width="8" Height="8" Offset="0xA2F8" />
|
||||
<Texture Name="object_kbt_Tex_00A338" OutName="tex_00A338" Format="rgba16" Width="8" Height="8" Offset="0xA338" />
|
||||
<Texture Name="object_kbt_Tex_00A3B8" OutName="tex_00A3B8" Format="ci8" Width="16" Height="32" Offset="0xA3B8" />
|
||||
<!-- <Blob Name="object_kbt_Blob_00A5B8" Size="0x3800" Offset="0xA5B8" /> -->
|
||||
<Texture Name="object_kbt_Tex_00A5B8" OutName="tex_00A5B8" Format="rgba16" Width="32" Height="32" Offset="0xA5B8" />
|
||||
<Texture Name="object_kbt_Tex_00ADB8" OutName="tex_00ADB8" Format="rgba16" Width="32" Height="32" Offset="0xADB8" />
|
||||
<Texture Name="object_kbt_Tex_00B5B8" OutName="tex_00B5B8" Format="rgba16" Width="32" Height="32" Offset="0xB5B8" />
|
||||
<Texture Name="object_kbt_Tex_00BDB8" OutName="tex_00BDB8" Format="rgba16" Width="32" Height="32" Offset="0xBDB8" />
|
||||
<Texture Name="object_kbt_Tex_00C5B8" OutName="tex_00C5B8" Format="rgba16" Width="32" Height="32" Offset="0xC5B8" />
|
||||
<Texture Name="object_kbt_Tex_00CDB8" OutName="tex_00CDB8" Format="rgba16" Width="32" Height="32" Offset="0xCDB8" />
|
||||
<Texture Name="object_kbt_Tex_00D5B8" OutName="tex_00D5B8" Format="rgba16" Width="32" Height="32" Offset="0xD5B8" />
|
||||
<Limb Name="object_kbt_Standardlimb_00DDB8" Type="Standard" EnumName="OBJECT_KBT_LIMB_01" Offset="0xDDB8" />
|
||||
<Limb Name="object_kbt_Standardlimb_00DDC4" Type="Standard" EnumName="OBJECT_KBT_LIMB_02" Offset="0xDDC4" />
|
||||
<Limb Name="object_kbt_Standardlimb_00DDD0" Type="Standard" EnumName="OBJECT_KBT_LIMB_03" Offset="0xDDD0" />
|
||||
|
||||
@@ -1,25 +1,31 @@
|
||||
<Root>
|
||||
<!-- Object for Lottery Shop -->
|
||||
<File Name="object_kujiya" Segment="6">
|
||||
<Mtx Name="object_kujiya_Mtx_002A40" Offset="0x2A40" />
|
||||
<DList Name="object_kujiya_DL_002A80" Offset="0x2A80" />
|
||||
<DList Name="object_kujiya_DL_003030" Offset="0x3030" />
|
||||
<DList Name="object_kujiya_DL_003248" Offset="0x3248" />
|
||||
<DList Name="object_kujiya_DL_003358" Offset="0x3358" />
|
||||
<DList Name="object_kujiya_DL_0034A8" Offset="0x34A8" />
|
||||
<DList Name="object_kujiya_DL_0035B8" Offset="0x35B8" />
|
||||
<DList Name="object_kujiya_DL_0036B0" Offset="0x36B0" />
|
||||
<DList Name="object_kujiya_DL_0037C0" Offset="0x37C0" />
|
||||
<DList Name="object_kujiya_DL_003C80" Offset="0x3C80" />
|
||||
<DList Name="object_kujiya_DL_003D58" Offset="0x3D58" />
|
||||
<Texture Name="object_kujiya_Tex_003E68" OutName="tex_003E68" Format="i8" Width="64" Height="16" Offset="0x3E68" />
|
||||
<Texture Name="object_kujiya_Tex_004268" OutName="tex_004268" Format="rgba16" Width="16" Height="32" Offset="0x4268" />
|
||||
<Texture Name="object_kujiya_Tex_004668" OutName="tex_004668" Format="i8" Width="4" Height="4" Offset="0x4668" />
|
||||
<Texture Name="object_kujiya_Tex_004678" OutName="tex_004678" Format="rgba16" Width="16" Height="32" Offset="0x4678" />
|
||||
<Texture Name="object_kujiya_Tex_004A78" OutName="tex_004A78" Format="rgba16" Width="16" Height="32" Offset="0x4A78" />
|
||||
<Texture Name="object_kujiya_Tex_004E78" OutName="tex_004E78" Format="rgba16" Width="16" Height="64" Offset="0x4E78" />
|
||||
<Texture Name="object_kujiya_Tex_005678" OutName="tex_005678" Format="rgba16" Width="16" Height="16" Offset="0x5678" />
|
||||
<Texture Name="object_kujiya_Tex_005878" OutName="tex_005878" Format="rgba16" Width="4" Height="32" Offset="0x5878" />
|
||||
<Texture Name="object_kujiya_Tex_005978" OutName="tex_005978" Format="rgba16" Width="32" Height="32" Offset="0x5978" />
|
||||
<TextureAnimation Name="object_kujiya_Matanimheader_006198" Offset="0x6198" />
|
||||
<Mtx Name="gLotteryShopMaskPosMtx" Offset="0x2A40" />
|
||||
<DList Name="gLotteryShopCylinderDL" Offset="0x2A80" />
|
||||
<DList Name="gLotteryShopBackSignDL" Offset="0x3030" />
|
||||
<DList Name="gLotteryShopOpenBoxDL" Offset="0x3248" />
|
||||
<DList Name="gLotteryShopScrollingEffectsDL" Offset="0x3358" />
|
||||
<DList Name="gLotteryShopRedRupeesDL" Offset="0x34A8" />
|
||||
<DList Name="gLotteryShopGreenRupeesDL" Offset="0x35B8" />
|
||||
<DList Name="gLotteryShopBlueRupeesDL" Offset="0x36B0" />
|
||||
<DList Name="gLotteryShopTargetArrowAndSignDL" Offset="0x37C0" />
|
||||
<DList Name="gLotteryShopScrollingArrowDL" Offset="0x3C80" />
|
||||
|
||||
<!-- Uses the billboard mtx and gLotteryShopMaskPosMtx -->
|
||||
<DList Name="gLotteryShopMaskDL" Offset="0x3D58" />
|
||||
|
||||
<Texture Name="gLotteryShopSignTextTex" OutName="lottery_shop_sign_text" Format="i8" Width="64" Height="16" Offset="0x3E68" />
|
||||
<Texture Name="gLotteryShopMaskTex" OutName="lottery_shop_mask" Format="rgba16" Width="16" Height="32" Offset="0x4268" />
|
||||
<Texture Name="gLotteryShopGradientTex" OutName="lottery_shop_gradient" Format="i8" Width="4" Height="4" Offset="0x4668" /><!-- Used for box and target -->
|
||||
<Texture Name="gLotteryShopCylinderTopBottomTex" OutName="lottery_shop_cylinder_top_bottom" Format="rgba16" Width="16" Height="32" Offset="0x4678" />
|
||||
<Texture Name="gLotteryShopCylinderMiddleStripesTex" OutName="lottery_shop_cylinder_middle_stripes" Format="rgba16" Width="16" Height="32" Offset="0x4A78" />
|
||||
<Texture Name="gLotteryShopSignBorderTex" OutName="lottery_shop_sign_border" Format="rgba16" Width="16" Height="64" Offset="0x4E78" />
|
||||
<Texture Name="gLotteryShopBoxBaseTex" OutName="lottery_shop_box_base" Format="rgba16" Width="16" Height="16" Offset="0x5678" />
|
||||
<Texture Name="gLotteryShopRainbowTex" OutName="lottery_shop_rainbow" Format="rgba16" Width="4" Height="32" Offset="0x5878" />
|
||||
<Texture Name="gLotteryShopRupeesTex" OutName="lottery_shop_rupees" Format="rgba16" Width="32" Height="32" Offset="0x5978" />
|
||||
|
||||
<!-- All used to scroll the rainbow texture -->
|
||||
<TextureAnimation Name="gLotteryShopTexAnim" Offset="0x6198" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Root>
|
||||
<File Name="object_kusa" Segment="6">
|
||||
<DList Name="object_kusa_DL_000140" Offset="0x140" />
|
||||
<DList Name="object_kusa_DL_0002E0" Offset="0x2E0" />
|
||||
<DList Name="gKusaSprout" Offset="0x140" />
|
||||
<DList Name="gKusaStump" Offset="0x2E0" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,59 +1,72 @@
|
||||
<Root>
|
||||
<!-- Assets for Octoroks -->
|
||||
<File Name="object_okuta" Segment="6">
|
||||
<Animation Name="object_okuta_Anim_00044C" Offset="0x44C" />
|
||||
<DList Name="object_okuta_DL_000DC0" Offset="0xDC0" />
|
||||
<DList Name="object_okuta_DL_000E70" Offset="0xE70" />
|
||||
<DList Name="object_okuta_DL_000F28" Offset="0xF28" />
|
||||
<DList Name="object_okuta_DL_000FD8" Offset="0xFD8" />
|
||||
<DList Name="object_okuta_DL_001088" Offset="0x1088" />
|
||||
<DList Name="object_okuta_DL_001140" Offset="0x1140" />
|
||||
<DList Name="object_okuta_DL_0011F0" Offset="0x11F0" />
|
||||
<DList Name="object_okuta_DL_0012A0" Offset="0x12A0" />
|
||||
<DList Name="object_okuta_DL_001358" Offset="0x1358" />
|
||||
<DList Name="object_okuta_DL_001408" Offset="0x1408" />
|
||||
<DList Name="object_okuta_DL_0014B8" Offset="0x14B8" />
|
||||
<DList Name="object_okuta_DL_001570" Offset="0x1570" />
|
||||
<DList Name="object_okuta_DL_001620" Offset="0x1620" />
|
||||
<DList Name="object_okuta_DL_001730" Offset="0x1730" />
|
||||
<DList Name="object_okuta_DL_0017F0" Offset="0x17F0" />
|
||||
<DList Name="object_okuta_DL_0018B0" Offset="0x18B0" />
|
||||
<DList Name="object_okuta_DL_001970" Offset="0x1970" />
|
||||
<DList Name="object_okuta_DL_001A38" Offset="0x1A38" />
|
||||
<DList Name="object_okuta_DL_001B18" Offset="0x1B18" />
|
||||
<DList Name="object_okuta_DL_001BE8" Offset="0x1BE8" />
|
||||
<DList Name="object_okuta_DL_001C20" Offset="0x1C20" />
|
||||
<Texture Name="object_okuta_Tex_001D20" OutName="tex_001D20" Format="rgba16" Width="16" Height="16" Offset="0x1D20" />
|
||||
<Texture Name="object_okuta_Tex_001F20" OutName="tex_001F20" Format="rgba16" Width="8" Height="16" Offset="0x1F20" />
|
||||
<Texture Name="object_okuta_Tex_002020" OutName="tex_002020" Format="rgba16" Width="16" Height="32" Offset="0x2020" />
|
||||
<Texture Name="object_okuta_Tex_002420" OutName="tex_002420" Format="rgba16" Width="16" Height="16" Offset="0x2420" />
|
||||
<Texture Name="object_okuta_Tex_002620" OutName="tex_002620" Format="rgba16" Width="16" Height="16" Offset="0x2620" />
|
||||
<Texture Name="object_okuta_Tex_002820" OutName="tex_002820" Format="rgba16" Width="8" Height="16" Offset="0x2820" />
|
||||
<Texture Name="object_okuta_Tex_002920" OutName="tex_002920" Format="rgba32" Width="16" Height="16" Offset="0x2920" />
|
||||
<!-- <Blob Name="object_okuta_Blob_002D20" Size="0x200" Offset="0x2D20" /> -->
|
||||
<Texture Name="object_okuta_Tex_002F20" OutName="tex_002F20" Format="rgba16" Width="8" Height="8" Offset="0x2F20" />
|
||||
<Texture Name="object_okuta_Tex_002FA0" OutName="tex_002FA0" Format="rgba16" Width="8" Height="8" Offset="0x2FA0" />
|
||||
<Texture Name="object_okuta_Tex_003020" OutName="tex_003020" Format="rgba16" Width="16" Height="16" Offset="0x3020" />
|
||||
<DList Name="object_okuta_DL_003250" Offset="0x3250" />
|
||||
<Limb Name="object_okuta_Standardlimb_0032E0" Type="Standard" EnumName="OBJECT_OKUTA_LIMB_01" Offset="0x32E0" />
|
||||
<Limb Name="object_okuta_Standardlimb_0032EC" Type="Standard" EnumName="OBJECT_OKUTA_LIMB_02" Offset="0x32EC" />
|
||||
<Limb Name="object_okuta_Standardlimb_0032F8" Type="Standard" EnumName="OBJECT_OKUTA_LIMB_03" Offset="0x32F8" />
|
||||
<Limb Name="object_okuta_Standardlimb_003304" Type="Standard" EnumName="OBJECT_OKUTA_LIMB_04" Offset="0x3304" />
|
||||
<Limb Name="object_okuta_Standardlimb_003310" Type="Standard" EnumName="OBJECT_OKUTA_LIMB_05" Offset="0x3310" />
|
||||
<Limb Name="object_okuta_Standardlimb_00331C" Type="Standard" EnumName="OBJECT_OKUTA_LIMB_06" Offset="0x331C" />
|
||||
<Limb Name="object_okuta_Standardlimb_003328" Type="Standard" EnumName="OBJECT_OKUTA_LIMB_07" Offset="0x3328" />
|
||||
<Limb Name="object_okuta_Standardlimb_003334" Type="Standard" EnumName="OBJECT_OKUTA_LIMB_08" Offset="0x3334" />
|
||||
<Limb Name="object_okuta_Standardlimb_003340" Type="Standard" EnumName="OBJECT_OKUTA_LIMB_09" Offset="0x3340" />
|
||||
<Limb Name="object_okuta_Standardlimb_00334C" Type="Standard" EnumName="OBJECT_OKUTA_LIMB_0A" Offset="0x334C" />
|
||||
<Limb Name="object_okuta_Standardlimb_003358" Type="Standard" EnumName="OBJECT_OKUTA_LIMB_0B" Offset="0x3358" />
|
||||
<Limb Name="object_okuta_Standardlimb_003364" Type="Standard" EnumName="OBJECT_OKUTA_LIMB_0C" Offset="0x3364" />
|
||||
<Limb Name="object_okuta_Standardlimb_003370" Type="Standard" EnumName="OBJECT_OKUTA_LIMB_0D" Offset="0x3370" />
|
||||
<Limb Name="object_okuta_Standardlimb_00337C" Type="Standard" EnumName="OBJECT_OKUTA_LIMB_0E" Offset="0x337C" />
|
||||
<Limb Name="object_okuta_Standardlimb_003388" Type="Standard" EnumName="OBJECT_OKUTA_LIMB_0F" Offset="0x3388" />
|
||||
<Skeleton Name="object_okuta_Skel_0033D0" Type="Normal" LimbType="Standard" LimbNone="OBJECT_OKUTA_LIMB_NONE" LimbMax="OBJECT_OKUTA_LIMB_MAX" EnumName="object_okuta_Limbs" Offset="0x33D0" />
|
||||
<Animation Name="object_okuta_Anim_003958" Offset="0x3958" />
|
||||
<Animation Name="object_okuta_Anim_003B24" Offset="0x3B24" />
|
||||
<Animation Name="object_okuta_Anim_003EE4" Offset="0x3EE4" />
|
||||
<Animation Name="object_okuta_Anim_004204" Offset="0x4204" />
|
||||
<Animation Name="object_okuta_Anim_00466C" Offset="0x466C" />
|
||||
<Animation Name="gOctorokShootAnim" Offset="0x44C" /> <!-- Original name is "oc_atack" -->
|
||||
|
||||
<!-- Octorok Limb DisplayLists -->
|
||||
<DList Name="gFrontRightArmBaseDL" Offset="0xDC0" />
|
||||
<DList Name="gFrontRightArmMiddleDL" Offset="0xE70" />
|
||||
<DList Name="gFrontRightArmEndDL" Offset="0xF28" />
|
||||
<DList Name="gBackRightArmBaseDL" Offset="0xFD8" />
|
||||
<DList Name="gBackRightArmMiddleDL" Offset="0x1088" />
|
||||
<DList Name="gBackRightArmEndDL" Offset="0x1140" />
|
||||
<DList Name="gBackLeftArmBaseDL" Offset="0x11F0" />
|
||||
<DList Name="gBackLeftArmMiddleDL" Offset="0x12A0" />
|
||||
<DList Name="gBackLeftArmEndDL" Offset="0x1358" />
|
||||
<DList Name="gFrontLeftArmBaseDL" Offset="0x1408" />
|
||||
<DList Name="gFrontLeftArmMiddleDL" Offset="0x14B8" />
|
||||
<DList Name="gFrontLeftArmEndDL" Offset="0x1570" />
|
||||
<DList Name="gOctorokSnoutDL" Offset="0x1620" />
|
||||
<DList Name="gOctorokUnderEyeTrianglesDL" Offset="0x1730" /> <!-- Used as part of the head displaylist -->
|
||||
<DList Name="gOctorokHeadBottomDL" Offset="0x17F0" /> <!-- Used as part of the head displaylist -->
|
||||
<DList Name="gOctorokHeadFrontDL" Offset="0x18B0" /> <!-- Used as part of the head displaylist -->
|
||||
<DList Name="gOctorokHeadTopDL" Offset="0x1970" /> <!-- Used as part of the head displaylist -->
|
||||
<DList Name="gOctorokHeadBackDL" Offset="0x1A38" /> <!-- Used as part of the head displaylist -->
|
||||
<DList Name="gOctorokEyesDL" Offset="0x1B18" /> <!-- Used as part of the head displaylist -->
|
||||
<DList Name="gOctorokHeadDL" Offset="0x1BE8" />
|
||||
<DList Name="gOctorokBodyDL" Offset="0x1C20" />
|
||||
|
||||
<!-- Octorok Textures -->
|
||||
<Texture Name="gOctorokRoughSkinTex" OutName="octorok_rough_skin" Format="rgba16" Width="16" Height="16" Offset="0x1D20" />
|
||||
<Texture Name="gOctorokMouthTex" OutName="octorok_mouth" Format="rgba16" Width="8" Height="16" Offset="0x1F20" />
|
||||
<Texture Name="gOctorokArmTex" OutName="octorok_arm" Format="rgba16" Width="16" Height="32" Offset="0x2020" />
|
||||
<Texture Name="gOctorokFinTex" OutName="octorok_fin" Format="rgba16" Width="16" Height="16" Offset="0x2420" />
|
||||
<Texture Name="gOctorokEyeTex" OutName="octorok_eye" Format="rgba16" Width="16" Height="16" Offset="0x2620" />
|
||||
<Texture Name="gOctorokStripesTex" OutName="octorok_stripes" Format="rgba16" Width="8" Height="16" Offset="0x2820" />
|
||||
<Texture Name="gOctorokScalesTex" OutName="octorok_scales" Format="rgba32" Width="16" Height="16" Offset="0x2920" />
|
||||
<Texture Name="gOctorokScalesOoTTex" OutName="octorok_scales_oot" Format="rgba16" Width="16" Height="16" Offset="0x2D20" /> <!-- Unused OoT leftover -->
|
||||
<Texture Name="gOctorokHeadBottomTex" OutName="octorok_head_bottom" Format="rgba16" Width="8" Height="8" Offset="0x2F20" />
|
||||
<Texture Name="gOctorokShadedSkinTex" OutName="octorok_shaded_skin" Format="rgba16" Width="8" Height="8" Offset="0x2FA0" />
|
||||
|
||||
<!-- Octorok Projectile Texture and DisplayList -->
|
||||
<Texture Name="gOctorokProjectileTex" OutName="octorok_projectile" Format="rgba16" Width="16" Height="16" Offset="0x3020" />
|
||||
<DList Name="gOctorokProjectileDL" Offset="0x3250" />
|
||||
|
||||
<!-- Octorok Limbs -->
|
||||
<Limb Name="gOctorokBodyLimb" Type="Standard" EnumName="OCTOROK_LIMB_BODY" Offset="0x32E0" />
|
||||
<Limb Name="gFrontLeftArmBaseLimb" Type="Standard" EnumName="OCTOROK_LIMB_FRONT_LEFT_ARM_BASE" Offset="0x32EC" />
|
||||
<Limb Name="gFrontLeftArmMiddleLimb" Type="Standard" EnumName="OCTOROK_LIMB_FRONT_LEFT_ARM_MIDDLE" Offset="0x32F8" />
|
||||
<Limb Name="gFrontLeftArmEndLimb" Type="Standard" EnumName="OCTOROK_LIMB_FRONT_LEFT_ARM_END" Offset="0x3304" />
|
||||
<Limb Name="gFrontRightArmBaseLimb" Type="Standard" EnumName="OCTOROK_LIMB_FRONT_RIGHT_ARM_BASE" Offset="0x3310" />
|
||||
<Limb Name="gFrontRightArmMiddleLimb" Type="Standard" EnumName="OCTOROK_LIMB_FRONT_RIGHT_ARM_MIDDLE" Offset="0x331C" />
|
||||
<Limb Name="gFrontRightArmEndLimb" Type="Standard" EnumName="OCTOROK_LIMB_FRONT_RIGHT_ARM_END" Offset="0x3328" />
|
||||
<Limb Name="gBackLeftArmBaseLimb" Type="Standard" EnumName="OCTOROK_LIMB_BACK_LEFT_ARM_BASE" Offset="0x3334" />
|
||||
<Limb Name="gBackLeftArmMiddleLimb" Type="Standard" EnumName="OCTOROK_LIMB_BACK_LEFT_ARM_MIDDLE" Offset="0x3340" />
|
||||
<Limb Name="gBackLeftArmEndLimb" Type="Standard" EnumName="OCTOROK_LIMB_BACK_LEFT_ARM_END" Offset="0x334C" />
|
||||
<Limb Name="gBackRightArmBaseLimb" Type="Standard" EnumName="OCTOROK_LIMB_BACK_RIGHT_ARM_BASE" Offset="0x3358" />
|
||||
<Limb Name="gBackRightArmMiddleLimb" Type="Standard" EnumName="OCTOROK_LIMB_BACK_RIGHT_ARM_MIDDLE" Offset="0x3364" />
|
||||
<Limb Name="gBackRightArmEndLimb" Type="Standard" EnumName="OCTOROK_LIMB_BACK_RIGHT_ARM_END" Offset="0x3370" />
|
||||
<Limb Name="gOctorokHeadLimb" Type="Standard" EnumName="OCTOROK_LIMB_HEAD" Offset="0x337C" />
|
||||
<Limb Name="gOctorokSnoutLimb" Type="Standard" EnumName="OCTOROK_LIMB_SNOUT" Offset="0x3388" />
|
||||
|
||||
<!-- Octorok Skeleton -->
|
||||
<Skeleton Name="gOctorokSkel" Type="Normal" LimbType="Standard" LimbNone="OCTOROK_LIMB_NONE" LimbMax="OCTOROK_LIMB_MAX" EnumName="OctorokLimbs" Offset="0x33D0" />
|
||||
|
||||
<!-- Octorok Animations -->
|
||||
<Animation Name="gOctorokDieAnim" Offset="0x3958" /> <!-- Original name is "oc_dead" -->
|
||||
<Animation Name="gOctorokHideAnim" Offset="0x3B24" /> <!-- Original name is "oc_down" -->
|
||||
<Animation Name="gOctorokFloatAnim" Offset="0x3EE4" /> <!-- Original name is "oc_float" -->
|
||||
<Animation Name="gOctorokHitAnim" Offset="0x4204" /> <!-- Original name is "oc_predead" -->
|
||||
<Animation Name="gOctorokAppearAnim" Offset="0x466C" /> <!-- Original name is "oc_up" -->
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
<DList Name="object_open_obj_DL_0003E8" Offset="0x3E8" />
|
||||
<Texture Name="object_open_obj_Tex_000558" OutName="tex_000558" Format="rgba16" Width="32" Height="64" Offset="0x558" />
|
||||
<Collision Name="object_open_obj_Colheader_001640" Offset="0x1640" />
|
||||
<DList Name="object_open_obj_DL_001A60" Offset="0x1A60" />
|
||||
<DList Name="object_open_obj_DL_001B40" Offset="0x1B40" />
|
||||
<Texture Name="object_open_obj_Tex_001CD0" OutName="tex_001CD0" Format="rgba16" Width="32" Height="32" Offset="0x1CD0" />
|
||||
<Texture Name="object_open_obj_Tex_0024D0" OutName="tex_0024D0" Format="ia8" Width="32" Height="64" Offset="0x24D0" />
|
||||
<TextureAnimation Name="object_open_obj_Matanimheader_002CE0" Offset="0x2CE0" />
|
||||
<DList Name="gSpotlightLeftDL" Offset="0x1A60" />
|
||||
<DList Name="gSpotlightRightDL" Offset="0x1B40" />
|
||||
<Texture Name="gSpotlightShapesTex" OutName="spotlight_shapes" Format="rgba16" Width="32" Height="32" Offset="0x1CD0" />
|
||||
<Texture Name="gSpotlightFloorTex" OutName="spotlight_floor" Format="ia8" Width="32" Height="64" Offset="0x24D0" />
|
||||
<TextureAnimation Name="gSpotlightTexAnim" Offset="0x2CE0" />
|
||||
<DList Name="object_open_obj_DL_002D30" Offset="0x2D30" />
|
||||
<DList Name="object_open_obj_DL_002DC0" Offset="0x2DC0" />
|
||||
<!-- <Blob Name="object_open_obj_Blob_002DC8" Size="0xE608" Offset="0x2DC8" /> -->
|
||||
|
||||
@@ -1,42 +1,58 @@
|
||||
<Root>
|
||||
<!-- Assets for the Carnivorous Lily Pad-->
|
||||
<File Name="object_raf" Segment="6">
|
||||
<Collision Name="object_raf_Colheader_000108" Offset="0x108" />
|
||||
<DList Name="object_raf_DL_0001C0" Offset="0x1C0" />
|
||||
<Animation Name="object_raf_Anim_0003FC" Offset="0x3FC" />
|
||||
<Animation Name="object_raf_Anim_0007A8" Offset="0x7A8" />
|
||||
<Animation Name="object_raf_Anim_000A64" Offset="0xA64" />
|
||||
<Animation Name="object_raf_Anim_000B30" Offset="0xB30" />
|
||||
<Animation Name="object_raf_Anim_000C7C" Offset="0xC7C" />
|
||||
<DList Name="object_raf_DL_001630" Offset="0x1630" />
|
||||
<DList Name="object_raf_DL_001790" Offset="0x1790" />
|
||||
<DList Name="object_raf_DL_001838" Offset="0x1838" />
|
||||
<DList Name="object_raf_DL_0018D0" Offset="0x18D0" />
|
||||
<DList Name="object_raf_DL_001990" Offset="0x1990" />
|
||||
<DList Name="object_raf_DL_001B90" Offset="0x1B90" />
|
||||
<DList Name="object_raf_DL_001C28" Offset="0x1C28" />
|
||||
<DList Name="object_raf_DL_001CE8" Offset="0x1CE8" />
|
||||
<DList Name="object_raf_DL_001EE8" Offset="0x1EE8" />
|
||||
<DList Name="object_raf_DL_001F80" Offset="0x1F80" />
|
||||
<DList Name="object_raf_DL_002040" Offset="0x2040" />
|
||||
<DList Name="object_raf_DL_002340" Offset="0x2340" />
|
||||
<DList Name="object_raf_DL_002418" Offset="0x2418" />
|
||||
<DList Name="object_raf_DL_0024E0" Offset="0x24E0" />
|
||||
<Texture Name="object_raf_Tex_0024F8" OutName="tex_0024F8" Format="rgba16" Width="16" Height="32" Offset="0x24F8" />
|
||||
<Texture Name="object_raf_Tex_0028F8" OutName="tex_0028F8" Format="rgba16" Width="16" Height="32" Offset="0x28F8" />
|
||||
<Texture Name="object_raf_Tex_002CF8" OutName="tex_002CF8" Format="rgba16" Width="16" Height="16" Offset="0x2CF8" />
|
||||
<Texture Name="object_raf_Tex_002EF8" OutName="tex_002EF8" Format="rgba16" Width="16" Height="32" Offset="0x2EF8" />
|
||||
<Texture Name="object_raf_Tex_0032F8" OutName="tex_0032F8" Format="rgba16" Width="8" Height="8" Offset="0x32F8" />
|
||||
<Limb Name="object_raf_Standardlimb_003378" Type="Standard" EnumName="OBJECT_RAF_LIMB_01" Offset="0x3378" />
|
||||
<Limb Name="object_raf_Standardlimb_003384" Type="Standard" EnumName="OBJECT_RAF_LIMB_02" Offset="0x3384" />
|
||||
<Limb Name="object_raf_Standardlimb_003390" Type="Standard" EnumName="OBJECT_RAF_LIMB_03" Offset="0x3390" />
|
||||
<Limb Name="object_raf_Standardlimb_00339C" Type="Standard" EnumName="OBJECT_RAF_LIMB_04" Offset="0x339C" />
|
||||
<Limb Name="object_raf_Standardlimb_0033A8" Type="Standard" EnumName="OBJECT_RAF_LIMB_05" Offset="0x33A8" />
|
||||
<Limb Name="object_raf_Standardlimb_0033B4" Type="Standard" EnumName="OBJECT_RAF_LIMB_06" Offset="0x33B4" />
|
||||
<Limb Name="object_raf_Standardlimb_0033C0" Type="Standard" EnumName="OBJECT_RAF_LIMB_07" Offset="0x33C0" />
|
||||
<Limb Name="object_raf_Standardlimb_0033CC" Type="Standard" EnumName="OBJECT_RAF_LIMB_08" Offset="0x33CC" />
|
||||
<Limb Name="object_raf_Standardlimb_0033D8" Type="Standard" EnumName="OBJECT_RAF_LIMB_09" Offset="0x33D8" />
|
||||
<Limb Name="object_raf_Standardlimb_0033E4" Type="Standard" EnumName="OBJECT_RAF_LIMB_0A" Offset="0x33E4" />
|
||||
<Limb Name="object_raf_Standardlimb_0033F0" Type="Standard" EnumName="OBJECT_RAF_LIMB_0B" Offset="0x33F0" />
|
||||
<Skeleton Name="object_raf_Skel_003428" Type="Flex" LimbType="Standard" LimbNone="OBJECT_RAF_LIMB_NONE" LimbMax="OBJECT_RAF_LIMB_MAX" EnumName="object_raf_Limbs" Offset="0x3428" />
|
||||
<!-- Carnivorous Lily Pad Collision -->
|
||||
<Collision Name="gCarnivorousLilyPadCol" Offset="0x108" />
|
||||
|
||||
<!-- Unused Textureless Platform DisplayList. Maybe used for testing collision? -->
|
||||
<DList Name="gCarnivorousLilyPadTexturelessPlatformDL" Offset="0x1C0" />
|
||||
|
||||
<!-- Carnivorous Lily Pad Animations -->
|
||||
<Animation Name="gCarnivorousLilyPadConvulseAnim" Offset="0x3FC" /> <!-- Original name is "raf_end01" -->
|
||||
<Animation Name="gCarnivorousLilyPadDeathAnim" Offset="0x7A8" /> <!-- Original name is "raf_end02" -->
|
||||
<Animation Name="gCarnivorousLilyPadSpitAnim" Offset="0xA64" /> <!-- Original name is "raf_haku" ("to spit up") -->
|
||||
<Animation Name="gCarnivorousLilyPadChewAnim" Offset="0xB30" /> <!-- Original name is "raf_mogu" ("chew") -->
|
||||
<Animation Name="gCarnivorousLilyPadCloseAnim" Offset="0xC7C" /> <!-- Original name is "raf_paku" ("devouring")-->
|
||||
|
||||
<!-- Carnivorous Lily Pad Limb DisplayLists -->
|
||||
<DList Name="gCarnivorousLilyPadFlowerDL" Offset="0x1630" />
|
||||
<DList Name="gCarnivorousLilyPadRootsDL" Offset="0x1790" />
|
||||
<DList Name="gCarnivorousLilyPadTrap3LowerSegmentDL" Offset="0x1838" />
|
||||
<DList Name="gCarnivorousLilyPadTrap3MiddleSegmentDL" Offset="0x18D0" />
|
||||
<DList Name="gCarnivorousLilyPadTrap3UpperSegmentDL" Offset="0x1990" />
|
||||
<DList Name="gCarnivorousLilyPadTrap2LowerSegmentDL" Offset="0x1B90" />
|
||||
<DList Name="gCarnivorousLilyPadTrap2MiddleSegmentDL" Offset="0x1C28" />
|
||||
<DList Name="gCarnivorousLilyPadTrap2UpperSegmentDL" Offset="0x1CE8" />
|
||||
<DList Name="gCarnivorousLilyPadTrap1LowerSegmentDL" Offset="0x1EE8" />
|
||||
<DList Name="gCarnivorousLilyPadTrap1MiddleSegmentDL" Offset="0x1F80" />
|
||||
<DList Name="gCarnivorousLilyPadTrap1UpperSegmentDL" Offset="0x2040" />
|
||||
|
||||
<!-- Carnivorous Lily Pad Particle DisplayLists -->
|
||||
<DList Name="gCarnivorousLilyPadParticlePetalDL" Offset="0x2340" />
|
||||
<DList Name="gCarnivorousLilyPadParticleTeethDL" Offset="0x2418" />
|
||||
<DList Name="gCarnivorousLilyPadParticleDL" Offset="0x24E0" />
|
||||
|
||||
<!-- Carnivorous Lily Pad Textures -->
|
||||
<Texture Name="gCarnivorousLilyPadRootsTex" OutName="carnivorous_lily_pad_roots" Format="rgba16" Width="16" Height="32" Offset="0x24F8" />
|
||||
<Texture Name="gCarnivorousLilyPadFlowerPetalTex" OutName="carnivorous_lily_pad_flower_petal" Format="rgba16" Width="16" Height="32" Offset="0x28F8" />
|
||||
<Texture Name="gCarnivorousLilyPadFlowerCenterTex" OutName="carnivorous_lily_pad_flower_center" Format="rgba16" Width="16" Height="16" Offset="0x2CF8" />
|
||||
<Texture Name="gCarnivorousLilyPadTrapPetalTex" OutName="carnivorous_lily_pad_trap_petal" Format="rgba16" Width="16" Height="32" Offset="0x2EF8" />
|
||||
<Texture Name="gCarnivorousLilyPadTrapTeethTex" OutName="carnivorous_lily_pad_trap_teeth" Format="rgba16" Width="8" Height="8" Offset="0x32F8" />
|
||||
|
||||
<!-- Carnivorous Lily Pad Limbs -->
|
||||
<Limb Name="gCarnivorousLilyPadFlowerLimb" Type="Standard" EnumName="CARNIVOROUS_LILY_PAD_LIMB_FLOWER" Offset="0x3378" />
|
||||
<Limb Name="gCarnivorousLilyPadTrap1LowerSegmentLimb" Type="Standard" EnumName="CARNIVOROUS_LILY_PAD_LIMB_TRAP_1_LOWER_SEGMENT" Offset="0x3384" />
|
||||
<Limb Name="gCarnivorousLilyPadTrap1MiddleSegmentLimb" Type="Standard" EnumName="CARNIVOROUS_LILY_PAD_LIMB_TRAP_1_MIDDLE_SEGMENT" Offset="0x3390" />
|
||||
<Limb Name="gCarnivorousLilyPadTrap1UpperSegmentLimb" Type="Standard" EnumName="CARNIVOROUS_LILY_PAD_LIMB_TRAP_1_UPPER_SEGMENT" Offset="0x339C" />
|
||||
<Limb Name="gCarnivorousLilyPadTrap2LowerSegmentLimb" Type="Standard" EnumName="CARNIVOROUS_LILY_PAD_LIMB_TRAP_2_LOWER_SEGMENT" Offset="0x33A8" />
|
||||
<Limb Name="gCarnivorousLilyPadTrap2MiddleSegmentLimb" Type="Standard" EnumName="CARNIVOROUS_LILY_PAD_LIMB_TRAP_2_MIDDLE_SEGMENT" Offset="0x33B4" />
|
||||
<Limb Name="gCarnivorousLilyPadTrap2UpperSegmentLimb" Type="Standard" EnumName="CARNIVOROUS_LILY_PAD_LIMB_TRAP_2_UPPER_SEGMENT" Offset="0x33C0" />
|
||||
<Limb Name="gCarnivorousLilyPadTrap3LowerSegmentLimb" Type="Standard" EnumName="CARNIVOROUS_LILY_PAD_LIMB_TRAP_3_LOWER_SEGMENT" Offset="0x33CC" />
|
||||
<Limb Name="gCarnivorousLilyPadTrap3MiddleSegmentLimb" Type="Standard" EnumName="CARNIVOROUS_LILY_PAD_LIMB_TRAP_3_MIDDLE_SEGMENT" Offset="0x33D8" />
|
||||
<Limb Name="gCarnivorousLilyPadTrap3UpperSegmentLimb" Type="Standard" EnumName="CARNIVOROUS_LILY_PAD_LIMB_TRAP_3_UPPER_SEGMENT" Offset="0x33E4" />
|
||||
<Limb Name="gCarnivorousLilyPadRootsLimb" Type="Standard" EnumName="CARNIVOROUS_LILY_PAD_LIMB_ROOTS" Offset="0x33F0" />
|
||||
|
||||
<!-- Carnivorous Lily Pad Skeleton -->
|
||||
<Skeleton Name="gCarnivorousLilyPadSkel" Type="Flex" LimbType="Standard" LimbNone="CARNIVOROUS_LILY_PAD_LIMB_NONE" LimbMax="CARNIVOROUS_LILY_PAD_LIMB_MAX" EnumName="CarnivorousLilyPadLimbs" Offset="0x3428" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,44 +1,53 @@
|
||||
<Root>
|
||||
<!-- Object for Leevers -->
|
||||
<File Name="object_rb" Segment="6">
|
||||
<Animation Name="object_rb_Anim_0001E4" Offset="0x1E4" />
|
||||
<DList Name="object_rb_DL_000200" Offset="0x200" />
|
||||
<DList Name="object_rb_DL_0002D0" Offset="0x2D0" />
|
||||
<DList Name="object_rb_DL_0002E0" Offset="0x2E0" />
|
||||
<DList Name="object_rb_DL_000430" Offset="0x430" />
|
||||
<DList Name="object_rb_DL_000570" Offset="0x570" />
|
||||
<DList Name="object_rb_DL_000580" Offset="0x580" />
|
||||
<DList Name="object_rb_DL_000760" Offset="0x760" />
|
||||
<DList Name="object_rb_DL_0007F8" Offset="0x7F8" />
|
||||
<DList Name="object_rb_DL_000808" Offset="0x808" />
|
||||
<DList Name="object_rb_DL_0008B8" Offset="0x8B8" />
|
||||
<DList Name="object_rb_DL_000950" Offset="0x950" />
|
||||
<DList Name="object_rb_DL_000960" Offset="0x960" />
|
||||
<DList Name="object_rb_DL_000A10" Offset="0xA10" />
|
||||
<DList Name="object_rb_DL_000AB0" Offset="0xAB0" />
|
||||
<DList Name="object_rb_DL_000AC0" Offset="0xAC0" />
|
||||
<DList Name="object_rb_DL_000B80" Offset="0xB80" />
|
||||
<DList Name="object_rb_DL_000C18" Offset="0xC18" />
|
||||
<DList Name="object_rb_DL_000C28" Offset="0xC28" />
|
||||
<Texture Name="object_rb_Tex_000CD8" OutName="tex_000CD8" Format="rgba16" Width="8" Height="16" Offset="0xCD8" />
|
||||
<Texture Name="object_rb_Tex_000DD8" OutName="tex_000DD8" Format="rgba16" Width="32" Height="32" Offset="0xDD8" />
|
||||
<Texture Name="object_rb_Tex_0015D8" OutName="tex_0015D8" Format="rgba16" Width="32" Height="32" Offset="0x15D8" />
|
||||
<Animation Name="gLeeverSpinAnim" Offset="0x1E4" />
|
||||
|
||||
<!-- DLs for visible limbs -->
|
||||
<DList Name="gLeeverBottomHalfDL" Offset="0x200" />
|
||||
<DList Name="gLeeverBottomHalfWrapper2DL" Offset="0x2D0" />
|
||||
<DList Name="gLeeverBottomHalfWrapper1DL" Offset="0x2E0" />
|
||||
<DList Name="gLeeverTopHalfDL" Offset="0x430" />
|
||||
<DList Name="gLeeverTopHalfWrapper2DL" Offset="0x570" />
|
||||
<DList Name="gLeeverTopHalfWrapper1DL" Offset="0x580" />
|
||||
<DList Name="gLeeverSpike1DL" Offset="0x760" />
|
||||
<DList Name="gLeeverSpike1Wrapper2DL" Offset="0x7F8" />
|
||||
<DList Name="gLeeverSpike1Wrapper1DL" Offset="0x808" />
|
||||
<DList Name="gLeeverSpike2DL" Offset="0x8B8" />
|
||||
<DList Name="gLeeverSpike2Wrapper2DL" Offset="0x950" />
|
||||
<DList Name="gLeeverSpike2Wrapper1DL" Offset="0x960" />
|
||||
<DList Name="gLeeverSpike3DL" Offset="0xA10" />
|
||||
<DList Name="gLeeverSpike3Wrapper2DL" Offset="0xAB0" />
|
||||
<DList Name="gLeeverSpike3Wrapper1DL" Offset="0xAC0" />
|
||||
<DList Name="gLeeverSpike4DL" Offset="0xB80" />
|
||||
<DList Name="gLeeverSpike4Wrapper2DL" Offset="0xC18" />
|
||||
<DList Name="gLeeverSpike4Wrapper1DL" Offset="0xC28" />
|
||||
|
||||
<Texture Name="gLeeverSpikeTex" OutName="spike" Format="rgba16" Width="8" Height="16" Offset="0xCD8" />
|
||||
<Texture Name="gLeeverSideTex" OutName="side" Format="rgba16" Width="32" Height="32" Offset="0xDD8" />
|
||||
<Texture Name="gLeeverFlowerTex" OutName="flower" Format="rgba16" Width="32" Height="32" Offset="0x15D8" />
|
||||
|
||||
<!-- Visible limbs -->
|
||||
<Limb Name="gLeeverTopHalfLimb" Type="Standard" EnumName="LEEVER_LIMB_TOP_HALF" Offset="0x1DFC" />
|
||||
<Limb Name="gLeeverSpike1Limb" Type="Standard" EnumName="LEEVER_LIMB_SPIKE_1" Offset="0x1E20" />
|
||||
<Limb Name="gLeeverSpike2Limb" Type="Standard" EnumName="LEEVER_LIMB_SPIKE_2" Offset="0x1E44" />
|
||||
<Limb Name="gLeeverSpike3Limb" Type="Standard" EnumName="LEEVER_LIMB_SPIKE_3" Offset="0x1E68" />
|
||||
<Limb Name="gLeeverSpike4Limb" Type="Standard" EnumName="LEEVER_LIMB_SPIKE_4" Offset="0x1E8C" />
|
||||
<Limb Name="gLeeverBottomHalfLimb" Type="Standard" EnumName="LEEVER_LIMB_BOTTOM_HALF" Offset="0x1E98" />
|
||||
|
||||
<!-- Invisible limbs -->
|
||||
<Limb Name="object_rb_Standardlimb_001DD8" Type="Standard" EnumName="OBJECT_RB_LIMB_01" Offset="0x1DD8" />
|
||||
<Limb Name="object_rb_Standardlimb_001DE4" Type="Standard" EnumName="OBJECT_RB_LIMB_02" Offset="0x1DE4" />
|
||||
<Limb Name="object_rb_Standardlimb_001DF0" Type="Standard" EnumName="OBJECT_RB_LIMB_03" Offset="0x1DF0" />
|
||||
<Limb Name="object_rb_Standardlimb_001DFC" Type="Standard" EnumName="OBJECT_RB_LIMB_04" Offset="0x1DFC" />
|
||||
<Limb Name="object_rb_Standardlimb_001E08" Type="Standard" EnumName="OBJECT_RB_LIMB_05" Offset="0x1E08" />
|
||||
<Limb Name="object_rb_Standardlimb_001E14" Type="Standard" EnumName="OBJECT_RB_LIMB_06" Offset="0x1E14" />
|
||||
<Limb Name="object_rb_Standardlimb_001E20" Type="Standard" EnumName="OBJECT_RB_LIMB_07" Offset="0x1E20" />
|
||||
<Limb Name="object_rb_Standardlimb_001E2C" Type="Standard" EnumName="OBJECT_RB_LIMB_08" Offset="0x1E2C" />
|
||||
<Limb Name="object_rb_Standardlimb_001E38" Type="Standard" EnumName="OBJECT_RB_LIMB_09" Offset="0x1E38" />
|
||||
<Limb Name="object_rb_Standardlimb_001E44" Type="Standard" EnumName="OBJECT_RB_LIMB_0A" Offset="0x1E44" />
|
||||
<Limb Name="object_rb_Standardlimb_001E50" Type="Standard" EnumName="OBJECT_RB_LIMB_0B" Offset="0x1E50" />
|
||||
<Limb Name="object_rb_Standardlimb_001E5C" Type="Standard" EnumName="OBJECT_RB_LIMB_0C" Offset="0x1E5C" />
|
||||
<Limb Name="object_rb_Standardlimb_001E68" Type="Standard" EnumName="OBJECT_RB_LIMB_0D" Offset="0x1E68" />
|
||||
<Limb Name="object_rb_Standardlimb_001E74" Type="Standard" EnumName="OBJECT_RB_LIMB_0E" Offset="0x1E74" />
|
||||
<Limb Name="object_rb_Standardlimb_001E80" Type="Standard" EnumName="OBJECT_RB_LIMB_0F" Offset="0x1E80" />
|
||||
<Limb Name="object_rb_Standardlimb_001E8C" Type="Standard" EnumName="OBJECT_RB_LIMB_10" Offset="0x1E8C" />
|
||||
<Limb Name="object_rb_Standardlimb_001E98" Type="Standard" EnumName="OBJECT_RB_LIMB_11" Offset="0x1E98" />
|
||||
<Skeleton Name="object_rb_Skel_001EE8" Type="Normal" LimbType="Standard" LimbNone="OBJECT_RB_LIMB_NONE" LimbMax="OBJECT_RB_LIMB_MAX" EnumName="object_rb_Limbs" Offset="0x1EE8" />
|
||||
|
||||
<Skeleton Name="gLeeverSkel" Type="Normal" LimbType="Standard" LimbNone="LEEVER_LIMB_NONE" LimbMax="LEEVER_LIMB_MAX" EnumName="LeeverLimbs" Offset="0x1EE8" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,97 +1,125 @@
|
||||
<Root>
|
||||
<!-- Assets for the Shooting Gallery Men and the Swamp Guide. They all use the same body and just swap out the head. -->
|
||||
<File Name="object_shn" Segment="6">
|
||||
<DList Name="object_shn_DL_003510" Offset="0x3510" />
|
||||
<DList Name="object_shn_DL_003600" Offset="0x3600" />
|
||||
<DList Name="object_shn_DL_0039A0" Offset="0x39A0" />
|
||||
<DList Name="object_shn_DL_003DA0" Offset="0x3DA0" />
|
||||
<DList Name="object_shn_DL_004038" Offset="0x4038" />
|
||||
<DList Name="object_shn_DL_0042E0" Offset="0x42E0" />
|
||||
<DList Name="object_shn_DL_004620" Offset="0x4620" />
|
||||
<DList Name="object_shn_DL_0048B8" Offset="0x48B8" />
|
||||
<DList Name="object_shn_DL_004B60" Offset="0x4B60" />
|
||||
<DList Name="object_shn_DL_004EA8" Offset="0x4EA8" />
|
||||
<DList Name="object_shn_DL_004FC8" Offset="0x4FC8" />
|
||||
<DList Name="object_shn_DL_0050D0" Offset="0x50D0" />
|
||||
<DList Name="object_shn_DL_005298" Offset="0x5298" />
|
||||
<DList Name="object_shn_DL_0053B8" Offset="0x53B8" />
|
||||
<DList Name="object_shn_DL_0054C0" Offset="0x54C0" />
|
||||
<Texture Name="object_shn_TLUT_005688" OutName="tlut_005688" Format="rgba16" Width="16" Height="16" Offset="0x5688" />
|
||||
<Texture Name="object_shn_TLUT_005888" OutName="tlut_005888" Format="rgba16" Width="16" Height="16" Offset="0x5888" />
|
||||
<Texture Name="object_shn_Tex_005A88" OutName="tex_005A88" Format="ci8" Width="8" Height="8" Offset="0x5A88" />
|
||||
<Texture Name="object_shn_Tex_005AC8" OutName="tex_005AC8" Format="rgba16" Width="32" Height="32" Offset="0x5AC8" />
|
||||
<Texture Name="object_shn_Tex_0062C8" OutName="tex_0062C8" Format="rgba16" Width="32" Height="32" Offset="0x62C8" />
|
||||
<!-- <Blob Name="object_shn_Blob_006AC8" Size="0x800" Offset="0x6AC8" /> -->
|
||||
<Texture Name="object_shn_Tex_0072C8" OutName="tex_0072C8" Format="ci8" Width="16" Height="16" Offset="0x72C8" />
|
||||
<Texture Name="object_shn_Tex_0073C8" OutName="tex_0073C8" Format="ci8" Width="8" Height="8" Offset="0x73C8" />
|
||||
<Texture Name="object_shn_Tex_007408" OutName="tex_007408" Format="ci8" Width="32" Height="32" Offset="0x7408" />
|
||||
<Texture Name="object_shn_Tex_007808" OutName="tex_007808" Format="ci8" Width="16" Height="16" Offset="0x7808" />
|
||||
<Texture Name="object_shn_Tex_007908" OutName="tex_007908" Format="ci8" Width="16" Height="16" Offset="0x7908" />
|
||||
<Texture Name="object_shn_Tex_007A08" OutName="tex_007A08" Format="ci8" Width="32" Height="32" Offset="0x7A08" />
|
||||
<Texture Name="object_shn_Tex_007E08" OutName="tex_007E08" Format="ci8" Width="16" Height="16" Offset="0x7E08" />
|
||||
<Texture Name="object_shn_Tex_007F08" OutName="tex_007F08" Format="ci8" Width="8" Height="8" Offset="0x7F08" />
|
||||
<Texture Name="object_shn_Tex_007F48" OutName="tex_007F48" Format="ci8" Width="16" Height="16" Offset="0x7F48" />
|
||||
<!-- <Blob Name="object_shn_Blob_008050" Size="0x10" Offset="0x8050" /> -->
|
||||
<DList Name="object_shn_DL_008BA0" Offset="0x8BA0" />
|
||||
<DList Name="object_shn_DL_008C70" Offset="0x8C70" />
|
||||
<DList Name="object_shn_DL_008D90" Offset="0x8D90" />
|
||||
<DList Name="object_shn_DL_008E48" Offset="0x8E48" />
|
||||
<DList Name="object_shn_DL_008F00" Offset="0x8F00" />
|
||||
<DList Name="object_shn_DL_009040" Offset="0x9040" />
|
||||
<Texture Name="object_shn_TLUT_0091D8" OutName="tlut_0091D8" Format="rgba16" Width="16" Height="16" Offset="0x91D8" />
|
||||
<Texture Name="object_shn_TLUT_0093D8" OutName="tlut_0093D8" Format="rgba16" Width="16" Height="16" Offset="0x93D8" />
|
||||
<Texture Name="object_shn_TLUT_0095D8" OutName="tlut_0095D8" Format="rgba16" Width="16" Height="16" Offset="0x95D8" />
|
||||
<Texture Name="object_shn_TLUT_0097D8" OutName="tlut_0097D8" Format="rgba16" Width="16" Height="16" Offset="0x97D8" />
|
||||
<Texture Name="object_shn_TLUT_0099D8" OutName="tlut_0099D8" Format="rgba16" Width="16" Height="16" Offset="0x99D8" />
|
||||
<Texture Name="object_shn_TLUT_009BD8" OutName="tlut_009BD8" Format="rgba16" Width="16" Height="16" Offset="0x9BD8" />
|
||||
<Texture Name="object_shn_Tex_009DD8" OutName="tex_009DD8" Format="ci8" Width="32" Height="32" Offset="0x9DD8" />
|
||||
<Texture Name="object_shn_Tex_00A1D8" OutName="tex_00A1D8" Format="ci8" Width="16" Height="16" Offset="0xA1D8" />
|
||||
<Texture Name="object_shn_Tex_00A2D8" OutName="tex_00A2D8" Format="ci8" Width="16" Height="16" Offset="0xA2D8" />
|
||||
<Texture Name="object_shn_Tex_00A3D8" OutName="tex_00A3D8" Format="ci8" Width="8" Height="8" Offset="0xA3D8" />
|
||||
<Texture Name="object_shn_Tex_00A418" OutName="tex_00A418" Format="ci8" Width="32" Height="32" Offset="0xA418" />
|
||||
<Texture Name="object_shn_Tex_00A818" OutName="tex_00A818" Format="ci8" Width="8" Height="8" Offset="0xA818" />
|
||||
<DList Name="object_shn_DL_00B730" Offset="0xB730" />
|
||||
<DList Name="gObjectShnSwampGuideHead" Offset="0xB738" />
|
||||
<Texture Name="object_shn_TLUT_00BCD8" OutName="tlut_00BCD8" Format="rgba16" Width="16" Height="16" Offset="0xBCD8" />
|
||||
<Texture Name="object_shn_TLUT_00BED8" OutName="tlut_00BED8" Format="rgba16" Width="16" Height="16" Offset="0xBED8" />
|
||||
<Texture Name="object_shn_Tex_00C0D8" OutName="tex_00C0D8" Format="ci8" Width="8" Height="8" Offset="0xC0D8" />
|
||||
<Texture Name="object_shn_Tex_00C118" OutName="tex_00C118" Format="ci8" Width="16" Height="16" Offset="0xC118" />
|
||||
<Texture Name="object_shn_Tex_00C218" OutName="tex_00C218" Format="ci8" Width="16" Height="16" Offset="0xC218" />
|
||||
<Texture Name="object_shn_Tex_00C318" OutName="tex_00C318" Format="ci8" Width="32" Height="16" Offset="0xC318" />
|
||||
<Texture Name="object_shn_Tex_00C518" OutName="tex_00C518" Format="ci8" Width="32" Height="32" Offset="0xC518" />
|
||||
<Texture Name="object_shn_Tex_00C918" OutName="tex_00C918" Format="ci8" Width="16" Height="16" Offset="0xC918" />
|
||||
<Texture Name="object_shn_Tex_00CA18" OutName="tex_00CA18" Format="rgba16" Width="8" Height="8" Offset="0xCA18" />
|
||||
<Texture Name="object_shn_Tex_00CA98" OutName="tex_00CA98" Format="ci8" Width="16" Height="32" Offset="0xCA98" />
|
||||
<Animation Name="object_shn_Anim_00D2F8" Offset="0xD2F8" />
|
||||
<Animation Name="object_shn_Anim_00D3AC" Offset="0xD3AC" />
|
||||
<Animation Name="object_shn_Anim_00D9D0" Offset="0xD9D0" />
|
||||
<Animation Name="object_shn_Anim_00DFEC" Offset="0xDFEC" />
|
||||
<Animation Name="object_shn_Anim_00E6C4" Offset="0xE6C4" />
|
||||
<Limb Name="gObjectShnLimbWaist" Type="Standard" EnumName="OBJECT_SHN_LIMB_WAIST" Offset="0xE6E0" />
|
||||
<Limb Name="gObjectShnLimbLegLeft" Type="Standard" EnumName="OBJECT_SHN_LIMB_LEG_LEFT" Offset="0xE6EC" />
|
||||
<Limb Name="gObjectShnLimbShinLeft" Type="Standard" EnumName="OBJECT_SHN_LIMB_SHIN_LEFT" Offset="0xE6F8" />
|
||||
<Limb Name="gObjectShnLimbFootLeft" Type="Standard" EnumName="OBJECT_SHN_LIMB_FOOT_LEFT" Offset="0xE704" />
|
||||
<Limb Name="gObjectShnLimbLegRight" Type="Standard" EnumName="OBJECT_SHN_LIMB_LEG_RIGHT" Offset="0xE710" />
|
||||
<Limb Name="gObjectShnLimbShinRight" Type="Standard" EnumName="OBJECT_SHN_LIMB_SHIN_RIGHT" Offset="0xE71C" />
|
||||
<Limb Name="gObjectShnLimbFootRight" Type="Standard" EnumName="OBJECT_SHN_LIMB_FOOT_RIGHT" Offset="0xE728" />
|
||||
<Limb Name="gObjectShnLimbTorso" Type="Standard" EnumName="OBJECT_SHN_LIMB_TORSO" Offset="0xE734" />
|
||||
<Limb Name="gObjectShnLimbShoulderLeft" Type="Standard" EnumName="OBJECT_SHN_LIMB_SHOULDER_LEFT" Offset="0xE740" />
|
||||
<Limb Name="gObjectShnLimbForearmLeft" Type="Standard" EnumName="OBJECT_SHN_LIMB_FOREARM_LEFT" Offset="0xE74C" />
|
||||
<Limb Name="gObjectShnLimbHandLeft" Type="Standard" EnumName="OBJECT_SHN_LIMB_HAND_LEFT" Offset="0xE758" />
|
||||
<Limb Name="gObjectShnLimbShoulderRight" Type="Standard" EnumName="OBJECT_SHN_LIMB_SHOULDER_RIGHT" Offset="0xE764" />
|
||||
<Limb Name="gObjectShnLimbForearmRight" Type="Standard" EnumName="OBJECT_SHN_LIMB_FOREARM_RIGHT" Offset="0xE770" />
|
||||
<Limb Name="gObjectShnLimbHandRight" Type="Standard" EnumName="OBJECT_SHN_LIMB_HAND_RIGHT" Offset="0xE77C" />
|
||||
<Limb Name="gObjectShnLimbHead" Type="Standard" EnumName="OBJECT_SHN_LIMB_HEAD" Offset="0xE788" />
|
||||
<Skeleton Name="gObjectShnSkel" Type="Flex" LimbType="Standard" LimbNone="OBJECT_SHN_LIMB_NONE" LimbMax="OBJECT_SHN_LIMB_MAX" EnumName="ObjectShnLimbs" Offset="0xE7D0" />
|
||||
<DList Name="object_shn_DL_00F2D0" Offset="0xF2D0" />
|
||||
<Texture Name="object_shn_TLUT_00F790" OutName="tlut_00F790" Format="rgba16" Width="16" Height="16" Offset="0xF790" />
|
||||
<Texture Name="object_shn_TLUT_00F990" OutName="tlut_00F990" Format="rgba16" Width="16" Height="16" Offset="0xF990" />
|
||||
<Texture Name="object_shn_Tex_00FB90" OutName="tex_00FB90" Format="rgba16" Width="32" Height="32" Offset="0xFB90" />
|
||||
<Texture Name="object_shn_Tex_010390" OutName="tex_010390" Format="rgba16" Width="32" Height="32" Offset="0x10390" />
|
||||
<Texture Name="object_shn_Tex_010B90" OutName="tex_010B90" Format="ci8" Width="32" Height="32" Offset="0x10B90" />
|
||||
<Texture Name="object_shn_Tex_010F90" OutName="tex_010F90" Format="ci8" Width="8" Height="8" Offset="0x10F90" />
|
||||
<Texture Name="object_shn_Tex_010FD0" OutName="tex_010FD0" Format="ci8" Width="16" Height="16" Offset="0x10FD0" />
|
||||
<Texture Name="object_shn_Tex_0110D0" OutName="tex_0110D0" Format="ci8" Width="16" Height="16" Offset="0x110D0" />
|
||||
<Texture Name="object_shn_Tex_0111D0" OutName="tex_0111D0" Format="ci8" Width="8" Height="8" Offset="0x111D0" />
|
||||
<!-- <Blob Name="object_shn_Blob_011210" Size="0x10" Offset="0x11210" /> -->
|
||||
<!-- Burly Guy Limb DisplayLists. Includes the Swamp Shooting Gallery Man's head -->
|
||||
<DList Name="gBurlyGuyWaistDL" Offset="0x3510" />
|
||||
<DList Name="gBurlyGuyTorsoDL" Offset="0x3600" />
|
||||
<DList Name="gSwampShootingGalleryManHeadDL" Offset="0x39A0" />
|
||||
<DList Name="gBurlyGuyRightShoulderDL" Offset="0x3DA0" />
|
||||
<DList Name="gBurlyGuyRightForearmDL" Offset="0x4038" />
|
||||
<DList Name="gBurlyGuyRightHandDL" Offset="0x42E0" />
|
||||
<DList Name="gBurlyGuyLeftShoulderDL" Offset="0x4620" />
|
||||
<DList Name="gBurlyGuyLeftForearmDL" Offset="0x48B8" />
|
||||
<DList Name="gBurlyGuyLeftHandDL" Offset="0x4B60" />
|
||||
<DList Name="gBurlyGuyRightThighDL" Offset="0x4EA8" />
|
||||
<DList Name="gBurlyGuyRightShinDL" Offset="0x4FC8" />
|
||||
<DList Name="gBurlyGuyRightFootDL" Offset="0x50D0" />
|
||||
<DList Name="gBurlyGuyLeftThighDL" Offset="0x5298" />
|
||||
<DList Name="gBurlyGuyLeftShinDL" Offset="0x53B8" />
|
||||
<DList Name="gBurlyGuyLeftFootDL" Offset="0x54C0" />
|
||||
|
||||
<!-- Textures for Burly Guy's body, as well as the Swamp Shooting Gallery Man's head -->
|
||||
<Texture Name="gSwampShootingGalleryManNoseTLUT" OutName="swamp_shooting_gallery_man_nose_tlut" Format="rgba16" Width="16" Height="16" Offset="0x5688" />
|
||||
<Texture Name="gBurlyGuyTLUT" OutName="shooting_gallery_man_tlut" Format="rgba16" Width="16" Height="16" Offset="0x5888" />
|
||||
<Texture Name="gBurlyGuySkinTex" OutName="shooting_gallery_man_skin" Format="ci8" Width="8" Height="8" Offset="0x5A88" />
|
||||
<Texture Name="gSwampShootingGalleryManEyeOpenTex" OutName="swamp_shooting_gallery_man_eye_open" Format="rgba16" Width="32" Height="32" Offset="0x5AC8" />
|
||||
<Texture Name="gSwampShootingGalleryManEyeHalfTex" OutName="swamp_shooting_gallery_man_eye_half" Format="rgba16" Width="32" Height="32" Offset="0x62C8" />
|
||||
<Texture Name="gSwampShootingGalleryManEyeClosedTex" OutName="swamp_shooting_gallery_man_eye_closed" Format="rgba16" Width="32" Height="32" Offset="0x6AC8" />
|
||||
<Texture Name="gSwampShootingGalleryManEarTex" OutName="swamp_shooting_gallery_man_ear" Format="ci8" Width="16" Height="16" Offset="0x72C8" />
|
||||
<Texture Name="gSwampShootingGalleryManNoseTex" OutName="swamp_shooting_gallery_man_nose" Format="ci8" Width="8" Height="8" Offset="0x73C8" />
|
||||
<Texture Name="gSwampShootingGalleryManBeardAndLipsTex" OutName="swamp_shooting_gallery_man_beard_and_lips" Format="ci8" Width="32" Height="32" Offset="0x7408" />
|
||||
<Texture Name="gSwampShootingGalleryManHairTex" OutName="swamp_shooting_gallery_man_hair" Format="ci8" Width="16" Height="16" Offset="0x7808" />
|
||||
<Texture Name="gBurlyGuyHandTex" OutName="shooting_gallery_man_hand" Format="ci8" Width="16" Height="16" Offset="0x7908" />
|
||||
<Texture Name="gBurlyGuyBodyHairTex" OutName="shooting_gallery_man_body_hair" Format="ci8" Width="32" Height="32" Offset="0x7A08" />
|
||||
<Texture Name="gBurlyGuyVestTex" OutName="shooting_gallery_man_vest" Format="ci8" Width="16" Height="16" Offset="0x7E08" />
|
||||
<Texture Name="gBurlyGuyPantsTex" OutName="shooting_gallery_man_pants" Format="ci8" Width="8" Height="8" Offset="0x7F08" />
|
||||
<Texture Name="gBurlyGuyShoesTex" OutName="shooting_gallery_man_shoes" Format="ci8" Width="16" Height="16" Offset="0x7F48" />
|
||||
|
||||
<!-- Unused Empty Texture Animation -->
|
||||
<TextureAnimation Name="gBurlyGuyUnused8050TexAnim" Offset="0x8050" />
|
||||
|
||||
<!-- DisplayLists for an unused duplicate of the Town Shooting Gallery Man's head -->
|
||||
<DList Name="gUnusedTownShootingGalleryManEyesDL" Offset="0x8BA0" />
|
||||
<DList Name="gUnusedTownShootingGalleryManLipsDL" Offset="0x8C70" />
|
||||
<DList Name="gUnusedTownShootingGalleryManNoseDL" Offset="0x8D90" />
|
||||
<DList Name="gUnusedTownShootingGalleryManEarsDL" Offset="0x8E48" />
|
||||
<DList Name="gUnusedTownShootingGalleryManHairAndSideburnsDL" Offset="0x8F00" />
|
||||
<DList Name="gUnusedTownShootingGalleryManFaceAndChinDL" Offset="0x9040" />
|
||||
|
||||
<!-- Textures for an unused duplicate of the Town Shooting Gallery Man's head -->
|
||||
<Texture Name="gUnusedTownShootingGalleryManBeardAndLipsTLUT" OutName="unused_town_shooting_gallery_man_beard_and_lips_tlut" Format="rgba16" Width="16" Height="16" Offset="0x91D8" />
|
||||
<Texture Name="gUnusedTownShootingGalleryManHairTLUT" OutName="unused_town_shooting_gallery_man_hair_tlut" Format="rgba16" Width="16" Height="16" Offset="0x93D8" />
|
||||
<Texture Name="gUnusedTownShootingGalleryManEarTLUT" OutName="unused_town_shooting_gallery_man_ear_tlut" Format="rgba16" Width="16" Height="16" Offset="0x95D8" />
|
||||
<Texture Name="gUnusedTownShootingGalleryManNoseTLUT" OutName="unused_town_shooting_gallery_man_nose_tlut" Format="rgba16" Width="16" Height="16" Offset="0x97D8" />
|
||||
<Texture Name="gUnusedTownShootingGalleryManEyeTLUT" OutName="unused_town_shooting_gallery_man_eye_tlut" Format="rgba16" Width="16" Height="16" Offset="0x99D8" />
|
||||
<Texture Name="gUnusedTownShootingGalleryManSkinTLUT" OutName="unused_town_shooting_gallery_man_skin_tlut" Format="rgba16" Width="16" Height="16" Offset="0x9BD8" />
|
||||
<Texture Name="gUnusedTownShootingGalleryManBeardAndLipsTex" OutName="unused_town_shooting_gallery_man_beard_and_lips" Format="ci8" Width="32" Height="32" Offset="0x9DD8" /> <!-- Used only for the lips -->
|
||||
<Texture Name="gUnusedTownShootingGalleryManHairTex" OutName="unused_town_shooting_gallery_man_hair" Format="ci8" Width="16" Height="16" Offset="0xA1D8" />
|
||||
<Texture Name="gUnusedTownShootingGalleryManEarTex" OutName="unused_town_shooting_gallery_man_ear" Format="ci8" Width="16" Height="16" Offset="0xA2D8" />
|
||||
<Texture Name="gUnusedTownShootingGalleryManNoseTex" OutName="unused_town_shooting_gallery_man_nose" Format="ci8" Width="8" Height="8" Offset="0xA3D8" />
|
||||
<Texture Name="gUnusedTownShootingGalleryManEyeTex" OutName="unused_town_shooting_gallery_man_eye" Format="ci8" Width="32" Height="32" Offset="0xA418" />
|
||||
<Texture Name="gUnusedTownShootingGalleryManSkinTex" OutName="unused_town_shooting_gallery_man_skin" Format="ci8" Width="8" Height="8" Offset="0xA818" />
|
||||
|
||||
<!-- Unused Empty DisplayList -->
|
||||
<DList Name="gBurlyGuyEmptyDL" Offset="0xB730" />
|
||||
|
||||
<!-- DisplayList for the Swamp Guide's head -->
|
||||
<DList Name="gSwampGuideHeadDL" Offset="0xB738" />
|
||||
|
||||
<!-- Textures for the Swamp Guide's head -->
|
||||
<Texture Name="gSwampGuideHairFabricAndSkinTLUT" OutName="swamp_guide_hair_fabric_and_skin_tlut" Format="rgba16" Width="16" Height="16" Offset="0xBCD8" />
|
||||
<Texture Name="gSwampGuideMouthGoggleAndEyeTLUT" OutName="swamp_guide_mouth_goggle_and_eye_tlut" Format="rgba16" Width="16" Height="16" Offset="0xBED8" />
|
||||
<Texture Name="gSwampGuideSkinTex" OutName="swamp_guide_skin" Format="ci8" Width="8" Height="8" Offset="0xC0D8" />
|
||||
<Texture Name="gSwampGuideHatFabricTex" OutName="swamp_guide_hat_fabric" Format="ci8" Width="16" Height="16" Offset="0xC118" />
|
||||
<Texture Name="gSwampGuideHairAndBeardTex" OutName="swamp_guide_hair_and_beard" Format="ci8" Width="16" Height="16" Offset="0xC218" />
|
||||
<Texture Name="gSwampGuideHatAndGogglesMetalTex" OutName="swamp_guide_hat_and_goggles_metal" Format="ci8" Width="32" Height="16" Offset="0xC318" />
|
||||
<Texture Name="gSwampGuideEyeTex" OutName="swamp_guide_eye" Format="ci8" Width="32" Height="32" Offset="0xC518" />
|
||||
<Texture Name="gSwampGuideGoggleStrapTex" OutName="swamp_guide_goggle_strap" Format="ci8" Width="16" Height="16" Offset="0xC918" />
|
||||
<Texture Name="gSwampGuideNoseTex" OutName="swamp_guide_nose" Format="rgba16" Width="8" Height="8" Offset="0xCA18" />
|
||||
<Texture Name="gSwampGuideMouthTex" OutName="swamp_guide_mouth" Format="ci8" Width="16" Height="32" Offset="0xCA98" />
|
||||
|
||||
<!-- Burly Guy Animations -->
|
||||
<Animation Name="gSwampShootingGalleryManHeadScratchEndAnim" Offset="0xD2F8" /> <!-- Original name is "shn_w02TOw01" ("wait02 to wait01"?) -->
|
||||
<Animation Name="gBurlyGuyEmptyAnim" Offset="0xD3AC" /> <!-- Original name is "shn_wait". Unused and one frame long -->
|
||||
<Animation Name="gBurlyGuyHandsOnTableAnim" Offset="0xD9D0" /> <!-- Original name is "shn_wait01" -->
|
||||
<Animation Name="gSwampShootingGalleryManHeadScratchLoopAnim" Offset="0xDFEC" /> <!-- Original name is "shn_wait02" -->
|
||||
<Animation Name="gSwampGuideChinScratchAnim" Offset="0xE6C4" /><!-- Original name is "shn_wait03" -->
|
||||
|
||||
<!-- Burly Guy Limbs -->
|
||||
<Limb Name="gBurlyGuyWaistLimb" Type="Standard" EnumName="BURLY_GUY_LIMB_WAIST" Offset="0xE6E0" />
|
||||
<Limb Name="gBurlyGuyLeftThighLimb" Type="Standard" EnumName="BURLY_GUY_LIMB_LEFT_THIGH" Offset="0xE6EC" />
|
||||
<Limb Name="gBurlyGuyLeftShinLimb" Type="Standard" EnumName="BURLY_GUY_LIMB_LEFT_SHIN" Offset="0xE6F8" />
|
||||
<Limb Name="gBurlyGuyLeftFootLimb" Type="Standard" EnumName="BURLY_GUY_LIMB_LEFT_FOOT" Offset="0xE704" />
|
||||
<Limb Name="gBurlyGuyRightThighLimb" Type="Standard" EnumName="BURLY_GUY_LIMB_RIGHT_THIGH" Offset="0xE710" />
|
||||
<Limb Name="gBurlyGuyRightShinLimb" Type="Standard" EnumName="BURLY_GUY_LIMB_RIGHT_SHIN" Offset="0xE71C" />
|
||||
<Limb Name="gBurlyGuyRightFootLimb" Type="Standard" EnumName="BURLY_GUY_LIMB_RIGHT_FOOT" Offset="0xE728" />
|
||||
<Limb Name="gBurlyGuyTorsoLimb" Type="Standard" EnumName="BURLY_GUY_LIMB_TORSO" Offset="0xE734" />
|
||||
<Limb Name="gBurlyGuyLeftShoulderLimb" Type="Standard" EnumName="BURLY_GUY_LIMB_LEFT_SHOULDER" Offset="0xE740" />
|
||||
<Limb Name="gBurlyGuyLeftForearmLimb" Type="Standard" EnumName="BURLY_GUY_LIMB_LEFT_FOREARM" Offset="0xE74C" />
|
||||
<Limb Name="gBurlyGuyLeftHandLimb" Type="Standard" EnumName="BURLY_GUY_LIMB_LEFT_HAND" Offset="0xE758" />
|
||||
<Limb Name="gBurlyGuyRightShoulderLimb" Type="Standard" EnumName="BURLY_GUY_LIMB_RIGHT_SHOULDER" Offset="0xE764" />
|
||||
<Limb Name="gBurlyGuyRightForearmLimb" Type="Standard" EnumName="BURLY_GUY_LIMB_RIGHT_FOREARM" Offset="0xE770" />
|
||||
<Limb Name="gBurlyGuyRightHandLimb" Type="Standard" EnumName="BURLY_GUY_LIMB_RIGHT_HAND" Offset="0xE77C" />
|
||||
<Limb Name="gBurlyGuyHeadLimb" Type="Standard" EnumName="BURLY_GUY_LIMB_HEAD" Offset="0xE788" />
|
||||
|
||||
<!-- Burly Guy Skeleton -->
|
||||
<Skeleton Name="gBurlyGuySkel" Type="Flex" LimbType="Standard" LimbNone="BURLY_GUY_LIMB_NONE" LimbMax="BURLY_GUY_LIMB_MAX" EnumName="BurlyGuyLimbs" Offset="0xE7D0" />
|
||||
|
||||
<!-- DisplayList for the Town Shooting Gallery Man's Head -->
|
||||
<DList Name="gTownShootingGalleryManHeadDL" Offset="0xF2D0" />
|
||||
|
||||
<!-- Textures for the Town Shooting Gallery Man's Head -->
|
||||
<Texture Name="gTownShootingGalleryManNoseTLUT" OutName="town_shooting_gallery_man_nose_tlut" Format="rgba16" Width="16" Height="16" Offset="0xF790" />
|
||||
<Texture Name="gTownShootingGalleryManHeadTLUT" OutName="town_shooting_gallery_man_head_tlut" Format="rgba16" Width="16" Height="16" Offset="0xF990" />
|
||||
<Texture Name="gTownShootingGalleryManEyeOpenTex" OutName="town_shooting_gallery_man_eye_open" Format="rgba16" Width="32" Height="32" Offset="0xFB90" />
|
||||
<Texture Name="gTownShootingGalleryManEyeClosedTex" OutName="town_shooting_gallery_man_eye_closed" Format="rgba16" Width="32" Height="32" Offset="0x10390" />
|
||||
<Texture Name="gTownShootingGalleryManBeardAndLipsTex" OutName="town_shooting_gallery_man_beard_and_lips" Format="ci8" Width="32" Height="32" Offset="0x10B90" /> <!-- Used only for the lips -->
|
||||
<Texture Name="gTownShootingGalleryManNoseTex" OutName="town_shooting_gallery_man_nose" Format="ci8" Width="8" Height="8" Offset="0x10F90" />
|
||||
<Texture Name="gTownShootingGalleryManEarTex" OutName="town_shooting_gallery_man_ear" Format="ci8" Width="16" Height="16" Offset="0x10FD0" />
|
||||
<Texture Name="gTownShootingGalleryManHairTex" OutName="town_shooting_gallery_man_hair" Format="ci8" Width="16" Height="16" Offset="0x110D0" />
|
||||
<Texture Name="gTownShootingGalleryManSkinTex" OutName="town_shooting_gallery_man_skin" Format="ci8" Width="8" Height="8" Offset="0x111D0" />
|
||||
|
||||
<!-- Unused Empty Texture Animation -->
|
||||
<TextureAnimation Name="gBurlyGuyUnused11210TexAnim" Offset="0x11210" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<Root>
|
||||
<!-- The collision for the front of the Deep Python's den (the invisible wall) -->
|
||||
<File Name="object_sinkai_kabe" Segment="6">
|
||||
<Collision Name="object_sinkai_kabe_Colheader_000048" Offset="0x48" />
|
||||
<Collision Name="gPinnacleRockPythonDenCol" Offset="0x48" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<Root>
|
||||
<File Name="object_syoten" Segment="6">
|
||||
<!-- <Blob Name="object_syoten_Blob_000000" Size="0x250" Offset="0x0" /> -->
|
||||
<!-- <Blob Name="object_syoten_Blob_000000" Size="0x23C" Offset="0x0" /> -->
|
||||
<Blob Name="object_syoten_Blob_00023C" Size="0x214" Offset="0x23C" />
|
||||
<DList Name="object_syoten_DL_000450" Offset="0x450" />
|
||||
<DList Name="object_syoten_DL_000518" Offset="0x518" />
|
||||
<DList Name="object_syoten_DL_0005E0" Offset="0x5E0" />
|
||||
@@ -12,12 +13,16 @@
|
||||
<Texture Name="object_syoten_Tex_000A90" OutName="tex_000A90" Format="i8" Width="32" Height="32" Offset="0xA90" />
|
||||
<Texture Name="object_syoten_Tex_000E90" OutName="tex_000E90" Format="i8" Width="32" Height="32" Offset="0xE90" />
|
||||
<TextureAnimation Name="object_syoten_Matanimheader_001298" Offset="0x1298" />
|
||||
<!-- <Blob Name="object_syoten_Blob_0012A0" Size="0x90" Offset="0x12A0" /> -->
|
||||
<!-- <Blob Name="object_syoten_Blob_0012A0" Size="0x88" Offset="0x12A0" /> -->
|
||||
<Blob Name="object_syoten_Blob_001328" Size="0x48" Offset="0x1328" />
|
||||
<DList Name="object_syoten_DL_001370" Offset="0x1370" />
|
||||
<TextureAnimation Name="object_syoten_Matanimheader_001448" Offset="0x1448" />
|
||||
<DList Name="object_syoten_DL_001730" Offset="0x1730" />
|
||||
<DList Name="object_syoten_DL_0018A0" Offset="0x18A0" />
|
||||
<TextureAnimation Name="object_syoten_Matanimheader_0018B8" Offset="0x18B8" />
|
||||
<Array Name="object_syotenVtx_0018C0" Count="81" Offset="0x18C0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="object_syoten_DL_001DD0" Offset="0x1DD0" />
|
||||
<DList Name="object_syoten_DL_002018" Offset="0x2018" />
|
||||
<DList Name="object_syoten_DL_002880" Offset="0x2880" />
|
||||
|
||||
@@ -1,14 +1,19 @@
|
||||
<Root>
|
||||
<!-- Assets for seagulls -->
|
||||
<File Name="object_tanron4" Segment="6">
|
||||
<Animation Name="object_tanron4_Anim_000058" Offset="0x58" />
|
||||
<Animation Name="object_tanron4_Anim_000168" Offset="0x168" />
|
||||
<!-- The glide animation goes unused, instead the flap animation is frozen while it glides-->
|
||||
<Animation Name="gSeagullGlideAnim" Offset="0x58" />
|
||||
<Animation Name="gSeagullFlapAnim" Offset="0x168" />
|
||||
|
||||
<DList Name="object_tanron4_DL_000300" Offset="0x300" />
|
||||
<DList Name="object_tanron4_DL_0003A0" Offset="0x3A0" />
|
||||
<DList Name="object_tanron4_DL_000440" Offset="0x440" />
|
||||
<DList Name="object_tanron4_DL_0004B0" Offset="0x4B0" />
|
||||
<DList Name="object_tanron4_DL_000550" Offset="0x550" />
|
||||
|
||||
<Texture Name="object_tanron4_Tex_0005C8" OutName="tex_0005C8" Format="rgba16" Width="32" Height="16" Offset="0x5C8" />
|
||||
<Texture Name="object_tanron4_Tex_0009C8" OutName="tex_0009C8" Format="rgba16" Width="32" Height="16" Offset="0x9C8" />
|
||||
|
||||
<Limb Name="object_tanron4_Standardlimb_000DC8" Type="Standard" EnumName="OBJECT_TANRON4_LIMB_01" Offset="0xDC8" />
|
||||
<Limb Name="object_tanron4_Standardlimb_000DD4" Type="Standard" EnumName="OBJECT_TANRON4_LIMB_02" Offset="0xDD4" />
|
||||
<Limb Name="object_tanron4_Standardlimb_000DE0" Type="Standard" EnumName="OBJECT_TANRON4_LIMB_03" Offset="0xDE0" />
|
||||
@@ -19,6 +24,7 @@
|
||||
<Limb Name="object_tanron4_Standardlimb_000E1C" Type="Standard" EnumName="OBJECT_TANRON4_LIMB_08" Offset="0xE1C" />
|
||||
<Limb Name="object_tanron4_Standardlimb_000E28" Type="Standard" EnumName="OBJECT_TANRON4_LIMB_09" Offset="0xE28" />
|
||||
<Limb Name="object_tanron4_Standardlimb_000E34" Type="Standard" EnumName="OBJECT_TANRON4_LIMB_0A" Offset="0xE34" />
|
||||
<Skeleton Name="object_tanron4_Skel_000E68" Type="Flex" LimbType="Standard" LimbNone="OBJECT_TANRON4_LIMB_NONE" LimbMax="OBJECT_TANRON4_LIMB_MAX" EnumName="object_tanron4_Limbs" Offset="0xE68" />
|
||||
|
||||
<Skeleton Name="gSeagullSkel" Type="Flex" LimbType="Standard" LimbNone="OBJECT_TANRON4_LIMB_NONE" LimbMax="OBJECT_TANRON4_LIMB_MAX" EnumName="object_tanron4_Limbs" Offset="0xE68" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -26,11 +26,11 @@
|
||||
<Texture Name="object_tsn_Tex_006CB8" OutName="tex_006CB8" Format="ci8" Width="32" Height="32" Offset="0x6CB8" />
|
||||
<Texture Name="object_tsn_Tex_0070B8" OutName="tex_0070B8" Format="rgba16" Width="16" Height="16" Offset="0x70B8" />
|
||||
<Texture Name="object_tsn_Tex_0072B8" OutName="tex_0072B8" Format="ci8" Width="16" Height="16" Offset="0x72B8" />
|
||||
<!-- <Blob Name="object_tsn_Blob_0073B8" Size="0x400" Offset="0x73B8" /> -->
|
||||
<Texture Name="object_tsn_Tex_0073B8" OutName="tex_0073B8" Format="ci8" Width="32" Height="32" Offset="0x73B8" />
|
||||
<Texture Name="object_tsn_Tex_0077B8" OutName="tex_0077B8" Format="rgba16" Width="16" Height="32" Offset="0x77B8" />
|
||||
<Texture Name="object_tsn_Tex_007BB8" OutName="tex_007BB8" Format="rgba16" Width="16" Height="16" Offset="0x7BB8" />
|
||||
<Texture Name="object_tsn_Tex_007DB8" OutName="tex_007DB8" Format="rgba16" Width="32" Height="32" Offset="0x7DB8" />
|
||||
<!-- <Blob Name="object_tsn_Blob_0085B8" Size="0x400" Offset="0x85B8" /> -->
|
||||
<Texture Name="object_tsn_Tex_0085B8" OutName="tex_0085B8" Format="ci8" Width="32" Height="32" Offset="0x85B8" />
|
||||
<Limb Name="object_tsn_Standardlimb_0089B8" Type="Standard" EnumName="OBJECT_TSN_LIMB_01" Offset="0x89B8" />
|
||||
<Limb Name="object_tsn_Standardlimb_0089C4" Type="Standard" EnumName="OBJECT_TSN_LIMB_02" Offset="0x89C4" />
|
||||
<Limb Name="object_tsn_Standardlimb_0089D0" Type="Standard" EnumName="OBJECT_TSN_LIMB_03" Offset="0x89D0" />
|
||||
|
||||
@@ -1,42 +1,53 @@
|
||||
<Root>
|
||||
<!-- Assets for Deep Python -->
|
||||
<File Name="object_utubo" Segment="6">
|
||||
<Animation Name="object_utubo_Anim_00082C" Offset="0x82C" />
|
||||
<DList Name="object_utubo_DL_0020B0" Offset="0x20B0" />
|
||||
<DList Name="object_utubo_DL_002358" Offset="0x2358" />
|
||||
<DList Name="object_utubo_DL_002440" Offset="0x2440" />
|
||||
<DList Name="object_utubo_DL_002580" Offset="0x2580" />
|
||||
<DList Name="object_utubo_DL_002738" Offset="0x2738" />
|
||||
<DList Name="object_utubo_DL_0028A0" Offset="0x28A0" />
|
||||
<DList Name="object_utubo_DL_002A08" Offset="0x2A08" />
|
||||
<DList Name="object_utubo_DL_002B18" Offset="0x2B18" />
|
||||
<DList Name="object_utubo_DL_002C28" Offset="0x2C28" />
|
||||
<DList Name="object_utubo_DL_002D38" Offset="0x2D38" />
|
||||
<Texture Name="object_utubo_TLUT_002E48" OutName="tlut_002E48" Format="rgba16" Width="4" Height="4" Offset="0x2E48" />
|
||||
<Texture Name="object_utubo_TLUT_002E68" OutName="tlut_002E68" Format="rgba16" Width="4" Height="4" Offset="0x2E68" />
|
||||
<Texture Name="object_utubo_TLUT_002E88" OutName="tlut_002E88" Format="rgba16" Width="4" Height="4" Offset="0x2E88" />
|
||||
<Texture Name="object_utubo_Tex_002EA8" OutName="tex_002EA8" Format="ci4" Width="64" Height="64" Offset="0x2EA8" />
|
||||
<Texture Name="object_utubo_Tex_0036A8" OutName="tex_0036A8" Format="rgba16" Width="32" Height="32" Offset="0x36A8" />
|
||||
<Texture Name="object_utubo_Tex_003EA8" OutName="tex_003EA8" Format="ci4" Width="32" Height="32" Offset="0x3EA8" />
|
||||
<Texture Name="object_utubo_Tex_0040A8" OutName="tex_0040A8" Format="ci4" Width="32" Height="32" Offset="0x40A8" />
|
||||
<Limb Name="object_utubo_Standardlimb_0042A8" Type="Standard" EnumName="OBJECT_UTUBO_LIMB_01" Offset="0x42A8" />
|
||||
<Limb Name="object_utubo_Standardlimb_0042B4" Type="Standard" EnumName="OBJECT_UTUBO_LIMB_02" Offset="0x42B4" />
|
||||
<Limb Name="object_utubo_Standardlimb_0042C0" Type="Standard" EnumName="OBJECT_UTUBO_LIMB_03" Offset="0x42C0" />
|
||||
<Limb Name="object_utubo_Standardlimb_0042CC" Type="Standard" EnumName="OBJECT_UTUBO_LIMB_04" Offset="0x42CC" />
|
||||
<Limb Name="object_utubo_Standardlimb_0042D8" Type="Standard" EnumName="OBJECT_UTUBO_LIMB_05" Offset="0x42D8" />
|
||||
<Limb Name="object_utubo_Standardlimb_0042E4" Type="Standard" EnumName="OBJECT_UTUBO_LIMB_06" Offset="0x42E4" />
|
||||
<Limb Name="object_utubo_Standardlimb_0042F0" Type="Standard" EnumName="OBJECT_UTUBO_LIMB_07" Offset="0x42F0" />
|
||||
<Limb Name="object_utubo_Standardlimb_0042FC" Type="Standard" EnumName="OBJECT_UTUBO_LIMB_08" Offset="0x42FC" />
|
||||
<Limb Name="object_utubo_Standardlimb_004308" Type="Standard" EnumName="OBJECT_UTUBO_LIMB_09" Offset="0x4308" />
|
||||
<Limb Name="object_utubo_Standardlimb_004314" Type="Standard" EnumName="OBJECT_UTUBO_LIMB_0A" Offset="0x4314" />
|
||||
<Limb Name="object_utubo_Standardlimb_004320" Type="Standard" EnumName="OBJECT_UTUBO_LIMB_0B" Offset="0x4320" />
|
||||
<Limb Name="object_utubo_Standardlimb_00432C" Type="Standard" EnumName="OBJECT_UTUBO_LIMB_0C" Offset="0x432C" />
|
||||
<Limb Name="object_utubo_Standardlimb_004338" Type="Standard" EnumName="OBJECT_UTUBO_LIMB_0D" Offset="0x4338" />
|
||||
<Limb Name="object_utubo_Standardlimb_004344" Type="Standard" EnumName="OBJECT_UTUBO_LIMB_0E" Offset="0x4344" />
|
||||
<Limb Name="object_utubo_Standardlimb_004350" Type="Standard" EnumName="OBJECT_UTUBO_LIMB_0F" Offset="0x4350" />
|
||||
<Skeleton Name="object_utubo_Skel_004398" Type="Flex" LimbType="Standard" LimbNone="OBJECT_UTUBO_LIMB_NONE" LimbMax="OBJECT_UTUBO_LIMB_MAX" EnumName="object_utubo_Limbs" Offset="0x4398" />
|
||||
<Animation Name="object_utubo_Anim_004518" Offset="0x4518" />
|
||||
<Animation Name="object_utubo_Anim_004740" Offset="0x4740" />
|
||||
<Animation Name="object_utubo_Anim_0048B8" Offset="0x48B8" />
|
||||
<Animation Name="object_utubo_Anim_004ABC" Offset="0x4ABC" />
|
||||
<Animation Name="gDeepPythonMultiDirectionalSwayAnim" Offset="0x82C" /> <!-- Unused -->
|
||||
|
||||
<!-- Deep Python Limb DisplayLists -->
|
||||
<DList Name="gDeepPythonHeadDL" Offset="0x20B0" />
|
||||
<DList Name="gDeepPythonJawDL" Offset="0x2358" />
|
||||
<DList Name="gDeepPythonCollarDL" Offset="0x2440" />
|
||||
<DList Name="gDeepPythonBodySegment1DL" Offset="0x2580" />
|
||||
<DList Name="gDeepPythonBodySegment2DL" Offset="0x2738" />
|
||||
<DList Name="gDeepPythonBodySegment3DL" Offset="0x28A0" />
|
||||
<DList Name="gDeepPythonBodySegment4DL" Offset="0x2A08" />
|
||||
<DList Name="gDeepPythonBodySegment7DL" Offset="0x2B18" />
|
||||
<DList Name="gDeepPythonBodySegment6DL" Offset="0x2C28" />
|
||||
<DList Name="gDeepPythonBodySegment5DL" Offset="0x2D38" />
|
||||
|
||||
<!-- Deep Python Textures -->
|
||||
<Texture Name="gDeepPythonHeadAndCollarTLUT" OutName="deep_python_head_and_collar_tlut" Format="rgba16" Width="4" Height="4" Offset="0x2E48" />
|
||||
<Texture Name="gDeepPythonBodySegment1FrontTLUT" OutName="deep_python_body_segment_1_front_tlut" Format="rgba16" Width="4" Height="4" Offset="0x2E68" />
|
||||
<Texture Name="gDeepPythonBodyTLUT" OutName="deep_python_body_tlut" Format="rgba16" Width="4" Height="4" Offset="0x2E88" />
|
||||
<Texture Name="gDeepPythonHeadAndCollarTex" OutName="deep_python_head_and_collar" Format="ci4" Width="64" Height="64" Offset="0x2EA8" />
|
||||
<Texture Name="gDeepPythonEyeTex" OutName="deep_python_eye" Format="rgba16" Width="32" Height="32" Offset="0x36A8" />
|
||||
<Texture Name="gDeepPythonBodySegment1FrontTex" OutName="deep_python_body_segment_1_front" Format="ci4" Width="32" Height="32" Offset="0x3EA8" />
|
||||
<Texture Name="gDeepPythonBodyTex" OutName="deep_python_body" Format="ci4" Width="32" Height="32" Offset="0x40A8" />
|
||||
|
||||
<!-- Deep Python Limbs -->
|
||||
<Limb Name="gDeepPythonRootLimb" Type="Standard" EnumName="DEEP_PYTHON_LIMB_ROOT" Offset="0x42A8" />
|
||||
<Limb Name="gDeepPythonMiddleBodyRootLimb" Type="Standard" EnumName="DEEP_PYTHON_LIMB_MIDDLE_BODY_ROOT" Offset="0x42B4" />
|
||||
<Limb Name="gDeepPythonBodySegment4Limb" Type="Standard" EnumName="DEEP_PYTHON_LIMB_BODY_SEGMENT_4" Offset="0x42C0" />
|
||||
<Limb Name="gDeepPythonBodySegment5Limb" Type="Standard" EnumName="DEEP_PYTHON_LIMB_BODY_SEGMENT_5" Offset="0x42CC" />
|
||||
<Limb Name="gDeepPythonBodySegment6Limb" Type="Standard" EnumName="DEEP_PYTHON_LIMB_BODY_SEGMENT_6" Offset="0x42D8" />
|
||||
<Limb Name="gDeepPythonBodySegment7Limb" Type="Standard" EnumName="DEEP_PYTHON_LIMB_BODY_SEGMENT_7" Offset="0x42E4" />
|
||||
<Limb Name="gDeepPythonBodySegment3Limb" Type="Standard" EnumName="DEEP_PYTHON_LIMB_BODY_SEGMENT_3" Offset="0x42F0" />
|
||||
<Limb Name="gDeepPythonUpperBodyRootLimb" Type="Standard" EnumName="DEEP_PYTHON_LIMB_UPPER_BODY_ROOT" Offset="0x42FC" />
|
||||
<Limb Name="gDeepPythonBodySegment2Limb" Type="Standard" EnumName="DEEP_PYTHON_LIMB_BODY_SEGMENT_2" Offset="0x4308" />
|
||||
<Limb Name="gDeepPythonBodySegment1Limb" Type="Standard" EnumName="DEEP_PYTHON_LIMB_BODY_SEGMENT_1" Offset="0x4314" />
|
||||
<Limb Name="gDeepPythonHeadAndCollarRootLimb" Type="Standard" EnumName="DEEP_PYTHON_LIMB_HEAD_AND_COLLAR_ROOT" Offset="0x4320" />
|
||||
<Limb Name="gDeepPythonCollarLimb" Type="Standard" EnumName="DEEP_PYTHON_LIMB_COLLAR" Offset="0x432C" />
|
||||
<Limb Name="gDeepPythonHeadLimb" Type="Standard" EnumName="DEEP_PYTHON_LIMB_HEAD" Offset="0x4338" />
|
||||
<Limb Name="gDeepPythonJawRootLimb" Type="Standard" EnumName="DEEP_PYTHON_LIMB_JAW_ROOT" Offset="0x4344" />
|
||||
<Limb Name="gDeepPythonJawLimb" Type="Standard" EnumName="DEEP_PYTHON_LIMB_JAW" Offset="0x4350" />
|
||||
|
||||
<!-- Deep Python Skeleton -->
|
||||
<Skeleton Name="gDeepPythonSkel" Type="Flex" LimbType="Standard" LimbNone="DEEP_PYTHON_LIMB_NONE" LimbMax="DEEP_PYTHON_LIMB_MAX" EnumName="DeepPythonLimbs" Offset="0x4398" />
|
||||
|
||||
<!-- Deep Python Animations -->
|
||||
<Animation Name="gDeepPythonUnusedSideSwayAnim" Offset="0x4518" /> <!-- Unused duplicate of gDeepPythonSmallSideSwayAnim -->
|
||||
<Animation Name="gDeepPythonVerticalSwayAnim" Offset="0x4740" /> <!-- Referenced by En_Dragon, but never actually used in the final game. -->
|
||||
<Animation Name="gDeepPythonSmallSideSwayAnim" Offset="0x48B8" /> <!-- Original name might be "utubo_wait" -->
|
||||
<Animation Name="gDeepPythonLargeSideSwayAnim" Offset="0x4ABC" /> <!-- Original name might be "utubo_yoko" ("side-to-side") -->
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,63 +1,75 @@
|
||||
<Root>
|
||||
<!-- Assets for both Wallmasters and Floormasters. -->
|
||||
<File Name="object_wallmaster" Segment="6">
|
||||
<Animation Name="object_wallmaster_Anim_000590" Offset="0x590" />
|
||||
<Animation Name="object_wallmaster_Anim_000EA4" Offset="0xEA4" />
|
||||
<Animation Name="object_wallmaster_Anim_0019CC" Offset="0x19CC" />
|
||||
<Animation Name="object_wallmaster_Anim_002158" Offset="0x2158" />
|
||||
<Animation Name="object_wallmaster_Anim_00299C" Offset="0x299C" />
|
||||
<Animation Name="object_wallmaster_Anim_003120" Offset="0x3120" />
|
||||
<Animation Name="object_wallmaster_Anim_0039B0" Offset="0x39B0" />
|
||||
<Animation Name="object_wallmaster_Anim_0041F4" Offset="0x41F4" />
|
||||
<DList Name="object_wallmaster_DL_006660" Offset="0x6660" />
|
||||
<DList Name="object_wallmaster_DL_006800" Offset="0x6800" />
|
||||
<DList Name="object_wallmaster_DL_006A20" Offset="0x6A20" />
|
||||
<DList Name="object_wallmaster_DL_006C58" Offset="0x6C58" />
|
||||
<DList Name="object_wallmaster_DL_006E98" Offset="0x6E98" />
|
||||
<DList Name="object_wallmaster_DL_007038" Offset="0x7038" />
|
||||
<DList Name="object_wallmaster_DL_007258" Offset="0x7258" />
|
||||
<DList Name="object_wallmaster_DL_007408" Offset="0x7408" />
|
||||
<DList Name="object_wallmaster_DL_0075A8" Offset="0x75A8" />
|
||||
<DList Name="object_wallmaster_DL_0077C8" Offset="0x77C8" />
|
||||
<DList Name="object_wallmaster_DL_007978" Offset="0x7978" />
|
||||
<DList Name="object_wallmaster_DL_007B18" Offset="0x7B18" />
|
||||
<DList Name="object_wallmaster_DL_007CE8" Offset="0x7CE8" />
|
||||
<DList Name="object_wallmaster_DL_007E98" Offset="0x7E98" />
|
||||
<DList Name="object_wallmaster_DL_008688" Offset="0x8688" />
|
||||
<Texture Name="object_wallmaster_Tex_0088F0" OutName="tex_0088F0" Format="rgba16" Width="8" Height="16" Offset="0x88F0" />
|
||||
<Texture Name="object_wallmaster_Tex_0089F0" OutName="tex_0089F0" Format="rgba16" Width="8" Height="16" Offset="0x89F0" />
|
||||
<Texture Name="object_wallmaster_Tex_008AF0" OutName="tex_008AF0" Format="rgba16" Width="8" Height="8" Offset="0x8AF0" />
|
||||
<Texture Name="object_wallmaster_Tex_008B70" OutName="tex_008B70" Format="rgba16" Width="4" Height="16" Offset="0x8B70" />
|
||||
<Texture Name="object_wallmaster_Tex_008BF0" OutName="tex_008BF0" Format="rgba16" Width="4" Height="8" Offset="0x8BF0" />
|
||||
<Texture Name="object_wallmaster_Tex_008C30" OutName="tex_008C30" Format="rgba16" Width="8" Height="16" Offset="0x8C30" />
|
||||
<Texture Name="object_wallmaster_Tex_008D30" OutName="tex_008D30" Format="rgba16" Width="8" Height="16" Offset="0x8D30" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008E30" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_01" Offset="0x8E30" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008E3C" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_02" Offset="0x8E3C" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008E48" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_03" Offset="0x8E48" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008E54" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_04" Offset="0x8E54" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008E60" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_05" Offset="0x8E60" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008E6C" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_06" Offset="0x8E6C" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008E78" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_07" Offset="0x8E78" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008E84" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_08" Offset="0x8E84" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008E90" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_09" Offset="0x8E90" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008E9C" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_0A" Offset="0x8E9C" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008EA8" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_0B" Offset="0x8EA8" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008EB4" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_0C" Offset="0x8EB4" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008EC0" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_0D" Offset="0x8EC0" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008ECC" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_0E" Offset="0x8ECC" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008ED8" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_0F" Offset="0x8ED8" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008EE4" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_10" Offset="0x8EE4" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008EF0" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_11" Offset="0x8EF0" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008EFC" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_12" Offset="0x8EFC" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008F08" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_13" Offset="0x8F08" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008F14" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_14" Offset="0x8F14" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008F20" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_15" Offset="0x8F20" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008F2C" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_16" Offset="0x8F2C" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008F38" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_17" Offset="0x8F38" />
|
||||
<Limb Name="object_wallmaster_Standardlimb_008F44" Type="Standard" EnumName="OBJECT_WALLMASTER_LIMB_18" Offset="0x8F44" />
|
||||
<Skeleton Name="object_wallmaster_Skel_008FB0" Type="Flex" LimbType="Standard" LimbNone="OBJECT_WALLMASTER_LIMB_NONE" LimbMax="OBJECT_WALLMASTER_LIMB_MAX" EnumName="object_wallmaster_Limbs" Offset="0x8FB0" />
|
||||
<Animation Name="object_wallmaster_Anim_009244" Offset="0x9244" />
|
||||
<Animation Name="object_wallmaster_Anim_009520" Offset="0x9520" />
|
||||
<Animation Name="object_wallmaster_Anim_009DB0" Offset="0x9DB0" />
|
||||
<Animation Name="object_wallmaster_Anim_00A054" Offset="0xA054" />
|
||||
<Animation Name="gWallmasterDamageAnim" Offset="0x590" /> <!-- Original name is "wm_damage" -->
|
||||
<Animation Name="gWallmasterRecoverFromDamageAnim" Offset="0xEA4" /> <!-- Original name is "wm_damage_wait" -->
|
||||
<Animation Name="gWallmasterJumpAnim" Offset="0x19CC" /> <!-- Original name is "wm_f_jump" -->
|
||||
<Animation Name="gFloormasterTurnAnim" Offset="0x2158" /> <!-- Original name is "wm_l_turn" -->
|
||||
<Animation Name="gWallmasterLungeAnim" Offset="0x299C" /> <!-- Original name is "wm_link_hangup" -->
|
||||
<Animation Name="gWallmasterMissAnim" Offset="0x3120" /> <!-- Unused. Original name is "wm_miss" -->
|
||||
<Animation Name="gFloormasterTapFingerAnim" Offset="0x39B0" /> <!-- Original name is "wm_motionA" -->
|
||||
<Animation Name="gWallmasterWalkAnim" Offset="0x41F4" /> <!-- Original name is "wm_move" -->
|
||||
|
||||
<!-- Wallmaster/Floormaster Limb DisplayLists -->
|
||||
<DList Name="gWallmasterThumbDistalDL" Offset="0x6660" />
|
||||
<DList Name="gWallmasterThumbMiddleDL" Offset="0x6800" />
|
||||
<DList Name="gWallmasterThumbProximalDL" Offset="0x6A20" />
|
||||
<DList Name="gWallmasterWristDL" Offset="0x6C58" />
|
||||
<DList Name="gWallmasterMiddleFingerDistalDL" Offset="0x6E98" />
|
||||
<DList Name="gWallmasterMiddleFingerMiddleDL" Offset="0x7038" />
|
||||
<DList Name="gWallmasterMiddleFingerProximalDL" Offset="0x7258" />
|
||||
<DList Name="gWallmasterRingFingerDistalDL" Offset="0x7408" />
|
||||
<DList Name="gWallmasterRingFingerMiddleDL" Offset="0x75A8" />
|
||||
<DList Name="gWallmasterRingFingerProximalDL" Offset="0x77C8" />
|
||||
<DList Name="gWallmasterIndexFingerDistalDL" Offset="0x7978" />
|
||||
<DList Name="gWallmasterIndexFingerMiddleDL" Offset="0x7B18" />
|
||||
<DList Name="gWallmasterIndexFingerProximalDL" Offset="0x7CE8" />
|
||||
<DList Name="gWallmasterHandDL" Offset="0x7E98" />
|
||||
|
||||
<!-- Wallmaster/Floormaster Little Finger DisplayList. Not part of the skeleton, unlike the other fingers. -->
|
||||
<DList Name="gWallmasterLittleFingerDL" Offset="0x8688" />
|
||||
|
||||
<!-- Wallmaster/Floormaster Textures -->
|
||||
<Texture Name="gWallmasterWristTopTex" OutName="wallmaster_wrist_top" Format="rgba16" Width="8" Height="16" Offset="0x88F0" />
|
||||
<Texture Name="gWallmasterWristSidesTex" OutName="wallmaster_wrist_sides" Format="rgba16" Width="8" Height="16" Offset="0x89F0" />
|
||||
<Texture Name="gWallmasterHandBackTex" OutName="wallmaster_hand_back" Format="rgba16" Width="8" Height="8" Offset="0x8AF0" />
|
||||
<Texture Name="gWallmasterFingerTipTex" OutName="wallmaster_finger_tip" Format="rgba16" Width="4" Height="16" Offset="0x8B70" />
|
||||
<Texture Name="gWallmasterJointsAndSidesTex" OutName="wallmaster_joints_and_sides" Format="rgba16" Width="4" Height="8" Offset="0x8BF0" />
|
||||
<Texture Name="gWallmasterPalmAndFingerPadTex" OutName="wallmaster_palm_and_finger_pad" Format="rgba16" Width="8" Height="16" Offset="0x8C30" />
|
||||
<Texture Name="gWallmasterKnuckleAndFingerTopTex" OutName="wallmaster_knuckle_and_finger_top" Format="rgba16" Width="8" Height="16" Offset="0x8D30" />
|
||||
|
||||
<!-- Wallmaster/Floormaster Limbs -->
|
||||
<Limb Name="gWallmasterRootLimb" Type="Standard" EnumName="WALLMASTER_LIMB_ROOT" Offset="0x8E30" />
|
||||
<Limb Name="gWallmasterHandLimb" Type="Standard" EnumName="WALLMASTER_LIMB_HAND" Offset="0x8E3C" />
|
||||
<Limb Name="gWallmasterIndexFingerRootLimb" Type="Standard" EnumName="WALLMASTER_LIMB_INDEX_FINGER_ROOT" Offset="0x8E48" />
|
||||
<Limb Name="gWallmasterIndexFingerProximalLimb" Type="Standard" EnumName="WALLMASTER_LIMB_INDEX_FINGER_PROXIMAL" Offset="0x8E54" />
|
||||
<Limb Name="gWallmasterIndexFingerDistalRootLimb" Type="Standard" EnumName="WALLMASTER_LIMB_INDEX_FINGER_DISTAL_ROOT" Offset="0x8E60" />
|
||||
<Limb Name="gWallmasterIndexFingerMiddleLimb" Type="Standard" EnumName="WALLMASTER_LIMB_INDEX_FINGER_MIDDLE" Offset="0x8E6C" />
|
||||
<Limb Name="gWallmasterIndexFingerDistalLimb" Type="Standard" EnumName="WALLMASTER_LIMB_INDEX_FINGER_DISTAL" Offset="0x8E78" />
|
||||
<Limb Name="gWallmasterRingFingerRootLimb" Type="Standard" EnumName="WALLMASTER_LIMB_RING_FINGER_ROOT" Offset="0x8E84" />
|
||||
<Limb Name="gWallmasterRingFingerProximalLimb" Type="Standard" EnumName="WALLMASTER_LIMB_RING_FINGER_PROXIMAL" Offset="0x8E90" />
|
||||
<Limb Name="gWallmasterRingFingerDistalRootLimb" Type="Standard" EnumName="WALLMASTER_LIMB_RING_FINGER_DISTAL_ROOT" Offset="0x8E9C" />
|
||||
<Limb Name="gWallmasterRingFingerMiddleLimb" Type="Standard" EnumName="WALLMASTER_LIMB_RING_FINGER_MIDDLE" Offset="0x8EA8" />
|
||||
<Limb Name="gWallmasterRingFingerDistalLimb" Type="Standard" EnumName="WALLMASTER_LIMB_RING_FINGER_DISTAL" Offset="0x8EB4" />
|
||||
<Limb Name="gWallmasterMiddleFingerRootLimb" Type="Standard" EnumName="WALLMASTER_LIMB_MIDDLE_FINGER_ROOT" Offset="0x8EC0" />
|
||||
<Limb Name="gWallmasterMiddleFingerProximalLimb" Type="Standard" EnumName="WALLMASTER_LIMB_MIDDLE_FINGER_PROXIMAL" Offset="0x8ECC" />
|
||||
<Limb Name="gWallmasterMiddleFingerDistalRootLimb" Type="Standard" EnumName="WALLMASTER_LIMB_MIDDLE_FINGER_DISTAL_ROOT" Offset="0x8ED8" />
|
||||
<Limb Name="gWallmasterMiddleFingerMiddleLimb" Type="Standard" EnumName="WALLMASTER_LIMB_MIDDLE_FINGER_MIDDLE" Offset="0x8EE4" />
|
||||
<Limb Name="gWallmasterMiddleFingerDistalLimb" Type="Standard" EnumName="WALLMASTER_LIMB_MIDDLE_FINGER_DISTAL" Offset="0x8EF0" />
|
||||
<Limb Name="gWallmasterWristRootLimb" Type="Standard" EnumName="WALLMASTER_LIMB_WRIST_ROOT" Offset="0x8EFC" />
|
||||
<Limb Name="gWallmasterWristLimb" Type="Standard" EnumName="WALLMASTER_LIMB_WRIST" Offset="0x8F08" />
|
||||
<Limb Name="gWallmasterThumbRootLimb" Type="Standard" EnumName="WALLMASTER_LIMB_THUMB_ROOT" Offset="0x8F14" />
|
||||
<Limb Name="gWallmasterThumbProximalLimb" Type="Standard" EnumName="WALLMASTER_LIMB_THUMB_PROXIMAL" Offset="0x8F20" />
|
||||
<Limb Name="gWallmasterThumbDistalRootLimb" Type="Standard" EnumName="WALLMASTER_LIMB_THUMB_DISTAL_ROOT" Offset="0x8F2C" />
|
||||
<Limb Name="gWallmasterThumbMiddleLimb" Type="Standard" EnumName="WALLMASTER_LIMB_THUMB_MIDDLE" Offset="0x8F38" />
|
||||
<Limb Name="gWallmasterThumbDistalLimb" Type="Standard" EnumName="WALLMASTER_LIMB_THUMB_DISTAL" Offset="0x8F44" />
|
||||
|
||||
<!-- Wallmaster/Floormaster Skeleton-->
|
||||
<Skeleton Name="gWallmasterSkel" Type="Flex" LimbType="Standard" LimbNone="WALLMASTER_LIMB_NONE" LimbMax="WALLMASTER_LIMB_MAX" EnumName="WallmasterLimbs" Offset="0x8FB0" />
|
||||
|
||||
<Animation Name="gWallmasterStopWalkAnim" Offset="0x9244" /> <!-- Original name is "wm_move_wait" -->
|
||||
<Animation Name="gWallmasterHoverAnim" Offset="0x9520" /> <!-- Original name is "wm_success" -->
|
||||
<Animation Name="gWallmasterIdleAnim" Offset="0x9DB0" /> <!-- Original name is "wm_wait" -->
|
||||
<Animation Name="gWallmasterStandUpAnim" Offset="0xA054" /> <!-- Original name is "wm_wait_move" -->
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
+138
-106
@@ -1,110 +1,142 @@
|
||||
<Root>
|
||||
<!-- Assets for Wolfos and White Wolfos -->
|
||||
<File Name="object_wf" Segment="6">
|
||||
<Texture Name="object_wf_Tex_000000" OutName="tex_000000" Format="rgba16" Width="8" Height="16" Offset="0x0" />
|
||||
<Texture Name="object_wf_Tex_000100" OutName="tex_000100" Format="rgba16" Width="8" Height="8" Offset="0x100" />
|
||||
<Texture Name="object_wf_Tex_000180" OutName="tex_000180" Format="rgba16" Width="8" Height="8" Offset="0x180" />
|
||||
<Texture Name="object_wf_Tex_000200" OutName="tex_000200" Format="rgba16" Width="8" Height="8" Offset="0x200" />
|
||||
<Texture Name="object_wf_Tex_000280" OutName="tex_000280" Format="rgba16" Width="8" Height="8" Offset="0x280" />
|
||||
<Texture Name="object_wf_Tex_000300" OutName="tex_000300" Format="rgba16" Width="16" Height="16" Offset="0x300" />
|
||||
<DList Name="object_wf_DL_001A20" Offset="0x1A20" />
|
||||
<DList Name="object_wf_DL_001AE8" Offset="0x1AE8" />
|
||||
<DList Name="object_wf_DL_001BD8" Offset="0x1BD8" />
|
||||
<DList Name="object_wf_DL_001CC8" Offset="0x1CC8" />
|
||||
<DList Name="object_wf_DL_001D98" Offset="0x1D98" />
|
||||
<DList Name="object_wf_DL_001E98" Offset="0x1E98" />
|
||||
<DList Name="object_wf_DL_001F88" Offset="0x1F88" />
|
||||
<DList Name="object_wf_DL_002078" Offset="0x2078" />
|
||||
<DList Name="object_wf_DL_002148" Offset="0x2148" />
|
||||
<DList Name="object_wf_DL_002248" Offset="0x2248" />
|
||||
<DList Name="object_wf_DL_002368" Offset="0x2368" />
|
||||
<DList Name="object_wf_DL_002490" Offset="0x2490" />
|
||||
<DList Name="object_wf_DL_0025A0" Offset="0x25A0" />
|
||||
<DList Name="object_wf_DL_0026C8" Offset="0x26C8" />
|
||||
<Texture Name="object_wf_Tex_0027D8" OutName="tex_0027D8" Format="rgba16" Width="16" Height="16" Offset="0x27D8" />
|
||||
<Texture Name="object_wf_Tex_0029D8" OutName="tex_0029D8" Format="rgba16" Width="16" Height="16" Offset="0x29D8" />
|
||||
<DList Name="object_wf_DL_003488" Offset="0x3488" />
|
||||
<DList Name="object_wf_DL_003528" Offset="0x3528" />
|
||||
<DList Name="object_wf_DL_0035F0" Offset="0x35F0" />
|
||||
<DList Name="object_wf_DL_0036B8" Offset="0x36B8" />
|
||||
<DList Name="object_wf_DL_0039D8" Offset="0x39D8" />
|
||||
<Limb Name="object_wf_Standardlimb_003A70" Type="Standard" EnumName="OBJECT_WF_1_LIMB_01" Offset="0x3A70" />
|
||||
<Limb Name="object_wf_Standardlimb_003A7C" Type="Standard" EnumName="OBJECT_WF_1_LIMB_02" Offset="0x3A7C" />
|
||||
<Limb Name="object_wf_Standardlimb_003A88" Type="Standard" EnumName="OBJECT_WF_1_LIMB_03" Offset="0x3A88" />
|
||||
<Limb Name="object_wf_Standardlimb_003A94" Type="Standard" EnumName="OBJECT_WF_1_LIMB_04" Offset="0x3A94" />
|
||||
<Limb Name="object_wf_Standardlimb_003AA0" Type="Standard" EnumName="OBJECT_WF_1_LIMB_05" Offset="0x3AA0" />
|
||||
<Limb Name="object_wf_Standardlimb_003AAC" Type="Standard" EnumName="OBJECT_WF_1_LIMB_06" Offset="0x3AAC" />
|
||||
<Limb Name="object_wf_Standardlimb_003AB8" Type="Standard" EnumName="OBJECT_WF_1_LIMB_07" Offset="0x3AB8" />
|
||||
<Limb Name="object_wf_Standardlimb_003AC4" Type="Standard" EnumName="OBJECT_WF_1_LIMB_08" Offset="0x3AC4" />
|
||||
<Limb Name="object_wf_Standardlimb_003AD0" Type="Standard" EnumName="OBJECT_WF_1_LIMB_09" Offset="0x3AD0" />
|
||||
<Limb Name="object_wf_Standardlimb_003ADC" Type="Standard" EnumName="OBJECT_WF_1_LIMB_0A" Offset="0x3ADC" />
|
||||
<Limb Name="object_wf_Standardlimb_003AE8" Type="Standard" EnumName="OBJECT_WF_1_LIMB_0B" Offset="0x3AE8" />
|
||||
<Limb Name="object_wf_Standardlimb_003AF4" Type="Standard" EnumName="OBJECT_WF_1_LIMB_0C" Offset="0x3AF4" />
|
||||
<Limb Name="object_wf_Standardlimb_003B00" Type="Standard" EnumName="OBJECT_WF_1_LIMB_0D" Offset="0x3B00" />
|
||||
<Limb Name="object_wf_Standardlimb_003B0C" Type="Standard" EnumName="OBJECT_WF_1_LIMB_0E" Offset="0x3B0C" />
|
||||
<Limb Name="object_wf_Standardlimb_003B18" Type="Standard" EnumName="OBJECT_WF_1_LIMB_0F" Offset="0x3B18" />
|
||||
<Limb Name="object_wf_Standardlimb_003B24" Type="Standard" EnumName="OBJECT_WF_1_LIMB_10" Offset="0x3B24" />
|
||||
<Limb Name="object_wf_Standardlimb_003B30" Type="Standard" EnumName="OBJECT_WF_1_LIMB_11" Offset="0x3B30" />
|
||||
<Limb Name="object_wf_Standardlimb_003B3C" Type="Standard" EnumName="OBJECT_WF_1_LIMB_12" Offset="0x3B3C" />
|
||||
<Limb Name="object_wf_Standardlimb_003B48" Type="Standard" EnumName="OBJECT_WF_1_LIMB_13" Offset="0x3B48" />
|
||||
<Limb Name="object_wf_Standardlimb_003B54" Type="Standard" EnumName="OBJECT_WF_1_LIMB_14" Offset="0x3B54" />
|
||||
<Limb Name="object_wf_Standardlimb_003B60" Type="Standard" EnumName="OBJECT_WF_1_LIMB_15" Offset="0x3B60" />
|
||||
<Skeleton Name="object_wf_Skel_003BC0" Type="Flex" LimbType="Standard" LimbNone="OBJECT_WF_1_LIMB_NONE" LimbMax="OBJECT_WF_1_LIMB_MAX" EnumName="object_wf_1_Limbs" Offset="0x3BC0" />
|
||||
<Animation Name="object_wf_Anim_004638" Offset="0x4638" />
|
||||
<Animation Name="object_wf_Anim_004A90" Offset="0x4A90" />
|
||||
<Animation Name="object_wf_Anim_004C44" Offset="0x4C44" />
|
||||
<Animation Name="object_wf_Anim_0053D0" Offset="0x53D0" />
|
||||
<Animation Name="object_wf_Anim_005700" Offset="0x5700" />
|
||||
<DList Name="object_wf_DL_006D10" Offset="0x6D10" />
|
||||
<DList Name="object_wf_DL_006DD8" Offset="0x6DD8" />
|
||||
<DList Name="object_wf_DL_006EC8" Offset="0x6EC8" />
|
||||
<DList Name="object_wf_DL_006FB8" Offset="0x6FB8" />
|
||||
<DList Name="object_wf_DL_007088" Offset="0x7088" />
|
||||
<DList Name="object_wf_DL_007188" Offset="0x7188" />
|
||||
<DList Name="object_wf_DL_007278" Offset="0x7278" />
|
||||
<DList Name="object_wf_DL_007368" Offset="0x7368" />
|
||||
<DList Name="object_wf_DL_007438" Offset="0x7438" />
|
||||
<DList Name="object_wf_DL_007538" Offset="0x7538" />
|
||||
<DList Name="object_wf_DL_007658" Offset="0x7658" />
|
||||
<DList Name="object_wf_DL_007770" Offset="0x7770" />
|
||||
<DList Name="object_wf_DL_007880" Offset="0x7880" />
|
||||
<DList Name="object_wf_DL_007998" Offset="0x7998" />
|
||||
<Texture Name="object_wf_Tex_007AA8" OutName="tex_007AA8" Format="rgba16" Width="16" Height="16" Offset="0x7AA8" />
|
||||
<Texture Name="object_wf_Tex_007CA8" OutName="tex_007CA8" Format="rgba16" Width="16" Height="32" Offset="0x7CA8" />
|
||||
<Texture Name="object_wf_Tex_0080A8" OutName="tex_0080A8" Format="rgba16" Width="8" Height="8" Offset="0x80A8" />
|
||||
<Texture Name="object_wf_Tex_008128" OutName="tex_008128" Format="rgba16" Width="8" Height="8" Offset="0x8128" />
|
||||
<Texture Name="object_wf_Tex_0081A8" OutName="tex_0081A8" Format="rgba16" Width="8" Height="8" Offset="0x81A8" />
|
||||
<Texture Name="object_wf_Tex_008228" OutName="tex_008228" Format="rgba16" Width="8" Height="8" Offset="0x8228" />
|
||||
<Texture Name="object_wf_Tex_0082A8" OutName="tex_0082A8" Format="rgba16" Width="16" Height="16" Offset="0x82A8" />
|
||||
<Texture Name="object_wf_Tex_0084A8" OutName="tex_0084A8" Format="rgba16" Width="16" Height="16" Offset="0x84A8" />
|
||||
<DList Name="object_wf_DL_008E98" Offset="0x8E98" />
|
||||
<DList Name="object_wf_DL_008F38" Offset="0x8F38" />
|
||||
<DList Name="object_wf_DL_009000" Offset="0x9000" />
|
||||
<DList Name="object_wf_DL_0090C8" Offset="0x90C8" />
|
||||
<DList Name="object_wf_DL_0093E8" Offset="0x93E8" />
|
||||
<Limb Name="object_wf_Standardlimb_009480" Type="Standard" EnumName="OBJECT_WF_2_LIMB_01" Offset="0x9480" />
|
||||
<Limb Name="object_wf_Standardlimb_00948C" Type="Standard" EnumName="OBJECT_WF_2_LIMB_02" Offset="0x948C" />
|
||||
<Limb Name="object_wf_Standardlimb_009498" Type="Standard" EnumName="OBJECT_WF_2_LIMB_03" Offset="0x9498" />
|
||||
<Limb Name="object_wf_Standardlimb_0094A4" Type="Standard" EnumName="OBJECT_WF_2_LIMB_04" Offset="0x94A4" />
|
||||
<Limb Name="object_wf_Standardlimb_0094B0" Type="Standard" EnumName="OBJECT_WF_2_LIMB_05" Offset="0x94B0" />
|
||||
<Limb Name="object_wf_Standardlimb_0094BC" Type="Standard" EnumName="OBJECT_WF_2_LIMB_06" Offset="0x94BC" />
|
||||
<Limb Name="object_wf_Standardlimb_0094C8" Type="Standard" EnumName="OBJECT_WF_2_LIMB_07" Offset="0x94C8" />
|
||||
<Limb Name="object_wf_Standardlimb_0094D4" Type="Standard" EnumName="OBJECT_WF_2_LIMB_08" Offset="0x94D4" />
|
||||
<Limb Name="object_wf_Standardlimb_0094E0" Type="Standard" EnumName="OBJECT_WF_2_LIMB_09" Offset="0x94E0" />
|
||||
<Limb Name="object_wf_Standardlimb_0094EC" Type="Standard" EnumName="OBJECT_WF_2_LIMB_0A" Offset="0x94EC" />
|
||||
<Limb Name="object_wf_Standardlimb_0094F8" Type="Standard" EnumName="OBJECT_WF_2_LIMB_0B" Offset="0x94F8" />
|
||||
<Limb Name="object_wf_Standardlimb_009504" Type="Standard" EnumName="OBJECT_WF_2_LIMB_0C" Offset="0x9504" />
|
||||
<Limb Name="object_wf_Standardlimb_009510" Type="Standard" EnumName="OBJECT_WF_2_LIMB_0D" Offset="0x9510" />
|
||||
<Limb Name="object_wf_Standardlimb_00951C" Type="Standard" EnumName="OBJECT_WF_2_LIMB_0E" Offset="0x951C" />
|
||||
<Limb Name="object_wf_Standardlimb_009528" Type="Standard" EnumName="OBJECT_WF_2_LIMB_0F" Offset="0x9528" />
|
||||
<Limb Name="object_wf_Standardlimb_009534" Type="Standard" EnumName="OBJECT_WF_2_LIMB_10" Offset="0x9534" />
|
||||
<Limb Name="object_wf_Standardlimb_009540" Type="Standard" EnumName="OBJECT_WF_2_LIMB_11" Offset="0x9540" />
|
||||
<Limb Name="object_wf_Standardlimb_00954C" Type="Standard" EnumName="OBJECT_WF_2_LIMB_12" Offset="0x954C" />
|
||||
<Limb Name="object_wf_Standardlimb_009558" Type="Standard" EnumName="OBJECT_WF_2_LIMB_13" Offset="0x9558" />
|
||||
<Limb Name="object_wf_Standardlimb_009564" Type="Standard" EnumName="OBJECT_WF_2_LIMB_14" Offset="0x9564" />
|
||||
<Limb Name="object_wf_Standardlimb_009570" Type="Standard" EnumName="OBJECT_WF_2_LIMB_15" Offset="0x9570" />
|
||||
<Skeleton Name="object_wf_Skel_0095D0" Type="Flex" LimbType="Standard" LimbNone="OBJECT_WF_2_LIMB_NONE" LimbMax="OBJECT_WF_2_LIMB_MAX" EnumName="object_wf_2_Limbs" Offset="0x95D0" />
|
||||
<Animation Name="object_wf_Anim_009808" Offset="0x9808" />
|
||||
<Animation Name="object_wf_Anim_009A50" Offset="0x9A50" />
|
||||
<Animation Name="object_wf_Anim_00A3CC" Offset="0xA3CC" />
|
||||
<!-- White Wolfos Textures -->
|
||||
<Texture Name="gWolfosWhiteFurTex" OutName="wolfos_white_fur" Format="rgba16" Width="8" Height="16" Offset="0x0" />
|
||||
<Texture Name="gWolfosWhiteToothClawTex" OutName="wolfos_white_tooth_claw" Format="rgba16" Width="8" Height="8" Offset="0x100" />
|
||||
<Texture Name="gWolfosWhiteMouthTex" OutName="wolfos_white_mouth" Format="rgba16" Width="8" Height="8" Offset="0x180" />
|
||||
<Texture Name="gWolfosWhiteTongueTex" OutName="wolfos_white_tongue" Format="rgba16" Width="8" Height="8" Offset="0x200" />
|
||||
<Texture Name="gWolfosWhiteNostrilTex" OutName="wolfos_white_nostril" Format="rgba16" Width="8" Height="8" Offset="0x280" />
|
||||
|
||||
<!-- White Wolfos Eye Textures -->
|
||||
<Texture Name="gWolfosWhiteEyeOpenTex" OutName="wolfos_white_eye_open" Format="rgba16" Width="16" Height="16" Offset="0x300" />
|
||||
|
||||
<!-- White Wolfos Limb DisplayLists -->
|
||||
<DList Name="gWolfosWhiteAbdomenDL" Offset="0x1A20" />
|
||||
<DList Name="gWolfosWhiteBackRightThighDL" Offset="0x1AE8" />
|
||||
<DList Name="gWolfosWhiteBackRightShinDL" Offset="0x1BD8" />
|
||||
<DList Name="gWolfosWhiteBackRightPasternDL" Offset="0x1CC8" />
|
||||
<DList Name="gWolfosWhiteBackRightPawDL" Offset="0x1D98" />
|
||||
<DList Name="gWolfosWhiteBackLeftThighDL" Offset="0x1E98" />
|
||||
<DList Name="gWolfosWhiteBackLeftShinDL" Offset="0x1F88" />
|
||||
<DList Name="gWolfosWhiteBackLeftPasternDL" Offset="0x2078" />
|
||||
<DList Name="gWolfosWhiteBackLeftPawDL" Offset="0x2148" />
|
||||
<DList Name="gWolfosWhiteThoraxDL" Offset="0x2248" />
|
||||
<DList Name="gWolfosWhiteFrontLeftUpperLegDL" Offset="0x2368" />
|
||||
<DList Name="gWolfosWhiteFrontLeftLowerLegDL" Offset="0x2490" />
|
||||
<DList Name="gWolfosWhiteFrontRightUpperLegDL" Offset="0x25A0" />
|
||||
<DList Name="gWolfosWhiteFrontRightLowerLegDL" Offset="0x26C8" />
|
||||
|
||||
<!-- White Wolfos Eye Textures -->
|
||||
<Texture Name="gWolfosWhiteEyeHalfTex" OutName="wolfos_white_eye_half" Format="rgba16" Width="16" Height="16" Offset="0x27D8" />
|
||||
<Texture Name="gWolfosWhiteEyeNarrowTex" OutName="wolfos_white_eye_narrow" Format="rgba16" Width="16" Height="16" Offset="0x29D8" />
|
||||
|
||||
<!-- White Wolfos Limb DisplayLists -->
|
||||
<DList Name="gWolfosWhiteTailDL" Offset="0x3488" />
|
||||
<DList Name="gWolfosWhiteFrontLeftClawDL" Offset="0x3528" />
|
||||
<DList Name="gWolfosWhiteFrontRightClawDL" Offset="0x35F0" />
|
||||
<DList Name="gWolfosWhiteHeadDL" Offset="0x36B8" />
|
||||
<DList Name="gWolfosWhiteEyesDL" Offset="0x39D8" />
|
||||
|
||||
<!-- White Wolfos Limbs -->
|
||||
<Limb Name="gWolfosWhiteRootLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_ROOT" Offset="0x3A70" />
|
||||
<Limb Name="gWolfosWhiteBackLeftThighLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_BACK_LEFT_THIGH" Offset="0x3A7C" />
|
||||
<Limb Name="gWolfosWhiteBackLeftShinLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_BACK_LEFT_SHIN" Offset="0x3A88" />
|
||||
<Limb Name="gWolfosWhiteBackLeftPasternLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_BACK_LEFT_PASTERN" Offset="0x3A94" />
|
||||
<Limb Name="gWolfosWhiteBackLeftPawLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_BACK_LEFT_PAW" Offset="0x3AA0" />
|
||||
<Limb Name="gWolfosWhiteTailLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_TAIL" Offset="0x3AAC" />
|
||||
<Limb Name="gWolfosWhiteAbdomenLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_ABDOMEN" Offset="0x3AB8" />
|
||||
<Limb Name="gWolfosWhiteBackRightThighLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_BACK_RIGHT_THIGH" Offset="0x3AC4" />
|
||||
<Limb Name="gWolfosWhiteBackRightShinLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_BACK_RIGHT_SHIN" Offset="0x3AD0" />
|
||||
<Limb Name="gWolfosWhiteBackRightPasternLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_BACK_RIGHT_PASTERN" Offset="0x3ADC" />
|
||||
<Limb Name="gWolfosWhiteBackRightPawLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_BACK_RIGHT_PAW" Offset="0x3AE8" />
|
||||
<Limb Name="gWolfosWhiteThoraxLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_THORAX" Offset="0x3AF4" />
|
||||
<Limb Name="gWolfosWhiteFrontRightUpperLegLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_FRONT_RIGHT_UPPER_LEG" Offset="0x3B00" />
|
||||
<Limb Name="gWolfosWhiteFrontRightLowerLegLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_FRONT_RIGHT_LOWER_LEG" Offset="0x3B0C" />
|
||||
<Limb Name="gWolfosWhiteFrontRightClawLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_FRONT_RIGHT_CLAW" Offset="0x3B18" />
|
||||
<Limb Name="gWolfosWhiteHeadRootLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_HEAD_ROOT" Offset="0x3B24" />
|
||||
<Limb Name="gWolfosWhiteHeadLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_HEAD" Offset="0x3B30" />
|
||||
<Limb Name="gWolfosWhiteEyesLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_EYES" Offset="0x3B3C" />
|
||||
<Limb Name="gWolfosWhiteFrontLeftUpperLegLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_FRONT_LEFT_UPPER_LEG" Offset="0x3B48" />
|
||||
<Limb Name="gWolfosWhiteFrontLeftLowerLegLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_FRONT_LEFT_LOWER_LEG" Offset="0x3B54" />
|
||||
<Limb Name="gWolfosWhiteFrontLeftClawLimb" Type="Standard" EnumName="WOLFOS_WHITE_LIMB_FRONT_LEFT_CLAW" Offset="0x3B60" />
|
||||
|
||||
<!-- White Wolfos Skeleton -->
|
||||
<Skeleton Name="gWolfosWhiteSkel" Type="Flex" LimbType="Standard" LimbNone="WOLFOS_WHITE_LIMB_NONE" LimbMax="WOLFOS_WHITE_LIMB_MAX" EnumName="WolfosWhiteLimbs" Offset="0x3BC0" />
|
||||
|
||||
<!-- Wolfos/White Wolfos Animations -->
|
||||
<Animation Name="gWolfosSlashingAnim" Offset="0x4638" /> <!-- Original name is "wolfman_attack" -->
|
||||
<Animation Name="gWolfosBackflippingAnim" Offset="0x4A90" /> <!-- Original name is "wolfman_back_jump" -->
|
||||
<Animation Name="gWolfosBlockingAnim" Offset="0x4C44" /> <!-- Original name is "wolfman_defense" -->
|
||||
<Animation Name="gWolfosRearingUpFallingOverAnim" Offset="0x53D0" /> <!-- Original name is "wolfman_down" -->
|
||||
<Animation Name="gWolfosRunningAnim" Offset="0x5700" /> <!-- Original name is "wolfman_run" -->
|
||||
|
||||
<!-- Wolfos Limb DisplayLists -->
|
||||
<DList Name="gWolfosNormalAbdomenDL" Offset="0x6D10" />
|
||||
<DList Name="gWolfosNormalBackRightThighDL" Offset="0x6DD8" />
|
||||
<DList Name="gWolfosNormalBackRightShinDL" Offset="0x6EC8" />
|
||||
<DList Name="gWolfosNormalBackRightPasternDL" Offset="0x6FB8" />
|
||||
<DList Name="gWolfosNormalBackRightPawDL" Offset="0x7088" />
|
||||
<DList Name="gWolfosNormalBackLeftThighDL" Offset="0x7188" />
|
||||
<DList Name="gWolfosNormalBackLeftShinDL" Offset="0x7278" />
|
||||
<DList Name="gWolfosNormalBackLeftPasternDL" Offset="0x7368" />
|
||||
<DList Name="gWolfosNormalBackLeftPawDL" Offset="0x7438" />
|
||||
<DList Name="gWolfosNormalThoraxDL" Offset="0x7538" />
|
||||
<DList Name="gWolfosNormalFrontLeftUpperLegDL" Offset="0x7658" />
|
||||
<DList Name="gWolfosNormalFrontLeftLowerLegDL" Offset="0x7770" />
|
||||
<DList Name="gWolfosNormalFrontRightUpperLegDL" Offset="0x7880" />
|
||||
<DList Name="gWolfosNormalFrontRightLowerLegDL" Offset="0x7998" />
|
||||
|
||||
<!-- Wolfos Eye Textures -->
|
||||
<Texture Name="gWolfosNormalEyeOpenTex" OutName="wolfos_normal_eye_open" Format="rgba16" Width="16" Height="16" Offset="0x7AA8" />
|
||||
|
||||
<!-- Wolfos Textures -->
|
||||
<Texture Name="gWolfosNormalFurTex" OutName="wolfos_normal_fur" Format="rgba16" Width="16" Height="32" Offset="0x7CA8" />
|
||||
<Texture Name="gWolfosNormalMouthTex" OutName="wolfos_normal_mouth" Format="rgba16" Width="8" Height="8" Offset="0x80A8" />
|
||||
<Texture Name="gWolfosNormalTongueTex" OutName="wolfos_normal_tongue" Format="rgba16" Width="8" Height="8" Offset="0x8128" />
|
||||
<Texture Name="gWolfosNormalToothClawTex" OutName="wolfos_normal_tooth_claw" Format="rgba16" Width="8" Height="8" Offset="0x81A8" />
|
||||
<Texture Name="gWolfosNormalNostrilTex" OutName="wolfos_normal_nostril" Format="rgba16" Width="8" Height="8" Offset="0x8228" />
|
||||
|
||||
<!-- Wolfos Eye Textures -->
|
||||
<Texture Name="gWolfosNormalEyeHalfTex" OutName="wolfos_normal_eye_half" Format="rgba16" Width="16" Height="16" Offset="0x82A8" />
|
||||
<Texture Name="gWolfosNormalEyeNarrowTex" OutName="wolfos_normal_eye_narrow" Format="rgba16" Width="16" Height="16" Offset="0x84A8" />
|
||||
|
||||
<!-- Wolfos Limb DisplayLists -->
|
||||
<DList Name="gWolfosNormalTailDL" Offset="0x8E98" />
|
||||
<DList Name="gWolfosNormalFrontLeftClawDL" Offset="0x8F38" />
|
||||
<DList Name="gWolfosNormalFrontRightClawDL" Offset="0x9000" />
|
||||
<DList Name="gWolfosNormalHeadDL" Offset="0x90C8" />
|
||||
<DList Name="gWolfosNormalEyesDL" Offset="0x93E8" />
|
||||
|
||||
<!-- Wolfos Limbs -->
|
||||
<Limb Name="gWolfosNormalRootLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_ROOT" Offset="0x9480" />
|
||||
<Limb Name="gWolfosNormalBackLeftThighLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_BACK_LEFT_THIGH" Offset="0x948C" />
|
||||
<Limb Name="gWolfosNormalBackLeftShinLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_BACK_LEFT_SHIN" Offset="0x9498" />
|
||||
<Limb Name="gWolfosNormalBackLeftPasternLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_BACK_LEFT_PASTERN" Offset="0x94A4" />
|
||||
<Limb Name="gWolfosNormalBackLeftPawLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_BACK_LEFT_PAW" Offset="0x94B0" />
|
||||
<Limb Name="gWolfosNormalTailLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_TAIL" Offset="0x94BC" />
|
||||
<Limb Name="gWolfosNormalAbdomenLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_ABDOMEN" Offset="0x94C8" />
|
||||
<Limb Name="gWolfosNormalBackRightThighLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_BACK_RIGHT_THIGH" Offset="0x94D4" />
|
||||
<Limb Name="gWolfosNormalBackRightShinLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_BACK_RIGHT_SHIN" Offset="0x94E0" />
|
||||
<Limb Name="gWolfosNormalBackRightPasternLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_BACK_RIGHT_PASTERN" Offset="0x94EC" />
|
||||
<Limb Name="gWolfosNormalBackRightPawLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_BACK_RIGHT_PAW" Offset="0x94F8" />
|
||||
<Limb Name="gWolfosNormalThoraxLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_THORAX" Offset="0x9504" />
|
||||
<Limb Name="gWolfosNormalFrontRightUpperLegLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_FRONT_RIGHT_UPPER_LEG" Offset="0x9510" />
|
||||
<Limb Name="gWolfosNormalFrontRightLowerLegLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_FRONT_RIGHT_LOWER_LEG" Offset="0x951C" />
|
||||
<Limb Name="gWolfosNormalFrontRightClawLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_FRONT_RIGHT_CLAW" Offset="0x9528" />
|
||||
<Limb Name="gWolfosNormalHeadRootLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_HEAD_ROOT" Offset="0x9534" />
|
||||
<Limb Name="gWolfosNormalHeadLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_HEAD" Offset="0x9540" />
|
||||
<Limb Name="gWolfosNormalEyesLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_EYES" Offset="0x954C" />
|
||||
<Limb Name="gWolfosNormalFrontLeftUpperLegLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_FRONT_LEFT_UPPER_LEG" Offset="0x9558" />
|
||||
<Limb Name="gWolfosNormalFrontLeftLowerLegLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_FRONT_LEFT_LOWER_LEG" Offset="0x9564" />
|
||||
<Limb Name="gWolfosNormalFrontLeftClawLimb" Type="Standard" EnumName="WOLFOS_NORMAL_LIMB_FRONT_LEFT_CLAW" Offset="0x9570" />
|
||||
|
||||
<!-- Wolfos Skeleton -->
|
||||
<Skeleton Name="gWolfosNormalSkel" Type="Flex" LimbType="Standard" LimbNone="WOLFOS_NORMAL_LIMB_NONE" LimbMax="WOLFOS_NORMAL_LIMB_MAX" EnumName="WolfosNormalLimbs" Offset="0x95D0" />
|
||||
|
||||
<!-- Wolfos/White Wolfos Animations -->
|
||||
<Animation Name="gWolfosSidesteppingAnim" Offset="0x9808" /> <!-- Original name is "wolfman_side_walk" -->
|
||||
<Animation Name="gWolfosDamagedAnim" Offset="0x9A50" /> <!-- Originla name is "wolfman_tail_hit" -->
|
||||
<Animation Name="gWolfosWaitingAnim" Offset="0xA3CC" /> <!-- Original name is "wolfman_wait" -->
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<Root>
|
||||
<!-- Ice Arrow assets -->
|
||||
<File Name="ovl_Arrow_Ice" BaseAddress="0x80922430" RangeStart="0x980" RangeEnd="0x1DA0">
|
||||
<Texture Name="gIceArrowTex" OutName="ice_arrow" Format="ia8" Width="32" Height="64" Offset="0x980"/>
|
||||
<Texture Name="gIceArrowMaskTex" OutName="ice_arrow_mask" Format="ia8" Width="32" Height="64" Offset="0x1180"/>
|
||||
<Texture Name="gIceArrowTex" OutName="ice_arrow" Format="i8" Width="32" Height="64" Offset="0x980"/>
|
||||
<Texture Name="gIceArrowMaskTex" OutName="ice_arrow_mask" Format="i8" Width="32" Height="64" Offset="0x1180"/>
|
||||
<Array Name="gIceArrowVtx" Count="43" Offset="0x1980">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
<Root>
|
||||
<File Name="ovl_Arrow_Light" BaseAddress="0x80924300" RangeStart="0x960" RangeEnd="0x1D80">
|
||||
|
||||
<Texture Name="gLightArrowTex" OutName="light_arrow" Format="i8" Width="32" Height="64" Offset="0x960"/>
|
||||
<Texture Name="gLightArrowMaskTex" OutName="light_arrow_mask" Format="i8" Width="32" Height="64" Offset="0x1160"/>
|
||||
<Array Name="gLightArrowVtx" Count="43" Offset="0x1960">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
|
||||
<DList Name="gLightArrowMaterialDL" Offset="0x1C10"/>
|
||||
<DList Name="gLightArrowModelDL" Offset="0x1CC0"/>
|
||||
</File>
|
||||
</Root>
|
||||
@@ -0,0 +1,12 @@
|
||||
<Root>
|
||||
<File Name="ovl_Arrow_Fire" BaseAddress="0x80920340" RangeStart="0xAB0" RangeEnd="0x1ED0">
|
||||
<Texture Name="gFireArrowMaskTex" OutName="fire_arrow_mask" Format="i8" Width="32" Height="64" Offset="0x12B0"/>
|
||||
<Texture Name="gFireArrowTex" OutName="fire_arrow" Format="i8" Width="32" Height="64" Offset="0xAB0"/>
|
||||
|
||||
<Array Name="gFireArrowVtx" Count="43" Offset="0x1AB0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gFireArrowMaterialDL" Offset="0x1D60"/>
|
||||
<DList Name="gFireArrowModelDL" Offset="0x1E10"/>
|
||||
</File>
|
||||
</Root>
|
||||
@@ -0,0 +1,6 @@
|
||||
<Root>
|
||||
<File Name="ovl_En_Bombers" BaseAddress="0x80C03530" RangeStart="0x12C8" RangeEnd="0x12E8">
|
||||
<DList Name="ovl_En_Bombers_DL_12C8" Offset="0x12C8" />
|
||||
<DList Name="ovl_En_Bombers_DL_12D8" Offset="0x12D8" />
|
||||
</File>
|
||||
</Root>
|
||||
@@ -0,0 +1,8 @@
|
||||
<Root>
|
||||
<File Name="ovl_En_Gakufu" BaseAddress="0x80AFC960" RangeStart="0x8D0" RangeEnd="0x950">
|
||||
<Array Name="gGakufuButtonIndexVtx" Count="4" Offset="0x8D0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGakufuButtonIndexDL" Offset="0x910"/>
|
||||
</File>
|
||||
</Root>
|
||||
@@ -0,0 +1,5 @@
|
||||
<Root>
|
||||
<File Name="ovl_En_Horse_Game_Check" BaseAddress="0x808F8AA0" RangeStart="0x1080" RangeEnd="0x10F4">
|
||||
<Collision Name="ovl_En_Horse_Game_Check_Colheader_0010C8" Offset="0x10C8" />
|
||||
</File>
|
||||
</Root>
|
||||
@@ -0,0 +1,9 @@
|
||||
<Root>
|
||||
<File Name="ovl_En_Sda" BaseAddress="0x809468D0" RangeStart="0x1458" RangeEnd="0x14E8">
|
||||
<Array Name="ovl_En_Sda_Vtx_1458" Count="4" Offset="0x1458">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="ovl_En_Sda_DL_1498" Offset="0x1498"/>
|
||||
<DList Name="ovl_En_Sda_DL_14B8" Offset="0x14B8"/>
|
||||
</File>
|
||||
</Root>
|
||||
@@ -0,0 +1,13 @@
|
||||
<Root>
|
||||
<!-- Shooting Gallery Octorok assets -->
|
||||
<File Name="ovl_En_Syateki_Okuta" BaseAddress="0x80A35FF0" RangeStart="0x1640" RangeEnd="0x1B98">
|
||||
<!-- DisplayList that turns certain Octoroks blue -->
|
||||
<DList Name="gShootingGalleryOctorokBlueMaterialDL" Offset="0x1640"/>
|
||||
|
||||
<!-- Textures and DisplayLists for the cross and circle indicators that appear when you shoot an Octorok -->
|
||||
<Texture Name="gShootingGalleryOctorokCrossTex" OutName="shooting_gallery_octorok_cross" Format="ia16" Width="16" Height="16" Offset="0x1658"/>
|
||||
<Texture Name="gShootingGalleryOctorokCircleTex" OutName="shooting_gallery_octorok_circle" Format="ia16" Width="16" Height="16" Offset="0x1858"/>
|
||||
<DList Name="gShootingGalleryOctorokCrossDL" Offset="0x1A98"/>
|
||||
<DList Name="gShootingGalleryOctorokCircleDL" Offset="0x1B18"/>
|
||||
</File>
|
||||
</Root>
|
||||
@@ -0,0 +1,7 @@
|
||||
<Root>
|
||||
<File Name="ovl_En_Tanron1" BaseAddress="0x80BB4E00" RangeStart="0x1028" RangeEnd="0x1918">
|
||||
<Texture Name="ovl_En_Tanron1_DL_001428" OutName="tex_001428" Format="rgba16" Width="16" Height="32" Offset="0x1428"/>
|
||||
<DList Name="ovl_En_Tanron1_DL_001888" Offset="0x1888"/>
|
||||
<DList Name="ovl_En_Tanron1_DL_001900" Offset="0x1900"/>
|
||||
</File>
|
||||
</Root>
|
||||
@@ -0,0 +1,7 @@
|
||||
<Root>
|
||||
<File Name="ovl_Obj_Entotu" BaseAddress="0x80A34700" RangeStart="0x0D10" RangeEnd="0x0D80">
|
||||
<Array Name="ovl_Obj_Entotu_Vtx_000D10" Count="7" Offset="0xD10">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
</File>
|
||||
</Root>
|
||||
@@ -0,0 +1,7 @@
|
||||
<Root>
|
||||
<File Name="ovl_Obj_Grass" BaseAddress="0x809A9110" RangeStart="0x18E0" RangeEnd="0x19F0">
|
||||
<DList Name="gObjGrass_D_809AA9F0" Offset="0x18E0"/>
|
||||
<DList Name="gObjGrass_D_809AAA68" Offset="0x1958"/>
|
||||
<DList Name="gObjGrass_D_809AAAE0" Offset="0x19D0"/>
|
||||
</File>
|
||||
</Root>
|
||||
@@ -0,0 +1,7 @@
|
||||
<Root>
|
||||
<File Name="ovl_Obj_Smork" BaseAddress="0x80A3D680" RangeStart="0x0C10" RangeEnd="0x0C80">
|
||||
<Array Name="ovl_Obj_Smork_Vtx_000C10" Count="7" Offset="0xC10">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
</File>
|
||||
</Root>
|
||||
@@ -0,0 +1,9 @@
|
||||
<Root>
|
||||
<File Name="ovl_Oceff_Wipe6" BaseAddress="0x80BCA5A0" RangeStart="0x330" RangeEnd="0x5B8">
|
||||
<TextureAnimation Name="ovl_Oceff_Wipe6_Matanimheader_000338" Offset="0x338" />
|
||||
<Array Name="gOceff6Vtx" Count="22" Offset="0x340">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gOceff6DL" Offset="0x4A0"/>
|
||||
</File>
|
||||
</Root>
|
||||
@@ -5,4 +5,5 @@ def apply(config, args):
|
||||
config['myimg'] = 'mm.us.rev1.rom_uncompressed.z64'
|
||||
config['mapfile'] = 'build/mm.map'
|
||||
config['source_directories'] = ['./src','./include']
|
||||
config['objdump_flags'] = ['-M','reg-names=32']
|
||||
config['makeflags'] = ['KEEP_MDEBUG=1']
|
||||
|
||||
@@ -80,4 +80,4 @@ If this worked, you can now delete the temporary directory `~/binutils-tmp`.
|
||||
|
||||
Apple's version of `make` is very out-of-date, so you should use the brew-installed `gmake` in place of `make` in this repo from now on.
|
||||
|
||||
You should now be able to continue from [step 2](README.md#2-clone-the-repository) of the Linux instructions.
|
||||
You should now be able to continue from [step 2](../README.md#2-clone-the-repository) of the Linux instructions.
|
||||
|
||||
@@ -81,7 +81,7 @@ void EnMs_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
void func_80952734(EnMs* this, GlobalContext* globalCtx) {
|
||||
s16 temp_v1 = this->actor.yawTowardsPlayer - this->actor.shape.rot.y;
|
||||
|
||||
if (gSaveContext.inventory.items[10] == ITEM_NONE) {
|
||||
if (gSaveContext.save.inventory.items[10] == ITEM_NONE) {
|
||||
this->actor.textId = 0x92E;
|
||||
} else {
|
||||
this->actor.textId = 0x932;
|
||||
@@ -159,14 +159,14 @@ void func_809527F8(EnMs *this, GlobalContext *globalCtx) {
|
||||
temp_v0 = Message_GetState(&globalCtx->msgCtx);
|
||||
if (temp_v0 != 4) {
|
||||
if (temp_v0 != 5) {
|
||||
if ((temp_v0 == 6) && (func_80147624(globalCtx) != 0)) {
|
||||
if ((temp_v0 == 6) && (Message_ShouldAdvance(globalCtx) != 0)) {
|
||||
this->actionFunc = func_80952734;
|
||||
return;
|
||||
}
|
||||
// Duplicate return node #17. Try simplifying control flow for better match
|
||||
return;
|
||||
}
|
||||
if (func_80147624(globalCtx) != 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) != 0) {
|
||||
func_801477B4(globalCtx);
|
||||
Actor_PickUp((Actor *) this, globalCtx, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
|
||||
this->actionFunc = func_809529AC;
|
||||
@@ -175,7 +175,7 @@ void func_809527F8(EnMs *this, GlobalContext *globalCtx) {
|
||||
// Duplicate return node #17. Try simplifying control flow for better match
|
||||
return;
|
||||
}
|
||||
if (func_80147624(globalCtx) != 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) != 0) {
|
||||
temp_v0_2 = globalCtx->msgCtx.choiceIndex;
|
||||
if (temp_v0_2 != 0) {
|
||||
if (temp_v0_2 != 1) {
|
||||
@@ -187,12 +187,12 @@ void func_809527F8(EnMs *this, GlobalContext *globalCtx) {
|
||||
return;
|
||||
}
|
||||
func_801477B4(globalCtx);
|
||||
if ((s32) gSaveContext.rupees < 0xA) {
|
||||
if ((s32) gSaveContext.save.playerData.rupees < 0xA) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x935U);
|
||||
return;
|
||||
}
|
||||
if ((s32) gSaveContext.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
|
||||
if ((s32) gSaveContext.save.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x937U);
|
||||
return;
|
||||
@@ -211,7 +211,7 @@ which is long, messy, and contains some rather nasty-looking control flow, inclu
|
||||
temp_v0 = Message_GetState(&globalCtx->msgCtx);
|
||||
if (temp_v0 != 4) {
|
||||
if (temp_v0 != 5) {
|
||||
if ((temp_v0 == 6) && (func_80147624(globalCtx) != 0)) {
|
||||
if ((temp_v0 == 6) && (Message_ShouldAdvance(globalCtx) != 0)) {
|
||||
this->actionFunc = func_80952734;
|
||||
return;
|
||||
}
|
||||
@@ -248,13 +248,13 @@ void func_809527F8(EnMs *this, GlobalContext *globalCtx) {
|
||||
if (temp_v0 != 6) {
|
||||
goto block_17;
|
||||
}
|
||||
if (func_80147624(globalCtx) == 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) == 0) {
|
||||
goto block_17;
|
||||
}
|
||||
this->actionFunc = func_80952734;
|
||||
return;
|
||||
block_5:
|
||||
if (func_80147624(globalCtx) == 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) == 0) {
|
||||
goto block_17;
|
||||
}
|
||||
func_801477B4(globalCtx);
|
||||
@@ -262,7 +262,7 @@ block_5:
|
||||
this->actionFunc = func_809529AC;
|
||||
return;
|
||||
block_7:
|
||||
if (func_80147624(globalCtx) == 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) == 0) {
|
||||
goto block_17;
|
||||
}
|
||||
temp_v0_2 = globalCtx->msgCtx.choiceIndex;
|
||||
@@ -275,14 +275,14 @@ block_7:
|
||||
goto block_16;
|
||||
block_11:
|
||||
func_801477B4(globalCtx);
|
||||
if ((s32) gSaveContext.rupees >= 0xA) {
|
||||
if ((s32) gSaveContext.save.playerData.rupees >= 0xA) {
|
||||
goto block_13;
|
||||
}
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x935U);
|
||||
return;
|
||||
block_13:
|
||||
if ((s32) gSaveContext.inventory.ammo[gItemSlots[0xA]] < 0x14) {
|
||||
if ((s32) gSaveContext.save.inventory.ammo[gItemSlots[0xA]] < 0x14) {
|
||||
goto block_15;
|
||||
}
|
||||
play_sound(0x4806U);
|
||||
@@ -312,7 +312,7 @@ which in many ways looks worse: you can see why the use of gotos in code is stro
|
||||
The simplest sort of block label to eliminate is one that is only used once, and where the corresponding goto jumps over a simple block of code with no extra internal control flow structure. There are two obvious examples of this here, the first being
|
||||
|
||||
```C
|
||||
if ((s32) gSaveContext.rupees >= 0xA) {
|
||||
if ((s32) gSaveContext.save.playerData.rupees >= 0xA) {
|
||||
goto block_13;
|
||||
}
|
||||
play_sound(0x4806U);
|
||||
@@ -324,7 +324,7 @@ block_13:
|
||||
Currently, this says to jump over the code block `play_sound...` if the condition in the if is satisfied. In non-goto terms, this means that the block should be run if the condition is *not* satisfied. This also illustrates a general property of goto-only mode: you have to reverse the senses of all of the ifs. Therefore the appropriate approach is to swap the if round, put the code block inside, and remove the goto and the label:
|
||||
|
||||
```C
|
||||
if (gSaveContext.rupees < 0xA) {
|
||||
if (gSaveContext.save.playerData.rupees < 0xA) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x935U);
|
||||
return;
|
||||
@@ -350,13 +350,13 @@ void func_809527F8(EnMs *this, GlobalContext *globalCtx) {
|
||||
if (temp_v0 != 6) {
|
||||
goto block_17;
|
||||
}
|
||||
if (func_80147624(globalCtx) == 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) == 0) {
|
||||
goto block_17;
|
||||
}
|
||||
this->actionFunc = func_80952734;
|
||||
return;
|
||||
block_5:
|
||||
if (func_80147624(globalCtx) == 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) == 0) {
|
||||
goto block_17;
|
||||
}
|
||||
func_801477B4(globalCtx);
|
||||
@@ -364,7 +364,7 @@ block_5:
|
||||
this->actionFunc = func_809529AC;
|
||||
return;
|
||||
block_7:
|
||||
if (func_80147624(globalCtx) == 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) == 0) {
|
||||
goto block_17;
|
||||
}
|
||||
temp_v0_2 = globalCtx->msgCtx.choiceIndex;
|
||||
@@ -378,12 +378,12 @@ block_7:
|
||||
block_11:
|
||||
func_801477B4(globalCtx);
|
||||
|
||||
if (gSaveContext.rupees < 0xA) {
|
||||
if (gSaveContext.save.playerData.rupees < 0xA) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x935U);
|
||||
return;
|
||||
}
|
||||
if (gSaveContext.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
|
||||
if (gSaveContext.save.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x937U);
|
||||
return;
|
||||
@@ -420,13 +420,13 @@ void func_809527F8(EnMs *this, GlobalContext *globalCtx) {
|
||||
if (temp_v0 != 6) {
|
||||
return;
|
||||
}
|
||||
if (func_80147624(globalCtx) == 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) == 0) {
|
||||
return;
|
||||
}
|
||||
this->actionFunc = func_80952734;
|
||||
return;
|
||||
block_5:
|
||||
if (func_80147624(globalCtx) == 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) == 0) {
|
||||
return;
|
||||
}
|
||||
func_801477B4(globalCtx);
|
||||
@@ -434,7 +434,7 @@ block_5:
|
||||
this->actionFunc = func_809529AC;
|
||||
return;
|
||||
block_7:
|
||||
if (func_80147624(globalCtx) == 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) == 0) {
|
||||
return;
|
||||
}
|
||||
temp_v0_2 = globalCtx->msgCtx.choiceIndex;
|
||||
@@ -448,12 +448,12 @@ block_7:
|
||||
block_11:
|
||||
func_801477B4(globalCtx);
|
||||
|
||||
if (gSaveContext.rupees < 0xA) {
|
||||
if (gSaveContext.save.playerData.rupees < 0xA) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x935U);
|
||||
return;
|
||||
}
|
||||
if (gSaveContext.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
|
||||
if (gSaveContext.save.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x937U);
|
||||
return;
|
||||
@@ -497,12 +497,12 @@ So let us rewrite the entire second half as a switch:
|
||||
case 0:
|
||||
func_801477B4(globalCtx);
|
||||
|
||||
if (gSaveContext.rupees < 0xA) {
|
||||
if (gSaveContext.save.playerData.rupees < 0xA) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x935U);
|
||||
return;
|
||||
}
|
||||
if (gSaveContext.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
|
||||
if (gSaveContext.save.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x937U);
|
||||
return;
|
||||
@@ -532,10 +532,10 @@ There's a couple of other obvious things here:
|
||||
case 0:
|
||||
func_801477B4(globalCtx);
|
||||
|
||||
if (gSaveContext.rupees < 0xA) {
|
||||
if (gSaveContext.save.playerData.rupees < 0xA) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x935U);
|
||||
} else if (gSaveContext.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
|
||||
} else if (gSaveContext.save.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x937U);
|
||||
} else {
|
||||
@@ -557,7 +557,7 @@ There's a couple of other obvious things here:
|
||||
Well, at least the bottom half looks respectable now. Again, there is no code after the switch, so the next thing up, namely
|
||||
|
||||
```C
|
||||
if (func_80147624(globalCtx) == 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) == 0) {
|
||||
return;
|
||||
}
|
||||
```
|
||||
@@ -578,13 +578,13 @@ void func_809527F8(EnMs *this, GlobalContext *globalCtx) {
|
||||
if (temp_v0 != 6) {
|
||||
return;
|
||||
}
|
||||
if (func_80147624(globalCtx) == 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) == 0) {
|
||||
return;
|
||||
}
|
||||
this->actionFunc = func_80952734;
|
||||
return;
|
||||
block_5:
|
||||
if (func_80147624(globalCtx) == 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) == 0) {
|
||||
return;
|
||||
}
|
||||
func_801477B4(globalCtx);
|
||||
@@ -592,15 +592,15 @@ block_5:
|
||||
this->actionFunc = func_809529AC;
|
||||
return;
|
||||
block_7:
|
||||
if (func_80147624(globalCtx) != 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) != 0) {
|
||||
switch (globalCtx->msgCtx.choiceIndex) {
|
||||
case 0:
|
||||
func_801477B4(globalCtx);
|
||||
|
||||
if (gSaveContext.rupees < 0xA) {
|
||||
if (gSaveContext.save.playerData.rupees < 0xA) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x935U);
|
||||
} else if (gSaveContext.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
|
||||
} else if (gSaveContext.save.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x937U);
|
||||
} else {
|
||||
@@ -647,7 +647,7 @@ void func_809527F8(EnMs *this, GlobalContext *globalCtx) {
|
||||
break;
|
||||
|
||||
case 5:
|
||||
if (func_80147624(globalCtx) == 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) == 0) {
|
||||
return;
|
||||
}
|
||||
func_801477B4(globalCtx);
|
||||
@@ -656,15 +656,15 @@ void func_809527F8(EnMs *this, GlobalContext *globalCtx) {
|
||||
break;
|
||||
|
||||
case 4:
|
||||
if (func_80147624(globalCtx) != 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) != 0) {
|
||||
switch (globalCtx->msgCtx.choiceIndex) {
|
||||
case 0:
|
||||
func_801477B4(globalCtx);
|
||||
|
||||
if (gSaveContext.rupees < 0xA) {
|
||||
if (gSaveContext.save.playerData.rupees < 0xA) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x935U);
|
||||
} else if (gSaveContext.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
|
||||
} else if (gSaveContext.save.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x937U);
|
||||
} else {
|
||||
@@ -700,7 +700,7 @@ void func_809527F8(EnMs *this, GlobalContext *globalCtx) {
|
||||
break;
|
||||
|
||||
case 5:
|
||||
if (func_80147624(globalCtx) != 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) != 0) {
|
||||
func_801477B4(globalCtx);
|
||||
Actor_PickUp((Actor *) this, globalCtx, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
|
||||
this->actionFunc = func_809529AC;
|
||||
@@ -708,15 +708,15 @@ void func_809527F8(EnMs *this, GlobalContext *globalCtx) {
|
||||
break;
|
||||
|
||||
case 4:
|
||||
if (func_80147624(globalCtx) != 0) {
|
||||
if (Message_ShouldAdvance(globalCtx) != 0) {
|
||||
switch (globalCtx->msgCtx.choiceIndex) {
|
||||
case 0:
|
||||
func_801477B4(globalCtx);
|
||||
|
||||
if (gSaveContext.rupees < 0xA) {
|
||||
if (gSaveContext.save.playerData.rupees < 0xA) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x935U);
|
||||
} else if (gSaveContext.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
|
||||
} else if (gSaveContext.save.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
|
||||
play_sound(0x4806U);
|
||||
func_80151938(globalCtx, 0x937U);
|
||||
} else {
|
||||
|
||||
@@ -182,12 +182,12 @@ void func_80C102D4(EnRecepgirl *this, GlobalContext *globalCtx) {
|
||||
func_80C10148(this);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((temp_v0_2 == 5) && (func_80147624(globalCtx) != 0)) {
|
||||
|
||||
if ((temp_v0_2 == 5) && (Message_ShouldAdvance(globalCtx) != 0)) {
|
||||
if (this->actor.textId == 0x2AD9) {
|
||||
Flags_SetSwitch(globalCtx, this->actor.params);
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &object_bg_Anim_00AD98, 10.0f);
|
||||
if ((gSaveContext.weekEventReg[63] & 0x80)) {
|
||||
if ((gSaveContext.save.weekEventReg[63] & 0x80)) {
|
||||
this->actor.textId = 0x2ADF;
|
||||
} else {
|
||||
this->actor.textId = 0x2ADA;
|
||||
@@ -500,11 +500,11 @@ void func_80C102D4(EnRecepgirl* this, GlobalContext* globalCtx) {
|
||||
if (temp_v0_2 == 2) {
|
||||
this->actor.textId = 0x2ADC; // hear directions again?
|
||||
func_80C10148(this);
|
||||
} else if ((temp_v0_2 == 5) && (func_80147624(globalCtx) != 0)) {
|
||||
} else if ((temp_v0_2 == 5) && (Message_ShouldAdvance(globalCtx) != 0)) {
|
||||
if (this->actor.textId == 0x2AD9) { // "Welcome..."
|
||||
Flags_SetSwitch(globalCtx, this->actor.params);
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &object_bg_Anim_00AD98, 10.0f);
|
||||
if (gSaveContext.weekEventReg[63] & 0x80) { // showed Couple's Mask to meeting
|
||||
if (gSaveContext.save.weekEventReg[63] & 0x80) { // showed Couple's Mask to meeting
|
||||
this->actor.textId = 0x2ADF; // Mayor's office is on the left (meeting ended)
|
||||
} else {
|
||||
this->actor.textId = 0x2ADA; // Mayor's office is on the left (meeting ongoing)
|
||||
|
||||
@@ -288,7 +288,7 @@ void func_80C102D4(EnRecepgirl *this, GlobalContext *globalCtx) {
|
||||
func_80C10148(this);
|
||||
return;
|
||||
}
|
||||
if (((temp_v0_2 & 0xFF) == 5) && (func_80147624(globalCtx) != 0)) {
|
||||
if (((temp_v0_2 & 0xFF) == 5) && (Message_ShouldAdvance(globalCtx) != 0)) {
|
||||
temp_v0_3 = this->actor.textId;
|
||||
if (temp_v0_3 == 0x2AD9) {
|
||||
Flags_SetSwitch(globalCtx, (s32) this->actor.params);
|
||||
@@ -347,7 +347,7 @@ void func_80C102D4(EnRecepgirl *this, GlobalContext *globalCtx) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (((temp_v0_2 & 0xFF) == 5) && (func_80147624(globalCtx) != 0)) {
|
||||
if (((temp_v0_2 & 0xFF) == 5) && (Message_ShouldAdvance(globalCtx) != 0)) {
|
||||
if (this->actor.textId == 0x2AD9) {
|
||||
Flags_SetSwitch(globalCtx, this->actor.params);
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &D_0600AD98, 10.0f);
|
||||
@@ -378,7 +378,7 @@ There remains one thing we need to fix before trying to compile it, namely `*(&g
|
||||
/* 0x0EF8 */ u8 weekEventReg[100]; // "week_event_reg"
|
||||
/* 0x0F5C */ u32 mapsVisited; // "area_arrival"
|
||||
```
|
||||
so it's somewhere in `weekEventReg`. `0xF37 - 0xEF8 = 0x3F = 63`, and it's a byte array, so the access is actually `gSaveContext.weekEventReg[63] & 0x80`. Now it will compile. We also don't use `!= 0` for flag comparisons: just `if (gSaveContext.weekEventReg[63] & 0x80)` will do.
|
||||
so it's somewhere in `weekEventReg`. `0xF37 - 0xEF8 = 0x3F = 63`, and it's a byte array, so the access is actually `gSaveContext.save.weekEventReg[63] & 0x80`. Now it will compile. We also don't use `!= 0` for flag comparisons: just `if (gSaveContext.save.weekEventReg[63] & 0x80)` will do.
|
||||
|
||||
Running `./diff.py -mwo3 func_80C102D4` and scrolling down, we discover that this doesn't match!
|
||||
|
||||
@@ -397,7 +397,7 @@ somehow we skipped over `t0`. Where is this in the code? The `153` in the middle
|
||||
return;
|
||||
}
|
||||
|
||||
if (((temp_v0_2 & 0xFF) == 5) && (func_80147624(globalCtx) != 0)) {
|
||||
if (((temp_v0_2 & 0xFF) == 5) && (Message_ShouldAdvance(globalCtx) != 0)) {
|
||||
```
|
||||
|
||||
If you look at the conditionals and the declaration of `temp_v0_2`, you may notice something odd: `temp_v0_2` is a `u8`. Therefore the `& 0xFF` does nothing! It's surprisingly common for this to happen, be it leaving out a `& 0xFF` or adding an extraneous one. If we remove it, we get a match:
|
||||
|
||||
+182
-326
@@ -7,8 +7,8 @@ void bootproc(void);
|
||||
void Idle_ThreadEntry(void* arg);
|
||||
void ViConfig_UpdateVi(u32 arg0);
|
||||
void ViConfig_UpdateBlack(void);
|
||||
s32 DmaMgr_DMARomToRam(u32 src, void* dst, size_t size);
|
||||
void DmaMgr_DmaCallback0(OSPiHandle* piHandle, OSIoMesg* mb, s32 direction);
|
||||
s32 DmaMgr_DmaRomToRam(u32 src, void* dst, size_t size);
|
||||
s32 DmaMgr_DmaHandler(OSPiHandle* piHandle, OSIoMesg* mb, s32 direction);
|
||||
DmaEntry* DmaMgr_FindDmaEntry(u32 vromAddr);
|
||||
u32 DmaMgr_TranslateVromToRom(u32 vromAddr);
|
||||
s32 DmaMgr_FindDmaIndex(u32 vromAddr);
|
||||
@@ -153,14 +153,10 @@ void MtxConv_L2F(MtxF* m1, MatrixInternal* m2);
|
||||
void __assert(const char* file, u32 lineNum);
|
||||
// void func_800862B4(void);
|
||||
void* SystemArena_MallocMin1(u32 size);
|
||||
void SystemArena_FreeNull(void* pvParm1);
|
||||
void func_8008633C(u32 param_1, s32 param_2, s32 param_3, UNK_PTR param_4);
|
||||
void func_800863AC(u32 param_1, s32 param_2, s32 param_3, UNK_PTR param_4);
|
||||
// void func_8008641C(void);
|
||||
// void func_800864EC(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_80086588(void);
|
||||
void SystemArena_Init(u32 base, u32 size);
|
||||
s32 PadSetup_Init(OSMesgQueue* mq, u8* outMask, OSContStatus* status);
|
||||
void SystemArena_FreeNullCheck(void* ptr);
|
||||
void SystemArena_RunInits(void);
|
||||
void SystemArena_Init(void* start, size_t size);
|
||||
s32 func_80086620(OSMesgQueue* param_1, PadMgr* param_2, OSContStatus* param_3);
|
||||
// void func_80086760(void);
|
||||
// void func_80086794(void);
|
||||
// void func_800867B4(void);
|
||||
@@ -576,7 +572,7 @@ void EffectSsHahen_SpawnBurst(GlobalContext* globalCtx, Vec3f* pos, f32 burstSca
|
||||
// void EffectSsStick_Spawn(UNK_TYPE4 uParm1, UNK_PTR puParm2, UNK_TYPE2 uParm3);
|
||||
// void EffectSsSibuki_Spawn(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6, UNK_TYPE2 param_7);
|
||||
void EffectSsSibuki_SpawnBurst(GlobalContext* globalCtx, Vec3f* pos);
|
||||
void EffectSsStone1_Spawn(GlobalContext* globalCtx, Vec3f* arg1, s32 arg2);
|
||||
void EffectSsStone1_Spawn(GlobalContext* globalCtx, Vec3f* pos, s32 reg0);
|
||||
// void EffectSsHitMark_Spawn(UNK_TYPE4 uParm1, UNK_TYPE4 uParm2, UNK_TYPE2 uParm3, Vec3f* pzParm4);
|
||||
void EffectSsHitMark_SpawnFixedScale(GlobalContext* globalCtx, s32 type, Vec3f* pos);
|
||||
void EffectSsHitMark_SpawnCustomScale(GlobalContext* globalCtx, s32 type, s16 scale, Vec3f* pos);
|
||||
@@ -598,9 +594,9 @@ void EffectSsEnFire_SpawnVec3f(GlobalContext* globalCtx, Actor* actor, Vec3f* po
|
||||
void EffectSsExtra_Spawn(GlobalContext* globalCtx, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 scale, s16 scoreIdx);
|
||||
void EffectSsDeadDb_Spawn(GlobalContext* globalCtx, Vec3f* pos, Vec3f* velocity, Vec3f* accel, Color_RGBA8* prim, Color_RGBA8* env, s16 scale, s16 scaleStep, s32 unk);
|
||||
void func_800B3030(GlobalContext* globalCtx, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 scale, s16 scaleStep, s32 colorIndex);
|
||||
// void EffectSsDeadDd_Spawn(UNK_TYPE4 uParm1, Vec3f* pzParm2, Vec3f* pzParm3, Vec3f* pzParm4, UNK_TYPE1* param_5, UNK_TYPE1* param_6, UNK_TYPE2 param_7, UNK_TYPE2 param_8, UNK_TYPE2 param_9, UNK_TYPE4 param_10);
|
||||
void EffectSsDeadDd_Spawn(GlobalContext* globalCtx, Vec3f* pos, Vec3f* velocity, Vec3f* accel, Color_RGBA8* prim, Color_RGBA8* env, s16 scale, s16 scaleStep, s16 alphaStep, s32 life);
|
||||
// void EffectSsDeadDs_Spawn(UNK_TYPE4 uParm1, Vec3f* pzParm2, Vec3f* pzParm3, Vec3f* pzParm4, UNK_TYPE2 param_5, UNK_TYPE2 param_6, UNK_TYPE2 param_7, UNK_TYPE4 param_8);
|
||||
// void func_800B31BC(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE4 param_6);
|
||||
void func_800B31BC(GlobalContext* globalCtx, Vec3f* pos, s16 scale, s16 scaleStep, s16 alpha, s32 life);
|
||||
void EffectSsIceSmoke_Spawn(GlobalContext* globalCtx, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 scale);
|
||||
void EffectSsIceBlock_Spawn(GlobalContext* globalCtx, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 scale);
|
||||
void FlagSet_Update(GameState* gameState);
|
||||
@@ -772,12 +768,12 @@ s32 Actor_OtherIsTargeted(GlobalContext* globalCtx, Actor* actor);
|
||||
void func_800BC620(Vec3f* arg0, Vec3f* arg1, u8 alpha, GlobalContext* globalCtx);
|
||||
void func_800BC770(GlobalContext* globalCtx, s16 y, s16 countdown);
|
||||
void func_800BC7D8(GlobalContext* globalCtx, s16 y, s16 countdown, s16 speed);
|
||||
void func_800BC848(Actor* actor, GlobalContext* globalCtx, s16 arg2, s16 arg3);
|
||||
void func_800BC848(Actor* actor, GlobalContext* globalCtx, s16 y, s16 countdown);
|
||||
void Actor_DrawDoorLock(GlobalContext* globalCtx, s32 frame, s32 type);
|
||||
void Actor_SetColorFilter(Actor* actor, u16 colorFlag, u16 colorIntensityMax, u16 xluFlag, u16 duration);
|
||||
Hilite* func_800BCBF4(Vec3f* arg0, GlobalContext* globalCtx);
|
||||
Hilite* func_800BCC68(Vec3f* arg0, GlobalContext* globalCtx);
|
||||
void func_800BCCDC(Vec3s* points, s32 pathCount, Vec3f* pos1, Vec3f* pos2, s32 parm5);
|
||||
void Actor_GetClosestPosOnPath(Vec3s* points, s32 numPoints, Vec3f* srcPos, Vec3f* dstPos, s32 isPathLoop);
|
||||
s32 func_800BD2B4(GlobalContext* globalCtx, Actor* actor, s16* arg2, f32 arg3, u16 (*textIdCallback)(GlobalContext*, Actor*), s16 (*arg5)(GlobalContext*, Actor*));
|
||||
void func_800BD888(Actor* actor, struct_800BD888_arg1* arg1, s16 arg2, s16 arg3);
|
||||
void func_800BD9E0(GlobalContext* globalCtx, SkelAnime* skelAnime, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, Actor* actor, s16 alpha);
|
||||
@@ -799,7 +795,7 @@ void func_800BE504(Actor* actor, ColliderCylinder* collider);
|
||||
void func_800BE568(Actor* actor, ColliderSphere* collider);
|
||||
void func_800BE5CC(Actor* actor, ColliderJntSph* collider, s32 colliderIndex);
|
||||
s32 Actor_IsSmallChest(struct EnBox* chest);
|
||||
void func_800BE680(GlobalContext* globalCtx, Actor* actor, Vec3f limbPos[], s16 arg3, f32 effectScale, f32 steamScale, f32 effectAlpha, u8 mode);
|
||||
void Actor_DrawDamageEffects(GlobalContext* globalCtx, Actor* actor, Vec3f limbPos[], s16 limbPosCount, f32 effectScale, f32 frozenSteamScale, f32 effectAlpha, u8 type);
|
||||
void Actor_SpawnIceEffects(GlobalContext* globalCtx, Actor* actor, Vec3f limbPos[], s32 limbPosCount, s32 effectsPerLimb, f32 scale, f32 scaleRange);
|
||||
|
||||
void ActorOverlayTable_FaultPrint(void* arg0, void* arg1);
|
||||
@@ -979,7 +975,7 @@ s32 DynaPolyActor_IsInRidingMovingState(DynaPolyActor* dynaActor);
|
||||
s32 DynaPolyActor_IsInRidingRotatingState(DynaPolyActor* dynaActor);
|
||||
s32 DynaPolyActor_IsInSwitchPressedState(DynaPolyActor* dynaActor);
|
||||
s32 DynaPolyActor_IsInHeavySwitchPressedState(DynaPolyActor* dynaActor);
|
||||
s32 DynaPolyActor_ValidateMove(GlobalContext* globalCtx, DynaPolyActor* dynaActor, s16 arg2, s16 arg3, s16 arg4);
|
||||
s32 DynaPolyActor_ValidateMove(GlobalContext* globalCtx, DynaPolyActor* dynaActor, s16 startRadius, s16 endRadius, s16 startHeight);
|
||||
f32 Camera_fabsf(f32 f);
|
||||
f32 Camera_LengthVec3f(Vec3f* v);
|
||||
// void func_800CB270(void);
|
||||
@@ -1158,7 +1154,7 @@ s16 Camera_ClearFlags(Camera* camera, s16 flags);
|
||||
s32 func_800DFFAC(Camera* camera, Actor* doorActor, s16 bgCamDataId, f32 arg3, s16 timer1, s16 timer2, s16 timer3);
|
||||
// UNK_TYPE4 func_800E007C(Camera* param_1, Camera* param_2);
|
||||
// UNK_TYPE4 func_800E01AC(void);
|
||||
// void func_800E01B8(void);
|
||||
Vec3f* Camera_GetQuakeOffset(Vec3f* dst, Camera* camera);
|
||||
// void func_800E01DC(s32 param_1, u32 param_2, UNK_TYPE4 param_3, UNK_TYPE4 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6);
|
||||
// UNK_TYPE4 func_800E0228(void);
|
||||
// void func_800E0238(void);
|
||||
@@ -1388,7 +1384,7 @@ s32 func_800E9138(GlobalContext* globalCtx, Actor* actor, Vec3s* param_3, Vec3s*
|
||||
s32 func_800E9250(GlobalContext* globalCtx, Actor* actor, Vec3s* param_3, Vec3s* param_4, Vec3f param_5);
|
||||
void SaveContext_Init(void);
|
||||
void GameInfo_Init(void);
|
||||
// void func_800E9470(void);
|
||||
// void DebugDisplay_Init(void);
|
||||
DebugDispObject* DebugDisplay_AddObject(f32 posX, f32 posY, f32 posZ, s16 rotX, s16 rotY, s16 rotZ, f32 scaleX, f32 scaleY, f32 scaleZ, u8 red, u8 green, u8 blue, u8 alpha, s16 type, GraphicsContext* gfxCtx);
|
||||
// void func_800E9C90(void);
|
||||
// void func_800E9CA0(s32 param_1, UNK_TYPE1 param_2, s8* param_3);
|
||||
@@ -1492,21 +1488,22 @@ void FireObj_Init(GlobalContext* globalCtx, FireObj* fire, FireObjInitParams* in
|
||||
void FireObj_Destroy(GlobalContext* globalCtx, FireObj* fire);
|
||||
void FireObj_SetState2(FireObj* fire, f32 dynamicSizeStep, u8 newState);
|
||||
void FireObj_Update(GlobalContext* globalCtx, FireObj* fire, Actor* actor);
|
||||
// void func_800F3940(void);
|
||||
s32 func_800F3940(GlobalContext* globalCtx);
|
||||
// void func_800F39B4(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_800F3A64(void);
|
||||
// void func_800F3B2C(void);
|
||||
void func_800F3B2C(GlobalContext* globalCtx);
|
||||
// void func_800F3B68(void);
|
||||
// void func_800F3C44(void);
|
||||
// void func_800F3ED4(void);
|
||||
void func_800F40A0(GameState* gameState, Player* player);
|
||||
// void func_800F415C(void);
|
||||
void func_800F415C(Actor* actor, Vec3f* arg1, s16 arg2);
|
||||
UNK_TYPE func_800F41E4(GlobalContext* globalCtx, ActorContext* actorCtx);
|
||||
|
||||
void func_800F4A10(GlobalContext* globalCtx);
|
||||
void func_800F4C0C(GlobalContext* globalCtx);
|
||||
void KaleidoSetup_Update(GlobalContext* globalCtx);
|
||||
void KaleidoSetup_Init(GlobalContext* globalCtx);
|
||||
void KaleidoSetup_Destroy(GlobalContext* globalCtx);
|
||||
|
||||
void Font_LoadChar(GlobalContext* globalCtx, u16 codePointIndex, s32 offset);
|
||||
void Font_LoadCharNES(GlobalContext* globalCtx, u8 codePointIndex, s32 offset);
|
||||
void Font_LoadMessageBoxEndIcon(Font* font, u16 icon);
|
||||
@@ -1559,7 +1556,7 @@ void func_800FD538(Color_RGB8* param_1, Color_RGB8* param_2, f32 param_3, Vec3s*
|
||||
void func_800FD59C(GlobalContext* globalCtx, Color_RGB8* pzParm2, f32 fParm3);
|
||||
void func_800FD5E0(GlobalContext* globalCtx, Color_RGB8* pzParm2, f32 fParm3);
|
||||
void func_800FD654(GlobalContext* globalCtx, Color_RGB8* pzParm2, f32 fParm3);
|
||||
// void func_800FD698(void);
|
||||
void func_800FD698(GlobalContext* globalCtx, s16 arg1, s16 arg2, f32 arg3);
|
||||
// u32 get_days_elapsed(void);
|
||||
// void reset_days_elapsed(void);
|
||||
// u32 get_current_day(void);
|
||||
@@ -1586,9 +1583,9 @@ void func_800FE658(f32 arg0);
|
||||
// void func_800FE778(void);
|
||||
// void func_800FE788(void);
|
||||
// void func_800FE798(void);
|
||||
// void func_800FE7A8(void);
|
||||
void func_800FE7A8(Color_RGBA8* inColor, Color_RGBA8* outColor);
|
||||
s32 func_800FE9B4(GlobalContext* globalCtx);
|
||||
// void func_800FEA50(void);
|
||||
void func_800FEA50(GlobalContext* globalCtx);
|
||||
void func_800FEAB0(void);
|
||||
// void func_800FEAC0(void);
|
||||
void func_800FEAF4(EnvironmentContext* envCtx);
|
||||
@@ -1647,7 +1644,7 @@ void Actor_ProcessInitChain(Actor* actor, InitChainEntry* ichain);
|
||||
f32 Math_SmoothStepToF(f32* pValue, f32 target, f32 fraction, f32 step, f32 minStep);
|
||||
void Math_ApproachF(f32* pValue, f32 target, f32 scale, f32 maxStep);
|
||||
void Math_ApproachZeroF(f32* pValue, f32 scale, f32 maxStep);
|
||||
s32 Math_SmoothStepToS(s16* pValue, s16 target, s16 scale, s16 step, s16 minStep);
|
||||
s16 Math_SmoothStepToS(s16* pValue, s16 target, s16 scale, s16 step, s16 minStep);
|
||||
void Math_ApproachS(s16* pValue, s16 target, s16 scale, s16 maxStep);
|
||||
void Color_RGBA8_Copy(Color_RGBA8* dst, Color_RGBA8* src);
|
||||
void func_801000A4(u16 sfxId);
|
||||
@@ -1801,7 +1798,7 @@ void func_80105818(GlobalContext* globalCtx, u32 uParm2, TransitionActorEntry* p
|
||||
// void func_80109F78(void);
|
||||
s32 func_8010A000(GlobalContext* globalCtx);
|
||||
s32 func_8010A074(GlobalContext* globalCtx);
|
||||
// void func_8010A0A4(void);
|
||||
s32 func_8010A0A4(GlobalContext* globalCtx);
|
||||
// void func_8010A0F0(void);
|
||||
// void func_8010A164(void);
|
||||
// void func_8010A194(void);
|
||||
@@ -1913,13 +1910,13 @@ void Interface_ChangeAlpha(u16 param_1);
|
||||
// void func_80111CB4(void);
|
||||
// void func_801129E4(void);
|
||||
void func_80112AFC(GlobalContext* globalCtx);
|
||||
void func_80112B40(GlobalContext* globalCtx, s32 arg1);
|
||||
void func_80112B40(GlobalContext* globalCtx, u8 arg1);
|
||||
// void func_80112BE4(void);
|
||||
// void func_80112C0C(void);
|
||||
u32 Item_Give(GlobalContext* globalCtx, u8 param_2);
|
||||
// void func_801143CC(void);
|
||||
UNK_TYPE func_80114978(UNK_TYPE arg0);
|
||||
void func_801149A0(s32 arg0, s16 arg1);
|
||||
void func_801149A0(s32 itemId, s16 slotId);
|
||||
// void func_80114A9C(void);
|
||||
// void func_80114B84(void);
|
||||
// void func_80114CA0(void);
|
||||
@@ -2010,7 +2007,7 @@ s32 func_80123810(GlobalContext* globalCtx);
|
||||
void func_80123AA4(Player* player, s32 arg1);
|
||||
// void func_80123BD4(void);
|
||||
// void func_80123C58(void);
|
||||
void Player_SetEquipmentData(GlobalContext* globalCtx, Player* this);
|
||||
void Player_SetEquipmentData(GlobalContext* globalCtx, Player* this);
|
||||
void func_80123D50(GlobalContext* globalCtx, Player* player, UNK_TYPE arg2, UNK_TYPE arg3);
|
||||
void func_80123DA4(Player* player);
|
||||
// void func_80123DC0(void);
|
||||
@@ -2240,7 +2237,7 @@ void Scene_HeaderCmdPathList(GlobalContext* globalCtx, SceneCmd* cmd);
|
||||
void Scene_HeaderCmdTransiActorList(GlobalContext* globalCtx, SceneCmd* cmd);
|
||||
void Door_InitContext(GameState* gameState, DoorContext* doorCtx);
|
||||
void Scene_HeaderCmdEnvLightSettings(GlobalContext* globalCtx, SceneCmd* cmd);
|
||||
s32 Scene_LoadAreaTextures(GlobalContext* globalCtx, s32 fileIndex);
|
||||
void Scene_LoadAreaTextures(GlobalContext* globalCtx, s32 fileIndex);
|
||||
void Scene_HeaderCmdSkyboxSettings(GlobalContext* globalCtx, SceneCmd* cmd);
|
||||
void Scene_HeaderCmdSkyboxDisables(GlobalContext* globalCtx, SceneCmd* cmd);
|
||||
void Scene_HeaderCmdTimeSettings(GlobalContext* globalCtx, SceneCmd* cmd);
|
||||
@@ -2302,26 +2299,7 @@ s32 Entrance_GetSceneNum(u16 entranceIndex);
|
||||
s32 Entrance_GetSceneNumAbsolute(u16 entranceIndex);
|
||||
s32 Entrance_GetSpawnNum(u16 entranceIndex);
|
||||
s32 Entrance_GetTransitionFlags(u16 entranceIndex);
|
||||
// void func_801323D0(void);
|
||||
// void func_80132428(void);
|
||||
// void func_80132494(void);
|
||||
// void func_801326B8(void);
|
||||
// void func_801328F0(void);
|
||||
// void func_80132920(void);
|
||||
// void func_80132938(void);
|
||||
// void func_80132954(void);
|
||||
// void func_8013296C(void);
|
||||
// void func_80132A18(void);
|
||||
// void func_80132A3C(void);
|
||||
// void func_80132A80(void);
|
||||
// void func_80132AD8(void);
|
||||
// void func_80132B24(void);
|
||||
// void func_80132B84(void);
|
||||
// void func_80132D70(void);
|
||||
// void func_80132E9C(void);
|
||||
// void func_80132FDC(void);
|
||||
// void func_80133000(void);
|
||||
UNK_TYPE func_80133038(GlobalContext* globalCtx, UNK_TYPE* arg1, struct_80133038_arg2* arg2);
|
||||
s32 Schedule_RunScript(GlobalContext* globalCtx, u8* script, ScheduleResult* result);
|
||||
void SkelAnime_DrawLimbLod(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec3s* jointTable, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, Actor* actor, s32 lod);
|
||||
void SkelAnime_DrawLod(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, Actor* actor, s32 lod);
|
||||
void SkelAnime_DrawFlexLimbLod(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec3s* jointTable, OverrideLimbDrawFlex overrideLimbDraw, PostLimbDrawFlex postLimbDraw, Actor* actor, s32 lod, Mtx** mtx);
|
||||
@@ -2386,7 +2364,7 @@ s32 Animation_OnFrameImpl(SkelAnime* skelAnime, f32 frame, f32 updateRate);
|
||||
s32 LinkAnimation_OnFrame(SkelAnime* skelAnime, f32 frame);
|
||||
void SkelAnime_Init(GlobalContext* globalCtx, SkelAnime* skelAnime, SkeletonHeader* skeletonHeaderSeg, AnimationHeader* animation, Vec3s* jointTable, Vec3s* morphTable, s32 limbCount);
|
||||
void SkelAnime_InitFlex(GlobalContext* globalCtx, SkelAnime* skelAnime, FlexSkeletonHeader* skeletonHeaderSeg, AnimationHeader* animation, Vec3s* jointTable, Vec3s* morphTable, s32 limbCount);
|
||||
void SkelAnime_InitSkin(GlobalContext* globalCtx, SkelAnime* skelAnime, SkeletonHeader* skeletonHeaderSeg, AnimationHeader* animation);
|
||||
void SkelAnime_InitSkin(GameState* gameState, SkelAnime* skelAnime, SkeletonHeader* skeletonHeaderSeg, AnimationHeader* animationSeg);
|
||||
void SkelAnime_SetUpdate(SkelAnime* skelAnime);
|
||||
s32 SkelAnime_Update(SkelAnime* skelAnime);
|
||||
s32 SkelAnime_Morph(SkelAnime* skelAnime);
|
||||
@@ -2411,23 +2389,6 @@ void SkelAnime_UpdateTranslation(SkelAnime* skelAnime, Vec3f* pos, s16 angle);
|
||||
s32 Animation_OnFrame(SkelAnime* skelAnime, f32 frame);
|
||||
void SkelAnime_Free(SkelAnime* skelAnime, GlobalContext* globalCtx);
|
||||
void SkelAnime_CopyFrameTable(SkelAnime* skelAnime, Vec3s* dst, Vec3s* src);
|
||||
// void func_80137970(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_80137B34(void);
|
||||
// void func_80137EBC(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_80137F58(void);
|
||||
// void func_80138050(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8);
|
||||
// void func_80138228(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_80138258(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
// void func_8013828C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
|
||||
// void func_801382C4(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8);
|
||||
// void func_80138300(void);
|
||||
// void func_8013835C(void);
|
||||
// void func_80138410(void);
|
||||
// void func_80138424(void);
|
||||
// void func_8013859C(void);
|
||||
// void func_80138700(void);
|
||||
// void func_801387D4(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE1 param_5);
|
||||
// void func_801388E4(void);
|
||||
void SkinMatrix_Vec3fMtxFMultXYZW(MtxF* mf, Vec3f* src, Vec3f* xyzDest, f32* wDest);
|
||||
void SkinMatrix_Vec3fMtxFMultXYZ(MtxF* mf, Vec3f* src, Vec3f* dest);
|
||||
void SkinMatrix_MtxFMtxFMult(MtxF* mfB, MtxF* mfA, MtxF* dest);
|
||||
@@ -2452,16 +2413,17 @@ void SkinMatrix_MulXRotation(MtxF* mf, s16 a);
|
||||
void SkinMatrix_SetYRotation(MtxF* mf, s16 a);
|
||||
void SkinMatrix_MulYRotation(MtxF* mf, s16 a);
|
||||
void SkinMatrix_SetZRotation(MtxF* mf, s16 a);
|
||||
|
||||
s32 func_8013A240(GlobalContext* globalCtx);
|
||||
void func_8013A41C(s32 flag);
|
||||
void func_8013A46C(s32 flag);
|
||||
u32 func_8013A4C4(s32 flag);
|
||||
s16 func_8013A504(s16 val);
|
||||
s32 func_8013A530(GlobalContext* globalCtx, Actor* actor, s32 flag, Vec3f* pos, Vec3s* rot, f32 distanceMin, f32 distanceMax, s16 angleError);
|
||||
struct EnDoor* SubS_FindDoor(GlobalContext* globalCtx, s32 unk_1A5);
|
||||
Gfx* SubS_DrawTransformFlexLimb(GlobalContext* globalCtx, s32 idx, void** skeleton, Vec3s* jointTable, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, TransformLimbDraw transformLimbDraw, Actor* actor, Mtx** mtx, Gfx* gfx);
|
||||
struct EnDoor* SubS_FindDoor(GlobalContext* globalCtx, s32 switchFlag);
|
||||
Gfx* SubS_DrawTransformFlexLimb(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec3s* jointTable, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, TransformLimbDraw transformLimbDraw, Actor* actor, Mtx** mtx, Gfx* gfx);
|
||||
Gfx* SubS_DrawTransformFlex(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, s32 dListCount, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, TransformLimbDraw transformLimbDraw, Actor* actor, Gfx* gfx);
|
||||
s32 func_8013AD6C(GlobalContext* globalCtx);
|
||||
s32 SubS_InCsMode(GlobalContext* globalCtx);
|
||||
s32 func_8013AD9C(s16 arg0, s16 arg1, Vec3f* arg2, Vec3s* arg3, s32 arg4, s32 arg5);
|
||||
void SubS_UpdateFlags(u16* flags, u16 setBits, u16 unsetBits);
|
||||
void func_8013AF00(f32* arg0, s32 arg1, s32 arg2);
|
||||
@@ -2470,47 +2432,48 @@ void func_8013B0C8(s32 arg0, f32 arg1, s32 arg2, f32* arg3, f32* arg4);
|
||||
void func_8013B350(Vec3f* arg0, f32* arg1, f32 arg2, s32 arg3, s32 arg4, Vec3s* arg5, f32* arg6);
|
||||
s32 func_8013B6B0(Path* path, f32* arg1, s32* arg2, s32 arg3, s32 arg4, s32* arg5, f32* arg6, Vec3f* arg7, s32 arg8);
|
||||
void func_8013B878(GlobalContext* globalCtx, Path* path, s32 arg2, Vec3f* arg3);
|
||||
Path* func_8013BB34(GlobalContext* globalCtx, u8 arg1, s32 arg2);
|
||||
Path* SubS_GetAdditionalPath(GlobalContext* globalCtx, u8 pathIndex, s32 max);
|
||||
Actor* SubS_FindNearestActor(Actor* actor, GlobalContext* globalCtx, u8 actorCategory, s16 actorId);
|
||||
s32 SubS_ChangeAnimationByInfoS(SkelAnime* skelAnime, AnimationInfoS* animations, s32 index);
|
||||
s32 func_8013BD40(Actor* actor, Path* path, s32 arg2);
|
||||
Path* func_8013BEDC(GlobalContext* globalCtx, u8 arg1, u8 arg2, s32* arg3);
|
||||
s32 SubS_HasReachedPoint(Actor* actor, Path* path, s32 pointIndex);
|
||||
Path* SubS_GetDayDependentPath(GlobalContext* globalCtx, u8 pathIndex, u8 max, s32* startPointIndex);
|
||||
s32 func_8013C068(Path* path, s32 arg1, Vec3f* arg2, f32 arg3, s32 arg4);
|
||||
s32 func_8013C624(Actor* actor, Path* path, s32* arg2, f32* arg3, s32 arg4, s32 arg5);
|
||||
s32 func_8013C8B8(Path* path, s32 arg1, Vec3f* arg2);
|
||||
s32 func_8013C964(Actor* actor, GlobalContext* globalCtx, f32 arg2, f32 arg3, s32 arg4, s32 arg5);
|
||||
void func_8013CC2C(s32 arg0, s32 arg1, u8* arg2, s32 arg3);
|
||||
void func_8013CD64(Vec3f* arg0, Vec3f* arg1, u8* arg2, f32 arg3, u8 arg4, u8* arg5, s8* arg6);
|
||||
void func_8013CF04(Actor* actor, GraphicsContext** gfxCtxPtr, u8* arg2);
|
||||
s32 SubS_CopyPointFromPathCheckBounds(Path* path, s32 pointIndex, Vec3f* dst);
|
||||
s32 func_8013C964(Actor* actor, GlobalContext* globalCtx, f32 xzRange, f32 yRange, s32 itemId, s32 type);
|
||||
void SubS_FillShadowTex(s32 startCol, s32 startRow, u8* tex, s32 size);
|
||||
void SubS_GenShadowTex(Vec3f bodyPartsPos[], Vec3f* worldPos, u8* tex, f32 tween, u8 bodyPartsNum, u8 sizes[], s8 parentBodyParts[]);
|
||||
void SubS_DrawShadowTex(Actor* actor, GameState* gameState, u8* tex);
|
||||
s16 func_8013D0E0(s16* arg0, s16 arg1, s16 arg2, f32 arg3, f32 arg4, f32 arg5);
|
||||
s32 func_8013D2E0(Vec3f* arg0, Vec3f* arg1, Vec3s* arg2, Vec3s* arg3, Vec3s* arg4, Vec3s* arg5, u16* arg6);
|
||||
s32 SubS_AngleDiffLessEqual(s16 angleA, s16 threshold, s16 angleB);
|
||||
Path* func_8013D648(GlobalContext* globalCtx, s16 arg1, s16 arg2);
|
||||
s32 func_8013D68C(Path* path, s32 arg1, Vec3f* arg2);
|
||||
s16 func_8013D720(Vec3f* arg0, Vec3f* arg1, f32* arg2);
|
||||
s32 func_8013D768(Actor* actor, Vec3f* arg1, s16 arg2);
|
||||
s16 func_8013D83C(Path* path, s32 pointIdx, Vec3f* pos, f32* distSq);
|
||||
Path* SubS_GetPathByIndex(GlobalContext* globalCtx, s16 pathIndex, s16 max);
|
||||
s32 SubS_CopyPointFromPath(Path* path, s32 pointIndex, Vec3f* dst);
|
||||
s16 SubS_GetDistSqAndOrientPoints(Vec3f* vecA, Vec3f* vecB, f32* distSq);
|
||||
s32 SubS_MoveActorToPoint(Actor* actor, Vec3f* point, s16 rotStep);
|
||||
s16 SubS_GetDistSqAndOrientPath(Path* path, s32 pointIdx, Vec3f* pos, f32* distSq);
|
||||
s8 SubS_IsObjectLoaded(s8 index, GlobalContext* globalCtx);
|
||||
s8 SubS_GetObjectIndex(s16 id, GlobalContext* globalCtx);
|
||||
Actor* SubS_FindActor(GlobalContext* globalCtx, Actor* actorListStart, u8 actorCategory, s16 actorId);
|
||||
s32 SubS_FillLimbRotTables(GlobalContext* globalCtx, s16* limbRotTableY, s16* limbRotTableZ, s32 numLimbs);
|
||||
s32 func_8013DB90(GlobalContext* globalCtx, Vec3f* arg1, f32 arg2);
|
||||
s32 func_8013DC40(Path* arg0, s32 arg1, s32 arg2, Vec3f* arg3);
|
||||
void func_8013DCE0(GlobalContext* globalCtx, Vec3f* arg1, Actor* arg2, struct_8013DF3C_arg1* arg3, Path* arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, u8 arg9);
|
||||
s32 func_8013DE04(GlobalContext* globalCtx, struct_8013DF3C_arg1* arg1, struct_8013DF3C_arg1_unk_func1 arg2, struct_8013DF3C_arg1_unk_func2 arg3, struct_8013DF3C_arg1_unk_func2 arg4, struct_8013DF3C_arg1_unk_func2 arg5);
|
||||
void func_8013DF3C(GlobalContext* globalCtx, struct_8013DF3C_arg1* arg1);
|
||||
s32 func_8013E054(GlobalContext* globalCtx, struct_8013DF3C_arg1* arg1);
|
||||
s32 func_8013E07C(GlobalContext* globalCtx, struct_8013DF3C_arg1* arg1);
|
||||
s32 func_8013E0A4(GlobalContext* globalCtx, struct_8013DF3C_arg1* arg1);
|
||||
s32 SubS_IsFloorAbove(GlobalContext* globalCtx, Vec3f* pos, f32 distAbove);
|
||||
s32 SubS_CopyPointFromPathList(Path* paths, s32 pathIndex, s32 pointIndex, Vec3f* dst);
|
||||
u8 SubS_GetPathCount(Path* paths, s32 index);
|
||||
void SubS_ActorPathing_Init(GlobalContext* globalCtx, Vec3f* worldPos, Actor* actor, ActorPathing* actorPath, Path* paths, s32 pathIndex, s32 begPointIndex, s32 endPointIndex, s32 curPointIndex, u8 flags);
|
||||
s32 SubS_ActorPathing_Update(GlobalContext* globalCtx, ActorPathing* actorPath, ActorPathingComputeFunc computePointInfoFunc, ActorPathingUpdateFunc updateActorInfoFunc, ActorPathingUpdateFunc moveFunc, ActorPathingUpdateFunc setNextPointFunc);
|
||||
void SubS_ActorPathing_ComputePointInfo(GlobalContext* globalCtx, ActorPathing* actorPath);
|
||||
s32 SubS_ActorPathing_MoveWithGravity(GlobalContext* globalCtx, ActorPathing* actorPath);
|
||||
s32 SubS_ActorPathing_MoveWithoutGravityReverse(GlobalContext* globalCtx, ActorPathing* actorPath);
|
||||
s32 SubS_ActorPathing_SetNextPoint(GlobalContext* globalCtx, ActorPathing* actorPath);
|
||||
void SubS_ChangeAnimationBySpeedInfo(SkelAnime* skelAnime, AnimationSpeedInfo* animations, s32 nextIndex, s32* curIndex);
|
||||
s32 SubS_StartActorCutscene(Actor* actor, s16 nextCutscene, s16 curCutscene, s32 type);
|
||||
s32 SubS_FillCutscenesList(Actor* actor, s16 cutscenes[], s16 numCutscenes);
|
||||
void func_8013E4B0(Vec3f* arg0, Vec3f* arg1, Vec3s* arg2, Plane* plane);
|
||||
s32 func_8013E5CC(Vec3f* arg0, Vec3s* arg1, Vec3f* arg2, Vec3f* arg3, Vec3f* arg4, Vec3f* arg5);
|
||||
void SubS_ConstructPlane(Vec3f* point, Vec3f* unitVec, Vec3s* rot, Plane* plane);
|
||||
s32 SubS_LineSegVsPlane(Vec3f* point, Vec3s* rot, Vec3f* unitVec, Vec3f* linePointA, Vec3f* linePointB, Vec3f* intersect);
|
||||
Actor* SubS_FindActorCustom(GlobalContext* globalCtx, Actor* actor, Actor* actorListStart, u8 actorCategory, s16 actorId, void* verifyData, VerifyActor verifyActor);
|
||||
s32 func_8013E748(Actor* actor, GlobalContext* globalCtx, f32 arg2, f32 arg3, s32 arg4, Vec3s* arg5, func_8013E748_arg6 arg6);
|
||||
s32 func_8013E7C0(GlobalContext* globalCtx, Actor* actor, Vec3s* arg2);
|
||||
void func_8013E8F8(Actor* actor, GlobalContext* globalCtx, f32 arg2, f32 arg3, s32 arg4, s16 arg5, s16 arg6);
|
||||
s32 func_8013E748(Actor* actor, GlobalContext* globalCtx, f32 xzRange, f32 yRange, s32 exchangeItemId, void* data, func_8013E748_VerifyFunc verifyFunc);
|
||||
s32 SubS_ActorAndPlayerFaceEachOther(GlobalContext* globalCtx, Actor* actor, void* data);
|
||||
s32 func_8013E8F8(Actor* actor, GlobalContext* globalCtx, f32 xzRange, f32 yRange, s32 exhangeItemId, s16 playerYawTol, s16 actorYawTol);
|
||||
s32 func_8013E950(Vec3f* arg0, Vec3f* arg1, s16 arg2, Vec3f* arg3, Vec3f* arg4, s16* arg5, s16* arg6, s16* arg7, s16* arg8, u16 arg9, u16 arg10, u16 arg11, u16 arg12);
|
||||
// void func_8013EC10(void);
|
||||
void func_8013EC44(f32 a, u8 b, u8 c, u8 d);
|
||||
@@ -2584,50 +2547,18 @@ s32 func_80142440(SkyboxContext* skyboxCtx, Vtx* vtx, s32 arg2, s32 arg3, s32 ar
|
||||
void func_80143148(SkyboxContext* skyboxCtx, s32 arg1);
|
||||
void func_801431E8(GameState* gameState, SkyboxContext* skyboxCtx, s16 skyType);
|
||||
void func_80143324(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skyType);
|
||||
void func_801434E4(GameState* gameState, SkyboxContext* skyboxCtx, s16 skyType);
|
||||
void func_801434E4(GameState* gameState, SkyboxContext* skyboxCtx, s16 skyType);
|
||||
Mtx* SkyboxDraw_UpdateMatrix(SkyboxContext* skyboxCtx, f32 x, f32 y, f32 z);
|
||||
void SkyboxDraw_SetColors(SkyboxContext* skyboxCtx, u8 primR, u8 primG, u8 primB, u8 envR, u8 envG, u8 envB);
|
||||
void SkyboxDraw_Draw(SkyboxContext* skyboxCtx, GraphicsContext* gfxCtx, s16 skyboxId, s16 blend, f32 x, f32 y, f32 z);
|
||||
void SkyboxDraw_Noop(SkyboxContext* skyboxCtx);
|
||||
void func_80143A10(u8 owlId);
|
||||
// void func_80143A54(void);
|
||||
void func_80143AC4(void);
|
||||
void func_80143B0C(GlobalContext* globalCtx);
|
||||
void Sram_IncrementDay(void);
|
||||
u32 Sram_CalcChecksum(u8* data, u32 length);
|
||||
// void func_80144628(void);
|
||||
// void Sram_GenerateRandomSaveFields(void);
|
||||
void func_80144890(void);
|
||||
void Sram_InitDebugSave(void);
|
||||
void func_80144A94(SramContext* sramCtx);
|
||||
// void func_80144E78(void);
|
||||
// void func_8014546C(void);
|
||||
// void func_80145698(void);
|
||||
void func_801457CC(GameState* gameState, SramContext* param_2);
|
||||
void func_80146580(s32 param_1, SramContext* param_2, s32 param_3);
|
||||
// void func_80146628(void);
|
||||
// void func_80146AA0(void);
|
||||
// void func_80146DF8(void);
|
||||
void func_80146E40(GameState* gameState, SramContext* sramCtx);
|
||||
void Sram_Alloc(GameState* gameState, SramContext* sramCtx);
|
||||
// void func_80146EBC(SramContext* param_1, UNK_TYPE4 param_2, UNK_TYPE4 param_3);
|
||||
void func_80146EE8(GlobalContext* globalCtx);
|
||||
void func_80146F5C(GlobalContext* globalCtx);
|
||||
// void func_80147008(void);
|
||||
void func_80147020(SramContext* param_1);
|
||||
void func_80147068(SramContext* param_1);
|
||||
// void func_80147138(SramContext* param_1, UNK_TYPE4 param_2, UNK_TYPE4 param_3);
|
||||
void func_80147150(SramContext* param_1);
|
||||
void func_80147198(SramContext* param_1);
|
||||
// void func_80147314(void);
|
||||
// void func_80147414(void);
|
||||
// void Sram_nop8014750C(UNK_TYPE4 param_1);
|
||||
|
||||
// void func_80147520(void);
|
||||
void func_80147564(GlobalContext* globalCtx);
|
||||
s32 func_80147624(GlobalContext* globalCtx);
|
||||
s32 func_80147734(GlobalContext* globalCtx);
|
||||
s32 Message_ShouldAdvance(GlobalContext* globalCtx);
|
||||
s32 Message_ShouldAdvanceSilent(GlobalContext* globalCtx);
|
||||
void func_801477B4(GlobalContext* globalCtx);
|
||||
// void func_80147818(GlobalContext* globalCtx, UNK_PTR puParm2, UNK_TYPE4 uParm3, UNK_TYPE4 uParm4);
|
||||
void func_80147818(GlobalContext* globalCtx, UNK_PTR puParm2, UNK_TYPE4 uParm3, UNK_TYPE4 uParm4);
|
||||
// void func_80147F18(GlobalContext* globalCtx, UNK_PTR puParm2, UNK_TYPE4 uParm3, UNK_TYPE4 uParm4);
|
||||
// void func_80148558(GlobalContext* globalCtx, UNK_PTR puParm2, UNK_TYPE4 uParm3, UNK_TYPE4 uParm4);
|
||||
void func_80148B98(GlobalContext* globalCtx, u8 bParm2);
|
||||
@@ -2638,28 +2569,28 @@ void func_80148B98(GlobalContext* globalCtx, u8 bParm2);
|
||||
// void func_80149454(void);
|
||||
// void func_801496C8(void);
|
||||
// void func_8014995C(void);
|
||||
// void func_80149C18(void);
|
||||
// void func_80149EBC(void);
|
||||
void func_80149C18(GlobalContext* globalCtx);
|
||||
// void Message_FindMessage(void);
|
||||
void func_80149F74(GlobalContext* globalCtx, u32** ppuParm2);
|
||||
// void func_8014AAD0(void);
|
||||
void func_8014ADBC(GlobalContext* globalCtx, UNK_PTR puParm2);
|
||||
// void func_8014C70C(void);
|
||||
// void func_8014CC14(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5);
|
||||
void Message_LoadChar(GlobalContext* globalCtx, u16 codePointIndex, s32* offset, f32* arg3, s16 arg4);
|
||||
// void func_8014CCB4(void);
|
||||
// void func_8014CDF0(void);
|
||||
// void func_8014CFDC(void);
|
||||
// void func_8014D304(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
void func_8014D304(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_8014D62C(void);
|
||||
// void func_8014D7B4(void);
|
||||
// void func_80150A84(void);
|
||||
void func_80150A84(GlobalContext* globalCtx);
|
||||
void func_80150D08(GlobalContext* globalCtx, u32 uParm2);
|
||||
// void func_801514B0(void);
|
||||
void Message_StartTextbox(GlobalContext* globalCtx, u16 textId, Actor* Actor);
|
||||
void func_80151938(GlobalContext* globalCtx, u16 textId);
|
||||
void func_80151A68(GlobalContext* globalCtx, u16 textId);
|
||||
void func_80151BB4(GlobalContext* globalCtx, u32 uParm2);
|
||||
void func_80151BB4(GlobalContext* globalCtx, u8 uParm2);
|
||||
// void func_80151C9C(void);
|
||||
// void func_80151DA4(void);
|
||||
void func_80151DA4(GlobalContext* globalCtx, u16 arg2);
|
||||
void func_80152434(GlobalContext* globalCtx, u16 arg2);
|
||||
// void func_80152464(void);
|
||||
u8 Message_GetState(MessageContext* msgCtx);
|
||||
@@ -2671,23 +2602,23 @@ u8 Message_GetState(MessageContext* msgCtx);
|
||||
// void func_80153750(void);
|
||||
// void func_80153E7C(void);
|
||||
// void func_80153EF0(void);
|
||||
// void func_801541D4(void);
|
||||
void func_801541D4(GlobalContext* globalCtx, Gfx** gfxp);
|
||||
// void func_80156758(void);
|
||||
void func_8015680C(GlobalContext* globalCtx);
|
||||
void func_801586A4(GlobalContext* globalCtx);
|
||||
void Message_Init(GlobalContext* globalCtx);
|
||||
void func_801588D0(GlobalContext* globalCtx, s16 param_2);
|
||||
// void func_80158988(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5);
|
||||
// void func_80158A24(void);
|
||||
// void func_80158C04(void);
|
||||
// void func_80158D98(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5);
|
||||
// void func_80158FB0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_8015926C(void);
|
||||
void Message_FindMessageNES(GlobalContext* globalCtx, u16 textId);
|
||||
// void Message_LoadCharNES(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5);
|
||||
// void Message_LoadPluralRupeesNES(void);
|
||||
// void Message_LoadLocalizedRupeesNES(void);
|
||||
// void Message_LoadRupeesNES(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5);
|
||||
// void Message_LoadTimeNES(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void Message_LoadAreaTextNES(void);
|
||||
// void func_80159438(void);
|
||||
// void func_8015966C(void);
|
||||
void func_8015966C(GlobalContext* globalCtx, UNK_PTR puParm2, UNK_TYPE arg3);
|
||||
// void func_8015A144(void);
|
||||
// void func_8015B198(void);
|
||||
// void func_8015E750(void);
|
||||
void func_8015B198(GlobalContext* globalCtx);
|
||||
void Message_FindCreditsMessage(GlobalContext *globalCtx, u16 textId);
|
||||
void func_8015E7EC(GlobalContext* globalCtx, UNK_PTR puParm2);
|
||||
// void func_8015F8A8(UNK_TYPE4 ctxt);
|
||||
|
||||
@@ -2704,10 +2635,10 @@ void ShrinkWindow_Destroy(void);
|
||||
void ShrinkWindow_Update(s32 framerateDivisor);
|
||||
void ShrinkWindow_Draw(GraphicsContext* gfxCtx);
|
||||
// void func_80161180(void);
|
||||
void func_8016119C(Camera* camera, struct_801F4D48* arg1);
|
||||
s32 func_8016119C(Camera* camera, DbCameraUnkStruct* arg1);
|
||||
// void func_8016122C(void);
|
||||
// void func_801612B8(void);
|
||||
s32 func_80161998(UNK_PTR arg0, struct_801F4D48* arg1);
|
||||
s32 func_80161998(u8* cmd, DbCameraUnkStruct* arg1);
|
||||
// s32 func_80161BAC(void);
|
||||
void func_80161BE0(s16 arg0);
|
||||
void func_80161C0C(void);
|
||||
@@ -2773,7 +2704,7 @@ void func_80165438(UNK_PTR param_1);
|
||||
// void func_80165608(void);
|
||||
// void func_80165630(void);
|
||||
void func_80165658(u32 arg0);
|
||||
void func_8016566C(s32 arg0);
|
||||
void func_8016566C(u32 arg0);
|
||||
void func_80165690(void);
|
||||
// void func_801656A4(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8);
|
||||
// void func_80165DCC(void);
|
||||
@@ -2795,7 +2726,7 @@ void func_80167DE4(GlobalContext* globalCtx);
|
||||
void Play_Draw(GlobalContext* globalCtx);
|
||||
void func_80168DAC(GlobalContext* globalCtx);
|
||||
void Play_Update(GlobalContext* globalCtx);
|
||||
s32 func_801690CC(GlobalContext* globalCtx);
|
||||
s32 Play_InCsMode(GlobalContext* globalCtx);
|
||||
f32 func_80169100(GlobalContext* globalCtx, MtxF* mtx, CollisionPoly** arg2, s32* arg3, Vec3f* feetPosPtr);
|
||||
// void func_801691F0(void);
|
||||
void* Play_LoadScene(GlobalContext* globalCtx, RomFile* entry);
|
||||
@@ -2937,7 +2868,7 @@ void* GameAlloc_Malloc(GameAlloc* this, size_t size);
|
||||
void GameAlloc_Free(GameAlloc* this, void* data);
|
||||
void GameAlloc_Cleanup(GameAlloc* this);
|
||||
void GameAlloc_Init(GameAlloc* this);
|
||||
void* Graph_FaultClient(void);
|
||||
void Graph_FaultClient(void);
|
||||
void Graph_InitTHGA(TwoHeadGfxArena* arena, Gfx* buffer, s32 size);
|
||||
void Graph_SetNextGfxPool(GraphicsContext* gfxCtx);
|
||||
GameStateOverlay* Graph_GetNextGameState(GameState* gameState);
|
||||
@@ -3117,7 +3048,7 @@ s32 Math3D_LineSegVsPlane(f32 nx, f32 ny, f32 nz, f32 originDist, Vec3f* linePoi
|
||||
void Math3D_TriSetCoords(TriNorm* tri, Vec3f* pointA, Vec3f* pointB, Vec3f* pointC);
|
||||
u32 Math3D_IsPointInSphere(Sphere16* sphere, Vec3f* point);
|
||||
s32 Math3D_PointDistToLine2D(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32* arg6, f32* arg7, f32* arg8); // returns boolean
|
||||
// void func_8017D7C0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
|
||||
s32 func_8017D7C0(f32 x0, f32 y0, f32 x1, f32 y1, f32 x2, f32 y2, f32* lineLenSq);
|
||||
// void func_8017D814(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_8017D91C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_8017DA24(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
@@ -3206,12 +3137,12 @@ void func_80183070(void);
|
||||
// void func_801832B0(void);
|
||||
// void func_8018332C(void);
|
||||
// void func_8018340C(void);
|
||||
// void func_80183430(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
// void func_8018349C(void);
|
||||
// void func_801834A8(void);
|
||||
void func_80183430(SkeletonInfo* skeletonInfo, void* arg1, void* arg2, Vec3s* arg3, s16* arg4, UnkKeyframeCallback* callbacks);
|
||||
void func_8018349C(UNK_PTR arg0);
|
||||
void func_801834A8(SkeletonInfo* skeletonInfo, void* arg1);
|
||||
// void func_80183510(void);
|
||||
// void func_80183580(void);
|
||||
// void func_801835EC(void);
|
||||
void func_801835EC(UNK_PTR arg0, UNK_PTR arg1);
|
||||
// void func_80183658(void);
|
||||
// void func_801836CC(void);
|
||||
// void func_8018373C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9);
|
||||
@@ -3221,9 +3152,11 @@ void func_80183070(void);
|
||||
// void func_80183A3C(void);
|
||||
// void func_80183B08(void);
|
||||
// void func_80183B68(void);
|
||||
// void func_80183DE0(void);
|
||||
s32 func_80183DE0(SkeletonInfo* skeletonInfo);
|
||||
// void func_8018410C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
|
||||
// void func_8018450C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
void func_8018450C(GlobalContext* globalCtx, SkeletonInfo* skeleton, Mtx* mtx,
|
||||
OverrideKeyframeDrawScaled overrideKeyframeDraw, PostKeyframeDrawScaled postKeyframeDraw,
|
||||
Actor* actor);
|
||||
// void func_801845A4(void);
|
||||
// void func_801845C8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_80184638(void);
|
||||
@@ -3247,17 +3180,17 @@ void Slowly_Stop(SlowlyTask* slowly);
|
||||
// char* func_801857D0(void);
|
||||
// void func_80185864(void);
|
||||
u32 func_80185908(void);
|
||||
// void func_80185968(void);
|
||||
UNK_TYPE func_80185968(void* arg0, UNK_TYPE arg1, UNK_TYPE arg2);
|
||||
// void func_801859F0(void);
|
||||
// void func_80185A2C(void);
|
||||
// void func_80185B1C(void);
|
||||
// void func_80185BE4(void);
|
||||
// void func_80185C24(void);
|
||||
void SysFlashrom_ThreadEntry(s80185D40* param_1);
|
||||
// void func_80185DDC(void);
|
||||
// void func_80185EC4(void);
|
||||
// void func_80185F04(void);
|
||||
// void func_80185F64(void);
|
||||
void func_80185DDC(u8* arg0, u32 arg1, u32 arg2);
|
||||
s32 func_80185EC4(void);
|
||||
s32 func_80185F04(void);
|
||||
void func_80185F64(void* arg0, UNK_TYPE arg1, UNK_TYPE arg2);
|
||||
s32 func_80185F90(u32 param_1);
|
||||
u32 osFlashGetAddr(u32 pageNum);
|
||||
OSPiHandle* osFlashReInit(u8 latency, u8 pulse, u8 pageSize, u8 relDuration, u32 start);
|
||||
@@ -3316,130 +3249,53 @@ s32 osFlashReadArray(OSIoMesg* mb, s32 priority, u32 pageNum, void* dramAddr, u3
|
||||
// void func_8018A808(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE4 param_6);
|
||||
// void func_8018ACC4(void);
|
||||
// void func_8018AE34(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
// void func_8018B0F0(void);
|
||||
// void func_8018B10C(void);
|
||||
// void func_8018B250(void);
|
||||
// void func_8018B318(void);
|
||||
// void func_8018B474(void);
|
||||
// void func_8018B4F8(void);
|
||||
// void func_8018B520(void);
|
||||
// void func_8018B578(void);
|
||||
void* AudioHeap_AllocDmaMemory(AudioAllocPool* pool, u32 size);
|
||||
// void func_8018B608(void);
|
||||
// void func_8018B640(void);
|
||||
// void func_8018B69C(void);
|
||||
// void func_8018B6E8(void);
|
||||
// void func_8018B740(void);
|
||||
// void func_8018B768(void);
|
||||
// void func_8018B77C(void);
|
||||
// void func_8018B7BC(void);
|
||||
// void func_8018B8FC(void);
|
||||
// void func_8018B95C(void);
|
||||
// void func_8018B9E0(void);
|
||||
// void func_8018BA64(void);
|
||||
// void func_8018BB28(void);
|
||||
// void func_8018BBEC(void);
|
||||
// void func_8018C380(void);
|
||||
// void func_8018C3D8(void);
|
||||
// void func_8018C8E8(void);
|
||||
// void func_8018C93C(void);
|
||||
// void func_8018C994(void);
|
||||
// void func_8018CB70(void);
|
||||
// void func_8018CB78(void);
|
||||
// void func_8018CC3C(void);
|
||||
// void func_8018CCA8(void);
|
||||
// void func_8018CFAC(void);
|
||||
// void func_8018D57C(void);
|
||||
// void func_8018D5D4(void);
|
||||
// void func_8018D658(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_8018D6C8(void);
|
||||
// void func_8018D760(void);
|
||||
// void func_8018DA50(void);
|
||||
// void func_8018DBC4(void);
|
||||
// void func_8018DCB4(void);
|
||||
// void func_8018DCF8(void);
|
||||
// void func_8018DD98(void);
|
||||
// void func_8018DDD4(void);
|
||||
// void func_8018DF24(void);
|
||||
// void func_8018DFE0(void);
|
||||
// void func_8018E00C(void);
|
||||
// void func_8018E03C(void);
|
||||
// void func_8018E2A8(void);
|
||||
// void func_8018E344(void);
|
||||
// void func_8018E8C8(void);
|
||||
// void func_8018EB60(void);
|
||||
// void func_8018EC4C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_8018EF88(void);
|
||||
s32 AudioLoad_IsFontLoadComplete(s32 bankId);
|
||||
// void func_8018F298(void);
|
||||
// void func_8018F310(void);
|
||||
// void func_8018F388(void);
|
||||
// void func_8018F3B8(void);
|
||||
// void func_8018F3E8(void);
|
||||
// void func_8018F448(void);
|
||||
// void func_8018F478(void);
|
||||
// void func_8018F4D8(void);
|
||||
// void func_8018F588(void);
|
||||
// void func_8018F604(void);
|
||||
// void func_8018F6F0(void);
|
||||
// void func_8018F7C0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_8018F7F8(void);
|
||||
// void func_8018F83C(void);
|
||||
// void func_8018F880(void);
|
||||
// void func_8018F8C4(void);
|
||||
// void func_8018F908(void);
|
||||
// void func_8018F9B8(void);
|
||||
// void func_8018FA60(void);
|
||||
// void func_8018FAD0(void);
|
||||
// void func_8018FB20(void);
|
||||
// void func_8018FB78(void);
|
||||
// void func_8018FCCC(void);
|
||||
// void func_8018FD20(void);
|
||||
// void func_8018FD40(void);
|
||||
// void func_8018FE5C(void);
|
||||
// void func_8018FF60(void);
|
||||
// void func_80190204(void);
|
||||
// void func_80190240(void);
|
||||
// void func_80190294(void);
|
||||
// void func_801902D8(void);
|
||||
// void func_80190544(void);
|
||||
// void func_80190668(void);
|
||||
// void func_8019067C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8);
|
||||
// void func_8019075C(void);
|
||||
// void func_8019077C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_80190B08(void);
|
||||
void func_80190B38(void* callback);
|
||||
// void func_80190B50(void);
|
||||
// void func_80190BB0(void);
|
||||
// void func_80190F50(void);
|
||||
// void func_80190F64(void);
|
||||
// void func_80191134(void);
|
||||
// void func_801911CC(void);
|
||||
// void func_80191240(void);
|
||||
// void func_801913C8(void);
|
||||
// void func_8019144C(void);
|
||||
// void func_80191460(void);
|
||||
// void func_80191568(void);
|
||||
// void func_80191598(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8);
|
||||
// void func_8019161C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
|
||||
// void func_80191740(void);
|
||||
// void func_80191864(void);
|
||||
// void func_80191870(void);
|
||||
// void func_801919AC(void);
|
||||
// void func_80191B40(void);
|
||||
// void func_80191BD0(void);
|
||||
// void func_80191C40(void);
|
||||
// void func_80191C54(void);
|
||||
// void func_80191D94(void);
|
||||
// void func_8019218C(void);
|
||||
// void func_80192340(void);
|
||||
// void func_80192388(void);
|
||||
// void func_801924BC(void);
|
||||
// void func_80192514(void);
|
||||
// void func_80192990(void);
|
||||
// void func_80192AE8(void);
|
||||
// void func_80192B54(void);
|
||||
// void func_80192BAC(void);
|
||||
void AudioHeap_DiscardFont(s32 fontId);
|
||||
void* AudioHeap_WritebackDCache(void* addr, size_t size);
|
||||
void* AudioHeap_AllocAttemptExternal(AudioAllocPool* pool, size_t size);
|
||||
void* AudioHeap_AllocDmaMemory(AudioAllocPool* pool, size_t size);
|
||||
void* AudioHeap_AllocZeroed(AudioAllocPool* pool, size_t size);
|
||||
void* AudioHeap_Alloc(AudioAllocPool* pool, size_t size);
|
||||
void AudioHeap_AllocPoolInit(AudioAllocPool* pool, void* addr, size_t size);
|
||||
void AudioHeap_PopCache(s32 tableType);
|
||||
void AudioHeap_InitMainPool(size_t initPoolSize);
|
||||
void* AudioHeap_AllocCached(s32 tableType, size_t size, s32 cache, s32 id);
|
||||
void* AudioHeap_SearchCaches(s32 tableType, s32 cache, s32 id);
|
||||
void AudioHeap_LoadFilter(s16* filter, s32 lowPassCutoff, s32 highPassCutoff);
|
||||
s32 AudioHeap_ResetStep(void);
|
||||
void AudioHeap_Init(void);
|
||||
void* AudioHeap_SearchPermanentCache(s32 tableType, s32 id);
|
||||
void* AudioHeap_AllocPermanent(s32 tableType, s32 id, size_t size);
|
||||
void* AudioHeap_AllocSampleCache(size_t size, s32 sampleBankId, void* sampleAddr, s8 medium, s32 cache);
|
||||
void AudioHeap_ApplySampleBankCache(s32 sampleBankId);
|
||||
void AudioHeap_SetReverbData(s32 reverbIndex, u32 dataType, s32 data, s32 flags);
|
||||
void AudioLoad_DecreaseSampleDmaTtls(void);
|
||||
void* AudioLoad_DmaSampleData(uintptr_t devAddr, size_t size, s32 arg2, u8* dmaIndexRef, s32 medium);
|
||||
void AudioLoad_InitSampleDmaBuffers(s32 numNotes);
|
||||
s32 AudioLoad_IsFontLoadComplete(s32 fontId);
|
||||
s32 AudioLoad_IsSeqLoadComplete(s32 seqId);
|
||||
void AudioLoad_SetFontLoadStatus(s32 fontId, s32 status);
|
||||
void AudioLoad_SetSeqLoadStatus(s32 seqId, s32 status);
|
||||
void AudioLoad_SyncLoadSeqParts(s32 seqId, s32 arg1, s32 arg2, OSMesgQueue* arg3);
|
||||
s32 AudioLoad_SyncLoadInstrument(s32 fontId, s32 instId, s32 drumId);
|
||||
void AudioLoad_AsyncLoadSeq(s32 seqId, s32 arg1, s32 retData, OSMesgQueue* retQueue);
|
||||
void AudioLoad_AsyncLoadSampleBank(s32 sampleBankId, s32 arg1, s32 retData, OSMesgQueue* retQueue);
|
||||
void AudioLoad_AsyncLoadFont(s32 fontId, s32 arg1, s32 retData, OSMesgQueue* retQueue);
|
||||
u8* AudioLoad_GetFontsForSequence(s32 seqId, u32* outNumFonts);
|
||||
void AudioLoad_DiscardSeqFonts(s32 seqId);
|
||||
void func_8018FA60(u32 tableType, u32 id, s32 arg2, s32 arg3);
|
||||
s32 AudioLoad_SyncIniPlayer(s32 playerIdx, s32 seqId, s32 arg2);
|
||||
s32 AudioLoad_SyncInitSetSeqqPlayerSkipTicks(s32 playerIdx, s32 seqId, s32 skipTicks);
|
||||
void AudioLoad_ProcessLoads(s32 resetStatus);
|
||||
void AudioLoad_SetDmaHandler(DmaHandler callback);
|
||||
void AudioLoad_Init(void* heap, u32 heapSize);
|
||||
void AudioLoad_InitSlowLoads(void);
|
||||
s32 AudioLoad_SlowLoadSample(s32 fontId, s32 instId, s8* isDone);
|
||||
s32 AudioLoad_SlowLoadSeq(s32 seqId, u8* ramAddr, s8* isDone);
|
||||
void AudioLoad_InitAsyncLoads(void);
|
||||
void AudioLoad_LoadPermanentSamples(void);
|
||||
void AudioLoad_ScriptLoad(s32 tableType, s32 id, s8* isDone);
|
||||
void AudioLoad_ProcessScriptLoads(void);
|
||||
void AudioLoad_InitScriptLoads(void);
|
||||
AudioTask* func_80192BE0(void);
|
||||
// void func_80192C00(void);
|
||||
// void func_8019319C(void);
|
||||
@@ -3449,7 +3305,7 @@ AudioTask* func_80192BE0(void);
|
||||
// void func_8019380C(void);
|
||||
// void func_80193858(void);
|
||||
// void func_8019387C(void);
|
||||
// void func_801938A0(void);
|
||||
void Audio_QueueCmdS8(u32 opArgs, s8 data);
|
||||
// void func_801938D0(void);
|
||||
// void func_80193900(void);
|
||||
// void func_80193990(void);
|
||||
@@ -3473,8 +3329,8 @@ AudioTask* func_80192BE0(void);
|
||||
// void func_80194528(void);
|
||||
// void func_80194548(void);
|
||||
// void func_80194568(void);
|
||||
// void func_80194668(void);
|
||||
// void func_801946E4(void);
|
||||
u32 Audio_NextRandom(void);
|
||||
void Audio_InitMesgQueues(void);
|
||||
void Audio_InvalDCache(void* buf, size_t size);
|
||||
void Audio_WritebackDCache(void* buf, size_t size);
|
||||
// void func_80194790(void);
|
||||
@@ -3513,7 +3369,7 @@ void AudioSeq_SequenceChannelDisable(SequenceChannel* channel);
|
||||
// void func_80197B14(void);
|
||||
// void func_80197C0C(void);
|
||||
// void func_80197C8C(void);
|
||||
// void func_80197D24(void);
|
||||
void AudioSeq_SequencePlayerDisableAsFinished(SequencePlayer* seqPlayer);
|
||||
void AudioSeq_SequencePlayerDisable(SequencePlayer* seqPlayer);
|
||||
void AudioSeq_AudioListPushBack(AudioListItem* list, AudioListItem* item);
|
||||
void* AudioSeq_AudioListPopBack(AudioListItem* list);
|
||||
@@ -3535,23 +3391,23 @@ void func_80199268(s32* param_1);
|
||||
// void func_8019A0BC(void);
|
||||
// void func_8019AA3C(void);
|
||||
// void func_8019AAF0(void);
|
||||
// void func_8019AB40(void);
|
||||
// void func_8019AC10(void);
|
||||
void AudioSeq_ResetSequencePlayer(SequencePlayer* seqPlayer);
|
||||
void AudioSeq_InitSequencePlayerChannels(s32 playerIdx);
|
||||
// void func_8019ACEC(void);
|
||||
// void func_8019ADBC(void);
|
||||
void AudioSeq_InitSequencePlayers(void);
|
||||
void func_8019AE40(s32 param_1, s32 param_2, u32 param_3, s32 param_4);
|
||||
void func_8019AEC0(UNK_PTR param_1, UNK_PTR param_2);
|
||||
// void func_8019AF00(void);
|
||||
// void func_8019AF58(void);
|
||||
// void func_8019AFE8(void);
|
||||
// void func_8019B02C(void);
|
||||
// void func_8019B074(void);
|
||||
// void AudioOcarina_MapSongFromNotesToButtons(void);
|
||||
// void func_8019B144(void);
|
||||
// void func_8019B378(void);
|
||||
// void func_8019B38C(void);
|
||||
// void func_8019B3D0(void);
|
||||
// void func_8019B4B8(void);
|
||||
void func_8019B544(u16 arg0);
|
||||
void AudioOcarina_StartDefault(u32 arg0);
|
||||
// void func_8019B568(void);
|
||||
// void func_8019B5AC(void);
|
||||
// void func_8019B5EC(void);
|
||||
@@ -3563,7 +3419,7 @@ void func_8019B544(u16 arg0);
|
||||
// void func_8019C1D0(void);
|
||||
// void func_8019C268(void);
|
||||
// void func_8019C2E4(void);
|
||||
void func_8019C300(s32 arg0);
|
||||
u32 AudioOcarina_SetInstrumentId(u8 arg0);
|
||||
// void func_8019C398(void);
|
||||
// void func_8019C5A0(void);
|
||||
// void func_8019C8D8(void);
|
||||
@@ -3573,12 +3429,12 @@ void func_8019C300(s32 arg0);
|
||||
// void func_8019CEBC(void);
|
||||
// void func_8019CF6C(void);
|
||||
// void func_8019CF78(void);
|
||||
// void func_8019CF9C(void);
|
||||
OcarinaStaff* AudioOcarina_GetPlaybackStaff(void);
|
||||
// void func_8019CFA8(void);
|
||||
// void func_8019D134(void);
|
||||
// void func_8019D26C(void);
|
||||
// void func_8019D488(void);
|
||||
// void func_8019D4F8(void);
|
||||
// void AudioOcarina_TerminaWallValidateNotes(void);
|
||||
void AudioOcarina_TerminaWallGenerateNotes(void);
|
||||
// void AudioOcarina_MemoryGameSetNumNotes(void);
|
||||
// void AudioOcarina_MemoryGameGenerateNotes(void);
|
||||
// void func_8019D600(void);
|
||||
void func_8019D758(void);
|
||||
// void func_8019D864(void);
|
||||
@@ -3607,7 +3463,7 @@ void func_8019F230(void); // cancel sfx
|
||||
// void func_8019F300(void);
|
||||
void func_8019F420(Vec3f* pos, u16 sfxId);
|
||||
void func_8019F4AC(Vec3f* pos, u16 sfxId);
|
||||
void func_8019F540(u8 arg0);
|
||||
void func_8019F540(s8 arg0);
|
||||
void func_8019F570(Vec3f* pos, s8 arg1);
|
||||
// void func_8019F5AC(void);
|
||||
// void func_8019F638(void);
|
||||
@@ -3627,24 +3483,24 @@ void func_8019FDC8(UNK_PTR arg0, u16 sfxId, UNK_TYPE arg2);
|
||||
void func_8019FE74(f32* arg0, f32 arg1, s32 arg2);
|
||||
// void func_8019FEDC(void);
|
||||
// void func_8019FF38(void);
|
||||
// void func_8019FF9C(void);
|
||||
// void func_801A0048(void);
|
||||
// void func_801A00EC(void);
|
||||
void Audio_PlaySfxForRiver(Vec3f* pos, f32 freqScale);
|
||||
// void Audio_PlaySfxForWaterfall(void);
|
||||
// void Audio_StepFreqLerp(void);
|
||||
void func_801A0124(Vec3f* pos, u8 arg1);
|
||||
// void func_801A0184(void);
|
||||
// void func_801A01C4(void);
|
||||
void func_801A0204(s8 seqId);
|
||||
void func_801A0238(s32 arg0, s32 arg1);
|
||||
// void func_801A026C(void);
|
||||
// void func_801A0318(void);
|
||||
// void func_801A046C(void);
|
||||
// void Audio_SetGanonsTowerBgmVolumeLevel(void);
|
||||
// void Audio_SetGanonsTowerBgmVolume(void);
|
||||
// void Audio_UpdateRiverSoundVolumes(void);
|
||||
// void func_801A0554(void);
|
||||
// void func_801A05F0(void);
|
||||
void func_801A0654(Vec3f* arg0, u16 sfxId, s32 arg2);
|
||||
void func_801A0810(Vec3f* arg0, u16 sfxId, u8 arg2);
|
||||
// void func_801A0868(void);
|
||||
// void func_801A09D4(void);
|
||||
// void func_801A0CB0(void);
|
||||
// void Audio_SplitBgmChannels(void);
|
||||
// void func_801A0E44(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
|
||||
// void func_801A1290(void);
|
||||
// void func_801A1348(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
|
||||
@@ -3676,7 +3532,7 @@ void func_801A2C20(void);
|
||||
void func_801A2C88(u16 seqId);
|
||||
void func_801A2D54(u16 seqId);
|
||||
s32 Audio_IsSequencePlaying(u8 seqId);
|
||||
void func_801A2E54(s32 param_1);
|
||||
void func_801A2E54(s32 bgmId);
|
||||
void func_801A2ED8(void);
|
||||
// void func_801A2F88(void);
|
||||
// void func_801A3000(void);
|
||||
@@ -3689,14 +3545,14 @@ void func_801A31EC(u16 seqId, s8 arg1, u8 arg2);
|
||||
// void func_801A3590(void);
|
||||
u8 func_801A3950(s32 playerIndex, s32 isChannelIOSet);
|
||||
u8 func_801A39F8(void);
|
||||
// void func_801A3A7C(void);
|
||||
void func_801A3A7C(s32 arg0);
|
||||
// void func_801A3AC0(void);
|
||||
// void func_801A3AEC(void);
|
||||
void func_801A3AEC(s32 arg0);
|
||||
void func_801A3B48(UNK_TYPE arg0);
|
||||
// void func_801A3B90(void);
|
||||
void func_801A3CD8(s8 param_1);
|
||||
// void func_801A3CF4(void);
|
||||
// void func_801A3D98(void);
|
||||
void func_801A3D98(s8 audioSetting);
|
||||
// void func_801A3E38(void);
|
||||
// void func_801A3EC0(void);
|
||||
void Audio_SetCutsceneFlag(u8 flag);
|
||||
@@ -3704,7 +3560,7 @@ void Audio_SetCutsceneFlag(u8 flag);
|
||||
// void func_801A3FB4(void);
|
||||
// void func_801A3FFC(UNK_TYPE1 param_1);
|
||||
void audio_setBGM(u32 bgmID);
|
||||
// void func_801A4058(void);
|
||||
void func_801A4058(UNK_TYPE arg0);
|
||||
// void func_801A41C8(void);
|
||||
// void func_801A41F8(void);
|
||||
// void func_801A429C(void);
|
||||
@@ -3768,16 +3624,16 @@ void func_801A75E8(u16 sfxId);
|
||||
void func_801A7794(u32 param_1, u32 param_2, u32 param_3);
|
||||
// void func_801A7828(void);
|
||||
// void func_801A787C(void);
|
||||
// void func_801A78E4(void);
|
||||
u8 Audio_IsSfxPlaying(u32 sfxId);
|
||||
// void func_801A794C(void);
|
||||
// void func_801A7B10(void);
|
||||
// void func_801A7D04(void);
|
||||
// void func_801A7D84(void);
|
||||
void Audio_QueueSeqCmd(u32 arg0);
|
||||
void Audio_QueueSeqCmd(u32 cmd);
|
||||
// void func_801A89D0(void);
|
||||
s32 func_801A8A50(s32 param1);
|
||||
// void func_801A8ABC(void);
|
||||
// void func_801A8BD0(void);
|
||||
void Audio_SetVolumeScale(u8 playerIdx, u8 scaleIdx, u8 targetVol, u8 volFadeTimer);
|
||||
// void func_801A8D5C(void);
|
||||
// void func_801A8E90(void);
|
||||
// void func_801A9768(void);
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
#ifndef _ICHAIN_H_
|
||||
#define _ICHAIN_H_
|
||||
#ifndef ICHAIN_H
|
||||
#define ICHAIN_H
|
||||
|
||||
#include "libc/stddef.h"
|
||||
|
||||
|
||||
@@ -37,3 +37,39 @@
|
||||
.set TagHi, $29
|
||||
.set ErrorEPC, $30
|
||||
.set Reserved31, $31
|
||||
|
||||
|
||||
# Float register aliases (o32 ABI, odd ones are rarely used)
|
||||
|
||||
.set $fv0, $f0
|
||||
.set $fv0f, $f1
|
||||
.set $fv1, $f2
|
||||
.set $fv1f, $f3
|
||||
.set $ft0, $f4
|
||||
.set $ft0f, $f5
|
||||
.set $ft1, $f6
|
||||
.set $ft1f, $f7
|
||||
.set $ft2, $f8
|
||||
.set $ft2f, $f9
|
||||
.set $ft3, $f10
|
||||
.set $ft3f, $f11
|
||||
.set $fa0, $f12
|
||||
.set $fa0f, $f13
|
||||
.set $fa1, $f14
|
||||
.set $fa1f, $f15
|
||||
.set $ft4, $f16
|
||||
.set $ft4f, $f17
|
||||
.set $ft5, $f18
|
||||
.set $ft5f, $f19
|
||||
.set $fs0, $f20
|
||||
.set $fs0f, $f21
|
||||
.set $fs1, $f22
|
||||
.set $fs1f, $f23
|
||||
.set $fs2, $f24
|
||||
.set $fs2f, $f25
|
||||
.set $fs3, $f26
|
||||
.set $fs3f, $f27
|
||||
.set $fs4, $f28
|
||||
.set $fs4f, $f29
|
||||
.set $fs5, $f30
|
||||
.set $fs5f, $f31
|
||||
|
||||
+51
-26
@@ -44,44 +44,68 @@
|
||||
|
||||
// linkAge still exists in MM, but is always set to 0 (always adult)
|
||||
// There are remnants of these macros from OOT, but they are essentially useless
|
||||
#define LINK_IS_CHILD (gSaveContext.linkAge == 1)
|
||||
#define LINK_IS_ADULT (gSaveContext.linkAge == 0)
|
||||
#define LINK_IS_CHILD (gSaveContext.save.linkAge == 1)
|
||||
#define LINK_IS_ADULT (gSaveContext.save.linkAge == 0)
|
||||
|
||||
#define CURRENT_DAY (((void)0, gSaveContext.day) % 5)
|
||||
#define CURRENT_DAY (((void)0, gSaveContext.save.day) % 5)
|
||||
|
||||
#define TIME_TO_MINUTES(time) (s32)((time) * ((24 * 60) / 0x10000))
|
||||
#define CLOCK_TIME(hr, min) (s32)(((hr) * 60 + (min)) * 0x10000 / (24 * 60))
|
||||
#define CLOCK_TIME_MINUTE (CLOCK_TIME(0, 1))
|
||||
|
||||
#define TIME_TO_MINUTES_F(time) ((time) * ((24.0f * 60.0f) / 0x10000))
|
||||
#define TIME_TO_MINUTES_F(time) ((time) * ((24.0f * 60.0f) / 0x10000)) // 0.021972656f
|
||||
#define CLOCK_TIME_F(hr, min) (((hr) * 60.0f + (min)) * (0x10000 / (24.0f * 60.0f)))
|
||||
|
||||
#define TIME_TO_MINUTES_ALT_F(time) ((time) / (24.0f * 60.0f / 0x10000))
|
||||
#define TIME_TO_MINUTES_ALT_F(time) ((time) / (0x10000 / (24.0f * 60.0f)))
|
||||
#define CLOCK_TIME_ALT_F(hr, min) (((hr) * 60.0f + (min)) / (24.0f * 60.0f / 0x10000))
|
||||
|
||||
#define SLOT(item) gItemSlots[item]
|
||||
#define AMMO(item) gSaveContext.inventory.ammo[SLOT(item)]
|
||||
#define INV_CONTENT(item) gSaveContext.inventory.items[SLOT(item)]
|
||||
#define AMMO(item) gSaveContext.save.inventory.ammo[SLOT(item)]
|
||||
#define INV_CONTENT(item) gSaveContext.save.inventory.items[SLOT(item)]
|
||||
#define GET_INV_CONTENT(item) ((void)0, gSaveContext.save.inventory.items)[SLOT(item)]
|
||||
|
||||
#define ALL_EQUIP_VALUE_VOID(equip) \
|
||||
((((void)0, gSaveContext.inventory.equipment) & gEquipMasks[equip]) >> gEquipShifts[equip])
|
||||
#define CUR_EQUIP_VALUE_VOID(equip) \
|
||||
((((void)0, gSaveContext.equips.equipment) & gEquipMasks[equip]) >> gEquipShifts[equip])
|
||||
#define CUR_UPG_VALUE_VOID(upg) \
|
||||
((((void)0, gSaveContext.inventory.upgrades) & gUpgradeMasks[upg]) >> gUpgradeShifts[upg])
|
||||
#define INV_CONTENT_VOID(item) ((void)0, gSaveContext.inventory.items)[SLOT(item)]
|
||||
#define CUR_FORM ((gSaveContext.save.playerForm == PLAYER_FORM_HUMAN) ? 0 : gSaveContext.save.playerForm)
|
||||
|
||||
#define CUR_FORM ((gSaveContext.playerForm == PLAYER_FORM_HUMAN) ? 0 : gSaveContext.playerForm)
|
||||
#define GET_SAVE_EQUIPS_EQUIPMENT ((void)0, gSaveContext.save.equips.equipment)
|
||||
#define GET_SAVE_INVENTORY_UPGRADES ((void)0, gSaveContext.save.inventory.upgrades)
|
||||
#define GET_SAVE_INVENTORY_QUEST_ITEMS ((void)0, gSaveContext.save.inventory.questItems)
|
||||
|
||||
#define ALL_EQUIP_VALUE(equip) ((gSaveContext.inventory.equipment & gEquipMasks[equip]) >> gEquipShifts[equip])
|
||||
#define CUR_EQUIP_VALUE(equip) ((gSaveContext.equips.equipment & gEquipMasks[equip]) >> gEquipShifts[equip])
|
||||
#define CUR_UPG_VALUE(upg) ((gSaveContext.inventory.upgrades & gUpgradeMasks[upg]) >> gUpgradeShifts[upg])
|
||||
#define SET_EQUIP_VALUE(equip, value) (gSaveContext.equips.equipment = ((((void)0, gSaveContext.equips.equipment) & (gEquipNegMasks[equip])) | (u16)((u16)(value) << gEquipShifts[equip])))
|
||||
#define CUR_FORM_EQUIP(button) (gSaveContext.equips.buttonItems[CUR_FORM][button])
|
||||
#define CHECK_QUEST_ITEM(item) (((void)0, gSaveContext.inventory.questItems) & gBitFlags[item])
|
||||
#define REMOVE_QUEST_ITEM(item) (gSaveContext.inventory.questItems = (((void)0, gSaveContext.inventory.questItems) & (-1 - gBitFlags[item])))
|
||||
#define CHECK_DUNGEON_ITEM(item, dungeonIndex) (gSaveContext.inventory.dungeonItems[(void)0, dungeonIndex] & gBitFlags[item])
|
||||
#define DUNGEON_KEY_COUNT(dungeonIndex) (gSaveContext.inventory.dungeonKeys[(void)0, dungeonIndex])
|
||||
#define GET_CUR_EQUIP_VALUE(equip) ((GET_SAVE_EQUIPS_EQUIPMENT & gEquipMasks[equip]) >> gEquipShifts[equip])
|
||||
|
||||
#define CUR_UPG_VALUE(upg) ((gSaveContext.save.inventory.upgrades & gUpgradeMasks[upg]) >> gUpgradeShifts[upg])
|
||||
#define GET_CUR_UPG_VALUE(upg) ((GET_SAVE_INVENTORY_UPGRADES & gUpgradeMasks[upg]) >> gUpgradeShifts[upg])
|
||||
|
||||
#define SET_EQUIP_VALUE(equip, value) (gSaveContext.save.equips.equipment = ((GET_SAVE_EQUIPS_EQUIPMENT & gEquipNegMasks[equip]) | (u16)((u16)(value) << gEquipShifts[equip])))
|
||||
|
||||
#define BUTTON_ITEM_EQUIP(form, button) (gSaveContext.save.equips.buttonItems[form][button])
|
||||
#define CUR_FORM_EQUIP(button) BUTTON_ITEM_EQUIP(CUR_FORM, button)
|
||||
|
||||
#define C_SLOT_EQUIP(form, button) (gSaveContext.save.equips.cButtonSlots[form][button])
|
||||
#define CHECK_QUEST_ITEM(item) (GET_SAVE_INVENTORY_QUEST_ITEMS & gBitFlags[item])
|
||||
#define REMOVE_QUEST_ITEM(item) (gSaveContext.save.inventory.questItems = (GET_SAVE_INVENTORY_QUEST_ITEMS & (-1 - gBitFlags[item])))
|
||||
|
||||
#define CHECK_DUNGEON_ITEM(item, dungeonIndex) (gSaveContext.save.inventory.dungeonItems[(void)0, dungeonIndex] & gBitFlags[item])
|
||||
#define DUNGEON_KEY_COUNT(dungeonIndex) (gSaveContext.save.inventory.dungeonKeys[(void)0, dungeonIndex])
|
||||
|
||||
#define GET_CUR_FORM_BTN_ITEM(btn) ((u8)((btn) == EQUIP_SLOT_B ? BUTTON_ITEM_EQUIP(CUR_FORM, btn) : BUTTON_ITEM_EQUIP(0, btn)))
|
||||
|
||||
#define SET_CUR_FORM_BTN_ITEM(btn, item) \
|
||||
do { \
|
||||
if ((btn) == EQUIP_SLOT_B) { \
|
||||
BUTTON_ITEM_EQUIP(CUR_FORM, (btn)) = (item); \
|
||||
} else { \
|
||||
BUTTON_ITEM_EQUIP(0, (btn)) = (item); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define STOLEN_ITEM_NONE (0)
|
||||
|
||||
#define STOLEN_ITEM_1 ((gSaveContext.save.stolenItems & 0xFF000000) >> 0x18)
|
||||
#define STOLEN_ITEM_2 ((gSaveContext.save.stolenItems & 0x00FF0000) >> 0x10)
|
||||
|
||||
#define SET_STOLEN_ITEM_1(itemId) \
|
||||
(gSaveContext.save.stolenItems = (gSaveContext.save.stolenItems & ~0xFF000000) | ((itemId & 0xFF) << 0x18))
|
||||
#define SET_STOLEN_ITEM_2(itemId) \
|
||||
(gSaveContext.save.stolenItems = (gSaveContext.save.stolenItems & ~0x00FF0000) | ((itemId & 0xFF) << 0x10))
|
||||
|
||||
#define CAPACITY(upg, value) gUpgradeCapacities[upg][value]
|
||||
#define CUR_CAPACITY(upg) CAPACITY(upg, CUR_UPG_VALUE(upg))
|
||||
@@ -153,6 +177,7 @@ extern GraphicsContext* __gfxCtx;
|
||||
#define ALIGN8(val) (((val) + 7) & ~7)
|
||||
#define ALIGN16(val) (((val) + 0xF) & ~0xF)
|
||||
#define ALIGN64(val) (((val) + 0x3F) & ~0x3F)
|
||||
#define ALIGN256(val) (((val) + 0xFF) & ~0xFF)
|
||||
|
||||
#define SQ(x) ((x) * (x))
|
||||
#define ABS(x) ((x) >= 0 ? (x) : -(x))
|
||||
@@ -181,4 +206,4 @@ extern GraphicsContext* __gfxCtx;
|
||||
#define ALIGNED8
|
||||
#endif
|
||||
|
||||
#endif // _MACROS_H_
|
||||
#endif // MACROS_H
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
#ifndef MESSAGE_DATA_STATIC_H
|
||||
#define MESSAGE_DATA_STATIC_H
|
||||
|
||||
#include "PR/ultratypes.h"
|
||||
|
||||
typedef struct MessageTableEntry{
|
||||
/* 0x0 */ u16 textId;
|
||||
/* 0x2 */ u8 typePos;
|
||||
/* 0x4 */ const char* segment;
|
||||
} MessageTableEntry; // size = 0x8;
|
||||
|
||||
#endif
|
||||
@@ -1,7 +1,8 @@
|
||||
#ifndef _SEGMENT_SYMBOLS_H_
|
||||
#define _SEGMENT_SYMBOLS_H_
|
||||
#ifndef SEGMENT_SYMBOLS_H
|
||||
#define SEGMENT_SYMBOLS_H
|
||||
|
||||
#include "z64.h"
|
||||
#include "libc/stddef.h"
|
||||
#include "PR/ultratypes.h"
|
||||
|
||||
#define DECLARE_SEGMENT(name) \
|
||||
extern u8 _##name##SegmentStart[]; \
|
||||
|
||||
+28
-80
@@ -43,7 +43,6 @@ extern StackEntry* sStackInfoListEnd;
|
||||
// extern UNK_TYPE1 sGfxPrintUnkTLUT;
|
||||
// extern UNK_TYPE1 sGfxPrintUnkData;
|
||||
// extern UNK_TYPE1 sGfxPrintFontData;
|
||||
// extern UNK_TYPE4 D_80097500;
|
||||
// extern UNK_TYPE4 D_80097524;
|
||||
// extern u32 sRandInt;
|
||||
extern OSViMode osViModeNtscHpf1;
|
||||
@@ -428,7 +427,6 @@ extern Color_RGBA8 actorDefaultHitColor;
|
||||
// extern UNK_TYPE2 D_801AEE4C;
|
||||
extern Gfx D_801AEF88[];
|
||||
extern Gfx D_801AEFA0[];
|
||||
// extern UNK_TYPE1 D_801AEFA8;
|
||||
// extern UNK_TYPE1 D_801AEFB8;
|
||||
// extern UNK_TYPE1 D_801AEFBC;
|
||||
// extern UNK_TYPE1 D_801AEFC0;
|
||||
@@ -895,7 +893,7 @@ extern s32 graphNumGameStates;
|
||||
// extern UNK_TYPE2 D_801BDA7C;
|
||||
extern s32 D_801BDA9C;
|
||||
extern UNK_TYPE4 D_801BDAA0;
|
||||
extern UNK_TYPE4 D_801BDAA4;
|
||||
extern s32 D_801BDAA4;
|
||||
// extern UNK_TYPE2 D_801BDAA8;
|
||||
// extern UNK_TYPE2 D_801BDAAA;
|
||||
// extern UNK_TYPE2 D_801BDAAC;
|
||||
@@ -910,9 +908,7 @@ extern UNK_TYPE4 D_801BDAA4;
|
||||
// extern UNK_TYPE4 D_801BDACC;
|
||||
// extern UNK_TYPE4 D_801BDAF0;
|
||||
// extern UNK_TYPE4 D_801BDAF8;
|
||||
// extern UNK_TYPE1 D_801BDB00;
|
||||
// extern UNK_TYPE1 D_801BDB08;
|
||||
// extern UNK_TYPE1 D_801BDB18;
|
||||
|
||||
extern u8 kanfontOrdering[92];
|
||||
// extern UNK_TYPE4 D_801BDB90;
|
||||
// extern UNK_TYPE4 D_801BDB94;
|
||||
@@ -1353,12 +1349,6 @@ extern SceneTableEntry gSceneTable[];
|
||||
extern UNK_PTR D_801C5C50;
|
||||
// extern UNK_TYPE1 D_801C5C9C;
|
||||
extern UNK_PTR D_801C5CB0;
|
||||
extern MtxF sMtxFClear;
|
||||
// extern UNK_TYPE1 D_801C5D10;
|
||||
// extern UNK_TYPE1 D_801C5D20;
|
||||
// extern UNK_TYPE1 D_801C5D60;
|
||||
// extern UNK_TYPE1 D_801C5D80;
|
||||
extern Vec3f D_801C5DB0;
|
||||
// extern UNK_TYPE1 D_801C5DD0;
|
||||
// extern UNK_TYPE1 D_801C5DE0;
|
||||
// extern UNK_TYPE1 D_801C5DF0;
|
||||
@@ -1370,36 +1360,7 @@ extern s32 D_801C5E9C[]; // D_801C5E9C
|
||||
extern s32 D_801C5EB0[]; // D_801C5EB0
|
||||
extern s16 D_801C5EC4[]; // D_801C5EC4
|
||||
extern struct_801C5F44 D_801C5F44[]; // D_801C5F44
|
||||
// extern UNK_TYPE4 D_801C5FC0;
|
||||
// extern UNK_TYPE4 D_801C5FC4;
|
||||
// extern UNK_TYPE4 D_801C5FC8;
|
||||
// extern UNK_TYPE4 D_801C5FCC;
|
||||
// extern UNK_TYPE4 D_801C5FD0;
|
||||
// extern UNK_TYPE2 D_801C66D0;
|
||||
// extern UNK_TYPE4 D_801C6798;
|
||||
// extern UNK_TYPE1 D_801C67B0;
|
||||
// extern UNK_TYPE4 D_801C67C8;
|
||||
// extern UNK_TYPE4 D_801C67CC;
|
||||
// extern UNK_TYPE4 D_801C67E8;
|
||||
// extern UNK_TYPE4 D_801C67F0;
|
||||
// extern UNK_TYPE4 D_801C67F4;
|
||||
// extern UNK_TYPE1 D_801C6818;
|
||||
// extern UNK_TYPE4 D_801C6838;
|
||||
// extern UNK_TYPE1 D_801C6840;
|
||||
// extern UNK_TYPE1 D_801C6850;
|
||||
// extern UNK_TYPE1 D_801C6870;
|
||||
// extern UNK_TYPE1 D_801C6890;
|
||||
// extern UNK_TYPE1 D_801C6898;
|
||||
// extern UNK_TYPE1 D_801C68C0;
|
||||
extern Inventory gSaveDefaultInventory;
|
||||
extern u16 gSaveDefaultChecksum;
|
||||
// extern UNK_TYPE1 D_801C6970;
|
||||
// extern UNK_TYPE1 D_801C6998;
|
||||
extern Inventory D_801C69BC;
|
||||
extern u16 D_801C6A44;
|
||||
// extern UNK_TYPE1 D_801C6A48;
|
||||
// extern UNK_TYPE1 D_801C6A50;
|
||||
// extern UNK_TYPE1 D_801C6A58;
|
||||
|
||||
// extern UNK_TYPE1 D_801C6A70;
|
||||
// extern UNK_TYPE2 D_801C6A74;
|
||||
// extern UNK_TYPE2 D_801C6A78;
|
||||
@@ -1413,9 +1374,7 @@ extern u16 D_801C6A44;
|
||||
// extern UNK_TYPE1 D_801C6A98;
|
||||
// extern UNK_TYPE1 D_801C6AB8;
|
||||
// extern UNK_TYPE1 D_801C6B28;
|
||||
// extern UNK_TYPE1 D_801C6B98;
|
||||
// extern UNK_TYPE1 D_801CED40;
|
||||
// extern UNK_TYPE1 D_801CFB08;
|
||||
// extern UNK_TYPE2 D_801CFC78;
|
||||
// extern UNK_TYPE1 D_801CFC7A;
|
||||
// extern UNK_TYPE1 D_801CFC7C;
|
||||
@@ -1425,8 +1384,8 @@ extern u16 D_801C6A44;
|
||||
// extern UNK_TYPE1 D_801CFC8C;
|
||||
// extern UNK_TYPE1 D_801CFC8E;
|
||||
// extern UNK_TYPE1 D_801CFC92;
|
||||
// extern UNK_TYPE1 D_801CFC98;
|
||||
// extern UNK_TYPE2 D_801CFCA4;
|
||||
extern u8 D_801CFC98;
|
||||
extern s16 D_801CFCA4[9];
|
||||
// extern UNK_TYPE2 D_801CFCAC;
|
||||
// extern UNK_TYPE1 D_801CFCB8;
|
||||
// extern UNK_TYPE2 D_801CFCD8;
|
||||
@@ -1518,11 +1477,11 @@ extern char D_801D039C[];
|
||||
// extern UNK_TYPE1 D_801D0428;
|
||||
// extern UNK_TYPE1 D_801D045A;
|
||||
// extern UNK_TYPE1 D_801D0462;
|
||||
// extern UNK_TYPE1 D_801D0468;
|
||||
//extern UNK_TYPE1 D_801D0468;
|
||||
// extern UNK_TYPE1 D_801D0470;
|
||||
extern char D_801D06F0[];
|
||||
// extern char D_801D06F0[];
|
||||
// extern UNK_TYPE1 D_801D0710;
|
||||
extern char D_801D0714[];
|
||||
// extern char D_801D0714[];
|
||||
// extern UNK_TYPE1 D_801D07C4;
|
||||
// extern UNK_TYPE1 D_801D07DC;
|
||||
// extern UNK_TYPE1 D_801D080C;
|
||||
@@ -1617,21 +1576,11 @@ extern Vec3f gZeroVec3f;
|
||||
extern Vec3s gZeroVec3s;
|
||||
extern Mtx gIdentityMtx;
|
||||
extern MtxF gIdentityMtxF;
|
||||
// extern u64* initialgspUcodeText;
|
||||
// extern u64* initialgspUcodeData;
|
||||
// extern UNK_TYPE1 D_801D1E70;
|
||||
// extern UNK_TYPE1 gLowPassFilterData;
|
||||
// extern UNK_TYPE1 gHighPassFilterData;
|
||||
// extern UNK_TYPE1 gBandStopFilterData;
|
||||
// extern UNK_TYPE1 gBandPassFilterData;
|
||||
// extern UNK_TYPE1 gSawtoothWaveSample;
|
||||
// extern UNK_TYPE1 gTriangleWaveSample;
|
||||
// extern UNK_TYPE1 gSineWaveSample;
|
||||
// extern UNK_TYPE1 gSquareWaveSample;
|
||||
// extern UNK_TYPE1 gWhiteNoiseSample;
|
||||
// extern UNK_TYPE1 D_801D4790;
|
||||
// extern UNK_TYPE1 gEighthPulseWaveSample;
|
||||
// extern UNK_TYPE1 gQuarterPulseWaveSample;
|
||||
extern s16 gLowPassFilterData[];
|
||||
extern s16 gHighPassFilterData[];
|
||||
extern s16 gBandStopFilterData[];
|
||||
extern s16 gBandPassFilterData[];
|
||||
extern s16* gWaveSamples[9];
|
||||
extern UNK_PTR D_801D4D98;
|
||||
extern UNK_PTR D_801D4DB0;
|
||||
@@ -1659,7 +1608,7 @@ extern f32 gDefaultPanVolume[];
|
||||
// extern UNK_TYPE1 D_801D5FD4;
|
||||
extern UNK_PTR D_801D5FE0;
|
||||
// extern UNK_TYPE1 D_801D5FE4;
|
||||
// extern UNK_TYPE4 D_801D5FE8;
|
||||
extern s32 gAudioContextInitalized;
|
||||
// extern UNK_TYPE4 D_801D5FEC;
|
||||
// extern UNK_TYPE4 D_801D5FF0;
|
||||
// extern UNK_TYPE4 D_801D5FF4;
|
||||
@@ -1781,11 +1730,11 @@ extern UNK_PTR D_801D84F0;
|
||||
// extern UNK_TYPE2 D_801D853E;
|
||||
// extern UNK_TYPE1 D_801D8544;
|
||||
extern UNK_PTR D_801D889C;
|
||||
extern UNK_PTR D_801D88A0;
|
||||
extern u8* gScarecrowSpawnSongPtr;
|
||||
extern UNK_PTR D_801D88A4;
|
||||
// extern UNK_TYPE1 D_801D88A8;
|
||||
// extern UNK_TYPE1 D_801D88B8;
|
||||
// extern UNK_TYPE1 D_801D8A48;
|
||||
extern OcarinaSongButtons gOcarinaSongButtons[24];
|
||||
// extern UNK_TYPE1 D_801D8B20;
|
||||
extern UNK_PTR D_801D8B24;
|
||||
// extern UNK_TYPE2 D_801D8B28;
|
||||
@@ -1840,7 +1789,7 @@ extern s8 D_801DB4B8;
|
||||
// extern UNK_TYPE1 D_801DB8B8;
|
||||
// extern UNK_TYPE1 D_801DB900;
|
||||
extern UNK_PTR D_801DB930;
|
||||
extern AudioSpec D_801DB958[21];
|
||||
extern AudioSpec gAudioSpecs[21];
|
||||
|
||||
// rodata
|
||||
extern f32 D_801DBDF0;
|
||||
@@ -3019,7 +2968,7 @@ extern f32 D_801E05B4;
|
||||
extern f32 D_801E05B8;
|
||||
extern f32 D_801E05D0;
|
||||
extern f32 D_801E05D4;
|
||||
// extern UNK_TYPE1 D_801E0BD0;
|
||||
extern const u16 gAudioEnvironmentalSfx[];
|
||||
// extern UNK_TYPE1 D_801E0BFC;
|
||||
extern f32 D_801E0CEC;
|
||||
extern f32 D_801E0CF0;
|
||||
@@ -3073,10 +3022,10 @@ extern const s16 gAudioTatumInit[];
|
||||
extern const AudioContextInitSizes gAudioContextInitSizes;
|
||||
// extern UNK_TYPE4 D_801E1108;
|
||||
// extern UNK_TYPE4 D_801E110C;
|
||||
// extern UNK_TYPE2 gSoundFontTable;
|
||||
// extern UNK_TYPE1 gSequenceFontTable;
|
||||
// extern UNK_TYPE2 gSequenceTable;
|
||||
// extern UNK_TYPE1 gSampleBankTable;
|
||||
extern u8 gSoundFontTable[];
|
||||
extern u8 gSequenceFontTable[];
|
||||
extern u8 gSequenceTable[];
|
||||
extern u8 gSampleBankTable[];
|
||||
extern u64 aspMainDataStart[];
|
||||
|
||||
// bss
|
||||
@@ -3245,7 +3194,7 @@ extern s16 D_801F4E7A;
|
||||
// extern UNK_TYPE1 D_801F4F66;
|
||||
// extern UNK_TYPE1 D_801F4F68;
|
||||
// extern UNK_TYPE1 D_801F4F6A;
|
||||
extern LightsBuffer sLightsBuffer;
|
||||
// extern LightsBuffer sLightsBuffer;
|
||||
// extern UNK_TYPE1 D_801F5130;
|
||||
// extern UNK_TYPE1 D_801F5270;
|
||||
// extern UNK_TYPE1 D_801F528E;
|
||||
@@ -3269,7 +3218,6 @@ extern LightsBuffer sLightsBuffer;
|
||||
// extern UNK_TYPE1 D_801F59F0;
|
||||
// extern UNK_TYPE1 D_801F59F4;
|
||||
// extern UNK_TYPE1 D_801F59F8;
|
||||
// extern UNK_TYPE1 D_801F5AC0;
|
||||
// extern UNK_TYPE1 D_801F69D0;
|
||||
// extern UNK_TYPE1 D_801F6A10;
|
||||
// extern UNK_TYPE1 D_801F6AD4;
|
||||
@@ -3297,9 +3245,9 @@ extern ShrinkWindowContext gShrinkWindowContext;
|
||||
extern ShrinkWindowContext* gShrinkWindowContextPtr;
|
||||
// extern UNK_TYPE4 D_801F6B50;
|
||||
// extern UNK_TYPE1 D_801F6B58;
|
||||
extern FaultAddrConvClient sKaleidoAreaFaultClient;
|
||||
extern void (*sKaleidoScopeUpdateFunc)(GlobalContext* globalCtx);
|
||||
extern void (*sKaleidoScopeDrawFunc)(GlobalContext* globalCtx);
|
||||
extern FaultAddrConvClient sKaleidoAreaFaultClient;
|
||||
// extern UNK_TYPE1 D_801F6C10;
|
||||
extern Input D_801F6C18;
|
||||
// extern UNK_TYPE1 D_801F6C30;
|
||||
@@ -3470,7 +3418,7 @@ extern StackEntry sys_flashromStackEntry;
|
||||
extern OSThread sys_flashromOSThread;
|
||||
extern s80185D40 D_801FD008;
|
||||
extern OSMesg D_801FD034;
|
||||
// extern UNK_TYPE1 D_801FD120;
|
||||
extern s32 D_801FD120;
|
||||
// extern UNK_TYPE1 D_801FD140;
|
||||
// extern UNK_TYPE1 D_801FD158;
|
||||
// extern UNK_TYPE1 D_801FD198;
|
||||
@@ -3597,10 +3545,10 @@ extern SoundRequest D_801FE7C0[1];
|
||||
// extern UNK_TYPE1 D_80200BCE;
|
||||
// extern UNK_TYPE1 D_80200BD0;
|
||||
extern AudioContext gAudioContext; // at 0x80200C70
|
||||
// extern UNK_TYPE4 D_80208E68;
|
||||
// extern UNK_TYPE4 D_80208E6C;
|
||||
// extern UNK_TYPE4 D_80208E70;
|
||||
// extern UNK_TYPE4 D_80208E74;
|
||||
extern void (*D_80208E68)(void);
|
||||
extern u32 (*D_80208E6C)(s8 value, SequenceChannel* channel);
|
||||
extern s32 (*D_80208E70)(SoundFontSample*, s32, s8, s32);
|
||||
extern Acmd* (*D_80208E74)(Acmd*, s32, s32);
|
||||
|
||||
// post-code buffers
|
||||
extern u8 gGfxSPTaskYieldBuffer[OS_YIELD_DATA_SIZE];
|
||||
|
||||
+102
-96
@@ -21,6 +21,7 @@
|
||||
#include "ichain.h"
|
||||
#include "sequence.h"
|
||||
#include "sfx.h"
|
||||
#include "message_data_static.h"
|
||||
|
||||
#include "z64actor.h"
|
||||
#include "z64animation.h"
|
||||
@@ -36,8 +37,11 @@
|
||||
#include "z64object.h"
|
||||
#include "z64ocarina.h"
|
||||
#include "z64player.h"
|
||||
#include "z64scene.h"
|
||||
#include "z64save.h"
|
||||
#include "z64scene.h"
|
||||
#include "z64schedule.h"
|
||||
#include "z64skin.h"
|
||||
#include "z64subs.h"
|
||||
#include "z64transition.h"
|
||||
#include "regs.h"
|
||||
|
||||
@@ -139,15 +143,21 @@ typedef struct {
|
||||
/* 0x4 */ f32 dynamicSizeStep;
|
||||
/* 0x8 */ u8 state;
|
||||
/* 0x9 */ u8 sizeGrowsCos2;
|
||||
/* 0xA */ u8 unkA;
|
||||
/* 0xA */ u8 colorsIndex;
|
||||
/* 0xB */ u8 flags;
|
||||
/* 0xC */ u8 unkC;
|
||||
/* 0xC */ u8 lightParamsIndex;
|
||||
} FireObjInitParams; // size = 0xD
|
||||
|
||||
typedef struct {
|
||||
typedef struct FireObjColors {
|
||||
/* 0x0 */ Color_RGBA8 primColor;
|
||||
/* 0x4 */ u8 unk4;
|
||||
/* 0x4 */ u8 lod;
|
||||
/* 0x5 */ Color_RGB8 envColor;
|
||||
} FireObjColors; // size = 0x8
|
||||
|
||||
typedef struct FireObjLightParams {
|
||||
/* 0x0 */ s16 radius;
|
||||
/* 0x2 */ Color_RGB8 color;
|
||||
/* 0x5 */ Color_RGB8 maxColorAdj;
|
||||
} FireObjLightParams; // size = 0x8
|
||||
|
||||
#define FONT_CHAR_TEX_WIDTH 16
|
||||
@@ -166,7 +176,7 @@ typedef struct {
|
||||
} msgBuf;
|
||||
/* 0x11D80 */ u8* messageStart;
|
||||
/* 0x11D84 */ u8* messageEnd;
|
||||
/* 0x11D88 */ u8 unk_11D88;
|
||||
/* 0x11D88 */ u8 unk_11D88; // current Char Buffer ?
|
||||
} Font; // size = 0x11D8C
|
||||
|
||||
// Game Info aka. Static Context
|
||||
@@ -306,19 +316,6 @@ typedef struct {
|
||||
/* 0x3 */ s8 pillarboxMagnitude;
|
||||
} ShrinkWindowContext; // size = 0x4
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8* readBuff;
|
||||
/* 0x04 */ u32* flashReadBuff;
|
||||
/* 0x08 */ char unk_08[4];
|
||||
/* 0x0C */ s16 status;
|
||||
/* 0x10 */ u32 curPage;
|
||||
/* 0x14 */ u32 numPages;
|
||||
/* 0x18 */ OSTime unk_18;
|
||||
/* 0x20 */ s16 unk_20;
|
||||
/* 0x22 */ s16 unk_22;
|
||||
/* 0x24 */ s16 unk_24;
|
||||
} SramContext; // size = 0x28
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ s32 topY;
|
||||
/* 0x4 */ s32 bottomY;
|
||||
@@ -831,45 +828,91 @@ typedef struct {
|
||||
typedef struct {
|
||||
/* 0x00000 */ View view;
|
||||
/* 0x00168 */ Font font;
|
||||
/* 0x11EF4 */ char unk_11EF4[0x10];
|
||||
/* 0x11F04 */ u16 unk11F04;
|
||||
/* 0x11EF4 */ char unk_11EF4[0x4];
|
||||
/* 0x11EF8 */ UNK_PTR unk11EF8;
|
||||
/* 0x11EFC */ UNK_TYPE1 unk11EFC[0x8];
|
||||
/* 0x11F04 */ u16 currentTextId;
|
||||
/* 0x11F06 */ UNK_TYPE1 pad11F06[0x4];
|
||||
/* 0x11F0A */ u8 unk11F0A;
|
||||
/* 0x11F0B */ UNK_TYPE1 pad11F0B[0x5];
|
||||
/* 0x11F10 */ s32 unk11F10;
|
||||
/* 0x11F14 */ UNK_TYPE1 pad11F14[0xE];
|
||||
/* 0x11F14 */ UNK_TYPE1 pad11F14[0x6];
|
||||
/* 0x11F1A */ s16 unk11F1A[3];
|
||||
/* 0x11F20 */ UNK_TYPE1 pad11F20[0x2];
|
||||
/* 0x11F22 */ u8 msgMode;
|
||||
/* 0x11F23 */ UNK_TYPE1 pad11F23[0xFD];
|
||||
/* 0x11F23 */ UNK_TYPE1 pad11F23;
|
||||
/* 0x11F24 */ union {
|
||||
u8 schar[206];
|
||||
u16 wchar[103];
|
||||
} decodedBuffer;
|
||||
/* 0x11FF2 */ u16 unk11FF2;
|
||||
/* 0x11FF4 */ s16 unk11FF4;
|
||||
/* 0x11FF6 */ s16 unk11FF6;
|
||||
/* 0x11FF8 */ UNK_TYPE1 unk11FF8[0x6];
|
||||
/* 0x11FFE */ s16 unk11FFE[0x3];
|
||||
/* 0x12004 */ s16 unk12004;
|
||||
/* 0x12006 */ s16 unk12006;
|
||||
/* 0x12008 */ u8 unk12008[0x16];
|
||||
/* 0x1201E */ s16 unk1201E;
|
||||
/* 0x12020 */ u8 unk12020;
|
||||
/* 0x12021 */ u8 choiceIndex;
|
||||
/* 0x12022 */ u8 unk12022;
|
||||
/* 0x12023 */ u8 unk12023;
|
||||
/* 0x12024 */ UNK_TYPE1 unk12024[0x6];
|
||||
/* 0x12024 */ s16 unk12024;
|
||||
/* 0x12026 */ u16 unk12026;
|
||||
/* 0x12028 */ u16 songPlayed;
|
||||
/* 0x1202A */ u16 ocarinaMode;
|
||||
/* 0x1202C */ u16 ocarinaAction;
|
||||
/* 0x1202E */ u16 unk1202E;
|
||||
/* 0x12030 */ s16 unk_12030;
|
||||
/* 0x12032 */ UNK_TYPE1 unk_12032[0x2];
|
||||
/* 0x12034 */ UNK_TYPE1 pad12034[0x10];
|
||||
/* 0x12034 */ UNK_TYPE1 pad12034[0x6];
|
||||
/* 0x1203A */ s16 unk1203A;
|
||||
/* 0x1203C */ s16 unk1203C;
|
||||
/* 0x1203E */ s16 pad1203E;
|
||||
/* 0x12040 */ Actor* unkActor;
|
||||
/* 0x12044 */ s16 unk12044;
|
||||
/* 0x12046 */ UNK_TYPE1 pad12046[0x2];
|
||||
/* 0x12046 */ s16 unk12046;
|
||||
/* 0x12048 */ u8 unk12048; // EnKakasi
|
||||
/* 0x12049 */ UNK_TYPE1 pad12049[0xB];
|
||||
/* 0x12054 */ s16 unk12054; // First digit in lottery code guess
|
||||
/* 0x12056 */ s16 unk12056; // Second digit lottery code guess
|
||||
/* 0x12058 */ s16 unk12058; // Third digit lottery code guess
|
||||
/* 0x1205A */ UNK_TYPE1 pad1205A[0x10];
|
||||
/* 0x12049 */ UNK_TYPE1 pad12049[0x1];
|
||||
/* 0x1204A */ s16 unk1204A[0x5];
|
||||
/* 0x12054 */ s16 unk12054[3]; // First, second and third digits in lottery code guess
|
||||
/* 0x1205A */ UNK_TYPE1 pad1205A[0xE];
|
||||
/* 0x12068 */ s16 unk12068;
|
||||
/* 0x1206A */ s16 unk1206A;
|
||||
/* 0x1206C */ s32 unk1206C;
|
||||
/* 0x12070 */ s32 unk12070;
|
||||
/* 0x12074 */ UNK_TYPE1 pad12074[0x4];
|
||||
/* 0x12078 */ s32 bankRupeesSelected;
|
||||
/* 0x1207C */ s32 bankRupees;
|
||||
/* 0x12080 */ UNK_TYPE1 pad12080[0x31];
|
||||
/* 0x1207C */ s32 bankRupees;
|
||||
/* 0x12080 */ MessageTableEntry* messageEntryTable;
|
||||
/* 0x12084 */ MessageTableEntry* messageEntryTableNes;
|
||||
/* 0x12088 */ UNK_TYPE4 unk12088;
|
||||
/* 0x1208C */ MessageTableEntry* messageTableStaff;
|
||||
/* 0x12090 */ s16 unk12090;
|
||||
/* 0x12092 */ s16 unk12092;
|
||||
/* 0x12094 */ s8 unk12094;
|
||||
/* 0x12095 */ UNK_TYPE1 unk12095[0x3];
|
||||
/* 0x12098 */ f32 unk12098; // Text_Scale?
|
||||
/* 0x1209C */ s16 unk1209C;
|
||||
/* 0x1209E */ UNK_TYPE1 unk1209E[0x2];
|
||||
/* 0x120A0 */ s32 unk120A0;
|
||||
/* 0x120A4 */ UNK_TYPE1 unk120A4[0xC];
|
||||
/* 0x120B0 */ u8 unk120B0;
|
||||
/* 0x120B1 */ u8 unk120B1;
|
||||
/* 0x120B2 */ UNK_TYPE1 pad120B2[0x22];
|
||||
/* 0x120D4 */ UNK_TYPE2 unk120D4;
|
||||
/* 0x120D6 */ UNK_TYPE2 unk120D6;
|
||||
/* 0x120B2 */ u8 unk120B2[0xC];
|
||||
/* 0x120BE */ s16 unk120BE;
|
||||
/* 0x120C0 */ s16 unk120C0;
|
||||
/* 0x120C2 */ s16 unk120C2;
|
||||
/* 0x120C4 */ s32 unk120C4;
|
||||
/* 0x120C8 */ s16 unk120C8;
|
||||
/* 0x120CA */ s16 unk120CA;
|
||||
/* 0x120CC */ s16 unk120CC;
|
||||
/* 0x120CE */ s16 unk120CE;
|
||||
/* 0x120D0 */ s16 unk120D0;
|
||||
/* 0x120D2 */ s16 unk120D2;
|
||||
/* 0x120D4 */ s16 unk120D4;
|
||||
/* 0x120D6 */ s16 unk120D6;
|
||||
/* 0x120D8 */ UNK_TYPE1 pad120D8[0x8];
|
||||
} MessageContext; // size = 0x120E0
|
||||
|
||||
@@ -1114,7 +1157,7 @@ typedef struct {
|
||||
typedef enum {
|
||||
/* 0 */ DISTORTION_INACTIVE,
|
||||
/* 1 */ DISTORTION_ACTIVE,
|
||||
/* 2 */ DISTORTION_SETUP,
|
||||
/* 2 */ DISTORTION_SETUP
|
||||
} DistortionState;
|
||||
|
||||
typedef struct {
|
||||
@@ -1158,8 +1201,8 @@ typedef enum {
|
||||
|
||||
struct FireObjLight {
|
||||
/* 0x00 */ LightNode* light;
|
||||
/* 0x04 */ LightInfoPositional lightInfo;
|
||||
/* 0x12 */ u8 unk12;
|
||||
/* 0x04 */ LightInfo lightInfo;
|
||||
/* 0x12 */ u8 lightParamsIndex;
|
||||
}; // size = 0x13
|
||||
|
||||
#define OS_SC_RETRACE_MSG 1
|
||||
@@ -1181,7 +1224,7 @@ typedef struct {
|
||||
/* 0x12C */ UNK_TYPE1 pad_12C[0x4];
|
||||
/* 0x130 */ OSThread thread;
|
||||
} AudioMgr; // size = 0x2E0
|
||||
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ MtxF displayMatrix;
|
||||
/* 0x40 */ Actor* actor;
|
||||
@@ -1210,7 +1253,7 @@ struct FireObj {
|
||||
/* 0x24 */ u8 state; // 0 - growing, 1 - shrinking, 2 - fully lit, 3 - not lit
|
||||
/* 0x25 */ u8 sizeGrowsCos2;
|
||||
/* 0x26 */ u8 unk26;
|
||||
/* 0x27 */ u8 unk27;
|
||||
/* 0x27 */ u8 colorsIndex;
|
||||
/* 0x28 */ u8 flags; // bit 0 - ?, bit 1 - ?
|
||||
/* 0x29 */ UNK_TYPE1 pad29[0x1];
|
||||
/* 0x2A */ s16 ignitionDelay;
|
||||
@@ -1280,7 +1323,7 @@ struct GlobalContext {
|
||||
/* 0x18760 */ DoorContext doorCtx;
|
||||
/* 0x18768 */ void (*playerInit)(Player* player, struct GlobalContext* globalCtx, FlexSkeletonHeader* skelHeader);
|
||||
/* 0x1876C */ void (*playerUpdate)(Player* player, struct GlobalContext* globalCtx, Input* input);
|
||||
/* 0x18770 */ void* unk_18770; //! @TODO: Determine function prototype
|
||||
/* 0x18770 */ void (*unk_18770)(struct GlobalContext* globalCtx, Player* player);
|
||||
/* 0x18774 */ s32 (*startPlayerFishing)(struct GlobalContext* globalCtx);
|
||||
/* 0x18778 */ s32 (*grabPlayer)(struct GlobalContext* globalCtx, Player* player);
|
||||
/* 0x1877C */ s32 (*startPlayerCutscene)(struct GlobalContext* globalCtx, Player* player, s32 mode);
|
||||
@@ -1355,51 +1398,6 @@ typedef struct {
|
||||
/* 0x24 */ s16 unk_24;
|
||||
} struct_800BD888_arg1; // size = 0x28
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 unk0;
|
||||
/* 0x4 */ s32 unk4;
|
||||
/* 0x8 */ s32 unk8; // game script pointer?
|
||||
} struct_80133038_arg2; // size = 0xC
|
||||
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ SUBS_CUTSCENE_SET_UNK_LINK_FIELDS,
|
||||
/* 1 */ SUBS_CUTSCENE_NORMAL,
|
||||
/* 2 */ SUBS_CUTSCENE_SET_FLAG
|
||||
} SubSCutsceneType;
|
||||
|
||||
typedef s32 (*func_8013E748_arg6)(struct GlobalContext*, Actor*, Vec3s*);
|
||||
|
||||
typedef s32 (*VerifyActor)(struct GlobalContext*, Actor*, Actor*, void*);
|
||||
|
||||
struct struct_8013DF3C_arg1;
|
||||
typedef void (*struct_8013DF3C_arg1_unk_func1)(struct GlobalContext*, struct struct_8013DF3C_arg1*);
|
||||
typedef s32 (*struct_8013DF3C_arg1_unk_func2)(struct GlobalContext*, struct struct_8013DF3C_arg1*);
|
||||
|
||||
typedef struct struct_8013DF3C_arg1 {
|
||||
/* 0x00 */ Path* setupPathList;
|
||||
/* 0x04 */ s32 pathIndex;
|
||||
/* 0x08 */ Vec3s* points;
|
||||
/* 0x0C */ s32 count;
|
||||
/* 0x10 */ s32 unk_10;
|
||||
/* 0x14 */ s32 unk_14;
|
||||
/* 0x18 */ s32 unk_18;
|
||||
/* 0x1C */ u8 unk_1C;
|
||||
/* 0x1D */ u8 unk_1D;
|
||||
/* 0x20 */ Vec3f unk_20;
|
||||
/* 0x2C */ Vec3f unk_2C;
|
||||
/* 0x38 */ Vec3f unk_38;
|
||||
/* 0x44 */ Vec3f* unk_44;
|
||||
/* 0x48 */ Actor* actor;
|
||||
/* 0x4C */ f32 unk_4C;
|
||||
/* 0x50 */ f32 unk_50;
|
||||
/* 0x54 */ Vec3s unk_54;
|
||||
/* 0x5C */ struct_8013DF3C_arg1_unk_func1 unk_5C;
|
||||
/* 0x60 */ struct_8013DF3C_arg1_unk_func2 unk_60;
|
||||
/* 0x64 */ struct_8013DF3C_arg1_unk_func2 unk_64;
|
||||
/* 0x68 */ struct_8013DF3C_arg1_unk_func2 unk_68;
|
||||
} struct_8013DF3C_arg1; // size = 0x6C
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 type;
|
||||
/* 0x04 */ u32 setScissor;
|
||||
@@ -1492,6 +1490,20 @@ enum fram_mode {
|
||||
FRAM_MODE_STATUS
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ UNK_TYPE1 unk_00[0x14];
|
||||
/* 0x14 */ s16 unk_14;
|
||||
/* 0x16 */ s16 unk_16;
|
||||
/* 0x18 */ s16 unk_18;
|
||||
/* 0x1A */ UNK_TYPE1 unk_1A[0x3];
|
||||
/* 0x0C */ u8 unk_1D;
|
||||
/* 0x1E */ UNK_TYPE1 unk_1E[0xC];
|
||||
/* 0x2A */ s16 unk_2A;
|
||||
/* 0x1E */ UNK_TYPE1 unk_2C[0x1];
|
||||
/* 0x2D */ u8 unk_2D;
|
||||
/* 0x2E */ UNK_TYPE1 unk_2E[2];
|
||||
} DbCameraUnkSubStruct; // size = 0x30
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 unk_00;
|
||||
/* 0x02 */ s16 unk_02;
|
||||
@@ -1501,18 +1513,12 @@ typedef struct {
|
||||
/* 0x0A */ s16 unk_0A;
|
||||
/* 0x0C */ s16 unk_0C;
|
||||
/* 0x0E */ UNK_TYPE1 unk_0E[0x02];
|
||||
/* 0x10 */ UNK_TYPE1 unk_10[0x2C];
|
||||
/* 0x3C */ UNK_TYPE1 unk_3C[0x01];
|
||||
/* 0x3D */ u8 unk_3D;
|
||||
/* 0x3E */ UNK_TYPE1 unk_3E[0x02];
|
||||
/* 0x40 */ UNK_TYPE1 unk_40[0x2C];
|
||||
/* 0x6C */ UNK_TYPE1 unk_6C[0x01];
|
||||
/* 0x6D */ u8 unk_6D;
|
||||
/* 0x6E */ UNK_TYPE1 unk_6E[0x02];
|
||||
/* 0x10 */ DbCameraUnkSubStruct unk_10;
|
||||
/* 0x40 */ DbCameraUnkSubStruct unk_40;
|
||||
/* 0x70 */ UNK_PTR unk_70;
|
||||
/* 0x74 */ UNK_PTR unk_74;
|
||||
/* 0x78 */ UNK_PTR unk_78;
|
||||
/* 0x7C */ Camera* camera;
|
||||
} struct_801F4D48; // size = 0x80
|
||||
} DbCameraUnkStruct; // size = 0x80
|
||||
|
||||
#endif
|
||||
|
||||
@@ -387,6 +387,18 @@ typedef struct ActorContext {
|
||||
/* 0x26C */ Input unk_26C;
|
||||
} ActorContext; // size = 0x284
|
||||
|
||||
typedef enum {
|
||||
/* 00 */ ACTOR_DRAW_DMGEFF_FIRE,
|
||||
/* 01 */ ACTOR_DRAW_DMGEFF_BLUE_FIRE,
|
||||
/* 10 */ ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX = 10,
|
||||
/* 11 */ ACTOR_DRAW_DMGEFF_FROZEN_SFX,
|
||||
/* 20 */ ACTOR_DRAW_DMGEFF_LIGHT_ORBS = 20,
|
||||
/* 21 */ ACTOR_DRAW_DMGEFF_BLUE_LIGHT_ORBS,
|
||||
/* 30 */ ACTOR_DRAW_DMGEFF_ELECTRIC_SPARKS_SMALL = 30,
|
||||
/* 31 */ ACTOR_DRAW_DMGEFF_ELECTRIC_SPARKS_MEDIUM,
|
||||
/* 32 */ ACTOR_DRAW_DMGEFF_ELECTRIC_SPARKS_LARGE
|
||||
} ActorDrawDamageEffectType;
|
||||
|
||||
typedef enum {
|
||||
/* 0x000 */ ACTOR_PLAYER,
|
||||
/* 0x001 */ ACTOR_EN_TEST,
|
||||
|
||||
+76
-49
@@ -1,5 +1,5 @@
|
||||
#ifndef _Z64_ANIMATION_H
|
||||
#define _Z64_ANIMATION_H
|
||||
#ifndef Z64_ANIMATION_H
|
||||
#define Z64_ANIMATION_H
|
||||
|
||||
#include "PR/ultratypes.h"
|
||||
#include "PR/gbi.h"
|
||||
@@ -28,7 +28,7 @@ typedef enum {
|
||||
} AnimationModes;
|
||||
|
||||
typedef enum {
|
||||
/* -1 */ ANIMTAPER_DECEL = -1,
|
||||
/* -1 */ ANIMTAPER_DECEL = -1,
|
||||
/* 0 */ ANIMTAPER_NONE,
|
||||
/* 1 */ ANIMTAPER_ACCEL
|
||||
} AnimationTapers;
|
||||
@@ -49,14 +49,6 @@ typedef struct {
|
||||
/* 0x08 */ Gfx* dLists[2]; // Near and far
|
||||
} LodLimb; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3s jointPos; // Root is position in model space, children are relative to parent
|
||||
/* 0x06 */ u8 child;
|
||||
/* 0x07 */ u8 sibling;
|
||||
/* 0x08 */ s32 unk_8; // Type of data contained in segment
|
||||
/* 0x0C */ void* segment; // Segment address of data. Currently unclear what.
|
||||
} SkinLimb; // size = 0x10
|
||||
|
||||
// Model has limbs with only rigid meshes
|
||||
typedef struct {
|
||||
/* 0x00 */ void** segment;
|
||||
@@ -195,7 +187,10 @@ typedef struct SkelAnime {
|
||||
/* 0x24 */ Vec3s* morphTable; // Table of values used to morph between animations
|
||||
/* 0x28 */ f32 morphWeight; // Weight of the current animation morph as a fraction in [0,1]
|
||||
/* 0x2C */ f32 morphRate; // Reciprocal of the number of frames in the morph
|
||||
/* 0x30 */ s32 (*update)(); // Can be Loop, Partial loop, Play once, Morph, or Tapered morph. Link only has Loop, Play once, and Morph
|
||||
/* 0x30 */ union {
|
||||
s32 (*normal)(struct SkelAnime*);// Can be Loop, Partial loop, Play once, Morph, or Tapered morph
|
||||
s32 (*link)(struct GlobalContext*, struct SkelAnime*); // Loop, Play once, and Morph
|
||||
} update;
|
||||
/* 0x34 */ s8 initFlags; // Flags used when initializing Link's skeleton
|
||||
/* 0x35 */ u8 moveFlags; // Flags used for animations that move the actor in worldspace.
|
||||
/* 0x36 */ s16 prevRot; // Previous rotation in worldspace.
|
||||
@@ -279,43 +274,6 @@ typedef s32 (*OverrideCurveLimbDraw)(struct GlobalContext* globalCtx, SkelAnimeC
|
||||
typedef void (*PostCurveLimbDraw)(struct GlobalContext* globalCtx, SkelAnimeCurve* skelCuve, s32 limbIndex,
|
||||
struct Actor* actor);
|
||||
|
||||
// TODO the name of this struct is imported from OoT and cannot change until the ZAPD name also changes
|
||||
typedef struct {
|
||||
/* 0x000 */ u16 unk_0;
|
||||
/* 0x002 */ s16 unk_2;
|
||||
/* 0x004 */ s16 unk_4;
|
||||
/* 0x006 */ s8 unk_6;
|
||||
/* 0x007 */ s8 unk_7;
|
||||
/* 0x008 */ s8 unk_8;
|
||||
/* 0x009 */ u8 unk_9;
|
||||
} Struct_800A57C0; // size = 0xA
|
||||
|
||||
// TODO the name of this struct is imported from OoT and cannot change until the ZAPD name also changes
|
||||
typedef struct {
|
||||
/* 0x000 */ u8 unk_0;
|
||||
/* 0x002 */ s16 x;
|
||||
/* 0x004 */ s16 y;
|
||||
/* 0x006 */ s16 z;
|
||||
/* 0x008 */ u8 unk_8;
|
||||
} Struct_800A598C_2; // size = 0xA
|
||||
|
||||
// TODO the name of this struct is imported from OoT and cannot change until the ZAPD name also changes
|
||||
typedef struct {
|
||||
/* 0x000 */ u16 unk_0;
|
||||
/* 0x002 */ u16 unk_2;
|
||||
/* 0x004 */ u16 unk_4;
|
||||
/* 0x008 */ Struct_800A57C0* unk_8;
|
||||
/* 0x00C */ Struct_800A598C_2* unk_C;
|
||||
} Struct_800A598C; // size = 0x10
|
||||
|
||||
// TODO the name of this struct is imported from OoT and cannot change until the ZAPD name also changes
|
||||
typedef struct {
|
||||
/* 0x000 */ u16 unk_0;
|
||||
/* 0x002 */ u16 unk_2;
|
||||
/* 0x004 */ Struct_800A598C* unk_4;
|
||||
/* 0x008 */ Gfx* unk_8;
|
||||
} Struct_800A5E28; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ AnimationHeader* animation;
|
||||
/* 0x04 */ f32 playSpeed;
|
||||
@@ -341,4 +299,73 @@ typedef struct AnimationSpeedInfo {
|
||||
/* 0x0C */ f32 morphFrames;
|
||||
} AnimationSpeedInfo; // size = 0x10
|
||||
|
||||
struct SkeletonInfo;
|
||||
|
||||
typedef s32 (*UnkKeyframeCallback)(struct GlobalContext* globalCtx, struct SkeletonInfo* skeletonInfo, s32* arg2, Gfx** dList,
|
||||
u8* arg4, void* arg5);
|
||||
|
||||
// Keyframe limb?
|
||||
typedef struct {
|
||||
/* 0x00 */ Gfx* dList;
|
||||
/* 0x04 */ u8 unk_4;
|
||||
/* 0x05 */ u8 flags;
|
||||
/* 0x06 */ Vec3s root;
|
||||
} Struct_801BFA14_Arg1_Field4; // size = 0xC
|
||||
|
||||
// Other limb type?
|
||||
typedef struct {
|
||||
/* 0x00 */ Gfx* dList;
|
||||
/* 0x04 */ u8 unk_4;
|
||||
/* 0x05 */ u8 flags;
|
||||
/* 0x06 */ u8 unk_6; // transform limb draw index
|
||||
} Struct_801BFA14_Arg1_Field4_2; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 limbCount;
|
||||
/* 0x01 */ u8 unk_1; // non-zero in object files, number of non-null-dlist limbs?
|
||||
/* 0x04 */ union {
|
||||
Struct_801BFA14_Arg1_Field4* unk_4; // arrays
|
||||
Struct_801BFA14_Arg1_Field4_2* unk_4_2;
|
||||
};
|
||||
/* 0x08 */ s16* unk_8;
|
||||
/* 0x0C */ s16* unk_C;
|
||||
/* 0x0C */ char unk_10[0x2];
|
||||
/* 0x12 */ s16 unk_12;
|
||||
} Struct_801BFA14_Arg1;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16* unk_0;
|
||||
/* 0x04 */ s16* unk_4;
|
||||
/* 0x08 */ s16* unk_8;
|
||||
/* 0x0C */ s16* unk_C;
|
||||
/* 0x0C */ char unk_10[0x2];
|
||||
/* 0x12 */ s16 unk_12;
|
||||
} SkeletonInfo_1C;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ f32 unk_0;
|
||||
/* 0x04 */ f32 unk_4;
|
||||
/* 0x08 */ f32 unk_8;
|
||||
/* 0x0C */ f32 unk_C;
|
||||
/* 0x10 */ f32 unk_10;
|
||||
/* 0x14 */ s32 unk_14;
|
||||
} FrameControl;
|
||||
|
||||
// FlexKeyframeSkeleton ?
|
||||
typedef struct SkeletonInfo {
|
||||
/* 0x00 */ FrameControl frameCtrl;
|
||||
/* 0x18 */ Struct_801BFA14_Arg1* unk_18; // array
|
||||
/* 0x1C */ SkeletonInfo_1C* unk_1C;
|
||||
/* 0x20 */ UnkKeyframeCallback* unk_20; // pointer to array of functions
|
||||
/* 0x24 */ f32 unk_24; // duration? current time?
|
||||
/* 0x28 */ Vec3s* frameData; // array of 3 Vec3s
|
||||
/* 0x2C */ s16* unk_2C;
|
||||
} SkeletonInfo;
|
||||
|
||||
typedef s32 (*OverrideKeyframeDrawScaled)(struct GlobalContext* globalCtx, SkeletonInfo* skeletonInfo, s32 limbIndex, Gfx** dList,
|
||||
u8* flags, struct Actor* actor, Vec3f* scale, Vec3s* rot, Vec3f* pos);
|
||||
|
||||
typedef void (*PostKeyframeDrawScaled)(struct GlobalContext* globalCtx, SkeletonInfo* skeleton, s32 limbIndex, Gfx** dList,
|
||||
u8* flags, struct Actor* actor, Vec3f* scale, Vec3s* rot, Vec3f* pos);
|
||||
|
||||
#endif
|
||||
|
||||
+126
-91
@@ -32,7 +32,7 @@ typedef enum {
|
||||
/* 1 */ AUDIO_MODE_HEADSET,
|
||||
/* 2 */ AUDIO_MODE_UNK,
|
||||
/* 3 */ AUDIO_MODE_MONO,
|
||||
/* 4 */ AUDIO_MODE_SURROUND,
|
||||
/* 4 */ AUDIO_MODE_SURROUND
|
||||
} AudioSoundMode;
|
||||
|
||||
typedef enum {
|
||||
@@ -49,11 +49,10 @@ typedef enum {
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ MEDIUM_RAM,
|
||||
/* 1 */ MEDIUM_UNK1,
|
||||
/* 1 */ MEDIUM_UNK,
|
||||
/* 2 */ MEDIUM_CART,
|
||||
/* 3 */ MEDIUM_DISK_DRIVE,
|
||||
/* 4 */ MEDIUM_UNK4,
|
||||
/* 5 */ MEDIUM_UNK5
|
||||
/* 5 */ MEDIUM_RAM_UNLOADED = 5
|
||||
} SampleMedium;
|
||||
|
||||
typedef enum {
|
||||
@@ -71,6 +70,14 @@ typedef enum {
|
||||
/* 2 */ SAMPLE_TABLE
|
||||
} SampleBankTableType;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ CACHE_LOAD_PERMANENT,
|
||||
/* 1 */ CACHE_LOAD_PERSISTENT,
|
||||
/* 2 */ CACHE_LOAD_TEMPORARY,
|
||||
/* 3 */ CACHE_LOAD_EITHER,
|
||||
/* 4 */ CACHE_LOAD_EITHER_NOSYNC
|
||||
} AudioCacheLoadType;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ CACHE_TEMPORARY,
|
||||
/* 1 */ CACHE_PERSISTENT,
|
||||
@@ -78,6 +85,15 @@ typedef enum {
|
||||
/* 3 */ CACHE_PERMANENT
|
||||
} AudioCacheType;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ LOAD_STATUS_0,
|
||||
/* 1 */ LOAD_STATUS_1,
|
||||
/* 2 */ LOAD_STATUS_2, // Samples/Seqplayer
|
||||
/* 3 */ LOAD_STATUS_3, // Sequences
|
||||
/* 4 */ LOAD_STATUS_4, // SoundFonts
|
||||
/* 5 */ LOAD_STATUS_5 // Permanent
|
||||
} AudioLoadStatus;
|
||||
|
||||
typedef s32 (*DmaHandler)(OSPiHandle* handle, OSIoMesg* mb, s32 direction);
|
||||
|
||||
struct Note;
|
||||
@@ -242,9 +258,9 @@ typedef struct {
|
||||
} SoundFont; // size = 0x14
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8* pc;
|
||||
/* 0x00 */ u8* pc; // program counter
|
||||
/* 0x04 */ u8* stack[4];
|
||||
/* 0x14 */ u8 remLoopIters[4];
|
||||
/* 0x14 */ u8 remLoopIters[4]; // remaining loop iterations
|
||||
/* 0x18 */ u8 depth;
|
||||
/* 0x19 */ s8 value;
|
||||
} SeqScriptState; // size = 0x1C
|
||||
@@ -399,7 +415,7 @@ typedef struct SequenceChannel {
|
||||
/* 0x12 */ VibratoSubStruct vibrato;
|
||||
/* 0x20 */ u16 delay;
|
||||
/* 0x22 */ u16 unk_20;
|
||||
/* 0x24 */ u16 unk_22;
|
||||
/* 0x24 */ u16 unk_22; // Used for indexing data
|
||||
/* 0x26 */ s16 instOrWave; // either 0 (none), instrument index + 1, or
|
||||
// 0x80..0x83 for sawtooth/triangle/sine/square waves.
|
||||
/* 0x28 */ s16 transposition;
|
||||
@@ -623,32 +639,41 @@ typedef struct {
|
||||
/* 0x16 */ s16 lowPassFilterCutoffRight;
|
||||
} ReverbSettings; // size = 0x18
|
||||
|
||||
/**
|
||||
* The high-level audio specifications requested when initializing or resetting the audio heap.
|
||||
* Most often resets during scene transitions, but will highly depend on game play.
|
||||
*/
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 frequency;
|
||||
/* 0x00 */ u32 samplingFreq; // Target sampling rate in Hz
|
||||
/* 0x04 */ u8 unk_04;
|
||||
/* 0x05 */ u8 numNotes;
|
||||
/* 0x06 */ u8 numSequencePlayers;
|
||||
/* 0x07 */ u8 unk_07[0x2]; // unused, set to zero
|
||||
/* 0x09 */ u8 numReverbs;
|
||||
/* 0x0A */ u8 unk_0A[0x2];
|
||||
/* 0x0C */ ReverbSettings* reverbSettings;
|
||||
/* 0x10 */ u16 sampleDmaBufSize1;
|
||||
/* 0x12 */ u16 sampleDmaBufSize2;
|
||||
/* 0x14 */ u16 unk_14;
|
||||
/* 0x18 */ u32 persistentSeqMem;
|
||||
/* 0x1C */ u32 persistentFontMem;
|
||||
/* 0x20 */ u32 persistentSampleMem;
|
||||
/* 0x24 */ u32 temporarySeqMem;
|
||||
/* 0x28 */ u32 temporaryFontMem;
|
||||
/* 0x2C */ u32 temporarySampleMem;
|
||||
/* 0x30 */ s32 persistentSampleCacheMem;
|
||||
/* 0x34 */ s32 temporarySampleCacheMem;
|
||||
/* 0x18 */ size_t persistentSeqCacheSize; // size of cache on audio pool to store sequences persistently
|
||||
/* 0x1C */ size_t persistentFontCacheSize; // size of cache on audio pool to store soundFonts persistently
|
||||
/* 0x20 */ size_t persistentSampleBankCacheSize; // size of cache on audio pool to store entire sample banks persistently
|
||||
/* 0x24 */ size_t temporarySeqCacheSize; // size of cache on audio pool to store sequences temporarily
|
||||
/* 0x28 */ size_t temporaryFontCacheSize; // size of cache on audio pool to store soundFonts temporarily
|
||||
/* 0x2C */ size_t temporarySampleBankCacheSize; // size of cache on audio pool to store entire sample banks temporarily
|
||||
/* 0x30 */ size_t persistentSampleCacheSize; // size of cache on audio pool to store individual samples persistently
|
||||
/* 0x34 */ size_t temporarySampleCacheSize; // size of cache on audio pool to store individual samples temporarily
|
||||
} AudioSpec; // size = 0x38
|
||||
|
||||
/**
|
||||
* The audio buffer stores the fully processed digital audio before it is sent to the audio interface (AI), then to the
|
||||
* digital-analog converter (DAC), then to play on the speakers. The audio buffer is written to by the rsp after
|
||||
* processing audio commands, and the audio buffer is read by AI which sends the data to the DAC.
|
||||
* This struct parameterizes that buffer.
|
||||
*/
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 specUnk4;
|
||||
/* 0x02 */ u16 frequency;
|
||||
/* 0x04 */ u16 aiFrequency;
|
||||
/* 0x02 */ u16 samplingFreq; // Target sampling rate in Hz
|
||||
/* 0x04 */ u16 aiSamplingFreq; // True sampling rate set to the audio interface (AI) for the audio digital-analog converter (DAC)
|
||||
/* 0x06 */ s16 samplesPerFrameTarget;
|
||||
/* 0x08 */ s16 maxAiBufferLength;
|
||||
/* 0x0A */ s16 minAiBufferLength;
|
||||
@@ -663,20 +688,29 @@ typedef struct {
|
||||
/* 0x24 */ f32 unk_24;
|
||||
} AudioBufferParameters; // size = 0x28
|
||||
|
||||
/**
|
||||
* Meta-data associated with a pool (contain withing the Audio Heap)
|
||||
*/
|
||||
typedef struct {
|
||||
/* 0x0 */ u8* start;
|
||||
/* 0x4 */ u8* cur;
|
||||
/* 0x8 */ s32 size;
|
||||
/* 0xC */ s32 count;
|
||||
/* 0x0 */ u8* startAddr; // start addr of the pool
|
||||
/* 0x4 */ u8* curAddr; // address of the next available memory for allocation
|
||||
/* 0x8 */ size_t size; // size of the pool
|
||||
/* 0xC */ s32 count; // number of entries allocated to the pool
|
||||
} AudioAllocPool; // size = 0x10
|
||||
|
||||
/**
|
||||
* Audio cache entry data to store a single entry containing either a sequence, soundfont, or entire sample banks
|
||||
*/
|
||||
typedef struct {
|
||||
/* 0x0 */ u8* ptr;
|
||||
/* 0x4 */ u32 size;
|
||||
/* 0x0 */ u8* addr;
|
||||
/* 0x4 */ size_t size;
|
||||
/* 0x8 */ s16 tableType;
|
||||
/* 0xA */ s16 id;
|
||||
} AudioCacheEntry; // size = 0xC
|
||||
|
||||
/**
|
||||
* Audio cache entry data to store a single entry containing an individual sample
|
||||
*/
|
||||
typedef struct {
|
||||
/* 0x00 */ s8 inUse;
|
||||
/* 0x01 */ s8 origMedium;
|
||||
@@ -684,13 +718,16 @@ typedef struct {
|
||||
/* 0x03 */ char unk_03[0x5];
|
||||
/* 0x08 */ u8* allocatedAddr;
|
||||
/* 0x0C */ void* sampleAddr;
|
||||
/* 0x10 */ u32 size;
|
||||
/* 0x10 */ size_t size;
|
||||
} SampleCacheEntry; // size = 0x14
|
||||
|
||||
/**
|
||||
* Audio cache entry data to store individual samples
|
||||
*/
|
||||
typedef struct {
|
||||
/* 0x000 */ AudioAllocPool pool;
|
||||
/* 0x010 */ SampleCacheEntry entries[128];
|
||||
/* 0xA10 */ s32 size;
|
||||
/* 0xA10 */ s32 numEntries;
|
||||
} AudioSampleCache; // size = 0xA14
|
||||
|
||||
typedef struct {
|
||||
@@ -712,22 +749,21 @@ typedef struct {
|
||||
} AudioCache; // size = 0x110
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u32 wantPersistent;
|
||||
/* 0x4 */ u32 wantTemporary;
|
||||
} AudioPoolSplit2; // size = 0x8
|
||||
/* 0x0 */ size_t persistentCommonPoolSize;
|
||||
/* 0x4 */ size_t temporaryCommonPoolSize;
|
||||
} AudioCachePoolSplit; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u32 wantSeq;
|
||||
/* 0x4 */ u32 wantFont;
|
||||
/* 0x8 */ u32 wantSample;
|
||||
} AudioPoolSplit3; // size = 0xC
|
||||
/* 0x0 */ size_t seqCacheSize;
|
||||
/* 0x4 */ size_t fontCacheSize;
|
||||
/* 0x8 */ size_t sampleBankCacheSize;
|
||||
} AudioCommonPoolSplit; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u32 wantSeq;
|
||||
/* 0x4 */ u32 wantFont;
|
||||
/* 0x8 */ u32 wantSample;
|
||||
/* 0xC */ u32 wantCustom;
|
||||
} AudioPoolSplit4; // size = 0x10
|
||||
/* 0x0 */ size_t miscPoolSize;
|
||||
/* 0x4 */ u32 unkSizes[2];
|
||||
/* 0xC */ size_t cachePoolSize;
|
||||
} AudioSessionPoolSplit; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 endAndMediumKey;
|
||||
@@ -763,10 +799,10 @@ typedef struct {
|
||||
/* 0x01 */ s8 delay;
|
||||
/* 0x02 */ s8 medium;
|
||||
/* 0x04 */ u8* ramAddr;
|
||||
/* 0x08 */ u32 curDevAddr;
|
||||
/* 0x08 */ uintptr_t curDevAddr;
|
||||
/* 0x0C */ u8* curRamAddr;
|
||||
/* 0x10 */ u32 bytesRemaining;
|
||||
/* 0x14 */ u32 chunkSize;
|
||||
/* 0x10 */ size_t bytesRemaining;
|
||||
/* 0x14 */ size_t chunkSize;
|
||||
/* 0x18 */ s32 unkMediumParam;
|
||||
/* 0x1C */ u32 retMsg;
|
||||
/* 0x20 */ OSMesgQueue* retQueue;
|
||||
@@ -780,12 +816,12 @@ typedef struct {
|
||||
/* 0x01 */ u8 seqOrFontId;
|
||||
/* 0x02 */ u16 instId;
|
||||
/* 0x04 */ s32 unkMediumParam;
|
||||
/* 0x08 */ s32 curDevAddr;
|
||||
/* 0x08 */ uintptr_t curDevAddr;
|
||||
/* 0x0C */ u8* curRamAddr;
|
||||
/* 0x10 */ u8* ramAddr;
|
||||
/* 0x14 */ s32 status;
|
||||
/* 0x18 */ s32 bytesRemaining;
|
||||
/* 0x1C */ s8* isDone;
|
||||
/* 0x18 */ size_t bytesRemaining;
|
||||
/* 0x1C */ s8* isDone; // TODO: rename in OoT and sync up here. This is an external status while (s32 status) is an internal status
|
||||
/* 0x20 */ SoundFontSample sample;
|
||||
/* 0x30 */ OSMesgQueue msgqueue;
|
||||
/* 0x48 */ OSMesg msg;
|
||||
@@ -793,8 +829,8 @@ typedef struct {
|
||||
} AudioSlowLoad; // size = 0x64
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 romAddr;
|
||||
/* 0x04 */ u32 size;
|
||||
/* 0x00 */ uintptr_t romAddr;
|
||||
/* 0x04 */ size_t size;
|
||||
/* 0x08 */ s8 medium;
|
||||
/* 0x09 */ s8 cachePolicy;
|
||||
/* 0x0A */ s16 shortData1;
|
||||
@@ -805,7 +841,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 numEntries;
|
||||
/* 0x02 */ s16 unkMediumParam;
|
||||
/* 0x04 */ u32 romAddr;
|
||||
/* 0x04 */ uintptr_t romAddr;
|
||||
/* 0x08 */ char pad[0x8];
|
||||
/* 0x10 */ AudioTableEntry entries[1]; // (dynamic size)
|
||||
} AudioTable; // size >= 0x20
|
||||
@@ -819,18 +855,18 @@ typedef struct {
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8* ramAddr;
|
||||
/* 0x04 */ u32 devAddr;
|
||||
/* 0x04 */ uintptr_t devAddr;
|
||||
/* 0x08 */ u16 sizeUnused;
|
||||
/* 0x0A */ u16 size;
|
||||
/* 0x0C */ u8 unused;
|
||||
/* 0x0D */ u8 reuseIndex; // position in sSampleDmaReuseQueue1/2, if ttl == 0
|
||||
/* 0x0E */ u8 ttl; // duration after which the DMA can be discarded
|
||||
/* 0x0E */ u8 ttl; // Time To Live: duration after which the DMA can be discarded
|
||||
} SampleDma; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ char unk_0000;
|
||||
/* 0x0001 */ s8 numSynthesisReverbs;
|
||||
/* 0x0002 */ u16 unk_2;
|
||||
/* 0x0002 */ u16 unk_2; // reads from audio spec unk_14, never used, always set to 0x7FFF
|
||||
/* 0x0004 */ u16 unk_4;
|
||||
/* 0x0006 */ char unk_0006[0xA];
|
||||
/* 0x0010 */ s16* curLoadedBook;
|
||||
@@ -862,13 +898,13 @@ typedef struct {
|
||||
/* 0x263C */ SampleDma* sampleDmas;
|
||||
/* 0x2640 */ u32 sampleDmaCount;
|
||||
/* 0x2644 */ u32 sampleDmaListSize1;
|
||||
/* 0x2648 */ s32 unused2628;
|
||||
/* 0x2648 */ s32 unused2648;
|
||||
/* 0x264C */ u8 sampleDmaReuseQueue1[0x100]; // read pos <= write pos, wrapping mod 256
|
||||
/* 0x274C */ u8 sampleDmaReuseQueue2[0x100];
|
||||
/* 0x284C */ u8 sampleDmaReuseQueue1RdPos;
|
||||
/* 0x284D */ u8 sampleDmaReuseQueue2RdPos;
|
||||
/* 0x284E */ u8 sampleDmaReuseQueue1WrPos;
|
||||
/* 0x284F */ u8 sampleDmaReuseQueue2WrPos;
|
||||
/* 0x284C */ u8 sampleDmaReuseQueue1RdPos; // Read position for dma 1
|
||||
/* 0x284D */ u8 sampleDmaReuseQueue2RdPos; // Read position for dma 2
|
||||
/* 0x284E */ u8 sampleDmaReuseQueue1WrPos; // Write position for dma 1
|
||||
/* 0x284F */ u8 sampleDmaReuseQueue2WrPos; // Write position for dma 2
|
||||
/* 0x2850 */ AudioTable* sequenceTable;
|
||||
/* 0x2854 */ AudioTable* soundFontTable;
|
||||
/* 0x2858 */ AudioTable* sampleBankTable;
|
||||
@@ -886,52 +922,52 @@ typedef struct {
|
||||
/* 0x28B8 */ s32 numNotes;
|
||||
/* 0x2898 */ s16 tempoInternalToExternal;
|
||||
/* 0x28BE */ s8 soundMode;
|
||||
/* 0x28C0 */ s32 totalTaskCnt;
|
||||
/* 0x28C0 */ s32 totalTaskCount; // The total number of times the top-level function on the audio thread is run since the last audio reset
|
||||
/* 0x28C4 */ s32 curAudioFrameDmaCount;
|
||||
/* 0x28C8 */ s32 rspTaskIdx;
|
||||
/* 0x28CC */ s32 curAIBufIdx;
|
||||
/* 0x28AC */ Acmd* abiCmdBufs[2];
|
||||
/* 0x28C8 */ s32 rspTaskIndex;
|
||||
/* 0x28CC */ s32 curAiBuffferIndex;
|
||||
/* 0x28AC */ Acmd* abiCmdBufs[2]; // Pointer to audio heap where the audio binary interface command lists are stored. Two lists that alternative every frame
|
||||
/* 0x28B4 */ Acmd* curAbiCmdBuf;
|
||||
/* 0x28DC */ AudioTask* currTask;
|
||||
/* 0x28DC */ AudioTask* curTask;
|
||||
/* 0x28C0 */ AudioTask rspTask[2];
|
||||
/* 0x2980 */ f32 unk_2960;
|
||||
/* 0x2984*/ s32 refreshRate;
|
||||
/* 0x2988 */ s16* aiBuffers[3];
|
||||
/* 0x2994 */ s16 aiBufLengths[3];
|
||||
/* 0x2988 */ s16* aiBuffers[3]; // Pointers to the audio buffer allocated on the initPool contained in the audio heap. Stores fully processed digital audio before transferring to the audio interface (AI)
|
||||
/* 0x2994 */ s16 aiBufLengths[3]; // Number of bytes to transfer to the audio interface buffer
|
||||
/* 0x299C */ u32 audioRandom;
|
||||
/* 0x29A0 */ s32 audioErrorFlags;
|
||||
/* 0x29A4 */ volatile u32 resetTimer;
|
||||
/* 0x29A8 */ u32 (*unk_29A8[4])(s8 value, SequenceChannel* channel);
|
||||
/* 0x29B8 */ s8 unk_29B8;
|
||||
/* 0x29BC */ s32 unk_29BC; // sMaxAbiCmdCnt
|
||||
/* 0x29C0 */ AudioAllocPool audioSessionPool;
|
||||
/* 0x29D0 */ AudioAllocPool externalPool;
|
||||
/* 0x29E0 */ AudioAllocPool audioInitPool;
|
||||
/* 0x29F0 */ AudioAllocPool notesAndBuffersPool;
|
||||
/* 0x29C0 */ AudioAllocPool audioSessionPool; // A sub-pool to main pool, contains all sub-pools and data that changes every audio reset
|
||||
/* 0x29D0 */ AudioAllocPool externalPool; // pool allocated on an external device. Never used in game
|
||||
/* 0x29E0 */ AudioAllocPool audioInitPool; // A sub-pool to the main pool, contains all sub-pools and data that persists every audio reset
|
||||
/* 0x29F0 */ AudioAllocPool miscPool; // A sub-pool to the session pool,
|
||||
/* 0x2A00 */ char unk_29D0[0x20]; // probably two unused pools
|
||||
/* 0x2A20 */ AudioAllocPool cachePool;
|
||||
/* 0x2A30 */ AudioAllocPool persistentCommonPool;
|
||||
/* 0x2A40 */ AudioAllocPool temporaryCommonPool;
|
||||
/* 0x2A50 */ AudioCache seqCache;
|
||||
/* 0x2B60 */ AudioCache fontCache;
|
||||
/* 0x2C70 */ AudioCache sampleBankCache;
|
||||
/* 0x2D80 */ AudioAllocPool permanentPool;
|
||||
/* 0x2D90 */ AudioCacheEntry permanentCache[32];
|
||||
/* 0x3690 */ AudioSampleCache persistentSampleCache;
|
||||
/* 0x40A4 */ AudioSampleCache temporarySampleCache;
|
||||
/* 0x4338 */ AudioPoolSplit4 sessionPoolSplit;
|
||||
/* 0x4348 */ AudioPoolSplit2 cachePoolSplit;
|
||||
/* 0x4350 */ AudioPoolSplit3 persistentCommonPoolSplit;
|
||||
/* 0x435C */ AudioPoolSplit3 temporaryCommonPoolSplit;
|
||||
/* 0x2A20 */ AudioAllocPool cachePool; // The common pool for all cache entries
|
||||
/* 0x2A30 */ AudioAllocPool persistentCommonPool; // A sub-pool to the cache pool, contains all caches for data stored persistently
|
||||
/* 0x2A40 */ AudioAllocPool temporaryCommonPool; // A sub-pool to the cache pool, contains all caches for data stored temporarily
|
||||
/* 0x2A50 */ AudioCache seqCache; // Cache to store sequences
|
||||
/* 0x2B60 */ AudioCache fontCache; // Cache to store soundFonts
|
||||
/* 0x2C70 */ AudioCache sampleBankCache; // Cache for loading entire sample banks
|
||||
/* 0x2D80 */ AudioAllocPool permanentPool; // Pool to stores audio data that is always loaded in. Primarily used for sfxs
|
||||
/* 0x2D90 */ AudioCacheEntry permanentEntries[32]; // indificual entries to the permanent pool
|
||||
/* 0x3690 */ AudioSampleCache persistentSampleCache; // Stores individual samples persistently
|
||||
/* 0x40A4 */ AudioSampleCache temporarySampleCache; // Stores individual samples temporarily
|
||||
/* 0x4338 */ AudioSessionPoolSplit sessionPoolSplit; // splits session pool into the cache pool and misc pool
|
||||
/* 0x4348 */ AudioCachePoolSplit cachePoolSplit; // splits cache pool into the persistent & temporary common pools
|
||||
/* 0x4350 */ AudioCommonPoolSplit persistentCommonPoolSplit; // splits persistent common pool into caches for sequences, soundFonts, sample banks
|
||||
/* 0x435C */ AudioCommonPoolSplit temporaryCommonPoolSplit; // splits temporary common pool into caches for sequences, soundFonts, sample banks
|
||||
/* 0x4368 */ u8 sampleFontLoadStatus[0x30];
|
||||
/* 0x4398 */ u8 fontLoadStatus[0x30];
|
||||
/* 0x43C8 */ u8 seqLoadStatus[0x80];
|
||||
/* 0x4448 */ volatile u8 resetStatus;
|
||||
/* 0x4449 */ u8 audioResetSpecIdToLoad;
|
||||
/* 0x444C */ s32 audioResetFadeOutFramesLeft;
|
||||
/* 0x4450 */ f32* unk_3520;
|
||||
/* 0x4450 */ f32* unk_3520; // fadeOutVelocities for ADSR
|
||||
/* 0x4454 */ u8* audioHeap;
|
||||
/* 0x4458 */ u32 audioHeapSize;
|
||||
/* 0x4458 */ size_t audioHeapSize;
|
||||
/* 0x445C */ Note* notes;
|
||||
/* 0x4460 */ SequencePlayer seqPlayers[5];
|
||||
/* 0x4B40 */ SequenceLayer sequenceLayers[80];
|
||||
@@ -939,11 +975,10 @@ typedef struct {
|
||||
/* 0x7924 */ s32 noteSubEuOffset;
|
||||
/* 0x7928 */ AudioListItem layerFreeList;
|
||||
/* 0x7938 */ NotePool noteFreeLists;
|
||||
/* 0x7978 */ u8 cmdWrPos;
|
||||
/* 0x7979 */ u8 cmdRdPos;
|
||||
/* 0x7978 */ u8 cmdWritePos;
|
||||
/* 0x7979 */ u8 cmdReadPos;
|
||||
/* 0x797A */ u8 cmdQueueFinished;
|
||||
/* 0x797C */ u16 unk_5BDC[4];
|
||||
/* 0x7984 */ char unk_7984[4];
|
||||
/* 0x797C */ u16 activeChannelsFlags[5]; // bitwise flag for 16 channels. Only channels with bit turned on will be processed
|
||||
/* 0x7988 */ OSMesgQueue* audioResetQueueP;
|
||||
/* 0x798C */ OSMesgQueue* taskStartQueueP;
|
||||
/* 0x7990 */ OSMesgQueue* cmdProcQueueP;
|
||||
@@ -953,7 +988,7 @@ typedef struct {
|
||||
/* 0x79DC */ OSMesg taskStartMsgs[1];
|
||||
/* 0x79E0 */ OSMesg audioResetMesgs[1];
|
||||
/* 0x79E4 */ OSMesg cmdProcMsgs[4];
|
||||
/* 0x79F4 */ AudioCmd cmdBuf[0x100];
|
||||
/* 0x79F4 */ AudioCmd cmdBuf[0x100]; // Audio commands used to transfer audio requests from the graph thread to the audio thread
|
||||
/* 0x81F4 */ char unk_81F4[4];
|
||||
} AudioContext; // size = 0x81F8
|
||||
|
||||
@@ -972,9 +1007,9 @@ typedef struct {
|
||||
} NoteSubAttributes; // size = 0x1A
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u32 heapSize;
|
||||
/* 0x4 */ u32 initPoolSize;
|
||||
/* 0x8 */ u32 permanentPoolSize;
|
||||
/* 0x0 */ size_t heapSize; // total number of bytes allocated to the audio heap. Must be <= the size of `gAudioHeap` (ideally about the same size)
|
||||
/* 0x4 */ size_t mainPoolSplitSize; // The entire audio heap is split into two pools.
|
||||
/* 0x8 */ size_t permanentPoolSize;
|
||||
} AudioContextInitSizes; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
|
||||
@@ -257,6 +257,7 @@ typedef struct {
|
||||
/* 0x18 */ u8 unk18; // Always 1?
|
||||
} EffectSsOverlay; // size = 0x1C
|
||||
|
||||
//! TODO: Review reuse of vec/gfx/actor fields across all effects
|
||||
typedef struct EffectSs {
|
||||
/* 0x00 */ Vec3f pos;
|
||||
/* 0x0C */ Vec3f velocity;
|
||||
|
||||
+5
-3
@@ -31,7 +31,7 @@ typedef enum {
|
||||
/* 0x05 */ QUEST_SWORD,
|
||||
/* 0x06 */ QUEST_SONG_SONATA,
|
||||
/* 0x07 */ QUEST_SONG_LULLABY,
|
||||
/* 0x08 */ QUEST_SONG_NOVA,
|
||||
/* 0x08 */ QUEST_SONG_BOSSA_NOVA,
|
||||
/* 0x09 */ QUEST_SONG_ELEGY,
|
||||
/* 0x0A */ QUEST_SONG_OATH,
|
||||
/* 0x0B */ QUEST_SONG_SARIA,
|
||||
@@ -261,6 +261,7 @@ typedef enum {
|
||||
/* 0xA1 */ ITEM_GOLD_DUST_2,
|
||||
/* 0xA2 */ ITEM_HYLIAN_LOACH_2,
|
||||
/* 0xA3 */ ITEM_SEA_HORSE_CAUGHT,
|
||||
/* 0xFD */ ITEM_UNK_FD = 0xFD,
|
||||
/* 0xFF */ ITEM_NONE = 0xFF
|
||||
} ItemID;
|
||||
|
||||
@@ -381,7 +382,8 @@ typedef enum {
|
||||
/* 0x31 */ GID_POTION_RED,
|
||||
/* 0x32 */ GID_POTION_BLUE,
|
||||
/* 0x33 */ GID_SHIELD_MIRROR,
|
||||
/* 0x3A */ GID_3A = 0x3A,
|
||||
/* 0x39 */ GID_39 = 0x39,
|
||||
/* 0x3A */ GID_3A,
|
||||
/* 0x3B */ GID_FAIRY,
|
||||
/* 0x3E */ GID_3E = 0x3E,
|
||||
/* 0x44 */ GID_44 = 0x44,
|
||||
@@ -393,7 +395,7 @@ typedef enum {
|
||||
/* 0x6A */ GID_6A = 0x6A,
|
||||
/* 0x6B */ GID_6B,
|
||||
/* 0x70 */ GID_70 = 0x70,
|
||||
/* 0x71 */ GID_71,
|
||||
/* 0x71 */ GID_71
|
||||
} GetItemDrawID;
|
||||
|
||||
// TODO: fill
|
||||
|
||||
@@ -57,18 +57,12 @@ typedef struct Lights {
|
||||
/* 0x08 */ Lightsn l;
|
||||
} Lights; // size = 0x80
|
||||
|
||||
typedef struct LightInfoPositional {
|
||||
/* 0x0 */ u8 type;
|
||||
/* 0x2 */ LightPoint params;
|
||||
} LightInfoPositional; // size = 0xE
|
||||
|
||||
typedef struct LightNode {
|
||||
/* 0x0 */ LightInfo* info;
|
||||
/* 0x4 */ struct LightNode* prev;
|
||||
/* 0x8 */ struct LightNode* next;
|
||||
} LightNode; // size = 0xC
|
||||
|
||||
// TODO move LightsBuffer to .c file once .bss has been split
|
||||
#define LIGHTS_BUFFER_SIZE 32
|
||||
|
||||
typedef struct LightsBuffer {
|
||||
|
||||
+10
-1
@@ -5,9 +5,14 @@
|
||||
|
||||
#define VEC_SET(V,X,Y,Z) V.x=X;V.y=Y;V.z=Z
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 x;
|
||||
/* 0x02 */ s16 z;
|
||||
} Vec2s; // size = 0x04
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ f32 x;
|
||||
/* 0x04 */ f32 y;
|
||||
/* 0x04 */ f32 z;
|
||||
} Vec2f; // size = 0x08
|
||||
|
||||
typedef struct {
|
||||
@@ -44,6 +49,10 @@ typedef struct {
|
||||
/* 0x0C */ f32 radius;
|
||||
} Spheref; // size = 0x10
|
||||
|
||||
/*
|
||||
The plane paramaters are of form `ax + by + cz + d = 0`
|
||||
where `(a,b,c)` is the plane's normal vector and d is the originDist
|
||||
*/
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3f normal;
|
||||
/* 0x0C */ f32 originDist;
|
||||
|
||||
@@ -39,7 +39,7 @@ typedef enum {
|
||||
/* 3 */ OCARINA_BTN_C_LEFT,
|
||||
/* 4 */ OCARINA_BTN_C_UP,
|
||||
/* -1 */ OCARINA_BTN_INVALID = 0xFF
|
||||
} OcarinaButtonIdx;
|
||||
} OcarinaButtonIndex;
|
||||
|
||||
// Uses scientific pitch notation relative to middle C
|
||||
// https://en.wikipedia.org/wiki/Scientific_pitch_notation
|
||||
@@ -81,7 +81,7 @@ typedef enum {
|
||||
/* 13 */ OCARINA_INSTRUMENT_PIANO,
|
||||
/* 14 */ OCARINA_INSTRUMENT_BASS_GUITAR,
|
||||
/* 15 */ OCARINA_INSTRUMENT_BABY_SINGING,
|
||||
/* 16 */ OCARINA_INSTRUMENT_AMPLIFIED_GUITAR, // Related to (gSaveContext.weekEventReg[41] & 0x20)
|
||||
/* 16 */ OCARINA_INSTRUMENT_AMPLIFIED_GUITAR // Related to (gSaveContext.weekEventReg[41] & 0x20)
|
||||
} OcarinaInstrumentId;
|
||||
|
||||
typedef enum {
|
||||
@@ -93,7 +93,7 @@ typedef enum {
|
||||
|
||||
/**
|
||||
* BFlat4Flag Note:
|
||||
* Flag for resolving whether (noteIdx = NOTE_BFLAT4)
|
||||
* Flag for resolving whether (pitch = OCARINA_PITCH_BFLAT4)
|
||||
* gets mapped to either C_RIGHT and C_LEFT
|
||||
*
|
||||
* This is required as C_RIGHT and C_LEFT are the only notes
|
||||
@@ -103,21 +103,21 @@ typedef enum {
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 noteIdx; // number of semitones above middle C
|
||||
/* 0x0 */ u8 pitch; // number of semitones above middle C
|
||||
/* 0x2 */ u16 length; // number of frames the note is sustained
|
||||
/* 0x4 */ u8 volume;
|
||||
/* 0x5 */ u8 vibrato;
|
||||
/* 0x6 */ s8 bend; // frequency multiplicative offset from the pitch defined by noteIdx
|
||||
/* 0x6 */ s8 bend; // frequency multiplicative offset from the pitch defined by pitch
|
||||
/* 0x7 */ u8 BFlat4Flag; // See note above
|
||||
} OcarinaNote; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 numButtons;
|
||||
/* 0x1 */ u8 buttonIdx[8];
|
||||
/* 0x1 */ u8 buttonIndex[8];
|
||||
} OcarinaSongButtons; // size = 0x9
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 buttonIdx;
|
||||
/* 0x0 */ u8 buttonIndex;
|
||||
/* 0x1 */ u8 state; // original name: "status"
|
||||
/* 0x2 */ u8 pos; // original name: "locate"
|
||||
} OcarinaStaff; // size = 0x3
|
||||
|
||||
+249
-183
@@ -1,99 +1,142 @@
|
||||
#ifndef _Z64SAVE_H_
|
||||
#define _Z64SAVE_H_
|
||||
#ifndef Z64SAVE_H
|
||||
#define Z64SAVE_H
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "z64math.h"
|
||||
#include "os.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 buttonItems[4][4];
|
||||
/* 0x10 */ u8 cButtonSlots[4][4];
|
||||
/* 0x20 */ u16 equipment;
|
||||
} ItemEquips; // size = 0x0A
|
||||
struct GameState;
|
||||
struct GlobalContext;
|
||||
struct FileChooseContext;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 items[24];
|
||||
/* 0x18 */ u8 masks[24];
|
||||
/* 0x30 */ s8 ammo[24];
|
||||
/* 0x48 */ u32 upgrades; // some bits are wallet upgrades
|
||||
/* 0x4C */ u32 questItems;
|
||||
/* 0x50 */ u8 dungeonItems[10];
|
||||
/* 0x5A */ s8 dungeonKeys[10];
|
||||
/* 0x64 */ s8 strayFairies[10]; // "orange_fairy"
|
||||
/* 0x6E */ char dekuPlaygroundPlayerName[3][8]; // Stores playerName (8 char) over (3 days) when getting a new high score. original name: degnuts_memory_name
|
||||
// TODO: properly name DOWN, RETURN and TOP
|
||||
typedef enum RespawnMode {
|
||||
/* 0 */ RESTART_MODE_DOWN, // "RESTART_MODE_DOWN"
|
||||
/* 1 */ RESTART_MODE_RETURN, // "RESTART_MODE_RETURN"
|
||||
/* 2 */ RESTART_MODE_TOP, // "RESTART_MODE_TOP"
|
||||
/* 3 */ RESPAWN_MODE_UNK_3, // Maybe related to grottos
|
||||
/* 4 */ RESPAWN_MODE_GORON, // "RESTART_MODE_GORON"
|
||||
/* 5 */ RESPAWN_MODE_ZORA, // "RESTART_MODE_ZORA"
|
||||
/* 6 */ RESPAWN_MODE_DEKU, // "RESTART_MODE_NUTS"
|
||||
/* 7 */ RESPAWN_MODE_HUMAN, // "RESTART_MODE_CHILD"
|
||||
/* 8 */ RESPAWN_MODE_MAX
|
||||
} RespawnMode;
|
||||
|
||||
#define SAVE_BUFFER_SIZE 0x4000
|
||||
|
||||
typedef struct SramContext {
|
||||
/* 0x00 */ u8* readBuff;
|
||||
/* 0x04 */ u8 *saveBuf;
|
||||
/* 0x08 */ char unk_08[4];
|
||||
/* 0x0C */ s16 status;
|
||||
/* 0x10 */ u32 curPage;
|
||||
/* 0x14 */ u32 numPages;
|
||||
/* 0x18 */ OSTime unk_18;
|
||||
/* 0x20 */ s16 unk_20;
|
||||
/* 0x22 */ s16 unk_22;
|
||||
/* 0x24 */ s16 unk_24;
|
||||
} SramContext; // size = 0x28
|
||||
|
||||
typedef struct ItemEquips {
|
||||
/* 0x00 */ u8 buttonItems[4][4]; // "register_item"
|
||||
/* 0x10 */ u8 cButtonSlots[4][4]; // "register_item_pt"
|
||||
/* 0x20 */ u16 equipment;
|
||||
} ItemEquips; // size = 0x22
|
||||
|
||||
typedef struct Inventory {
|
||||
/* 0x00 */ u8 items[48]; // "item_register", first 24 elements are normal items and the other 24 are masks
|
||||
/* 0x30 */ s8 ammo[24]; // "item_count"
|
||||
/* 0x48 */ u32 upgrades; // "non_equip_register" some bits are wallet upgrades
|
||||
/* 0x4C */ u32 questItems; // "collect_register"
|
||||
/* 0x50 */ u8 dungeonItems[10]; // "key_compass_map"
|
||||
/* 0x5A */ s8 dungeonKeys[10]; // "key_register"
|
||||
/* 0x64 */ s8 strayFairies[10]; // "orange_fairy"
|
||||
/* 0x6E */ char dekuPlaygroundPlayerName[3][8]; // "degnuts_memory_name" Stores playerName (8 char) over (3 days) when getting a new high score
|
||||
} Inventory; // size = 0x88
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 scene;
|
||||
/* 0x02 */ Vec3s pos;
|
||||
/* 0x08 */ s16 angle;
|
||||
typedef struct HorseData {
|
||||
/* 0x00 */ s16 scene; // "spot_no"
|
||||
/* 0x02 */ Vec3s pos; // "horse_x", "horse_y" and "horse_z"
|
||||
/* 0x08 */ s16 yaw; // "horse_a"
|
||||
} HorseData; // size = 0x0A
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ Vec3f pos;
|
||||
/* 0xC */ s16 yaw;
|
||||
/* 0xE */ s16 playerParams;
|
||||
typedef struct RespawnData {
|
||||
/* 0x00 */ Vec3f pos;
|
||||
/* 0x0C */ s16 yaw;
|
||||
/* 0x0E */ s16 playerParams;
|
||||
/* 0x10 */ u16 entranceIndex;
|
||||
/* 0x12 */ u8 roomIndex;
|
||||
/* 0x13 */ s8 data;
|
||||
/* 0x14 */ u32 tempSwchFlags;
|
||||
/* 0x14 */ u32 tempSwitchFlags;
|
||||
/* 0x18 */ u32 unk_18;
|
||||
/* 0x1C */ u32 tempCollectFlags;
|
||||
} RespawnData; // size = 0x20
|
||||
|
||||
typedef struct {
|
||||
typedef struct PermanentSceneFlags {
|
||||
/* 0x00 */ u32 chest;
|
||||
/* 0x04 */ u32 swch0;
|
||||
/* 0x08 */ u32 swch1;
|
||||
/* 0x04 */ u32 switch0;
|
||||
/* 0x08 */ u32 switch1;
|
||||
/* 0x0C */ u32 clearedRoom;
|
||||
/* 0x10 */ u32 collectible;
|
||||
/* 0x14 */ u32 unk_14;
|
||||
/* 0x18 */ u32 unk_18;
|
||||
} PermanentSceneFlags; // size = 0x1C
|
||||
|
||||
typedef struct {
|
||||
typedef struct CycleSceneFlags {
|
||||
/* 0x00 */ u32 chest;
|
||||
/* 0x04 */ u32 swch0;
|
||||
/* 0x08 */ u32 swch1;
|
||||
/* 0x04 */ u32 switch0;
|
||||
/* 0x08 */ u32 switch1;
|
||||
/* 0x0C */ u32 clearedRoom;
|
||||
/* 0x10 */ u32 collectible;
|
||||
} CycleSceneFlags; // size = 0x14
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ u32 entranceIndex; // "scene_no"
|
||||
/* 0x0004 */ u8 equippedMask; // "player_mask"
|
||||
/* 0x0005 */ u8 unk_05; // "opening_flag"
|
||||
typedef struct SaveOptions {
|
||||
/* 0x00 */ u16 optionId; // "option_id"
|
||||
/* 0x02 */ u8 language; // "j_n"
|
||||
/* 0x03 */ s8 audioSetting; // "s_sound"
|
||||
/* 0x04 */ u8 languageSetting; // "language"
|
||||
/* 0x05 */ u8 zTargetSetting; // "z_attention", 0: Switch; 1: Hold
|
||||
} SaveOptions; // size = 0x06
|
||||
|
||||
typedef struct SavePlayerData {
|
||||
/* 0x0000 */ char newf[6]; // "newf" Will always be "ZELDA3 for a valid save
|
||||
/* 0x0006 */ u16 deaths; // "savect"
|
||||
/* 0x0008 */ char playerName[8]; // "player_name"
|
||||
/* 0x0010 */ s16 healthCapacity; // "max_life"
|
||||
/* 0x0012 */ s16 health; // "now_life"
|
||||
/* 0x0014 */ s8 magicLevel; // "magic_max"
|
||||
/* 0x0015 */ s8 magic; // "magic_now"
|
||||
/* 0x0016 */ s16 rupees; // "lupy_count"
|
||||
/* 0x0018 */ u16 swordHealth; // "long_sword_hp"
|
||||
/* 0x001A */ u16 tatlTimer; // "navi_timer"
|
||||
/* 0x001C */ u8 magicAcquired; // "magic_mode"
|
||||
/* 0x001D */ u8 doubleMagic; // "magic_ability"
|
||||
/* 0x001E */ u8 doubleDefense; // "life_ability"
|
||||
/* 0x001F */ u8 unk_1F; // "ocarina_round"
|
||||
/* 0x0020 */ u8 unk_20; // "first_memory"
|
||||
/* 0x0022 */ u16 owlActivationFlags; // "memory_warp_point"
|
||||
/* 0x0024 */ u8 unk_24; // "last_warp_pt"
|
||||
/* 0x0026 */ s16 savedSceneNum; // "scene_data_ID"
|
||||
} SavePlayerData; // size = 0x28
|
||||
|
||||
typedef struct Save {
|
||||
/* 0x0000 */ u32 entranceIndex; // "scene_no"
|
||||
/* 0x0004 */ u8 equippedMask; // "player_mask"
|
||||
/* 0x0005 */ u8 isFirstCycle; // "opening_flag"
|
||||
/* 0x0006 */ u8 unk_06;
|
||||
/* 0x0007 */ u8 linkAge; // "link_age"
|
||||
/* 0x0008 */ s32 cutscene; // "day_time"
|
||||
/* 0x000C */ u16 time; // "zelda_time"
|
||||
/* 0x0007 */ u8 linkAge; // "link_age"
|
||||
/* 0x0008 */ s32 cutscene; // "day_time"
|
||||
/* 0x000C */ u16 time; // "zelda_time"
|
||||
/* 0x000E */ u16 owlSaveLocation;
|
||||
/* 0x0010 */ s32 isNight; // "asahiru_fg"
|
||||
/* 0x0014 */ u32 unk_14; // "change_zelda_time"
|
||||
/* 0x0018 */ s32 day; // "totalday"
|
||||
/* 0x001C */ u32 daysElapsed; // "eventday"
|
||||
/* 0x0020 */ u8 playerForm; // "player_character"
|
||||
/* 0x0021 */ u8 snowheadCleared; // "spring_flag"
|
||||
/* 0x0022 */ u8 hasTatl; // "bell_flag"
|
||||
/* 0x0010 */ s32 isNight; // "asahiru_fg"
|
||||
/* 0x0014 */ u32 daySpeed; // "change_zelda_time"
|
||||
/* 0x0018 */ s32 day; // "totalday"
|
||||
/* 0x001C */ u32 daysElapsed; // "eventday"
|
||||
/* 0x0020 */ u8 playerForm; // "player_character"
|
||||
/* 0x0021 */ u8 snowheadCleared; // "spring_flag"
|
||||
/* 0x0022 */ u8 hasTatl; // "bell_flag"
|
||||
/* 0x0023 */ u8 isOwlSave;
|
||||
/* 0x0024 */ char newf[6]; // Will always be "ZELDA3" for a valid save
|
||||
/* 0x002B */ u16 deaths; // "savect"
|
||||
/* 0x002C */ char playerName[8]; // "player_name"
|
||||
/* 0x0034 */ s16 healthCapacity; // "max_life"
|
||||
/* 0x0036 */ s16 health; // "now_life"
|
||||
/* 0x0038 */ s8 magicLevel; // "magic_max"
|
||||
/* 0x0039 */ s8 magic; // "magic_now"
|
||||
/* 0x003A */ s16 rupees; // "lupy_count"
|
||||
/* 0x003C */ u16 swordHealth; // "long_sword_hp"
|
||||
/* 0x003E */ u16 tatlTimer; // "navi_timer"
|
||||
/* 0x0040 */ u8 magicAcquired; // "magic_mode"
|
||||
/* 0x0041 */ u8 doubleMagic; // "magic_ability"
|
||||
/* 0x0042 */ u8 doubleDefense; // "life_ability"
|
||||
/* 0x0043 */ u8 unk_43; // "ocarina_round"
|
||||
/* 0x0044 */ u8 unk_44; // "first_memory"
|
||||
/* 0x0046 */ u16 owlActivationFlags; // "memory_warp_point"
|
||||
/* 0x0048 */ u8 unk_48; // "last_warp_pt"
|
||||
/* 0x004A */ s16 savedSceneNum; // "scene_data_ID"
|
||||
/* 0x0024 */ SavePlayerData playerData;
|
||||
/* 0x004C */ ItemEquips equips;
|
||||
/* 0x0070 */ Inventory inventory;
|
||||
/* 0x00F8 */ PermanentSceneFlags permanentSceneFlags[120];
|
||||
@@ -103,144 +146,167 @@ typedef struct {
|
||||
/* 0x0E7C */ u32 pictoFlags1;
|
||||
/* 0x0E80 */ u32 unk_E80;
|
||||
/* 0x0E84 */ u32 unk_E84;
|
||||
/* 0x0E88 */ u32 unk_E88[7]; // Invadepoh flags
|
||||
/* 0x0EA4 */ u32 scenesVisible[7]; // tingle maps and clouded regions on pause map. Stores scenes bitwise for up to 224 scenes even though there are not that many scenes
|
||||
/* 0x0EC0 */ u32 skullTokenCount; // upper 16 bits store Swamp skulls, lower 16 bits store Ocean skulls
|
||||
/* 0x0EC4 */ u32 unk_EC4; // Gossic stone heart piece flags
|
||||
/* 0x0E88 */ u32 unk_E88[7]; // Invadepoh flags
|
||||
/* 0x0EA4 */ u32 scenesVisible[7]; // tingle maps and clouded regions on pause map. Stores scenes bitwise for up to 224 scenes even though there are not that many scenes
|
||||
/* 0x0EC0 */ u32 skullTokenCount; // upper 16 bits store Swamp skulls, lower 16 bits store Ocean skulls
|
||||
/* 0x0EC4 */ u32 unk_EC4; // Gossic stone heart piece flags
|
||||
/* 0x0EC8 */ u32 unk_EC8;
|
||||
/* 0x0ECC */ u32 unk_ECC[2]; // Related to blue warps
|
||||
/* 0x0ED4 */ u32 stolenItems; // Items stolen by Takkuri and given to Curiosity Shop Man
|
||||
/* 0x0ECC */ u32 unk_ECC[2]; // Related to blue warps
|
||||
/* 0x0ED4 */ u32 stolenItems; // Items stolen by Takkuri and given to Curiosity Shop Man
|
||||
/* 0x0ED8 */ u32 unk_DD8;
|
||||
/* 0x0EDC */ u32 bankRupees;
|
||||
/* 0x0EE0 */ u32 unk_EE0;
|
||||
/* 0x0EE4 */ u32 unk_EE4; // Fishing flags
|
||||
/* 0x0EE4 */ u32 unk_EE4; // Fishing flags
|
||||
/* 0x0EE8 */ u32 unk_EE8;
|
||||
/* 0x0EEC */ u32 horseBackBalloonHighScore;
|
||||
/* 0x0EF0 */ u32 lotteryCodeGuess; // Lottery code chosen by player (only uses lower three hex digits)
|
||||
/* 0x0EF4 */ u32 unk_EF4; // Shooting Gallery Man Flags
|
||||
/* 0x0EF8 */ u8 weekEventReg[100]; // "week_event_reg"
|
||||
/* 0x0F5C */ u32 mapsVisited; // "area_arrival"
|
||||
/* 0x0F60 */ u32 mapsVisible; // "cloud_clear"
|
||||
/* 0x0F64 */ u8 unk_F64; // "oca_rec_flag"
|
||||
/* 0x0F65 */ u8 unk_F65; // "oca_rec_flag8"
|
||||
/* 0x0F66 */ u8 unk_F66[128]; // "oca_rec_buff8"
|
||||
/* 0x0FE6 */ s8 unk_FE6; // "aikotoba_index"
|
||||
/* 0x0FE7 */ s8 unk_FE7[5]; // "aikotoba_table"
|
||||
/* 0x0FEC */ s8 lotteryCodes[3][3]; // Preset lottery codes "numbers_table"
|
||||
/* 0x0FF5 */ s8 spiderHouseMaskOrder[6]; // "kinsta_color_table"
|
||||
/* 0x0FFB */ s8 bomberCode[5]; // "bombers_aikotoba_table"
|
||||
/* 0x0EF0 */ u32 lotteryCodeGuess; // Lottery code chosen by player (only uses lower three hex digits)
|
||||
/* 0x0EF4 */ u32 unk_EF4; // Shooting Gallery Man Flags
|
||||
/* 0x0EF8 */ u8 weekEventReg[100]; // "week_event_reg"
|
||||
/* 0x0F5C */ u32 mapsVisited; // "area_arrival"
|
||||
/* 0x0F60 */ u32 mapsVisible; // "cloud_clear"
|
||||
/* 0x0F64 */ u8 unk_F64; // "oca_rec_flag" has scarecrows song
|
||||
/* 0x0F65 */ u8 unk_F65; // "oca_rec_flag8" scarecrows song set?
|
||||
/* 0x0F66 */ u8 scarecrowsSong[128];
|
||||
/* 0x0FE6 */ s8 bombersCaughtNum; // "aikotoba_index"
|
||||
/* 0x0FE7 */ s8 bombersCaughtOrder[5]; // "aikotoba_table"
|
||||
/* 0x0FEC */ s8 lotteryCodes[3][3]; // "numbers_table", Preset lottery codes
|
||||
/* 0x0FF5 */ s8 spiderHouseMaskOrder[6]; // "kinsta_color_table"
|
||||
/* 0x0FFB */ s8 bomberCode[5]; // "bombers_aikotoba_table"
|
||||
/* 0x1000 */ HorseData horseData;
|
||||
/* 0x100A */ u16 checksum; // "check_sum"
|
||||
/* 0x100C */ u8 eventInf[8];
|
||||
/* 0x1014 */ u8 unk_1014; // "stone_set_flag"
|
||||
/* 0x100A */ u16 checksum; // "check_sum"
|
||||
} Save; // size = 0x100C
|
||||
|
||||
typedef struct SaveContext {
|
||||
/* 0x0000 */ Save save;
|
||||
/* 0x100C */ u8 eventInf[8]; // "event_inf"
|
||||
/* 0x1014 */ u8 unk_1014; // "stone_set_flag"
|
||||
/* 0x1015 */ u8 unk_1015;
|
||||
/* 0x1016 */ u16 unk_1016;
|
||||
/* 0x1018 */ s16 rupeeAccumulator; // "lupy_udct"
|
||||
/* 0x101A */ u8 unk_101A[6]; // "bottle_status", one entry for each bottle
|
||||
/* 0x1020 */ OSTime unk_1020[6]; // "bottle_ostime", one entry for each bottle
|
||||
/* 0x1050 */ OSTime unk_1050[6]; // "bottle_sub", one entry for each bottle
|
||||
/* 0x1080 */ OSTime unk_1080[6]; // "bottle_time", one entry for each bottle
|
||||
/* 0x10B0 */ OSTime unk_10B0[6]; // "bottle_stop_time", one entry for each bottle
|
||||
/* 0x10E0 */ u64 pictoPhoto[1400]; // buffer containing the pictograph photo
|
||||
/* 0x3CA0 */ s32 fileNum; // "file_no"
|
||||
/* 0x3CA4 */ s16 powderKegTimer; // "big_bom_timer"
|
||||
/* 0x1016 */ u16 jinxTimer;
|
||||
/* 0x1018 */ s16 rupeeAccumulator; // "lupy_udct"
|
||||
/* 0x101A */ u8 unk_101A[6]; // "bottle_status", one entry for each bottle
|
||||
/* 0x1020 */ OSTime unk_1020[6]; // "bottle_ostime", one entry for each bottle
|
||||
/* 0x1050 */ OSTime unk_1050[6]; // "bottle_sub", one entry for each bottle
|
||||
/* 0x1080 */ OSTime unk_1080[6]; // "bottle_time", one entry for each bottle
|
||||
/* 0x10B0 */ OSTime unk_10B0[6]; // "bottle_stop_time", one entry for each bottle
|
||||
/* 0x10E0 */ u64 pictoPhoto[1400]; // buffer containing the pictograph photo
|
||||
/* 0x3CA0 */ s32 fileNum; // "file_no"
|
||||
/* 0x3CA4 */ s16 powderKegTimer; // "big_bom_timer"
|
||||
/* 0x3CA6 */ u8 unk_3CA6;
|
||||
/* 0x3CA7 */ u8 unk_3CA7; // "day_night_flag"
|
||||
/* 0x3CA8 */ s32 gameMode; // "mode"
|
||||
/* 0x3CAC */ s32 sceneSetupIndex; // "counter"
|
||||
/* 0x3CB0 */ s32 respawnFlag; // "restart_flag"
|
||||
/* 0x3CB4 */ RespawnData respawn[8]; // "restart_data"
|
||||
/* 0x3DB4 */ f32 entranceSpeed; // "player_wipe_speedF"
|
||||
/* 0x3DB8 */ u16 entranceSound; // "player_wipe_door_SE"
|
||||
/* 0x3DBA */ u8 unk_3DBA; // "player_wipe_item"
|
||||
/* 0x3DBB */ u8 unk_3DBB; // "next_walk"
|
||||
/* 0x3DBC */ u16 dogParams; // "dog_flag"
|
||||
/* 0x3DBE */ u8 textTriggerFlags; // "guide_status"
|
||||
/* 0x3DBF */ u8 showTitleCard; // "name_display"
|
||||
/* 0x3DC0 */ s16 unk_3DC0; // "shield_magic_timer"
|
||||
/* 0x3DC2 */ u8 unk_3DC2; // "pad1"
|
||||
/* 0x3DC8 */ OSTime unk_3DC8; // "get_time"
|
||||
/* 0x3DD0 */ u8 unk_3DD0[7]; // "event_fg"
|
||||
/* 0x3DD7 */ u8 unk_3DD7[7]; // "calc_flag"
|
||||
/* 0x3DE0 */ OSTime unk_3DE0[7]; // "event_ostime"
|
||||
/* 0x3E18 */ OSTime unk_3E18[7]; // "event_sub"
|
||||
/* 0x3E50 */ OSTime unk_3E50[7]; // "func_time"
|
||||
/* 0x3E88 */ OSTime unk_3E88[7]; // "func_end_time"
|
||||
/* 0x3EC0 */ OSTime unk_3EC0[7]; // "func_stop_time"
|
||||
/* 0x3EF8 */ s16 timerX[7]; // "event_xp"
|
||||
/* 0x3F06 */ s16 timerY[7]; // "event_yp"
|
||||
/* 0x3F14 */ s16 unk_3F14; // "character_change"
|
||||
/* 0x3F16 */ u8 seqIndex; // "old_bgm"
|
||||
/* 0x3F17 */ u8 nightSeqIndex; // "old_env"
|
||||
/* 0x3F18 */ u8 buttonStatus[6]; // "button_item"
|
||||
/* 0x3F1E */ u8 unk_3F1E; // "ck_fg"
|
||||
/* 0x3F20 */ u16 unk_3F20; // "alpha_type"
|
||||
/* 0x3F22 */ u16 unk_3F22; // "prev_alpha_type"
|
||||
/* 0x3F24 */ u16 unk_3F24; // "alpha_count"
|
||||
/* 0x3F26 */ u16 unk_3F26; // "last_time_type"
|
||||
/* 0x3F28 */ s16 unk_3F28; // "magic_flag"
|
||||
/* 0x3F2A */ s16 unk_3F2A; // "recovery_magic_flag"
|
||||
/* 0x3F2C */ s16 unk_3F2C; // "keep_magic_flag"
|
||||
/* 0x3F2E */ s16 unk_3F2E; // "magic_now_max"
|
||||
/* 0x3F30 */ s16 unk_3F30; // "magic_now_now"
|
||||
/* 0x3F32 */ s16 unk_3F32; // "magic_used"
|
||||
/* 0x3F34 */ s16 unk_3F34; // "magic_recovery"
|
||||
/* 0x3F36 */ u16 mapIndex; // "scene_ID"
|
||||
/* 0x3F38 */ u16 minigameState; // "yabusame_mode"
|
||||
/* 0x3F3A */ u16 minigameScore; // "yabusame_total"
|
||||
/* 0x3F3C */ u16 unk_3F3C; // "yabusame_out_ct"
|
||||
/* 0x3F3E */ u8 unk_3F3E; // "no_save"
|
||||
/* 0x3F3F */ u8 unk_3F3F; // "flash_flag"
|
||||
/* 0x3F40 */ u16 option_id; // "option_id"
|
||||
/* 0x3F42 */ u8 language; // "j_n"
|
||||
/* 0x3F43 */ u8 audioSetting; // "s_sound"
|
||||
/* 0x3F44 */ u8 unk_3F44; // "language"
|
||||
/* 0x3F45 */ u8 zTargetSetting; // 0: Switch; 1: Hold
|
||||
/* 0x3F46 */ u16 unk_3F46; // "NottoriBgm"
|
||||
/* 0x3F48 */ u8 unk_3F48; // "fade_go"
|
||||
/* 0x3F4A */ u16 nextCutsceneIndex; // "next_daytime"
|
||||
/* 0x3F4C */ u8 cutsceneTrigger; // "doukidemo"
|
||||
/* 0x3F4D */ u8 unk_3F4D; // "Kenjya_no"
|
||||
/* 0x3F4E */ u16 nextDayTime; // "next_zelda_time"
|
||||
/* 0x3F50 */ u8 fadeDuration; // "fade_speed"
|
||||
/* 0x3F51 */ u8 unk_3F51; // "wipe_speed"
|
||||
/* 0x3F52 */ u16 environmentTime; // "kankyo_time"
|
||||
/* 0x3F54 */ u8 dogIsLost; // "dog_event_flag"
|
||||
/* 0x3F55 */ u8 nextTransition; // "next_wipe"
|
||||
/* 0x3F56 */ s16 worldMapArea; // "area_type"
|
||||
/* 0x3F58 */ s16 sunsSongState; // "sunmoon_flag"
|
||||
/* 0x3F5A */ s16 healthAccumulator; // "life_mode"
|
||||
/* 0x3F5C */ s32 unk_3F5C; // "bet_rupees"
|
||||
/* 0x3F60 */ u8 unk_3F60; // "framescale_flag"
|
||||
/* 0x3F64 */ f32 unk_3F64; // "framescale_scale"
|
||||
/* 0x3F68 */ CycleSceneFlags cycleSceneFlags[120]; // Scene flags that are temporarily stored over the duration of a single 3-day cycle
|
||||
/* 0x48C8 */ u16 unk_48C8; // "scene_id_mix"
|
||||
/* 0x48CA */ u8 maskMaskBit[3]; // masks given away on the Moon
|
||||
/* 0x48CD */ char unk_48CD[24];
|
||||
/* 0x3CA7 */ u8 unk_3CA7; // "day_night_flag"
|
||||
/* 0x3CA8 */ s32 gameMode; // "mode"
|
||||
/* 0x3CAC */ s32 sceneSetupIndex; // "counter"
|
||||
/* 0x3CB0 */ s32 respawnFlag; // "restart_flag"
|
||||
/* 0x3CB4 */ RespawnData respawn[RESPAWN_MODE_MAX]; // "restart_data"
|
||||
/* 0x3DB4 */ f32 entranceSpeed; // "player_wipe_speedF"
|
||||
/* 0x3DB8 */ u16 entranceSound; // "player_wipe_door_SE"
|
||||
/* 0x3DBA */ u8 unk_3DBA; // "player_wipe_item"
|
||||
/* 0x3DBB */ u8 unk_3DBB; // "next_walk"
|
||||
/* 0x3DBC */ u16 dogParams; // "dog_flag"
|
||||
/* 0x3DBE */ u8 textTriggerFlags; // "guide_status"
|
||||
/* 0x3DBF */ u8 showTitleCard; // "name_display"
|
||||
/* 0x3DC0 */ s16 unk_3DC0; // "shield_magic_timer"
|
||||
/* 0x3DC2 */ u8 unk_3DC2; // "pad1"
|
||||
/* 0x3DC8 */ OSTime unk_3DC8; // "get_time"
|
||||
/* 0x3DD0 */ u8 unk_3DD0[7]; // "event_fg"
|
||||
/* 0x3DD7 */ u8 unk_3DD7[7]; // "calc_flag"
|
||||
/* 0x3DE0 */ OSTime unk_3DE0[7]; // "event_ostime"
|
||||
/* 0x3E18 */ OSTime unk_3E18[7]; // "event_sub"
|
||||
/* 0x3E50 */ OSTime unk_3E50[7]; // "func_time"
|
||||
/* 0x3E88 */ OSTime unk_3E88[7]; // "func_end_time"
|
||||
/* 0x3EC0 */ OSTime unk_3EC0[7]; // "func_stop_time"
|
||||
/* 0x3EF8 */ s16 timerX[7]; // "event_xp"
|
||||
/* 0x3F06 */ s16 timerY[7]; // "event_yp"
|
||||
/* 0x3F14 */ s16 unk_3F14; // "character_change"
|
||||
/* 0x3F16 */ u8 seqIndex; // "old_bgm"
|
||||
/* 0x3F17 */ u8 nightSeqIndex; // "old_env"
|
||||
/* 0x3F18 */ u8 buttonStatus[6]; // "button_item"
|
||||
/* 0x3F1E */ u8 unk_3F1E; // "ck_fg"
|
||||
/* 0x3F20 */ u16 unk_3F20; // "alpha_type"
|
||||
/* 0x3F22 */ u16 unk_3F22; // "prev_alpha_type"
|
||||
/* 0x3F24 */ u16 unk_3F24; // "alpha_count"
|
||||
/* 0x3F26 */ u16 unk_3F26; // "last_time_type"
|
||||
/* 0x3F28 */ s16 unk_3F28; // "magic_flag"
|
||||
/* 0x3F2A */ s16 unk_3F2A; // "recovery_magic_flag"
|
||||
/* 0x3F2C */ s16 unk_3F2C; // "keep_magic_flag"
|
||||
/* 0x3F2E */ s16 unk_3F2E; // "magic_now_max"
|
||||
/* 0x3F30 */ s16 unk_3F30; // "magic_now_now"
|
||||
/* 0x3F32 */ s16 unk_3F32; // "magic_used"
|
||||
/* 0x3F34 */ s16 unk_3F34; // "magic_recovery"
|
||||
/* 0x3F36 */ u16 mapIndex; // "scene_ID"
|
||||
/* 0x3F38 */ u16 minigameState; // "yabusame_mode"
|
||||
/* 0x3F3A */ u16 minigameScore; // "yabusame_total"
|
||||
/* 0x3F3C */ u16 unk_3F3C; // "yabusame_out_ct"
|
||||
/* 0x3F3E */ u8 unk_3F3E; // "no_save"
|
||||
/* 0x3F3F */ u8 unk_3F3F; // "flash_flag"
|
||||
/* 0x3F40 */ SaveOptions options;
|
||||
/* 0x3F46 */ u16 unk_3F46; // "NottoriBgm"
|
||||
/* 0x3F48 */ u8 unk_3F48; // "fade_go"
|
||||
/* 0x3F4A */ u16 nextCutsceneIndex; // "next_daytime"
|
||||
/* 0x3F4C */ u8 cutsceneTrigger; // "doukidemo"
|
||||
/* 0x3F4D */ u8 unk_3F4D; // "Kenjya_no"
|
||||
/* 0x3F4E */ u16 nextDayTime; // "next_zelda_time"
|
||||
/* 0x3F50 */ u8 fadeDuration; // "fade_speed"
|
||||
/* 0x3F51 */ u8 fadeSpeed; // "wipe_speed" transition related
|
||||
/* 0x3F52 */ u16 environmentTime; // "kankyo_time"
|
||||
/* 0x3F54 */ u8 dogIsLost; // "dog_event_flag"
|
||||
/* 0x3F55 */ u8 nextTransition; // "next_wipe"
|
||||
/* 0x3F56 */ s16 worldMapArea; // "area_type"
|
||||
/* 0x3F58 */ s16 sunsSongState; // "sunmoon_flag"
|
||||
/* 0x3F5A */ s16 healthAccumulator; // "life_mode"
|
||||
/* 0x3F5C */ s32 unk_3F5C; // "bet_rupees"
|
||||
/* 0x3F60 */ u8 screenScaleFlag; // "framescale_flag"
|
||||
/* 0x3F64 */ f32 screenScale; // "framescale_scale"
|
||||
/* 0x3F68 */ CycleSceneFlags cycleSceneFlags[120]; // Scene flags that are temporarily stored over the duration of a single 3-day cycle
|
||||
/* 0x48C8 */ u16 unk_48C8; // "scene_id_mix"
|
||||
/* 0x48CA */ u8 maskMaskBit[27]; // "mask_mask_bit", masks given away on the Moon
|
||||
} SaveContext; // size = 0x48C8
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ RESPAWN_MODE_VOID_OUT,
|
||||
/* 0x01 */ RESPAWN_MODE_GROTTO, // Exiting a grotto
|
||||
/* 0x02 */ RESPAWN_MODE_FARORES_WIND, // Unused in MM
|
||||
/* 0x03 */ RESPAWN_MODE_GORON,
|
||||
/* 0x04 */ RESPAWN_MODE_ZORA,
|
||||
/* 0x05 */ RESPAWN_MODE_DEKU,
|
||||
/* 0x06 */ RESPAWN_MODE_CHILD_LINK,
|
||||
/* 0x07 */ RESPAWN_MODE_UNK_7,
|
||||
/* 0x07 */ RESPAWN_MODE_UNK_8
|
||||
} RespawnMode;
|
||||
|
||||
typedef enum {
|
||||
typedef enum ButtonStatus {
|
||||
/* 0x00 */ BTN_ENABLED,
|
||||
/* 0xFF */ BTN_DISABLED = 0xFF
|
||||
} ButtonStatus;
|
||||
|
||||
typedef enum {
|
||||
typedef enum SunsSongState {
|
||||
/* 0 */ SUNSSONG_INACTIVE,
|
||||
/* 1 */ SUNSSONG_START, // the suns ocarina effect signals that the song has finished playing
|
||||
/* 2 */ SUNSSONG_SPEED_TIME, // suns was played where time passes, speed up the advancement of time
|
||||
/* 3 */ SUNSSONG_SPECIAL // time does not advance, but signals the song was played. used for freezing redeads
|
||||
} SunsSongState;
|
||||
|
||||
void Sram_ActivateOwl(u8 owlId);
|
||||
void Sram_ClearFlagsAtDawnOfTheFirstDay(void);
|
||||
void Sram_SaveEndOfCycle(struct GlobalContext* globalCtx);
|
||||
void Sram_IncrementDay(void);
|
||||
u16 Sram_CalcChecksum(void* data, size_t count);
|
||||
void Sram_InitNewSave(void);
|
||||
void Sram_InitDebugSave(void);
|
||||
void func_80144A94(SramContext* sramCtx);
|
||||
void Sram_OpenSave(struct FileChooseContext* fileChooseCtx, SramContext* sramCtx);
|
||||
void func_8014546C(SramContext* sramCtx);
|
||||
void func_801457CC(struct FileChooseContext* fileChooseCtx, SramContext* sramCtx);
|
||||
void func_80146580(struct FileChooseContext* fileChooseCtx, SramContext* sramCtx, s32 fileNum);
|
||||
void func_80146628(struct FileChooseContext* fileChooseCtx, SramContext* sramCtx);
|
||||
void Sram_InitSave(struct FileChooseContext* fileChooseCtx, SramContext* sramCtx);
|
||||
void func_80146DF8(SramContext* sramCtx);
|
||||
void Sram_InitSram(struct GameState* gameState, SramContext* sramCtx);
|
||||
void Sram_Alloc(struct GameState* gamestate, SramContext* sramCtx);
|
||||
void Sram_SaveSpecialEnterClockTown(struct GlobalContext* globalCtx);
|
||||
void Sram_SaveSpecialNewDay(struct GlobalContext* globalCtx);
|
||||
void func_80147008(SramContext* sramCtx, u32 curPage, u32 numPages);
|
||||
void func_80147020(SramContext* sramCtx);
|
||||
void func_80147068(SramContext* sramCtx);
|
||||
void func_80147138(SramContext* sramCtx, s32 curPage, s32 numPages);
|
||||
void func_80147150(SramContext* sramCtx);
|
||||
void func_80147198(SramContext* sramCtx);
|
||||
|
||||
extern s32 D_801C6798[];
|
||||
extern u8 D_801C67B0[24];
|
||||
extern s32 D_801C67C8[];
|
||||
extern s32 D_801C67E8[];
|
||||
extern s32 D_801C67F0[];
|
||||
extern s32 D_801C6818[];
|
||||
extern s32 D_801C6838[];
|
||||
extern s32 D_801C6840[];
|
||||
extern s32 D_801C6850[];
|
||||
|
||||
#endif
|
||||
|
||||
+2
-1
@@ -645,7 +645,8 @@ typedef enum {
|
||||
/* 0x6D */ SCENE_ICHIBA,
|
||||
/* 0x6E */ SCENE_BACKTOWN,
|
||||
/* 0x6F */ SCENE_CLOCKTOWER,
|
||||
/* 0x70 */ SCENE_ALLEY
|
||||
/* 0x70 */ SCENE_ALLEY,
|
||||
/* 0x71 */ SCENE_MAX
|
||||
} SceneID;
|
||||
|
||||
// SceneTableEntry draw configs
|
||||
|
||||
@@ -0,0 +1,248 @@
|
||||
#ifndef Z64SCHEDULE_H
|
||||
#define Z64SCHEDULE_H
|
||||
|
||||
#include "ultra64.h"
|
||||
|
||||
/*
|
||||
Schedule is a subsystem that acts as a way to make decisions based on the
|
||||
time and scene (and a limited selection of items). It is utilized by writing
|
||||
a script that is encoded into bytecode and ran, returning the result in a
|
||||
struct. The returned result can be a value or a encoded time value.
|
||||
|
||||
The scripts contain 2 kinds of instructions:
|
||||
- Checks with branches (relative offsets, either 1-byte offsets (short, *_S),
|
||||
or 2-byte offsets (long, *_L))
|
||||
- Returns
|
||||
|
||||
Scripts are stored as u8[]. They are built using the macros are the bottom of
|
||||
this file. The scheduledis.py script can be used to convert any scripts in
|
||||
actor data into the macros.
|
||||
*/
|
||||
|
||||
// Macro to convert the time format used in the save struct into the format used in Schedule
|
||||
#define SCHEDULE_CONVERT_TIME(time) ((time) - 0x10000 / 360 * 90)
|
||||
#define SCHEDULE_TIME_NOW SCHEDULE_CONVERT_TIME(gSaveContext.save.time)
|
||||
|
||||
typedef enum {
|
||||
/* 00 */ SCHEDULE_CMD_ID_CHECK_FLAG_S, // Checks if a weekEventReg flag is set and branches if so, short range branch
|
||||
/* 01 */ SCHEDULE_CMD_ID_CHECK_FLAG_L, // Checks if a weekEventReg flag is set and branches if so, long range branch
|
||||
/* 02 */ SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S, // Checks if the current time is within the range of the two provided times and branches if so, short range branch
|
||||
/* 03 */ SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L, // Checks if the current time is within the range of the two provided times and branches if so, long range branch
|
||||
/* 04 */ SCHEDULE_CMD_ID_RET_VAL_L, // Ends script and returns 2-byte value (Note: bugged as the return value size is only 1 byte in the struct)
|
||||
/* 05 */ SCHEDULE_CMD_ID_RET_NONE, // Ends script without returning anything
|
||||
/* 06 */ SCHEDULE_CMD_ID_RET_EMPTY, // Ends script and indicates return without changing existing value
|
||||
/* 07 */ SCHEDULE_CMD_ID_NOP, // No-Op
|
||||
/* 08 */ SCHEDULE_CMD_ID_CHECK_MISC_S, // Special check based on items or masks and branches if check passes, short range branch
|
||||
/* 09 */ SCHEDULE_CMD_ID_RET_VAL_S, // Ends script and returns byte value
|
||||
/* 10 */ SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S, // Checks if the current scene is not SceneNum and branches if so, short range branch
|
||||
/* 11 */ SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_L, // Checks if the current scene is not SceneNum and branches if so, long range branch
|
||||
/* 12 */ SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S, // Checks if the current day is not Day and branches if so, short range branch
|
||||
/* 13 */ SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L, // Checks if the current day is not Day and branches if so, long range branch
|
||||
/* 14 */ SCHEDULE_CMD_ID_RET_TIME, // Returns 2 time values
|
||||
/* 15 */ SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_S, // Branches if the current time is less than the command time, short range branch
|
||||
/* 16 */ SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_L, // Branches if the current time is less than the command time, long range branch
|
||||
/* 17 */ SCHEDULE_CMD_ID_BRANCH_S, // Always branch, short range branch
|
||||
/* 18 */ SCHEDULE_CMD_ID_BRANCH_L, // Always branch, long range branch
|
||||
} ScheduleCommandId;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ SCHEDULE_CHECK_MISC_ROOM_KEY,
|
||||
/* 1 */ SCHEDULE_CHECK_MISC_LETTER_TO_KAFEI,
|
||||
/* 2 */ SCHEDULE_CHECK_MISC_MASK_ROMANI,
|
||||
} ScheduleCheckMisc;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 result;
|
||||
/* 0x4 */ s32 time0;
|
||||
/* 0x8 */ s32 time1;
|
||||
/* 0xC */ s32 hasResult;
|
||||
} ScheduleResult; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 cmd;
|
||||
} ScheduleCmdBase; // size = 0x1
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ u8 flagByte;
|
||||
/* 0x2 */ u8 flagMask;
|
||||
/* 0x3 */ s8 offset;
|
||||
} ScheduleCmdCheckFlagS; // size = 0x4
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ u8 flagByte;
|
||||
/* 0x2 */ u8 flagMask;
|
||||
/* 0x3 */ u8 offsetH;
|
||||
/* 0x4 */ u8 offsetL;
|
||||
} ScheduleCmdCheckFlagL; // size = 0x5
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ u8 startHr;
|
||||
/* 0x2 */ u8 startMin;
|
||||
/* 0x3 */ u8 endHr;
|
||||
/* 0x4 */ u8 endMin;
|
||||
/* 0x5 */ s8 offset;
|
||||
} ScheduleCmdCheckTimeRangeS; // size = 0x6
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ u8 startHr;
|
||||
/* 0x2 */ u8 startMin;
|
||||
/* 0x3 */ u8 endHr;
|
||||
/* 0x4 */ u8 endMin;
|
||||
/* 0x5 */ u8 offsetH;
|
||||
/* 0x6 */ u8 offsetL;
|
||||
} ScheduleCmdCheckTimeRangeL; // size = 0x7
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ u8 retH;
|
||||
/* 0x2 */ u8 retL;
|
||||
} ScheduleCmdReturnValueL; // size = 0x3
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ u8 unk1;
|
||||
/* 0x2 */ u8 unk2;
|
||||
/* 0x3 */ u8 unk3;
|
||||
} ScheduleCmdNop; // size = 0x4
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ u8 which;
|
||||
/* 0x2 */ s8 offset;
|
||||
} ScheduleCmdCheckMiscS; // size = 0x3
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ u8 result;
|
||||
} ScheduleCmdReturnValueS; // size = 0x2
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ u8 sceneH;
|
||||
/* 0x2 */ u8 sceneL;
|
||||
/* 0x3 */ s8 offset;
|
||||
} ScheduleCmdCheckNotInSceneS; // size = 0x4
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ u8 sceneH;
|
||||
/* 0x2 */ u8 sceneL;
|
||||
/* 0x3 */ u8 offsetH;
|
||||
/* 0x4 */ u8 offsetL;
|
||||
} ScheduleCmdCheckNotInSceneL; // size = 0x5
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ u8 dayH;
|
||||
/* 0x2 */ u8 dayL;
|
||||
/* 0x3 */ s8 offset;
|
||||
} ScheduleCmdCheckNotInDayS; // size = 0x4
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ u8 dayH;
|
||||
/* 0x2 */ u8 dayL;
|
||||
/* 0x3 */ u8 offsetH;
|
||||
/* 0x4 */ u8 offsetL;
|
||||
} ScheduleCmdCheckNotInDayL; // size = 0x5
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ u8 time0Hr;
|
||||
/* 0x2 */ u8 time0Min;
|
||||
/* 0x3 */ u8 time1Hr;
|
||||
/* 0x4 */ u8 time1Min;
|
||||
/* 0x5 */ u8 result;
|
||||
} ScheduleCmdReturnTime; // size = 0x6
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ u8 timeHr;
|
||||
/* 0x2 */ u8 timeMin;
|
||||
/* 0x3 */ s8 offset;
|
||||
} ScheduleCmdCheckBeforeTimeS; // size = 0x4
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ u8 timeHr;
|
||||
/* 0x2 */ u8 timeMin;
|
||||
/* 0x3 */ u8 offsetH;
|
||||
/* 0x4 */ u8 offsetL;
|
||||
} ScheduleCmdCheckBeforeTimeL; // size = 0x5
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ s8 offset;
|
||||
} ScheduleCmdBranchS; // size = 0x2
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ ScheduleCmdBase base;
|
||||
/* 0x1 */ u8 offsetH;
|
||||
/* 0x2 */ u8 offsetL;
|
||||
} ScheduleCmdBranchL; // size = 0x3
|
||||
|
||||
#define SCHEDULE_PACK_S16(val) \
|
||||
((val) >> 8) & 0xFF, (val) & 0xFF
|
||||
|
||||
#define SCHEDULE_CMD_CHECK_FLAG_S(index, mask, offset) \
|
||||
SCHEDULE_CMD_ID_CHECK_FLAG_S, (index), (mask), (offset)
|
||||
|
||||
#define SCHEDULE_CMD_CHECK_FLAG_L(index, mask, offset) \
|
||||
SCHEDULE_CMD_ID_CHECK_FLAG_L, (index), (mask), SCHEDULE_PACK_S16(offset)
|
||||
|
||||
#define SCHEDULE_CMD_CHECK_TIME_RANGE_S(startHr, startMin, endHr, endMin, offset) \
|
||||
SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S, (startHr), (startMin), (endHr), (endMin), (offset)
|
||||
|
||||
#define SCHEDULE_CMD_CHECK_TIME_RANGE_L(startHr, startMin, endHr, endMin, offset) \
|
||||
SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L, (startHr), (startMin), (endHr), (endMin), SCHEDULE_PACK_S16(offset)
|
||||
|
||||
#define SCHEDULE_CMD_RET_VAL_L(result) \
|
||||
SCHEDULE_CMD_ID_RET_VAL_L, SCHEDULE_PACK_S16(result)
|
||||
|
||||
#define SCHEDULE_CMD_RET_NONE() \
|
||||
SCHEDULE_CMD_ID_RET_NONE
|
||||
|
||||
#define SCHEDULE_CMD_RET_EMPTY() \
|
||||
SCHEDULE_CMD_ID_RET_EMPTY,
|
||||
|
||||
#define SCHEDULE_CMD_NOP(unk0, unk1, unk2) \
|
||||
SCHEDULE_CMD_ID_NOP, (unk0), (unk1), (unk2)
|
||||
|
||||
#define SCHEDULE_CMD_CHECK_MISC_S(which, offset) \
|
||||
SCHEDULE_CMD_ID_CHECK_MISC_S, (which), (offset)
|
||||
|
||||
#define SCHEDULE_CMD_RET_VAL_S(result) \
|
||||
SCHEDULE_CMD_ID_RET_VAL_S, (result)
|
||||
|
||||
#define SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(scene, offset) \
|
||||
SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S, SCHEDULE_PACK_S16(scene), (offset)
|
||||
|
||||
#define SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(scene, offset) \
|
||||
SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_L, SCHEDULE_PACK_S16(scene), SCHEDULE_PACK_S16(offset)
|
||||
|
||||
#define SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(day, offset) \
|
||||
SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S, SCHEDULE_PACK_S16(day), (offset)
|
||||
|
||||
#define SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(day, offset) \
|
||||
SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L, SCHEDULE_PACK_S16(day), SCHEDULE_PACK_S16(offset)
|
||||
|
||||
#define SCHEDULE_CMD_RET_TIME(time0Hr, time0Min, time1Hr, time1Min, result) \
|
||||
SCHEDULE_CMD_ID_RET_TIME, (time0Hr), (time0Min), (time1Hr), (time1Min), (result)
|
||||
|
||||
#define SCHEDULE_CMD_CHECK_BEFORE_TIME_S(timeHr, timeMin, offset) \
|
||||
SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_S, (timeHr), (timeMin), (offset)
|
||||
|
||||
#define SCHEDULE_CMD_CHECK_BEFORE_TIME_L(timeHr, timeMin, offset) \
|
||||
SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_L, (timeHr), (timeMin), SCHEDULE_PACK_S16(offset)
|
||||
|
||||
#define SCHEDULE_CMD_BRANCH_S(offset) \
|
||||
SCHEDULE_CMD_ID_BRANCH_S, (offset)
|
||||
|
||||
#define SCHEDULE_CMD_BRANCH_L(offset) \
|
||||
SCHEDULE_CMD_ID_BRANCH_L, SCHEDULE_PACK_S16(offset)
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,106 @@
|
||||
#ifndef Z64_SKIN_H
|
||||
#define Z64_SKIN_H
|
||||
|
||||
#include "z64animation.h"
|
||||
|
||||
struct GraphicsContext;
|
||||
struct GameState;
|
||||
struct GlobalContext;
|
||||
|
||||
/**
|
||||
* Holds a compact version of a vertex used in the Skin system (doesn't has the x, y, z positions or the flag member)
|
||||
* It is used to initialise the Vtx used by an animated limb
|
||||
*/
|
||||
typedef struct {
|
||||
/* 0x0 */ u16 index;
|
||||
/* 0x2 */ s16 s; // s and t are texture coordinates (also known as u and v)
|
||||
/* 0x4 */ s16 t;
|
||||
/* 0x6 */ s8 normX;
|
||||
/* 0x7 */ s8 normY;
|
||||
/* 0x8 */ s8 normZ;
|
||||
/* 0x9 */ u8 alpha;
|
||||
} SkinVertex; // size = 0xA
|
||||
|
||||
/**
|
||||
* Describes a position displacement and a scale to be applied to a limb at index `limbIndex`
|
||||
*/
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 limbIndex;
|
||||
/* 0x2 */ s16 x;
|
||||
/* 0x4 */ s16 y;
|
||||
/* 0x6 */ s16 z;
|
||||
/* 0x8 */ u8 scale;
|
||||
} SkinTransformation; // size = 0xA
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 vtxCount; // number of vertices in this modif entry
|
||||
/* 0x02 */ u16 transformCount;
|
||||
/* 0x04 */ u16 unk_04; // index of limbTransformations
|
||||
/* 0x08 */ SkinVertex* skinVertices;
|
||||
/* 0x0C */ SkinTransformation* limbTransformations;
|
||||
} SkinLimbModif; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 totalVtxCount; // total vertex count for all modif entries
|
||||
/* 0x02 */ u16 limbModifCount; // count of limbModifCount
|
||||
/* 0x04 */ SkinLimbModif* limbModifications;
|
||||
/* 0x08 */ Gfx* dlist;
|
||||
} SkinAnimatedLimbData; // size = 0xC
|
||||
|
||||
// ZAPD compatibility typedefs
|
||||
// TODO: Remove when ZAPD adds support for them
|
||||
typedef SkinVertex Struct_800A57C0;
|
||||
typedef SkinTransformation Struct_800A598C_2;
|
||||
typedef SkinAnimatedLimbData Struct_800A5E28;
|
||||
typedef SkinLimbModif Struct_800A598C;
|
||||
|
||||
#define SKIN_LIMB_TYPE_ANIMATED 4
|
||||
#define SKIN_LIMB_TYPE_NORMAL 11
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3s jointPos; // Root is position in model space, children are relative to parent
|
||||
/* 0x06 */ u8 child;
|
||||
/* 0x07 */ u8 sibling;
|
||||
/* 0x08 */ s32 segmentType; // Type of data contained in segment
|
||||
/* 0x0C */ void* segment; // Gfx* if segmentType is SKIN_LIMB_TYPE_NORMAL, SkinAnimatedLimbData if segmentType is SKIN_LIMB_TYPE_ANIMATED, NULL otherwise
|
||||
} SkinLimb; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 index; // alternates every draw cycle
|
||||
/* 0x4 */ Vtx* buf[2]; // number of vertices in buffer determined by `totalVtxCount`
|
||||
} SkinLimbVtx; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ SkeletonHeader* skeletonHeader;
|
||||
/* 0x004 */ MtxF mtx;
|
||||
/* 0x044 */ s32 limbCount;
|
||||
/* 0x048 */ SkinLimbVtx* vtxTable; // double buffered list of vertices for each limb
|
||||
/* 0x04C */ SkelAnime skelAnime;
|
||||
} Skin; // size = 0x90
|
||||
|
||||
typedef void (*SkinPostDraw)(struct Actor*, struct GlobalContext*, Skin*);
|
||||
typedef s32 (*SkinOverrideLimbDraw)(struct Actor*, struct GlobalContext*, s32, Skin*);
|
||||
|
||||
#define SKIN_DRAW_FLAG_CUSTOM_TRANSFORMS (1 << 0)
|
||||
#define SKIN_DRAW_FLAG_CUSTOM_MATRIX (1 << 1)
|
||||
|
||||
|
||||
void Skin_UpdateVertices(MtxF* mtx, SkinVertex* skinVertices, SkinLimbModif* modifEntry, Vtx* vtxBuf, Vec3f* pos);
|
||||
void Skin_ApplyLimbModifications(struct GraphicsContext* gfxCtx, Skin* skin, s32 limbIndex, s32 arg3);
|
||||
void Skin_DrawAnimatedLimb(struct GraphicsContext* gfxCtx, Skin* skin, s32 limbIndex, s32 arg3, s32 drawFlags);
|
||||
void Skin_DrawLimb(struct GraphicsContext* gfxCtx, Skin* skin, s32 limbIndex, Gfx* dListOverride, s32 drawFlags);
|
||||
void func_80138228(Actor* actor, struct GlobalContext* globalCtx, Skin* skin, SkinPostDraw postDraw, s32 setTranslation);
|
||||
void func_80138258(Actor* actor, struct GlobalContext* globalCtx, Skin* skin, SkinPostDraw postDraw, SkinOverrideLimbDraw overrideLimbDraw, s32 setTranslation);
|
||||
void func_8013828C(Actor* actor, struct GlobalContext* globalCtx, Skin* skin, SkinPostDraw postDraw, SkinOverrideLimbDraw overrideLimbDraw, s32 setTranslation, s32 arg6);
|
||||
void func_801382C4(Actor* actor, struct GlobalContext* globalCtx, Skin* skin, SkinPostDraw postDraw, SkinOverrideLimbDraw overrideLimbDraw, s32 setTranslation, s32 arg6, s32 drawFlags);
|
||||
void Skin_GetLimbPos(Skin* skin, s32 limbIndex, Vec3f* offset, Vec3f* dst);
|
||||
void Skin_GetVertexPos(Skin* skin, s32 limbIndex, s32 vtxIndex, Vec3f* dst);
|
||||
|
||||
void Skin_Setup(Skin* skin);
|
||||
void Skin_InitAnimatedLimb(struct GameState* gameState, Skin* skin, s32 limbIndex);
|
||||
void Skin_Init(struct GameState* gameState, Skin* skin, SkeletonHeader* skeletonHeader, AnimationHeader* animationHeader);
|
||||
void Skin_Free(struct GameState* gameState, Skin* skin);
|
||||
s32 func_801387D4(Skin* skin, SkinLimb** skeleton, MtxF* limbMatrices, u8 parentIndex, u8 limbIndex);
|
||||
s32 Skin_ApplyAnimTransformations(Skin* skin, MtxF* limbMatrices, Actor* actor, s32 setTranslation);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,69 @@
|
||||
#ifndef Z64SUBS_H
|
||||
#define Z64SUBS_H
|
||||
|
||||
#include "z64actor.h"
|
||||
#include "z64scene.h"
|
||||
|
||||
#include "code/sub_s/sub_s.h"
|
||||
|
||||
extern Vec3f gOneVec3f;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ SUBS_CUTSCENE_SET_UNK_LINK_FIELDS,
|
||||
/* 1 */ SUBS_CUTSCENE_NORMAL,
|
||||
/* 2 */ SUBS_CUTSCENE_SET_FLAG
|
||||
} SubSCutsceneType;
|
||||
|
||||
//! @TODO: rename based on func_8013E748 and func_800B8500
|
||||
typedef s32 (*func_8013E748_VerifyFunc)(struct GlobalContext*, Actor*, void*);
|
||||
|
||||
typedef s32 (*VerifyActor)(struct GlobalContext*, Actor*, Actor*, void*);
|
||||
|
||||
#define SUBS_SHADOW_TEX_WIDTH 64
|
||||
#define SUBS_SHADOW_TEX_HEIGHT 64
|
||||
#define SUBS_SHADOW_TEX_SIZE ((s32)sizeof(u8[SUBS_SHADOW_TEX_HEIGHT][SUBS_SHADOW_TEX_WIDTH]))
|
||||
|
||||
#define ACTOR_PATHING_RETURN_TO_START (1 << 0)
|
||||
#define ACTOR_PATHING_SWITCH_DIRECTION (1 << 1)
|
||||
#define ACTOR_PATHING_MOVE_BACKWARDS (1 << 3)
|
||||
#define ACTOR_PATHING_REACHED_POINT_PERMANENT (1 << 4)
|
||||
#define ACTOR_PATHING_REACHED_END_PERMANENT (1 << 5)
|
||||
#define ACTOR_PATHING_REACHED_POINT_TEMPORARY (1 << 6)
|
||||
#define ACTOR_PATHING_REACHED_END_TEMPORARY (1 << 7)
|
||||
|
||||
#define ACTOR_PATHING_REACHED_TEMPORARY \
|
||||
(ACTOR_PATHING_REACHED_POINT_TEMPORARY | ACTOR_PATHING_REACHED_END_TEMPORARY)
|
||||
#define ACTOR_PATHING_REACHED_POINT \
|
||||
(ACTOR_PATHING_REACHED_POINT_PERMANENT | ACTOR_PATHING_REACHED_POINT_TEMPORARY)
|
||||
#define ACTOR_PATHING_REACHED_END \
|
||||
(ACTOR_PATHING_REACHED_END_PERMANENT | ACTOR_PATHING_REACHED_END_TEMPORARY)
|
||||
|
||||
struct ActorPathing;
|
||||
typedef void (*ActorPathingComputeFunc)(struct GlobalContext*, struct ActorPathing*);
|
||||
typedef s32 (*ActorPathingUpdateFunc)(struct GlobalContext*, struct ActorPathing*);
|
||||
|
||||
typedef struct ActorPathing {
|
||||
/* 0x00 */ Path* setupPathList;
|
||||
/* 0x04 */ s32 pathIndex;
|
||||
/* 0x08 */ Vec3s* points;
|
||||
/* 0x0C */ s32 count;
|
||||
/* 0x10 */ s32 curPointIndex;
|
||||
/* 0x14 */ s32 begPointIndex;
|
||||
/* 0x18 */ s32 endPointIndex;
|
||||
/* 0x1C */ u8 flags;
|
||||
/* 0x1D */ u8 prevFlags;
|
||||
/* 0x20 */ Vec3f curPoint;
|
||||
/* 0x2C */ Vec3f pointOffset;
|
||||
/* 0x38 */ Vec3f prevPoint;
|
||||
/* 0x44 */ Vec3f* worldPos;
|
||||
/* 0x48 */ Actor* actor;
|
||||
/* 0x4C */ f32 distSqToCurPointXZ;
|
||||
/* 0x50 */ f32 distSqToCurPoint;
|
||||
/* 0x54 */ Vec3s rotToCurPoint;
|
||||
/* 0x5C */ ActorPathingComputeFunc computePointInfoFunc;
|
||||
/* 0x60 */ ActorPathingUpdateFunc updateActorInfoFunc; // Return true if should setNextPoint, false if the actor should move forward
|
||||
/* 0x64 */ ActorPathingUpdateFunc moveFunc; // Return true if should compute and update again
|
||||
/* 0x68 */ ActorPathingUpdateFunc setNextPointFunc; // Return true if should compute and update again
|
||||
} ActorPathing; // size = 0x6C
|
||||
|
||||
#endif
|
||||
@@ -72,8 +72,8 @@ typedef struct EnHy {
|
||||
} EnHy; // size = 0x3EC
|
||||
|
||||
extern s8 gEnHyBodyParts[];
|
||||
extern s8 gEnHyBodyPartsIndex[];
|
||||
extern u8 gEnHyShadowSize[];
|
||||
extern s8 gEnHyParentBodyParts[];
|
||||
extern u8 gEnHyShadowSizes[];
|
||||
|
||||
s32 EnHy_ChangeAnim(SkelAnime* skelAnime, s16 animIndex);
|
||||
EnDoor* EnHy_FindNearestDoor(Actor* actor, GlobalContext* globalCtx);
|
||||
|
||||
+107
-9
@@ -1,18 +1,116 @@
|
||||
#include "global.h"
|
||||
#include "os_malloc.h"
|
||||
#include "system_malloc.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_800862E0/SystemArena_MallocMin1.s")
|
||||
typedef void (*BlockFunc)(void*);
|
||||
typedef void (*BlockFunc1)(void*, u32);
|
||||
typedef void (*BlockFunc8)(void*, u32, u32, u32, u32, u32, u32, u32, u32);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_800862E0/SystemArena_FreeNull.s")
|
||||
typedef struct InitFunc {
|
||||
uintptr_t nextOffset;
|
||||
void (*func)(void);
|
||||
} InitFunc;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_800862E0/func_8008633C.s")
|
||||
void* sInitFuncs = NULL;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_800862E0/func_800863AC.s")
|
||||
char sNew[] = { 0x00, 0x00, 0x00, 0x00 };
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_800862E0/func_8008641C.s")
|
||||
char D_80097508[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x00,
|
||||
0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_800862E0/func_800864EC.s")
|
||||
void* SystemArena_MallocMin1(size_t size) {
|
||||
if (size == 0) {
|
||||
size = 1;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_800862E0/func_80086588.s")
|
||||
return __osMalloc(&gSystemArena, size);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_800862E0/SystemArena_Init.s")
|
||||
void SystemArena_FreeNullCheck(void* ptr) {
|
||||
if (ptr != NULL) {
|
||||
__osFree(&gSystemArena, ptr);
|
||||
}
|
||||
}
|
||||
|
||||
void SystemArena_RunBlockFunc(void* blk, size_t nBlk, size_t blkSize, BlockFunc blockFunc) {
|
||||
uintptr_t pos = blk;
|
||||
|
||||
for (; pos < (uintptr_t)blk + (nBlk * blkSize); pos += (blkSize & ~0)) {
|
||||
blockFunc(pos);
|
||||
}
|
||||
}
|
||||
|
||||
void SystemArena_RunBlockFunc1(void* blk, size_t nBlk, size_t blkSize, BlockFunc1 blockFunc) {
|
||||
uintptr_t pos = blk;
|
||||
|
||||
for (; pos < (uintptr_t)blk + (nBlk * blkSize); pos += (blkSize & ~0)) {
|
||||
blockFunc(pos, 2);
|
||||
}
|
||||
}
|
||||
|
||||
void* SystemArena_RunBlockFunc8(void* blk, size_t nBlk, size_t blkSize, BlockFunc8 blockFunc) {
|
||||
if (blk == NULL) {
|
||||
blk = SystemArena_MallocMin1(nBlk * blkSize);
|
||||
}
|
||||
|
||||
if (blk != NULL && blockFunc != NULL) {
|
||||
uintptr_t pos = blk;
|
||||
|
||||
for (; pos < (uintptr_t)blk + (nBlk * blkSize); pos += (blkSize & ~0)) {
|
||||
blockFunc(pos, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
return blk;
|
||||
}
|
||||
|
||||
void SystemArena_RunBlockFunc1Reverse(void* blk, size_t nBlk, size_t blkSize, BlockFunc1 blockFunc, s32 shouldFree) {
|
||||
uintptr_t pos;
|
||||
uintptr_t start;
|
||||
size_t maskedBlkSize;
|
||||
|
||||
if (blk == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (blockFunc != NULL) {
|
||||
start = blk;
|
||||
maskedBlkSize = (blkSize & ~0);
|
||||
pos = (uintptr_t)start + (nBlk * blkSize);
|
||||
|
||||
while (pos > start) {
|
||||
pos -= maskedBlkSize;
|
||||
blockFunc(pos, 2);
|
||||
}
|
||||
}
|
||||
|
||||
if (shouldFree) {
|
||||
SystemArena_FreeNullCheck(blk);
|
||||
}
|
||||
}
|
||||
|
||||
void SystemArena_RunInits(void) {
|
||||
InitFunc* initFunc = (InitFunc*)&sInitFuncs;
|
||||
u32 nextOffset = initFunc->nextOffset;
|
||||
InitFunc* prev = NULL;
|
||||
|
||||
while (nextOffset != 0) {
|
||||
initFunc = (InitFunc*)((uintptr_t)initFunc + nextOffset);
|
||||
|
||||
if (initFunc->func != NULL) {
|
||||
(*initFunc->func)();
|
||||
}
|
||||
|
||||
nextOffset = initFunc->nextOffset;
|
||||
initFunc->nextOffset = (uintptr_t)prev;
|
||||
prev = initFunc;
|
||||
}
|
||||
|
||||
sInitFuncs = prev;
|
||||
}
|
||||
|
||||
void SystemArena_Init(void* start, size_t size) {
|
||||
SystemArena_InitArena(start, size);
|
||||
SystemArena_RunInits();
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "global.h"
|
||||
|
||||
u8 D_80096B20 = 1;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "PR/ultratypes.h"
|
||||
#include "ultra64/vi.h"
|
||||
|
||||
// This file is currently required to fix bss reordering in idle.c. It is not resolved by prevent_bss_reordering.h .
|
||||
// Hopefully it will not be permanent.
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "global.h"
|
||||
|
||||
u8 sYaz0DataBuffer[0x400];
|
||||
@@ -18,7 +17,7 @@ void* Yaz0_FirstDMA() {
|
||||
curSize = (u32)sYaz0CurDataEnd - (u32)sYaz0DataBuffer;
|
||||
dmaSize = (curSize > sYaz0CurSize) ? sYaz0CurSize : curSize;
|
||||
|
||||
DmaMgr_DMARomToRam(sYaz0CurRomStart, sYaz0DataBuffer, dmaSize);
|
||||
DmaMgr_DmaRomToRam(sYaz0CurRomStart, sYaz0DataBuffer, dmaSize);
|
||||
sYaz0CurRomStart += dmaSize;
|
||||
sYaz0CurSize -= dmaSize;
|
||||
return sYaz0DataBuffer;
|
||||
@@ -41,7 +40,7 @@ void* Yaz0_NextDMA(void* curSrcPos) {
|
||||
}
|
||||
|
||||
if (dmaSize != 0) {
|
||||
DmaMgr_DMARomToRam(sYaz0CurRomStart, dst + restSize, dmaSize);
|
||||
DmaMgr_DmaRomToRam(sYaz0CurRomStart, dst + restSize, dmaSize);
|
||||
sYaz0CurRomStart += dmaSize;
|
||||
sYaz0CurSize -= dmaSize;
|
||||
if (!sYaz0CurSize) {
|
||||
|
||||
@@ -10,7 +10,7 @@ OSMesg sDmaMgrMsgs[32];
|
||||
OSThread sDmaMgrThread;
|
||||
u8 sDmaMgrStack[0x500];
|
||||
|
||||
s32 DmaMgr_DMARomToRam(uintptr_t rom, void* ram, size_t size) {
|
||||
s32 DmaMgr_DmaRomToRam(uintptr_t rom, void* ram, size_t size) {
|
||||
OSIoMesg ioMsg;
|
||||
OSMesgQueue queue;
|
||||
OSMesg msg[1];
|
||||
@@ -56,8 +56,8 @@ END:
|
||||
return ret;
|
||||
}
|
||||
|
||||
void DmaMgr_DmaCallback0(OSPiHandle* pihandle, OSIoMesg* mb, s32 direction) {
|
||||
osEPiStartDma(pihandle, mb, direction);
|
||||
s32 DmaMgr_DmaHandler(OSPiHandle* pihandle, OSIoMesg* mb, s32 direction) {
|
||||
return osEPiStartDma(pihandle, mb, direction);
|
||||
}
|
||||
|
||||
DmaEntry* DmaMgr_FindDmaEntry(u32 vrom) {
|
||||
@@ -130,7 +130,7 @@ void DmaMgr_ProcessMsg(DmaRequest* req) {
|
||||
if (dmaEntry->vromEnd < (vrom + size)) {
|
||||
Fault_AddHungupAndCrash("../z_std_dma.c", 499);
|
||||
}
|
||||
DmaMgr_DMARomToRam((dmaEntry->romStart + vrom) - dmaEntry->vromStart, (u8*)ram, size);
|
||||
DmaMgr_DmaRomToRam((dmaEntry->romStart + vrom) - dmaEntry->vromStart, (u8*)ram, size);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -211,7 +211,7 @@ s32 DmaMgr_SendRequest0(void* vramStart, uintptr_t vromStart, size_t size) {
|
||||
}
|
||||
|
||||
void DmaMgr_Start(void) {
|
||||
DmaMgr_DMARomToRam(SEGMENT_ROM_START(dmadata), dmadata, SEGMENT_ROM_SIZE(dmadata));
|
||||
DmaMgr_DmaRomToRam(SEGMENT_ROM_START(dmadata), dmadata, SEGMENT_ROM_SIZE(dmadata));
|
||||
|
||||
{
|
||||
DmaEntry* iter = dmadata;
|
||||
|
||||
+1631
-55
File diff suppressed because it is too large
Load Diff
@@ -7,6 +7,6 @@ const s16 gAudioTatumInit[] = {
|
||||
|
||||
const AudioContextInitSizes gAudioContextInitSizes = {
|
||||
0x137F00, // heapSize
|
||||
0x1C480, // initPoolSize
|
||||
0x1C480, // mainPoolSplitSize
|
||||
0x1A000, // permanentPoolSize
|
||||
};
|
||||
|
||||
+2161
-159
File diff suppressed because it is too large
Load Diff
@@ -982,7 +982,7 @@ void AudioPlayback_NoteInitAll(void) {
|
||||
note->playbackState.portamento.speed = 0;
|
||||
note->playbackState.stereoHeadsetEffects = false;
|
||||
note->playbackState.unk_84 = 0;
|
||||
note->synthesisState.synthesisBuffers = AudioHeap_AllocDmaMemory(&gAudioContext.notesAndBuffersPool, 0x2E0);
|
||||
note->playbackState.attributes.filterBuf = AudioHeap_AllocDmaMemory(&gAudioContext.notesAndBuffersPool, 0x10);
|
||||
note->synthesisState.synthesisBuffers = AudioHeap_AllocDmaMemory(&gAudioContext.miscPool, 0x2E0);
|
||||
note->playbackState.attributes.filterBuf = AudioHeap_AllocDmaMemory(&gAudioContext.miscPool, 0x10);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_seqplayer/func_80197C8C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_seqplayer/func_80197D24.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_seqplayer/AudioSeq_SequencePlayerDisableAsFinished.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_seqplayer/AudioSeq_SequencePlayerDisable.s")
|
||||
|
||||
@@ -64,10 +64,10 @@
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_seqplayer/func_8019AAF0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_seqplayer/func_8019AB40.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_seqplayer/AudioSeq_ResetSequencePlayer.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_seqplayer/func_8019AC10.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_seqplayer/AudioSeq_InitSequencePlayerChannels.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_seqplayer/func_8019ACEC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_seqplayer/func_8019ADBC.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_seqplayer/AudioSeq_InitSequencePlayers.s")
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_80192BE0/func_8019387C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_80192BE0/func_801938A0.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_80192BE0/Audio_QueueCmdS8.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_80192BE0/func_801938D0.s")
|
||||
|
||||
@@ -76,6 +76,6 @@
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_80192BE0/func_80194568.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_80192BE0/func_80194668.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_80192BE0/Audio_NextRandom.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_80192BE0/func_801946E4.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_80192BE0/Audio_InitMesgQueues.s")
|
||||
|
||||
+441
-34
@@ -45,7 +45,7 @@ typedef enum {
|
||||
/* 0xD */ SFX_CHANNEL_OCARINA, // SfxOcarinaBank
|
||||
/* 0xE */ SFX_CHANNEL_VOICE0, // SfxVoiceBank
|
||||
/* 0xF */ SFX_CHANNEL_VOICE1
|
||||
} SfxChannelIdx; // playerIdx = 2
|
||||
} SfxChannelIndex; // playerIndex = 2
|
||||
|
||||
// Global IO ports for sequences, 8 global ports per seqPlayer
|
||||
typedef enum {
|
||||
@@ -66,6 +66,10 @@ typedef struct {
|
||||
/* 0xC */ s32 remainingFrames;
|
||||
} FreqLerp; // size = 0x10
|
||||
|
||||
s32 AudioOcarina_MemoryGameGenerateNotes(void);
|
||||
s32 Audio_SetGanonsTowerBgmVolume(u8 targetVolume);
|
||||
void func_801A3238(s8 playerIndex, u16 seqId, u8 fadeTimer, s8 arg3, u8 arg4);
|
||||
|
||||
// Sfx bss
|
||||
SfxSettings sSfxSettings[8];
|
||||
u8 sSfxSettingsFlags;
|
||||
@@ -104,7 +108,7 @@ u8 sIsFinalHoursOrSoaring;
|
||||
u8 sObjSoundFanfareSeqId;
|
||||
u8 sObjSoundFanfareRequested;
|
||||
Vec3f sObjSoundFanfarePos;
|
||||
u8 sObjSoundPlayerIdx;
|
||||
u8 sObjSoundPlayerIndex;
|
||||
Vec3f sObjSoundPos;
|
||||
s16 sObjSoundFlags;
|
||||
f32 sObjSoundMinDist;
|
||||
@@ -119,7 +123,7 @@ u8 sSpatialSeqFlags;
|
||||
u8 D_801FD432;
|
||||
u8 sSpatialSubBgmFadeTimer;
|
||||
u8 D_801FD434;
|
||||
u8 sSpatialSeqPlayerIdx;
|
||||
u8 sSpatialSeqPlayerIndex;
|
||||
u8 sSpatialSeqFadeTimer;
|
||||
u16 D_801FD438;
|
||||
|
||||
@@ -136,8 +140,8 @@ s32 sOcaInputBtnPress;
|
||||
u8 sOcarinaResetDelay;
|
||||
u8 sOcarinaResetUnused;
|
||||
u8 sOcarinaHasStartedSong;
|
||||
u8 sFirstOcarinaSongIdx;
|
||||
u8 sLastOcarinaSongIdx;
|
||||
u8 sFirstOcarinaSongIndex;
|
||||
u8 sLastOcarinaSongIndex;
|
||||
u32 sOcarinaAvailSongs;
|
||||
u8 sOcarinaStaffPlayingPos;
|
||||
u16 sMusicStaffPos[OCARINA_SONG_MAX];
|
||||
@@ -984,11 +988,11 @@ u8 sIsOcarinaInputEnabled = false;
|
||||
s8 sOcarinaInstrumentId = OCARINA_INSTRUMENT_OFF;
|
||||
u8 sCurOcarinaPitch = OCARINA_PITCH_NONE;
|
||||
u8 sPrevOcarinaPitch = 0;
|
||||
u8 sCurOcarinaButtonIdx = 0;
|
||||
u8 sCurOcarinaButtonIndex = 0;
|
||||
u8 sMusicStaffPrevPitch = 0;
|
||||
f32 sCurOcarinaBendFreq = 1.0f;
|
||||
f32 sDefaultOcarinaVolume = 0.68503935f;
|
||||
s8 sCurOcarinaBendIdx = 0;
|
||||
s8 sCurOcarinaBendIndex = 0;
|
||||
s8 sCurOcarinaVolume = 0x57;
|
||||
s8 sCurOcarinaVibrato = 0;
|
||||
u8 sPlaybackState = 0;
|
||||
@@ -1014,7 +1018,7 @@ u8 sCurOcarinaSong[8] = {
|
||||
u8 sOcarinaSongAppendPos = 0;
|
||||
u8 sOcarinaSongStartingPos = 0;
|
||||
|
||||
u8 sButtonToNoteMap[5] = {
|
||||
u8 sButtonToPitchMap[5] = {
|
||||
OCARINA_PITCH_D4, // OCARINA_BTN_A
|
||||
OCARINA_PITCH_F4, // OCARINA_BTN_C_DOWN
|
||||
OCARINA_PITCH_A4, // OCARINA_BTN_C_RIGHT
|
||||
@@ -1022,7 +1026,7 @@ u8 sButtonToNoteMap[5] = {
|
||||
OCARINA_PITCH_D5, // OCARINA_BTN_C_UP
|
||||
};
|
||||
|
||||
u8 sOcaMemoryGameAppendPos = 0;
|
||||
u8 sOcarinaMemoryGameAppendPos = 0;
|
||||
u8 sOcaMemoryGameEndPos = 0;
|
||||
u8 sOcaMemoryGameNumNotes[] = { 5, 6, 8 };
|
||||
OcarinaNote sOcarinaSongNotes[OCARINA_SONG_MAX][20] = {
|
||||
@@ -1443,9 +1447,9 @@ u32 sOcarinaRecordTaskStart = 0;
|
||||
u8 sRecordOcarinaPitch = 0;
|
||||
u8 sRecordOcarinaVolume = 0;
|
||||
u8 sRecordOcarinaVibrato = 0;
|
||||
s8 sRecordOcarinaBendIdx = 0;
|
||||
u8 sRecordOcarinaButtonIdx = 0;
|
||||
u8 sPlayedOcarinaSongIdxPlusOne = 0;
|
||||
s8 sRecordOcarinaBendIndex = 0;
|
||||
u8 sRecordOcarinaButtonIndex = 0;
|
||||
u8 sPlayedOcarinaSongIndexPlusOne = 0;
|
||||
u8 sMusicStaffNumNotesPerTest = 0;
|
||||
u8 D_801D8530 = false;
|
||||
u32 D_801D8534 = 0;
|
||||
@@ -1460,7 +1464,7 @@ OcarinaNote* gScarecrowLongSongPtr = sScarecrowsLongSongNotes;
|
||||
u8* gScarecrowSpawnSongPtr = (u8*)&sOcarinaSongNotes[OCARINA_SONG_SCARECROW];
|
||||
OcarinaNote* sTerminaWallSongPtr = sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL];
|
||||
|
||||
u8 sNoteToButtonMap[16] = {
|
||||
u8 sPitchToButtonMap[16] = {
|
||||
OCARINA_BTN_A, // OCARINA_PITCH_C4
|
||||
OCARINA_BTN_A, // OCARINA_PITCH_DFLAT4
|
||||
OCARINA_BTN_A, // OCARINA_PITCH_D4
|
||||
@@ -1849,6 +1853,7 @@ const u16 gAudioEnvironmentalSfx[] = {
|
||||
NA_SE_EV_WAVE_S - SFX_FLAG, NA_SE_EV_WAVE_S - SFX_FLAG,
|
||||
};
|
||||
|
||||
extern const u8 sIsOcarinaSongReserved[OCARINA_SONG_MAX];
|
||||
/**
|
||||
const u8 sIsOcarinaSongReserved[OCARINA_SONG_MAX] = {
|
||||
true, // OCARINA_SONG_SONATA
|
||||
@@ -1886,7 +1891,8 @@ const u8 sIsOcarinaSongReserved[OCARINA_SONG_MAX] = {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019B02C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019B074.s")
|
||||
void AudioOcarina_MapSongFromNotesToButtons(u8 noteSongIndex, u8 buttonSongIndex, u8 numButtons);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/AudioOcarina_MapSongFromNotesToButtons.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019B144.s")
|
||||
|
||||
@@ -1898,7 +1904,7 @@ const u8 sIsOcarinaSongReserved[OCARINA_SONG_MAX] = {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019B4B8.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019B544.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/AudioOcarina_StartDefault.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019B568.s")
|
||||
|
||||
@@ -1924,7 +1930,7 @@ const u8 sIsOcarinaSongReserved[OCARINA_SONG_MAX] = {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019C2E4.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019C300.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/AudioOcarina_SetInstrumentId.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019C398.s")
|
||||
|
||||
@@ -1953,17 +1959,154 @@ const char sAudioOcarinaUnusedText7[] = "check is over!!! %d %d %d\n";
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019CF78.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019CF9C.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/AudioOcarina_GetPlaybackStaff.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019CFA8.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019D134.s")
|
||||
/**
|
||||
* Tests to see if the notes from songIndex contain identical notes
|
||||
* within its song to any of the reserved songIndex from 0 up to maxSongIndex
|
||||
*/
|
||||
s32 AudioOcarina_TerminaWallValidateNotes(u8 songIndex, u8 maxSongIndex) {
|
||||
u8 curSongIndex;
|
||||
u8 j;
|
||||
u8 k;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019D26C.s")
|
||||
// loop through all possible songs up to maxSongIndex
|
||||
for (curSongIndex = 0; curSongIndex < maxSongIndex; curSongIndex++) {
|
||||
// check to see if the song is reserved or not
|
||||
if (sIsOcarinaSongReserved[curSongIndex]) {
|
||||
// starting index to test the song
|
||||
for (j = 0; j < (9 - gOcarinaSongButtons[curSongIndex].numButtons); j++) {
|
||||
// loop through each note in the song
|
||||
for (k = 0; (k < gOcarinaSongButtons[curSongIndex].numButtons) && ((k + j) < 8) &&
|
||||
(gOcarinaSongButtons[curSongIndex].buttonIndex[k] ==
|
||||
gOcarinaSongButtons[songIndex].buttonIndex[(k + j)]);
|
||||
k++) {
|
||||
continue;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019D488.s")
|
||||
if (k == gOcarinaSongButtons[curSongIndex].numButtons) {
|
||||
// failure: songIndex is identical to curSongIndex.
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019D4F8.s")
|
||||
// success: notes are accepted and used
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the notes displayed on the Termina Field wall of musical notes
|
||||
* Song generation loop alternates between 8 random notes and a random song from Ocarina of Time (OoT).
|
||||
* Will check to see that the notes are valid by ensuring no playable song is within the selected notes
|
||||
* All OoT songs are valid, so the outer loop will run a maxiumum of two times.
|
||||
* i.e. if random notes fails, then the next set of notes will be from a valid OoT song
|
||||
*/
|
||||
void AudioOcarina_TerminaWallGenerateNotes(void) {
|
||||
OcarinaNote* ocarinaNote;
|
||||
u8 randButtonIndex;
|
||||
u8 i;
|
||||
u8 j;
|
||||
|
||||
do {
|
||||
i = 0;
|
||||
if (sOcarinaWallCounter++ % 2) {
|
||||
j = 0;
|
||||
|
||||
for (; i < 8; i++) {
|
||||
randButtonIndex = Audio_NextRandom() % ARRAY_COUNT(sButtonToPitchMap);
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][j].pitch = sButtonToPitchMap[randButtonIndex];
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][j].length = 19;
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][j].volume = 80;
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][j].vibrato = 0;
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][j].bend = 0;
|
||||
j++;
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][j].pitch = OCARINA_PITCH_NONE;
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][j].length = 3;
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][j].volume = 0;
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][j].vibrato = 0;
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][j].bend = 0;
|
||||
j++;
|
||||
}
|
||||
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][j - 2].length = 90;
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][j - 1].length = 22;
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][j + 1].pitch = OCARINA_PITCH_NONE;
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][j + 1].length = 0;
|
||||
AudioOcarina_MapSongFromNotesToButtons(OCARINA_SONG_TERMINA_WALL, OCARINA_SONG_TERMINA_WALL, 8);
|
||||
} else {
|
||||
j = Audio_NextRandom() % ARRAY_COUNT(sOoTOcarinaSongNotes);
|
||||
ocarinaNote = sOoTOcarinaSongNotes[j];
|
||||
|
||||
for (; ocarinaNote[i].length != 0; i++) {
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][i] = ocarinaNote[i];
|
||||
}
|
||||
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][i].pitch = OCARINA_PITCH_NONE;
|
||||
sOcarinaSongNotes[OCARINA_SONG_TERMINA_WALL][i].length = 0;
|
||||
AudioOcarina_MapSongFromNotesToButtons(OCARINA_SONG_TERMINA_WALL, OCARINA_SONG_TERMINA_WALL,
|
||||
sOoTOcarinaSongsNumNotes[j]);
|
||||
}
|
||||
} while (AudioOcarina_TerminaWallValidateNotes(OCARINA_SONG_TERMINA_WALL, OCARINA_SONG_TERMINA_WALL) != 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unused remnant of OoT
|
||||
*/
|
||||
void AudioOcarina_MemoryGameSetNumNotes(u8 minigameRound) {
|
||||
u8 i;
|
||||
|
||||
if (minigameRound > 2) {
|
||||
minigameRound = 2;
|
||||
}
|
||||
|
||||
sOcarinaMemoryGameAppendPos = 0;
|
||||
sOcaMemoryGameEndPos = sOcaMemoryGameNumNotes[minigameRound];
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
AudioOcarina_MemoryGameGenerateNotes();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unused remnant of OoT, Id 14 now represent Goron Lullaby Intro instead of the OoT ocarina memory game
|
||||
* //! @bug calling this function in MM will overwrite Goron Lullaby Intro
|
||||
*/
|
||||
#define OCARINA_SONG_MEMORYGAME 14
|
||||
s32 AudioOcarina_MemoryGameGenerateNotes(void) {
|
||||
u32 randButtonIndex;
|
||||
u8 randPitch;
|
||||
|
||||
if (sOcarinaMemoryGameAppendPos == sOcaMemoryGameEndPos) {
|
||||
return true;
|
||||
}
|
||||
|
||||
randButtonIndex = Audio_NextRandom();
|
||||
randPitch = sButtonToPitchMap[randButtonIndex % ARRAY_COUNT(sButtonToPitchMap)];
|
||||
|
||||
if (sOcarinaSongNotes[OCARINA_SONG_MEMORYGAME][sOcarinaMemoryGameAppendPos - 1].pitch == randPitch) {
|
||||
randPitch = sButtonToPitchMap[(randButtonIndex + 1) % ARRAY_COUNT(sButtonToPitchMap)];
|
||||
}
|
||||
|
||||
sOcarinaSongNotes[OCARINA_SONG_MEMORYGAME][sOcarinaMemoryGameAppendPos].pitch = randPitch;
|
||||
sOcarinaSongNotes[OCARINA_SONG_MEMORYGAME][sOcarinaMemoryGameAppendPos].length = 45;
|
||||
sOcarinaSongNotes[OCARINA_SONG_MEMORYGAME][sOcarinaMemoryGameAppendPos].volume = 0x50;
|
||||
sOcarinaSongNotes[OCARINA_SONG_MEMORYGAME][sOcarinaMemoryGameAppendPos].vibrato = 0;
|
||||
sOcarinaSongNotes[OCARINA_SONG_MEMORYGAME][sOcarinaMemoryGameAppendPos].bend = 0;
|
||||
|
||||
sOcarinaMemoryGameAppendPos++;
|
||||
|
||||
sOcarinaSongNotes[OCARINA_SONG_MEMORYGAME][sOcarinaMemoryGameAppendPos].pitch = OCARINA_PITCH_NONE;
|
||||
sOcarinaSongNotes[OCARINA_SONG_MEMORYGAME][sOcarinaMemoryGameAppendPos].length = 0;
|
||||
sOcarinaSongNotes[OCARINA_SONG_MEMORYGAME][sOcarinaMemoryGameAppendPos + 1].pitch = OCARINA_PITCH_NONE;
|
||||
sOcarinaSongNotes[OCARINA_SONG_MEMORYGAME][sOcarinaMemoryGameAppendPos + 1].length = 0;
|
||||
if (1) {}
|
||||
return false;
|
||||
}
|
||||
#undef OCARINA_SONG_MEMORYGAME
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019D600.s")
|
||||
|
||||
@@ -2071,11 +2214,50 @@ const char sAudioOcarinaUnusedText7[] = "check is over!!! %d %d %d\n";
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019FF38.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_8019FF9C.s")
|
||||
/**
|
||||
* Used for EnRiverSound
|
||||
*/
|
||||
void Audio_PlaySfxForRiver(Vec3f* pos, f32 freqScale) {
|
||||
if (!Audio_IsSfxPlaying(NA_SE_EV_RIVER_STREAM - SFX_FLAG)) {
|
||||
sRiverFreqScaleLerp.value = freqScale;
|
||||
} else if (freqScale != sRiverFreqScaleLerp.value) {
|
||||
sRiverFreqScaleLerp.target = freqScale;
|
||||
sRiverFreqScaleLerp.remainingFrames = 40;
|
||||
sRiverFreqScaleLerp.step = (sRiverFreqScaleLerp.target - sRiverFreqScaleLerp.value) / 40;
|
||||
}
|
||||
Audio_PlaySfxGeneral(NA_SE_EV_RIVER_STREAM - SFX_FLAG, pos, 4, &sRiverFreqScaleLerp.value, &D_801DB4B0,
|
||||
&D_801DB4B8);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A0048.s")
|
||||
/**
|
||||
* Unused remnant of OoT's EnRiverSound
|
||||
* Used for Zora's River Waterfall
|
||||
*/
|
||||
void Audio_PlaySfxForWaterfall(Vec3f* pos, f32 freqScale) {
|
||||
if (!Audio_IsSfxPlaying(NA_SE_EV_WATER_WALL_BIG - SFX_FLAG)) {
|
||||
sWaterfallFreqScaleLerp.value = freqScale;
|
||||
} else if (freqScale != sWaterfallFreqScaleLerp.value) {
|
||||
sWaterfallFreqScaleLerp.target = freqScale;
|
||||
sWaterfallFreqScaleLerp.remainingFrames = 40;
|
||||
sWaterfallFreqScaleLerp.step = (sWaterfallFreqScaleLerp.target - sWaterfallFreqScaleLerp.value) / 40;
|
||||
}
|
||||
Audio_PlaySfxGeneral(NA_SE_EV_WATER_WALL_BIG - SFX_FLAG, pos, 4, &sWaterfallFreqScaleLerp.value,
|
||||
&sWaterfallFreqScaleLerp.value, &D_801DB4B8);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A00EC.s")
|
||||
/**
|
||||
* Used for EnRiverSound variables
|
||||
*/
|
||||
void Audio_StepFreqLerp(FreqLerp* lerp) {
|
||||
if (lerp->remainingFrames != 0) {
|
||||
lerp->remainingFrames--;
|
||||
if (lerp->remainingFrames != 0) {
|
||||
lerp->value += lerp->step;
|
||||
} else {
|
||||
lerp->value = lerp->target;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A0124.s")
|
||||
|
||||
@@ -2087,13 +2269,131 @@ const char sAudioOcarinaUnusedText7[] = "check is over!!! %d %d %d\n";
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A0238.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A026C.s")
|
||||
/**
|
||||
* Unused remnant from OoT's EnRiverSound
|
||||
* Was designed to incrementally increase volume of NA_BGM_GANON_TOWER for each new room during the climb of Ganon's
|
||||
* Tower
|
||||
*/
|
||||
void Audio_SetGanonsTowerBgmVolumeLevel(u8 ganonsTowerLevel) {
|
||||
u8 channelIndex;
|
||||
s8 pan = 0;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A0318.s")
|
||||
// Ganondorfs's Lair
|
||||
if (ganonsTowerLevel == 0) {
|
||||
pan = 0x7F;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A0450.s")
|
||||
for (channelIndex = 0; channelIndex < 16; channelIndex++) {
|
||||
// CHAN_UPD_PAN_UNSIGNED
|
||||
Audio_QueueCmdS8(((u8)(u32)channelIndex << 8) | 0x7000000, pan);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A046C.s")
|
||||
// Lowest room in Ganon's Tower (Entrance Room)
|
||||
if (ganonsTowerLevel == 7) {
|
||||
// Adds a delay to setting the volume in the first room
|
||||
sEnterGanonsTowerTimer = 2;
|
||||
} else {
|
||||
Audio_SetGanonsTowerBgmVolume(sGanonsTowerLevelsVol[ganonsTowerLevel % ARRAY_COUNTU(sGanonsTowerLevelsVol)]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unused remnant from OoT's EnRiverSound
|
||||
* If a new volume is requested for ganon's tower, update the volume and
|
||||
* calculate a new low-pass filter cutoff and reverb based on the new volume
|
||||
*/
|
||||
s32 Audio_SetGanonsTowerBgmVolume(u8 targetVolume) {
|
||||
u8 lowPassFilterCutoff;
|
||||
u8 channelIndex;
|
||||
u16 reverb;
|
||||
|
||||
if (sGanonsTowerVol != targetVolume) {
|
||||
// Sets the volume
|
||||
Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, 0, targetVolume, 2);
|
||||
|
||||
// Sets the filter cutoff of the form (lowPassFilterCutoff << 4) | (highPassFilter & 0xF). highPassFilter is
|
||||
// always set to 0
|
||||
if (targetVolume < 0x40) {
|
||||
// Only the first room
|
||||
lowPassFilterCutoff = 0x10;
|
||||
} else {
|
||||
// Higher volume leads to a higher cut-off frequency in the low-pass filtering
|
||||
lowPassFilterCutoff = (((targetVolume - 0x40) >> 2) + 1) << 4;
|
||||
}
|
||||
|
||||
Audio_QueueSeqCmd((8 << 28) | ((u8)(SEQ_PLAYER_BGM_MAIN) << 24) | ((u8)(4) << 16) | ((u8)(15) << 8) |
|
||||
(u8)(lowPassFilterCutoff));
|
||||
|
||||
// Sets the reverb
|
||||
for (channelIndex = 0; channelIndex < ARRAY_COUNT(gAudioContext.seqPlayers[SEQ_PLAYER_BGM_MAIN].channels);
|
||||
channelIndex++) {
|
||||
if (&gAudioContext.sequenceChannelNone !=
|
||||
gAudioContext.seqPlayers[SEQ_PLAYER_BGM_MAIN].channels[channelIndex]) {
|
||||
// soundScriptIO[5] was set to 0x40 in channels 0, 1, and 4 (BGM no longer in OoT)
|
||||
if ((u8)gAudioContext.seqPlayers[SEQ_PLAYER_BGM_MAIN].channels[channelIndex]->soundScriptIO[5] !=
|
||||
0xFF) {
|
||||
// Higher volume leads to lower reverb
|
||||
reverb =
|
||||
(((u16)gAudioContext.seqPlayers[SEQ_PLAYER_BGM_MAIN].channels[channelIndex]->soundScriptIO[5] -
|
||||
targetVolume) +
|
||||
0x7F);
|
||||
|
||||
if (reverb > 0x7F) {
|
||||
reverb = 0x7F;
|
||||
}
|
||||
|
||||
// CHAN_UPD_REVERB
|
||||
Audio_QueueCmdS8(_SHIFTL(5, 24, 8) | _SHIFTL(SEQ_PLAYER_BGM_MAIN, 16, 8) |
|
||||
_SHIFTL(channelIndex, 8, 8),
|
||||
(u8)reverb);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sGanonsTowerVol = targetVolume;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Unused remnant from OoT's EnRiverSound
|
||||
* Responsible for lowering market bgm in Child Market Entrance and Child Market Back Alley
|
||||
* Only lowers volume for 1 frame, so must be called every frame to maintain lower volume
|
||||
*/
|
||||
void Audio_LowerMainBgmVolume(u8 volume) {
|
||||
sRiverSoundMainBgmVol = volume;
|
||||
sRiverSoundMainBgmLower = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Unused remnant from OoT's EnRiverSound
|
||||
* Still called by Audio_Update every frame, but none of these processes get initialized
|
||||
*/
|
||||
void Audio_UpdateRiverSoundVolumes(void) {
|
||||
// Updates Main Bgm Volume (RiverSound of type RS_LOWER_MAIN_BGM_VOLUME)
|
||||
if (sRiverSoundMainBgmLower == true) {
|
||||
if (sRiverSoundMainBgmCurrentVol != sRiverSoundMainBgmVol) {
|
||||
// lowers the volume for 1 frame
|
||||
Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, 0, sRiverSoundMainBgmVol, 10);
|
||||
sRiverSoundMainBgmCurrentVol = sRiverSoundMainBgmVol;
|
||||
sRiverSoundMainBgmRestore = true;
|
||||
}
|
||||
sRiverSoundMainBgmLower = false;
|
||||
} else if ((sRiverSoundMainBgmRestore == true) && !sAudioIsWindowOpen) {
|
||||
// restores the volume every frame
|
||||
Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, 0, 0x7F, 10);
|
||||
sRiverSoundMainBgmCurrentVol = 0x7F;
|
||||
sRiverSoundMainBgmRestore = false;
|
||||
}
|
||||
|
||||
// Update Ganon's Tower Volume (RiverSound of type RS_GANON_TOWER_7)
|
||||
if (sEnterGanonsTowerTimer != 0) {
|
||||
sEnterGanonsTowerTimer--;
|
||||
if (sEnterGanonsTowerTimer == 0) {
|
||||
Audio_SetGanonsTowerBgmVolume(sGanonsTowerLevelsVol[7]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A0554.s")
|
||||
|
||||
@@ -2107,13 +2407,71 @@ const char sAudioOcarinaUnusedText7[] = "check is over!!! %d %d %d\n";
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A0868.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A09D4.s")
|
||||
/**
|
||||
* Unused remnant of OoT's EnRiverSound (func_800F4E30)
|
||||
*/
|
||||
void func_801A09D4(Vec3f* pos, f32 xzDistToPlayer) {
|
||||
f32 volumeRel;
|
||||
s8 pan;
|
||||
u8 channelIndex;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A0C70.s")
|
||||
if (sRiverSoundBgmPos == NULL) {
|
||||
sRiverSoundBgmPos = pos;
|
||||
sRiverSoundXZDistToPlayer = xzDistToPlayer;
|
||||
} else if (sRiverSoundBgmPos != pos) {
|
||||
if (sRiverSoundXZDistToPlayer > xzDistToPlayer) {
|
||||
sRiverSoundBgmPos = pos;
|
||||
sRiverSoundXZDistToPlayer = xzDistToPlayer;
|
||||
}
|
||||
} else {
|
||||
sRiverSoundXZDistToPlayer = xzDistToPlayer;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A0C90.s")
|
||||
if (sRiverSoundBgmPos->x > 100.0f) {
|
||||
pan = 0x7F;
|
||||
} else if (sRiverSoundBgmPos->x < -100.0f) {
|
||||
pan = 0;
|
||||
} else {
|
||||
pan = ((sRiverSoundBgmPos->x / 100.0f) * 64.0f) + 64.0f;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A0CB0.s")
|
||||
if (sRiverSoundXZDistToPlayer > 400.0f) {
|
||||
volumeRel = 0.1f;
|
||||
} else if (sRiverSoundXZDistToPlayer < 120.0f) {
|
||||
volumeRel = 1.0f;
|
||||
} else {
|
||||
volumeRel = ((1.0f - ((sRiverSoundXZDistToPlayer - 120.0f) / 280.0f)) * 0.9f) + 0.1f;
|
||||
}
|
||||
|
||||
for (channelIndex = 0; channelIndex < 16; channelIndex++) {
|
||||
if (channelIndex != 9) {
|
||||
Audio_QueueSeqCmd(((u32)(6) << 28) | ((u32)(SEQ_PLAYER_BGM_MAIN) << 24) | ((u32)(2) << 16) |
|
||||
((u32)(channelIndex) << 8) | ((u8)(127.0f * volumeRel)));
|
||||
Audio_QueueCmdS8(0x03000000 | ((u8)((u32)channelIndex) << 8), pan);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unused remnant of OoT's EnRiverSound
|
||||
*/
|
||||
void Audio_ClearSariaBgm(void) {
|
||||
if (sRiverSoundBgmPos != NULL) {
|
||||
sRiverSoundBgmPos = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unused remnant of OoT's EnRiverSound
|
||||
*/
|
||||
void Audio_ClearSariaBgmAtPos(Vec3f* pos) {
|
||||
if (sRiverSoundBgmPos == pos) {
|
||||
sRiverSoundBgmPos = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void Audio_SplitBgmChannels(s8 volumeSplit);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/Audio_SplitBgmChannels.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A0E44.s")
|
||||
|
||||
@@ -2147,9 +2505,58 @@ const char sAudioOcarinaUnusedText7[] = "check is over!!! %d %d %d\n";
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A2090.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A21FC.s")
|
||||
/**
|
||||
* Unused remnant of OoT's EnRiverSound
|
||||
*/
|
||||
void Audio_PlaySariaBgm(Vec3f* pos, u16 seqId, u16 distMax) {
|
||||
f32 absY;
|
||||
f32 dist;
|
||||
u8 targetVolume;
|
||||
f32 prevDist;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A2460.s")
|
||||
if (sRiverSoundBgmTimer != 0) {
|
||||
sRiverSoundBgmTimer--;
|
||||
return;
|
||||
}
|
||||
|
||||
dist = sqrtf(SQ(pos->z) + (SQ(pos->x) + SQ(pos->y)));
|
||||
|
||||
if (sRiverSoundBgmPos == NULL) {
|
||||
sRiverSoundBgmPos = pos;
|
||||
func_801A3238(SEQ_PLAYER_BGM_SUB, seqId, 0, 7, 2);
|
||||
} else {
|
||||
prevDist = sqrtf(SQ(sRiverSoundBgmPos->z) + SQ(sRiverSoundBgmPos->x));
|
||||
if (dist < prevDist) {
|
||||
sRiverSoundBgmPos = pos;
|
||||
} else {
|
||||
dist = prevDist;
|
||||
}
|
||||
}
|
||||
|
||||
absY = ABS_ALT(pos->y);
|
||||
|
||||
if ((distMax / 15.0f) < absY) {
|
||||
targetVolume = 0;
|
||||
} else if (dist < distMax) {
|
||||
targetVolume = (1.0f - (dist / distMax)) * 127.0f;
|
||||
} else {
|
||||
targetVolume = 0;
|
||||
}
|
||||
|
||||
if (seqId != NA_BGM_FAIRY_FOUNTAIN) {
|
||||
Audio_SplitBgmChannels(targetVolume);
|
||||
}
|
||||
|
||||
Audio_SetVolumeScale(SEQ_PLAYER_BGM_SUB, 3, targetVolume, 0);
|
||||
Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, 3, 0x7F - targetVolume, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unused remnant of OoT's EnRiverSound
|
||||
*/
|
||||
void Audio_ClearSariaBgm2(void) {
|
||||
sRiverSoundBgmPos = NULL;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A246C.s")
|
||||
|
||||
|
||||
@@ -40,6 +40,6 @@
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A5BD0/func_801A787C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A5BD0/func_801A78E4.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A5BD0/Audio_IsSfxPlaying.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A5BD0/func_801A794C.s")
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/func_801A8B2C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/func_801A8BD0.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/Audio_SetVolumeScale.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/func_801A8D5C.s")
|
||||
|
||||
|
||||
+1
-1
@@ -79,7 +79,7 @@ void AudioMgr_ThreadEntry(void* arg) {
|
||||
s32 exit;
|
||||
|
||||
func_801A4C30();
|
||||
func_80190B38(DmaMgr_DmaCallback0);
|
||||
AudioLoad_SetDmaHandler(DmaMgr_DmaHandler);
|
||||
func_801A4D00();
|
||||
osSendMesg(&audioMgr->lockMsgQ, NULL, OS_MESG_BLOCK);
|
||||
IrqMgr_AddClient(audioMgr->irqMgr, &irqClient, &audioMgr->interruptMsgQ);
|
||||
|
||||
+27
-24
@@ -504,7 +504,7 @@ void Inventory_ChangeEquipment(s16 value) {
|
||||
u8 Inventory_DeleteEquipment(GlobalContext* globalCtx, s16 equipment) {
|
||||
Player* player = GET_PLAYER(globalCtx);
|
||||
|
||||
if (CUR_EQUIP_VALUE_VOID(EQUIP_SHIELD) != 0) {
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_SHIELD) != 0) {
|
||||
SET_EQUIP_VALUE(EQUIP_SHIELD, 0);
|
||||
Player_SetEquipmentData(globalCtx, player);
|
||||
return true;
|
||||
@@ -514,12 +514,12 @@ u8 Inventory_DeleteEquipment(GlobalContext* globalCtx, s16 equipment) {
|
||||
}
|
||||
|
||||
void Inventory_ChangeUpgrade(s16 upgrade, u32 value) {
|
||||
u32 upgrades = gSaveContext.inventory.upgrades;
|
||||
u32 upgrades = gSaveContext.save.inventory.upgrades;
|
||||
|
||||
upgrades &= gUpgradeNegMasks[upgrade];
|
||||
upgrades |= value << gUpgradeShifts[upgrade];
|
||||
|
||||
gSaveContext.inventory.upgrades = upgrades;
|
||||
gSaveContext.save.inventory.upgrades = upgrades;
|
||||
}
|
||||
|
||||
s32 Inventory_IsMapVisible(s16 sceneNum) {
|
||||
@@ -546,7 +546,7 @@ s32 Inventory_IsMapVisible(s16 sceneNum) {
|
||||
}
|
||||
}
|
||||
|
||||
if (gSaveContext.scenesVisible[index] & gBitFlags[sceneNum - (index << 5)]) {
|
||||
if (gSaveContext.save.scenesVisible[index] & gBitFlags[sceneNum - (index << 5)]) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -659,23 +659,23 @@ void Inventory_SetMapVisibility(s16 tingleIndex) {
|
||||
index = 6;
|
||||
}
|
||||
|
||||
gSaveContext.scenesVisible[index] =
|
||||
gSaveContext.scenesVisible[index] | gBitFlags[(s16)(*tingleMapSceneIndices)[i] - (index << 5)];
|
||||
gSaveContext.save.scenesVisible[index] =
|
||||
gSaveContext.save.scenesVisible[index] | gBitFlags[(s16)(*tingleMapSceneIndices)[i] - (index << 5)];
|
||||
i++;
|
||||
}
|
||||
|
||||
if ((*tingleMapSceneIndices) == sScenesPerTingleMap[0]) {
|
||||
gSaveContext.mapsVisible |= 3;
|
||||
gSaveContext.save.mapsVisible |= 3;
|
||||
} else if ((*tingleMapSceneIndices) == sScenesPerTingleMap[1]) {
|
||||
gSaveContext.mapsVisible |= 0x1C;
|
||||
gSaveContext.save.mapsVisible |= 0x1C;
|
||||
} else if ((*tingleMapSceneIndices) == sScenesPerTingleMap[2]) {
|
||||
gSaveContext.mapsVisible |= 0xE0;
|
||||
gSaveContext.save.mapsVisible |= 0xE0;
|
||||
} else if ((*tingleMapSceneIndices) == sScenesPerTingleMap[3]) {
|
||||
gSaveContext.mapsVisible |= 0x100;
|
||||
gSaveContext.save.mapsVisible |= 0x100;
|
||||
} else if ((*tingleMapSceneIndices) == sScenesPerTingleMap[4]) {
|
||||
gSaveContext.mapsVisible |= 0x1E00;
|
||||
gSaveContext.save.mapsVisible |= 0x1E00;
|
||||
} else if ((*tingleMapSceneIndices) == sScenesPerTingleMap[5]) {
|
||||
gSaveContext.mapsVisible |= 0x6000;
|
||||
gSaveContext.save.mapsVisible |= 0x6000;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -688,40 +688,43 @@ void Inventory_SetMapVisibility(s16 tingleIndex) {
|
||||
void Inventory_SaveDekuPlaygroundHighScore(s16 timerId) {
|
||||
s16 i;
|
||||
|
||||
gSaveContext.dekuPlaygroundHighScores[CURRENT_DAY - 1] = gSaveContext.unk_3DE0[timerId];
|
||||
gSaveContext.save.dekuPlaygroundHighScores[CURRENT_DAY - 1] = gSaveContext.unk_3DE0[timerId];
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
gSaveContext.inventory.dekuPlaygroundPlayerName[CURRENT_DAY - 1][i] = gSaveContext.playerName[i];
|
||||
gSaveContext.save.inventory.dekuPlaygroundPlayerName[CURRENT_DAY - 1][i] =
|
||||
gSaveContext.save.playerData.playerName[i];
|
||||
}
|
||||
}
|
||||
|
||||
void Inventory_IncrementSkullTokenCount(s16 sceneIndex) {
|
||||
if (sceneIndex == SCENE_KINSTA1) {
|
||||
// Swamp Spider House (increment high bits of skullTokenCount)
|
||||
gSaveContext.skullTokenCount = ((u16)(((gSaveContext.skullTokenCount & 0xFFFF0000) >> 0x10) + 1) << 0x10) |
|
||||
(gSaveContext.skullTokenCount & 0xFFFF);
|
||||
gSaveContext.save.skullTokenCount =
|
||||
((u16)(((gSaveContext.save.skullTokenCount & 0xFFFF0000) >> 0x10) + 1) << 0x10) |
|
||||
(gSaveContext.save.skullTokenCount & 0xFFFF);
|
||||
} else {
|
||||
// Ocean Spider House (increment low bits of skullTokenCount)
|
||||
gSaveContext.skullTokenCount =
|
||||
(((u16)gSaveContext.skullTokenCount + 1) & 0xFFFF) | (gSaveContext.skullTokenCount & 0xFFFF0000);
|
||||
gSaveContext.save.skullTokenCount =
|
||||
(((u16)gSaveContext.save.skullTokenCount + 1) & 0xFFFF) | (gSaveContext.save.skullTokenCount & 0xFFFF0000);
|
||||
}
|
||||
}
|
||||
|
||||
s16 Inventory_GetSkullTokenCount(s16 sceneIndex) {
|
||||
if (sceneIndex == SCENE_KINSTA1) {
|
||||
// Swamp Spider House
|
||||
return (gSaveContext.skullTokenCount & 0xFFFF0000) >> 0x10;
|
||||
return (gSaveContext.save.skullTokenCount & 0xFFFF0000) >> 0x10;
|
||||
} else {
|
||||
// Ocean Spider House
|
||||
return gSaveContext.skullTokenCount & 0xFFFF;
|
||||
return gSaveContext.save.skullTokenCount & 0xFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
void Inventory_SaveLotteryCodeGuess(GlobalContext* globalCtx) {
|
||||
u16 lotteryCodeGuess;
|
||||
|
||||
lotteryCodeGuess = ((globalCtx->msgCtx.unk12054 & 0xF) << 8); // First Digit
|
||||
lotteryCodeGuess |= ((globalCtx->msgCtx.unk12056 & 0xF) << 4); // Second Digit
|
||||
lotteryCodeGuess |= (globalCtx->msgCtx.unk12058 & 0xF); // Third Digit
|
||||
gSaveContext.lotteryCodeGuess = (gSaveContext.lotteryCodeGuess & 0xFFFF0000) | (lotteryCodeGuess & 0xFFFF);
|
||||
lotteryCodeGuess = ((globalCtx->msgCtx.unk12054[0] & 0xF) << 8); // First Digit
|
||||
lotteryCodeGuess |= ((globalCtx->msgCtx.unk12054[1] & 0xF) << 4); // Second Digit
|
||||
lotteryCodeGuess |= (globalCtx->msgCtx.unk12054[2] & 0xF); // Third Digit
|
||||
gSaveContext.save.lotteryCodeGuess =
|
||||
(gSaveContext.save.lotteryCodeGuess & 0xFFFF0000) | (lotteryCodeGuess & 0xFFFF);
|
||||
}
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
#include "global.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_801323D0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_80132428.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_80132494.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_801326B8.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_801328F0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_80132920.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_80132938.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_80132954.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_8013296C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_80132A18.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_80132A3C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_80132A80.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_80132AD8.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_80132B24.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_80132B84.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_80132D70.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_80132E9C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_80132FDC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_80133000.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801323D0/func_80133038.s")
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user