diff --git a/Makefile b/Makefile
index 56134bd7fc..5103d58691 100644
--- a/Makefile
+++ b/Makefile
@@ -366,8 +366,8 @@ CPPFLAGS += -P -xc -fno-dollars-in-identifiers $(CPP_DEFINES)
ASFLAGS += -march=vr4300 -32 -no-pad-sections -Iinclude -I$(EXTRACTED_DIR)
ifeq ($(COMPILER),gcc)
- CFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -nostdinc -MD $(INC) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -mdivide-breaks -fno-PIC -fno-common -ffreestanding -funsigned-char -fbuiltin -fno-builtin-sinf -fno-builtin-cosf $(CHECK_WARNINGS)
- CCASFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -nostdinc -MD $(INC) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -fno-PIC -fno-common -Wa,-no-pad-sections
+ CFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -nostdinc -MD -MP $(INC) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -mdivide-breaks -fno-PIC -fno-common -ffreestanding -funsigned-char -fbuiltin -fno-builtin-sinf -fno-builtin-cosf $(CHECK_WARNINGS)
+ CCASFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -nostdinc -MD -MP $(INC) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -fno-PIC -fno-common -Wa,-no-pad-sections
MIPS_VERSION := -mips3
else
# Suppress warnings for wrong number of macro arguments (to fake variadic
@@ -385,7 +385,7 @@ endif
ifeq ($(COMPILER),ido)
# Have CC_CHECK pretend to be a MIPS compiler
MIPS_BUILTIN_DEFS := -D_MIPS_ISA_MIPS2=2 -D_MIPS_ISA=_MIPS_ISA_MIPS2 -D_ABIO32=1 -D_MIPS_SIM=_ABIO32 -D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32
- CC_CHECK = gcc -nostdinc -MD -fno-builtin -fsyntax-only -funsigned-char -std=gnu90 -D_LANGUAGE_C $(CPP_DEFINES) $(MIPS_BUILTIN_DEFS) $(GBI_DEFINES) $(INC) $(CHECK_WARNINGS)
+ CC_CHECK = gcc -nostdinc -MD -MP -fno-builtin -fsyntax-only -funsigned-char -std=gnu90 -D_LANGUAGE_C $(CPP_DEFINES) $(MIPS_BUILTIN_DEFS) $(GBI_DEFINES) $(INC) $(CHECK_WARNINGS)
ifeq ($(shell getconf LONG_BIT), 32)
# Work around memory allocation bug in QEMU
export QEMU_GUEST_BASE := 1
@@ -858,7 +858,7 @@ $(O_FILES): | asset_files
.PHONY: o_files asset_files
$(BUILD_DIR)/spec: $(SPEC) $(SPEC_INCLUDES)
- $(CPP) $(CPPFLAGS) -MD -MF $@.d -MT $@ -I. $< | $(BUILD_DIR_REPLACE) > $@
+ $(CPP) $(CPPFLAGS) -MD -MP -MF $@.d -MT $@ -I. $< | $(BUILD_DIR_REPLACE) > $@
$(LDSCRIPT): $(BUILD_DIR)/spec
$(MKLDSCRIPT) $< $@
@@ -870,7 +870,7 @@ $(BUILD_DIR)/baserom/%.o: $(EXTRACTED_DIR)/baserom/%
$(OBJCOPY) -I binary -O elf32-big $< $@
$(BUILD_DIR)/data/%.o: data/%.s
- $(CPP) $(CPPFLAGS) -MD -MF $(@:.o=.d) -MT $@ -Iinclude $< | $(AS) $(ASFLAGS) -o $@
+ $(CPP) $(CPPFLAGS) -MD -MP -MF $(@:.o=.d) -MT $@ -Iinclude $< | $(AS) $(ASFLAGS) -o $@
ifeq ($(PLATFORM),IQUE)
NES_CHARMAP := assets/text/charmap.chn.txt
@@ -879,10 +879,10 @@ else
endif
$(BUILD_DIR)/assets/text/%.enc.nes.h: assets/text/%.h $(EXTRACTED_DIR)/text/%.h $(NES_CHARMAP)
- $(CPP) $(CPPFLAGS) -I$(EXTRACTED_DIR) -MD -MF $(@:.o=.d) -MT $@ $< | $(PYTHON) tools/msgenc.py --encoding utf-8 --charmap $(NES_CHARMAP) - $@
+ $(CPP) $(CPPFLAGS) -I$(EXTRACTED_DIR) -MD -MP -MF $(@:.o=.d) -MT $@ $< | $(PYTHON) tools/msgenc.py --encoding utf-8 --charmap $(NES_CHARMAP) - $@
$(BUILD_DIR)/assets/text/%.enc.jpn.h: assets/text/%.h $(EXTRACTED_DIR)/text/%.h assets/text/charmap.jpn.txt
- $(CPP) $(CPPFLAGS) -I$(EXTRACTED_DIR) -MD -MF $(@:.o=.d) -MT $@ $< | $(PYTHON) tools/msgenc.py --encoding SHIFT-JIS --wchar --charmap assets/text/charmap.jpn.txt - $@
+ $(CPP) $(CPPFLAGS) -I$(EXTRACTED_DIR) -MD -MP -MF $(@:.o=.d) -MT $@ $< | $(PYTHON) tools/msgenc.py --encoding SHIFT-JIS --wchar --charmap assets/text/charmap.jpn.txt - $@
# Dependencies for encoded message headers. These dependencies are not automatic as these headers are generated
# as part of the build. A clean build must know to generate them before the relevant .d files are created.
@@ -895,7 +895,7 @@ $(BUILD_DIR)/assets/text/staff_message_data_static.o: $(BUILD_DIR)/assets/text/m
$(BUILD_DIR)/assets/text/%.o: assets/text/%.c
ifneq ($(COMPILER),gcc)
# Preprocess text with modern cpp for varargs macros
- $(CPP) -undef -D_LANGUAGE_C -D__sgi $(CPPFLAGS) -MD -MT $@ $(INC) $< -o $(@:.o=.c)
+ $(CPP) -undef -D_LANGUAGE_C -D__sgi $(CPPFLAGS) -MD -MP -MT $@ $(INC) $< -o $(@:.o=.c)
$(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $(@:.o=.c)
else
$(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $<
@@ -915,7 +915,7 @@ $(BUILD_DIR)/assets/%.o: $(EXTRACTED_DIR)/assets/%.c
# Assemble the ROM header with GNU AS always
$(BUILD_DIR)/src/makerom/rom_header.o: src/makerom/rom_header.s
ifeq ($(COMPILER),ido)
- $(CPP) $(CPPFLAGS) $(MIPS_BUILTIN_DEFS) $(INC) -MD -MF $(@:.o=.d) -MT $@ $< | $(AS) $(ASFLAGS) -o $@
+ $(CPP) $(CPPFLAGS) $(MIPS_BUILTIN_DEFS) $(INC) -MD -MP -MF $(@:.o=.d) -MT $@ $< | $(AS) $(ASFLAGS) -o $@
else
$(CCAS) -c $(CCASFLAGS) $(MIPS_VERSION) $(ASOPTFLAGS) -o $@ $<
endif
@@ -927,7 +927,7 @@ $(BUILD_DIR)/src/makerom/ipl3.o: $(EXTRACTED_DIR)/incbin/ipl3
$(BUILD_DIR)/src/%.o: src/%.s
ifeq ($(COMPILER),ido)
# For header dependencies
- $(CPP) $(MIPS_BUILTIN_DEFS) $(CPPFLAGS) -x assembler-with-cpp $(INC) -MD -MF $(@:.o=.d) -MT $@ $< -o /dev/null
+ $(CPP) $(MIPS_BUILTIN_DEFS) $(CPPFLAGS) -x assembler-with-cpp $(INC) -MD -MP -MF $(@:.o=.d) -MT $@ $< -o /dev/null
$(CCAS) -c $(CCASFLAGS) $(MIPS_VERSION) $(ASOPTFLAGS) -o $(@:.o=.tmp.o) $<
# IDO generates bad symbol tables, fix the symbol table with strip..
$(STRIP) $(@:.o=.tmp.o) -N dummy-symbol-name
@@ -1072,7 +1072,7 @@ $(BUILD_DIR)/assets/audio/soundfonts/%.c $(BUILD_DIR)/assets/audio/soundfonts/%.
-include $(SOUNDFONT_DEP_FILES)
$(BUILD_DIR)/assets/audio/soundfonts/%.o: $(BUILD_DIR)/assets/audio/soundfonts/%.c $(BUILD_DIR)/assets/audio/soundfonts/%.name
- $(CPP) $(MIPS_BUILTIN_DEFS) $(CPPFLAGS) -x assembler-with-cpp $(INC) -I include/audio -MD -MF $(@:.o=.d) -MT $@ $< -o /dev/null
+ $(CPP) $(MIPS_BUILTIN_DEFS) $(CPPFLAGS) -x assembler-with-cpp $(INC) -I include/audio -MD -MP -MF $(@:.o=.d) -MT $@ $< -o /dev/null
# compile c to unlinked object
$(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -I include/audio -o $(@:.o=.tmp) $<
# partial link
@@ -1093,11 +1093,11 @@ endif
# then assemble the sequences...
$(BUILD_DIR)/assets/audio/sequences/%.o: assets/audio/sequences/%.seq include/audio/aseq.h $(SEQUENCE_TABLE) | $(SOUNDFONT_HEADERS)
- $(SEQ_CPP) $(SEQ_CPPFLAGS) -MD -MT $@ $< -o $(@:.o=.s)
+ $(SEQ_CPP) $(SEQ_CPPFLAGS) -MD -MP -MT $@ $< -o $(@:.o=.s)
$(AS) $(ASFLAGS) -I $(BUILD_DIR)/assets/audio/soundfonts -I include/audio -I $(dir $<) $(@:.o=.s) -o $@
$(BUILD_DIR)/assets/audio/sequences/%.o: $(EXTRACTED_DIR)/assets/audio/sequences/%.seq include/audio/aseq.h $(SEQUENCE_TABLE) | $(SOUNDFONT_HEADERS)
- $(SEQ_CPP) $(SEQ_CPPFLAGS) -MD -MT $@ $< -o $(@:.o=.s)
+ $(SEQ_CPP) $(SEQ_CPPFLAGS) -MD -MP -MT $@ $< -o $(@:.o=.s)
$(AS) $(ASFLAGS) -I $(BUILD_DIR)/assets/audio/soundfonts -I include/audio -I $(dir $<) $(@:.o=.s) -o $@
ifeq ($(AUDIO_BUILD_DEBUG),1)
$(OBJCOPY) -O binary -j.data $@ $(@:.o=.aseq)
diff --git a/assets/objects/object_ganon_anime3/gGanonRoarAnim.c b/assets/objects/object_ganon_anime3/gGanonRoarAnim.c
new file mode 100644
index 0000000000..cbc274b118
--- /dev/null
+++ b/assets/objects/object_ganon_anime3/gGanonRoarAnim.c
@@ -0,0 +1,15 @@
+#include "object_ganon_anime3.h"
+
+#include "ultra64.h"
+
+s16 gGanonRoarFrameData[] = {
+#include "assets/objects/object_ganon_anime3/gGanonRoarFrameData.inc.c"
+};
+
+JointIndex gGanonRoarJointIndices[] = {
+#include "assets/objects/object_ganon_anime3/gGanonRoarJointIndices.inc.c"
+};
+
+AnimationHeader gGanonRoarAnim = {
+#include "assets/objects/object_ganon_anime3/gGanonRoarAnim.inc.c"
+};
diff --git a/assets/objects/object_ganon_anime3/gGanonUncurlAndFlailAnim.c b/assets/objects/object_ganon_anime3/gGanonUncurlAndFlailAnim.c
new file mode 100644
index 0000000000..a19de40d93
--- /dev/null
+++ b/assets/objects/object_ganon_anime3/gGanonUncurlAndFlailAnim.c
@@ -0,0 +1,15 @@
+#include "object_ganon_anime3.h"
+
+#include "ultra64.h"
+
+s16 gGanonUncurlAndFlailFrameData[] = {
+#include "assets/objects/object_ganon_anime3/gGanonUncurlAndFlailFrameData.inc.c"
+};
+
+JointIndex gGanonUncurlAndFlailJointIndices[] = {
+#include "assets/objects/object_ganon_anime3/gGanonUncurlAndFlailJointIndices.inc.c"
+};
+
+AnimationHeader gGanonUncurlAndFlailAnim = {
+#include "assets/objects/object_ganon_anime3/gGanonUncurlAndFlailAnim.inc.c"
+};
diff --git a/assets/objects/object_ganon_anime3/gGanondorfBurstOutAnim.c b/assets/objects/object_ganon_anime3/gGanondorfBurstOutAnim.c
new file mode 100644
index 0000000000..a3a6625c0a
--- /dev/null
+++ b/assets/objects/object_ganon_anime3/gGanondorfBurstOutAnim.c
@@ -0,0 +1,15 @@
+#include "object_ganon_anime3.h"
+
+#include "ultra64.h"
+
+s16 gGanondorfBurstOutFrameData[] = {
+#include "assets/objects/object_ganon_anime3/gGanondorfBurstOutFrameData.inc.c"
+};
+
+JointIndex gGanondorfBurstOutJointIndices[] = {
+#include "assets/objects/object_ganon_anime3/gGanondorfBurstOutJointIndices.inc.c"
+};
+
+AnimationHeader gGanondorfBurstOutAnim = {
+#include "assets/objects/object_ganon_anime3/gGanondorfBurstOutAnim.inc.c"
+};
diff --git a/assets/objects/object_ganon_anime3/gGanondorfFloatingHeavyBreathingAnim.c b/assets/objects/object_ganon_anime3/gGanondorfFloatingHeavyBreathingAnim.c
new file mode 100644
index 0000000000..bbfa588465
--- /dev/null
+++ b/assets/objects/object_ganon_anime3/gGanondorfFloatingHeavyBreathingAnim.c
@@ -0,0 +1,15 @@
+#include "object_ganon_anime3.h"
+
+#include "ultra64.h"
+
+s16 gGanondorfFloatingHeavyBreathingFrameData[] = {
+#include "assets/objects/object_ganon_anime3/gGanondorfFloatingHeavyBreathingFrameData.inc.c"
+};
+
+JointIndex gGanondorfFloatingHeavyBreathingJointIndices[] = {
+#include "assets/objects/object_ganon_anime3/gGanondorfFloatingHeavyBreathingJointIndices.inc.c"
+};
+
+AnimationHeader gGanondorfFloatingHeavyBreathingAnim = {
+#include "assets/objects/object_ganon_anime3/gGanondorfFloatingHeavyBreathingAnim.inc.c"
+};
diff --git a/assets/objects/object_ganon_anime3/gGanondorfShowTriforceLoopAnim.c b/assets/objects/object_ganon_anime3/gGanondorfShowTriforceLoopAnim.c
new file mode 100644
index 0000000000..5505f1aa08
--- /dev/null
+++ b/assets/objects/object_ganon_anime3/gGanondorfShowTriforceLoopAnim.c
@@ -0,0 +1,15 @@
+#include "object_ganon_anime3.h"
+
+#include "ultra64.h"
+
+s16 gGanondorfShowTriforceLoopFrameData[] = {
+#include "assets/objects/object_ganon_anime3/gGanondorfShowTriforceLoopFrameData.inc.c"
+};
+
+JointIndex gGanondorfShowTriforceLoopJointIndices[] = {
+#include "assets/objects/object_ganon_anime3/gGanondorfShowTriforceLoopJointIndices.inc.c"
+};
+
+AnimationHeader gGanondorfShowTriforceLoopAnim = {
+#include "assets/objects/object_ganon_anime3/gGanondorfShowTriforceLoopAnim.inc.c"
+};
diff --git a/assets/objects/object_ganon_anime3/gGanondorfShowTriforceStartAnim.c b/assets/objects/object_ganon_anime3/gGanondorfShowTriforceStartAnim.c
new file mode 100644
index 0000000000..3092cccff4
--- /dev/null
+++ b/assets/objects/object_ganon_anime3/gGanondorfShowTriforceStartAnim.c
@@ -0,0 +1,15 @@
+#include "object_ganon_anime3.h"
+
+#include "ultra64.h"
+
+s16 gGanondorfShowTriforceStartFrameData[] = {
+#include "assets/objects/object_ganon_anime3/gGanondorfShowTriforceStartFrameData.inc.c"
+};
+
+JointIndex gGanondorfShowTriforceStartJointIndices[] = {
+#include "assets/objects/object_ganon_anime3/gGanondorfShowTriforceStartJointIndices.inc.c"
+};
+
+AnimationHeader gGanondorfShowTriforceStartAnim = {
+#include "assets/objects/object_ganon_anime3/gGanondorfShowTriforceStartAnim.inc.c"
+};
diff --git a/assets/objects/object_ganon_anime3/gGanondorfTransformEndAnim.c b/assets/objects/object_ganon_anime3/gGanondorfTransformEndAnim.c
new file mode 100644
index 0000000000..21a0913e97
--- /dev/null
+++ b/assets/objects/object_ganon_anime3/gGanondorfTransformEndAnim.c
@@ -0,0 +1,15 @@
+#include "object_ganon_anime3.h"
+
+#include "ultra64.h"
+
+s16 gGanondorfTransformEndFrameData[] = {
+#include "assets/objects/object_ganon_anime3/gGanondorfTransformEndFrameData.inc.c"
+};
+
+JointIndex gGanondorfTransformEndJointIndices[] = {
+#include "assets/objects/object_ganon_anime3/gGanondorfTransformEndJointIndices.inc.c"
+};
+
+AnimationHeader gGanondorfTransformEndAnim = {
+#include "assets/objects/object_ganon_anime3/gGanondorfTransformEndAnim.inc.c"
+};
diff --git a/assets/objects/object_ganon_anime3/gGanondorfTransformLoopAnim.c b/assets/objects/object_ganon_anime3/gGanondorfTransformLoopAnim.c
new file mode 100644
index 0000000000..464178153d
--- /dev/null
+++ b/assets/objects/object_ganon_anime3/gGanondorfTransformLoopAnim.c
@@ -0,0 +1,15 @@
+#include "object_ganon_anime3.h"
+
+#include "ultra64.h"
+
+s16 gGanondorfTransformLoopFrameData[] = {
+#include "assets/objects/object_ganon_anime3/gGanondorfTransformLoopFrameData.inc.c"
+};
+
+JointIndex gGanondorfTransformLoopJointIndices[] = {
+#include "assets/objects/object_ganon_anime3/gGanondorfTransformLoopJointIndices.inc.c"
+};
+
+AnimationHeader gGanondorfTransformLoopAnim = {
+#include "assets/objects/object_ganon_anime3/gGanondorfTransformLoopAnim.inc.c"
+};
diff --git a/assets/objects/object_ganon_anime3/gGanondorfTransformStartAnim.c b/assets/objects/object_ganon_anime3/gGanondorfTransformStartAnim.c
new file mode 100644
index 0000000000..dc5b31a367
--- /dev/null
+++ b/assets/objects/object_ganon_anime3/gGanondorfTransformStartAnim.c
@@ -0,0 +1,15 @@
+#include "object_ganon_anime3.h"
+
+#include "ultra64.h"
+
+s16 gGanondorfTransformStartFrameData[] = {
+#include "assets/objects/object_ganon_anime3/gGanondorfTransformStartFrameData.inc.c"
+};
+
+JointIndex gGanondorfTransformStartJointIndices[] = {
+#include "assets/objects/object_ganon_anime3/gGanondorfTransformStartJointIndices.inc.c"
+};
+
+AnimationHeader gGanondorfTransformStartAnim = {
+#include "assets/objects/object_ganon_anime3/gGanondorfTransformStartAnim.inc.c"
+};
diff --git a/assets/objects/object_ganon_anime3/object_ganon_anime3.h b/assets/objects/object_ganon_anime3/object_ganon_anime3.h
new file mode 100644
index 0000000000..80fcc0bc56
--- /dev/null
+++ b/assets/objects/object_ganon_anime3/object_ganon_anime3.h
@@ -0,0 +1,16 @@
+#ifndef OBJECT_GANON_ANIME3_H
+#define OBJECT_GANON_ANIME3_H
+
+#include "animation.h"
+
+extern AnimationHeader gGanondorfShowTriforceStartAnim;
+extern AnimationHeader gGanondorfBurstOutAnim;
+extern AnimationHeader gGanondorfTransformEndAnim;
+extern AnimationHeader gGanondorfFloatingHeavyBreathingAnim;
+extern AnimationHeader gGanondorfTransformStartAnim;
+extern AnimationHeader gGanondorfTransformLoopAnim;
+extern AnimationHeader gGanondorfShowTriforceLoopAnim;
+extern AnimationHeader gGanonUncurlAndFlailAnim;
+extern AnimationHeader gGanonRoarAnim;
+
+#endif
diff --git a/assets/objects/object_zo/effect_bubbles.c b/assets/objects/object_zo/effect_bubbles.c
new file mode 100644
index 0000000000..9f88bfce82
--- /dev/null
+++ b/assets/objects/object_zo/effect_bubbles.c
@@ -0,0 +1,20 @@
+#include "object_zo.h"
+#include "gfx.h"
+
+#define gZoraBubblesTex_WIDTH 16
+#define gZoraBubblesTex_HEIGHT 16
+u64 gZoraBubblesTex[TEX_LEN(u64, gZoraBubblesTex_WIDTH, gZoraBubblesTex_HEIGHT, 8)] = {
+#include "assets/objects/object_zo/gZoraBubblesTex.ia8.inc.c"
+};
+
+Vtx gZoraBubblesModelVtx[] = {
+#include "assets/objects/object_zo/gZoraBubblesModelVtx.inc.c"
+};
+
+Gfx gZoraBubblesMaterialDL[12] = {
+#include "assets/objects/object_zo/gZoraBubblesMaterialDL.inc.c"
+};
+
+Gfx gZoraBubblesModelDL[3] = {
+#include "assets/objects/object_zo/gZoraBubblesModelDL.inc.c"
+};
diff --git a/assets/objects/object_zo/effect_ripples.c b/assets/objects/object_zo/effect_ripples.c
new file mode 100644
index 0000000000..7fb878f2b0
--- /dev/null
+++ b/assets/objects/object_zo/effect_ripples.c
@@ -0,0 +1,10 @@
+#include "object_zo.h"
+#include "assets/objects/gameplay_keep/gameplay_keep.h"
+
+Gfx gZoraRipplesMaterialDL[13] = {
+#include "assets/objects/object_zo/gZoraRipplesMaterialDL.inc.c"
+};
+
+Gfx gZoraRipplesModelDL[3] = {
+#include "assets/objects/object_zo/gZoraRipplesModelDL.inc.c"
+};
diff --git a/assets/objects/object_zo/effect_splashes.c b/assets/objects/object_zo/effect_splashes.c
new file mode 100644
index 0000000000..557830eba1
--- /dev/null
+++ b/assets/objects/object_zo/effect_splashes.c
@@ -0,0 +1,20 @@
+#include "object_zo.h"
+#include "gfx.h"
+
+#define gZoraSplashesTex_WIDTH 16
+#define gZoraSplashesTex_HEIGHT 16
+u64 gZoraSplashesTex[TEX_LEN(u64, gZoraSplashesTex_WIDTH, gZoraSplashesTex_HEIGHT, 8)] = {
+#include "assets/objects/object_zo/gZoraSplashesTex.i8.inc.c"
+};
+
+Vtx gZoraSplashesModelVtx[] = {
+#include "assets/objects/object_zo/gZoraSplashesModelVtx.inc.c"
+};
+
+Gfx gZoraSplashesMaterialDL[14] = {
+#include "assets/objects/object_zo/gZoraSplashesMaterialDL.inc.c"
+};
+
+Gfx gZoraSplashesModelDL[3] = {
+#include "assets/objects/object_zo/gZoraSplashesModelDL.inc.c"
+};
diff --git a/assets/objects/object_zo/gZoraHandsOnHipsTappingFootAnim.c b/assets/objects/object_zo/gZoraHandsOnHipsTappingFootAnim.c
new file mode 100644
index 0000000000..de19ceac14
--- /dev/null
+++ b/assets/objects/object_zo/gZoraHandsOnHipsTappingFootAnim.c
@@ -0,0 +1,14 @@
+#include "object_zo.h"
+#include "array_count.h"
+
+s16 gZoraHandsOnHipsTappingFootFrameData[] = {
+#include "assets/objects/object_zo/gZoraHandsOnHipsTappingFootFrameData.inc.c"
+};
+
+JointIndex gZoraHandsOnHipsTappingFootJointIndices[] = {
+#include "assets/objects/object_zo/gZoraHandsOnHipsTappingFootJointIndices.inc.c"
+};
+
+AnimationHeader gZoraHandsOnHipsTappingFootAnim = {
+#include "assets/objects/object_zo/gZoraHandsOnHipsTappingFootAnim.inc.c"
+};
diff --git a/assets/objects/object_zo/gZoraIdleAnim.c b/assets/objects/object_zo/gZoraIdleAnim.c
new file mode 100644
index 0000000000..0be4d26b2c
--- /dev/null
+++ b/assets/objects/object_zo/gZoraIdleAnim.c
@@ -0,0 +1,14 @@
+#include "object_zo.h"
+#include "array_count.h"
+
+s16 gZoraIdleFrameData[] = {
+#include "assets/objects/object_zo/gZoraIdleFrameData.inc.c"
+};
+
+JointIndex gZoraIdleJointIndices[] = {
+#include "assets/objects/object_zo/gZoraIdleJointIndices.inc.c"
+};
+
+AnimationHeader gZoraIdleAnim = {
+#include "assets/objects/object_zo/gZoraIdleAnim.inc.c"
+};
diff --git a/assets/objects/object_zo/gZoraOpenArmsAnim.c b/assets/objects/object_zo/gZoraOpenArmsAnim.c
new file mode 100644
index 0000000000..5be007b12b
--- /dev/null
+++ b/assets/objects/object_zo/gZoraOpenArmsAnim.c
@@ -0,0 +1,14 @@
+#include "object_zo.h"
+#include "array_count.h"
+
+s16 gZoraOpenArmsFrameData[] = {
+#include "assets/objects/object_zo/gZoraOpenArmsFrameData.inc.c"
+};
+
+JointIndex gZoraOpenArmsJointIndices[] = {
+#include "assets/objects/object_zo/gZoraOpenArmsJointIndices.inc.c"
+};
+
+AnimationHeader gZoraOpenArmsAnim = {
+#include "assets/objects/object_zo/gZoraOpenArmsAnim.inc.c"
+};
diff --git a/assets/objects/object_zo/gZoraSkel.c b/assets/objects/object_zo/gZoraSkel.c
new file mode 100644
index 0000000000..8ea991044a
--- /dev/null
+++ b/assets/objects/object_zo/gZoraSkel.c
@@ -0,0 +1,291 @@
+#include "object_zo.h"
+#include "array_count.h"
+#include "gfx.h"
+
+u64 gZoraTLUT[] = {
+#include "assets/objects/object_zo/gZoraTLUT.tlut.rgba16.inc.c"
+};
+
+#define gZoraFinTex_WIDTH 32
+#define gZoraFinTex_HEIGHT 32
+u64 gZoraFinTex[TEX_LEN(u64, gZoraFinTex_WIDTH, gZoraFinTex_HEIGHT, 8)] = {
+#include "assets/objects/object_zo/gZoraFinTex.ci8.tlut_gZoraTLUT.inc.c"
+};
+
+#define gZoraHeadTailTex_WIDTH 32
+#define gZoraHeadTailTex_HEIGHT 64
+u64 gZoraHeadTailTex[TEX_LEN(u64, gZoraHeadTailTex_WIDTH, gZoraHeadTailTex_HEIGHT, 8)] = {
+#include "assets/objects/object_zo/gZoraHeadTailTex.ci8.tlut_gZoraTLUT.inc.c"
+};
+
+#define gZoraHeadTex_WIDTH 8
+#define gZoraHeadTex_HEIGHT 8
+u64 gZoraHeadTex[TEX_LEN(u64, gZoraHeadTex_WIDTH, gZoraHeadTex_HEIGHT, 8)] = {
+#include "assets/objects/object_zo/gZoraHeadTex.ci8.tlut_gZoraTLUT.inc.c"
+};
+
+u64 gZoraEyeOpenTex[TEX_LEN(u64, ZORA_EYE_TEX_WIDTH, ZORA_EYE_TEX_HEIGHT, 16)] = {
+#include "assets/objects/object_zo/gZoraEyeOpenTex.rgba16.inc.c"
+};
+
+u64 gZoraEyeHalfTex[TEX_LEN(u64, ZORA_EYE_TEX_WIDTH, ZORA_EYE_TEX_HEIGHT, 16)] = {
+#include "assets/objects/object_zo/gZoraEyeHalfTex.rgba16.inc.c"
+};
+
+u64 gZoraEyeClosedTex[TEX_LEN(u64, ZORA_EYE_TEX_WIDTH, ZORA_EYE_TEX_HEIGHT, 16)] = {
+#include "assets/objects/object_zo/gZoraEyeClosedTex.rgba16.inc.c"
+};
+
+#define gZoraMouthTex_WIDTH 32
+#define gZoraMouthTex_HEIGHT 32
+u64 gZoraMouthTex[TEX_LEN(u64, gZoraMouthTex_WIDTH, gZoraMouthTex_HEIGHT, 16)] = {
+#include "assets/objects/object_zo/gZoraMouthTex.rgba16.inc.c"
+};
+
+#define gZoraHandTex_WIDTH 16
+#define gZoraHandTex_HEIGHT 16
+u64 gZoraHandTex[TEX_LEN(u64, gZoraHandTex_WIDTH, gZoraHandTex_HEIGHT, 8)] = {
+#include "assets/objects/object_zo/gZoraHandTex.ci8.tlut_gZoraTLUT.inc.c"
+};
+
+#define gZoraKneeTex_WIDTH 8
+#define gZoraKneeTex_HEIGHT 8
+u64 gZoraKneeTex[TEX_LEN(u64, gZoraKneeTex_WIDTH, gZoraKneeTex_HEIGHT, 8)] = {
+#include "assets/objects/object_zo/gZoraKneeTex.ci8.tlut_gZoraTLUT.inc.c"
+};
+
+Vtx gZoraHeadTailFinVtx[] = {
+#include "assets/objects/object_zo/gZoraHeadTailFinVtx.inc.c"
+};
+
+Vtx gZoraHeadTail3Vtx[] = {
+#include "assets/objects/object_zo/gZoraHeadTail3Vtx.inc.c"
+};
+
+Vtx gZoraHeadTail2Vtx[] = {
+#include "assets/objects/object_zo/gZoraHeadTail2Vtx.inc.c"
+};
+
+Vtx gZoraHeadTail1Vtx[] = {
+#include "assets/objects/object_zo/gZoraHeadTail1Vtx.inc.c"
+};
+
+Vtx gZoraHeadVtx[] = {
+#include "assets/objects/object_zo/gZoraHeadVtx.inc.c"
+};
+
+Vtx gZoraLeftHandVtx[] = {
+#include "assets/objects/object_zo/gZoraLeftHandVtx.inc.c"
+};
+
+Vtx gZoraLeftForearmVtx[] = {
+#include "assets/objects/object_zo/gZoraLeftForearmVtx.inc.c"
+};
+
+Vtx gZoraLeftArmVtx[] = {
+#include "assets/objects/object_zo/gZoraLeftArmVtx.inc.c"
+};
+
+Vtx gZoraRightHandVtx[] = {
+#include "assets/objects/object_zo/gZoraRightHandVtx.inc.c"
+};
+
+Vtx gZoraRightForearmVtx[] = {
+#include "assets/objects/object_zo/gZoraRightForearmVtx.inc.c"
+};
+
+Vtx gZoraRightArmVtx[] = {
+#include "assets/objects/object_zo/gZoraRightArmVtx.inc.c"
+};
+
+Vtx gZoraTorsoVtx[] = {
+#include "assets/objects/object_zo/gZoraTorsoVtx.inc.c"
+};
+
+Vtx gZoraLeftFootVtx[] = {
+#include "assets/objects/object_zo/gZoraLeftFootVtx.inc.c"
+};
+
+Vtx gZoraLeftShinVtx[] = {
+#include "assets/objects/object_zo/gZoraLeftShinVtx.inc.c"
+};
+
+Vtx gZoraLeftThighsVtx[] = {
+#include "assets/objects/object_zo/gZoraLeftThighsVtx.inc.c"
+};
+
+Vtx gZoraRightFootVtx[] = {
+#include "assets/objects/object_zo/gZoraRightFootVtx.inc.c"
+};
+
+Vtx gZoraRightShinVtx[] = {
+#include "assets/objects/object_zo/gZoraRightShinVtx.inc.c"
+};
+
+Vtx gZoraRightThighsVtx[] = {
+#include "assets/objects/object_zo/gZoraRightThighsVtx.inc.c"
+};
+
+Vtx gZoraPelvisVtx[] = {
+#include "assets/objects/object_zo/gZoraPelvisVtx.inc.c"
+};
+
+Gfx gZoraPelvisDL[53] = {
+#include "assets/objects/object_zo/gZoraPelvisDL.inc.c"
+};
+
+Gfx gZoraTorsoDL[111] = {
+#include "assets/objects/object_zo/gZoraTorsoDL.inc.c"
+};
+
+Gfx gZoraHeadDL[79] = {
+#include "assets/objects/object_zo/gZoraHeadDL.inc.c"
+};
+
+Gfx gZoraHeadTail1DL[52] = {
+#include "assets/objects/object_zo/gZoraHeadTail1DL.inc.c"
+};
+
+Gfx gZoraHeadTail2DL[51] = {
+#include "assets/objects/object_zo/gZoraHeadTail2DL.inc.c"
+};
+
+Gfx gZoraHeadTail3DL[51] = {
+#include "assets/objects/object_zo/gZoraHeadTail3DL.inc.c"
+};
+
+Gfx gZoraHeadTailFinDL[72] = {
+#include "assets/objects/object_zo/gZoraHeadTailFinDL.inc.c"
+};
+
+Gfx gZoraRightArmDL[76] = {
+#include "assets/objects/object_zo/gZoraRightArmDL.inc.c"
+};
+
+Gfx gZoraRightForearmDL[92] = {
+#include "assets/objects/object_zo/gZoraRightForearmDL.inc.c"
+};
+
+Gfx gZoraRightHandDL[65] = {
+#include "assets/objects/object_zo/gZoraRightHandDL.inc.c"
+};
+
+Gfx gZoraLeftArmDL[76] = {
+#include "assets/objects/object_zo/gZoraLeftArmDL.inc.c"
+};
+
+Gfx gZoraLeftForearmDL[92] = {
+#include "assets/objects/object_zo/gZoraLeftForearmDL.inc.c"
+};
+
+Gfx gZoraLeftHandDL[65] = {
+#include "assets/objects/object_zo/gZoraLeftHandDL.inc.c"
+};
+
+Gfx gZoraRightThighsDL[92] = {
+#include "assets/objects/object_zo/gZoraRightThighsDL.inc.c"
+};
+
+Gfx gZoraRightShinDL[91] = {
+#include "assets/objects/object_zo/gZoraRightShinDL.inc.c"
+};
+
+Gfx gZoraRightFootDL[89] = {
+#include "assets/objects/object_zo/gZoraRightFootDL.inc.c"
+};
+
+Gfx gZoraLeftThighsDL[92] = {
+#include "assets/objects/object_zo/gZoraLeftThighsDL.inc.c"
+};
+
+Gfx gZoraLeftShinDL[91] = {
+#include "assets/objects/object_zo/gZoraLeftShinDL.inc.c"
+};
+
+Gfx gZoraLeftFootDL[89] = {
+#include "assets/objects/object_zo/gZoraLeftFootDL.inc.c"
+};
+
+StandardLimb gZoraPelvisLimb = {
+#include "assets/objects/object_zo/gZoraPelvisLimb.inc.c"
+};
+
+StandardLimb gZoraLeftThighsLimb = {
+#include "assets/objects/object_zo/gZoraLeftThighsLimb.inc.c"
+};
+
+StandardLimb gZoraLeftShinLimb = {
+#include "assets/objects/object_zo/gZoraLeftShinLimb.inc.c"
+};
+
+StandardLimb gZoraLeftFootLimb = {
+#include "assets/objects/object_zo/gZoraLeftFootLimb.inc.c"
+};
+
+StandardLimb gZoraRightThighsLimb = {
+#include "assets/objects/object_zo/gZoraRightThighsLimb.inc.c"
+};
+
+StandardLimb gZoraRightShinLimb = {
+#include "assets/objects/object_zo/gZoraRightShinLimb.inc.c"
+};
+
+StandardLimb gZoraRightFootLimb = {
+#include "assets/objects/object_zo/gZoraRightFootLimb.inc.c"
+};
+
+StandardLimb gZoraTorsoLimb = {
+#include "assets/objects/object_zo/gZoraTorsoLimb.inc.c"
+};
+
+StandardLimb gZoraLeftArmLimb = {
+#include "assets/objects/object_zo/gZoraLeftArmLimb.inc.c"
+};
+
+StandardLimb gZoraLeftForearmLimb = {
+#include "assets/objects/object_zo/gZoraLeftForearmLimb.inc.c"
+};
+
+StandardLimb gZoraLeftHandLimb = {
+#include "assets/objects/object_zo/gZoraLeftHandLimb.inc.c"
+};
+
+StandardLimb gZoraRightArmLimb = {
+#include "assets/objects/object_zo/gZoraRightArmLimb.inc.c"
+};
+
+StandardLimb gZoraRightForearmLimb = {
+#include "assets/objects/object_zo/gZoraRightForearmLimb.inc.c"
+};
+
+StandardLimb gZoraRightHandLimb = {
+#include "assets/objects/object_zo/gZoraRightHandLimb.inc.c"
+};
+
+StandardLimb gZoraHeadLimb = {
+#include "assets/objects/object_zo/gZoraHeadLimb.inc.c"
+};
+
+StandardLimb gZoraHeadTail1Limb = {
+#include "assets/objects/object_zo/gZoraHeadTail1Limb.inc.c"
+};
+
+StandardLimb gZoraHeadTail2Limb = {
+#include "assets/objects/object_zo/gZoraHeadTail2Limb.inc.c"
+};
+
+StandardLimb gZoraHeadTail3Limb = {
+#include "assets/objects/object_zo/gZoraHeadTail3Limb.inc.c"
+};
+
+StandardLimb gZoraHeadTailFinLimb = {
+#include "assets/objects/object_zo/gZoraHeadTailFinLimb.inc.c"
+};
+
+void* gZoraLimbs[] = {
+#include "assets/objects/object_zo/gZoraLimbs.inc.c"
+};
+
+FlexSkeletonHeader gZoraSkel = {
+#include "assets/objects/object_zo/gZoraSkel.inc.c"
+};
diff --git a/assets/objects/object_zo/gZoraSurfaceAnim.c b/assets/objects/object_zo/gZoraSurfaceAnim.c
new file mode 100644
index 0000000000..f0fd1eefdb
--- /dev/null
+++ b/assets/objects/object_zo/gZoraSurfaceAnim.c
@@ -0,0 +1,14 @@
+#include "object_zo.h"
+#include "array_count.h"
+
+s16 gZoraSurfaceFrameData[] = {
+#include "assets/objects/object_zo/gZoraSurfaceFrameData.inc.c"
+};
+
+JointIndex gZoraSurfaceJointIndices[] = {
+#include "assets/objects/object_zo/gZoraSurfaceJointIndices.inc.c"
+};
+
+AnimationHeader gZoraSurfaceAnim = {
+#include "assets/objects/object_zo/gZoraSurfaceAnim.inc.c"
+};
diff --git a/assets/objects/object_zo/gZoraThrowRupeesAnim.c b/assets/objects/object_zo/gZoraThrowRupeesAnim.c
new file mode 100644
index 0000000000..8c1ac64a86
--- /dev/null
+++ b/assets/objects/object_zo/gZoraThrowRupeesAnim.c
@@ -0,0 +1,14 @@
+#include "object_zo.h"
+#include "array_count.h"
+
+s16 gZoraThrowRupeesFrameData[] = {
+#include "assets/objects/object_zo/gZoraThrowRupeesFrameData.inc.c"
+};
+
+JointIndex gZoraThrowRupeesJointIndices[] = {
+#include "assets/objects/object_zo/gZoraThrowRupeesJointIndices.inc.c"
+};
+
+AnimationHeader gZoraThrowRupeesAnim = {
+#include "assets/objects/object_zo/gZoraThrowRupeesAnim.inc.c"
+};
diff --git a/assets/objects/object_zo/object_zo.h b/assets/objects/object_zo/object_zo.h
new file mode 100644
index 0000000000..b68a1223d0
--- /dev/null
+++ b/assets/objects/object_zo/object_zo.h
@@ -0,0 +1,55 @@
+#ifndef OBJECT_ZO_H
+#define OBJECT_ZO_H
+
+#include "ultra64.h"
+#include "animation.h"
+#include "tex_len.h"
+
+extern Gfx gZoraBubblesMaterialDL[12];
+extern Gfx gZoraBubblesModelDL[3];
+
+extern Gfx gZoraSplashesMaterialDL[14];
+extern Gfx gZoraSplashesModelDL[3];
+
+extern Gfx gZoraRipplesMaterialDL[13];
+extern Gfx gZoraRipplesModelDL[3];
+
+extern AnimationHeader gZoraHandsOnHipsTappingFootAnim;
+extern AnimationHeader gZoraOpenArmsAnim;
+extern AnimationHeader gZoraThrowRupeesAnim;
+extern AnimationHeader gZoraSurfaceAnim;
+extern AnimationHeader gZoraIdleAnim;
+
+#define ZORA_EYE_TEX_WIDTH 32
+#define ZORA_EYE_TEX_HEIGHT 32
+extern u64 gZoraEyeOpenTex[TEX_LEN(u64, ZORA_EYE_TEX_WIDTH, ZORA_EYE_TEX_HEIGHT, 16)];
+extern u64 gZoraEyeHalfTex[TEX_LEN(u64, ZORA_EYE_TEX_WIDTH, ZORA_EYE_TEX_HEIGHT, 16)];
+extern u64 gZoraEyeClosedTex[TEX_LEN(u64, ZORA_EYE_TEX_WIDTH, ZORA_EYE_TEX_HEIGHT, 16)];
+
+typedef enum ZoraLimb {
+ /* 0 */ ZORA_LIMB_NONE,
+ /* 1 */ ZORA_LIMB_PELVIS,
+ /* 2 */ ZORA_LIMB_LEFT_THIGHS,
+ /* 3 */ ZORA_LIMB_LEFT_SHIN,
+ /* 4 */ ZORA_LIMB_LEFT_FOOT,
+ /* 5 */ ZORA_LIMB_RIGHT_THIGHS,
+ /* 6 */ ZORA_LIMB_RIGHT_SHIN,
+ /* 7 */ ZORA_LIMB_RIGHT_FOOT,
+ /* 8 */ ZORA_LIMB_TORSO,
+ /* 9 */ ZORA_LIMB_LEFT_ARM,
+ /* 10 */ ZORA_LIMB_LEFT_FOREARM,
+ /* 11 */ ZORA_LIMB_LEFT_HAND,
+ /* 12 */ ZORA_LIMB_RIGHT_ARM,
+ /* 13 */ ZORA_LIMB_RIGHT_FOREARM,
+ /* 14 */ ZORA_LIMB_RIGHT_HAND,
+ /* 15 */ ZORA_LIMB_HEAD,
+ /* 16 */ ZORA_LIMB_HEAD_TAIL_1,
+ /* 17 */ ZORA_LIMB_HEAD_TAIL_2,
+ /* 18 */ ZORA_LIMB_HEAD_TAIL_3,
+ /* 19 */ ZORA_LIMB_HEAD_TAIL_FIN,
+ /* 20 */ ZORA_LIMB_MAX
+} ZoraLimb;
+
+extern FlexSkeletonHeader gZoraSkel;
+
+#endif
diff --git a/assets/textures/do_action_static/do_action_static.c b/assets/textures/do_action_static/do_action_static.c
new file mode 100644
index 0000000000..646a3edb66
--- /dev/null
+++ b/assets/textures/do_action_static/do_action_static.c
@@ -0,0 +1,481 @@
+#include "do_action_static.h"
+
+#if OOT_NTSC
+
+// Japanese
+
+u64 gAttackDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gAttackDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gCheckDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gCheckDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gEnterDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gEnterDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gReturnDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gReturnDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gOpenDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gOpenDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gJumpDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gJumpDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gDecideDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gDecideDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gDiveDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gDiveDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gFasterDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gFasterDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gThrowDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gThrowDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gUnusedNaviDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gUnusedNaviDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gClimbDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gClimbDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gDropDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gDropDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gDownDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gDownDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gSaveDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gSaveDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gSpeakDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gSpeakDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gNextDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNextDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gGrabDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gGrabDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gStopDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gStopDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gPutAwayDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gPutAwayDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gReelDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gReelDoActionJPNTex.ia4.inc.c"
+};
+
+u64 gNum1DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum1DoActionJPNTex.ia4.inc.c"
+};
+
+u64 gNum2DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum2DoActionJPNTex.ia4.inc.c"
+};
+
+u64 gNum3DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum3DoActionJPNTex.ia4.inc.c"
+};
+
+u64 gNum4DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum4DoActionJPNTex.ia4.inc.c"
+};
+
+u64 gNum5DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum5DoActionJPNTex.ia4.inc.c"
+};
+
+u64 gNum6DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum6DoActionJPNTex.ia4.inc.c"
+};
+
+u64 gNum7DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum7DoActionJPNTex.ia4.inc.c"
+};
+
+u64 gNum8DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum8DoActionJPNTex.ia4.inc.c"
+};
+
+#endif
+
+// English
+
+u64 gAttackDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gAttackDoActionENGTex.ia4.inc.c"
+};
+
+u64 gCheckDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gCheckDoActionENGTex.ia4.inc.c"
+};
+
+u64 gEnterDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gEnterDoActionENGTex.ia4.inc.c"
+};
+
+u64 gReturnDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gReturnDoActionENGTex.ia4.inc.c"
+};
+
+u64 gOpenDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gOpenDoActionENGTex.ia4.inc.c"
+};
+
+u64 gJumpDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gJumpDoActionENGTex.ia4.inc.c"
+};
+
+u64 gDecideDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gDecideDoActionENGTex.ia4.inc.c"
+};
+
+u64 gDiveDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gDiveDoActionENGTex.ia4.inc.c"
+};
+
+u64 gFasterDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gFasterDoActionENGTex.ia4.inc.c"
+};
+
+u64 gThrowDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gThrowDoActionENGTex.ia4.inc.c"
+};
+
+u64 gUnusedNaviDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gUnusedNaviDoActionENGTex.ia4.inc.c"
+};
+
+u64 gClimbDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gClimbDoActionENGTex.ia4.inc.c"
+};
+
+u64 gDropDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gDropDoActionENGTex.ia4.inc.c"
+};
+
+u64 gDownDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gDownDoActionENGTex.ia4.inc.c"
+};
+
+u64 gSaveDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gSaveDoActionENGTex.ia4.inc.c"
+};
+
+u64 gSpeakDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gSpeakDoActionENGTex.ia4.inc.c"
+};
+
+u64 gNextDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNextDoActionENGTex.ia4.inc.c"
+};
+
+u64 gGrabDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gGrabDoActionENGTex.ia4.inc.c"
+};
+
+u64 gStopDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gStopDoActionENGTex.ia4.inc.c"
+};
+
+u64 gPutAwayDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gPutAwayDoActionENGTex.ia4.inc.c"
+};
+
+u64 gReelDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gReelDoActionENGTex.ia4.inc.c"
+};
+
+u64 gNum1DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum1DoActionENGTex.ia4.inc.c"
+};
+
+u64 gNum2DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum2DoActionENGTex.ia4.inc.c"
+};
+
+u64 gNum3DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum3DoActionENGTex.ia4.inc.c"
+};
+
+u64 gNum4DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum4DoActionENGTex.ia4.inc.c"
+};
+
+u64 gNum5DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum5DoActionENGTex.ia4.inc.c"
+};
+
+u64 gNum6DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum6DoActionENGTex.ia4.inc.c"
+};
+
+u64 gNum7DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum7DoActionENGTex.ia4.inc.c"
+};
+
+u64 gNum8DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum8DoActionENGTex.ia4.inc.c"
+};
+
+#if OOT_PAL
+
+// German
+
+u64 gAttackDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gAttackDoActionGERTex.ia4.inc.c"
+};
+
+u64 gCheckDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gCheckDoActionGERTex.ia4.inc.c"
+};
+
+u64 gEnterDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gEnterDoActionGERTex.ia4.inc.c"
+};
+
+u64 gReturnDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gReturnDoActionGERTex.ia4.inc.c"
+};
+
+u64 gOpenDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gOpenDoActionGERTex.ia4.inc.c"
+};
+
+u64 gJumpDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gJumpDoActionGERTex.ia4.inc.c"
+};
+
+u64 gDecideDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gDecideDoActionGERTex.ia4.inc.c"
+};
+
+u64 gDiveDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gDiveDoActionGERTex.ia4.inc.c"
+};
+
+u64 gFasterDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gFasterDoActionGERTex.ia4.inc.c"
+};
+
+u64 gThrowDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gThrowDoActionGERTex.ia4.inc.c"
+};
+
+u64 gUnusedNaviDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gUnusedNaviDoActionGERTex.ia4.inc.c"
+};
+
+u64 gClimbDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gClimbDoActionGERTex.ia4.inc.c"
+};
+
+u64 gDropDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gDropDoActionGERTex.ia4.inc.c"
+};
+
+u64 gDownDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gDownDoActionGERTex.ia4.inc.c"
+};
+
+u64 gSaveDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gSaveDoActionGERTex.ia4.inc.c"
+};
+
+u64 gSpeakDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gSpeakDoActionGERTex.ia4.inc.c"
+};
+
+u64 gNextDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNextDoActionGERTex.ia4.inc.c"
+};
+
+u64 gGrabDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gGrabDoActionGERTex.ia4.inc.c"
+};
+
+u64 gStopDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gStopDoActionGERTex.ia4.inc.c"
+};
+
+u64 gPutAwayDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gPutAwayDoActionGERTex.ia4.inc.c"
+};
+
+u64 gReelDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gReelDoActionGERTex.ia4.inc.c"
+};
+
+u64 gNum1DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum1DoActionGERTex.ia4.inc.c"
+};
+
+u64 gNum2DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum2DoActionGERTex.ia4.inc.c"
+};
+
+u64 gNum3DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum3DoActionGERTex.ia4.inc.c"
+};
+
+u64 gNum4DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum4DoActionGERTex.ia4.inc.c"
+};
+
+u64 gNum5DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum5DoActionGERTex.ia4.inc.c"
+};
+
+u64 gNum6DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum6DoActionGERTex.ia4.inc.c"
+};
+
+u64 gNum7DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum7DoActionGERTex.ia4.inc.c"
+};
+
+u64 gNum8DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum8DoActionGERTex.ia4.inc.c"
+};
+
+// French
+
+u64 gAttackDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gAttackDoActionFRATex.ia4.inc.c"
+};
+
+u64 gCheckDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gCheckDoActionFRATex.ia4.inc.c"
+};
+
+u64 gEnterDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gEnterDoActionFRATex.ia4.inc.c"
+};
+
+u64 gReturnDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gReturnDoActionFRATex.ia4.inc.c"
+};
+
+u64 gOpenDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gOpenDoActionFRATex.ia4.inc.c"
+};
+
+u64 gJumpDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gJumpDoActionFRATex.ia4.inc.c"
+};
+
+u64 gDecideDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gDecideDoActionFRATex.ia4.inc.c"
+};
+
+u64 gDiveDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gDiveDoActionFRATex.ia4.inc.c"
+};
+
+u64 gFasterDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gFasterDoActionFRATex.ia4.inc.c"
+};
+
+u64 gThrowDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gThrowDoActionFRATex.ia4.inc.c"
+};
+
+u64 gUnusedNaviDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gUnusedNaviDoActionFRATex.ia4.inc.c"
+};
+
+u64 gClimbDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gClimbDoActionFRATex.ia4.inc.c"
+};
+
+u64 gDropDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gDropDoActionFRATex.ia4.inc.c"
+};
+
+u64 gDownDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gDownDoActionFRATex.ia4.inc.c"
+};
+
+u64 gSaveDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gSaveDoActionFRATex.ia4.inc.c"
+};
+
+u64 gSpeakDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gSpeakDoActionFRATex.ia4.inc.c"
+};
+
+u64 gNextDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNextDoActionFRATex.ia4.inc.c"
+};
+
+u64 gGrabDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gGrabDoActionFRATex.ia4.inc.c"
+};
+
+u64 gStopDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gStopDoActionFRATex.ia4.inc.c"
+};
+
+u64 gPutAwayDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gPutAwayDoActionFRATex.ia4.inc.c"
+};
+
+u64 gReelDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gReelDoActionFRATex.ia4.inc.c"
+};
+
+u64 gNum1DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum1DoActionFRATex.ia4.inc.c"
+};
+
+u64 gNum2DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum2DoActionFRATex.ia4.inc.c"
+};
+
+u64 gNum3DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum3DoActionFRATex.ia4.inc.c"
+};
+
+u64 gNum4DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum4DoActionFRATex.ia4.inc.c"
+};
+
+u64 gNum5DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum5DoActionFRATex.ia4.inc.c"
+};
+
+u64 gNum6DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum6DoActionFRATex.ia4.inc.c"
+};
+
+u64 gNum7DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum7DoActionFRATex.ia4.inc.c"
+};
+
+u64 gNum8DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = {
+#include "assets/textures/do_action_static/gNum8DoActionFRATex.ia4.inc.c"
+};
+
+#endif
diff --git a/assets/textures/do_action_static/do_action_static.h b/assets/textures/do_action_static/do_action_static.h
new file mode 100644
index 0000000000..dcbed37869
--- /dev/null
+++ b/assets/textures/do_action_static/do_action_static.h
@@ -0,0 +1,140 @@
+#ifndef DO_ACTION_STATIC_H
+#define DO_ACTION_STATIC_H
+
+#include "ultra64.h"
+#include "tex_len.h"
+#include "versions.h"
+
+#define DO_ACTION_TEX_WIDTH 48
+#define DO_ACTION_TEX_HEIGHT 16
+#define DO_ACTION_TEX_SIZE (DO_ACTION_TEX_WIDTH * DO_ACTION_TEX_HEIGHT / 2)
+
+#if OOT_NTSC
+
+extern u64 gAttackDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gCheckDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gEnterDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gReturnDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gOpenDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gJumpDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gDecideDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gDiveDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gFasterDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gThrowDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gUnusedNaviDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gClimbDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gDropDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gDownDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gSaveDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gSpeakDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNextDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gGrabDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gStopDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gPutAwayDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gReelDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum1DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum2DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum3DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum4DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum5DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum6DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum7DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum8DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+
+#endif
+
+extern u64 gAttackDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gCheckDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gEnterDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gReturnDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gOpenDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gJumpDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gDecideDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gDiveDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gFasterDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gThrowDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gUnusedNaviDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gClimbDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gDropDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gDownDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gSaveDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gSpeakDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNextDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gGrabDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gStopDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gPutAwayDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gReelDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum1DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum2DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum3DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum4DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum5DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum6DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum7DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum8DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+
+#if OOT_PAL
+
+extern u64 gAttackDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gCheckDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gEnterDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gReturnDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gOpenDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gJumpDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gDecideDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gDiveDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gFasterDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gThrowDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gUnusedNaviDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gClimbDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gDropDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gDownDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gSaveDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gSpeakDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNextDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gGrabDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gStopDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gPutAwayDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gReelDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum1DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum2DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum3DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum4DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum5DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum6DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum7DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum8DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+
+extern u64 gAttackDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gCheckDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gEnterDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gReturnDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gOpenDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gJumpDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gDecideDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gDiveDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gFasterDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gThrowDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gUnusedNaviDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gClimbDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gDropDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gDownDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gSaveDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gSpeakDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNextDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gGrabDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gStopDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gPutAwayDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gReelDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum1DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum2DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum3DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum4DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum5DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum6DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum7DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+extern u64 gNum8DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)];
+
+#endif
+
+#endif
diff --git a/assets/xml/code/fbdemo_circle.xml b/assets/xml/code/fbdemo_circle.xml
index 618c743314..5120f49ccf 100644
--- a/assets/xml/code/fbdemo_circle.xml
+++ b/assets/xml/code/fbdemo_circle.xml
@@ -1,9 +1,9 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/assets/xml/code/fbdemo_triforce.xml b/assets/xml/code/fbdemo_triforce.xml
index 613f7995d2..db7e23019a 100644
--- a/assets/xml/code/fbdemo_triforce.xml
+++ b/assets/xml/code/fbdemo_triforce.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/assets/xml/code/fbdemo_wipe1.xml b/assets/xml/code/fbdemo_wipe1.xml
index 87f7e47b6f..79217fce93 100644
--- a/assets/xml/code/fbdemo_wipe1.xml
+++ b/assets/xml/code/fbdemo_wipe1.xml
@@ -1,9 +1,9 @@
-
+
-
+
diff --git a/assets/xml/n64dd/error_textures.xml b/assets/xml/n64dd/error_textures.xml
index 6db2ab37d5..82b997cb26 100644
--- a/assets/xml/n64dd/error_textures.xml
+++ b/assets/xml/n64dd/error_textures.xml
@@ -1,8 +1,8 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/assets/xml/objects/gameplay_dangeon_keep.xml b/assets/xml/objects/gameplay_dangeon_keep.xml
index 4dcfa922b1..015e400e41 100644
--- a/assets/xml/objects/gameplay_dangeon_keep.xml
+++ b/assets/xml/objects/gameplay_dangeon_keep.xml
@@ -1,5 +1,7 @@
+
+
@@ -8,7 +10,8 @@
-
+
+
@@ -17,15 +20,16 @@
-
-
+
+
+
-
-
-
+
+
+
@@ -104,20 +108,39 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/gameplay_field_keep.xml b/assets/xml/objects/gameplay_field_keep.xml
index 3c0f18d74e..3642fe0a00 100644
--- a/assets/xml/objects/gameplay_field_keep.xml
+++ b/assets/xml/objects/gameplay_field_keep.xml
@@ -8,55 +8,144 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/gameplay_keep.xml b/assets/xml/objects/gameplay_keep.xml
index 0c90a35d5c..ce2c7fb7d4 100644
--- a/assets/xml/objects/gameplay_keep.xml
+++ b/assets/xml/objects/gameplay_keep.xml
@@ -1,16 +1,16 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -607,10 +607,10 @@
-
-
-
-
+
+
+
+
@@ -623,15 +623,15 @@
-
+
-
-
+
+
@@ -640,31 +640,35 @@
+
+
+
+
-
-
+
+
-
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -675,7 +679,7 @@
-
+
@@ -696,17 +700,17 @@
-
+
-
+
-
-
-
+
+
+
@@ -715,8 +719,8 @@
-
-
+
+
@@ -732,7 +736,11 @@
-
+
+
+
+
+
@@ -744,9 +752,9 @@
-
-
-
+
+
+
@@ -763,20 +771,20 @@
-
-
+
+
-
-
+
+
-
+
@@ -802,13 +810,27 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
@@ -823,11 +845,20 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -837,75 +868,75 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -914,61 +945,61 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
@@ -1033,8 +1064,31 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1044,10 +1098,10 @@
-
-
-
-
+
+
+
+
@@ -1057,19 +1111,19 @@
-
-
-
+
+
+
-
+
-
+
@@ -1129,7 +1183,7 @@
-
+
@@ -1164,60 +1218,60 @@
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -1226,33 +1280,33 @@
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -1271,8 +1325,8 @@
-
-
+
+
@@ -1288,24 +1342,24 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/gameplay_keep_pal.xml b/assets/xml/objects/gameplay_keep_pal.xml
index f290314d5c..9e792020bf 100644
--- a/assets/xml/objects/gameplay_keep_pal.xml
+++ b/assets/xml/objects/gameplay_keep_pal.xml
@@ -1,16 +1,16 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -607,10 +607,10 @@
-
-
-
-
+
+
+
+
@@ -623,15 +623,15 @@
-
+
-
-
+
+
@@ -640,31 +640,35 @@
+
+
+
+
-
-
+
+
-
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -675,7 +679,7 @@
-
+
@@ -690,14 +694,14 @@
-
+
-
-
-
+
+
+
@@ -706,8 +710,8 @@
-
-
+
+
@@ -723,7 +727,11 @@
-
+
+
+
+
+
@@ -735,9 +743,9 @@
-
-
-
+
+
+
@@ -754,20 +762,20 @@
-
-
+
+
-
-
+
+
-
+
@@ -793,13 +801,27 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
@@ -814,11 +836,20 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -828,75 +859,75 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -905,61 +936,61 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
@@ -1024,8 +1055,31 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1035,10 +1089,10 @@
-
-
-
-
+
+
+
+
@@ -1048,19 +1102,19 @@
-
-
-
+
+
+
-
+
-
+
@@ -1102,7 +1156,7 @@
-
+
@@ -1123,43 +1177,43 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1168,33 +1222,33 @@
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -1213,8 +1267,8 @@
-
-
+
+
@@ -1230,24 +1284,24 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_Bb.xml b/assets/xml/objects/object_Bb.xml
index b65f7f6b60..cc64dc95ce 100644
--- a/assets/xml/objects/object_Bb.xml
+++ b/assets/xml/objects/object_Bb.xml
@@ -27,14 +27,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ahg.xml b/assets/xml/objects/object_ahg.xml
index 19b8876390..44c02a7edc 100644
--- a/assets/xml/objects/object_ahg.xml
+++ b/assets/xml/objects/object_ahg.xml
@@ -21,19 +21,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -100,11 +100,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/assets/xml/objects/object_am.xml b/assets/xml/objects/object_am.xml
index c787a7b391..faf6c5576a 100644
--- a/assets/xml/objects/object_am.xml
+++ b/assets/xml/objects/object_am.xml
@@ -23,5 +23,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ane.xml b/assets/xml/objects/object_ane.xml
index d1c245308c..be1acf5637 100644
--- a/assets/xml/objects/object_ane.xml
+++ b/assets/xml/objects/object_ane.xml
@@ -38,23 +38,23 @@
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_ani.xml b/assets/xml/objects/object_ani.xml
index f0b09bba59..33dc215ba2 100644
--- a/assets/xml/objects/object_ani.xml
+++ b/assets/xml/objects/object_ani.xml
@@ -38,26 +38,27 @@
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_anubice.xml b/assets/xml/objects/object_anubice.xml
index 7c3148d742..492a8e4235 100644
--- a/assets/xml/objects/object_anubice.xml
+++ b/assets/xml/objects/object_anubice.xml
@@ -51,5 +51,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_aob.xml b/assets/xml/objects/object_aob.xml
index b3ef98f914..e7bcfb05ff 100644
--- a/assets/xml/objects/object_aob.xml
+++ b/assets/xml/objects/object_aob.xml
@@ -38,22 +38,22 @@
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_b_heart.xml b/assets/xml/objects/object_b_heart.xml
index dc4e7fa4c3..9b7b81bb75 100644
--- a/assets/xml/objects/object_b_heart.xml
+++ b/assets/xml/objects/object_b_heart.xml
@@ -8,7 +8,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_bba.xml b/assets/xml/objects/object_bba.xml
index a0cc6812f7..6ab5be4e34 100644
--- a/assets/xml/objects/object_bba.xml
+++ b/assets/xml/objects/object_bba.xml
@@ -19,16 +19,16 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_bdan_objects.xml b/assets/xml/objects/object_bdan_objects.xml
index 36f6541f03..781f33eafb 100644
--- a/assets/xml/objects/object_bdan_objects.xml
+++ b/assets/xml/objects/object_bdan_objects.xml
@@ -1,39 +1,41 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_bdoor.xml b/assets/xml/objects/object_bdoor.xml
index 6addd6e4f5..632baa6330 100644
--- a/assets/xml/objects/object_bdoor.xml
+++ b/assets/xml/objects/object_bdoor.xml
@@ -2,7 +2,7 @@
-
+
@@ -19,13 +19,13 @@
-
-
-
-
-
+
+
+
+
+
-
+
diff --git a/assets/xml/objects/object_bg.xml b/assets/xml/objects/object_bg.xml
index 50d18c7187..133de136f6 100644
--- a/assets/xml/objects/object_bg.xml
+++ b/assets/xml/objects/object_bg.xml
@@ -34,16 +34,16 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_bigokuta.xml b/assets/xml/objects/object_bigokuta.xml
index 9c77261caf..ec2b7d8dc6 100644
--- a/assets/xml/objects/object_bigokuta.xml
+++ b/assets/xml/objects/object_bigokuta.xml
@@ -81,16 +81,16 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_bird.xml b/assets/xml/objects/object_bird.xml
index 2c184e87fc..800a8a6b58 100644
--- a/assets/xml/objects/object_bird.xml
+++ b/assets/xml/objects/object_bird.xml
@@ -22,9 +22,9 @@
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_bji.xml b/assets/xml/objects/object_bji.xml
index b658cfe7f8..8e82b0a0d8 100644
--- a/assets/xml/objects/object_bji.xml
+++ b/assets/xml/objects/object_bji.xml
@@ -21,17 +21,17 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -98,9 +98,9 @@
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_bl.xml b/assets/xml/objects/object_bl.xml
index 6614aad836..a987840a31 100644
--- a/assets/xml/objects/object_bl.xml
+++ b/assets/xml/objects/object_bl.xml
@@ -22,16 +22,16 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_blkobj.xml b/assets/xml/objects/object_blkobj.xml
index c8f3012bf4..a2f22813b9 100644
--- a/assets/xml/objects/object_blkobj.xml
+++ b/assets/xml/objects/object_blkobj.xml
@@ -21,5 +21,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_bob.xml b/assets/xml/objects/object_bob.xml
index f3d0d55944..41f9b10562 100644
--- a/assets/xml/objects/object_bob.xml
+++ b/assets/xml/objects/object_bob.xml
@@ -19,18 +19,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_boj.xml b/assets/xml/objects/object_boj.xml
index e25054fe23..ff2a57a986 100644
--- a/assets/xml/objects/object_boj.xml
+++ b/assets/xml/objects/object_boj.xml
@@ -21,18 +21,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -99,14 +99,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_bombf.xml b/assets/xml/objects/object_bombf.xml
index 83e60248d1..3b69324cbf 100644
--- a/assets/xml/objects/object_bombf.xml
+++ b/assets/xml/objects/object_bombf.xml
@@ -1,14 +1,28 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_bombiwa.xml b/assets/xml/objects/object_bombiwa.xml
index 0f3f5a7e40..88769bba17 100644
--- a/assets/xml/objects/object_bombiwa.xml
+++ b/assets/xml/objects/object_bombiwa.xml
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_bowl.xml b/assets/xml/objects/object_bowl.xml
index d84a9598cd..31fd9eb841 100644
--- a/assets/xml/objects/object_bowl.xml
+++ b/assets/xml/objects/object_bowl.xml
@@ -1,9 +1,9 @@
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_box.xml b/assets/xml/objects/object_box.xml
index 8387130c94..515f76c571 100644
--- a/assets/xml/objects/object_box.xml
+++ b/assets/xml/objects/object_box.xml
@@ -13,25 +13,25 @@
-
+
-
+
-
+
-
+
diff --git a/assets/xml/objects/object_brob.xml b/assets/xml/objects/object_brob.xml
index ad8e61d3b7..35eaec3427 100644
--- a/assets/xml/objects/object_brob.xml
+++ b/assets/xml/objects/object_brob.xml
@@ -21,7 +21,7 @@
-
+
diff --git a/assets/xml/objects/object_bubble.xml b/assets/xml/objects/object_bubble.xml
index f5de186920..0777a87c1f 100644
--- a/assets/xml/objects/object_bubble.xml
+++ b/assets/xml/objects/object_bubble.xml
@@ -1,6 +1,9 @@
-
+
+
+
+
diff --git a/assets/xml/objects/object_bv.xml b/assets/xml/objects/object_bv.xml
index 5a8e6c594d..a0486c8f7f 100644
--- a/assets/xml/objects/object_bv.xml
+++ b/assets/xml/objects/object_bv.xml
@@ -1,7 +1,7 @@
-
+
@@ -75,5 +75,187 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_bv_pal.xml b/assets/xml/objects/object_bv_pal.xml
index 8de7492663..f738c62d85 100644
--- a/assets/xml/objects/object_bv_pal.xml
+++ b/assets/xml/objects/object_bv_pal.xml
@@ -1,7 +1,7 @@
-
+
@@ -75,5 +75,187 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_bw.xml b/assets/xml/objects/object_bw.xml
index 8ee83090c7..27a84f18f2 100644
--- a/assets/xml/objects/object_bw.xml
+++ b/assets/xml/objects/object_bw.xml
@@ -26,11 +26,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/assets/xml/objects/object_bwall.xml b/assets/xml/objects/object_bwall.xml
index e0bdea1b40..02320cc65c 100644
--- a/assets/xml/objects/object_bwall.xml
+++ b/assets/xml/objects/object_bwall.xml
@@ -5,6 +5,6 @@
-
+
diff --git a/assets/xml/objects/object_bxa.xml b/assets/xml/objects/object_bxa.xml
index f1ad934e25..98b43d7a24 100644
--- a/assets/xml/objects/object_bxa.xml
+++ b/assets/xml/objects/object_bxa.xml
@@ -4,8 +4,8 @@
-
-
+
+
@@ -14,9 +14,9 @@
-
-
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_cne.xml b/assets/xml/objects/object_cne.xml
index c35805885e..82181568ef 100644
--- a/assets/xml/objects/object_cne.xml
+++ b/assets/xml/objects/object_cne.xml
@@ -21,14 +21,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -95,8 +95,8 @@
-
-
+
+
diff --git a/assets/xml/objects/object_cob.xml b/assets/xml/objects/object_cob.xml
index 8135707021..7aad9dc661 100644
--- a/assets/xml/objects/object_cob.xml
+++ b/assets/xml/objects/object_cob.xml
@@ -1,12 +1,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_cow.xml b/assets/xml/objects/object_cow.xml
index d825f089c5..48d1defdd1 100644
--- a/assets/xml/objects/object_cow.xml
+++ b/assets/xml/objects/object_cow.xml
@@ -41,16 +41,16 @@
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_crow.xml b/assets/xml/objects/object_crow.xml
index ee166346b3..4322992884 100644
--- a/assets/xml/objects/object_crow.xml
+++ b/assets/xml/objects/object_crow.xml
@@ -2,9 +2,9 @@
-
-
-
+
+
+
@@ -30,5 +30,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_cs.xml b/assets/xml/objects/object_cs.xml
index 9c2443ce5d..9be0327a92 100644
--- a/assets/xml/objects/object_cs.xml
+++ b/assets/xml/objects/object_cs.xml
@@ -85,22 +85,22 @@
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_d_elevator.xml b/assets/xml/objects/object_d_elevator.xml
index d2761b4f5c..4dd6ef4ee5 100644
--- a/assets/xml/objects/object_d_elevator.xml
+++ b/assets/xml/objects/object_d_elevator.xml
@@ -5,6 +5,6 @@
-
+
diff --git a/assets/xml/objects/object_d_hsblock.xml b/assets/xml/objects/object_d_hsblock.xml
index b9a62acdfb..3d78728fe0 100644
--- a/assets/xml/objects/object_d_hsblock.xml
+++ b/assets/xml/objects/object_d_hsblock.xml
@@ -4,8 +4,8 @@
-
-
+
+
diff --git a/assets/xml/objects/object_d_lift.xml b/assets/xml/objects/object_d_lift.xml
index 8c226f30fb..00945ba7c4 100644
--- a/assets/xml/objects/object_d_lift.xml
+++ b/assets/xml/objects/object_d_lift.xml
@@ -5,7 +5,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_daiku.xml b/assets/xml/objects/object_daiku.xml
index c2c538e1be..e70af879c6 100644
--- a/assets/xml/objects/object_daiku.xml
+++ b/assets/xml/objects/object_daiku.xml
@@ -3,19 +3,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ddan_objects.xml b/assets/xml/objects/object_ddan_objects.xml
index 6eeb481eb3..1857c31e5f 100644
--- a/assets/xml/objects/object_ddan_objects.xml
+++ b/assets/xml/objects/object_ddan_objects.xml
@@ -1,21 +1,23 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
diff --git a/assets/xml/objects/object_dekubaba.xml b/assets/xml/objects/object_dekubaba.xml
index fa587f3403..e099d4e6c9 100644
--- a/assets/xml/objects/object_dekubaba.xml
+++ b/assets/xml/objects/object_dekubaba.xml
@@ -31,11 +31,11 @@
-
-
-
-
-
+
+
+
+
+
@@ -54,6 +54,6 @@
-
+
diff --git a/assets/xml/objects/object_dekujr.xml b/assets/xml/objects/object_dekujr.xml
index 7f4e70681b..b593dcbbdd 100644
--- a/assets/xml/objects/object_dekujr.xml
+++ b/assets/xml/objects/object_dekujr.xml
@@ -1,12 +1,12 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_dekunuts.xml b/assets/xml/objects/object_dekunuts.xml
index 8f1303fadb..6cccc444b1 100644
--- a/assets/xml/objects/object_dekunuts.xml
+++ b/assets/xml/objects/object_dekunuts.xml
@@ -16,18 +16,18 @@
-
-
-
-
-
+
+
+
+
+
-
+
@@ -63,5 +63,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_demo_6k.xml b/assets/xml/objects/object_demo_6k.xml
index 9cb598a2e1..726fd2384b 100644
--- a/assets/xml/objects/object_demo_6k.xml
+++ b/assets/xml/objects/object_demo_6k.xml
@@ -1,17 +1,17 @@
-
+
-
+
-
+
diff --git a/assets/xml/objects/object_demo_kekkai.xml b/assets/xml/objects/object_demo_kekkai.xml
index 8b7b739c64..b35f9d0422 100644
--- a/assets/xml/objects/object_demo_kekkai.xml
+++ b/assets/xml/objects/object_demo_kekkai.xml
@@ -2,41 +2,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_dh.xml b/assets/xml/objects/object_dh.xml
index 0e8d7fc7e1..9790fbb743 100644
--- a/assets/xml/objects/object_dh.xml
+++ b/assets/xml/objects/object_dh.xml
@@ -16,8 +16,8 @@
-
-
+
+
@@ -26,10 +26,10 @@
-
-
-
-
+
+
+
+
@@ -107,7 +107,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_dnk.xml b/assets/xml/objects/object_dnk.xml
index 00b5da9157..f4850e6aa1 100644
--- a/assets/xml/objects/object_dnk.xml
+++ b/assets/xml/objects/object_dnk.xml
@@ -12,9 +12,9 @@
-
-
-
+
+
+
@@ -64,5 +64,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_dns.xml b/assets/xml/objects/object_dns.xml
index 5989afbc5f..f934b6b125 100644
--- a/assets/xml/objects/object_dns.xml
+++ b/assets/xml/objects/object_dns.xml
@@ -74,5 +74,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_dodojr.xml b/assets/xml/objects/object_dodojr.xml
index 1938fc574d..f28c4dd760 100644
--- a/assets/xml/objects/object_dodojr.xml
+++ b/assets/xml/objects/object_dodojr.xml
@@ -25,10 +25,10 @@
-
-
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_dodongo.xml b/assets/xml/objects/object_dodongo.xml
index e7b00e7d31..9ec37d74a8 100644
--- a/assets/xml/objects/object_dodongo.xml
+++ b/assets/xml/objects/object_dodongo.xml
@@ -19,21 +19,21 @@
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
@@ -78,5 +78,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_dog.xml b/assets/xml/objects/object_dog.xml
index 7b32982441..431c11c809 100644
--- a/assets/xml/objects/object_dog.xml
+++ b/assets/xml/objects/object_dog.xml
@@ -6,14 +6,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_door_gerudo.xml b/assets/xml/objects/object_door_gerudo.xml
index 6f9ec37e45..090582d3b2 100644
--- a/assets/xml/objects/object_door_gerudo.xml
+++ b/assets/xml/objects/object_door_gerudo.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/assets/xml/objects/object_door_killer.xml b/assets/xml/objects/object_door_killer.xml
index 7f8d8f186c..8ef83cd9fa 100644
--- a/assets/xml/objects/object_door_killer.xml
+++ b/assets/xml/objects/object_door_killer.xml
@@ -48,6 +48,14 @@
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ds.xml b/assets/xml/objects/object_ds.xml
index 2dea3f869b..cccf04d937 100644
--- a/assets/xml/objects/object_ds.xml
+++ b/assets/xml/objects/object_ds.xml
@@ -17,20 +17,20 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ds2.xml b/assets/xml/objects/object_ds2.xml
index 9c61ea4d24..d044d8208d 100644
--- a/assets/xml/objects/object_ds2.xml
+++ b/assets/xml/objects/object_ds2.xml
@@ -33,18 +33,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_du.xml b/assets/xml/objects/object_du.xml
index 0babd962b9..3535c98e97 100644
--- a/assets/xml/objects/object_du.xml
+++ b/assets/xml/objects/object_du.xml
@@ -40,42 +40,124 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_du_pal.xml b/assets/xml/objects/object_du_pal.xml
index 44bbd1aa04..1ea1309b78 100644
--- a/assets/xml/objects/object_du_pal.xml
+++ b/assets/xml/objects/object_du_pal.xml
@@ -40,42 +40,124 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_dy_obj.xml b/assets/xml/objects/object_dy_obj.xml
index 63a200b102..42b2f6340a 100644
--- a/assets/xml/objects/object_dy_obj.xml
+++ b/assets/xml/objects/object_dy_obj.xml
@@ -70,34 +70,34 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
diff --git a/assets/xml/objects/object_efc_crystal_light.xml b/assets/xml/objects/object_efc_crystal_light.xml
index 6ff4a830ed..dbd0936191 100644
--- a/assets/xml/objects/object_efc_crystal_light.xml
+++ b/assets/xml/objects/object_efc_crystal_light.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/assets/xml/objects/object_efc_doughnut.xml b/assets/xml/objects/object_efc_doughnut.xml
index e141c4ab4d..b948bab151 100644
--- a/assets/xml/objects/object_efc_doughnut.xml
+++ b/assets/xml/objects/object_efc_doughnut.xml
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_efc_erupc.xml b/assets/xml/objects/object_efc_erupc.xml
index 14d28438b2..6df65546cf 100644
--- a/assets/xml/objects/object_efc_erupc.xml
+++ b/assets/xml/objects/object_efc_erupc.xml
@@ -1,13 +1,13 @@
-
-
+
+
-
+
@@ -17,6 +17,6 @@
-
+
diff --git a/assets/xml/objects/object_efc_fire_ball.xml b/assets/xml/objects/object_efc_fire_ball.xml
index 645a95f4c2..2c9ec2cab9 100644
--- a/assets/xml/objects/object_efc_fire_ball.xml
+++ b/assets/xml/objects/object_efc_fire_ball.xml
@@ -4,7 +4,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_efc_lgt_shower.xml b/assets/xml/objects/object_efc_lgt_shower.xml
index c4e54e7748..81d3d5e17d 100644
--- a/assets/xml/objects/object_efc_lgt_shower.xml
+++ b/assets/xml/objects/object_efc_lgt_shower.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/assets/xml/objects/object_efc_star_field.xml b/assets/xml/objects/object_efc_star_field.xml
index 66782689c1..0fb6763f50 100644
--- a/assets/xml/objects/object_efc_star_field.xml
+++ b/assets/xml/objects/object_efc_star_field.xml
@@ -4,11 +4,11 @@
-
+
-
+
diff --git a/assets/xml/objects/object_efc_tw.xml b/assets/xml/objects/object_efc_tw.xml
index de53765696..cfc539111f 100644
--- a/assets/xml/objects/object_efc_tw.xml
+++ b/assets/xml/objects/object_efc_tw.xml
@@ -8,6 +8,6 @@
-
+
diff --git a/assets/xml/objects/object_ei.xml b/assets/xml/objects/object_ei.xml
index c2f191deaf..bffc17aaf7 100644
--- a/assets/xml/objects/object_ei.xml
+++ b/assets/xml/objects/object_ei.xml
@@ -37,14 +37,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_fa.xml b/assets/xml/objects/object_fa.xml
index 5b802e67aa..c13b195ec4 100644
--- a/assets/xml/objects/object_fa.xml
+++ b/assets/xml/objects/object_fa.xml
@@ -1,15 +1,15 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_fd.xml b/assets/xml/objects/object_fd.xml
index 4a5ce9fafa..750f80be4d 100644
--- a/assets/xml/objects/object_fd.xml
+++ b/assets/xml/objects/object_fd.xml
@@ -1,7 +1,7 @@
-
+
@@ -20,9 +20,9 @@
-
-
-
+
+
+
@@ -62,7 +62,7 @@
-
+
@@ -73,5 +73,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_fd2.xml b/assets/xml/objects/object_fd2.xml
index e6c4d6cce8..51fe70772f 100644
--- a/assets/xml/objects/object_fd2.xml
+++ b/assets/xml/objects/object_fd2.xml
@@ -22,9 +22,9 @@
-
-
-
+
+
+
@@ -151,5 +151,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_fd_pal.xml b/assets/xml/objects/object_fd_pal.xml
index be375399f6..ff91e48e11 100644
--- a/assets/xml/objects/object_fd_pal.xml
+++ b/assets/xml/objects/object_fd_pal.xml
@@ -1,7 +1,7 @@
-
+
@@ -20,9 +20,9 @@
-
-
-
+
+
+
@@ -62,7 +62,7 @@
-
+
@@ -73,5 +73,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_fhg.xml b/assets/xml/objects/object_fhg.xml
index 5f69fcb5a1..2186056a22 100644
--- a/assets/xml/objects/object_fhg.xml
+++ b/assets/xml/objects/object_fhg.xml
@@ -18,7 +18,7 @@
-
+
diff --git a/assets/xml/objects/object_fhg_pal.xml b/assets/xml/objects/object_fhg_pal.xml
index d12a90cb08..e4b5f3fee2 100644
--- a/assets/xml/objects/object_fhg_pal.xml
+++ b/assets/xml/objects/object_fhg_pal.xml
@@ -18,7 +18,7 @@
-
+
diff --git a/assets/xml/objects/object_fire.xml b/assets/xml/objects/object_fire.xml
index aef28a61a5..82b438138c 100644
--- a/assets/xml/objects/object_fire.xml
+++ b/assets/xml/objects/object_fire.xml
@@ -5,13 +5,13 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_firefly.xml b/assets/xml/objects/object_firefly.xml
index e7de1cfc44..34c45196f9 100644
--- a/assets/xml/objects/object_firefly.xml
+++ b/assets/xml/objects/object_firefly.xml
@@ -6,17 +6,17 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
@@ -51,5 +51,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_fish.xml b/assets/xml/objects/object_fish.xml
index c640a6bcd1..8cc28c0229 100644
--- a/assets/xml/objects/object_fish.xml
+++ b/assets/xml/objects/object_fish.xml
@@ -50,13 +50,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -74,28 +74,28 @@
-
-
+
+
-
-
+
+
-
+
-
+
@@ -113,7 +113,7 @@
-
+
@@ -174,37 +174,37 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
@@ -215,7 +215,7 @@
-
+
@@ -262,12 +262,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -281,17 +281,17 @@
-
-
-
+
+
+
-
-
+
+
@@ -301,8 +301,8 @@
-
-
+
+
@@ -313,7 +313,7 @@
-
+
@@ -325,9 +325,9 @@
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_fr.xml b/assets/xml/objects/object_fr.xml
index 19675d84fd..df113d49cc 100644
--- a/assets/xml/objects/object_fr.xml
+++ b/assets/xml/objects/object_fr.xml
@@ -3,18 +3,18 @@
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_fu.xml b/assets/xml/objects/object_fu.xml
index 673472c973..1bc18759a5 100644
--- a/assets/xml/objects/object_fu.xml
+++ b/assets/xml/objects/object_fu.xml
@@ -17,24 +17,24 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
+
diff --git a/assets/xml/objects/object_fw.xml b/assets/xml/objects/object_fw.xml
index d18ac114a1..ffbc70bd57 100644
--- a/assets/xml/objects/object_fw.xml
+++ b/assets/xml/objects/object_fw.xml
@@ -85,12 +85,13 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_fz.xml b/assets/xml/objects/object_fz.xml
index bd01a38707..00fe154fcc 100644
--- a/assets/xml/objects/object_fz.xml
+++ b/assets/xml/objects/object_fz.xml
@@ -8,7 +8,7 @@
-
+
diff --git a/assets/xml/objects/object_ganon.xml b/assets/xml/objects/object_ganon.xml
index 4eb7dabcdb..01d0f7ab77 100644
--- a/assets/xml/objects/object_ganon.xml
+++ b/assets/xml/objects/object_ganon.xml
@@ -90,38 +90,38 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -149,7 +149,7 @@
-
+
diff --git a/assets/xml/objects/object_ganon2.xml b/assets/xml/objects/object_ganon2.xml
index 7391787e9c..dd84b7efe0 100644
--- a/assets/xml/objects/object_ganon2.xml
+++ b/assets/xml/objects/object_ganon2.xml
@@ -158,46 +158,46 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -244,7 +244,7 @@
-
+
diff --git a/assets/xml/objects/object_ganon2_pal.xml b/assets/xml/objects/object_ganon2_pal.xml
index bed3b0aa9b..b6658c7aec 100644
--- a/assets/xml/objects/object_ganon2_pal.xml
+++ b/assets/xml/objects/object_ganon2_pal.xml
@@ -158,46 +158,46 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -244,7 +244,7 @@
-
+
diff --git a/assets/xml/objects/object_ganon_objects.xml b/assets/xml/objects/object_ganon_objects.xml
index dc2cfdb40f..fc38ccfd35 100644
--- a/assets/xml/objects/object_ganon_objects.xml
+++ b/assets/xml/objects/object_ganon_objects.xml
@@ -4,6 +4,6 @@
-
+
diff --git a/assets/xml/objects/object_ganon_pal.xml b/assets/xml/objects/object_ganon_pal.xml
index 17317d878e..83ebb85ea7 100644
--- a/assets/xml/objects/object_ganon_pal.xml
+++ b/assets/xml/objects/object_ganon_pal.xml
@@ -90,38 +90,38 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -149,7 +149,7 @@
-
+
diff --git a/assets/xml/objects/object_ge1.xml b/assets/xml/objects/object_ge1.xml
index d116d2098f..bbb5d82a0d 100644
--- a/assets/xml/objects/object_ge1.xml
+++ b/assets/xml/objects/object_ge1.xml
@@ -39,22 +39,22 @@
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -62,12 +62,12 @@
-
+
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_geff.xml b/assets/xml/objects/object_geff.xml
index 6a42a89a5c..268535892d 100644
--- a/assets/xml/objects/object_geff.xml
+++ b/assets/xml/objects/object_geff.xml
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_geldb.xml b/assets/xml/objects/object_geldb.xml
index 4d23d80e8c..f80ad410a6 100644
--- a/assets/xml/objects/object_geldb.xml
+++ b/assets/xml/objects/object_geldb.xml
@@ -17,9 +17,9 @@
-
-
-
+
+
+
@@ -83,5 +83,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_boots_2.xml b/assets/xml/objects/object_gi_boots_2.xml
index 026e9a482a..ae5d148421 100644
--- a/assets/xml/objects/object_gi_boots_2.xml
+++ b/assets/xml/objects/object_gi_boots_2.xml
@@ -1,6 +1,7 @@
+
diff --git a/assets/xml/objects/object_gi_butterfly.xml b/assets/xml/objects/object_gi_butterfly.xml
index 23487544e4..65eed5b0e8 100644
--- a/assets/xml/objects/object_gi_butterfly.xml
+++ b/assets/xml/objects/object_gi_butterfly.xml
@@ -1,6 +1,7 @@
+
diff --git a/assets/xml/objects/object_gi_clothes.xml b/assets/xml/objects/object_gi_clothes.xml
index 32550cfc8d..be9853eb8f 100644
--- a/assets/xml/objects/object_gi_clothes.xml
+++ b/assets/xml/objects/object_gi_clothes.xml
@@ -1,5 +1,6 @@
+
diff --git a/assets/xml/objects/object_gi_dekupouch.xml b/assets/xml/objects/object_gi_dekupouch.xml
index f51d885c01..d717edb8ba 100644
--- a/assets/xml/objects/object_gi_dekupouch.xml
+++ b/assets/xml/objects/object_gi_dekupouch.xml
@@ -1,6 +1,8 @@
+
+
diff --git a/assets/xml/objects/object_gi_fire.xml b/assets/xml/objects/object_gi_fire.xml
index ddeafaaf48..0211f60187 100644
--- a/assets/xml/objects/object_gi_fire.xml
+++ b/assets/xml/objects/object_gi_fire.xml
@@ -1,6 +1,8 @@
+
+
diff --git a/assets/xml/objects/object_gi_frog.xml b/assets/xml/objects/object_gi_frog.xml
index 503f08c416..53384429b4 100644
--- a/assets/xml/objects/object_gi_frog.xml
+++ b/assets/xml/objects/object_gi_frog.xml
@@ -1,6 +1,7 @@
+
diff --git a/assets/xml/objects/object_gi_gerudo.xml b/assets/xml/objects/object_gi_gerudo.xml
index ac80cdd2f7..34986a295e 100644
--- a/assets/xml/objects/object_gi_gerudo.xml
+++ b/assets/xml/objects/object_gi_gerudo.xml
@@ -1,6 +1,7 @@
+
diff --git a/assets/xml/objects/object_gi_gerudomask.xml b/assets/xml/objects/object_gi_gerudomask.xml
index 3b42e2ee29..94576b0406 100644
--- a/assets/xml/objects/object_gi_gerudomask.xml
+++ b/assets/xml/objects/object_gi_gerudomask.xml
@@ -1,5 +1,11 @@
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_ghost.xml b/assets/xml/objects/object_gi_ghost.xml
index 30a0edf1eb..5dbf39480f 100644
--- a/assets/xml/objects/object_gi_ghost.xml
+++ b/assets/xml/objects/object_gi_ghost.xml
@@ -1,6 +1,8 @@
+
+
diff --git a/assets/xml/objects/object_gi_gloves.xml b/assets/xml/objects/object_gi_gloves.xml
index 09976d11ef..85ad6ddeff 100644
--- a/assets/xml/objects/object_gi_gloves.xml
+++ b/assets/xml/objects/object_gi_gloves.xml
@@ -1,6 +1,7 @@
+
diff --git a/assets/xml/objects/object_gi_golonmask.xml b/assets/xml/objects/object_gi_golonmask.xml
index ac8d86669c..68dbddb365 100644
--- a/assets/xml/objects/object_gi_golonmask.xml
+++ b/assets/xml/objects/object_gi_golonmask.xml
@@ -1,5 +1,11 @@
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_hoverboots.xml b/assets/xml/objects/object_gi_hoverboots.xml
index 5b3bf0c80f..fed584e742 100644
--- a/assets/xml/objects/object_gi_hoverboots.xml
+++ b/assets/xml/objects/object_gi_hoverboots.xml
@@ -1,6 +1,8 @@
+
+
diff --git a/assets/xml/objects/object_gi_jewel.xml b/assets/xml/objects/object_gi_jewel.xml
index 012fc83514..1d919b6ef6 100644
--- a/assets/xml/objects/object_gi_jewel.xml
+++ b/assets/xml/objects/object_gi_jewel.xml
@@ -1,7 +1,7 @@
-
+
@@ -11,7 +11,7 @@
-
+
@@ -21,7 +21,7 @@
-
+
diff --git a/assets/xml/objects/object_gi_ki_tan_mask.xml b/assets/xml/objects/object_gi_ki_tan_mask.xml
index ad6763bb9c..b888acfe73 100644
--- a/assets/xml/objects/object_gi_ki_tan_mask.xml
+++ b/assets/xml/objects/object_gi_ki_tan_mask.xml
@@ -1,6 +1,7 @@
+
diff --git a/assets/xml/objects/object_gi_letter.xml b/assets/xml/objects/object_gi_letter.xml
index d6acdf820d..098b8cca79 100644
--- a/assets/xml/objects/object_gi_letter.xml
+++ b/assets/xml/objects/object_gi_letter.xml
@@ -1,5 +1,7 @@
+
+
diff --git a/assets/xml/objects/object_gi_liquid.xml b/assets/xml/objects/object_gi_liquid.xml
index 27ef25b0b0..133d8ce902 100644
--- a/assets/xml/objects/object_gi_liquid.xml
+++ b/assets/xml/objects/object_gi_liquid.xml
@@ -1,6 +1,9 @@
+
+
+
diff --git a/assets/xml/objects/object_gi_milk.xml b/assets/xml/objects/object_gi_milk.xml
index a1904f7f1d..cc72cec9d1 100644
--- a/assets/xml/objects/object_gi_milk.xml
+++ b/assets/xml/objects/object_gi_milk.xml
@@ -1,6 +1,7 @@
+
diff --git a/assets/xml/objects/object_gi_niwatori.xml b/assets/xml/objects/object_gi_niwatori.xml
index 9bea0dbbaf..edf67f88d8 100644
--- a/assets/xml/objects/object_gi_niwatori.xml
+++ b/assets/xml/objects/object_gi_niwatori.xml
@@ -1,6 +1,8 @@
+
+
diff --git a/assets/xml/objects/object_gi_nuts.xml b/assets/xml/objects/object_gi_nuts.xml
index 590c78d7dd..d4a2f0e9cd 100644
--- a/assets/xml/objects/object_gi_nuts.xml
+++ b/assets/xml/objects/object_gi_nuts.xml
@@ -1,6 +1,7 @@
+
diff --git a/assets/xml/objects/object_gi_ocarina.xml b/assets/xml/objects/object_gi_ocarina.xml
index 4e85cc04e1..dafcb92424 100644
--- a/assets/xml/objects/object_gi_ocarina.xml
+++ b/assets/xml/objects/object_gi_ocarina.xml
@@ -1,6 +1,7 @@
+
diff --git a/assets/xml/objects/object_gi_ocarina_0.xml b/assets/xml/objects/object_gi_ocarina_0.xml
index 7ec13c466e..e43bb3a87c 100644
--- a/assets/xml/objects/object_gi_ocarina_0.xml
+++ b/assets/xml/objects/object_gi_ocarina_0.xml
@@ -1,6 +1,7 @@
+
diff --git a/assets/xml/objects/object_gi_prescription.xml b/assets/xml/objects/object_gi_prescription.xml
index 619252fafb..1b4e54ec5d 100644
--- a/assets/xml/objects/object_gi_prescription.xml
+++ b/assets/xml/objects/object_gi_prescription.xml
@@ -1,6 +1,7 @@
+
diff --git a/assets/xml/objects/object_gi_purse.xml b/assets/xml/objects/object_gi_purse.xml
index c896b47de0..70ec500508 100644
--- a/assets/xml/objects/object_gi_purse.xml
+++ b/assets/xml/objects/object_gi_purse.xml
@@ -1,5 +1,6 @@
+
diff --git a/assets/xml/objects/object_gi_rabit_mask.xml b/assets/xml/objects/object_gi_rabit_mask.xml
index 64e82b888c..65b6cdd4bc 100644
--- a/assets/xml/objects/object_gi_rabit_mask.xml
+++ b/assets/xml/objects/object_gi_rabit_mask.xml
@@ -1,6 +1,7 @@
+
diff --git a/assets/xml/objects/object_gi_shield_1.xml b/assets/xml/objects/object_gi_shield_1.xml
index 5fa12c7cc2..c7a5c7cb42 100644
--- a/assets/xml/objects/object_gi_shield_1.xml
+++ b/assets/xml/objects/object_gi_shield_1.xml
@@ -1,6 +1,7 @@
+
diff --git a/assets/xml/objects/object_gi_shield_3.xml b/assets/xml/objects/object_gi_shield_3.xml
index 2ff34c2f23..3550bd0d89 100644
--- a/assets/xml/objects/object_gi_shield_3.xml
+++ b/assets/xml/objects/object_gi_shield_3.xml
@@ -1,6 +1,8 @@
+
+
diff --git a/assets/xml/objects/object_gi_soldout.xml b/assets/xml/objects/object_gi_soldout.xml
index 517750ee9a..ba45784761 100644
--- a/assets/xml/objects/object_gi_soldout.xml
+++ b/assets/xml/objects/object_gi_soldout.xml
@@ -1,5 +1,6 @@
+
diff --git a/assets/xml/objects/object_gi_soul.xml b/assets/xml/objects/object_gi_soul.xml
index 1487b57042..519226270d 100644
--- a/assets/xml/objects/object_gi_soul.xml
+++ b/assets/xml/objects/object_gi_soul.xml
@@ -1,6 +1,7 @@
+
diff --git a/assets/xml/objects/object_gi_ticketstone.xml b/assets/xml/objects/object_gi_ticketstone.xml
index cebc99a759..ce756e3abc 100644
--- a/assets/xml/objects/object_gi_ticketstone.xml
+++ b/assets/xml/objects/object_gi_ticketstone.xml
@@ -1,6 +1,8 @@
+
+
diff --git a/assets/xml/objects/object_gi_truth_mask.xml b/assets/xml/objects/object_gi_truth_mask.xml
index fbeab76d3e..32c550560c 100644
--- a/assets/xml/objects/object_gi_truth_mask.xml
+++ b/assets/xml/objects/object_gi_truth_mask.xml
@@ -1,6 +1,8 @@
+
+
diff --git a/assets/xml/objects/object_gi_zoramask.xml b/assets/xml/objects/object_gi_zoramask.xml
index 06bca27371..0788f67f0d 100644
--- a/assets/xml/objects/object_gi_zoramask.xml
+++ b/assets/xml/objects/object_gi_zoramask.xml
@@ -1,5 +1,11 @@
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gj.xml b/assets/xml/objects/object_gj.xml
index 50d6337b4a..581bf93c7d 100644
--- a/assets/xml/objects/object_gj.xml
+++ b/assets/xml/objects/object_gj.xml
@@ -1,35 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gjyo_objects.xml b/assets/xml/objects/object_gjyo_objects.xml
index 44f3ba791b..3903235948 100644
--- a/assets/xml/objects/object_gjyo_objects.xml
+++ b/assets/xml/objects/object_gjyo_objects.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/assets/xml/objects/object_gla.xml b/assets/xml/objects/object_gla.xml
index 7e7f934f62..cf92179a79 100644
--- a/assets/xml/objects/object_gla.xml
+++ b/assets/xml/objects/object_gla.xml
@@ -47,29 +47,29 @@
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_gnd.xml b/assets/xml/objects/object_gnd.xml
index e8b6937a8d..d340135433 100644
--- a/assets/xml/objects/object_gnd.xml
+++ b/assets/xml/objects/object_gnd.xml
@@ -39,38 +39,38 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
@@ -137,5 +137,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gnd_magic.xml b/assets/xml/objects/object_gnd_magic.xml
index f8bc83dcd9..5ce187a1cf 100644
--- a/assets/xml/objects/object_gnd_magic.xml
+++ b/assets/xml/objects/object_gnd_magic.xml
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_gndd.xml b/assets/xml/objects/object_gndd.xml
index 103e9412da..d284893579 100644
--- a/assets/xml/objects/object_gndd.xml
+++ b/assets/xml/objects/object_gndd.xml
@@ -112,37 +112,37 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_god_lgt.xml b/assets/xml/objects/object_god_lgt.xml
index d8f1e92278..e6f38dfdc2 100644
--- a/assets/xml/objects/object_god_lgt.xml
+++ b/assets/xml/objects/object_god_lgt.xml
@@ -5,9 +5,9 @@
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_gol.xml b/assets/xml/objects/object_gol.xml
index 0f096f58e8..257662024b 100644
--- a/assets/xml/objects/object_gol.xml
+++ b/assets/xml/objects/object_gol.xml
@@ -25,12 +25,12 @@
-
-
+
+
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_goma.xml b/assets/xml/objects/object_goma.xml
index bfe6df0fca..f2429cd2b9 100644
--- a/assets/xml/objects/object_goma.xml
+++ b/assets/xml/objects/object_goma.xml
@@ -90,6 +90,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -151,19 +255,24 @@
-
-
-
-
-
-
+
+
+
+
+
+
-
+
+
+
+
-
+
+
+
diff --git a/assets/xml/objects/object_goma_pal.xml b/assets/xml/objects/object_goma_pal.xml
index 543d9ce2a1..dbee83f7ca 100644
--- a/assets/xml/objects/object_goma_pal.xml
+++ b/assets/xml/objects/object_goma_pal.xml
@@ -90,6 +90,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -151,19 +255,22 @@
-
-
-
-
-
-
+
+
+
+
+
+
-
+
+
+
+
-
+
diff --git a/assets/xml/objects/object_goroiwa.xml b/assets/xml/objects/object_goroiwa.xml
index 5d406e9578..6ca4f064bc 100644
--- a/assets/xml/objects/object_goroiwa.xml
+++ b/assets/xml/objects/object_goroiwa.xml
@@ -1,6 +1,9 @@
-
+
+
+
+
diff --git a/assets/xml/objects/object_gr.xml b/assets/xml/objects/object_gr.xml
index 103d4412e9..ad7a184772 100644
--- a/assets/xml/objects/object_gr.xml
+++ b/assets/xml/objects/object_gr.xml
@@ -3,14 +3,103 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gs.xml b/assets/xml/objects/object_gs.xml
index de69d2571e..4895c63c07 100644
--- a/assets/xml/objects/object_gs.xml
+++ b/assets/xml/objects/object_gs.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/assets/xml/objects/object_gt.xml b/assets/xml/objects/object_gt.xml
index dd48318d1d..97b6c1b666 100644
--- a/assets/xml/objects/object_gt.xml
+++ b/assets/xml/objects/object_gt.xml
@@ -1,33 +1,54 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_haka.xml b/assets/xml/objects/object_haka.xml
index f6b263c375..8a6c0b7d14 100644
--- a/assets/xml/objects/object_haka.xml
+++ b/assets/xml/objects/object_haka.xml
@@ -1,9 +1,15 @@
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_haka_door.xml b/assets/xml/objects/object_haka_door.xml
index ec8ca6a90a..9d7ba15f58 100644
--- a/assets/xml/objects/object_haka_door.xml
+++ b/assets/xml/objects/object_haka_door.xml
@@ -1,6 +1,6 @@
-
+
@@ -13,12 +13,12 @@
-
+
-
+
diff --git a/assets/xml/objects/object_haka_objects.xml b/assets/xml/objects/object_haka_objects.xml
index e0961ec596..2325e663a8 100644
--- a/assets/xml/objects/object_haka_objects.xml
+++ b/assets/xml/objects/object_haka_objects.xml
@@ -145,34 +145,34 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_hakach_objects.xml b/assets/xml/objects/object_hakach_objects.xml
index b978e77a31..92679bc8de 100644
--- a/assets/xml/objects/object_hakach_objects.xml
+++ b/assets/xml/objects/object_hakach_objects.xml
@@ -1,13 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -15,14 +42,15 @@
-
-
+
+
-
+
+
diff --git a/assets/xml/objects/object_hata.xml b/assets/xml/objects/object_hata.xml
index b0324c3be3..98887b030d 100644
--- a/assets/xml/objects/object_hata.xml
+++ b/assets/xml/objects/object_hata.xml
@@ -31,6 +31,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -43,8 +72,8 @@
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_heavy_object.xml b/assets/xml/objects/object_heavy_object.xml
index ecc7953211..f1f3e446ac 100644
--- a/assets/xml/objects/object_heavy_object.xml
+++ b/assets/xml/objects/object_heavy_object.xml
@@ -1,8 +1,17 @@
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_hidan_objects.xml b/assets/xml/objects/object_hidan_objects.xml
index fe0405d9dd..2d926e7c0d 100644
--- a/assets/xml/objects/object_hidan_objects.xml
+++ b/assets/xml/objects/object_hidan_objects.xml
@@ -1,89 +1,199 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_hintnuts.xml b/assets/xml/objects/object_hintnuts.xml
index d3595d85e8..852ec1141a 100644
--- a/assets/xml/objects/object_hintnuts.xml
+++ b/assets/xml/objects/object_hintnuts.xml
@@ -15,9 +15,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_hni.xml b/assets/xml/objects/object_hni.xml
index 763f6892c0..5027583aeb 100644
--- a/assets/xml/objects/object_hni.xml
+++ b/assets/xml/objects/object_hni.xml
@@ -13,28 +13,28 @@
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
@@ -42,10 +42,10 @@
-
-
+
+
-
+
diff --git a/assets/xml/objects/object_horse.xml b/assets/xml/objects/object_horse.xml
index 74619e5977..e4b2a067e3 100644
--- a/assets/xml/objects/object_horse.xml
+++ b/assets/xml/objects/object_horse.xml
@@ -12,28 +12,28 @@
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -43,17 +43,17 @@
-
+
-
-
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_horse_ganon.xml b/assets/xml/objects/object_horse_ganon.xml
index 98babb0806..e9d04e8cc9 100644
--- a/assets/xml/objects/object_horse_ganon.xml
+++ b/assets/xml/objects/object_horse_ganon.xml
@@ -15,8 +15,8 @@
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_horse_link_child.xml b/assets/xml/objects/object_horse_link_child.xml
index 1491189a13..e15317da66 100644
--- a/assets/xml/objects/object_horse_link_child.xml
+++ b/assets/xml/objects/object_horse_link_child.xml
@@ -13,9 +13,9 @@
-
-
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_horse_normal.xml b/assets/xml/objects/object_horse_normal.xml
index 2bc2cb0c60..5e6a4fe461 100644
--- a/assets/xml/objects/object_horse_normal.xml
+++ b/assets/xml/objects/object_horse_normal.xml
@@ -21,6 +21,6 @@
-
+
diff --git a/assets/xml/objects/object_horse_zelda.xml b/assets/xml/objects/object_horse_zelda.xml
index 9595c32453..628e043877 100644
--- a/assets/xml/objects/object_horse_zelda.xml
+++ b/assets/xml/objects/object_horse_zelda.xml
@@ -5,10 +5,10 @@
-
-
-
+
+
+
-
+
diff --git a/assets/xml/objects/object_hs.xml b/assets/xml/objects/object_hs.xml
index 3a3dfb46f7..bf5cbf047f 100644
--- a/assets/xml/objects/object_hs.xml
+++ b/assets/xml/objects/object_hs.xml
@@ -48,18 +48,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_human.xml b/assets/xml/objects/object_human.xml
index fcf015b312..ae5fb63c06 100644
--- a/assets/xml/objects/object_human.xml
+++ b/assets/xml/objects/object_human.xml
@@ -1,58 +1,58 @@
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
@@ -190,21 +190,21 @@
-
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
+
+
diff --git a/assets/xml/objects/object_ice_objects.xml b/assets/xml/objects/object_ice_objects.xml
index 0c4abb6964..97ce9b782c 100644
--- a/assets/xml/objects/object_ice_objects.xml
+++ b/assets/xml/objects/object_ice_objects.xml
@@ -37,14 +37,14 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ik.xml b/assets/xml/objects/object_ik.xml
index 50f47e9d7c..55b4a6ff76 100644
--- a/assets/xml/objects/object_ik.xml
+++ b/assets/xml/objects/object_ik.xml
@@ -37,22 +37,82 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -73,16 +133,64 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -96,9 +204,74 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_im.xml b/assets/xml/objects/object_im.xml
index a628a113a4..c6ce6b6890 100644
--- a/assets/xml/objects/object_im.xml
+++ b/assets/xml/objects/object_im.xml
@@ -4,21 +4,53 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -29,23 +61,46 @@
-
-
-
-
-
+
+
+
+
+
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
diff --git a/assets/xml/objects/object_in.xml b/assets/xml/objects/object_in.xml
index 155b9c9ad1..4530adc370 100644
--- a/assets/xml/objects/object_in.xml
+++ b/assets/xml/objects/object_in.xml
@@ -4,38 +4,99 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -58,28 +119,83 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ingate.xml b/assets/xml/objects/object_ingate.xml
index e68c2d091a..cccb797511 100644
--- a/assets/xml/objects/object_ingate.xml
+++ b/assets/xml/objects/object_ingate.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/assets/xml/objects/object_jj.xml b/assets/xml/objects/object_jj.xml
index 96ff7dc02a..816b7d706c 100644
--- a/assets/xml/objects/object_jj.xml
+++ b/assets/xml/objects/object_jj.xml
@@ -5,13 +5,48 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -26,46 +61,45 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_js.xml b/assets/xml/objects/object_js.xml
index ff7bd3efa1..1e309f1cb1 100644
--- a/assets/xml/objects/object_js.xml
+++ b/assets/xml/objects/object_js.xml
@@ -17,6 +17,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -31,19 +66,19 @@
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_jya_door.xml b/assets/xml/objects/object_jya_door.xml
index 25d15dd5d0..b29c8ff771 100644
--- a/assets/xml/objects/object_jya_door.xml
+++ b/assets/xml/objects/object_jya_door.xml
@@ -8,7 +8,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_jya_iron.xml b/assets/xml/objects/object_jya_iron.xml
index 3cd24c715e..6cf7681630 100644
--- a/assets/xml/objects/object_jya_iron.xml
+++ b/assets/xml/objects/object_jya_iron.xml
@@ -22,7 +22,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_jya_obj.xml b/assets/xml/objects/object_jya_obj.xml
index 50c2700db1..2c9c5a6fc8 100644
--- a/assets/xml/objects/object_jya_obj.xml
+++ b/assets/xml/objects/object_jya_obj.xml
@@ -1,47 +1,143 @@
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -55,26 +151,37 @@
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ka.xml b/assets/xml/objects/object_ka.xml
index 9c7ae1317b..ee9dfd6dd7 100644
--- a/assets/xml/objects/object_ka.xml
+++ b/assets/xml/objects/object_ka.xml
@@ -93,13 +93,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_kanban.xml b/assets/xml/objects/object_kanban.xml
index f859164472..13ce2fbaff 100644
--- a/assets/xml/objects/object_kanban.xml
+++ b/assets/xml/objects/object_kanban.xml
@@ -50,6 +50,6 @@
-
+
diff --git a/assets/xml/objects/object_kibako2.xml b/assets/xml/objects/object_kibako2.xml
index a701b294de..c406b1d8ac 100644
--- a/assets/xml/objects/object_kibako2.xml
+++ b/assets/xml/objects/object_kibako2.xml
@@ -1,17 +1,25 @@
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_kingdodongo.xml b/assets/xml/objects/object_kingdodongo.xml
index 3ada2822c9..1e0b94cf97 100644
--- a/assets/xml/objects/object_kingdodongo.xml
+++ b/assets/xml/objects/object_kingdodongo.xml
@@ -10,45 +10,108 @@
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -102,37 +165,49 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_kingdodongo_pal.xml b/assets/xml/objects/object_kingdodongo_pal.xml
index e323584205..b9ec4d4387 100644
--- a/assets/xml/objects/object_kingdodongo_pal.xml
+++ b/assets/xml/objects/object_kingdodongo_pal.xml
@@ -15,7 +15,7 @@
-
+
@@ -100,18 +100,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -168,14 +168,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -189,25 +189,25 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_km1.xml b/assets/xml/objects/object_km1.xml
index 2db9a8d119..25b1fae7f5 100644
--- a/assets/xml/objects/object_km1.xml
+++ b/assets/xml/objects/object_km1.xml
@@ -21,22 +21,64 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_kw1.xml b/assets/xml/objects/object_kw1.xml
index 534c223b29..5b39db9f31 100644
--- a/assets/xml/objects/object_kw1.xml
+++ b/assets/xml/objects/object_kw1.xml
@@ -21,28 +21,28 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -59,5 +59,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_kz.xml b/assets/xml/objects/object_kz.xml
index 8c744985b8..0e75d9094c 100644
--- a/assets/xml/objects/object_kz.xml
+++ b/assets/xml/objects/object_kz.xml
@@ -2,22 +2,22 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_light_ring.xml b/assets/xml/objects/object_light_ring.xml
index 877aa3408d..b2183f32fc 100644
--- a/assets/xml/objects/object_light_ring.xml
+++ b/assets/xml/objects/object_light_ring.xml
@@ -4,6 +4,6 @@
-
+
diff --git a/assets/xml/objects/object_lightbox.xml b/assets/xml/objects/object_lightbox.xml
index 47fd57dfbf..fcada5c40d 100644
--- a/assets/xml/objects/object_lightbox.xml
+++ b/assets/xml/objects/object_lightbox.xml
@@ -19,8 +19,8 @@
-
-
+
+
diff --git a/assets/xml/objects/object_lightswitch.xml b/assets/xml/objects/object_lightswitch.xml
index 9caeb59b19..267897eb3b 100644
--- a/assets/xml/objects/object_lightswitch.xml
+++ b/assets/xml/objects/object_lightswitch.xml
@@ -15,9 +15,9 @@
-
-
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_link_boy.xml b/assets/xml/objects/object_link_boy.xml
index b51e779cc8..21a1d407c2 100644
--- a/assets/xml/objects/object_link_boy.xml
+++ b/assets/xml/objects/object_link_boy.xml
@@ -347,33 +347,33 @@
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
@@ -443,22 +443,22 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -487,8 +487,8 @@
-
-
+
+
@@ -504,7 +504,7 @@
-
+
@@ -514,59 +514,59 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
diff --git a/assets/xml/objects/object_link_child.xml b/assets/xml/objects/object_link_child.xml
index 9e1c1e5733..25ad178c3c 100644
--- a/assets/xml/objects/object_link_child.xml
+++ b/assets/xml/objects/object_link_child.xml
@@ -369,108 +369,108 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/assets/xml/objects/object_ma1.xml b/assets/xml/objects/object_ma1.xml
index 11509ad6aa..4b2b7869a1 100644
--- a/assets/xml/objects/object_ma1.xml
+++ b/assets/xml/objects/object_ma1.xml
@@ -25,26 +25,78 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ma2.xml b/assets/xml/objects/object_ma2.xml
index 0b6eabff70..960e9485bf 100644
--- a/assets/xml/objects/object_ma2.xml
+++ b/assets/xml/objects/object_ma2.xml
@@ -1,33 +1,85 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_mag.xml b/assets/xml/objects/object_mag.xml
index 1a59b4092b..59a0613548 100644
--- a/assets/xml/objects/object_mag.xml
+++ b/assets/xml/objects/object_mag.xml
@@ -1,20 +1,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_mag_ique.xml b/assets/xml/objects/object_mag_ique.xml
index 005fc2462d..3a2bed9682 100644
--- a/assets/xml/objects/object_mag_ique.xml
+++ b/assets/xml/objects/object_mag_ique.xml
@@ -1,20 +1,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_mag_v2.xml b/assets/xml/objects/object_mag_v2.xml
index 69ce890a7a..9897422cbd 100644
--- a/assets/xml/objects/object_mag_v2.xml
+++ b/assets/xml/objects/object_mag_v2.xml
@@ -1,20 +1,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_mag_v2_mq.xml b/assets/xml/objects/object_mag_v2_mq.xml
index 9f0543ea8a..0b14571ca7 100644
--- a/assets/xml/objects/object_mag_v2_mq.xml
+++ b/assets/xml/objects/object_mag_v2_mq.xml
@@ -1,21 +1,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_mag_v3.xml b/assets/xml/objects/object_mag_v3.xml
index 66874b0c07..eb95e103be 100644
--- a/assets/xml/objects/object_mag_v3.xml
+++ b/assets/xml/objects/object_mag_v3.xml
@@ -1,21 +1,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_mag_v3_mq.xml b/assets/xml/objects/object_mag_v3_mq.xml
index 541dc6c389..b0b54fe739 100644
--- a/assets/xml/objects/object_mag_v3_mq.xml
+++ b/assets/xml/objects/object_mag_v3_mq.xml
@@ -1,23 +1,23 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_mamenoki.xml b/assets/xml/objects/object_mamenoki.xml
index 819d890225..78683e565c 100644
--- a/assets/xml/objects/object_mamenoki.xml
+++ b/assets/xml/objects/object_mamenoki.xml
@@ -1,15 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_masterkokirihead.xml b/assets/xml/objects/object_masterkokirihead.xml
index 1e489323c2..9187df7014 100644
--- a/assets/xml/objects/object_masterkokirihead.xml
+++ b/assets/xml/objects/object_masterkokirihead.xml
@@ -1,14 +1,19 @@
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_mb.xml b/assets/xml/objects/object_mb.xml
index a8471429db..f10e27d645 100644
--- a/assets/xml/objects/object_mb.xml
+++ b/assets/xml/objects/object_mb.xml
@@ -39,7 +39,7 @@
-
+
@@ -55,5 +55,165 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_md.xml b/assets/xml/objects/object_md.xml
index 45527ca1b9..ea1fca3cda 100644
--- a/assets/xml/objects/object_md.xml
+++ b/assets/xml/objects/object_md.xml
@@ -21,6 +21,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -39,36 +86,36 @@
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_medal.xml b/assets/xml/objects/object_medal.xml
index 2ab2e87faa..35beef0487 100644
--- a/assets/xml/objects/object_medal.xml
+++ b/assets/xml/objects/object_medal.xml
@@ -25,12 +25,12 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_menkuri_objects.xml b/assets/xml/objects/object_menkuri_objects.xml
index 4c2b51df5b..8776de699e 100644
--- a/assets/xml/objects/object_menkuri_objects.xml
+++ b/assets/xml/objects/object_menkuri_objects.xml
@@ -1,17 +1,32 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_mir_ray.xml b/assets/xml/objects/object_mir_ray.xml
index 2acc9391ab..90d93a999c 100644
--- a/assets/xml/objects/object_mir_ray.xml
+++ b/assets/xml/objects/object_mir_ray.xml
@@ -1,13 +1,21 @@
+
+
+
+
+
+
+
+
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_mizu_objects.xml b/assets/xml/objects/object_mizu_objects.xml
index 5882b20501..641c0a40e2 100644
--- a/assets/xml/objects/object_mizu_objects.xml
+++ b/assets/xml/objects/object_mizu_objects.xml
@@ -1,41 +1,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_mjin.xml b/assets/xml/objects/object_mjin.xml
index 2784956770..45a2f1cd99 100644
--- a/assets/xml/objects/object_mjin.xml
+++ b/assets/xml/objects/object_mjin.xml
@@ -5,7 +5,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_mjin_dark.xml b/assets/xml/objects/object_mjin_dark.xml
index 2fa0bdbe4c..8f98d2c495 100644
--- a/assets/xml/objects/object_mjin_dark.xml
+++ b/assets/xml/objects/object_mjin_dark.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/assets/xml/objects/object_mjin_flame.xml b/assets/xml/objects/object_mjin_flame.xml
index 6274feaee1..87fb3a2435 100644
--- a/assets/xml/objects/object_mjin_flame.xml
+++ b/assets/xml/objects/object_mjin_flame.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/assets/xml/objects/object_mjin_flash.xml b/assets/xml/objects/object_mjin_flash.xml
index c1040ea118..f8cf72756a 100644
--- a/assets/xml/objects/object_mjin_flash.xml
+++ b/assets/xml/objects/object_mjin_flash.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/assets/xml/objects/object_mjin_ice.xml b/assets/xml/objects/object_mjin_ice.xml
index 1aaeea193d..6686296f73 100644
--- a/assets/xml/objects/object_mjin_ice.xml
+++ b/assets/xml/objects/object_mjin_ice.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/assets/xml/objects/object_mjin_oka.xml b/assets/xml/objects/object_mjin_oka.xml
index 8da3481c73..322b6808dc 100644
--- a/assets/xml/objects/object_mjin_oka.xml
+++ b/assets/xml/objects/object_mjin_oka.xml
@@ -5,7 +5,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_mjin_soul.xml b/assets/xml/objects/object_mjin_soul.xml
index 6386f7f9ea..5ce15c1f2e 100644
--- a/assets/xml/objects/object_mjin_soul.xml
+++ b/assets/xml/objects/object_mjin_soul.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/assets/xml/objects/object_mjin_wind.xml b/assets/xml/objects/object_mjin_wind.xml
index 8bba7eb91b..6eadf588b9 100644
--- a/assets/xml/objects/object_mjin_wind.xml
+++ b/assets/xml/objects/object_mjin_wind.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/assets/xml/objects/object_mk.xml b/assets/xml/objects/object_mk.xml
index 8ae1bd3959..7371743d0b 100644
--- a/assets/xml/objects/object_mk.xml
+++ b/assets/xml/objects/object_mk.xml
@@ -52,17 +52,17 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_mm.xml b/assets/xml/objects/object_mm.xml
index 834afe5ef0..695333c65c 100644
--- a/assets/xml/objects/object_mm.xml
+++ b/assets/xml/objects/object_mm.xml
@@ -9,8 +9,93 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_mo.xml b/assets/xml/objects/object_mo.xml
index ad84a14026..9844361f58 100644
--- a/assets/xml/objects/object_mo.xml
+++ b/assets/xml/objects/object_mo.xml
@@ -3,10 +3,132 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -53,19 +175,37 @@
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
@@ -74,5 +214,10 @@
+
+
+
+
+
diff --git a/assets/xml/objects/object_mo_pal.xml b/assets/xml/objects/object_mo_pal.xml
index 17cd4fc2f4..71078c6a95 100644
--- a/assets/xml/objects/object_mo_pal.xml
+++ b/assets/xml/objects/object_mo_pal.xml
@@ -3,10 +3,132 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -52,20 +174,38 @@
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
@@ -74,5 +214,10 @@
+
+
+
+
+
diff --git a/assets/xml/objects/object_mori_objects.xml b/assets/xml/objects/object_mori_objects.xml
index 1844cf6f69..1ee708091e 100644
--- a/assets/xml/objects/object_mori_objects.xml
+++ b/assets/xml/objects/object_mori_objects.xml
@@ -1,25 +1,52 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_mori_tex.xml b/assets/xml/objects/object_mori_tex.xml
index 756347bcc6..b3b6611346 100644
--- a/assets/xml/objects/object_mori_tex.xml
+++ b/assets/xml/objects/object_mori_tex.xml
@@ -1,28 +1,28 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
diff --git a/assets/xml/objects/object_ms.xml b/assets/xml/objects/object_ms.xml
index 66923df8ae..847b674d54 100644
--- a/assets/xml/objects/object_ms.xml
+++ b/assets/xml/objects/object_ms.xml
@@ -13,6 +13,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -23,19 +46,19 @@
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_mu.xml b/assets/xml/objects/object_mu.xml
index ac4aeb084d..e1037a370b 100644
--- a/assets/xml/objects/object_mu.xml
+++ b/assets/xml/objects/object_mu.xml
@@ -1,17 +1,17 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -81,18 +81,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_nb.xml b/assets/xml/objects/object_nb.xml
index 74de9e2859..cf2dba8da4 100644
--- a/assets/xml/objects/object_nb.xml
+++ b/assets/xml/objects/object_nb.xml
@@ -24,6 +24,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -45,46 +98,46 @@
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_niw.xml b/assets/xml/objects/object_niw.xml
index 4eafec9566..0b672f940b 100644
--- a/assets/xml/objects/object_niw.xml
+++ b/assets/xml/objects/object_niw.xml
@@ -20,6 +20,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -29,19 +52,22 @@
-
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_nwc.xml b/assets/xml/objects/object_nwc.xml
index abe2be092b..2f3f8705b4 100644
--- a/assets/xml/objects/object_nwc.xml
+++ b/assets/xml/objects/object_nwc.xml
@@ -1,16 +1,28 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ny.xml b/assets/xml/objects/object_ny.xml
index 0b94903b19..f92549311c 100644
--- a/assets/xml/objects/object_ny.xml
+++ b/assets/xml/objects/object_ny.xml
@@ -1,9 +1,9 @@
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_oA1.xml b/assets/xml/objects/object_oA1.xml
index 192a19b5a7..fe7eced252 100644
--- a/assets/xml/objects/object_oA1.xml
+++ b/assets/xml/objects/object_oA1.xml
@@ -99,16 +99,16 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oA10.xml b/assets/xml/objects/object_oA10.xml
index ae234bf692..0e17150e2c 100644
--- a/assets/xml/objects/object_oA10.xml
+++ b/assets/xml/objects/object_oA10.xml
@@ -99,13 +99,13 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oA11.xml b/assets/xml/objects/object_oA11.xml
index c1e0efe191..b1b4b9a4fe 100644
--- a/assets/xml/objects/object_oA11.xml
+++ b/assets/xml/objects/object_oA11.xml
@@ -79,9 +79,9 @@
-
-
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_oA3.xml b/assets/xml/objects/object_oA3.xml
index 7abe8dd474..38becb819c 100644
--- a/assets/xml/objects/object_oA3.xml
+++ b/assets/xml/objects/object_oA3.xml
@@ -4,10 +4,10 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/assets/xml/objects/object_oA4.xml b/assets/xml/objects/object_oA4.xml
index e883f3bcf3..83fa41f434 100644
--- a/assets/xml/objects/object_oA4.xml
+++ b/assets/xml/objects/object_oA4.xml
@@ -99,11 +99,11 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oA5.xml b/assets/xml/objects/object_oA5.xml
index 14a6b19e22..1ec4b6f876 100644
--- a/assets/xml/objects/object_oA5.xml
+++ b/assets/xml/objects/object_oA5.xml
@@ -99,11 +99,11 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oA6.xml b/assets/xml/objects/object_oA6.xml
index 72db514fcb..1d80b31f3d 100644
--- a/assets/xml/objects/object_oA6.xml
+++ b/assets/xml/objects/object_oA6.xml
@@ -99,11 +99,11 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oA7.xml b/assets/xml/objects/object_oA7.xml
index 083f5f3ce5..3f63c3cc06 100644
--- a/assets/xml/objects/object_oA7.xml
+++ b/assets/xml/objects/object_oA7.xml
@@ -99,9 +99,9 @@
-
-
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_oA8.xml b/assets/xml/objects/object_oA8.xml
index 884797e6d9..5d2fd06f9e 100644
--- a/assets/xml/objects/object_oA8.xml
+++ b/assets/xml/objects/object_oA8.xml
@@ -99,8 +99,8 @@
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_oA9.xml b/assets/xml/objects/object_oA9.xml
index 464e8c91ba..07eb20ce7b 100644
--- a/assets/xml/objects/object_oA9.xml
+++ b/assets/xml/objects/object_oA9.xml
@@ -4,7 +4,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_oB1.xml b/assets/xml/objects/object_oB1.xml
index 9115a2b953..1012ce3a40 100644
--- a/assets/xml/objects/object_oB1.xml
+++ b/assets/xml/objects/object_oB1.xml
@@ -99,16 +99,16 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oB2.xml b/assets/xml/objects/object_oB2.xml
index eb56eae40f..1e018af222 100644
--- a/assets/xml/objects/object_oB2.xml
+++ b/assets/xml/objects/object_oB2.xml
@@ -86,15 +86,15 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oB3.xml b/assets/xml/objects/object_oB3.xml
index 396c341702..b5f569cb92 100644
--- a/assets/xml/objects/object_oB3.xml
+++ b/assets/xml/objects/object_oB3.xml
@@ -99,17 +99,17 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oB4.xml b/assets/xml/objects/object_oB4.xml
index 6cdff038ed..c0bdb1e30b 100644
--- a/assets/xml/objects/object_oB4.xml
+++ b/assets/xml/objects/object_oB4.xml
@@ -99,11 +99,11 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oE1.xml b/assets/xml/objects/object_oE1.xml
index e3e8374dd9..166efb7002 100644
--- a/assets/xml/objects/object_oE1.xml
+++ b/assets/xml/objects/object_oE1.xml
@@ -99,18 +99,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oE10.xml b/assets/xml/objects/object_oE10.xml
index 7e2717e541..a501165fb7 100644
--- a/assets/xml/objects/object_oE10.xml
+++ b/assets/xml/objects/object_oE10.xml
@@ -4,15 +4,15 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oE11.xml b/assets/xml/objects/object_oE11.xml
index 64b9ad265a..2e165702f9 100644
--- a/assets/xml/objects/object_oE11.xml
+++ b/assets/xml/objects/object_oE11.xml
@@ -4,16 +4,16 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oE12.xml b/assets/xml/objects/object_oE12.xml
index e500448084..2576a4ad49 100644
--- a/assets/xml/objects/object_oE12.xml
+++ b/assets/xml/objects/object_oE12.xml
@@ -4,16 +4,16 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oE1s.xml b/assets/xml/objects/object_oE1s.xml
index d9a419e5fa..51daef5317 100644
--- a/assets/xml/objects/object_oE1s.xml
+++ b/assets/xml/objects/object_oE1s.xml
@@ -19,17 +19,17 @@
-
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_oE2.xml b/assets/xml/objects/object_oE2.xml
index 714060fd6c..fae1a87d1d 100644
--- a/assets/xml/objects/object_oE2.xml
+++ b/assets/xml/objects/object_oE2.xml
@@ -99,19 +99,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oE3.xml b/assets/xml/objects/object_oE3.xml
index b61b850fba..07d27cd715 100644
--- a/assets/xml/objects/object_oE3.xml
+++ b/assets/xml/objects/object_oE3.xml
@@ -99,21 +99,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oE4.xml b/assets/xml/objects/object_oE4.xml
index e353bfb9ce..3f25c5e58e 100644
--- a/assets/xml/objects/object_oE4.xml
+++ b/assets/xml/objects/object_oE4.xml
@@ -99,16 +99,16 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oE4s.xml b/assets/xml/objects/object_oE4s.xml
index 1f1b33dcfa..aa59751331 100644
--- a/assets/xml/objects/object_oE4s.xml
+++ b/assets/xml/objects/object_oE4s.xml
@@ -18,15 +18,17 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oE5.xml b/assets/xml/objects/object_oE5.xml
index 89e9947adc..fd5ebb1b55 100644
--- a/assets/xml/objects/object_oE5.xml
+++ b/assets/xml/objects/object_oE5.xml
@@ -71,19 +71,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oE6.xml b/assets/xml/objects/object_oE6.xml
index 019797be82..e6902a1121 100644
--- a/assets/xml/objects/object_oE6.xml
+++ b/assets/xml/objects/object_oE6.xml
@@ -4,16 +4,16 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oE7.xml b/assets/xml/objects/object_oE7.xml
index bdf32d3b6c..58c9c2a77a 100644
--- a/assets/xml/objects/object_oE7.xml
+++ b/assets/xml/objects/object_oE7.xml
@@ -4,15 +4,15 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oE8.xml b/assets/xml/objects/object_oE8.xml
index d14c141bfd..28f9005c5e 100644
--- a/assets/xml/objects/object_oE8.xml
+++ b/assets/xml/objects/object_oE8.xml
@@ -4,16 +4,16 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oE9.xml b/assets/xml/objects/object_oE9.xml
index f8c4fa1e78..ea818dbf2b 100644
--- a/assets/xml/objects/object_oE9.xml
+++ b/assets/xml/objects/object_oE9.xml
@@ -4,16 +4,16 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oF1d_map.xml b/assets/xml/objects/object_oF1d_map.xml
index 09a35dbd1c..f84dc1e077 100644
--- a/assets/xml/objects/object_oF1d_map.xml
+++ b/assets/xml/objects/object_oF1d_map.xml
@@ -21,17 +21,67 @@
-
+
-
-
-
-
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_oF1s.xml b/assets/xml/objects/object_oF1s.xml
index 26491d565c..dcc1d1060a 100644
--- a/assets/xml/objects/object_oF1s.xml
+++ b/assets/xml/objects/object_oF1s.xml
@@ -22,21 +22,21 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
diff --git a/assets/xml/objects/object_okuta.xml b/assets/xml/objects/object_okuta.xml
index b4fccea6f3..72be4462de 100644
--- a/assets/xml/objects/object_okuta.xml
+++ b/assets/xml/objects/object_okuta.xml
@@ -9,21 +9,123 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_os.xml b/assets/xml/objects/object_os.xml
index 48c69ae276..1b05a523af 100644
--- a/assets/xml/objects/object_os.xml
+++ b/assets/xml/objects/object_os.xml
@@ -40,20 +40,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ossan.xml b/assets/xml/objects/object_ossan.xml
index c0d80ad0b0..909c7798fe 100644
--- a/assets/xml/objects/object_ossan.xml
+++ b/assets/xml/objects/object_ossan.xml
@@ -25,19 +25,45 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ouke_haka.xml b/assets/xml/objects/object_ouke_haka.xml
index 49dc2a4af1..26b9788cc2 100644
--- a/assets/xml/objects/object_ouke_haka.xml
+++ b/assets/xml/objects/object_ouke_haka.xml
@@ -4,6 +4,6 @@
-
+
diff --git a/assets/xml/objects/object_owl.xml b/assets/xml/objects/object_owl.xml
index 4ea2006678..666363030c 100644
--- a/assets/xml/objects/object_owl.xml
+++ b/assets/xml/objects/object_owl.xml
@@ -25,6 +25,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -59,13 +121,93 @@
-
+
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_peehat.xml b/assets/xml/objects/object_peehat.xml
index 42ee66cdef..98737cff33 100644
--- a/assets/xml/objects/object_peehat.xml
+++ b/assets/xml/objects/object_peehat.xml
@@ -28,6 +28,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -39,10 +65,10 @@
-
-
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_po_field.xml b/assets/xml/objects/object_po_field.xml
index 7900b787ac..aa9b96b9d5 100644
--- a/assets/xml/objects/object_po_field.xml
+++ b/assets/xml/objects/object_po_field.xml
@@ -7,12 +7,21 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -54,13 +63,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_po_sisters.xml b/assets/xml/objects/object_po_sisters.xml
index 2ba750a2a2..f82b24286a 100644
--- a/assets/xml/objects/object_po_sisters.xml
+++ b/assets/xml/objects/object_po_sisters.xml
@@ -36,7 +36,13 @@
+
+
+
+
+
+
@@ -65,6 +71,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_poh.xml b/assets/xml/objects/object_poh.xml
index b2dd07568d..30cd1c4a62 100644
--- a/assets/xml/objects/object_poh.xml
+++ b/assets/xml/objects/object_poh.xml
@@ -10,21 +10,27 @@
+
+
+
+
+
+
@@ -32,6 +38,7 @@
+
@@ -39,10 +46,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ps.xml b/assets/xml/objects/object_ps.xml
index e3a04685c6..cf875572e2 100644
--- a/assets/xml/objects/object_ps.xml
+++ b/assets/xml/objects/object_ps.xml
@@ -2,16 +2,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -39,13 +64,33 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_pu_box.xml b/assets/xml/objects/object_pu_box.xml
index e1d686e979..a315bc38d8 100644
--- a/assets/xml/objects/object_pu_box.xml
+++ b/assets/xml/objects/object_pu_box.xml
@@ -1,13 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/assets/xml/objects/object_rd.xml b/assets/xml/objects/object_rd.xml
index a0243a7359..c7e8de8a32 100644
--- a/assets/xml/objects/object_rd.xml
+++ b/assets/xml/objects/object_rd.xml
@@ -2,8 +2,8 @@
-
-
+
+
@@ -111,13 +111,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_reeba.xml b/assets/xml/objects/object_reeba.xml
index 474e4edc59..e8ac5c66e8 100644
--- a/assets/xml/objects/object_reeba.xml
+++ b/assets/xml/objects/object_reeba.xml
@@ -37,9 +37,26 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_relay_objects.xml b/assets/xml/objects/object_relay_objects.xml
index 47b92fcd2d..fafa93da7c 100644
--- a/assets/xml/objects/object_relay_objects.xml
+++ b/assets/xml/objects/object_relay_objects.xml
@@ -1,16 +1,22 @@
-
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_rl.xml b/assets/xml/objects/object_rl.xml
index e9a26ef2fb..9f30bbd899 100644
--- a/assets/xml/objects/object_rl.xml
+++ b/assets/xml/objects/object_rl.xml
@@ -35,30 +35,32 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_rr.xml b/assets/xml/objects/object_rr.xml
index 4d95b2da3e..43e7330ea8 100644
--- a/assets/xml/objects/object_rr.xml
+++ b/assets/xml/objects/object_rr.xml
@@ -4,8 +4,8 @@
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_rs.xml b/assets/xml/objects/object_rs.xml
index 64832b127a..503033cf32 100644
--- a/assets/xml/objects/object_rs.xml
+++ b/assets/xml/objects/object_rs.xml
@@ -35,16 +35,16 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ru1.xml b/assets/xml/objects/object_ru1.xml
index 7ac2fbc256..df982f447e 100644
--- a/assets/xml/objects/object_ru1.xml
+++ b/assets/xml/objects/object_ru1.xml
@@ -23,6 +23,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -39,27 +85,27 @@
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
diff --git a/assets/xml/objects/object_ru2.xml b/assets/xml/objects/object_ru2.xml
index d6cea22915..01d85915d2 100644
--- a/assets/xml/objects/object_ru2.xml
+++ b/assets/xml/objects/object_ru2.xml
@@ -27,6 +27,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -51,32 +116,34 @@
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_sa.xml b/assets/xml/objects/object_sa.xml
index e87cd793dd..fbc29d6f72 100644
--- a/assets/xml/objects/object_sa.xml
+++ b/assets/xml/objects/object_sa.xml
@@ -49,6 +49,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -66,34 +115,35 @@
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_sb.xml b/assets/xml/objects/object_sb.xml
index 7ba041f183..e79cef0065 100644
--- a/assets/xml/objects/object_sb.xml
+++ b/assets/xml/objects/object_sb.xml
@@ -10,11 +10,11 @@
-
-
-
-
-
+
+
+
+
+
@@ -23,7 +23,7 @@
-
+
diff --git a/assets/xml/objects/object_sd.xml b/assets/xml/objects/object_sd.xml
index 0228b48690..d95d5d513f 100644
--- a/assets/xml/objects/object_sd.xml
+++ b/assets/xml/objects/object_sd.xml
@@ -25,6 +25,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -43,28 +92,28 @@
-
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/assets/xml/objects/object_shop_dungen.xml b/assets/xml/objects/object_shop_dungen.xml
index baf9b9b44b..3c52d0a039 100644
--- a/assets/xml/objects/object_shop_dungen.xml
+++ b/assets/xml/objects/object_shop_dungen.xml
@@ -4,13 +4,13 @@
-
-
-
+
+
+
-
+
diff --git a/assets/xml/objects/object_shopnuts.xml b/assets/xml/objects/object_shopnuts.xml
index 105ce88247..5ee09fee80 100644
--- a/assets/xml/objects/object_shopnuts.xml
+++ b/assets/xml/objects/object_shopnuts.xml
@@ -22,6 +22,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -42,13 +98,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_siofuki.xml b/assets/xml/objects/object_siofuki.xml
index 0a758500c9..2932879233 100644
--- a/assets/xml/objects/object_siofuki.xml
+++ b/assets/xml/objects/object_siofuki.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/objects/object_sk2.xml b/assets/xml/objects/object_sk2.xml
index f2e7ef6d89..87e7a37831 100644
--- a/assets/xml/objects/object_sk2.xml
+++ b/assets/xml/objects/object_sk2.xml
@@ -1,5 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -27,19 +101,19 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_skb.xml b/assets/xml/objects/object_skb.xml
index 1220ddf6d9..a7d5798c61 100644
--- a/assets/xml/objects/object_skb.xml
+++ b/assets/xml/objects/object_skb.xml
@@ -24,6 +24,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -44,15 +97,15 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_skj.xml b/assets/xml/objects/object_skj.xml
index 958301d2e8..ec07397ac7 100644
--- a/assets/xml/objects/object_skj.xml
+++ b/assets/xml/objects/object_skj.xml
@@ -23,6 +23,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -58,8 +117,19 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_spot00_break.xml b/assets/xml/objects/object_spot00_break.xml
index bee1361fab..67ec2ff956 100644
--- a/assets/xml/objects/object_spot00_break.xml
+++ b/assets/xml/objects/object_spot00_break.xml
@@ -1,13 +1,19 @@
+
+
+
-
-
-
+
+
+
+
+
+
-
+
diff --git a/assets/xml/objects/object_spot00_objects.xml b/assets/xml/objects/object_spot00_objects.xml
index 10fb13aeac..2126eddce3 100644
--- a/assets/xml/objects/object_spot00_objects.xml
+++ b/assets/xml/objects/object_spot00_objects.xml
@@ -1,14 +1,20 @@
+
+
+
-
-
+
+
+
+
+
-
+
diff --git a/assets/xml/objects/object_spot01_matoya.xml b/assets/xml/objects/object_spot01_matoya.xml
index d44b944e0e..825eb31bdd 100644
--- a/assets/xml/objects/object_spot01_matoya.xml
+++ b/assets/xml/objects/object_spot01_matoya.xml
@@ -1,30 +1,46 @@
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
-
-
+
+
+
diff --git a/assets/xml/objects/object_spot01_matoyab.xml b/assets/xml/objects/object_spot01_matoyab.xml
index 720f50cd3e..f6662b7100 100644
--- a/assets/xml/objects/object_spot01_matoyab.xml
+++ b/assets/xml/objects/object_spot01_matoyab.xml
@@ -3,16 +3,23 @@
+
+
+
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_spot01_objects.xml b/assets/xml/objects/object_spot01_objects.xml
index 413e032a9c..3ee06792f9 100644
--- a/assets/xml/objects/object_spot01_objects.xml
+++ b/assets/xml/objects/object_spot01_objects.xml
@@ -1,16 +1,25 @@
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
diff --git a/assets/xml/objects/object_spot02_objects.xml b/assets/xml/objects/object_spot02_objects.xml
index 3dfaf227d3..e819a9074f 100644
--- a/assets/xml/objects/object_spot02_objects.xml
+++ b/assets/xml/objects/object_spot02_objects.xml
@@ -1,43 +1,64 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_spot03_object.xml b/assets/xml/objects/object_spot03_object.xml
index c844a45103..cf3b709b2b 100644
--- a/assets/xml/objects/object_spot03_object.xml
+++ b/assets/xml/objects/object_spot03_object.xml
@@ -1,6 +1,6 @@
-
+
@@ -10,7 +10,7 @@
-
+
diff --git a/assets/xml/objects/object_spot04_objects.xml b/assets/xml/objects/object_spot04_objects.xml
index 66293d7523..8c2e62b066 100644
--- a/assets/xml/objects/object_spot04_objects.xml
+++ b/assets/xml/objects/object_spot04_objects.xml
@@ -1,9 +1,12 @@
-
-
-
-
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_spot05_objects.xml b/assets/xml/objects/object_spot05_objects.xml
index dcca34043a..cd7a4995e0 100644
--- a/assets/xml/objects/object_spot05_objects.xml
+++ b/assets/xml/objects/object_spot05_objects.xml
@@ -1,12 +1,12 @@
-
+
-
+
diff --git a/assets/xml/objects/object_spot06_objects.xml b/assets/xml/objects/object_spot06_objects.xml
index 5084fd244e..3362cb42b9 100644
--- a/assets/xml/objects/object_spot06_objects.xml
+++ b/assets/xml/objects/object_spot06_objects.xml
@@ -1,24 +1,39 @@
+
+
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
diff --git a/assets/xml/objects/object_spot07_object.xml b/assets/xml/objects/object_spot07_object.xml
index 6f0263173e..5477e187ea 100644
--- a/assets/xml/objects/object_spot07_object.xml
+++ b/assets/xml/objects/object_spot07_object.xml
@@ -8,8 +8,8 @@
-
-
+
+
@@ -19,8 +19,8 @@
-
-
+
+
@@ -30,12 +30,12 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_spot08_obj.xml b/assets/xml/objects/object_spot08_obj.xml
index 8d2aa760ce..bb3c63a2af 100644
--- a/assets/xml/objects/object_spot08_obj.xml
+++ b/assets/xml/objects/object_spot08_obj.xml
@@ -1,27 +1,36 @@
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
diff --git a/assets/xml/objects/object_spot09_obj.xml b/assets/xml/objects/object_spot09_obj.xml
index b4d9ae42a1..4ce5387441 100644
--- a/assets/xml/objects/object_spot09_obj.xml
+++ b/assets/xml/objects/object_spot09_obj.xml
@@ -1,14 +1,53 @@
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_spot11_obj.xml b/assets/xml/objects/object_spot11_obj.xml
index ba1c4784fd..4ce3bdcb2e 100644
--- a/assets/xml/objects/object_spot11_obj.xml
+++ b/assets/xml/objects/object_spot11_obj.xml
@@ -1,11 +1,11 @@
-
+
-
+
diff --git a/assets/xml/objects/object_spot12_obj.xml b/assets/xml/objects/object_spot12_obj.xml
index d619c781e4..9a0779dff7 100644
--- a/assets/xml/objects/object_spot12_obj.xml
+++ b/assets/xml/objects/object_spot12_obj.xml
@@ -1,13 +1,19 @@
+
+
+
-
+
+
+
+
-
+
diff --git a/assets/xml/objects/object_spot15_obj.xml b/assets/xml/objects/object_spot15_obj.xml
index bd59b8cd18..fe82dae7c1 100644
--- a/assets/xml/objects/object_spot15_obj.xml
+++ b/assets/xml/objects/object_spot15_obj.xml
@@ -1,13 +1,19 @@
+
+
+
-
+
+
+
+
-
+
diff --git a/assets/xml/objects/object_spot16_obj.xml b/assets/xml/objects/object_spot16_obj.xml
index b7a6ff4d54..0687c8fd88 100644
--- a/assets/xml/objects/object_spot16_obj.xml
+++ b/assets/xml/objects/object_spot16_obj.xml
@@ -1,11 +1,20 @@
+
+
+
+
+
+
+
+
+
-
-
+
+
diff --git a/assets/xml/objects/object_spot17_obj.xml b/assets/xml/objects/object_spot17_obj.xml
index 364ee9b9e8..54151b4cd8 100644
--- a/assets/xml/objects/object_spot17_obj.xml
+++ b/assets/xml/objects/object_spot17_obj.xml
@@ -1,7 +1,7 @@
-
-
+
+
@@ -15,7 +15,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_spot18_obj.xml b/assets/xml/objects/object_spot18_obj.xml
index cc12b78946..388ef942cc 100644
--- a/assets/xml/objects/object_spot18_obj.xml
+++ b/assets/xml/objects/object_spot18_obj.xml
@@ -8,23 +8,23 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -32,5 +32,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ssh.xml b/assets/xml/objects/object_ssh.xml
index 3f50161d96..2aebe9f949 100644
--- a/assets/xml/objects/object_ssh.xml
+++ b/assets/xml/objects/object_ssh.xml
@@ -1,17 +1,17 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_sst.xml b/assets/xml/objects/object_sst.xml
index 66cf6c8e02..fff77ae400 100644
--- a/assets/xml/objects/object_sst.xml
+++ b/assets/xml/objects/object_sst.xml
@@ -2,7 +2,7 @@
-
+
@@ -50,7 +50,180 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_sst_pal.xml b/assets/xml/objects/object_sst_pal.xml
index 138a320324..3ba9b09d57 100644
--- a/assets/xml/objects/object_sst_pal.xml
+++ b/assets/xml/objects/object_sst_pal.xml
@@ -2,7 +2,7 @@
-
+
@@ -50,7 +50,180 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_st.xml b/assets/xml/objects/object_st.xml
index d561363649..42a586987d 100644
--- a/assets/xml/objects/object_st.xml
+++ b/assets/xml/objects/object_st.xml
@@ -2,13 +2,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -49,10 +49,10 @@
-
-
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_stream.xml b/assets/xml/objects/object_stream.xml
index e8710781c8..fb2cef4da6 100644
--- a/assets/xml/objects/object_stream.xml
+++ b/assets/xml/objects/object_stream.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/objects/object_syokudai.xml b/assets/xml/objects/object_syokudai.xml
index a34d4adc67..6c919ad46f 100644
--- a/assets/xml/objects/object_syokudai.xml
+++ b/assets/xml/objects/object_syokudai.xml
@@ -13,10 +13,10 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/assets/xml/objects/object_ta.xml b/assets/xml/objects/object_ta.xml
index 4f339fc951..d73e28972a 100644
--- a/assets/xml/objects/object_ta.xml
+++ b/assets/xml/objects/object_ta.xml
@@ -25,6 +25,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -40,32 +87,32 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_timeblock.xml b/assets/xml/objects/object_timeblock.xml
index 1d6b9e698c..18f07608e7 100644
--- a/assets/xml/objects/object_timeblock.xml
+++ b/assets/xml/objects/object_timeblock.xml
@@ -1,7 +1,10 @@
+
+
+
-
+
diff --git a/assets/xml/objects/object_tite.xml b/assets/xml/objects/object_tite.xml
index 4474dab205..c01d117df4 100644
--- a/assets/xml/objects/object_tite.xml
+++ b/assets/xml/objects/object_tite.xml
@@ -9,14 +9,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_tk.xml b/assets/xml/objects/object_tk.xml
index 6ea256b875..85b97e0b3e 100644
--- a/assets/xml/objects/object_tk.xml
+++ b/assets/xml/objects/object_tk.xml
@@ -5,11 +5,19 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -55,6 +63,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -64,7 +93,12 @@
+
+
+
+
+
@@ -78,6 +112,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_toki_objects.xml b/assets/xml/objects/object_toki_objects.xml
index 7534d44d1e..f539558f9b 100644
--- a/assets/xml/objects/object_toki_objects.xml
+++ b/assets/xml/objects/object_toki_objects.xml
@@ -1,7 +1,7 @@
-
+
@@ -10,8 +10,8 @@
-
-
+
+
@@ -20,14 +20,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_torch2.xml b/assets/xml/objects/object_torch2.xml
index ec55bbe26d..5ef419c510 100644
--- a/assets/xml/objects/object_torch2.xml
+++ b/assets/xml/objects/object_torch2.xml
@@ -7,5 +7,100 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_toryo.xml b/assets/xml/objects/object_toryo.xml
index 9bd5b09711..f04c57f358 100644
--- a/assets/xml/objects/object_toryo.xml
+++ b/assets/xml/objects/object_toryo.xml
@@ -1,21 +1,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_tp.xml b/assets/xml/objects/object_tp.xml
index 5809bac6d1..62abff312c 100644
--- a/assets/xml/objects/object_tp.xml
+++ b/assets/xml/objects/object_tp.xml
@@ -17,10 +17,10 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/assets/xml/objects/object_tr.xml b/assets/xml/objects/object_tr.xml
index f365b97266..30978596d5 100644
--- a/assets/xml/objects/object_tr.xml
+++ b/assets/xml/objects/object_tr.xml
@@ -31,25 +31,25 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -88,11 +88,11 @@
-
+
-
+
@@ -148,9 +148,9 @@
-
-
-
+
+
+
@@ -189,7 +189,7 @@
-
+
diff --git a/assets/xml/objects/object_trap.xml b/assets/xml/objects/object_trap.xml
index 1f8f4b5310..0d8db0f9e8 100644
--- a/assets/xml/objects/object_trap.xml
+++ b/assets/xml/objects/object_trap.xml
@@ -1,12 +1,21 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_triforce_spot.xml b/assets/xml/objects/object_triforce_spot.xml
index 40f936d3c3..f645f2859f 100644
--- a/assets/xml/objects/object_triforce_spot.xml
+++ b/assets/xml/objects/object_triforce_spot.xml
@@ -9,8 +9,8 @@
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_ts.xml b/assets/xml/objects/object_ts.xml
index ce99c27e0b..9fd3327fa5 100644
--- a/assets/xml/objects/object_ts.xml
+++ b/assets/xml/objects/object_ts.xml
@@ -1,16 +1,16 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_tsubo.xml b/assets/xml/objects/object_tsubo.xml
index bdfd9070af..ccfe70c7e3 100644
--- a/assets/xml/objects/object_tsubo.xml
+++ b/assets/xml/objects/object_tsubo.xml
@@ -1,8 +1,8 @@
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_tw.xml b/assets/xml/objects/object_tw.xml
index c528fb4518..922d28ac65 100644
--- a/assets/xml/objects/object_tw.xml
+++ b/assets/xml/objects/object_tw.xml
@@ -51,30 +51,116 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -129,8 +215,8 @@
-
-
+
+
@@ -155,94 +241,163 @@
-
+
-
+
+
+
+
-
-
+
+
+
+
+
-
+
-
+
+
+
+
-
-
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
-
+
+
+
+
+
+
+
-
+
-
+
+
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
-
+
-
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -276,7 +431,7 @@
-
+
@@ -286,11 +441,97 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -323,16 +564,69 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -354,7 +648,7 @@
-
+
@@ -415,7 +709,10 @@
+
+
+
-
+
diff --git a/assets/xml/objects/object_tw_pal.xml b/assets/xml/objects/object_tw_pal.xml
index 126926356f..2b777f3d3a 100644
--- a/assets/xml/objects/object_tw_pal.xml
+++ b/assets/xml/objects/object_tw_pal.xml
@@ -51,30 +51,116 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -106,7 +192,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -127,11 +259,58 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -151,94 +330,163 @@
-
+
-
+
+
+
+
-
-
+
+
+
+
+
-
+
+
+
+
-
-
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
-
+
+
+
+
+
+
+
-
+
-
+
+
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
-
+
-
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -272,7 +520,7 @@
-
+
@@ -282,11 +530,97 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -319,16 +653,69 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -350,7 +737,7 @@
-
+
@@ -411,7 +798,10 @@
+
+
+
-
+
diff --git a/assets/xml/objects/object_umajump.xml b/assets/xml/objects/object_umajump.xml
index 1d205b7a42..5a371dc82d 100644
--- a/assets/xml/objects/object_umajump.xml
+++ b/assets/xml/objects/object_umajump.xml
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_vali.xml b/assets/xml/objects/object_vali.xml
index e2c8f88159..5e511a1494 100644
--- a/assets/xml/objects/object_vali.xml
+++ b/assets/xml/objects/object_vali.xml
@@ -64,11 +64,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/assets/xml/objects/object_vase.xml b/assets/xml/objects/object_vase.xml
index 091d4c51e3..71809a864b 100644
--- a/assets/xml/objects/object_vase.xml
+++ b/assets/xml/objects/object_vase.xml
@@ -1,7 +1,10 @@
-
-
+
+
+
+
+
diff --git a/assets/xml/objects/object_vm.xml b/assets/xml/objects/object_vm.xml
index c5b949b36e..88f23bbeb8 100644
--- a/assets/xml/objects/object_vm.xml
+++ b/assets/xml/objects/object_vm.xml
@@ -15,6 +15,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -22,20 +36,23 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
+
+
+
diff --git a/assets/xml/objects/object_wallmaster.xml b/assets/xml/objects/object_wallmaster.xml
index fbbc4f4af3..26ec631073 100644
--- a/assets/xml/objects/object_wallmaster.xml
+++ b/assets/xml/objects/object_wallmaster.xml
@@ -10,15 +10,18 @@
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -31,5 +34,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_warp1.xml b/assets/xml/objects/object_warp1.xml
index cc684029b3..f640333691 100644
--- a/assets/xml/objects/object_warp1.xml
+++ b/assets/xml/objects/object_warp1.xml
@@ -5,7 +5,7 @@
-
+
@@ -36,7 +36,7 @@
-
+
diff --git a/assets/xml/objects/object_wf.xml b/assets/xml/objects/object_wf.xml
index c97207cf0b..cd9a297c9e 100644
--- a/assets/xml/objects/object_wf.xml
+++ b/assets/xml/objects/object_wf.xml
@@ -1,11 +1,11 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -64,8 +64,8 @@
-
-
+
+
@@ -178,16 +178,16 @@
-
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
diff --git a/assets/xml/objects/object_wood02.xml b/assets/xml/objects/object_wood02.xml
index a79fe654dc..e282217d4a 100644
--- a/assets/xml/objects/object_wood02.xml
+++ b/assets/xml/objects/object_wood02.xml
@@ -17,22 +17,22 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -76,5 +76,8 @@
+
+
+
diff --git a/assets/xml/objects/object_xc.xml b/assets/xml/objects/object_xc.xml
index 7a69f52f38..f6f30b2f44 100644
--- a/assets/xml/objects/object_xc.xml
+++ b/assets/xml/objects/object_xc.xml
@@ -8,7 +8,7 @@
-
+
@@ -22,12 +22,125 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_xc_pal.xml b/assets/xml/objects/object_xc_pal.xml
index 7fae3a0875..7d20f23661 100644
--- a/assets/xml/objects/object_xc_pal.xml
+++ b/assets/xml/objects/object_xc_pal.xml
@@ -8,7 +8,7 @@
-
+
@@ -22,12 +22,125 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_yabusame_point.xml b/assets/xml/objects/object_yabusame_point.xml
index 5a06a44e68..33e4237897 100644
--- a/assets/xml/objects/object_yabusame_point.xml
+++ b/assets/xml/objects/object_yabusame_point.xml
@@ -1,8 +1,8 @@
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_ydan_objects.xml b/assets/xml/objects/object_ydan_objects.xml
index 70174a1e70..a6ee5e614b 100644
--- a/assets/xml/objects/object_ydan_objects.xml
+++ b/assets/xml/objects/object_ydan_objects.xml
@@ -1,29 +1,62 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_yukabyun.xml b/assets/xml/objects/object_yukabyun.xml
index d594ebbb89..c1aeb83388 100644
--- a/assets/xml/objects/object_yukabyun.xml
+++ b/assets/xml/objects/object_yukabyun.xml
@@ -1,9 +1,15 @@
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_zf.xml b/assets/xml/objects/object_zf.xml
index a537b9ff8d..3a64ee7266 100644
--- a/assets/xml/objects/object_zf.xml
+++ b/assets/xml/objects/object_zf.xml
@@ -1,16 +1,16 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -147,18 +147,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_zg.xml b/assets/xml/objects/object_zg.xml
index d0f301390b..3aa2c142ab 100644
--- a/assets/xml/objects/object_zg.xml
+++ b/assets/xml/objects/object_zg.xml
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_zl1.xml b/assets/xml/objects/object_zl1.xml
index 1b83550605..0ba5fdde0f 100644
--- a/assets/xml/objects/object_zl1.xml
+++ b/assets/xml/objects/object_zl1.xml
@@ -22,6 +22,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -41,61 +92,68 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_zl2.xml b/assets/xml/objects/object_zl2.xml
index 2503b811d3..46943d3650 100644
--- a/assets/xml/objects/object_zl2.xml
+++ b/assets/xml/objects/object_zl2.xml
@@ -4,41 +4,142 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_zl4.xml b/assets/xml/objects/object_zl4.xml
index 99cc12ea2a..8c48f4b69e 100644
--- a/assets/xml/objects/object_zl4.xml
+++ b/assets/xml/objects/object_zl4.xml
@@ -40,23 +40,140 @@
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_zo.xml b/assets/xml/objects/object_zo.xml
index 8872cc4c9f..92aefa8949 100644
--- a/assets/xml/objects/object_zo.xml
+++ b/assets/xml/objects/object_zo.xml
@@ -1,56 +1,113 @@
-
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
@@ -60,27 +117,33 @@
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
+
+
+
+
-
+
+
+
+
diff --git a/assets/xml/overlays/ovl_Arrow_Fire.xml b/assets/xml/overlays/ovl_Arrow_Fire.xml
index 061e11f84b..8f7eba2573 100644
--- a/assets/xml/overlays/ovl_Arrow_Fire.xml
+++ b/assets/xml/overlays/ovl_Arrow_Fire.xml
@@ -1,11 +1,11 @@
-
-
-
+
+
+
-
-
+
+
diff --git a/assets/xml/overlays/ovl_Arrow_Ice.xml b/assets/xml/overlays/ovl_Arrow_Ice.xml
index d2a0df3be8..e2f239c15d 100644
--- a/assets/xml/overlays/ovl_Arrow_Ice.xml
+++ b/assets/xml/overlays/ovl_Arrow_Ice.xml
@@ -1,11 +1,11 @@
-
-
-
+
+
+
-
-
+
+
diff --git a/assets/xml/overlays/ovl_Arrow_Light.xml b/assets/xml/overlays/ovl_Arrow_Light.xml
index 1f449dd7b9..93371024a7 100644
--- a/assets/xml/overlays/ovl_Arrow_Light.xml
+++ b/assets/xml/overlays/ovl_Arrow_Light.xml
@@ -1,11 +1,11 @@
-
-
-
+
+
+
-
-
+
+
diff --git a/assets/xml/overlays/ovl_Bg_Ganon_Otyuka.xml b/assets/xml/overlays/ovl_Bg_Ganon_Otyuka.xml
index 7b294e65b2..dd87558e16 100644
--- a/assets/xml/overlays/ovl_Bg_Ganon_Otyuka.xml
+++ b/assets/xml/overlays/ovl_Bg_Ganon_Otyuka.xml
@@ -1,6 +1,6 @@
-
+
@@ -18,7 +18,7 @@
-
+
diff --git a/assets/xml/overlays/ovl_Boss_Dodongo.xml b/assets/xml/overlays/ovl_Boss_Dodongo.xml
index 78d2f8e5b3..9b65f1f181 100644
--- a/assets/xml/overlays/ovl_Boss_Dodongo.xml
+++ b/assets/xml/overlays/ovl_Boss_Dodongo.xml
@@ -1,6 +1,6 @@
-
-
+
+
diff --git a/assets/xml/overlays/ovl_Boss_Ganon.xml b/assets/xml/overlays/ovl_Boss_Ganon.xml
index d09648d8d7..f028b92050 100644
--- a/assets/xml/overlays/ovl_Boss_Ganon.xml
+++ b/assets/xml/overlays/ovl_Boss_Ganon.xml
@@ -1,53 +1,137 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/overlays/ovl_Boss_Ganon2.xml b/assets/xml/overlays/ovl_Boss_Ganon2.xml
index b922003dfa..4a1ddd43c2 100644
--- a/assets/xml/overlays/ovl_Boss_Ganon2.xml
+++ b/assets/xml/overlays/ovl_Boss_Ganon2.xml
@@ -1,29 +1,53 @@
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/overlays/ovl_Boss_Sst.xml b/assets/xml/overlays/ovl_Boss_Sst.xml
index 35584224de..93f66c6756 100644
--- a/assets/xml/overlays/ovl_Boss_Sst.xml
+++ b/assets/xml/overlays/ovl_Boss_Sst.xml
@@ -1,8 +1,14 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/overlays/ovl_Demo_Shd.xml b/assets/xml/overlays/ovl_Demo_Shd.xml
index 967f383ec3..49e5e30114 100644
--- a/assets/xml/overlays/ovl_Demo_Shd.xml
+++ b/assets/xml/overlays/ovl_Demo_Shd.xml
@@ -1,8 +1,13 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/overlays/ovl_Effect_Ss_Fhg_Flash.xml b/assets/xml/overlays/ovl_Effect_Ss_Fhg_Flash.xml
index b8c0613ee4..f35bd62a15 100644
--- a/assets/xml/overlays/ovl_Effect_Ss_Fhg_Flash.xml
+++ b/assets/xml/overlays/ovl_Effect_Ss_Fhg_Flash.xml
@@ -4,6 +4,6 @@
-
+
diff --git a/assets/xml/overlays/ovl_Elf_Msg.xml b/assets/xml/overlays/ovl_Elf_Msg.xml
index 61e28d31b7..a6b07b2e37 100644
--- a/assets/xml/overlays/ovl_Elf_Msg.xml
+++ b/assets/xml/overlays/ovl_Elf_Msg.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/overlays/ovl_Elf_Msg2.xml b/assets/xml/overlays/ovl_Elf_Msg2.xml
index a0ea055e26..c4f10e8cd3 100644
--- a/assets/xml/overlays/ovl_Elf_Msg2.xml
+++ b/assets/xml/overlays/ovl_Elf_Msg2.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/overlays/ovl_En_Clear_Tag.xml b/assets/xml/overlays/ovl_En_Clear_Tag.xml
index 05c9c29865..cfdb5fb764 100644
--- a/assets/xml/overlays/ovl_En_Clear_Tag.xml
+++ b/assets/xml/overlays/ovl_En_Clear_Tag.xml
@@ -1,14 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/overlays/ovl_En_Ganon_Mant.xml b/assets/xml/overlays/ovl_En_Ganon_Mant.xml
index a9242f1781..219729809c 100644
--- a/assets/xml/overlays/ovl_En_Ganon_Mant.xml
+++ b/assets/xml/overlays/ovl_En_Ganon_Mant.xml
@@ -1,8 +1,8 @@
-
+
-
+
diff --git a/assets/xml/overlays/ovl_En_Ganon_Organ.xml b/assets/xml/overlays/ovl_En_Ganon_Organ.xml
index 05257fb6f6..6668b85fd0 100644
--- a/assets/xml/overlays/ovl_En_Ganon_Organ.xml
+++ b/assets/xml/overlays/ovl_En_Ganon_Organ.xml
@@ -1,19 +1,25 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/overlays/ovl_En_Jsjutan.xml b/assets/xml/overlays/ovl_En_Jsjutan.xml
index 13bbd82199..f535ce9292 100644
--- a/assets/xml/overlays/ovl_En_Jsjutan.xml
+++ b/assets/xml/overlays/ovl_En_Jsjutan.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/overlays/ovl_En_Mag_ique.xml b/assets/xml/overlays/ovl_En_Mag_ique.xml
index bd239b7f0c..da89ca042e 100644
--- a/assets/xml/overlays/ovl_En_Mag_ique.xml
+++ b/assets/xml/overlays/ovl_En_Mag_ique.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/assets/xml/overlays/ovl_En_Sth.xml b/assets/xml/overlays/ovl_En_Sth.xml
index 46a30a7185..2c4671e468 100644
--- a/assets/xml/overlays/ovl_En_Sth.xml
+++ b/assets/xml/overlays/ovl_En_Sth.xml
@@ -1,12 +1,18 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/overlays/ovl_End_Title.xml b/assets/xml/overlays/ovl_End_Title.xml
index 53d085681d..0f0bf74048 100644
--- a/assets/xml/overlays/ovl_End_Title.xml
+++ b/assets/xml/overlays/ovl_End_Title.xml
@@ -1,11 +1,11 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/assets/xml/overlays/ovl_End_Title_ique.xml b/assets/xml/overlays/ovl_End_Title_ique.xml
index 300448cabf..89f6f77847 100644
--- a/assets/xml/overlays/ovl_End_Title_ique.xml
+++ b/assets/xml/overlays/ovl_End_Title_ique.xml
@@ -1,20 +1,20 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/assets/xml/overlays/ovl_Magic_Dark.xml b/assets/xml/overlays/ovl_Magic_Dark.xml
index 37165cebc2..640642adb6 100644
--- a/assets/xml/overlays/ovl_Magic_Dark.xml
+++ b/assets/xml/overlays/ovl_Magic_Dark.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/overlays/ovl_Magic_Fire.xml b/assets/xml/overlays/ovl_Magic_Fire.xml
index 81de7a989f..fb9282a816 100644
--- a/assets/xml/overlays/ovl_Magic_Fire.xml
+++ b/assets/xml/overlays/ovl_Magic_Fire.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/assets/xml/overlays/ovl_Magic_Wind.xml b/assets/xml/overlays/ovl_Magic_Wind.xml
index 7da59209b8..8a43d0a2fd 100644
--- a/assets/xml/overlays/ovl_Magic_Wind.xml
+++ b/assets/xml/overlays/ovl_Magic_Wind.xml
@@ -8,7 +8,7 @@
-
+
diff --git a/assets/xml/overlays/ovl_Oceff_Spot.xml b/assets/xml/overlays/ovl_Oceff_Spot.xml
index 6c81549060..8d5b359938 100644
--- a/assets/xml/overlays/ovl_Oceff_Spot.xml
+++ b/assets/xml/overlays/ovl_Oceff_Spot.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/assets/xml/overlays/ovl_Oceff_Storm.xml b/assets/xml/overlays/ovl_Oceff_Storm.xml
index d9e1f7e65a..7cdb735909 100644
--- a/assets/xml/overlays/ovl_Oceff_Storm.xml
+++ b/assets/xml/overlays/ovl_Oceff_Storm.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/overlays/ovl_Oceff_Wipe.xml b/assets/xml/overlays/ovl_Oceff_Wipe.xml
index 64b3f1332e..0ed7257bf8 100644
--- a/assets/xml/overlays/ovl_Oceff_Wipe.xml
+++ b/assets/xml/overlays/ovl_Oceff_Wipe.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/assets/xml/overlays/ovl_Oceff_Wipe2.xml b/assets/xml/overlays/ovl_Oceff_Wipe2.xml
index 0166d1909f..c2db2a6b11 100644
--- a/assets/xml/overlays/ovl_Oceff_Wipe2.xml
+++ b/assets/xml/overlays/ovl_Oceff_Wipe2.xml
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/assets/xml/overlays/ovl_Oceff_Wipe3.xml b/assets/xml/overlays/ovl_Oceff_Wipe3.xml
index d797d1675f..6d8a1fea84 100644
--- a/assets/xml/overlays/ovl_Oceff_Wipe3.xml
+++ b/assets/xml/overlays/ovl_Oceff_Wipe3.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/assets/xml/overlays/ovl_Oceff_Wipe4.xml b/assets/xml/overlays/ovl_Oceff_Wipe4.xml
index a4ec2c5def..0aa0c729f6 100644
--- a/assets/xml/overlays/ovl_Oceff_Wipe4.xml
+++ b/assets/xml/overlays/ovl_Oceff_Wipe4.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/overlays/ovl_file_choose.xml b/assets/xml/overlays/ovl_file_choose.xml
index 8808ab4281..f47e1f46ee 100644
--- a/assets/xml/overlays/ovl_file_choose.xml
+++ b/assets/xml/overlays/ovl_file_choose.xml
@@ -1,33 +1,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/assets/xml/overlays/ovl_file_choose_pal_gc.xml b/assets/xml/overlays/ovl_file_choose_pal_gc.xml
index 3c4c24cdab..58b22b8608 100644
--- a/assets/xml/overlays/ovl_file_choose_pal_gc.xml
+++ b/assets/xml/overlays/ovl_file_choose_pal_gc.xml
@@ -1,30 +1,30 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/assets/xml/overlays/ovl_file_choose_pal_n64.xml b/assets/xml/overlays/ovl_file_choose_pal_n64.xml
index 282fad0c37..2c61750279 100644
--- a/assets/xml/overlays/ovl_file_choose_pal_n64.xml
+++ b/assets/xml/overlays/ovl_file_choose_pal_n64.xml
@@ -1,33 +1,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/assets/xml/scenes/dungeons/Bmori1.xml b/assets/xml/scenes/dungeons/Bmori1.xml
index 70aac34646..8b35f856d2 100644
--- a/assets/xml/scenes/dungeons/Bmori1.xml
+++ b/assets/xml/scenes/dungeons/Bmori1.xml
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/assets/xml/scenes/dungeons/Bmori1_mq.xml b/assets/xml/scenes/dungeons/Bmori1_mq.xml
index 70aac34646..8b35f856d2 100644
--- a/assets/xml/scenes/dungeons/Bmori1_mq.xml
+++ b/assets/xml/scenes/dungeons/Bmori1_mq.xml
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/assets/xml/scenes/dungeons/MIZUsin.xml b/assets/xml/scenes/dungeons/MIZUsin.xml
index 12a124cf09..8ebcd35476 100644
--- a/assets/xml/scenes/dungeons/MIZUsin.xml
+++ b/assets/xml/scenes/dungeons/MIZUsin.xml
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/assets/xml/scenes/dungeons/MIZUsin_mq.xml b/assets/xml/scenes/dungeons/MIZUsin_mq.xml
index cbbe48287e..6ff9ea461c 100644
--- a/assets/xml/scenes/dungeons/MIZUsin_mq.xml
+++ b/assets/xml/scenes/dungeons/MIZUsin_mq.xml
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/assets/xml/scenes/dungeons/ddan.xml b/assets/xml/scenes/dungeons/ddan.xml
index 295f651739..9a7a29995f 100644
--- a/assets/xml/scenes/dungeons/ddan.xml
+++ b/assets/xml/scenes/dungeons/ddan.xml
@@ -1,18 +1,18 @@
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/scenes/dungeons/ddan_boss.xml b/assets/xml/scenes/dungeons/ddan_boss.xml
index 86a34e6d9a..5e8d324d9a 100644
--- a/assets/xml/scenes/dungeons/ddan_boss.xml
+++ b/assets/xml/scenes/dungeons/ddan_boss.xml
@@ -6,7 +6,7 @@
-
+
diff --git a/assets/xml/scenes/dungeons/ddan_boss_v2.xml b/assets/xml/scenes/dungeons/ddan_boss_v2.xml
index 2b61024906..0e93072588 100644
--- a/assets/xml/scenes/dungeons/ddan_boss_v2.xml
+++ b/assets/xml/scenes/dungeons/ddan_boss_v2.xml
@@ -6,7 +6,7 @@
-
+
diff --git a/assets/xml/scenes/dungeons/ddan_mq.xml b/assets/xml/scenes/dungeons/ddan_mq.xml
index 295f651739..9a7a29995f 100644
--- a/assets/xml/scenes/dungeons/ddan_mq.xml
+++ b/assets/xml/scenes/dungeons/ddan_mq.xml
@@ -1,18 +1,18 @@
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/scenes/dungeons/gerudoway.xml b/assets/xml/scenes/dungeons/gerudoway.xml
index d6abe7ed05..c42df3370b 100644
--- a/assets/xml/scenes/dungeons/gerudoway.xml
+++ b/assets/xml/scenes/dungeons/gerudoway.xml
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/assets/xml/scenes/dungeons/ice_doukutu.xml b/assets/xml/scenes/dungeons/ice_doukutu.xml
index f816d7ca24..3a1f53b168 100644
--- a/assets/xml/scenes/dungeons/ice_doukutu.xml
+++ b/assets/xml/scenes/dungeons/ice_doukutu.xml
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/assets/xml/scenes/dungeons/ice_doukutu_mq.xml b/assets/xml/scenes/dungeons/ice_doukutu_mq.xml
index a6e6b415df..ed80898b83 100644
--- a/assets/xml/scenes/dungeons/ice_doukutu_mq.xml
+++ b/assets/xml/scenes/dungeons/ice_doukutu_mq.xml
@@ -2,8 +2,8 @@
-
-
+
+
diff --git a/assets/xml/scenes/dungeons/ice_doukutu_pal_n64.xml b/assets/xml/scenes/dungeons/ice_doukutu_pal_n64.xml
index 9f08f559ed..e811e8b709 100644
--- a/assets/xml/scenes/dungeons/ice_doukutu_pal_n64.xml
+++ b/assets/xml/scenes/dungeons/ice_doukutu_pal_n64.xml
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/assets/xml/scenes/dungeons/ice_doukutu_v2.xml b/assets/xml/scenes/dungeons/ice_doukutu_v2.xml
index 4d25aa74f4..1ad4512abc 100644
--- a/assets/xml/scenes/dungeons/ice_doukutu_v2.xml
+++ b/assets/xml/scenes/dungeons/ice_doukutu_v2.xml
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/assets/xml/scenes/dungeons/jyasinzou.xml b/assets/xml/scenes/dungeons/jyasinzou.xml
index 1a44e14d72..c51b943e88 100644
--- a/assets/xml/scenes/dungeons/jyasinzou.xml
+++ b/assets/xml/scenes/dungeons/jyasinzou.xml
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/assets/xml/scenes/dungeons/jyasinzou_mq.xml b/assets/xml/scenes/dungeons/jyasinzou_mq.xml
index 6a99888abb..b95dce6bbd 100644
--- a/assets/xml/scenes/dungeons/jyasinzou_mq.xml
+++ b/assets/xml/scenes/dungeons/jyasinzou_mq.xml
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/assets/xml/scenes/dungeons/men.xml b/assets/xml/scenes/dungeons/men.xml
index dc495b0c97..a99eb0ad84 100644
--- a/assets/xml/scenes/dungeons/men.xml
+++ b/assets/xml/scenes/dungeons/men.xml
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/assets/xml/scenes/dungeons/men_mq.xml b/assets/xml/scenes/dungeons/men_mq.xml
index e87b44d8ea..a7426775f9 100644
--- a/assets/xml/scenes/dungeons/men_mq.xml
+++ b/assets/xml/scenes/dungeons/men_mq.xml
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/assets/xml/scenes/indoors/miharigoya.xml b/assets/xml/scenes/indoors/miharigoya.xml
index 41ff2db9f9..5586c44953 100644
--- a/assets/xml/scenes/indoors/miharigoya.xml
+++ b/assets/xml/scenes/indoors/miharigoya.xml
@@ -1,9 +1,9 @@
-
-
-
-
+
+
+
+
diff --git a/assets/xml/scenes/indoors/souko.xml b/assets/xml/scenes/indoors/souko.xml
index bc6336b360..0eca29e8e2 100644
--- a/assets/xml/scenes/indoors/souko.xml
+++ b/assets/xml/scenes/indoors/souko.xml
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/assets/xml/scenes/overworld/spot01.xml b/assets/xml/scenes/overworld/spot01.xml
index 0074733cc4..2634dd5927 100644
--- a/assets/xml/scenes/overworld/spot01.xml
+++ b/assets/xml/scenes/overworld/spot01.xml
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/assets/xml/scenes/overworld/spot01_pal_n64.xml b/assets/xml/scenes/overworld/spot01_pal_n64.xml
index 8b2651c1ff..3b92309aea 100644
--- a/assets/xml/scenes/overworld/spot01_pal_n64.xml
+++ b/assets/xml/scenes/overworld/spot01_pal_n64.xml
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/assets/xml/scenes/overworld/spot07.xml b/assets/xml/scenes/overworld/spot07.xml
index 857cab9f01..770b598e03 100644
--- a/assets/xml/scenes/overworld/spot07.xml
+++ b/assets/xml/scenes/overworld/spot07.xml
@@ -3,8 +3,8 @@
-
-
+
+
diff --git a/assets/xml/scenes/overworld/spot07_pal_n64.xml b/assets/xml/scenes/overworld/spot07_pal_n64.xml
index f856e54438..fcb4c8c7b9 100644
--- a/assets/xml/scenes/overworld/spot07_pal_n64.xml
+++ b/assets/xml/scenes/overworld/spot07_pal_n64.xml
@@ -3,8 +3,8 @@
-
-
+
+
diff --git a/assets/xml/scenes/overworld/spot18.xml b/assets/xml/scenes/overworld/spot18.xml
index affece84b7..ab3a88ccef 100644
--- a/assets/xml/scenes/overworld/spot18.xml
+++ b/assets/xml/scenes/overworld/spot18.xml
@@ -9,8 +9,8 @@
-
-
+
+
diff --git a/assets/xml/scenes/overworld/spot18_pal_n64.xml b/assets/xml/scenes/overworld/spot18_pal_n64.xml
index 809e099cfc..afa4915ffb 100644
--- a/assets/xml/scenes/overworld/spot18_pal_n64.xml
+++ b/assets/xml/scenes/overworld/spot18_pal_n64.xml
@@ -9,8 +9,8 @@
-
-
+
+
diff --git a/assets/xml/scenes/overworld/spot20.xml b/assets/xml/scenes/overworld/spot20.xml
index d3dd77a41e..af77f5b898 100644
--- a/assets/xml/scenes/overworld/spot20.xml
+++ b/assets/xml/scenes/overworld/spot20.xml
@@ -12,8 +12,8 @@
-
-
+
+
diff --git a/assets/xml/scenes/overworld/spot20_pal.xml b/assets/xml/scenes/overworld/spot20_pal.xml
index 297b1c316e..d698fba77e 100644
--- a/assets/xml/scenes/overworld/spot20_pal.xml
+++ b/assets/xml/scenes/overworld/spot20_pal.xml
@@ -12,8 +12,8 @@
-
-
+
+
diff --git a/assets/xml/scenes/shops/shop1.xml b/assets/xml/scenes/shops/shop1.xml
index 525a06d633..f14ed9a76b 100644
--- a/assets/xml/scenes/shops/shop1.xml
+++ b/assets/xml/scenes/shops/shop1.xml
@@ -4,5 +4,13 @@
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/backgrounds.xml b/assets/xml/textures/backgrounds.xml
index c60ff57a8a..1fb4f8828f 100644
--- a/assets/xml/textures/backgrounds.xml
+++ b/assets/xml/textures/backgrounds.xml
@@ -1,246 +1,246 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
diff --git a/assets/xml/textures/do_action_static.xml b/assets/xml/textures/do_action_static.xml
index f628496c12..c448dbfdf1 100644
--- a/assets/xml/textures/do_action_static.xml
+++ b/assets/xml/textures/do_action_static.xml
@@ -1,65 +1,65 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/do_action_static_pal.xml b/assets/xml/textures/do_action_static_pal.xml
index a821e7b2a7..7de3b55b53 100644
--- a/assets/xml/textures/do_action_static_pal.xml
+++ b/assets/xml/textures/do_action_static_pal.xml
@@ -1,96 +1,96 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/icon_item_24_static.xml b/assets/xml/textures/icon_item_24_static.xml
index 395da30bb7..d4b33dbe59 100644
--- a/assets/xml/textures/icon_item_24_static.xml
+++ b/assets/xml/textures/icon_item_24_static.xml
@@ -1,24 +1,24 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/icon_item_dungeon_static.xml b/assets/xml/textures/icon_item_dungeon_static.xml
index 873c490fc5..e832d35298 100644
--- a/assets/xml/textures/icon_item_dungeon_static.xml
+++ b/assets/xml/textures/icon_item_dungeon_static.xml
@@ -1,23 +1,23 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/icon_item_field_static.xml b/assets/xml/textures/icon_item_field_static.xml
index 1ee2483501..252721f31e 100644
--- a/assets/xml/textures/icon_item_field_static.xml
+++ b/assets/xml/textures/icon_item_field_static.xml
@@ -1,32 +1,32 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/icon_item_fra_static.xml b/assets/xml/textures/icon_item_fra_static.xml
index 2c8ccad5bf..3630ea9703 100644
--- a/assets/xml/textures/icon_item_fra_static.xml
+++ b/assets/xml/textures/icon_item_fra_static.xml
@@ -1,37 +1,37 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/icon_item_gameover_static.xml b/assets/xml/textures/icon_item_gameover_static.xml
index ffd3928680..d5d893e6b6 100644
--- a/assets/xml/textures/icon_item_gameover_static.xml
+++ b/assets/xml/textures/icon_item_gameover_static.xml
@@ -1,10 +1,10 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/assets/xml/textures/icon_item_gameover_static_pal.xml b/assets/xml/textures/icon_item_gameover_static_pal.xml
index fc2a506422..cb80b1ac25 100644
--- a/assets/xml/textures/icon_item_gameover_static_pal.xml
+++ b/assets/xml/textures/icon_item_gameover_static_pal.xml
@@ -1,11 +1,11 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/icon_item_ger_static.xml b/assets/xml/textures/icon_item_ger_static.xml
index ea71dda35e..6aa1b34143 100644
--- a/assets/xml/textures/icon_item_ger_static.xml
+++ b/assets/xml/textures/icon_item_ger_static.xml
@@ -1,36 +1,36 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/icon_item_jpn_static.xml b/assets/xml/textures/icon_item_jpn_static.xml
index f2fe854b8e..1358212ce8 100644
--- a/assets/xml/textures/icon_item_jpn_static.xml
+++ b/assets/xml/textures/icon_item_jpn_static.xml
@@ -1,35 +1,35 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/icon_item_nes_static.xml b/assets/xml/textures/icon_item_nes_static.xml
index 6cd92acfca..fb95c69045 100644
--- a/assets/xml/textures/icon_item_nes_static.xml
+++ b/assets/xml/textures/icon_item_nes_static.xml
@@ -1,35 +1,35 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/icon_item_static.xml b/assets/xml/textures/icon_item_static.xml
index ca772fddda..2d67bfa108 100644
--- a/assets/xml/textures/icon_item_static.xml
+++ b/assets/xml/textures/icon_item_static.xml
@@ -1,181 +1,181 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/icon_item_static_pal.xml b/assets/xml/textures/icon_item_static_pal.xml
index 474a13f249..161d4039a0 100644
--- a/assets/xml/textures/icon_item_static_pal.xml
+++ b/assets/xml/textures/icon_item_static_pal.xml
@@ -1,183 +1,183 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/item_name_static.xml b/assets/xml/textures/item_name_static.xml
index 0e2d769474..eff98015ec 100644
--- a/assets/xml/textures/item_name_static.xml
+++ b/assets/xml/textures/item_name_static.xml
@@ -1,251 +1,251 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/item_name_static_pal.xml b/assets/xml/textures/item_name_static_pal.xml
index 321c890a94..a990c2620d 100644
--- a/assets/xml/textures/item_name_static_pal.xml
+++ b/assets/xml/textures/item_name_static_pal.xml
@@ -1,375 +1,375 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/kanji.xml b/assets/xml/textures/kanji.xml
index 25987b86de..87dc2bf96c 100644
--- a/assets/xml/textures/kanji.xml
+++ b/assets/xml/textures/kanji.xml
@@ -1,3984 +1,3984 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/map_48x85_static.xml b/assets/xml/textures/map_48x85_static.xml
index b8795bd07d..d70f247356 100644
--- a/assets/xml/textures/map_48x85_static.xml
+++ b/assets/xml/textures/map_48x85_static.xml
@@ -2,73 +2,73 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/map_grand_static.xml b/assets/xml/textures/map_grand_static.xml
index 201955bfc3..306fc76d83 100644
--- a/assets/xml/textures/map_grand_static.xml
+++ b/assets/xml/textures/map_grand_static.xml
@@ -1,28 +1,28 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/map_i_static.xml b/assets/xml/textures/map_i_static.xml
index 1721f6d848..64eed0b2a9 100644
--- a/assets/xml/textures/map_i_static.xml
+++ b/assets/xml/textures/map_i_static.xml
@@ -1,243 +1,243 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/map_name_static.xml b/assets/xml/textures/map_name_static.xml
index dd705eab60..c35abf0b1d 100644
--- a/assets/xml/textures/map_name_static.xml
+++ b/assets/xml/textures/map_name_static.xml
@@ -3,78 +3,78 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/map_name_static_pal.xml b/assets/xml/textures/map_name_static_pal.xml
index 780609b18c..f62a4d7981 100644
--- a/assets/xml/textures/map_name_static_pal.xml
+++ b/assets/xml/textures/map_name_static_pal.xml
@@ -3,114 +3,114 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/message_static.xml b/assets/xml/textures/message_static.xml
index afdde60def..e63d65a2a6 100644
--- a/assets/xml/textures/message_static.xml
+++ b/assets/xml/textures/message_static.xml
@@ -1,11 +1,11 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/message_texture_static.xml b/assets/xml/textures/message_texture_static.xml
index bbf7e1259e..34cfb07ed3 100644
--- a/assets/xml/textures/message_texture_static.xml
+++ b/assets/xml/textures/message_texture_static.xml
@@ -1,6 +1,6 @@
-
-
+
+
diff --git a/assets/xml/textures/nes_font_static.xml b/assets/xml/textures/nes_font_static.xml
index f1b80ee045..9561fb1036 100644
--- a/assets/xml/textures/nes_font_static.xml
+++ b/assets/xml/textures/nes_font_static.xml
@@ -1,144 +1,144 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/nes_font_static_ique_cn.xml b/assets/xml/textures/nes_font_static_ique_cn.xml
index 484707b05d..1e2dc97184 100644
--- a/assets/xml/textures/nes_font_static_ique_cn.xml
+++ b/assets/xml/textures/nes_font_static_ique_cn.xml
@@ -2,1918 +2,1918 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/nes_font_static_v2.xml b/assets/xml/textures/nes_font_static_v2.xml
index b01646cb54..9e037d45bc 100644
--- a/assets/xml/textures/nes_font_static_v2.xml
+++ b/assets/xml/textures/nes_font_static_v2.xml
@@ -1,145 +1,145 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/nintendo_rogo_static.xml b/assets/xml/textures/nintendo_rogo_static.xml
index 295bbfcfa2..229ccf2eb5 100644
--- a/assets/xml/textures/nintendo_rogo_static.xml
+++ b/assets/xml/textures/nintendo_rogo_static.xml
@@ -1,8 +1,10 @@
-
-
-
-
+
+
+
+
+
+
diff --git a/assets/xml/textures/nintendo_rogo_static_v2.xml b/assets/xml/textures/nintendo_rogo_static_v2.xml
index 7a60524b20..f4df8cff3c 100644
--- a/assets/xml/textures/nintendo_rogo_static_v2.xml
+++ b/assets/xml/textures/nintendo_rogo_static_v2.xml
@@ -1,8 +1,10 @@
-
-
-
-
+
+
+
+
+
+
diff --git a/assets/xml/textures/parameter_static.xml b/assets/xml/textures/parameter_static.xml
index 41f110180a..7d25201cfb 100644
--- a/assets/xml/textures/parameter_static.xml
+++ b/assets/xml/textures/parameter_static.xml
@@ -1,60 +1,60 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/parameter_static_ique.xml b/assets/xml/textures/parameter_static_ique.xml
index 98449e6746..0eb9409da0 100644
--- a/assets/xml/textures/parameter_static_ique.xml
+++ b/assets/xml/textures/parameter_static_ique.xml
@@ -1,60 +1,60 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/place_title_cards.xml b/assets/xml/textures/place_title_cards.xml
index b9392f7bca..30851a3694 100644
--- a/assets/xml/textures/place_title_cards.xml
+++ b/assets/xml/textures/place_title_cards.xml
@@ -1,230 +1,230 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
diff --git a/assets/xml/textures/place_title_cards_pal.xml b/assets/xml/textures/place_title_cards_pal.xml
index 44bd6c8fb4..2d2a6170da 100644
--- a/assets/xml/textures/place_title_cards_pal.xml
+++ b/assets/xml/textures/place_title_cards_pal.xml
@@ -1,287 +1,287 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
diff --git a/assets/xml/textures/skyboxes.xml b/assets/xml/textures/skyboxes.xml
index 104ffb2a3f..69b5e5dad3 100644
--- a/assets/xml/textures/skyboxes.xml
+++ b/assets/xml/textures/skyboxes.xml
@@ -1,113 +1,113 @@
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
diff --git a/assets/xml/textures/title_static.xml b/assets/xml/textures/title_static.xml
index c0f3f2908d..e7d320d448 100644
--- a/assets/xml/textures/title_static.xml
+++ b/assets/xml/textures/title_static.xml
@@ -1,166 +1,166 @@
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
diff --git a/assets/xml/textures/title_static_pal_gc.xml b/assets/xml/textures/title_static_pal_gc.xml
index 5f26d7f8de..9460bcacb5 100644
--- a/assets/xml/textures/title_static_pal_gc.xml
+++ b/assets/xml/textures/title_static_pal_gc.xml
@@ -1,191 +1,191 @@
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
+
diff --git a/assets/xml/textures/title_static_pal_n64.xml b/assets/xml/textures/title_static_pal_n64.xml
index ad3bf9dbbe..48276ba5db 100644
--- a/assets/xml/textures/title_static_pal_n64.xml
+++ b/assets/xml/textures/title_static_pal_n64.xml
@@ -1,201 +1,201 @@
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
- 0x1d480
+
+ 0x1d480
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
-
+
-
+
diff --git a/docs/Documenting.md b/docs/Documenting.md
index 03a12ebbd4..72bb5e1fa9 100644
--- a/docs/Documenting.md
+++ b/docs/Documenting.md
@@ -2,44 +2,57 @@
# Documentation Style Guide
This project uses [Doxygen](https://www.doxygen.nl/index.html) to generate documentation pages from comments found in the source files. This guide focuses on writing compatible comments and ensuring consistency across the codebase.
-```diff
-- Note -
-As the codebase is constantly changing, only document what is complete, well-understood and not
-already covered by good naming. This is especially true for function parameters and return values.
-Also note that there is no obligation to completing the documentation steps for functions you
-work on if you do not want to at the time.
-```
+
+However to keep the documentation readable in text and favor consistency, the Doxygen commands that should be used are restricted to what this document mentions.
+
To generate a doxygen manual for the project, ensure you have doxygen installed and then cd into the project root directory and run `doxygen Doxyfile`.
-## Documenting Functions
-For functions, a description of the function's purpose should go above the function:
-```c
-/**
- * My description of this function
- */
-void foo(void);
-```
-Further considerations:
-- Any comments inside the function should follow the usual `//` or `/**/` comment styles.
-- For documenting return values, place a `@return` at the bottom of the function comment followed by the description of the return value. This should only be done if the name of the function is not self-explanatory and is well-understood.
-- For documenting parameters, place a `@param` between the comment and the @return (if applicable) followed by the name of the parameter and a brief description. This should only be done if the name of the parameter is not self-explanatory and is well-understood.
-- All `@param`s should come before `@return` and be in the same order the parameters appear in the function declaration. Note that this does not mean you should add empty `@params` for parameters deemed self-explanatory.
+The documentation can then be browsed by opening `docs/doxygen/html/index.html` in a web browser.
+
+## Documenting Functions
+
+Any comments inside functions, except bugs ([see below](#documenting-bugs)), should use `//`-style comments, even if spanning over multiple lines.
+
+A simple example of documenting a function with just a description (note the leading `/**`):
-A full example would be as follows: (however in practice functions such as this would be considered self-explanatory)
```c
/**
- * This is an example
- *
- * @param bar the input
- * @return bar multiplied by 2
+ * Update the crawl sound timer, and play the crawling sound when it reaches 0.
*/
-s32 foo(s32 bar) {
- return 2*bar;
-}
+void EnInsect_UpdateCrawlSfx(EnInsect* this) {
```
+A more complete example:
+
+```c
+/**
+ * Request to either increase or consume magic.
+ *
+ * @param amount the positive-valued amount to either increase or decrease magic by
+ * @param type how the magic is increased or consumed.
+ *
+ * @return false if the request failed
+ */
+s32 Magic_RequestChange(PlayState* play, s16 amount, s16 type) {
+```
+
+Note:
+
+- Documentation for self-explanatory arguments (`@param`) and return values (`@return`) may be omitted.
+- `@param` commands should not have empty lines in between.
+- Different commands (main description, `@param`, `@return`, ...) should be separated by empty lines.
+
+Other directives that may be used for documenting functions:
+
+- `@see` to reference something else ([see below](#linking-related-information)).
+- `@note` to bring attention to some of the function behavior.
+
## Documenting Variables
-Documentation of variables should include what this variable is used for if the name is not completely clear and if applicable whether a set of defines or enumerations should be used alongside it (which should be linked with `@see`, see below)
+
+In case the name of a variable isn't completely clear, documentation can provide a description.
+
+If applicable, it may refer to a set of defines or enumerations that should be used with it (those should be linked with `@see`, [see below](#linking-related-information)).
+
```c
/**
* My description of this variable
@@ -48,53 +61,59 @@ s32 foo;
```
## Documenting Files
-File documentation should go near the top of the file, below includes. It should only feature information that is general to the file.
+
+File documentation should be located at the top of the file, above `#include`s.
+
+File documentation should only feature information that is general to the file or the system it implements.
+
```c
/**
- * @file file_name.c
+ * @file z_fcurve_data_skelanime.c
+ * @brief Curve skeleton animation system
*
- * My description of this file
+ * A curve skeleton has a fixed number of limbs, ...
+...
*/
```
## Other
### Documenting Bugs:
-Bugs should be documented on the line above where the bug begins.
-```c
-//! @bug description
-```
-### Linking related information:
-`@see` should be used to provide links to related information where appropriate, for example:
-```c
-/**
- * Save File Data
- * @see SaveContext
- */
-SaveContext gSaveContext;
-```
-In the case of functions, `@see` should come before the first `@param`.
-### HTML
-You can include html tags in your doc comments, however it is strongly advised against doing this if it greatly reduces readability of the code comments.
-```c
-/**
- * My
- * Newline
- * Doc Comment
- */
-```
-### LaTeX
-You can embed [LaTeX](https://wikipedia.org/wiki/LaTeX) in your doc comments if useful to do so.
-For inline rendering:
+Bugs should be documented on the line above where the bug begins.
+
+```c
+//! @bug Missing early return
+```
+
+Bug described on multiple lines should still use the `//!` syntax, over multiple lines. For example:
+
+```c
+//! @bug this code was clearly meaning to print `abs(camera->camDataIdx)` as a
+//! one-or-two-digit number, instead of `i`.
+```
+
+### Linking related information:
+
+`@see` should be used to provide links to related information where appropriate, for example:
+
```c
/**
- * \f$ \textrm{Your LaTeX Here} \f$
- */
-```
-For centered rendering on a separate line:
-```c
-/**
- * \f[ \textrm{Your LaTeX Here} \f]
+ * Sets the next framebuffer to the framebuffer associated to `task`.
+ * If there is no current buffer or it is time to swap, this buffer will be swapped to
+ * immediately, otherwise it will be swapped to later in Sched_HandleRetrace.
+ *
+ * @see Sched_HandleRetrace
*/
+void Sched_SetNextFramebufferFromTask(Scheduler* sc, OSScTask* task) {
```
+
+In the case of functions, `@see` should come before the first `@param`.
+
+`@see` may also be used for documenting files or variables.
+
+### HTML and LaTeX
+
+It is possible to include HTML and LaTeX in documentation comments.
+
+However it is prefered not to do so, so that the raw text stays readable when looked at as plain text, for example when browsing the source code.
diff --git a/include/camera.h b/include/camera.h
index 9d4783de06..ec33d47807 100644
--- a/include/camera.h
+++ b/include/camera.h
@@ -119,6 +119,12 @@ struct View;
#define CAM_VIEW_FOV (1 << 5) // camera->fov
#define CAM_VIEW_ROLL (1 << 6) // camera->roll
+#define CAM_DATA_SET_0 (1 << 0)
+#define CAM_DATA_SET_1 (1 << 1)
+#define CAM_DATA_SET_2 (1 << 2)
+#define CAM_DATA_SET_3 (1 << 3)
+#define CAM_DATA_SET_4 (1 << 4)
+
// All scenes using `SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT` or `SCENE_CAM_TYPE_FIXED_TOGGLE_VIEWPOINT` are expected
// to have their first two bgCamInfo entries be the following:
#define BGCAM_INDEX_TOGGLE_LOCKED 0
@@ -851,6 +857,22 @@ typedef struct KeepOn4ReadOnlyData {
/* 0x1E */ s16 unk_1E;
} KeepOn4ReadOnlyData; // size = 0x20
+typedef enum CameraItemType {
+ /* 1 */ CAM_ITEM_TYPE_1 = 1,
+ /* 2 */ CAM_ITEM_TYPE_2,
+ /* 3 */ CAM_ITEM_TYPE_3,
+ /* 4 */ CAM_ITEM_TYPE_4,
+ /* 5 */ CAM_ITEM_TYPE_5,
+ /* 8 */ CAM_ITEM_TYPE_8 = 8,
+ /* 9 */ CAM_ITEM_TYPE_9,
+ /* 10 */ CAM_ITEM_TYPE_10,
+ /* 11 */ CAM_ITEM_TYPE_11,
+ /* 12 */ CAM_ITEM_TYPE_12,
+ /* 81 */ CAM_ITEM_TYPE_81 = 81,
+ /* 90 */ CAM_ITEM_TYPE_90 = 90,
+ /* 91 */ CAM_ITEM_TYPE_91
+} CameraItemType;
+
typedef struct KeepOn4ReadWriteData {
/* 0x00 */ f32 unk_00;
/* 0x04 */ f32 unk_04;
@@ -1648,8 +1670,7 @@ s32 Camera_ChangeDoorCam(Camera* camera, struct Actor* doorActor, s16 bgCamIndex
s16 timer3);
s32 Camera_Copy(Camera* dstCamera, Camera* srcCamera);
Vec3f Camera_GetQuakeOffset(Camera* camera);
-void Camera_SetCameraData(Camera* camera, s16 setDataFlags, void* data0, void* data1, s16 data2, s16 data3,
- UNK_TYPE arg6);
+void Camera_SetCameraData(Camera* camera, s16 setDataFlags, void* data0, void* data1, s16 data2, s16 data3, s32 data4);
s32 func_8005B198(void);
s16 Camera_SetFinishedFlag(Camera* camera);
diff --git a/include/interface.h b/include/interface.h
index 84834b3df6..5b300068bd 100644
--- a/include/interface.h
+++ b/include/interface.h
@@ -68,11 +68,6 @@ typedef enum DoAction {
/* 0x1D */ DO_ACTION_MAX
} DoAction;
-// TODO extract this information from the texture definitions themselves
-#define DO_ACTION_TEX_WIDTH 48
-#define DO_ACTION_TEX_HEIGHT 16
-#define DO_ACTION_TEX_SIZE ((DO_ACTION_TEX_WIDTH * DO_ACTION_TEX_HEIGHT) / 2) // (sizeof(gCheckDoActionENGTex))
-
typedef struct InterfaceContext {
/* 0x0000 */ View view;
/* 0x0128 */ Vtx* actionVtx;
diff --git a/include/player.h b/include/player.h
index 74a129a254..10fcd490b7 100644
--- a/include/player.h
+++ b/include/player.h
@@ -694,10 +694,13 @@ typedef struct PlayerAgeProperties {
/* 0xCC */ LinkAnimationHeader* unk_CC[2];
} PlayerAgeProperties; // size = 0xD4
+#define MELEE_WEAPON_INFO_TIP(weaponInfo) (&(weaponInfo)->posA)
+#define MELEE_WEAPON_INFO_BASE(weaponInfo) (&(weaponInfo)->posB)
+
typedef struct WeaponInfo {
/* 0x00 */ s32 active;
- /* 0x04 */ Vec3f tip;
- /* 0x10 */ Vec3f base;
+ /* 0x04 */ Vec3f posA; // For melee weapons, this is the tip (furthest from the player hand)
+ /* 0x10 */ Vec3f posB; // For melee weapons, this is the base (near the player hand)
} WeaponInfo; // size = 0x1C
#define LEDGE_DIST_MAX 399.96002f
@@ -1033,7 +1036,7 @@ s32 Player_OverrideLimbDrawGameplayFirstPerson(struct PlayState* play, s32 limbI
Vec3s* rot, void* thisx);
s32 Player_OverrideLimbDrawGameplayCrawling(struct PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
void* thisx);
-u8 func_80090480(struct PlayState* play, ColliderQuad* collider, WeaponInfo* weaponInfo, Vec3f* newTip, Vec3f* newBase);
+u8 Player_UpdateWeaponInfo(struct PlayState* play, ColliderQuad* collider, WeaponInfo* weaponInfo, Vec3f* newPosA, Vec3f* newPosB);
void Player_DrawGetItem(struct PlayState* play, Player* this);
void Player_PostLimbDrawGameplay(struct PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx);
u32 Player_InitPauseDrawData(struct PlayState* play, u8* segment, SkelAnime* skelAnime);
diff --git a/include/save.h b/include/save.h
index 20ee2b9766..bb74eabe48 100644
--- a/include/save.h
+++ b/include/save.h
@@ -824,9 +824,9 @@ typedef enum LinkAge {
#define INFTABLE_TALKED_TO_MALON_FIRST_TIME 0x84
#define INFTABLE_TOLD_EPONA_IS_SCARED 0x85
#define INFTABLE_MALON_SPAWNED_AT_HYRULE_CASTLE 0x8B
-#define INFTABLE_8C 0x8C
-#define INFTABLE_8D 0x8D
-#define INFTABLE_8E 0x8E
+#define INFTABLE_TALKED_TO_ADULT_MALON_AFTER_SONG 0x8C
+#define INFTABLE_8D 0x8D // unreachable flag in EnMa2
+#define INFTABLE_PLAYED_SONG_FOR_ADULT_MALON 0x8E
#define INFTABLE_94 0x94
#define INFTABLE_97 0x97
#define INFTABLE_9A 0x9A
diff --git a/spec/spec b/spec/spec
index 60437c4bf9..ea8bd6058b 100644
--- a/spec/spec
+++ b/spec/spec
@@ -2859,7 +2859,15 @@ beginseg
name "object_zo"
compress
romalign 0x1000
- include "$(BUILD_DIR)/assets/objects/object_zo/object_zo.o"
+ include "$(BUILD_DIR)/assets/objects/object_zo/gZoraHandsOnHipsTappingFootAnim.o"
+ include "$(BUILD_DIR)/assets/objects/object_zo/gZoraOpenArmsAnim.o"
+ include "$(BUILD_DIR)/assets/objects/object_zo/gZoraThrowRupeesAnim.o"
+ include "$(BUILD_DIR)/assets/objects/object_zo/effect_bubbles.o"
+ include "$(BUILD_DIR)/assets/objects/object_zo/effect_splashes.o"
+ include "$(BUILD_DIR)/assets/objects/object_zo/gZoraSurfaceAnim.o"
+ include "$(BUILD_DIR)/assets/objects/object_zo/gZoraIdleAnim.o"
+ include "$(BUILD_DIR)/assets/objects/object_zo/gZoraSkel.o"
+ include "$(BUILD_DIR)/assets/objects/object_zo/effect_ripples.o"
number 6
endseg
@@ -3875,7 +3883,15 @@ beginseg
name "object_ganon_anime3"
compress
romalign 0x1000
- include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/object_ganon_anime3.o"
+ include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanondorfShowTriforceStartAnim.o"
+ include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanondorfBurstOutAnim.o"
+ include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanondorfTransformEndAnim.o"
+ include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanondorfFloatingHeavyBreathingAnim.o"
+ include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanondorfTransformStartAnim.o"
+ include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanondorfTransformLoopAnim.o"
+ include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanondorfShowTriforceLoopAnim.o"
+ include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanonUncurlAndFlailAnim.o"
+ include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanonRoarAnim.o"
number 6
endseg
diff --git a/src/boot/z_std_dma.c b/src/boot/z_std_dma.c
index 6ab0c87f3c..226465a3f6 100644
--- a/src/boot/z_std_dma.c
+++ b/src/boot/z_std_dma.c
@@ -519,7 +519,7 @@ void DmaMgr_ThreadEntry(void* arg) {
}
if (0) {
- PRINTF(T("DMA登録受付", "DMA registration acceptance") " dmap=%08x\n", req);
+ PRINTF(T("DMA登録受付 dmap=%08x\n", "DMA registration acceptance dmap=%08x\n"), req);
}
// Process the DMA request
diff --git a/src/code/game.c b/src/code/game.c
index 1f4ff8cdbf..1636633f97 100644
--- a/src/code/game.c
+++ b/src/code/game.c
@@ -32,7 +32,7 @@
#include "play_state.h"
#include "vis.h"
-#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128"
+#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0"
SpeedMeter D_801664D0;
VisCvg sVisCvg;
diff --git a/src/code/z_actor.c b/src/code/z_actor.c
index 5a0fe9b1c3..dfec9188f9 100644
--- a/src/code/z_actor.c
+++ b/src/code/z_actor.c
@@ -3854,7 +3854,7 @@ Actor* Actor_GetProjectileActor(PlayState* play, Actor* refActor, f32 radius) {
actor = actor->next;
} else {
//! @bug The projectile actor gets unsafely casted to a hookshot to check its timer, even though
- // it can also be an arrow.
+ //! it can also be an arrow.
// Luckily, the field at the same offset in the arrow actor is the x component of a vector
// which will rarely ever be 0. So it's very unlikely for this bug to cause an issue.
if ((Math_Vec3f_DistXYZ(&refActor->world.pos, &actor->world.pos) > radius) ||
diff --git a/src/code/z_camera.c b/src/code/z_camera.c
index 36c3f0b15f..71f6a0b82e 100644
--- a/src/code/z_camera.c
+++ b/src/code/z_camera.c
@@ -27,7 +27,7 @@
#include "overlays/actors/ovl_En_Horse/z_en_horse.h"
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
- "ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
+ "ique-cn:64 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
s16 Camera_RequestSettingImpl(Camera* camera, s16 requestedSetting, s16 flags);
s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange);
@@ -3661,7 +3661,7 @@ s32 Camera_KeepOn3(Camera* camera) {
}
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
- "ique-cn:128 ntsc-1.0:82 ntsc-1.1:82 ntsc-1.2:82 pal-1.0:82 pal-1.1:82"
+ "ique-cn:128 ntsc-1.0:79 ntsc-1.1:79 ntsc-1.2:79 pal-1.0:79 pal-1.1:79"
s32 Camera_KeepOn4(Camera* camera) {
static Vec3f D_8015BD50;
@@ -3677,7 +3677,7 @@ s32 Camera_KeepOn4(Camera* camera) {
VecGeo spB8;
UNUSED VecGeo spB0;
VecGeo spA8;
- s16* temp_s0 = &camera->data2;
+ s16* itemType = &camera->data2;
s16 spA2;
s16 spA0;
s16 sp9E;
@@ -3698,12 +3698,12 @@ s32 Camera_KeepOn4(Camera* camera) {
camera->play->view.unk_124 = camera->camId | 0x50;
return 1;
}
- rwData->unk_14 = *temp_s0;
+ rwData->unk_14 = *itemType;
camera->stateFlags &= ~CAM_STATE_LOCK_MODE;
}
- if (rwData->unk_14 != *temp_s0) {
- PRINTF(VT_COL(YELLOW, BLACK) "camera: item: item type changed %d -> %d\n" VT_RST, rwData->unk_14, *temp_s0);
+ if (rwData->unk_14 != *itemType) {
+ PRINTF(VT_COL(YELLOW, BLACK) "camera: item: item type changed %d -> %d\n" VT_RST, rwData->unk_14, *itemType);
camera->animState = 20;
camera->stateFlags |= CAM_STATE_LOCK_MODE;
camera->stateFlags &= ~(CAM_STATE_CHECK_WATER | CAM_STATE_CHECK_BG);
@@ -3726,33 +3726,33 @@ s32 Camera_KeepOn4(Camera* camera) {
roData->interfaceField = GET_NEXT_RO_DATA(values);
roData->unk_14 = GET_NEXT_SCALED_RO_DATA(values);
roData->unk_1E = GET_NEXT_RO_DATA(values);
- PRINTF("camera: item: type %d\n", *temp_s0);
- switch (*temp_s0) {
- case 1:
+ PRINTF("camera: item: type %d\n", *itemType);
+ switch (*itemType) {
+ case CAM_ITEM_TYPE_1:
roData->unk_00 = playerHeight * -0.6f * yNormal;
roData->unk_04 = playerHeight * 2.0f * yNormal;
roData->unk_08 = 10.0f;
break;
- case 2:
- case 3:
+ case CAM_ITEM_TYPE_2:
+ case CAM_ITEM_TYPE_3:
roData->unk_08 = -20.0f;
roData->unk_18 = 80.0f;
break;
- case 4:
+ case CAM_ITEM_TYPE_4:
roData->unk_00 = playerHeight * -0.2f * yNormal;
roData->unk_08 = 25.0f;
break;
- case 8:
+ case CAM_ITEM_TYPE_8:
roData->unk_00 = playerHeight * -0.2f * yNormal;
roData->unk_04 = playerHeight * 0.8f * yNormal;
roData->unk_08 = 50.0f;
roData->unk_18 = 70.0f;
break;
- case 9:
+ case CAM_ITEM_TYPE_9:
roData->unk_00 = playerHeight * 0.1f * yNormal;
roData->unk_04 = playerHeight * 0.5f * yNormal;
roData->unk_08 = -20.0f;
@@ -3761,7 +3761,7 @@ s32 Camera_KeepOn4(Camera* camera) {
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, KEEPON4_FLAG_6);
break;
- case 5:
+ case CAM_ITEM_TYPE_5:
roData->unk_00 = playerHeight * -0.4f * yNormal;
roData->unk_08 = -10.0f;
roData->unk_0C = 45.0f;
@@ -3769,7 +3769,7 @@ s32 Camera_KeepOn4(Camera* camera) {
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON4_FLAG_1);
break;
- case 10:
+ case CAM_ITEM_TYPE_10:
roData->unk_00 = playerHeight * -0.5f * yNormal;
roData->unk_04 = playerHeight * 1.5f * yNormal;
roData->unk_08 = -15.0f;
@@ -3780,7 +3780,7 @@ s32 Camera_KeepOn4(Camera* camera) {
roData->unk_1E = 0x3C;
break;
- case 12:
+ case CAM_ITEM_TYPE_12:
roData->unk_00 = playerHeight * -0.6f * yNormal;
roData->unk_04 = playerHeight * 1.6f * yNormal;
roData->unk_08 = -2.0f;
@@ -3792,14 +3792,14 @@ s32 Camera_KeepOn4(Camera* camera) {
roData->unk_18 = 50.0f;
break;
- case 0x5A:
+ case CAM_ITEM_TYPE_90:
roData->unk_00 = playerHeight * -0.3f * yNormal;
roData->unk_18 = 45.0f;
roData->interfaceField =
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1);
break;
- case 0x5B:
+ case CAM_ITEM_TYPE_91:
roData->unk_00 = playerHeight * -0.1f * yNormal;
roData->unk_04 = playerHeight * 1.5f * yNormal;
roData->unk_08 = -3.0f;
@@ -3809,7 +3809,7 @@ s32 Camera_KeepOn4(Camera* camera) {
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_3);
break;
- case 0x51:
+ case CAM_ITEM_TYPE_81:
roData->unk_00 = playerHeight * -0.3f * yNormal;
roData->unk_04 = playerHeight * 1.5f * yNormal;
roData->unk_08 = 2.0f;
@@ -3821,7 +3821,7 @@ s32 Camera_KeepOn4(Camera* camera) {
roData->unk_1E = 0x1E;
break;
- case 11:
+ case CAM_ITEM_TYPE_11:
roData->unk_00 = playerHeight * -0.19f * yNormal;
roData->unk_04 = playerHeight * 0.7f * yNormal;
roData->unk_0C = 130.0f;
@@ -7750,7 +7750,7 @@ void Camera_PrintSettings(Camera* camera) {
sp50[i++] = '-';
}
- //! @bug: this code was clearly meaning to print `abs(camera->bgCamIndex)` as a
+ //! @bug this code was clearly meaning to print `abs(camera->bgCamIndex)` as a
//! one-or-two-digit number, instead of `i`.
// "sp50[i++] = ..." matches here, but is undefined behavior due to conflicting
// reads/writes between sequence points, triggering warnings. Work around by
@@ -8624,7 +8624,7 @@ s32 Camera_RequestBgCam(Camera* camera, s32 requestedBgCamIndex) {
Camera_CopyDataToRegs(camera, camera->mode);
} else if (settingChangeSuccessful < -1) {
//! @bug: `settingChangeSuccessful` is a bool and is likely checking the wrong value. This can never pass.
- // The actual return of Camera_RequestSettingImpl or bgCamIndex would make more sense.
+ //! The actual return of Camera_RequestSettingImpl or bgCamIndex would make more sense.
PRINTF(VT_COL(RED, WHITE) "camera: error: illegal camera ID (%d) !! (%d|%d|%d)\n" VT_RST,
requestedBgCamIndex, camera->camId, BGCHECK_SCENE, requestedCamSetting);
}
@@ -8874,25 +8874,24 @@ Vec3f Camera_GetQuakeOffset(Camera* camera) {
return camera->quakeOffset;
}
-void Camera_SetCameraData(Camera* camera, s16 setDataFlags, void* data0, void* data1, s16 data2, s16 data3,
- UNK_TYPE arg6) {
- if (setDataFlags & 0x1) {
+void Camera_SetCameraData(Camera* camera, s16 setDataFlags, void* data0, void* data1, s16 data2, s16 data3, s32 data4) {
+ if (setDataFlags & CAM_DATA_SET_0) {
camera->data0 = data0;
}
- if (setDataFlags & 0x2) {
+ if (setDataFlags & CAM_DATA_SET_1) {
camera->data1 = data1;
}
- if (setDataFlags & 0x4) {
+ if (setDataFlags & CAM_DATA_SET_2) {
camera->data2 = data2;
}
- if (setDataFlags & 0x8) {
+ if (setDataFlags & CAM_DATA_SET_3) {
camera->data3 = data3;
}
- if (setDataFlags & 0x10) {
+ if (setDataFlags & CAM_DATA_SET_4) {
PRINTF(VT_COL(RED, WHITE) "camera: setCameraData: last argument not alive!\n" VT_RST);
}
}
diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c
index 158948a2eb..75e6ebef7d 100644
--- a/src/code/z_collision_check.c
+++ b/src/code/z_collision_check.c
@@ -17,7 +17,7 @@
#include "z_lib.h"
#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \
- "ique-cn:192 ntsc-1.0:168 ntsc-1.1:168 ntsc-1.2:168 pal-1.0:168 pal-1.1:168"
+ "ique-cn:192 ntsc-1.0:160 ntsc-1.1:160 ntsc-1.2:160 pal-1.0:160 pal-1.1:160"
typedef s32 (*ColChkResetFunc)(PlayState*, Collider*);
typedef void (*ColChkApplyFunc)(PlayState*, CollisionCheckContext*, Collider*);
diff --git a/src/code/z_construct.c b/src/code/z_construct.c
index fd34ce6733..0f737145e1 100644
--- a/src/code/z_construct.c
+++ b/src/code/z_construct.c
@@ -10,6 +10,8 @@
#include "play_state.h"
#include "save.h"
+#include "assets/textures/do_action_static/do_action_static.h"
+
void Interface_Destroy(PlayState* play) {
Map_Destroy(play);
}
diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c
index 084cbb8620..5da43b4c22 100644
--- a/src/code/z_kankyo.c
+++ b/src/code/z_kankyo.c
@@ -239,7 +239,7 @@ s16 sSunDepthTestX;
s16 sSunDepthTestY;
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
- "ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:192 pal-1.1:192"
+ "ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
LightNode* sNGameOverLightNode;
LightInfo sNGameOverLightInfo;
diff --git a/src/code/z_onepointdemo.c b/src/code/z_onepointdemo.c
index 12dc2d2568..12915e9a80 100644
--- a/src/code/z_onepointdemo.c
+++ b/src/code/z_onepointdemo.c
@@ -4293,7 +4293,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
subCam->timer = -99;
if (Play_CamIsNotFixed(play)) {
Play_InitCameraDataUsingPlayer(play, subCamId, player, CAM_SET_TURN_AROUND);
- subCam->data2 = 0xC;
+ subCam->data2 = CAM_ITEM_TYPE_12;
} else {
Play_CopyCamera(play, subCamId, CAM_ID_MAIN);
Play_RequestCameraSetting(play, subCamId, CAM_SET_FREE2);
diff --git a/src/code/z_play.c b/src/code/z_play.c
index a3d4fbe18c..323daceefc 100644
--- a/src/code/z_play.c
+++ b/src/code/z_play.c
@@ -224,6 +224,10 @@ void func_800BC88C(PlayState* this) {
this->transitionCtx.transitionType = -1;
}
+/**
+ * Set the environment fog, from parameters controlled by the environment system.
+ * If a custom fog state is used at any point in drawing, the environment fog is expected to be restored afterwards.
+ */
Gfx* Play_SetFog(PlayState* this, Gfx* gfx) {
return Gfx_SetFog2(gfx, this->lightCtx.fogColor[0], this->lightCtx.fogColor[1], this->lightCtx.fogColor[2], 0,
this->lightCtx.fogNear, 1000);
diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c
index 7358db96d5..d56eb84102 100644
--- a/src/code/z_player_lib.c
+++ b/src/code/z_player_lib.c
@@ -803,7 +803,7 @@ int Player_IsBurningStickInRange(PlayState* play, Vec3f* pos, f32 xzRange, f32 y
s32 pad;
if ((this->heldItemAction == PLAYER_IA_DEKU_STICK) && (this->unk_860 != 0)) {
- Math_Vec3f_Diff(&this->meleeWeaponInfo[0].tip, pos, &diff);
+ Math_Vec3f_Diff(MELEE_WEAPON_INFO_TIP(&this->meleeWeaponInfo[0]), pos, &diff);
return ((SQ(diff.x) + SQ(diff.z)) <= SQ(xzRange)) && (0.0f <= diff.y) && (diff.y <= yRange);
} else {
return false;
@@ -1444,30 +1444,42 @@ s32 Player_OverrideLimbDrawGameplayCrawling(PlayState* play, s32 limbIndex, Gfx*
return false;
}
-u8 func_80090480(PlayState* play, ColliderQuad* collider, WeaponInfo* weaponInfo, Vec3f* newTip, Vec3f* newBase) {
- if (weaponInfo->active == 0) {
+/**
+ * Handles colliders for player weapons, by creating a quad collider each frame between the weapon's previous position
+ * and its new position.
+ * This position is given as a pair, `newPosA` and `newPosB`, representing two ends of a line that can be thought of as
+ * the active part of the weapon. Note that this line is not necessarily following the weapon's shape: for example
+ * arrows use a line perpendicular to the shaft.
+ * @param collider The quad collider to use for the weapon.
+ * @param newPosA One end of the line. For melee weapons, this is the tip.
+ * @param newPosB One end of the line. For melee weapons, this is the base.
+ * @return true if the weapon is active at a new position.
+ */
+u8 Player_UpdateWeaponInfo(PlayState* play, ColliderQuad* collider, WeaponInfo* weaponInfo, Vec3f* newPosA,
+ Vec3f* newPosB) {
+ if (!weaponInfo->active) {
if (collider != NULL) {
Collider_ResetQuadAT(play, &collider->base);
}
- Math_Vec3f_Copy(&weaponInfo->tip, newTip);
- Math_Vec3f_Copy(&weaponInfo->base, newBase);
- weaponInfo->active = 1;
+ Math_Vec3f_Copy(&weaponInfo->posA, newPosA);
+ Math_Vec3f_Copy(&weaponInfo->posB, newPosB);
+ weaponInfo->active = true;
return true;
- } else if ((weaponInfo->tip.x == newTip->x) && (weaponInfo->tip.y == newTip->y) &&
- (weaponInfo->tip.z == newTip->z) && (weaponInfo->base.x == newBase->x) &&
- (weaponInfo->base.y == newBase->y) && (weaponInfo->base.z == newBase->z)) {
+ } else if ((weaponInfo->posA.x == newPosA->x) && (weaponInfo->posA.y == newPosA->y) &&
+ (weaponInfo->posA.z == newPosA->z) && (weaponInfo->posB.x == newPosB->x) &&
+ (weaponInfo->posB.y == newPosB->y) && (weaponInfo->posB.z == newPosB->z)) {
if (collider != NULL) {
Collider_ResetQuadAT(play, &collider->base);
}
return false;
} else {
if (collider != NULL) {
- Collider_SetQuadVertices(collider, newBase, newTip, &weaponInfo->base, &weaponInfo->tip);
+ Collider_SetQuadVertices(collider, newPosB, newPosA, &weaponInfo->posB, &weaponInfo->posA);
CollisionCheck_SetAT(play, &play->colChkCtx, &collider->base);
}
- Math_Vec3f_Copy(&weaponInfo->base, newBase);
- Math_Vec3f_Copy(&weaponInfo->tip, newTip);
- weaponInfo->active = 1;
+ Math_Vec3f_Copy(&weaponInfo->posB, newPosB);
+ Math_Vec3f_Copy(&weaponInfo->posA, newPosA);
+ weaponInfo->active = true;
return true;
}
}
@@ -1496,33 +1508,35 @@ void Player_UpdateShieldCollider(PlayState* play, Player* this, ColliderQuad* co
}
}
-Vec3f D_80126080 = { 5000.0f, 400.0f, 0.0f };
-Vec3f D_8012608C = { 5000.0f, -400.0f, 1000.0f };
-Vec3f D_80126098 = { 5000.0f, 1400.0f, -1000.0f };
+// Positions for the tip of melee weapons, in the left hand limb's own model space.
+Vec3f sMeleeWeaponTipOffsetFromLeftHand0 = { 5000.0f, 400.0f, 0.0f };
+Vec3f sMeleeWeaponTipOffsetFromLeftHand1 = { 5000.0f, -400.0f, 1000.0f };
+Vec3f sMeleeWeaponTipOffsetFromLeftHand2 = { 5000.0f, 1400.0f, -1000.0f };
-Vec3f D_801260A4[3] = {
- { 0.0f, 400.0f, 0.0f },
- { 0.0f, 1400.0f, -1000.0f },
- { 0.0f, -400.0f, 1000.0f },
-};
+// Positions for the base of melee weapons, in the left hand limb's own model space.
+Vec3f sMeleeWeaponBaseOffsetFromLeftHand0 = { 0.0f, 400.0f, 0.0f };
+Vec3f sMeleeWeaponBaseOffsetFromLeftHand1 = { 0.0f, 1400.0f, -1000.0f };
+Vec3f sMeleeWeaponBaseOffsetFromLeftHand2 = { 0.0f, -400.0f, 1000.0f };
-void func_800906D4(PlayState* play, Player* this, Vec3f* newTipPos) {
- Vec3f newBasePos[3];
+void Player_UpdateMeleeWeaponInfo(PlayState* play, Player* this, Vec3f* newTipPositions) {
+ Vec3f newBasePositions[3];
- Matrix_MultVec3f(&D_801260A4[0], &newBasePos[0]);
- Matrix_MultVec3f(&D_801260A4[1], &newBasePos[1]);
- Matrix_MultVec3f(&D_801260A4[2], &newBasePos[2]);
+ Matrix_MultVec3f(&sMeleeWeaponBaseOffsetFromLeftHand0, &newBasePositions[0]);
+ Matrix_MultVec3f(&sMeleeWeaponBaseOffsetFromLeftHand1, &newBasePositions[1]);
+ Matrix_MultVec3f(&sMeleeWeaponBaseOffsetFromLeftHand2, &newBasePositions[2]);
- if (func_80090480(play, NULL, &this->meleeWeaponInfo[0], &newTipPos[0], &newBasePos[0]) &&
+ if (Player_UpdateWeaponInfo(play, NULL, &this->meleeWeaponInfo[0], &newTipPositions[0], &newBasePositions[0]) &&
!(this->stateFlags1 & PLAYER_STATE1_SHIELDING)) {
- EffectBlure_AddVertex(Effect_GetByIndex(this->meleeWeaponEffectIndex), &this->meleeWeaponInfo[0].tip,
- &this->meleeWeaponInfo[0].base);
+ EffectBlure_AddVertex(Effect_GetByIndex(this->meleeWeaponEffectIndex), &this->meleeWeaponInfo[0].posA,
+ &this->meleeWeaponInfo[0].posB);
}
if ((this->meleeWeaponState > 0) &&
((this->meleeWeaponAnimation < PLAYER_MWA_SPIN_ATTACK_1H) || (this->stateFlags2 & PLAYER_STATE2_17))) {
- func_80090480(play, &this->meleeWeaponQuads[0], &this->meleeWeaponInfo[1], &newTipPos[1], &newBasePos[1]);
- func_80090480(play, &this->meleeWeaponQuads[1], &this->meleeWeaponInfo[2], &newTipPos[2], &newBasePos[2]);
+ Player_UpdateWeaponInfo(play, &this->meleeWeaponQuads[0], &this->meleeWeaponInfo[1], &newTipPositions[1],
+ &newBasePositions[1]);
+ Player_UpdateWeaponInfo(play, &this->meleeWeaponQuads[1], &this->meleeWeaponInfo[2], &newTipPositions[2],
+ &newBasePositions[2]);
}
}
@@ -1553,20 +1567,20 @@ void Player_DrawGetItem(PlayState* play, Player* this) {
}
}
-void func_80090A28(Player* this, Vec3f* vecs) {
- D_8012608C.x = D_80126080.x;
+void Player_CalcMeleeWeaponTipPositions(Player* this, Vec3f* tipPositions) {
+ sMeleeWeaponTipOffsetFromLeftHand1.x = sMeleeWeaponTipOffsetFromLeftHand0.x;
if (this->unk_845 >= 3) {
this->unk_845++;
- D_8012608C.x *= 1.0f + ((9 - this->unk_845) * 0.1f);
+ sMeleeWeaponTipOffsetFromLeftHand1.x *= 1.0f + ((9 - this->unk_845) * 0.1f);
}
- D_8012608C.x += 1200.0f;
- D_80126098.x = D_8012608C.x;
+ sMeleeWeaponTipOffsetFromLeftHand1.x += 1200.0f;
+ sMeleeWeaponTipOffsetFromLeftHand2.x = sMeleeWeaponTipOffsetFromLeftHand1.x;
- Matrix_MultVec3f(&D_80126080, &vecs[0]);
- Matrix_MultVec3f(&D_8012608C, &vecs[1]);
- Matrix_MultVec3f(&D_80126098, &vecs[2]);
+ Matrix_MultVec3f(&sMeleeWeaponTipOffsetFromLeftHand0, &tipPositions[0]);
+ Matrix_MultVec3f(&sMeleeWeaponTipOffsetFromLeftHand1, &tipPositions[1]);
+ Matrix_MultVec3f(&sMeleeWeaponTipOffsetFromLeftHand2, &tipPositions[2]);
}
void Player_DrawHookshotReticle(PlayState* play, Player* this, f32 arg2) {
@@ -1608,7 +1622,7 @@ void Player_DrawHookshotReticle(PlayState* play, Player* this, f32 arg2) {
}
// Coordinates of the player focus position, in the head limb's own model space.
-Vec3f sPlayerFocusHeadLimbModelPos = { 1100.0f, -700.0f, 0.0f };
+Vec3f sPlayerFocusOffsetFromHead = { 1100.0f, -700.0f, 0.0f };
f32 sMeleeWeaponLengths[] = {
0.0f, // not a melee weapon
@@ -1651,17 +1665,17 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
Math_Vec3f_Copy(&this->leftHandPos, sCurBodyPartPos);
if (this->itemAction == PLAYER_IA_DEKU_STICK) {
- Vec3f sp124[3];
+ Vec3f tipPositions[3];
OPEN_DISPS(play->state.gfxCtx, "../z_player_lib.c", 2633);
if (this->actor.scale.y >= 0.0f) {
- D_80126080.x = this->unk_85C * 5000.0f;
- func_80090A28(this, sp124);
+ sMeleeWeaponTipOffsetFromLeftHand0.x = this->unk_85C * 5000.0f;
+ Player_CalcMeleeWeaponTipPositions(this, tipPositions);
if (this->meleeWeaponState != 0) {
- func_800906D4(play, this, sp124);
+ Player_UpdateMeleeWeaponInfo(play, this, tipPositions);
} else {
- Math_Vec3f_Copy(&this->meleeWeaponInfo[0].tip, &sp124[0]);
+ Math_Vec3f_Copy(MELEE_WEAPON_INFO_TIP(&this->meleeWeaponInfo[0]), &tipPositions[0]);
}
}
@@ -1674,16 +1688,16 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
CLOSE_DISPS(play->state.gfxCtx, "../z_player_lib.c", 2656);
} else if ((this->actor.scale.y >= 0.0f) && (this->meleeWeaponState != 0)) {
- Vec3f spE4[3];
+ Vec3f tipPositions[3];
if (Player_HoldsBrokenKnife(this)) {
- D_80126080.x = 1500.0f;
+ sMeleeWeaponTipOffsetFromLeftHand0.x = 1500.0f;
} else {
- D_80126080.x = sMeleeWeaponLengths[Player_GetMeleeWeaponHeld(this)];
+ sMeleeWeaponTipOffsetFromLeftHand0.x = sMeleeWeaponLengths[Player_GetMeleeWeaponHeld(this)];
}
- func_80090A28(this, spE4);
- func_800906D4(play, this, spE4);
+ Player_CalcMeleeWeaponTipPositions(this, tipPositions);
+ Player_UpdateMeleeWeaponInfo(play, this, tipPositions);
} else if ((*dList != NULL) && (this->leftHandType == PLAYER_MODELTYPE_LH_BOTTLE)) {
//! @bug When Player is actively using shield, the `itemAction` value will be set to -1.
//! If shield is used at the same time a bottle is in hand, `Player_ActionToBottle` will
@@ -1854,7 +1868,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
Matrix_Get(&this->shieldMf);
}
} else if (limbIndex == PLAYER_LIMB_HEAD) {
- Matrix_MultVec3f(&sPlayerFocusHeadLimbModelPos, &this->actor.focus.pos);
+ Matrix_MultVec3f(&sPlayerFocusOffsetFromHead, &this->actor.focus.pos);
} else {
// Position of Link's foot, in the foot limb's own model space.
static Vec3f sLeftRightFootLimbModelFootPos[] = {
diff --git a/src/code/z_rcp.c b/src/code/z_rcp.c
index 135ffa8876..657bd9e560 100644
--- a/src/code/z_rcp.c
+++ b/src/code/z_rcp.c
@@ -854,28 +854,50 @@ Gfx gEmptyDL[] = {
gsSPEndDisplayList(),
};
+/**
+ * Set fog color and range.
+ *
+ * At or prior to fog near, geometry is unaffected by fog. At or beyond fog far, geometry is fully fogged.
+ * Between near and far, rendered geometry will be blended between the unfogged color and the supplied fog color.
+ *
+ * Fog far should be in the range 0 to 1000 and greater than or equal to fog near. If fog near is negative everything
+ * will be fully fogged. If fog near is 1000 or greater there is no fog.
+ */
Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
+ // Avoid 0 divisor in gSPFogPosition below
if (far == near) {
far++;
}
-
ASSERT(near != far, "n != f", "../z_rcp.c", 1155);
+ // Set the fog color, far away geometry will be rendered as this solid color.
gDPSetFogColor(gfx++, r, g, b, a);
if (near >= 1000) {
+ // Set a constant shade alpha of 0 for no fog
gSPFogFactor(gfx++, 0, 0);
- } else if (near >= 997) {
- gSPFogFactor(gfx++, 0x7FFF, 0x8100);
+ } else if (near > 996) {
+ // Avoid an overflow when near and far are close (see bug below), by effectively clamping near to ~996.
+ // This is almost SPFogPosition(996.0937f, 1000)
+ gSPFogFactor(gfx++, 0x7FFF, -0x7F00);
} else if (near < 0) {
+ // Set a constant shade alpha of 255 for fully fogged
gSPFogFactor(gfx++, 0, 255);
} else {
+ // Normal range. Shade alpha is 0 at z <= near and 255 at z >= far, linearly interpolated in between.
+ //! @bug If far - near < 4, the computed `fm` fog factor coefficient will overflow.
+ //! For example: 128000 / (983 - 980) > 32767
+ //! This is handled above in the case of near > 996, but the general case is not accounted for.
gSPFogPosition(gfx++, near, far);
}
-
return gfx;
}
+/**
+ * Like Gfx_SetFog but issues a pipesync before changing fog color.
+ *
+ * @see Gfx_SetFog
+ */
Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
if (far == near) {
far++;
@@ -898,6 +920,11 @@ Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far)
return gfx;
}
+/**
+ * Wrapper for Gfx_SetFog
+ *
+ * @see Gfx_SetFog
+ */
Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
return Gfx_SetFog(gfx, r, g, b, a, near, far);
}
diff --git a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c
index 62594850af..3e8127024b 100644
--- a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c
+++ b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c
@@ -337,8 +337,8 @@ void ArmsHook_Draw(Actor* thisx, PlayState* play) {
ArmsHook* this = (ArmsHook*)thisx;
Player* player = GET_PLAYER(play);
Vec3f sp78;
- Vec3f hookNewTip;
- Vec3f hookNewBase;
+ Vec3f posA;
+ Vec3f posB;
f32 sp5C;
f32 sp58;
@@ -349,16 +349,16 @@ void ArmsHook_Draw(Actor* thisx, PlayState* play) {
if ((ArmsHook_Shoot != this->actionFunc) || (this->timer <= 0)) {
Matrix_MultVec3f(&D_80865B70, &this->unk_1E8);
- Matrix_MultVec3f(&D_80865B88, &hookNewTip);
- Matrix_MultVec3f(&D_80865B94, &hookNewBase);
- this->hookInfo.active = 0;
+ Matrix_MultVec3f(&D_80865B88, &posA);
+ Matrix_MultVec3f(&D_80865B94, &posB);
+ this->weaponInfo.active = false;
} else {
Matrix_MultVec3f(&D_80865B7C, &this->unk_1E8);
- Matrix_MultVec3f(&D_80865BA0, &hookNewTip);
- Matrix_MultVec3f(&D_80865BAC, &hookNewBase);
+ Matrix_MultVec3f(&D_80865BA0, &posA);
+ Matrix_MultVec3f(&D_80865BAC, &posB);
}
- func_80090480(play, &this->collider, &this->hookInfo, &hookNewTip, &hookNewBase);
+ Player_UpdateWeaponInfo(play, &this->collider, &this->weaponInfo, &posA, &posB);
Gfx_SetupDL_25Opa(play->state.gfxCtx);
MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_arms_hook.c", 895);
gSPDisplayList(POLY_OPA_DISP++, gLinkAdultHookshotTipDL);
diff --git a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.h b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.h
index d06019f040..fe85e5693a 100644
--- a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.h
+++ b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.h
@@ -12,7 +12,7 @@ typedef void (*ArmsHookActionFunc)(struct ArmsHook*, struct PlayState*);
typedef struct ArmsHook {
/* 0x0000 */ Actor actor;
/* 0x014C */ ColliderQuad collider;
- /* 0x01CC */ WeaponInfo hookInfo;
+ /* 0x01CC */ WeaponInfo weaponInfo;
/* 0x01E8 */ Vec3f unk_1E8;
/* 0x01F4 */ Vec3f unk_1F4;
/* 0x0200 */ Actor* attachedActor;
diff --git a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c
index a27bb69c1f..280730bcda 100644
--- a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c
+++ b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c
@@ -113,8 +113,8 @@ void BgBdanSwitch_InitDynaPoly(BgBdanSwitch* this, PlayState* play, CollisionHea
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_bg_bdan_switch.c", 325, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
@@ -209,12 +209,13 @@ void BgBdanSwitch_Init(Actor* thisx, PlayState* play) {
}
break;
default:
- PRINTF(T("不正な", "Invalid") " ARG_DATA(arg_data 0x%04x)(%s %d)\n", this->dyna.actor.params,
- "../z_bg_bdan_switch.c", 454);
+ PRINTF(T("不正な ARG_DATA(arg_data 0x%04x)(%s %d)\n", "Invalid ARG_DATA(arg_data 0x%04x)(%s %d)\n"),
+ this->dyna.actor.params, "../z_bg_bdan_switch.c", 454);
Actor_Kill(&this->dyna.actor);
return;
}
- PRINTF(T("(巨大魚ダンジョン 専用スイッチ)", "(Giant Fish Dungeon Special Switch)") "(arg_data 0x%04x)\n",
+ PRINTF(T("(巨大魚ダンジョン 専用スイッチ)(arg_data 0x%04x)\n",
+ "(Giant Fish Dungeon Special Switch)(arg_data 0x%04x)\n"),
this->dyna.actor.params);
}
diff --git a/src/overlays/actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.c b/src/overlays/actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.c
index a7ae0f3cc6..e773a20c4c 100644
--- a/src/overlays/actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.c
+++ b/src/overlays/actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.c
@@ -49,7 +49,7 @@ void BgBomGuard_Init(Actor* thisx, PlayState* play) {
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, thisx, colHeader);
PRINTF("\n\n");
- PRINTF(VT_FGCOL(GREEN) " ☆☆☆☆☆ " T("透明ガード出現", "Transparent guard appears") " ☆☆☆☆☆ \n" VT_RST);
+ PRINTF(VT_FGCOL(GREEN) T(" ☆☆☆☆☆ 透明ガード出現 ☆☆☆☆☆ \n", " ☆☆☆☆☆ Transparent guard appears ☆☆☆☆☆ \n") VT_RST);
thisx->scale.x = 1.0f;
thisx->scale.y = 1.0f;
diff --git a/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c b/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c
index a40a29242a..15a2ffb841 100644
--- a/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c
+++ b/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c
@@ -156,7 +156,8 @@ void BgBombwall_Init(Actor* thisx, PlayState* play) {
func_8086ED50(this, play);
}
- PRINTF("(field keep " T("汎用爆弾壁", "general purpose bomb wall") ")(arg_data 0x%04x)(angY %d)\n",
+ PRINTF(T("(field keep 汎用爆弾壁)(arg_data 0x%04x)(angY %d)\n",
+ "(field keep general purpose bomb wall)(arg_data 0x%04x)(angY %d)\n"),
this->dyna.actor.params, this->dyna.actor.shape.rot.y);
}
diff --git a/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.c b/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.c
index 7900504f7f..57a5b0b9e6 100644
--- a/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.c
+++ b/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.c
@@ -74,9 +74,9 @@ void BgBowlWall_Init(Actor* thisx, PlayState* play) {
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
this->initPos = this->dyna.actor.world.pos;
PRINTF("\n\n");
- PRINTF(
- VT_FGCOL(GREEN) " ☆☆☆☆☆ " T("ボーリングおじゃま壁発生", "Bowling obstacle wall appears") " ☆☆☆☆☆ %d\n" VT_RST,
- this->dyna.actor.params);
+ PRINTF(VT_FGCOL(GREEN)
+ T(" ☆☆☆☆☆ ボーリングおじゃま壁発生 ☆☆☆☆☆ %d\n", " ☆☆☆☆☆ Bowling obstacle wall spawns ☆☆☆☆☆ %d\n") VT_RST,
+ this->dyna.actor.params);
this->actionFunc = BgBowlWall_SpawnBullseyes;
this->dyna.actor.scale.x = this->dyna.actor.scale.y = this->dyna.actor.scale.z = 1.0f;
}
diff --git a/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c b/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c
index 233368d438..44dc02ca0d 100644
--- a/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c
+++ b/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c
@@ -104,7 +104,8 @@ void BgDyYoseizo_Init(Actor* thisx, PlayState* play2) {
this->actor.focus.pos = this->actor.world.pos;
if (play->sceneId == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
- PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ " T("大妖精の泉", "Great Fairy Fountain") " ☆☆☆☆☆ %d\n" VT_RST, play->spawn);
+ PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 大妖精の泉 ☆☆☆☆☆ %d\n", "☆☆☆☆☆ Great Fairy Fountain ☆☆☆☆☆ %d\n") VT_RST,
+ play->spawn);
SkelAnime_InitFlex(play, &this->skelAnime, &gGreatFairySkel, &gGreatFairySittingTransitionAnim,
this->jointTable, this->morphTable, 28);
#if OOT_VERSION < NTSC_1_1
@@ -114,7 +115,8 @@ void BgDyYoseizo_Init(Actor* thisx, PlayState* play2) {
}
#endif
} else {
- PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ " T("石妖精の泉", "Stone Fairy Fountain") " ☆☆☆☆☆ %d\n" VT_RST, play->spawn);
+ PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 石妖精の泉 ☆☆☆☆☆ %d\n", "☆☆☆☆☆ Stone Fairy Fountain ☆☆☆☆☆ %d\n") VT_RST,
+ play->spawn);
SkelAnime_InitFlex(play, &this->skelAnime, &gGreatFairySkel, &gGreatFairyLayingDownTransitionAnim,
this->jointTable, this->morphTable, 28);
#if OOT_VERSION < NTSC_1_1
@@ -251,7 +253,7 @@ void BgDyYoseizo_ChooseType(BgDyYoseizo* this, PlayState* play) {
#endif
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1);
- PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ " T("もうど", "Mode") " ☆☆☆☆☆ %d\n" VT_RST, play->msgCtx.ocarinaMode);
+ PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ もうど ☆☆☆☆☆ %d\n", "☆☆☆☆☆ Mode ☆☆☆☆☆ %d\n") VT_RST, play->msgCtx.ocarinaMode);
givingReward = false;
if (play->sceneId != SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
@@ -276,22 +278,23 @@ void BgDyYoseizo_ChooseType(BgDyYoseizo* this, PlayState* play) {
switch (this->fountainType) {
case FAIRY_UPGRADE_MAGIC:
if (!gSaveContext.save.info.playerData.isMagicAcquired || BREG(2)) {
- PRINTF(VT_FGCOL(GREEN) " ☆☆☆☆☆ " T("回転切り速度UP", "Turning speed UP") " ☆☆☆☆☆ \n" VT_RST);
+ PRINTF(VT_FGCOL(GREEN) T(" ☆☆☆☆☆ 回転切り速度UP ☆☆☆☆☆ \n", " ☆☆☆☆☆ Turning speed UP ☆☆☆☆☆ \n")
+ VT_RST);
this->givingSpell = true;
givingReward = true;
}
break;
case FAIRY_UPGRADE_DOUBLE_MAGIC:
if (!gSaveContext.save.info.playerData.isDoubleMagicAcquired) {
- PRINTF(VT_FGCOL(YELLOW) " ☆☆☆☆☆ " T("魔法ゲージメーター倍増",
- "Magic Gauge Meter Doubled") " ☆☆☆☆☆ \n" VT_RST);
+ PRINTF(VT_FGCOL(YELLOW) T(" ☆☆☆☆☆ 魔法ゲージメーター倍増 ☆☆☆☆☆ \n",
+ " ☆☆☆☆☆ Magic Gauge Meter Doubled ☆☆☆☆☆ \n") VT_RST);
this->givingSpell = true;
givingReward = true;
}
break;
case FAIRY_UPGRADE_DOUBLE_DEFENSE:
if (!gSaveContext.save.info.playerData.isDoubleDefenseAcquired) {
- PRINTF(VT_FGCOL(MAGENTA) " ☆☆☆☆☆ " T("ダメージ半減", "Damage halved") " ☆☆☆☆☆ \n" VT_RST);
+ PRINTF(VT_FGCOL(MAGENTA) T(" ☆☆☆☆☆ ダメージ半減 ☆☆☆☆☆ \n", " ☆☆☆☆☆ Damage halved ☆☆☆☆☆ \n") VT_RST);
this->givingSpell = true;
givingReward = true;
}
diff --git a/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.c b/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.c
index 6e9821d64f..8e7ad4c3d6 100644
--- a/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.c
+++ b/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.c
@@ -62,7 +62,7 @@ void BgGateShutter_Init(Actor* thisx, PlayState* play) {
thisx->scale.y = 1.0f;
thisx->scale.z = 1.0f;
PRINTF("\n\n");
- PRINTF(VT_FGCOL(GREEN) " ☆☆☆☆☆ " T("柵でたなぁ", "There's a fence") " ☆☆☆☆☆ \n" VT_RST);
+ PRINTF(VT_FGCOL(GREEN) T(" ☆☆☆☆☆ 柵でたなぁ ☆☆☆☆☆ \n", " ☆☆☆☆☆ There's a fence ☆☆☆☆☆ \n") VT_RST);
this->actionFunc = func_8087828C;
}
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c b/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c
index fbb2b4be30..7abcc1f912 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c
@@ -87,8 +87,8 @@ void BgHidanCurtain_Init(Actor* thisx, PlayState* play) {
Actor_SetFocus(&this->actor, 20.0f);
this->type = PARAMS_GET_U(thisx->params, 12, 4);
if (this->type > 6) {
- PRINTF(T("Error : object のタイプが設定されていない",
- "Error : object type is not set") "(%s %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Error : object のタイプが設定されていない(%s %d)(arg_data 0x%04x)\n",
+ "Error : object type is not set (%s %d)(arg_data 0x%04x)\n"),
"../z_bg_hidan_curtain.c", 352, this->actor.params);
Actor_Kill(&this->actor);
return;
@@ -100,8 +100,8 @@ void BgHidanCurtain_Init(Actor* thisx, PlayState* play) {
thisx->params &= 0x3F;
if (DEBUG_FEATURES && ((this->actor.params < 0) || (this->actor.params > 0x3F))) {
- PRINTF(T("Warning : object のセーブビットが設定されていない",
- "Warning : object save bit is not set") "(%s %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : object のセーブビットが設定されていない(%s %d)(arg_data 0x%04x)\n",
+ "Warning : object save bit is not set (%s %d)(arg_data 0x%04x)\n"),
"../z_bg_hidan_curtain.c", 373, this->actor.params);
}
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c b/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c
index ff71d16fc0..4f1be80a62 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c
@@ -131,10 +131,9 @@ void BgHidanKowarerukabe_Init(Actor* thisx, PlayState* play) {
if (PARAMS_GET_U(this->dyna.actor.params, 0, 8) < CRACKED_STONE_FLOOR ||
PARAMS_GET_U(this->dyna.actor.params, 0, 8) > LARGE_BOMBABLE_WALL) {
- PRINTF(
- T("Error : 炎の神殿 壊れる壁 の arg_data が判別出来ない",
- "Error : arg_data for the Fire Temple breakable wall cannot be determined") "(%s %d)(arg_data 0x%04x)\n",
- "../z_bg_hidan_kowarerukabe.c", 254, this->dyna.actor.params);
+ PRINTF(T("Error : 炎の神殿 壊れる壁 の arg_data が判別出来ない(%s %d)(arg_data 0x%04x)\n",
+ "Error : arg_data for the Fire Temple breakable wall cannot be determined (%s %d)(arg_data 0x%04x)\n"),
+ "../z_bg_hidan_kowarerukabe.c", 254, this->dyna.actor.params);
Actor_Kill(&this->dyna.actor);
return;
}
@@ -148,8 +147,9 @@ void BgHidanKowarerukabe_Init(Actor* thisx, PlayState* play) {
Actor_SetScale(&this->dyna.actor, 0.1f);
BgHidanKowarerukabe_InitColliderSphere(this, play);
BgHidanKowarerukabe_OffsetActorYPos(this);
- PRINTF(T("(hidan 爆弾で壊れる 壁 床)", "(hidan bomb destroys walls and floors)") "(arg_data 0x%04x)\n",
- this->dyna.actor.params);
+ PRINTF(
+ T("(hidan 爆弾で壊れる 壁 床)(arg_data 0x%04x)\n", "(hidan bomb destroys walls and floors)(arg_data 0x%04x)\n"),
+ this->dyna.actor.params);
}
void BgHidanKowarerukabe_Destroy(Actor* thisx, PlayState* play) {
diff --git a/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c b/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c
index cc8f46a982..0c6578ec26 100644
--- a/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c
+++ b/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c
@@ -137,8 +137,8 @@ void BgIceShelter_InitDynaPoly(BgIceShelter* this, PlayState* play, CollisionHea
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_bg_ice_shelter.c", 362, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
diff --git a/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c b/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c
index 1fa0559484..6ff102aa41 100644
--- a/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c
+++ b/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c
@@ -87,8 +87,8 @@ void BgJya1flift_InitDynapoly(BgJya1flift* this, PlayState* play, CollisionHeade
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_bg_jya_1flift.c", 179, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
@@ -104,7 +104,8 @@ void BgJya1flift_InitCollision(Actor* thisx, PlayState* play) {
void BgJya1flift_Init(Actor* thisx, PlayState* play) {
BgJya1flift* this = (BgJya1flift*)thisx;
- PRINTF(T("(1Fリフト)", "1F lift") "(flag %d)(room %d)\n", sIsSpawned, play->roomCtx.curRoom.num);
+ PRINTF(T("(1Fリフト)(flag %d)(room %d)\n", "(1F lift)(flag %d)(room %d)\n"), sIsSpawned,
+ play->roomCtx.curRoom.num);
this->hasInitialized = false;
if (sIsSpawned) {
Actor_Kill(thisx);
diff --git a/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.c b/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.c
index 1147ed7e6f..046da7d10f 100644
--- a/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.c
+++ b/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.c
@@ -62,8 +62,8 @@ void BgJyaAmishutter_InitDynaPoly(BgJyaAmishutter* this, PlayState* play, Collis
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_bg_jya_amishutter.c", 129, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
diff --git a/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.c b/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.c
index 66cc92b98c..feb7cba7b7 100644
--- a/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.c
+++ b/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.c
@@ -85,8 +85,8 @@ void BgJyaBigmirror_HandleCobra(Actor* thisx, PlayState* play) {
#if DEBUG_FEATURES
if (curCobraInfo->cobra->dyna.actor.update == NULL) {
- PRINTF("Error : " T("コブラ削除された", "Cobra deleted") " (%s %d)\n", "../z_bg_jya_bigmirror.c",
- 203);
+ PRINTF(T("Error : コブラ削除された (%s %d)\n", "Error : Cobra deleted (%s %d)\n"),
+ "../z_bg_jya_bigmirror.c", 203);
}
#endif
} else {
@@ -96,7 +96,7 @@ void BgJyaBigmirror_HandleCobra(Actor* thisx, PlayState* play) {
this->actor.child = NULL;
if (curCobraInfo->cobra == NULL) {
- PRINTF("Error : " T("コブラ発生失敗", "Cobra generation failed") " (%s %d)\n",
+ PRINTF(T("Error : コブラ発生失敗 (%s %d)\n", "Error : Cobra failed to spawn (%s %d)\n"),
"../z_bg_jya_bigmirror.c", 221);
}
}
@@ -164,7 +164,7 @@ void BgJyaBigmirror_HandleMirRay(Actor* thisx, PlayState* play) {
#if DEBUG_FEATURES
if (this->lightBeams[i] == NULL) {
- PRINTF("Error : " T("Mir Ray 発生失敗", "Mir Ray generation failed") " (%s %d)\n",
+ PRINTF(T("Error : Mir Ray 発生失敗 (%s %d)\n", "Error : Mir Ray failed to spawn (%s %d)\n"),
"../z_bg_jya_bigmirror.c", 310);
}
#endif
@@ -196,7 +196,7 @@ void BgJyaBigmirror_Init(Actor* thisx, PlayState* play) {
this->spawned = true;
this->mirRayObjectSlot = -1;
- PRINTF("(jya " T("大鏡", "Big mirror") ")(arg_data 0x%04x)\n", this->actor.params);
+ PRINTF(T("(jya 大鏡)(arg_data 0x%04x)\n", "(jya Big mirror)(arg_data 0x%04x)\n"), this->actor.params);
}
void BgJyaBigmirror_Destroy(Actor* thisx, PlayState* play) {
diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c
index 6d524848e4..e19f90863a 100644
--- a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c
+++ b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c
@@ -195,7 +195,8 @@ void BgJyaBombchuiwa_SpawnLightRay(BgJyaBombchuiwa* this, PlayState* play) {
BgJyaBombchuiwa_SetDrawFlags(this, 4);
if (Actor_Spawn(&play->actorCtx, play, ACTOR_MIR_RAY, this->actor.world.pos.x, this->actor.world.pos.y,
this->actor.world.pos.z, 0, 0, 0, 0) == NULL) {
- PRINTF(T("Error : Mir_Ray 発生失敗", "Error : Mir_Ray failed to occur") "(%s %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Error : Mir_Ray 発生失敗(%s %d)(arg_data 0x%04x)\n",
+ "Error : Mir_Ray failed to spawn (%s %d)(arg_data 0x%04x)\n"),
"../z_bg_jya_bombchuiwa.c", 410, this->actor.params);
}
}
diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c
index 5e231d5414..87a1aa3a78 100644
--- a/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c
+++ b/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c
@@ -83,8 +83,8 @@ void BgJyaBombiwa_SetupDynaPoly(BgJyaBombiwa* this, PlayState* play, CollisionHe
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_bg_jya_bombiwa.c", 174, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
@@ -102,8 +102,8 @@ void BgJyaBombiwa_Init(Actor* thisx, PlayState* play) {
if (PARAMS_GET_U(this->dyna.actor.params, 0, 6) != 0x29) {
PRINTF_COLOR_WARNING();
- PRINTF(T("Warning : Switch Number が変更された",
- "Warning : Switch Number has been changed") "(%s %d)(SW %d)\n",
+ PRINTF(T("Warning : Switch Number が変更された(%s %d)(SW %d)\n",
+ "Warning : Switch Number has been changed (%s %d)(SW %d)\n"),
"../z_bg_jya_bombiwa.c", 218, PARAMS_GET_U(this->dyna.actor.params, 0, 6));
PRINTF_RST();
}
@@ -114,7 +114,8 @@ void BgJyaBombiwa_Init(Actor* thisx, PlayState* play) {
} else {
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
- PRINTF(T("(jya 爆弾で破壊岩)", "(jya bomb destroys rocks)") "(arg_data 0x%04x)\n", this->dyna.actor.params);
+ PRINTF(T("(jya 爆弾で破壊岩)(arg_data 0x%04x)\n", "(jya bomb destroys rocks)(arg_data 0x%04x)\n"),
+ this->dyna.actor.params);
}
}
diff --git a/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c b/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c
index 26402414d9..81fe1e598f 100644
--- a/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c
+++ b/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c
@@ -145,8 +145,8 @@ void BgJyaCobra_InitDynapoly(BgJyaCobra* this, PlayState* play, CollisionHeader*
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_bg_jya_cobra.c", 247, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
@@ -159,7 +159,7 @@ void BgJyaCobra_SpawnRay(BgJyaCobra* this, PlayState* play) {
#if DEBUG_FEATURES
if (this->dyna.actor.child == NULL) {
PRINTF_COLOR_RED();
- PRINTF(T("Error : Mir Ray 発生失敗", "Error : Mir Ray failed to occur") " (%s %d)\n",
+ PRINTF(T("Error : Mir Ray 発生失敗 (%s %d)\n", "Error : Mir Ray failed to occur (%s %d)\n"),
"../z_bg_jya_cobra.c", 270);
PRINTF_RST();
}
@@ -445,8 +445,9 @@ void BgJyaCobra_Init(Actor* thisx, PlayState* play) {
BgJyaCobra_UpdateShadowFromTop(this);
}
- PRINTF("(jya " T("コブラ", "cobra") ")(arg_data 0x%04x)(act %x)(txt %x)(txt16 %x)\n", this->dyna.actor.params, this,
- &this->shadowTextureBuffer, COBRA_SHADOW_TEX_PTR(this));
+ PRINTF(T("(jya コブラ)(arg_data 0x%04x)(act %x)(txt %x)(txt16 %x)\n",
+ "(jya cobra)(arg_data 0x%04x)(act %x)(txt %x)(txt16 %x)\n"),
+ this->dyna.actor.params, this, &this->shadowTextureBuffer, COBRA_SHADOW_TEX_PTR(this));
}
void BgJyaCobra_Destroy(Actor* thisx, PlayState* play) {
diff --git a/src/overlays/actors/ovl_Bg_Jya_Kanaami/z_bg_jya_kanaami.c b/src/overlays/actors/ovl_Bg_Jya_Kanaami/z_bg_jya_kanaami.c
index 6c5bc7cc66..652ec8e8e6 100644
--- a/src/overlays/actors/ovl_Bg_Jya_Kanaami/z_bg_jya_kanaami.c
+++ b/src/overlays/actors/ovl_Bg_Jya_Kanaami/z_bg_jya_kanaami.c
@@ -61,8 +61,8 @@ void BgJyaKanaami_InitDynaPoly(BgJyaKanaami* this, PlayState* play, CollisionHea
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_bg_jya_kanaami.c", 145, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
@@ -78,7 +78,7 @@ void BgJyaKanaami_Init(Actor* thisx, PlayState* play) {
} else {
func_80899880(this);
}
- PRINTF("(jya " T("金網", "wire mesh") ")(arg_data 0x%04x)\n", this->dyna.actor.params);
+ PRINTF(T("(jya 金網)(arg_data 0x%04x)\n", "(jya wire mesh)(arg_data 0x%04x)\n"), this->dyna.actor.params);
}
void BgJyaKanaami_Destroy(Actor* thisx, PlayState* play) {
diff --git a/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c b/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c
index 810b3ff9e1..148d6c0098 100644
--- a/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c
+++ b/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c
@@ -81,8 +81,8 @@ void BgJyaZurerukabe_InitDynaPoly(BgJyaZurerukabe* this, PlayState* play, Collis
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_bg_jya_zurerukabe.c", 194, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
@@ -137,14 +137,15 @@ void BgJyaZurerukabe_Init(Actor* thisx, PlayState* play) {
if (i == ARRAY_COUNT(D_8089B9F0)) {
PRINTF_COLOR_ERROR();
- PRINTF(T("home pos が変更されたみたい", "It seems that the home pos has changed") "(%s %d)(arg_data 0x%04x)\n",
+ PRINTF(T("home pos が変更されたみたい(%s %d)(arg_data 0x%04x)\n",
+ "It seems that the home pos has changed (%s %d)(arg_data 0x%04x)\n"),
"../z_bg_jya_zurerukabe.c", 299, this->dyna.actor.params);
PRINTF_RST();
}
this->unk_16E = D_8089B9F8[this->unk_168];
func_8089B7B4(this);
- PRINTF("(jya " T("ずれる壁", "sliding wall") ")(arg_data 0x%04x)\n", this->dyna.actor.params);
+ PRINTF(T("(jya ずれる壁)(arg_data 0x%04x)\n", "(jya sliding wall)(arg_data 0x%04x)\n"), this->dyna.actor.params);
}
void BgJyaZurerukabe_Destroy(Actor* thisx, PlayState* play) {
diff --git a/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c b/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c
index 22ccbff60d..bb21a6cb6f 100644
--- a/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c
+++ b/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c
@@ -211,8 +211,8 @@ void BgMizuBwall_Init(Actor* thisx, PlayState* play) {
Collider_InitTris(play, &this->collider);
if (!Collider_SetTris(play, &this->collider, &this->dyna.actor, &sTrisInitFloor,
this->colliderElements)) {
- PRINTF(T("Error : コリジョンデータセット失敗",
- "Error : Collision data set failure") "(%s %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Error : コリジョンデータセット失敗(%s %d)(arg_data 0x%04x)\n",
+ "Error : Collision data set failure (%s %d)(arg_data 0x%04x)\n"),
"../z_bg_mizu_bwall.c", 484, this->dyna.actor.params);
Actor_Kill(&this->dyna.actor);
} else {
@@ -252,8 +252,8 @@ void BgMizuBwall_Init(Actor* thisx, PlayState* play) {
Collider_InitTris(play, &this->collider);
if (!Collider_SetTris(play, &this->collider, &this->dyna.actor, &sTrisInitRutoWall,
this->colliderElements)) {
- PRINTF(T("Error : コリジョンデータセット失敗",
- "Error : Collision data set failure") "(%s %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Error : コリジョンデータセット失敗(%s %d)(arg_data 0x%04x)\n",
+ "Error : Collision data set failure (%s %d)(arg_data 0x%04x)\n"),
"../z_bg_mizu_bwall.c", 558, this->dyna.actor.params);
Actor_Kill(&this->dyna.actor);
} else {
@@ -293,8 +293,8 @@ void BgMizuBwall_Init(Actor* thisx, PlayState* play) {
Collider_InitTris(play, &this->collider);
if (!Collider_SetTris(play, &this->collider, &this->dyna.actor, &sTrisInitUnusedWall,
this->colliderElements)) {
- PRINTF(T("Error : コリジョンデータセット失敗",
- "Error : Collision data set failure") "(%s %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Error : コリジョンデータセット失敗(%s %d)(arg_data 0x%04x)\n",
+ "Error : Collision data set failure (%s %d)(arg_data 0x%04x)\n"),
"../z_bg_mizu_bwall.c", 638, this->dyna.actor.params);
Actor_Kill(&this->dyna.actor);
} else {
@@ -336,8 +336,8 @@ void BgMizuBwall_Init(Actor* thisx, PlayState* play) {
Collider_InitTris(play, &this->collider);
if (!Collider_SetTris(play, &this->collider, &this->dyna.actor, &sTrisInitStingerWall,
this->colliderElements)) {
- PRINTF(T("Error : コリジョンデータセット失敗",
- "Error : Collision data set failure") "(%s %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Error : コリジョンデータセット失敗(%s %d)(arg_data 0x%04x)\n",
+ "Error : Collision data set failure (%s %d)(arg_data 0x%04x)\n"),
"../z_bg_mizu_bwall.c", 724, this->dyna.actor.params);
Actor_Kill(&this->dyna.actor);
} else {
@@ -379,8 +379,8 @@ void BgMizuBwall_Init(Actor* thisx, PlayState* play) {
Collider_InitTris(play, &this->collider);
if (!Collider_SetTris(play, &this->collider, &this->dyna.actor, &sTrisInitStingerWall,
this->colliderElements)) {
- PRINTF(T("Error : コリジョンデータセット失敗",
- "Error : Collision data set failure") "(%s %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Error : コリジョンデータセット失敗(%s %d)(arg_data 0x%04x)\n",
+ "Error : Collision data set failure (%s %d)(arg_data 0x%04x)\n"),
"../z_bg_mizu_bwall.c", 798, this->dyna.actor.params);
Actor_Kill(&this->dyna.actor);
} else {
diff --git a/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c b/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c
index 8bad01b034..4b08d9479f 100644
--- a/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c
+++ b/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c
@@ -122,7 +122,7 @@ void BgMizuWater_Init(Actor* thisx, PlayState* play) {
switch (this->type) {
case 0:
if (bREG(15) == 0) {
- PRINTF(T("<コンストラクト>", "") "%x %x %x\n",
+ PRINTF(T("<コンストラクト>%x %x %x\n", "%x %x %x\n"),
Flags_GetSwitch(play, WATER_TEMPLE_WATER_F1_FLAG),
Flags_GetSwitch(play, WATER_TEMPLE_WATER_F2_FLAG),
Flags_GetSwitch(play, WATER_TEMPLE_WATER_F3_FLAG));
diff --git a/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.c b/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.c
index 697b1f72c9..baf9156bb7 100644
--- a/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.c
+++ b/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.c
@@ -74,8 +74,8 @@ void BgMoriBigst_InitDynapoly(BgMoriBigst* this, PlayState* play, CollisionHeade
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_bg_mori_bigst.c", 190, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
@@ -85,8 +85,8 @@ void BgMoriBigst_Init(Actor* thisx, PlayState* play) {
s32 pad;
BgMoriBigst* this = (BgMoriBigst*)thisx;
- PRINTF(T("mori (bigST.鍵型天井)",
- "mori (bigST. key-shaped ceiling)") "(arg : %04x)(sw %d)(noE %d)(roomC %d)(playerPosY %f)\n",
+ PRINTF(T("mori (bigST.鍵型天井)(arg : %04x)(sw %d)(noE %d)(roomC %d)(playerPosY %f)\n",
+ "mori (bigST. key-shaped ceiling)(arg : %04x)(sw %d)(noE %d)(roomC %d)(playerPosY %f)\n"),
this->dyna.actor.params, Flags_GetSwitch(play, PARAMS_GET_U(this->dyna.actor.params, 8, 6)),
Flags_GetTempClear(play, this->dyna.actor.room), Flags_GetClear(play, this->dyna.actor.room),
GET_PLAYER(play)->actor.world.pos.y);
@@ -151,7 +151,7 @@ void BgMoriBigst_SetupStalfosFight(BgMoriBigst* this, PlayState* play) {
this->dyna.actor.child = NULL;
this->dyna.actor.home.rot.z++;
} else {
- PRINTF(T("Warning : 第2スタルフォス発生失敗\n", "Warning : Second Stalfos failed to generate\n"));
+ PRINTF(T("Warning : 第2スタルフォス発生失敗\n", "Warning : Second Stalfos failed to spawn\n"));
}
Flags_SetClear(play, this->dyna.actor.room);
}
@@ -212,7 +212,7 @@ void BgMoriBigst_SetupStalfosPairFight(BgMoriBigst* this, PlayState* play) {
this->dyna.actor.child = NULL;
this->dyna.actor.home.rot.z++;
} else {
- PRINTF(T("Warning : 第3-1スタルフォス発生失敗\n", "Warning : 3-1 Stalfos generation failure\n"));
+ PRINTF(T("Warning : 第3-1スタルフォス発生失敗\n", "Warning : 3-1 Stalfos failed to spawn\n"));
}
stalfos2 = Actor_SpawnAsChild(&play->actorCtx, &this->dyna.actor, play, ACTOR_EN_TEST, 170.0f, 827.0f, -3260.0f, 0,
0, 0, 5);
@@ -220,7 +220,7 @@ void BgMoriBigst_SetupStalfosPairFight(BgMoriBigst* this, PlayState* play) {
this->dyna.actor.child = NULL;
this->dyna.actor.home.rot.z++;
} else {
- PRINTF(T("Warning : 第3-2スタルフォス発生失敗\n", "Warning : 3-2 Stalfos generation failure\n"));
+ PRINTF(T("Warning : 第3-2スタルフォス発生失敗\n", "Warning : 3-2 Stalfos failed to spawn\n"));
}
Flags_SetClear(play, this->dyna.actor.room);
}
diff --git a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c
index a2b1193c30..ad41dfc212 100644
--- a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c
+++ b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c
@@ -102,8 +102,8 @@ void BgMoriHashigo_InitDynapoly(BgMoriHashigo* this, PlayState* play, CollisionH
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_bg_mori_hashigo.c", 164, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
@@ -140,7 +140,8 @@ s32 BgMoriHashigo_SpawnLadder(BgMoriHashigo* this, PlayState* play) {
if (ladder != NULL) {
return true;
} else {
- PRINTF("Error : " T("梯子の発生失敗", "Ladder spawn failure") "(%s %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Error : 梯子の発生失敗(%s %d)(arg_data 0x%04x)\n",
+ "Error : Ladder failed to spawn (%s %d)(arg_data 0x%04x)\n"),
"../z_bg_mori_hashigo.c", 220, this->dyna.actor.params);
return false;
}
@@ -181,12 +182,13 @@ void BgMoriHashigo_Init(Actor* thisx, PlayState* play) {
}
this->moriTexObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_MORI_TEX);
if (this->moriTexObjectSlot < 0) {
- PRINTF("Error : " T("バンク危険!", "Bank danger!") "(arg_data 0x%04x)(%s %d)\n", this->dyna.actor.params,
- "../z_bg_mori_hashigo.c", 312);
+ PRINTF(T("Error : バンク危険!(arg_data 0x%04x)(%s %d)\n", "Error : Bank danger! (arg_data 0x%04x)(%s %d)\n"),
+ this->dyna.actor.params, "../z_bg_mori_hashigo.c", 312);
Actor_Kill(&this->dyna.actor);
} else {
BgMoriHashigo_SetupWaitForMoriTex(this);
- PRINTF(T("(森の神殿 梯子とその留め金)", "(Forest Temple Ladder and its clasp)") "(arg_data 0x%04x)\n",
+ PRINTF(T("(森の神殿 梯子とその留め金)(arg_data 0x%04x)\n",
+ "(Forest Temple Ladder and its clasp)(arg_data 0x%04x)\n"),
this->dyna.actor.params);
}
}
diff --git a/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.c b/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.c
index f1ae962844..fa25e2df8d 100644
--- a/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.c
+++ b/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.c
@@ -72,8 +72,8 @@ void BgMoriHashira4_InitDynaPoly(BgMoriHashira4* this, PlayState* play, Collisio
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_bg_mori_hashira4.c", 155, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
@@ -95,8 +95,8 @@ void BgMoriHashira4_Init(Actor* thisx, PlayState* play) {
this->moriTexObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_MORI_TEX);
if (this->moriTexObjectSlot < 0) {
Actor_Kill(&this->dyna.actor);
- PRINTF("Error : " T("バンク危険!", "Bank danger!") "(arg_data 0x%04x)(%s %d)\n", this->dyna.actor.params,
- "../z_bg_mori_hashira4.c", 196);
+ PRINTF(T("Error : バンク危険!(arg_data 0x%04x)(%s %d)\n", "Error : Bank danger! (arg_data 0x%04x)(%s %d)\n"),
+ this->dyna.actor.params, "../z_bg_mori_hashira4.c", 196);
return;
}
if ((this->dyna.actor.params != 0) && Flags_GetSwitch(play, this->switchFlag)) {
@@ -105,7 +105,8 @@ void BgMoriHashira4_Init(Actor* thisx, PlayState* play) {
}
Actor_SetFocus(&this->dyna.actor, 50.0f);
BgMoriHashira4_SetupWaitForMoriTex(this);
- PRINTF(T("(森の神殿 4本柱)", "Forest Temple 4 Pillars") "(arg_data 0x%04x)\n", this->dyna.actor.params);
+ PRINTF(T("(森の神殿 4本柱)(arg_data 0x%04x)\n", "(Forest Temple 4 Pillars)(arg_data 0x%04x)\n"),
+ this->dyna.actor.params);
sUnkTimer = 0;
}
diff --git a/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.c b/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.c
index 7c68aa1b69..2cd35ab1ee 100644
--- a/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.c
+++ b/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.c
@@ -80,15 +80,16 @@ void BgMoriIdomizu_Init(Actor* thisx, PlayState* play) {
this->moriTexObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_MORI_TEX);
if (this->moriTexObjectSlot < 0) {
Actor_Kill(&this->actor);
- PRINTF("Error : " T("バンク危険!", "Bank danger!") "(arg_data 0x%04x)(%s %d)\n", this->actor.params,
- "../z_bg_mori_idomizu.c", 202);
+ PRINTF(T("Error : バンク危険!(arg_data 0x%04x)(%s %d)\n", "Error : Bank danger! (arg_data 0x%04x)(%s %d)\n"),
+ this->actor.params, "../z_bg_mori_idomizu.c", 202);
return;
}
BgMoriIdomizu_SetupWaitForMoriTex(this);
sIsSpawned = true;
this->isLoaded = true;
this->actor.room = -1;
- PRINTF(T("(森の神殿 井戸水)", "(Forest Temple well water)") "(arg_data 0x%04x)\n", this->actor.params);
+ PRINTF(T("(森の神殿 井戸水)(arg_data 0x%04x)\n", "(Forest Temple well water)(arg_data 0x%04x)\n"),
+ this->actor.params);
}
void BgMoriIdomizu_Destroy(Actor* thisx, PlayState* play) {
diff --git a/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c b/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c
index 4c11347b9e..3d68864291 100644
--- a/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c
+++ b/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c
@@ -68,7 +68,7 @@ void BgMoriRakkatenjo_Init(Actor* thisx, PlayState* play) {
DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS);
#if DEBUG_FEATURES
- PRINTF(T("森の神殿 obj. 落下天井", "Forest Temple obj. Falling Ceiling") " (home posY %f)\n",
+ PRINTF(T("森の神殿 obj. 落下天井 (home posY %f)\n", "Forest Temple obj. Falling Ceiling (home posY %f)\n"),
this->dyna.actor.home.pos.y);
if ((fabsf(1991.0f - this->dyna.actor.home.pos.x) > 0.001f) ||
(fabsf(683.0f - this->dyna.actor.home.pos.y) > 0.001f) ||
@@ -228,7 +228,7 @@ void BgMoriRakkatenjo_Update(Actor* thisx, PlayState* play2) {
if (sCamSetting == CAM_SET_NONE) {
PRINTF("camera changed (mori rakka tenjyo) ... \n");
sCamSetting = play->cameraPtrs[CAM_ID_MAIN]->setting;
- Camera_SetCameraData(play->cameraPtrs[CAM_ID_MAIN], 1, &this->dyna.actor, NULL, 0, 0, 0);
+ Camera_SetCameraData(play->cameraPtrs[CAM_ID_MAIN], CAM_DATA_SET_0, &this->dyna.actor, NULL, 0, 0, 0);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_FOREST_BIRDS_EYE);
}
} else if (sCamSetting != CAM_SET_NONE) {
diff --git a/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.c b/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.c
index 12ab1abe17..ee7036a491 100644
--- a/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.c
+++ b/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.c
@@ -63,8 +63,8 @@ void BgSpot08Iceblock_InitDynaPoly(BgSpot08Iceblock* this, PlayState* play, Coll
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_bg_spot08_iceblock.c", 0xD9, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
@@ -77,9 +77,9 @@ void BgSpot08Iceblock_CheckParams(BgSpot08Iceblock* this) {
this->dyna.actor.params = 0x10;
break;
default:
- PRINTF(
- T("Error : arg_data 設定ミスです。", "Error : arg_data setting error. ") "(%s %d)(arg_data 0x%04x)\n",
- "../z_bg_spot08_iceblock.c", 0xF6, this->dyna.actor.params);
+ PRINTF(T("Error : arg_data 設定ミスです。(%s %d)(arg_data 0x%04x)\n",
+ "Error : arg_data setting error. (%s %d)(arg_data 0x%04x)\n"),
+ "../z_bg_spot08_iceblock.c", 0xF6, this->dyna.actor.params);
this->dyna.actor.params = 0x10;
break;
case 1:
@@ -300,7 +300,7 @@ void BgSpot08Iceblock_Init(Actor* thisx, PlayState* play) {
BgSpot08Iceblock* this = (BgSpot08Iceblock*)thisx;
CollisionHeader* colHeader;
- PRINTF("(spot08 " T("流氷", "ice floe") ")(arg_data 0x%04x)\n", this->dyna.actor.params);
+ PRINTF(T("(spot08 流氷)(arg_data 0x%04x)\n", "(spot08 ice floe)(arg_data 0x%04x)\n"), this->dyna.actor.params);
BgSpot08Iceblock_CheckParams(this);
switch (PARAMS_GET_NOSHIFT(this->dyna.actor.params, 9, 1)) {
diff --git a/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c b/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c
index e7e55f52ba..8fa33c1d22 100644
--- a/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c
+++ b/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c
@@ -148,12 +148,13 @@ s32 func_808B1D44(BgSpot09Obj* this, PlayState* play) {
void BgSpot09Obj_Init(Actor* thisx, PlayState* play) {
BgSpot09Obj* this = (BgSpot09Obj*)thisx;
- PRINTF("Spot09 Object [arg_data : 0x%04x](" T("大工救出フラグ", "Carpenter Rescue Flag") " 0x%x)\n",
+ PRINTF(T("Spot09 Object [arg_data : 0x%04x](大工救出フラグ 0x%x)\n",
+ "Spot09 Object [arg_data : 0x%04x](Carpenter Rescue Flag 0x%x)\n"),
this->dyna.actor.params, GET_EVENTCHKINF_CARPENTERS_RESCUED_FLAGS());
this->dyna.actor.params &= 0xFF;
if ((this->dyna.actor.params < 0) || (this->dyna.actor.params >= 5)) {
- PRINTF(T("Error : Spot 09 object の arg_data が判別出来ない",
- "Error : Spot 09 object arg_data cannot be determined") "(%s %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Error : Spot 09 object の arg_data が判別出来ない(%s %d)(arg_data 0x%04x)\n",
+ "Error : Spot 09 object arg_data cannot be determined (%s %d)(arg_data 0x%04x)\n"),
"../z_bg_spot09_obj.c", 322, this->dyna.actor.params);
}
diff --git a/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c b/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c
index 42dcc0ee73..427d9d4a6c 100644
--- a/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c
+++ b/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c
@@ -130,7 +130,7 @@ void BgSpot11Bakudankabe_Init(Actor* thisx, PlayState* play) {
CollisionHeader_GetVirtual(&gDesertColossusBombableWallCol, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
Actor_SetScale(&this->dyna.actor, 1.0f);
- PRINTF("(spot11 " T("爆弾壁", "Bomb Wall") ")(arg_data 0x%04x)\n", this->dyna.actor.params);
+ PRINTF(T("(spot11 爆弾壁)(arg_data 0x%04x)\n", "(spot11 Bomb Wall)(arg_data 0x%04x)\n"), this->dyna.actor.params);
}
void BgSpot11Bakudankabe_Destroy(Actor* thisx, PlayState* play) {
diff --git a/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c b/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c
index 190f964943..f6eae41733 100644
--- a/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c
+++ b/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c
@@ -64,8 +64,8 @@ void BgSpot12Gate_InitDynaPoly(BgSpot12Gate* this, PlayState* play, CollisionHea
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_bg_spot12_gate.c", 145, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
diff --git a/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.c b/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.c
index 48752674a0..71674bc12b 100644
--- a/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.c
+++ b/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.c
@@ -61,8 +61,8 @@ void func_808B3420(BgSpot12Saku* this, PlayState* play, CollisionHeader* collisi
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_bg_spot12_saku.c", 140, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
diff --git a/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.c b/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.c
index fb07391ebe..650cc50723 100644
--- a/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.c
+++ b/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.c
@@ -79,8 +79,8 @@ void func_808B3960(BgSpot15Rrbox* this, PlayState* play, CollisionHeader* collis
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_bg_spot15_rrbox.c", 171, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
@@ -146,7 +146,8 @@ void BgSpot15Rrbox_Init(Actor* thisx, PlayState* play) {
} else {
func_808B4084(this, play);
}
- PRINTF("(spot15 " T("ロンロン木箱", "Lon Lon Wooden Box") ")(arg_data 0x%04x)\n", this->dyna.actor.params);
+ PRINTF(T("(spot15 ロンロン木箱)(arg_data 0x%04x)\n", "(spot15 Lon Lon Wooden Box)(arg_data 0x%04x)\n"),
+ this->dyna.actor.params);
}
void BgSpot15Rrbox_Destroy(Actor* thisx, PlayState* play) {
@@ -333,7 +334,8 @@ void func_808B43D0(BgSpot15Rrbox* this, PlayState* play) {
Actor_MoveXZGravity(actor);
if (actor->world.pos.y <= BGCHECK_Y_MIN + 10.0f) {
- PRINTF("Warning : " T("ロンロン木箱落ちすぎた", "Lon Lon Wooden Box fell too far") "(%s %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : ロンロン木箱落ちすぎた(%s %d)(arg_data 0x%04x)\n",
+ "Warning : Lon Lon Wooden Box fell too far (%s %d)(arg_data 0x%04x)\n"),
"../z_bg_spot15_rrbox.c", 599, actor->params);
Actor_Kill(actor);
diff --git a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c
index 446177325f..d3b44d8aeb 100644
--- a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c
+++ b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c
@@ -240,8 +240,8 @@ s32 func_808B4E58(BgSpot16Bombstone* this, PlayState* play) {
this->requiredObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_BOMBIWA);
if (this->requiredObjectSlot < 0) {
- PRINTF("Error : " T("バンク危険!", "Bank danger! ") "(arg_data 0x%04x)(%s %d)\n", actor->params,
- "../z_bg_spot16_bombstone.c", 589);
+ PRINTF(T("Error : バンク危険!(arg_data 0x%04x)(%s %d)\n", "Error : Bank danger! (arg_data 0x%04x)(%s %d)\n"),
+ actor->params, "../z_bg_spot16_bombstone.c", 589);
return false;
}
@@ -273,7 +273,8 @@ void BgSpot16Bombstone_Init(Actor* thisx, PlayState* play) {
#if DEBUG_FEATURES
default:
- PRINTF(T("Error : arg_data おかしいな", "Error : arg_data is strange") "(%s %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Error : arg_data おかしいな(%s %d)(arg_data 0x%04x)\n",
+ "Error : arg_data is strange (%s %d)(arg_data 0x%04x)\n"),
"../z_bg_spot16_bombstone.c", 668, this->actor.params);
shouldLive = false;
break;
@@ -284,8 +285,9 @@ void BgSpot16Bombstone_Init(Actor* thisx, PlayState* play) {
Actor_Kill(&this->actor);
return;
}
- PRINTF("Spot16 obj " T("爆弾石", "Bomb Stone") " (scaleX %f)(arg_data 0x%04x)\n", this->actor.scale.x,
- this->actor.params);
+ PRINTF(
+ T("Spot16 obj 爆弾石 (scaleX %f)(arg_data 0x%04x)\n", "Spot16 obj Bomb Stone (scaleX %f)(arg_data 0x%04x)\n"),
+ this->actor.scale.x, this->actor.params);
}
void BgSpot16Bombstone_Destroy(Actor* thisx, PlayState* play) {
@@ -408,7 +410,8 @@ void func_808B56BC(BgSpot16Bombstone* this, PlayState* play) {
player->actor.world.pos.x += sinValue * this->sinRotation;
player->actor.world.pos.z += sinValue * this->cosRotation;
} else {
- PRINTF(T("Error 補正出来ない", "Error Can't correct") "(%s %d)(arg_data 0x%04x)(hosei_angY %x)\n",
+ PRINTF(T("Error 補正出来ない(%s %d)(arg_data 0x%04x)(hosei_angY %x)\n",
+ "Error Can't correct (%s %d)(arg_data 0x%04x)(hosei_angY %x)\n"),
"../z_bg_spot16_bombstone.c", 935, this->actor.params, adjustedYawDiff);
}
}
diff --git a/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c b/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c
index 7acb1fc100..dbeb445596 100644
--- a/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c
+++ b/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c
@@ -85,7 +85,8 @@ void BgSpot16Doughnut_Init(Actor* thisx, PlayState* play) {
} else {
this->fireFlag |= 1;
}
- PRINTF(T("(spot16 ドーナツ雲)", "(spot16 Donut Cloud)") "(arg_data 0x%04x)\n", this->actor.params);
+ PRINTF(T("(spot16 ドーナツ雲)(arg_data 0x%04x)\n", "(spot16 Donut Cloud)(arg_data 0x%04x)\n"),
+ this->actor.params);
}
}
diff --git a/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.c b/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.c
index 2d32d0199b..7d580c9b46 100644
--- a/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.c
+++ b/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.c
@@ -44,7 +44,8 @@ void BgSpot17Funen_Init(Actor* thisx, PlayState* play) {
BgSpot17Funen* this = (BgSpot17Funen*)thisx;
Actor_ProcessInitChain(&this->actor, sInitChain);
- PRINTF("spot17 obj. " T("噴煙", "volcanic smoke") " (arg_data 0x%04x)\n", this->actor.params);
+ PRINTF(T("spot17 obj. 噴煙 (arg_data 0x%04x)\n", "spot17 obj. volcanic smoke (arg_data 0x%04x)\n"),
+ this->actor.params);
}
void BgSpot17Funen_Destroy(Actor* thisx, PlayState* play) {
diff --git a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c
index 4f79fc5f39..5e4c7896f7 100644
--- a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c
+++ b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c
@@ -171,7 +171,7 @@ void BgSpot18Basket_Init(Actor* thisx, PlayState* play) {
if (this->dyna.actor.child == NULL) {
PRINTF_COLOR_RED();
- PRINTF(T("Error : 変化壷蓋発生失敗", "Error : Failed to generate the change pot cover") "(%s %d)\n",
+ PRINTF(T("Error : 変化壷蓋発生失敗(%s %d)\n", "Error : Failed to spawn the change pot cover (%s %d)\n"),
"../z_bg_spot18_basket.c", 351);
PRINTF_RST();
Actor_Kill(&this->dyna.actor);
diff --git a/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c b/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c
index c1ebb465a0..e5ebde92cf 100644
--- a/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c
+++ b/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c
@@ -108,7 +108,8 @@ s32 func_808B8910(BgSpot18Obj* this, PlayState* play) {
} else if (LINK_AGE_IN_YEARS == YEARS_CHILD) {
age = 0;
} else {
- PRINTF(T("Error : リンク年齢不詳", "Error : Link age unknown") " (%s %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Error : リンク年齢不詳 (%s %d)(arg_data 0x%04x)\n",
+ "Error : Link age unknown (%s %d)(arg_data 0x%04x)\n"),
"../z_bg_spot18_obj.c", 182, this->dyna.actor.params);
return 0;
}
@@ -121,12 +122,13 @@ s32 func_808B8910(BgSpot18Obj* this, PlayState* play) {
}
return D_808B90F0[PARAMS_GET_U(this->dyna.actor.params, 0, 4)][age];
case 2:
- PRINTF(T("Error : Obj出現判定が設定されていない",
- "Error : Obj appearance detection is not set") "(%s %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Error : Obj出現判定が設定されていない(%s %d)(arg_data 0x%04x)\n",
+ "Error : Obj appearance detection is not set (%s %d)(arg_data 0x%04x)\n"),
"../z_bg_spot18_obj.c", 202, this->dyna.actor.params);
return 0;
default:
- PRINTF(T("Error : Obj出現判定失敗", "Error : Obj appearance check failed") "(%s %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Error : Obj出現判定失敗(%s %d)(arg_data 0x%04x)\n",
+ "Error : Obj appearance check failed (%s %d)(arg_data 0x%04x)\n"),
"../z_bg_spot18_obj.c", 210, this->dyna.actor.params);
}
return 0;
diff --git a/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c b/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c
index 9e6fca4b52..723852f33b 100644
--- a/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c
+++ b/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c
@@ -294,9 +294,9 @@ void BgYdanSp_FloorWebIdle(BgYdanSp* this, PlayState* play) {
webPos.x = this->dyna.actor.world.pos.x;
webPos.y = this->dyna.actor.world.pos.y - 50.0f;
webPos.z = this->dyna.actor.world.pos.z;
- if (Player_IsBurningStickInRange(play, &webPos, 70.0f, 50.0f) != 0) {
- this->dyna.actor.home.pos.x = player->meleeWeaponInfo[0].tip.x;
- this->dyna.actor.home.pos.z = player->meleeWeaponInfo[0].tip.z;
+ if (Player_IsBurningStickInRange(play, &webPos, 70.0f, 50.0f)) {
+ this->dyna.actor.home.pos.x = MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])->x;
+ this->dyna.actor.home.pos.z = MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])->z;
BgYdanSp_BurnWeb(this, play);
return;
}
@@ -412,10 +412,10 @@ void BgYdanSp_WallWebIdle(BgYdanSp* this, PlayState* play) {
this->dyna.actor.home.pos.y = this->dyna.actor.world.pos.y + 80.0f;
BgYdanSp_BurnWeb(this, play);
} else if (player->heldItemAction == PLAYER_IA_DEKU_STICK && player->unk_860 != 0) {
- Actor_WorldToActorCoords(&this->dyna.actor, &sp30, &player->meleeWeaponInfo[0].tip);
+ Actor_WorldToActorCoords(&this->dyna.actor, &sp30, MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0]));
if (fabsf(sp30.x) < 100.0f && sp30.z < 1.0f && sp30.y < 200.0f) {
OnePointCutscene_Init(play, 3020, 40, &this->dyna.actor, CAM_ID_MAIN);
- Math_Vec3f_Copy(&this->dyna.actor.home.pos, &player->meleeWeaponInfo[0].tip);
+ Math_Vec3f_Copy(&this->dyna.actor.home.pos, MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0]));
BgYdanSp_BurnWeb(this, play);
}
}
diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c
index ba7d4b2643..631faf93b8 100644
--- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c
+++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c
@@ -17,6 +17,7 @@
#include "sfx.h"
#include "sys_math.h"
#include "sys_matrix.h"
+#include "tex_len.h"
#include "versions.h"
#include "z_lib.h"
#include "effect.h"
@@ -28,10 +29,10 @@
#include "assets/objects/object_ganon2/object_ganon2.h"
#include "assets/objects/object_ganon_anime3/object_ganon_anime3.h"
#include "assets/objects/object_geff/object_geff.h"
-#include "assets/overlays/ovl_Boss_Ganon2/ovl_Boss_Ganon2.h"
+#include "assets/objects/gameplay_keep/gameplay_keep.h"
-#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
- "ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
+#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:128" \
+ "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
@@ -75,6 +76,19 @@ void BossGanon2_DrawEffects(PlayState* play);
void BossGanon2_GenShadowTexture(void* shadowTexture, BossGanon2* this, PlayState* play);
void BossGanon2_DrawShadowTexture(void* shadowTexture, BossGanon2* this, PlayState* play);
+static Gfx gGanonLightOrbMaterialDL[14];
+static Gfx gGanonLightOrbModelDL[3];
+static Gfx gGanonShadowMaterialDL[4];
+static Gfx gGanonShadowModelDL[6];
+static Vtx gGanonSwordTrailVtx[22];
+static Gfx gGanonSwordTrailDL[35];
+static Gfx gGanonTriforceDL[16];
+static Gfx gGanonLightningDL[17];
+static Gfx gGanonFireRingDL[36];
+static Gfx gGanonZeldaMagicDL[33];
+static Gfx gGanonMasterSwordShadowDL[16];
+static Gfx gGanonMasterSwordDL[122];
+
ActorProfile Boss_Ganon2_Profile = {
/**/ ACTOR_BOSS_GANON2,
/**/ ACTORCAT_BOSS,
@@ -3460,4 +3474,145 @@ void BossGanon2_DrawShadowTexture(void* shadowTexture, BossGanon2* this, PlaySta
// padding
static u32 D_809071FC[2] = { 0 };
-#include "assets/overlays/ovl_Boss_Ganon2/ovl_Boss_Ganon2.c"
+#define gGanonLightOrbTex_WIDTH 64
+#define gGanonLightOrbTex_HEIGHT 64
+static u64 gGanonLightOrbTex[TEX_LEN(u64, gGanonLightOrbTex_WIDTH, gGanonLightOrbTex_HEIGHT, 8)] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonLightOrbTex.i8.inc.c"
+};
+
+static Vtx gGanonLightOrbModelVtx[] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonLightOrbModelVtx.inc.c"
+};
+
+static Gfx gGanonLightOrbMaterialDL[14] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonLightOrbMaterialDL.inc.c"
+};
+
+static Gfx gGanonLightOrbModelDL[3] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonLightOrbModelDL.inc.c"
+};
+
+static Vtx gGanonShadowModelVtx[] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonShadowModelVtx.inc.c"
+};
+
+static Gfx gGanonShadowMaterialDL[4] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonShadowMaterialDL.inc.c"
+};
+
+static Gfx gGanonShadowModelDL[6] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonShadowModelDL.inc.c"
+};
+
+#define gGanonSwordTrailTex_WIDTH 32
+#define gGanonSwordTrailTex_HEIGHT 32
+static u64 gGanonSwordTrailTex[TEX_LEN(u64, gGanonSwordTrailTex_WIDTH, gGanonSwordTrailTex_HEIGHT, 8)] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonSwordTrailTex.i8.inc.c"
+};
+
+#define gGanonSwordTrailMaskTex_WIDTH 32
+#define gGanonSwordTrailMaskTex_HEIGHT 32
+static u64 gGanonSwordTrailMaskTex[TEX_LEN(u64, gGanonSwordTrailMaskTex_WIDTH, gGanonSwordTrailMaskTex_HEIGHT, 4)] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonSwordTrailMaskTex.i4.inc.c"
+};
+
+static Vtx gGanonSwordTrailVtx[22] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonSwordTrailVtx.inc.c"
+};
+
+static Gfx gGanonSwordTrailDL[35] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonSwordTrailDL.inc.c"
+};
+
+#define gGanonTriforceTex_WIDTH 64
+#define gGanonTriforceTex_HEIGHT 64
+static u64 gGanonTriforceTex[TEX_LEN(u64, gGanonTriforceTex_WIDTH, gGanonTriforceTex_HEIGHT, 8)] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonTriforceTex.i8.inc.c"
+};
+
+static Vtx gGanonTriforceVtx[] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonTriforceVtx.inc.c"
+};
+
+static Gfx gGanonTriforceDL[16] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonTriforceDL.inc.c"
+};
+
+#define gGanonLightningTex_WIDTH 32
+#define gGanonLightningTex_HEIGHT 160
+static u64 gGanonLightningTex[TEX_LEN(u64, gGanonLightningTex_WIDTH, gGanonLightningTex_HEIGHT, 4)] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonLightningTex.i4.inc.c"
+};
+
+static Vtx gGanonLightningVtx[] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonLightningVtx.inc.c"
+};
+
+static Gfx gGanonLightningDL[17] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonLightningDL.inc.c"
+};
+
+#define gGanonFireRingTex_WIDTH 32
+#define gGanonFireRingTex_HEIGHT 64
+static u64 gGanonFireRingTex[TEX_LEN(u64, gGanonFireRingTex_WIDTH, gGanonFireRingTex_HEIGHT, 8)] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonFireRingTex.i8.inc.c"
+};
+
+static Vtx gGanonFireRingVtx[] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonFireRingVtx.inc.c"
+};
+
+static Gfx gGanonFireRingDL[36] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonFireRingDL.inc.c"
+};
+
+#define gGanonZeldaMagicTex_WIDTH 32
+#define gGanonZeldaMagicTex_HEIGHT 64
+static u64 gGanonZeldaMagicTex[TEX_LEN(u64, gGanonZeldaMagicTex_WIDTH, gGanonZeldaMagicTex_HEIGHT, 8)] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonZeldaMagicTex.i8.inc.c"
+};
+
+static Vtx gGanonZeldaMagicVtx[] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonZeldaMagicVtx.inc.c"
+};
+
+static Gfx gGanonZeldaMagicDL[33] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonZeldaMagicDL.inc.c"
+};
+
+#define gGanonMasterSwordShadowTex_WIDTH 32
+#define gGanonMasterSwordShadowTex_HEIGHT 32
+static u64
+ gGanonMasterSwordShadowTex[TEX_LEN(u64, gGanonMasterSwordShadowTex_WIDTH, gGanonMasterSwordShadowTex_HEIGHT, 8)] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonMasterSwordShadowTex.i8.inc.c"
+ };
+
+static Vtx gGanonMasterSwordShadowVtx[] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonMasterSwordShadowVtx.inc.c"
+};
+
+static Gfx gGanonMasterSwordShadowDL[16] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonMasterSwordShadowDL.inc.c"
+};
+
+#define gGanonMasterSwordPommelTex_WIDTH 16
+#define gGanonMasterSwordPommelTex_HEIGHT 16
+static u64 gGanonMasterSwordPommelTex[TEX_LEN(u64, gGanonMasterSwordPommelTex_WIDTH, gGanonMasterSwordPommelTex_HEIGHT,
+ 16)] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonMasterSwordPommelTex.rgba16.inc.c"
+};
+
+#define gGanonMasterSwordGuardTex_WIDTH 32
+#define gGanonMasterSwordGuardTex_HEIGHT 32
+static u64
+ gGanonMasterSwordGuardTex[TEX_LEN(u64, gGanonMasterSwordGuardTex_WIDTH, gGanonMasterSwordGuardTex_HEIGHT, 16)] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonMasterSwordGuardTex.rgba16.inc.c"
+ };
+
+static Vtx gGanonMasterSwordVtx[] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonMasterSwordVtx.inc.c"
+};
+
+static Gfx gGanonMasterSwordDL[122] = {
+#include "assets/overlays/ovl_Boss_Ganon2/gGanonMasterSwordDL.inc.c"
+};
diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c
index fd18b10ece..23fccf40f3 100644
--- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c
+++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c
@@ -33,7 +33,7 @@
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
- "ique-cn:128 pal-1.0:128 pal-1.1:128"
+ "ique-cn:128 pal-1.0:0 pal-1.1:0"
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
@@ -2769,7 +2769,7 @@ void BossSst_DrawHand(Actor* thisx, PlayState* play) {
gSPSegment(POLY_OPA_DISP++, 0x08, &D_80116280[2]);
} else {
gDPSetEnvColor(POLY_OPA_DISP++, sStaticColor.r, sStaticColor.g, sStaticColor.b, 0);
- gSPSegment(POLY_OPA_DISP++, 0x08, sBodyStaticDList);
+ gSPSegment(POLY_OPA_DISP++, 0x08, sBodyStaticDL);
}
SkelAnime_DrawFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
@@ -2795,7 +2795,7 @@ void BossSst_DrawHand(Actor* thisx, PlayState* play) {
&trail->world.rot);
Matrix_Scale(0.02f, 0.02f, 0.02f, MTXMODE_APPLY);
- gSPSegment(POLY_XLU_DISP++, 0x08, sHandTrailDList);
+ gSPSegment(POLY_XLU_DISP++, 0x08, sHandTrailDL);
gDPSetPrimColor(POLY_XLU_DISP++, 0x00, 0x00, ((3 - i) * 10) + 20, 0, ((3 - i) * 20) + 50,
((3 - i) * 30) + 70);
@@ -2904,7 +2904,7 @@ void BossSst_DrawHead(Actor* thisx, PlayState* play) {
gSPSegment(POLY_OPA_DISP++, 0x08, &D_80116280[2]);
} else {
gDPSetEnvColor(POLY_OPA_DISP++, sStaticColor.r, sStaticColor.g, sStaticColor.b, 0);
- gSPSegment(POLY_OPA_DISP++, 0x08, sBodyStaticDList);
+ gSPSegment(POLY_OPA_DISP++, 0x08, sBodyStaticDL);
}
} else {
Gfx_SetupDL_25Xlu(play->state.gfxCtx);
@@ -2956,7 +2956,7 @@ void BossSst_DrawHead(Actor* thisx, PlayState* play) {
Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY);
MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_sst.c", 6934);
- gSPDisplayList(POLY_XLU_DISP++, sIntroVanishDList);
+ gSPDisplayList(POLY_XLU_DISP++, sIntroVanishDL);
}
CLOSE_DISPS(play->state.gfxCtx, "../z_boss_sst.c", 6941);
@@ -3257,7 +3257,7 @@ void BossSst_DrawEffects(Actor* thisx, PlayState* play) {
Matrix_Scale(effect->scale * 0.001f, 1.0f, effect->scale * 0.001f, MTXMODE_APPLY);
MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_sst.c", 7423);
- gSPDisplayList(POLY_XLU_DISP++, sShadowDList);
+ gSPDisplayList(POLY_XLU_DISP++, sShadowDL);
effect++;
}
}
diff --git a/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c b/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c
index fd54803e25..abfbb1d29b 100644
--- a/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c
+++ b/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c
@@ -181,7 +181,26 @@ void ElfMsg_Update(Actor* thisx, PlayState* play) {
}
#if DEBUG_ASSETS
-#include "assets/overlays/ovl_Elf_Msg/ovl_Elf_Msg.c"
+
+static Gfx sMaterialDL[8] = {
+#include "assets/overlays/ovl_Elf_Msg/sMaterialDL.inc.c"
+};
+
+static Vtx sCylinderVtx[] = {
+#include "assets/overlays/ovl_Elf_Msg/sCylinderVtx.inc.c"
+};
+
+static Gfx sCylinderDL[16] = {
+#include "assets/overlays/ovl_Elf_Msg/sCylinderDL.inc.c"
+};
+
+static Vtx sCubeVtx[] = {
+#include "assets/overlays/ovl_Elf_Msg/sCubeVtx.inc.c"
+};
+
+static Gfx sCubeDL[8] = {
+#include "assets/overlays/ovl_Elf_Msg/sCubeDL.inc.c"
+};
void ElfMsg_Draw(Actor* thisx, PlayState* play) {
OPEN_DISPS(play->state.gfxCtx, "../z_elf_msg.c", 436);
@@ -198,7 +217,7 @@ void ElfMsg_Draw(Actor* thisx, PlayState* play) {
}
MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_elf_msg.c", 448);
- gSPDisplayList(POLY_XLU_DISP++, D_809AD278);
+ gSPDisplayList(POLY_XLU_DISP++, sMaterialDL);
if (PARAMS_GET_NOSHIFT(thisx->params, 14, 1)) {
gSPDisplayList(POLY_XLU_DISP++, sCubeDL);
diff --git a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c
index 11a01bc4b8..9a7401619e 100644
--- a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c
+++ b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c
@@ -163,7 +163,18 @@ void ElfMsg2_Update(Actor* thisx, PlayState* play) {
}
#if DEBUG_ASSETS
-#include "assets/overlays/ovl_Elf_Msg2/ovl_Elf_Msg2.c"
+
+static Gfx sMaterialDL[8] = {
+#include "assets/overlays/ovl_Elf_Msg2/sMaterialDL.inc.c"
+};
+
+static Vtx sCubeVtx[] = {
+#include "assets/overlays/ovl_Elf_Msg2/sCubeVtx.inc.c"
+};
+
+static Gfx sCubeDL[8] = {
+#include "assets/overlays/ovl_Elf_Msg2/sCubeDL.inc.c"
+};
void ElfMsg2_Draw(Actor* thisx, PlayState* play) {
OPEN_DISPS(play->state.gfxCtx, "../z_elf_msg2.c", 355);
@@ -175,7 +186,7 @@ void ElfMsg2_Draw(Actor* thisx, PlayState* play) {
Gfx_SetupDL_25Opa(play->state.gfxCtx);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 100, 100, 255, R_NAVI_MSG_REGION_ALPHA);
MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_elf_msg2.c", 362);
- gSPDisplayList(POLY_XLU_DISP++, D_809ADC38);
+ gSPDisplayList(POLY_XLU_DISP++, sMaterialDL);
gSPDisplayList(POLY_XLU_DISP++, sCubeDL);
CLOSE_DISPS(play->state.gfxCtx, "../z_elf_msg2.c", 367);
diff --git a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c
index e6a697b21c..dd527d95bd 100644
--- a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c
+++ b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c
@@ -148,7 +148,7 @@ void EnAnubice_Init(Actor* thisx, PlayState* play) {
ANUBICE_LIMB_MAX);
PRINTF("\n\n");
- PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ アヌビス発生 ☆☆☆☆☆ \n", "☆☆☆☆☆ Anubis occurrence ☆☆☆☆☆ \n") VT_RST);
+ PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ アヌビス発生 ☆☆☆☆☆ \n", "☆☆☆☆☆ Anubis spawn ☆☆☆☆☆ \n") VT_RST);
this->actor.naviEnemyId = NAVI_ENEMY_ANUBIS;
diff --git a/src/overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.c b/src/overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.c
index 6fe71f26ff..9d49a27234 100644
--- a/src/overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.c
+++ b/src/overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.c
@@ -41,7 +41,7 @@ void EnAnubiceTag_Init(Actor* thisx, PlayState* play) {
EnAnubiceTag* this = (EnAnubiceTag*)thisx;
PRINTF("\n\n");
- PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ アヌビス制御タグ発生 ☆☆☆☆☆ %d\n", "☆☆☆☆☆ Anubis control tag generated ☆☆☆☆☆ %d\n")
+ PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ アヌビス制御タグ発生 ☆☆☆☆☆ %d\n", "☆☆☆☆☆ Anubis control tag spawn ☆☆☆☆☆ %d\n")
VT_RST,
this->actor.params);
diff --git a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c
index c4a90bec05..48517bfe41 100644
--- a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c
+++ b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c
@@ -429,36 +429,36 @@ void EnArrow_Update(Actor* thisx, PlayState* play) {
}
void func_809B4800(EnArrow* this, PlayState* play) {
- static Vec3f D_809B4E88 = { 0.0f, 400.0f, 1500.0f };
- static Vec3f D_809B4E94 = { 0.0f, -400.0f, 1500.0f };
+ static Vec3f sPosAOffset = { 0.0f, 400.0f, 1500.0f };
+ static Vec3f sPosBOffset = { 0.0f, -400.0f, 1500.0f };
static Vec3f D_809B4EA0 = { 0.0f, 0.0f, -300.0f };
- Vec3f sp44;
- Vec3f sp38;
+ Vec3f posA;
+ Vec3f posB;
s32 addBlureVertex;
Matrix_MultVec3f(&D_809B4EA0, &this->unk_21C);
if (EnArrow_Fly == this->actionFunc) {
- Matrix_MultVec3f(&D_809B4E88, &sp44);
- Matrix_MultVec3f(&D_809B4E94, &sp38);
+ Matrix_MultVec3f(&sPosAOffset, &posA);
+ Matrix_MultVec3f(&sPosBOffset, &posB);
if (this->actor.params <= ARROW_SEED) {
addBlureVertex = this->actor.params <= ARROW_LIGHT;
if (this->hitActor == NULL) {
- addBlureVertex &= func_80090480(play, &this->collider, &this->weaponInfo, &sp44, &sp38);
+ addBlureVertex &= Player_UpdateWeaponInfo(play, &this->collider, &this->weaponInfo, &posA, &posB);
} else {
if (addBlureVertex) {
- if ((sp44.x == this->weaponInfo.tip.x) && (sp44.y == this->weaponInfo.tip.y) &&
- (sp44.z == this->weaponInfo.tip.z) && (sp38.x == this->weaponInfo.base.x) &&
- (sp38.y == this->weaponInfo.base.y) && (sp38.z == this->weaponInfo.base.z)) {
+ if ((posA.x == this->weaponInfo.posA.x) && (posA.y == this->weaponInfo.posA.y) &&
+ (posA.z == this->weaponInfo.posA.z) && (posB.x == this->weaponInfo.posB.x) &&
+ (posB.y == this->weaponInfo.posB.y) && (posB.z == this->weaponInfo.posB.z)) {
addBlureVertex = false;
}
}
}
if (addBlureVertex) {
- EffectBlure_AddVertex(Effect_GetByIndex(this->effectIndex), &sp44, &sp38);
+ EffectBlure_AddVertex(Effect_GetByIndex(this->effectIndex), &posA, &posB);
}
}
}
diff --git a/src/overlays/actors/ovl_En_Boom/z_en_boom.c b/src/overlays/actors/ovl_En_Boom/z_en_boom.c
index d70422b1d0..f679755105 100644
--- a/src/overlays/actors/ovl_En_Boom/z_en_boom.c
+++ b/src/overlays/actors/ovl_En_Boom/z_en_boom.c
@@ -257,22 +257,22 @@ void EnBoom_Update(Actor* thisx, PlayState* play) {
}
void EnBoom_Draw(Actor* thisx, PlayState* play) {
- static Vec3f sMultVec1 = { -960.0f, 0.0f, 0.0f };
- static Vec3f sMultVec2 = { 960.0f, 0.0f, 0.0f };
+ static Vec3f sPosAOffset = { -960.0f, 0.0f, 0.0f };
+ static Vec3f sPosBOffset = { 960.0f, 0.0f, 0.0f };
EnBoom* this = (EnBoom*)thisx;
- Vec3f vec1;
- Vec3f vec2;
+ Vec3f posA;
+ Vec3f posB;
OPEN_DISPS(play->state.gfxCtx, "../z_en_boom.c", 567);
Matrix_RotateY(BINANG_TO_RAD(this->actor.world.rot.y), MTXMODE_APPLY);
Matrix_RotateZ(BINANG_TO_RAD(0x1F40), MTXMODE_APPLY);
Matrix_RotateX(BINANG_TO_RAD(this->actor.world.rot.x), MTXMODE_APPLY);
- Matrix_MultVec3f(&sMultVec1, &vec1);
- Matrix_MultVec3f(&sMultVec2, &vec2);
+ Matrix_MultVec3f(&sPosAOffset, &posA);
+ Matrix_MultVec3f(&sPosBOffset, &posB);
- if (func_80090480(play, &this->collider, &this->boomerangInfo, &vec1, &vec2)) {
- EffectBlure_AddVertex(Effect_GetByIndex(this->effectIndex), &vec1, &vec2);
+ if (Player_UpdateWeaponInfo(play, &this->collider, &this->weaponInfo, &posA, &posB)) {
+ EffectBlure_AddVertex(Effect_GetByIndex(this->effectIndex), &posA, &posB);
}
Gfx_SetupDL_25Opa(play->state.gfxCtx);
diff --git a/src/overlays/actors/ovl_En_Boom/z_en_boom.h b/src/overlays/actors/ovl_En_Boom/z_en_boom.h
index f62edc7654..83b960bc66 100644
--- a/src/overlays/actors/ovl_En_Boom/z_en_boom.h
+++ b/src/overlays/actors/ovl_En_Boom/z_en_boom.h
@@ -17,7 +17,7 @@ typedef struct EnBoom {
/* 0x01D4 */ u8 returnTimer; // returns to Link when 0
/* 0x01D5 */ u8 activeTimer; // increments once every update
/* 0x01D8 */ s32 effectIndex;
- /* 0x01DC */ WeaponInfo boomerangInfo;
+ /* 0x01DC */ WeaponInfo weaponInfo;
/* 0x01F8 */ EnBoomActionFunc actionFunc;
} EnBoom; // size = 0x01FC
diff --git a/src/overlays/actors/ovl_En_Butte/z_en_butte.c b/src/overlays/actors/ovl_En_Butte/z_en_butte.c
index 58a5392306..888ef865e1 100644
--- a/src/overlays/actors/ovl_En_Butte/z_en_butte.c
+++ b/src/overlays/actors/ovl_En_Butte/z_en_butte.c
@@ -318,9 +318,11 @@ void EnButte_FollowLink(EnButte* this, PlayState* play) {
minAnimSpeed = 0.0f;
if ((this->flightParamsIdx != 0) && (this->timer < 12)) {
- swordTip.x = player->meleeWeaponInfo[0].tip.x + Math_SinS(player->actor.shape.rot.y) * 10.0f;
- swordTip.y = player->meleeWeaponInfo[0].tip.y;
- swordTip.z = player->meleeWeaponInfo[0].tip.z + Math_CosS(player->actor.shape.rot.y) * 10.0f;
+ swordTip.x =
+ MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])->x + Math_SinS(player->actor.shape.rot.y) * 10.0f;
+ swordTip.y = MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])->y;
+ swordTip.z =
+ MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])->z + Math_CosS(player->actor.shape.rot.y) * 10.0f;
yaw = Math_Vec3f_Yaw(&this->actor.world.pos, &swordTip) + (s16)(Rand_ZeroOne() * D_809CE410);
if (Math_ScaledStepToS(&this->actor.world.rot.y, yaw, 2000) != 0) {
@@ -332,7 +334,7 @@ void EnButte_FollowLink(EnButte* this, PlayState* play) {
}
}
- this->posYTarget = MAX(player->actor.world.pos.y + 30.0f, player->meleeWeaponInfo[0].tip.y);
+ this->posYTarget = MAX(player->actor.world.pos.y + 30.0f, MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])->y);
EnButte_Turn(this);
@@ -352,7 +354,8 @@ void EnButte_FollowLink(EnButte* this, PlayState* play) {
(this->swordDownTimer <= 0) && (distSqFromHome < SQ(320.0f)))) {
EnButte_SetupFlyAround(this);
} else if (distSqFromHome > SQ(240.0f)) {
- distSqFromSword = Math3D_Dist2DSq(player->meleeWeaponInfo[0].tip.x, player->meleeWeaponInfo[0].tip.z,
+ distSqFromSword = Math3D_Dist2DSq(MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])->x,
+ MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])->z,
this->actor.world.pos.x, this->actor.world.pos.z);
if (distSqFromSword < SQ(60.0f)) {
EnButte_SetupTransformIntoFairy(this);
diff --git a/src/overlays/actors/ovl_En_Changer/z_en_changer.c b/src/overlays/actors/ovl_En_Changer/z_en_changer.c
index ea951a0726..c400d0e08d 100644
--- a/src/overlays/actors/ovl_En_Changer/z_en_changer.c
+++ b/src/overlays/actors/ovl_En_Changer/z_en_changer.c
@@ -122,7 +122,7 @@ void EnChanger_Init(Actor* thisx, PlayState* play2) {
Actor_Spawn(&play->actorCtx, play, ACTOR_ITEM_ETCETERA, 20.0f, 20.0f, -2500.0f, 0, 0, 0,
((sTreasureFlags[5] & 0x1F) << 8) + rewardParams);
PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ 中央宝発生(GREAT) ☆☆☆☆☆ %x\n",
- "☆☆☆☆☆ Central treasure occurrence (GREAT) ☆☆☆☆☆ %x\n") VT_RST,
+ "☆☆☆☆☆ Central treasure spawn (GREAT) ☆☆☆☆☆ %x\n") VT_RST,
rewardChestParams);
this->actionFunc = EnChanger_SetHeartPieceFlag;
return;
@@ -160,7 +160,7 @@ void EnChanger_Init(Actor* thisx, PlayState* play2) {
if (this->leftChest != NULL) {
PRINTF(VT_FGCOL(MAGENTA) T("☆☆☆☆☆ 左宝発生(ナニがはいってるの?) ☆☆☆☆☆ %x\n",
- "☆☆☆☆☆ Left treasure generation (what does it contain?) ☆☆☆☆☆ %x\n") VT_RST,
+ "☆☆☆☆☆ Left treasure spawn (what does it contain?) ☆☆☆☆☆ %x\n") VT_RST,
leftChestParams);
PRINTF(VT_FGCOL(MAGENTA) T("☆☆☆☆☆ 部屋番号は? %x\n", "☆☆☆☆☆ What is the room number? %x\n") VT_RST,
play->roomCtx.curRoom.num);
@@ -185,7 +185,7 @@ void EnChanger_Init(Actor* thisx, PlayState* play2) {
if (this->rightChest != NULL) {
PRINTF(VT_FGCOL(CYAN) T("☆☆☆☆☆ 右宝発生(ナニがはいってるの?) ☆☆☆☆☆ %x\n",
- "☆☆☆☆☆ Right treasure generation (what does it contain?) ☆☆☆☆☆ %x\n") VT_RST,
+ "☆☆☆☆☆ Right treasure spawn (what does it contain?) ☆☆☆☆☆ %x\n") VT_RST,
rightChestParams);
PRINTF(VT_FGCOL(CYAN) T("☆☆☆☆☆ 部屋番号は? %d\n", "☆☆☆☆☆ What is the room number? %d\n") VT_RST,
play->roomCtx.curRoom.num);
diff --git a/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c b/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c
index 53dc831f86..24e881840f 100644
--- a/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c
+++ b/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c
@@ -98,8 +98,9 @@ void EnDntDemo_Init(Actor* thisx, PlayState* play2) {
this->scrubPos[i].x, this->scrubPos[i].y, this->scrubPos[i].z,
0, 0, 0, i + ENDNTNOMAL_STAGE);
if (this->scrubs[i] != NULL) {
- // "zako zako" [small fries]
- PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ ザコザコ ☆☆☆☆☆ %x\n" VT_RST, this->scrubs[i]);
+ // [small fry]
+ PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ ザコザコ ☆☆☆☆☆ %x\n", "☆☆☆☆☆ zako zako ☆☆☆☆☆ %x\n") VT_RST,
+ this->scrubs[i]);
}
}
@@ -161,8 +162,8 @@ void EnDntDemo_Judge(EnDntDemo* this, PlayState* play) {
}
}
if (this->judgeTimer > 40) {
- // "gera gera" [onomatopoeia for loud giggling]
- PRINTF(VT_FGCOL(RED) "☆☆☆☆☆ げらげら ☆☆☆☆☆ \n" VT_RST);
+ // [onomatopoeia for loud giggling]
+ PRINTF(VT_FGCOL(RED) T("☆☆☆☆☆ げらげら ☆☆☆☆☆ \n", "☆☆☆☆☆ gera gera ☆☆☆☆☆ \n") VT_RST);
func_800F436C(&this->actor.projectedPos, NA_SE_EV_CROWD - SFX_FLAG, 2.0f);
}
if (this->judgeTimer < 120) {
diff --git a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c
index 9234904d05..b1f714e5df 100644
--- a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c
+++ b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c
@@ -249,11 +249,11 @@ void EnEncount2_SpawnRocks(EnEncount2* this, PlayState* play) {
this->numSpawnedRocks++;
return;
}
- PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n", "☆☆☆☆☆ Can't occur! ☆☆☆☆☆\n") VT_RST);
- PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n", "☆☆☆☆☆ Can't occur! ☆☆☆☆☆\n") VT_RST);
- PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n", "☆☆☆☆☆ Can't occur! ☆☆☆☆☆\n") VT_RST);
- PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n", "☆☆☆☆☆ Can't occur! ☆☆☆☆☆\n") VT_RST);
- PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n\n", "☆☆☆☆☆ Can't occur! ☆☆☆☆☆\n\n") VT_RST);
+ PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n", "☆☆☆☆☆ Can't spawn! ☆☆☆☆☆\n") VT_RST);
+ PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n", "☆☆☆☆☆ Can't spawn! ☆☆☆☆☆\n") VT_RST);
+ PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n", "☆☆☆☆☆ Can't spawn! ☆☆☆☆☆\n") VT_RST);
+ PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n", "☆☆☆☆☆ Can't spawn! ☆☆☆☆☆\n") VT_RST);
+ PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n\n", "☆☆☆☆☆ Can't spawn! ☆☆☆☆☆\n\n") VT_RST);
}
}
}
diff --git a/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c b/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c
index 6237f84e06..0830301e04 100644
--- a/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c
+++ b/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c
@@ -10,6 +10,7 @@
#include "gfx_setupdl.h"
#include "printf.h"
#include "sys_matrix.h"
+#include "tex_len.h"
#include "play_state.h"
#include "overlays/actors/ovl_Boss_Ganon/z_boss_ganon.h"
@@ -35,7 +36,95 @@ ActorProfile En_Ganon_Organ_Profile = {
static u64 sForceAlignment = 0;
-#include "assets/overlays/ovl_En_Ganon_Organ/ovl_En_Ganon_Organ.c"
+#define sRoomCarpetTex_WIDTH 64
+#define sRoomCarpetTex_HEIGHT 16
+static u64 sRoomCarpetTex[TEX_LEN(u64, sRoomCarpetTex_WIDTH, sRoomCarpetTex_HEIGHT, 16)] = {
+#include "assets/overlays/ovl_En_Ganon_Organ/sRoomCarpetTex.rgba16.inc.c"
+};
+
+#define sRoomOrganPipeTex_WIDTH 16
+#define sRoomOrganPipeTex_HEIGHT 64
+static u64 sRoomOrganPipeTex[TEX_LEN(u64, sRoomOrganPipeTex_WIDTH, sRoomOrganPipeTex_HEIGHT, 4)] = {
+#include "assets/overlays/ovl_En_Ganon_Organ/sRoomOrganPipeTex.i4.inc.c"
+};
+
+#define sRoomOrganCorbelsTex_WIDTH 16
+#define sRoomOrganCorbelsTex_HEIGHT 16
+static u64 sRoomOrganCorbelsTex[TEX_LEN(u64, sRoomOrganCorbelsTex_WIDTH, sRoomOrganCorbelsTex_HEIGHT, 4)] = {
+#include "assets/overlays/ovl_En_Ganon_Organ/sRoomOrganCorbelsTex.i4.inc.c"
+};
+
+#define sRoomOrganGrillTex_WIDTH 16
+#define sRoomOrganGrillTex_HEIGHT 16
+static u64 sRoomOrganGrillTex[TEX_LEN(u64, sRoomOrganGrillTex_WIDTH, sRoomOrganGrillTex_HEIGHT, 16)] = {
+#include "assets/overlays/ovl_En_Ganon_Organ/sRoomOrganGrillTex.rgba16.inc.c"
+};
+
+#define sRoomCrestFriezeTex_WIDTH 32
+#define sRoomCrestFriezeTex_HEIGHT 32
+static u64 sRoomCrestFriezeTex[TEX_LEN(u64, sRoomCrestFriezeTex_WIDTH, sRoomCrestFriezeTex_HEIGHT, 4)] = {
+#include "assets/overlays/ovl_En_Ganon_Organ/sRoomCrestFriezeTex.i4.inc.c"
+};
+
+#define sRoomColumnFriezeAndCanopyTex_WIDTH 16
+#define sRoomColumnFriezeAndCanopyTex_HEIGHT 16
+static u64 sRoomColumnFriezeAndCanopyTex[TEX_LEN(u64, sRoomColumnFriezeAndCanopyTex_WIDTH,
+ sRoomColumnFriezeAndCanopyTex_HEIGHT, 4)] = {
+#include "assets/overlays/ovl_En_Ganon_Organ/sRoomColumnFriezeAndCanopyTex.i4.inc.c"
+};
+
+#define sRoomColumnMetalEdgingTex_WIDTH 16
+#define sRoomColumnMetalEdgingTex_HEIGHT 16
+static u64
+ sRoomColumnMetalEdgingTex[TEX_LEN(u64, sRoomColumnMetalEdgingTex_WIDTH, sRoomColumnMetalEdgingTex_HEIGHT, 16)] = {
+#include "assets/overlays/ovl_En_Ganon_Organ/sRoomColumnMetalEdgingTex.rgba16.inc.c"
+ };
+
+#define sRoomStatueWingTex_WIDTH 16
+#define sRoomStatueWingTex_HEIGHT 16
+static u64 sRoomStatueWingTex[TEX_LEN(u64, sRoomStatueWingTex_WIDTH, sRoomStatueWingTex_HEIGHT, 16)] = {
+#include "assets/overlays/ovl_En_Ganon_Organ/sRoomStatueWingTex.rgba16.inc.c"
+};
+
+#define sRoomPillarTex_WIDTH 8
+#define sRoomPillarTex_HEIGHT 32
+static u64 sRoomPillarTex[TEX_LEN(u64, sRoomPillarTex_WIDTH, sRoomPillarTex_HEIGHT, 8)] = {
+#include "assets/overlays/ovl_En_Ganon_Organ/sRoomPillarTex.i8.inc.c"
+};
+
+#define sRoomOrganKeyboardTex_WIDTH 32
+#define sRoomOrganKeyboardTex_HEIGHT 8
+static u64 sRoomOrganKeyboardTex[TEX_LEN(u64, sRoomOrganKeyboardTex_WIDTH, sRoomOrganKeyboardTex_HEIGHT, 16)] = {
+#include "assets/overlays/ovl_En_Ganon_Organ/sRoomOrganKeyboardTex.rgba16.inc.c"
+};
+
+#define sRoomOrganKeyEndTex_WIDTH 4
+#define sRoomOrganKeyEndTex_HEIGHT 8
+static u64 sRoomOrganKeyEndTex[TEX_LEN(u64, sRoomOrganKeyEndTex_WIDTH, sRoomOrganKeyEndTex_HEIGHT, 16)] = {
+#include "assets/overlays/ovl_En_Ganon_Organ/sRoomOrganKeyEndTex.rgba16.inc.c"
+};
+
+#define sRoomStepTex_WIDTH 16
+#define sRoomStepTex_HEIGHT 16
+static u64 sRoomStepTex[TEX_LEN(u64, sRoomStepTex_WIDTH, sRoomStepTex_HEIGHT, 4)] = {
+#include "assets/overlays/ovl_En_Ganon_Organ/sRoomStepTex.i4.inc.c"
+};
+
+static Vtx sRoomOrganAndFloorVtx[] = {
+#include "assets/overlays/ovl_En_Ganon_Organ/sRoomOrganAndFloorVtx.inc.c"
+};
+
+static Gfx sRoomOrganAndFloorDL[429] = {
+#include "assets/overlays/ovl_En_Ganon_Organ/sRoomOrganAndFloorDL.inc.c"
+};
+
+static Vtx sRoomStatuesVtx[] = {
+#include "assets/overlays/ovl_En_Ganon_Organ/sRoomStatuesVtx.inc.c"
+};
+
+static Gfx sRoomStatuesDL[152] = {
+#include "assets/overlays/ovl_En_Ganon_Organ/sRoomStatuesDL.inc.c"
+};
void EnGanonOrgan_Init(Actor* thisx, PlayState* play) {
thisx->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED;
diff --git a/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c b/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c
index 94b2d43368..e377c17ae5 100644
--- a/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c
+++ b/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c
@@ -100,7 +100,8 @@ void EnHeishi1_Init(Actor* thisx, PlayState* play2) {
PRINTF(VT_FGCOL(GREEN) T(" 種類☆☆☆☆☆☆☆☆☆☆☆☆☆ %d\n", " type ☆☆☆☆☆☆☆☆☆☆☆☆☆ %d\n") VT_RST,
this->type);
- PRINTF(VT_FGCOL(YELLOW) " れえるでぇたぁ☆☆☆☆☆☆☆☆ %d\n" VT_RST, this->path);
+ PRINTF(VT_FGCOL(YELLOW) T(" れえるでぇたぁ☆☆☆☆☆☆☆☆ %d\n", " rail data ☆☆☆☆☆☆☆☆ %d\n") VT_RST,
+ this->path);
PRINTF(VT_FGCOL(MAGENTA) " anime_frame_speed ☆☆☆☆☆☆ %f\n" VT_RST, this->animSpeed);
PRINTF(VT_FGCOL(MAGENTA) T(" 補間フレーム☆☆☆☆☆☆☆☆☆ %f\n", " interpolation frame ☆☆☆☆☆☆☆☆☆ %f\n") VT_RST,
this->animMorphFrames);
diff --git a/src/overlays/actors/ovl_En_Horse/z_en_horse.c b/src/overlays/actors/ovl_En_Horse/z_en_horse.c
index c7ba194fa4..efeb7b6f39 100644
--- a/src/overlays/actors/ovl_En_Horse/z_en_horse.c
+++ b/src/overlays/actors/ovl_En_Horse/z_en_horse.c
@@ -1777,7 +1777,7 @@ void EnHorse_Inactive(EnHorse* this, PlayState* play2) {
// Focus the camera on Epona
Camera_SetViewParam(play->cameraPtrs[CAM_ID_MAIN], CAM_VIEW_TARGET, &this->actor);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_TURN_AROUND);
- Camera_SetCameraData(play->cameraPtrs[CAM_ID_MAIN], 4, NULL, NULL, 0x51, 0, 0);
+ Camera_SetCameraData(play->cameraPtrs[CAM_ID_MAIN], CAM_DATA_SET_2, NULL, NULL, CAM_ITEM_TYPE_81, 0, 0);
}
}
if (!(this->stateFlags & ENHORSE_INACTIVE)) {
@@ -1853,7 +1853,7 @@ void EnHorse_Idle(EnHorse* this, PlayState* play) {
EnHorse_SetFollowAnimation(this, play);
Camera_SetViewParam(play->cameraPtrs[CAM_ID_MAIN], CAM_VIEW_TARGET, &this->actor);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_TURN_AROUND);
- Camera_SetCameraData(play->cameraPtrs[CAM_ID_MAIN], 4, NULL, NULL, 0x51, 0, 0);
+ Camera_SetCameraData(play->cameraPtrs[CAM_ID_MAIN], CAM_DATA_SET_2, NULL, NULL, CAM_ITEM_TYPE_81, 0, 0);
}
} else {
Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
diff --git a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c
index 15859de70f..6752e92d1c 100644
--- a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c
+++ b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c
@@ -85,8 +85,7 @@ void EnKakasi3_Init(Actor* thisx, PlayState* play) {
EnKakasi3* this = (EnKakasi3*)thisx;
PRINTF("\n\n");
- // "Obonur" -- Related to the name of the scarecrow (Bonooru)
- PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ おーボヌール ☆☆☆☆☆ \n" VT_RST);
+ PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ おーボヌール ☆☆☆☆☆ \n", "☆☆☆☆☆ Bonooru ☆☆☆☆☆ \n") VT_RST);
this->actor.attentionRangeType = ATTENTION_RANGE_6;
Collider_InitCylinder(play, &this->collider);
diff --git a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c
index 88098c93bf..ed01e29e4a 100644
--- a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c
+++ b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c
@@ -1,3 +1,9 @@
+/*
+ * File: z_en_ma2.c
+ * Overlay: En_Ma2
+ * Description: Adult Malon (Stables / Ranch Pre-Epona)
+ */
+
#include "z_en_ma2.h"
#include "gfx.h"
@@ -25,14 +31,14 @@ void EnMa2_Destroy(Actor* thisx, PlayState* play);
void EnMa2_Update(Actor* thisx, PlayState* play);
void EnMa2_Draw(Actor* thisx, PlayState* play);
-void func_80AA1AE4(EnMa2* this, PlayState* play);
-s32 func_80AA1C68(EnMa2* this);
+void EnMa2_UpdateTracking(EnMa2* this, PlayState* play);
+s32 EnMa2_IsSinging(EnMa2* this);
void EnMa2_UpdateEyes(EnMa2* this);
-void func_80AA1DB4(EnMa2* this, PlayState* play);
-void func_80AA2018(EnMa2* this, PlayState* play);
-void func_80AA204C(EnMa2* this, PlayState* play);
-void func_80AA20E4(EnMa2* this, PlayState* play);
-void func_80AA21C8(EnMa2* this, PlayState* play);
+void EnMa2_UpdateSinging(EnMa2* this, PlayState* play);
+void EnMa2_WaitToEndTalk(EnMa2* this, PlayState* play);
+void EnMa2_WaitForOcarina(EnMa2* this, PlayState* play);
+void EnMa2_WaitForEponasSong(EnMa2* this, PlayState* play);
+void EnMa2_ForceTalkAfterSong(EnMa2* this, PlayState* play);
ActorProfile En_Ma2_Profile = {
/**/ ACTOR_EN_MA2,
@@ -69,11 +75,11 @@ static ColliderCylinderInit sCylinderInit = {
static CollisionCheckInfoInit2 sColChkInfoInit = { 0, 0, 0, 0, MASS_IMMOVABLE };
typedef enum EnMa2Animation {
- /* 0 */ ENMA2_ANIM_0,
- /* 1 */ ENMA2_ANIM_1,
- /* 2 */ ENMA2_ANIM_2,
- /* 3 */ ENMA2_ANIM_3,
- /* 4 */ ENMA2_ANIM_4
+ /* 0 */ MALON_ADULT_ANIM_IDLE,
+ /* 1 */ MALON_ADULT_ANIM_IDLE_NOMORPH,
+ /* 2 */ MALON_ADULT_ANIM_STANDING,
+ /* 3 */ MALON_ADULT_ANIM_SING,
+ /* 4 */ MALON_ADULT_ANIM_SING_NOMORPH
} EnMa2Animation;
static AnimationFrameCountInfo sAnimationInfo[] = {
@@ -92,9 +98,9 @@ u16 EnMa2_GetTextId(PlayState* play, Actor* thisx) {
return 0x2056;
}
if (IS_NIGHT) {
- if (GET_INFTABLE(INFTABLE_8C)) {
+ if (GET_INFTABLE(INFTABLE_TALKED_TO_ADULT_MALON_AFTER_SONG)) {
return 0x2052;
- } else if (GET_INFTABLE(INFTABLE_8E)) {
+ } else if (GET_INFTABLE(INFTABLE_PLAYED_SONG_FOR_ADULT_MALON)) {
return 0x2051;
} else {
return 0x2050;
@@ -110,9 +116,10 @@ s16 EnMa2_UpdateTalkState(PlayState* play, Actor* thisx) {
case TEXT_STATE_CLOSING:
switch (thisx->textId) {
case 0x2051:
- SET_INFTABLE(INFTABLE_8C);
+ SET_INFTABLE(INFTABLE_TALKED_TO_ADULT_MALON_AFTER_SONG);
talkState = NPC_TALK_STATE_ACTION;
break;
+ // unreachable, 0x2053 is a text id for Gossip Stones, which EnMa2 never sets
case 0x2053:
SET_INFTABLE(INFTABLE_8D);
talkState = NPC_TALK_STATE_IDLE;
@@ -135,7 +142,7 @@ s16 EnMa2_UpdateTalkState(PlayState* play, Actor* thisx) {
return talkState;
}
-void func_80AA1AE4(EnMa2* this, PlayState* play) {
+void EnMa2_UpdateTracking(EnMa2* this, PlayState* play) {
Player* player = GET_PLAYER(play);
s16 trackingMode;
@@ -151,47 +158,58 @@ void func_80AA1AE4(EnMa2* this, PlayState* play) {
Npc_TrackPoint(&this->actor, &this->interactInfo, 0, trackingMode);
}
-u16 func_80AA1B58(EnMa2* this, PlayState* play) {
+typedef enum {
+ MALON_ADULT_SPAWN_NONE = 0,
+ MALON_ADULT_SPAWN_DAY_STABLES_NO_EPONA,
+ MALON_ADULT_SPAWN_NIGHT_RANCH_NO_EPONA,
+ MALON_ADULT_SPAWN_ALWAYS
+} EnMa2SpawnIndex;
+
+u16 EnMa2_GetSpawnIndex(EnMa2* this, PlayState* play) {
if (LINK_IS_CHILD) {
- return 0;
+ return MALON_ADULT_SPAWN_NONE;
}
if (!GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) && (play->sceneId == SCENE_STABLE) && IS_DAY &&
(this->actor.shape.rot.z == 5)) {
- return 1;
+ return MALON_ADULT_SPAWN_DAY_STABLES_NO_EPONA;
}
if (!GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) && (play->sceneId == SCENE_LON_LON_RANCH) && IS_NIGHT &&
(this->actor.shape.rot.z == 6)) {
- return 2;
+ return MALON_ADULT_SPAWN_NIGHT_RANCH_NO_EPONA;
}
if (!GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) || (play->sceneId != SCENE_LON_LON_RANCH)) {
- return 0;
+ return MALON_ADULT_SPAWN_NONE;
}
if ((this->actor.shape.rot.z == 7) && IS_DAY) {
- return 3;
+ return MALON_ADULT_SPAWN_ALWAYS;
}
if ((this->actor.shape.rot.z == 8) && IS_NIGHT) {
- return 3;
+ return MALON_ADULT_SPAWN_ALWAYS;
}
- return 0;
+ return MALON_ADULT_SPAWN_NONE;
}
-s32 func_80AA1C68(EnMa2* this) {
+s32 EnMa2_IsSinging(EnMa2* this) {
if (this->skelAnime.animation != &gMalonAdultSingAnim) {
- return 0;
+ return false;
}
+
if (this->interactInfo.talkState != NPC_TALK_STATE_IDLE) {
- return 0;
+ return false;
}
+
this->blinkTimer = 0;
+
if (this->eyeIndex != 2) {
- return 0;
+ return false;
}
+
this->mouthIndex = 2;
- return 1;
+ return true;
}
void EnMa2_UpdateEyes(EnMa2* this) {
- if ((!func_80AA1C68(this)) && (DECR(this->blinkTimer) == 0)) {
+ if ((!EnMa2_IsSinging(this)) && (DECR(this->blinkTimer) == 0)) {
this->eyeIndex++;
if (this->eyeIndex >= 3) {
this->blinkTimer = Rand_S16Offset(30, 30);
@@ -207,19 +225,19 @@ void EnMa2_ChangeAnim(EnMa2* this, s32 index) {
sAnimationInfo[index].mode, sAnimationInfo[index].morphFrames);
}
-void func_80AA1DB4(EnMa2* this, PlayState* play) {
+void EnMa2_UpdateSinging(EnMa2* this, PlayState* play) {
if (this->skelAnime.animation == &gMalonAdultSingAnim) {
if (this->interactInfo.talkState == NPC_TALK_STATE_IDLE) {
- if (this->isNotSinging) {
+ if (this->singingDisabled) {
// Turn on singing
Audio_ToggleMalonSinging(false);
- this->isNotSinging = false;
+ this->singingDisabled = false;
}
} else {
- if (!this->isNotSinging) {
+ if (!this->singingDisabled) {
// Turn off singing
Audio_ToggleMalonSinging(true);
- this->isNotSinging = true;
+ this->singingDisabled = true;
}
}
}
@@ -235,24 +253,24 @@ void EnMa2_Init(Actor* thisx, PlayState* play) {
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(22), &sColChkInfoInit);
- switch (func_80AA1B58(this, play)) {
- case 1:
- EnMa2_ChangeAnim(this, ENMA2_ANIM_2);
- this->actionFunc = func_80AA2018;
+ switch (EnMa2_GetSpawnIndex(this, play)) {
+ case MALON_ADULT_SPAWN_DAY_STABLES_NO_EPONA:
+ EnMa2_ChangeAnim(this, MALON_ADULT_ANIM_STANDING);
+ this->actionFunc = EnMa2_WaitToEndTalk;
break;
- case 2:
- EnMa2_ChangeAnim(this, ENMA2_ANIM_3);
- this->actionFunc = func_80AA204C;
+ case MALON_ADULT_SPAWN_NIGHT_RANCH_NO_EPONA:
+ EnMa2_ChangeAnim(this, MALON_ADULT_ANIM_SING);
+ this->actionFunc = EnMa2_WaitForOcarina;
break;
- case 3:
+ case MALON_ADULT_SPAWN_ALWAYS:
if (GET_INFTABLE(INFTABLE_8D)) {
- EnMa2_ChangeAnim(this, ENMA2_ANIM_0);
+ EnMa2_ChangeAnim(this, MALON_ADULT_ANIM_IDLE);
} else {
- EnMa2_ChangeAnim(this, ENMA2_ANIM_3);
+ EnMa2_ChangeAnim(this, MALON_ADULT_ANIM_SING);
}
- this->actionFunc = func_80AA2018;
+ this->actionFunc = EnMa2_WaitToEndTalk;
break;
- case 0:
+ case MALON_ADULT_SPAWN_NONE:
Actor_Kill(&this->actor);
return;
}
@@ -270,48 +288,48 @@ void EnMa2_Destroy(Actor* thisx, PlayState* play) {
Collider_DestroyCylinder(play, &this->collider);
}
-void func_80AA2018(EnMa2* this, PlayState* play) {
+void EnMa2_WaitToEndTalk(EnMa2* this, PlayState* play) {
if (this->interactInfo.talkState == NPC_TALK_STATE_ACTION) {
this->actor.flags &= ~ACTOR_FLAG_TALK_OFFER_AUTO_ACCEPTED;
this->interactInfo.talkState = NPC_TALK_STATE_IDLE;
}
}
-void func_80AA204C(EnMa2* this, PlayState* play) {
+void EnMa2_WaitForOcarina(EnMa2* this, PlayState* play) {
Player* player = GET_PLAYER(play);
if (player->stateFlags2 & PLAYER_STATE2_24) {
player->stateFlags2 |= PLAYER_STATE2_25;
player->unk_6A8 = &this->actor;
Message_StartOcarina(play, OCARINA_ACTION_CHECK_EPONA);
- this->actionFunc = func_80AA20E4;
+ this->actionFunc = EnMa2_WaitForEponasSong;
} else if (this->actor.xzDistToPlayer < 30.0f + this->collider.dim.radius) {
player->stateFlags2 |= PLAYER_STATE2_23;
}
}
-void func_80AA20E4(EnMa2* this, PlayState* play) {
+void EnMa2_WaitForEponasSong(EnMa2* this, PlayState* play) {
Player* player = GET_PLAYER(play);
if (play->msgCtx.ocarinaMode >= OCARINA_MODE_04) {
- this->actionFunc = func_80AA204C;
+ this->actionFunc = EnMa2_WaitForOcarina;
play->msgCtx.ocarinaMode = OCARINA_MODE_04;
} else if (play->msgCtx.ocarinaMode == OCARINA_MODE_03) {
Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
- this->unk_208 = 0x1E;
- SET_INFTABLE(INFTABLE_8E);
- this->actionFunc = func_80AA21C8;
+ this->timer = 0x1E;
+ SET_INFTABLE(INFTABLE_PLAYED_SONG_FOR_ADULT_MALON);
+ this->actionFunc = EnMa2_ForceTalkAfterSong;
play->msgCtx.ocarinaMode = OCARINA_MODE_04;
} else {
player->stateFlags2 |= PLAYER_STATE2_23;
}
}
-void func_80AA21C8(EnMa2* this, PlayState* play) {
+void EnMa2_ForceTalkAfterSong(EnMa2* this, PlayState* play) {
Player* player = GET_PLAYER(play);
- if (DECR(this->unk_208)) {
+ if (DECR(this->timer)) {
player->stateFlags2 |= PLAYER_STATE2_23;
} else {
if (this->interactInfo.talkState == NPC_TALK_STATE_IDLE) {
@@ -319,7 +337,7 @@ void func_80AA21C8(EnMa2* this, PlayState* play) {
Message_CloseTextbox(play);
} else {
this->actor.flags &= ~ACTOR_FLAG_TALK_OFFER_AUTO_ACCEPTED;
- this->actionFunc = func_80AA2018;
+ this->actionFunc = EnMa2_WaitToEndTalk;
}
}
}
@@ -333,9 +351,9 @@ void EnMa2_Update(Actor* thisx, PlayState* play) {
SkelAnime_Update(&this->skelAnime);
EnMa2_UpdateEyes(this);
this->actionFunc(this, play);
- func_80AA1DB4(this, play);
- func_80AA1AE4(this, play);
- if (this->actionFunc != func_80AA20E4) {
+ EnMa2_UpdateSinging(this, play);
+ EnMa2_UpdateTracking(this, play);
+ if (this->actionFunc != EnMa2_WaitForEponasSong) {
Npc_UpdateTalking(play, &this->actor, &this->interactInfo.talkState, this->collider.dim.radius + 30.0f,
EnMa2_GetTextId, EnMa2_UpdateTalkState);
}
@@ -362,8 +380,8 @@ s32 EnMa2_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
}
if ((limbIndex == MALON_ADULT_CHEST_AND_NECK_LIMB) || (limbIndex == MALON_ADULT_LEFT_SHOULDER_LIMB) ||
(limbIndex == MALON_ADULT_RIGHT_SHOULDER_LIMB)) {
- rot->y += Math_SinS(this->unk_212[limbIndex].y) * 200.0f;
- rot->z += Math_CosS(this->unk_212[limbIndex].z) * 200.0f;
+ rot->y += Math_SinS(this->upperBodyRot[limbIndex].y) * 200.0f;
+ rot->z += Math_CosS(this->upperBodyRot[limbIndex].z) * 200.0f;
}
return false;
}
diff --git a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.h b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.h
index c312591b94..3e2a9b4b86 100644
--- a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.h
+++ b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.h
@@ -37,12 +37,12 @@ typedef struct EnMa2 {
/* 0x0190 */ EnMa2ActionFunc actionFunc;
/* 0x0194 */ ColliderCylinder collider;
/* 0x01E0 */ NpcInteractInfo interactInfo;
- /* 0x0208 */ s16 unk_208;
- /* 0x020A */ s16 isNotSinging;
+ /* 0x0208 */ s16 timer;
+ /* 0x020A */ s16 singingDisabled;
/* 0x020C */ s16 blinkTimer;
/* 0x020E */ s16 eyeIndex;
/* 0x0210 */ s16 mouthIndex;
- /* 0x0212 */ Vec3s unk_212[MALON_ADULT_LIMB_MAX];
+ /* 0x0212 */ Vec3s upperBodyRot[MALON_ADULT_LIMB_MAX];
} EnMa2; // size = 0x0284
#endif
diff --git a/src/overlays/actors/ovl_En_Mb/z_en_mb.c b/src/overlays/actors/ovl_En_Mb/z_en_mb.c
index 8c1413bc0f..56e96bf293 100644
--- a/src/overlays/actors/ovl_En_Mb/z_en_mb.c
+++ b/src/overlays/actors/ovl_En_Mb/z_en_mb.c
@@ -1514,7 +1514,7 @@ void EnMb_Update(Actor* thisx, PlayState* play) {
void EnMb_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
static Vec3f unused = { 1100.0f, -700.0f, 0.0f };
static Vec3f feetPos = { 0.0f, 0.0f, 0.0f };
- static Vec3f effSpawnModelPos = { 0.0f, -8000.0f, 0.0f };
+ static Vec3f effSpawnOffsetFromLeftHand = { 0.0f, -8000.0f, 0.0f };
static Vec3f zeroVec = { 0.0f, 0.0f, 0.0f };
s32 bodyPart = -1;
EnMb* this = (EnMb*)thisx;
@@ -1522,7 +1522,7 @@ void EnMb_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
if (this->actor.params == ENMB_TYPE_CLUB) {
if (limbIndex == ENMB_LIMB_LHAND) {
- Matrix_MultVec3f(&effSpawnModelPos, &this->effSpawnPos);
+ Matrix_MultVec3f(&effSpawnOffsetFromLeftHand, &this->effSpawnPos);
if (this->attack > ENMB_ATTACK_NONE) {
EnMb_ClubUpdateAttackCollider(&this->actor, play);
}
diff --git a/src/overlays/actors/ovl_En_Niw/z_en_niw.c b/src/overlays/actors/ovl_En_Niw/z_en_niw.c
index 7c1445813f..5acaf3f9ed 100644
--- a/src/overlays/actors/ovl_En_Niw/z_en_niw.c
+++ b/src/overlays/actors/ovl_En_Niw/z_en_niw.c
@@ -390,7 +390,7 @@ void EnNiw_SpawnAttackCucco(EnNiw* this, PlayState* play) {
this->timer5 = 10;
} else {
PRINTF("\n\n");
- PRINTF(VT_FGCOL(GREEN) T(" ☆☆☆☆☆ 発生できず ☆☆☆☆☆ \n", " ☆☆☆☆☆ Cannot occur ☆☆☆☆☆ \n") VT_RST);
+ PRINTF(VT_FGCOL(GREEN) T(" ☆☆☆☆☆ 発生できず ☆☆☆☆☆ \n", " ☆☆☆☆☆ Cannot spawn ☆☆☆☆☆ \n") VT_RST);
}
}
}
diff --git a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c
index 601299706c..13bba29d07 100644
--- a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c
+++ b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c
@@ -60,7 +60,7 @@ void EnOkarinaTag_Init(Actor* thisx, PlayState* play) {
EnOkarinaTag* this = (EnOkarinaTag*)thisx;
PRINTF("\n\n");
- PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ オカリナタグ発生 ☆☆☆☆☆ %x\n", "☆☆☆☆☆ Ocarina tag occurrence ☆☆☆☆☆ %x\n") VT_RST,
+ PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ オカリナタグ発生 ☆☆☆☆☆ %x\n", "☆☆☆☆☆ Ocarina tag spawn ☆☆☆☆☆ %x\n") VT_RST,
this->actor.params);
this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED;
this->type = PARAMS_GET_U(this->actor.params, 10, 6);
diff --git a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c
index ab3c142984..33b5886a26 100644
--- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c
+++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c
@@ -569,7 +569,7 @@ void EnOssan_TalkHappyMaskShopkeeper(PlayState* play) {
void EnOssan_UpdateCameraDirection(EnOssan* this, PlayState* play, f32 cameraFaceAngle) {
this->cameraFaceAngle = cameraFaceAngle;
- Camera_SetCameraData(GET_ACTIVE_CAM(play), 0xC, NULL, NULL, cameraFaceAngle, 0, 0);
+ Camera_SetCameraData(GET_ACTIVE_CAM(play), CAM_DATA_SET_2 | CAM_DATA_SET_3, NULL, NULL, cameraFaceAngle, 0, 0);
}
s32 EnOssan_TryGetObjBankIndices(EnOssan* this, PlayState* play, s16* objectIds) {
diff --git a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c
index e254ca1a57..6f897d28b0 100644
--- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c
+++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c
@@ -84,13 +84,13 @@ void func_80AEFC24(EnRu1* this, PlayState* play);
void func_80AEFECC(EnRu1* this, PlayState* play);
void func_80AEFF40(EnRu1* this, PlayState* play);
-void func_80AF0278(EnRu1* this, PlayState* play, s32 limbIndex, Vec3s* rot);
+void EnRu1_PreLimbDraw(EnRu1* this, PlayState* play, s32 limbIndex, Vec3s* rot);
void EnRu1_DrawNothing(EnRu1* this, PlayState* play);
void EnRu1_DrawOpa(EnRu1* this, PlayState* play);
void EnRu1_DrawXlu(EnRu1* this, PlayState* play);
-static ColliderCylinderInitType1 sCylinderInit1 = {
+static ColliderCylinderInitType1 sStandingCylinderInit = {
{
COL_MATERIAL_HIT0,
AT_NONE,
@@ -102,7 +102,7 @@ static ColliderCylinderInitType1 sCylinderInit1 = {
{ 25, 80, 0, { 0 } },
};
-static ColliderCylinderInitType1 sCylinderInit2 = {
+static ColliderCylinderInitType1 sSittingCylinderInit = {
{
COL_MATERIAL_HIT0,
AT_ON | AT_TYPE_PLAYER,
@@ -132,17 +132,56 @@ static s32 sUnused = 0;
static u32 D_80AF1938 = 0;
static EnRu1ActionFunc sActionFuncs[] = {
- func_80AEC0B4, func_80AEC100, func_80AEC130, func_80AEC17C, func_80AEC1D4, func_80AEC244, func_80AEC2C0,
- func_80AECA94, func_80AECAB4, func_80AECAD4, func_80AECB18, func_80AECB60, func_80AECBB8, func_80AECC1C,
- func_80AECC84, func_80AED304, func_80AED324, func_80AED344, func_80AED374, func_80AED3A4, func_80AED3E0,
- func_80AED414, func_80AEF29C, func_80AEF2AC, func_80AEF2D0, func_80AEF354, func_80AEF3A8, func_80AEEBD4,
- func_80AEEC5C, func_80AEECF0, func_80AEED58, func_80AEEDCC, func_80AEEE34, func_80AEEE9C, func_80AEEF08,
- func_80AEEF5C, func_80AEF9D8, func_80AEFA2C, func_80AEFAAC, func_80AEFB04, func_80AEFB68, func_80AEFCE8,
- func_80AEFBC8, func_80AEFC24, func_80AEFECC, func_80AEFF40,
+ func_80AEC0B4, // ENRU1_ACTION_00
+ func_80AEC100, // ENRU1_ACTION_01
+ func_80AEC130, // ENRU1_ACTION_02
+ func_80AEC17C, // ENRU1_ACTION_03
+ func_80AEC1D4, // ENRU1_ACTION_04
+ func_80AEC244, // ENRU1_ACTION_05
+ func_80AEC2C0, // ENRU1_ACTION_06
+ func_80AECA94, // ENRU1_ACTION_07
+ func_80AECAB4, // ENRU1_ACTION_08
+ func_80AECAD4, // ENRU1_ACTION_09
+ func_80AECB18, // ENRU1_ACTION_10
+ func_80AECB60, // ENRU1_ACTION_11
+ func_80AECBB8, // ENRU1_ACTION_12
+ func_80AECC1C, // ENRU1_ACTION_13
+ func_80AECC84, // ENRU1_ACTION_14
+ func_80AED304, // ENRU1_ACTION_15
+ func_80AED324, // ENRU1_ACTION_16
+ func_80AED344, // ENRU1_ACTION_17
+ func_80AED374, // ENRU1_ACTION_18
+ func_80AED3A4, // ENRU1_ACTION_19
+ func_80AED3E0, // ENRU1_ACTION_20
+ func_80AED414, // ENRU1_ACTION_21
+ func_80AEF29C, // ENRU1_ACTION_22
+ func_80AEF2AC, // ENRU1_ACTION_23
+ func_80AEF2D0, // ENRU1_ACTION_24
+ func_80AEF354, // ENRU1_ACTION_25
+ func_80AEF3A8, // ENRU1_ACTION_26
+ func_80AEEBD4, // ENRU1_ACTION_27
+ func_80AEEC5C, // ENRU1_ACTION_28
+ func_80AEECF0, // ENRU1_ACTION_29
+ func_80AEED58, // ENRU1_ACTION_30
+ func_80AEEDCC, // ENRU1_ACTION_31
+ func_80AEEE34, // ENRU1_ACTION_32
+ func_80AEEE9C, // ENRU1_ACTION_33
+ func_80AEEF08, // ENRU1_ACTION_34
+ func_80AEEF5C, // ENRU1_ACTION_35
+ func_80AEF9D8, // ENRU1_ACTION_36
+ func_80AEFA2C, // ENRU1_ACTION_37
+ func_80AEFAAC, // ENRU1_ACTION_38
+ func_80AEFB04, // ENRU1_ACTION_39
+ func_80AEFB68, // ENRU1_ACTION_40
+ func_80AEFCE8, // ENRU1_ACTION_41
+ func_80AEFBC8, // ENRU1_ACTION_42
+ func_80AEFC24, // ENRU1_ACTION_43
+ func_80AEFECC, // ENRU1_ACTION_44
+ func_80AEFF40, // ENRU1_ACTION_45
};
static EnRu1PreLimbDrawFunc sPreLimbDrawFuncs[] = {
- func_80AF0278,
+ EnRu1_PreLimbDraw,
};
static Vec3f sMultVec = { 0.0f, 10.0f, 0.0f };
@@ -165,60 +204,60 @@ ActorProfile En_Ru1_Profile = {
/**/ EnRu1_Draw,
};
-void func_80AEAC10(EnRu1* this, PlayState* play) {
+void EnRu1_UpdateStandingOC(EnRu1* this, PlayState* play) {
s32 pad[5];
- Collider_UpdateCylinder(&this->actor, &this->collider);
- CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base);
+ Collider_UpdateCylinder(&this->actor, &this->standingCollider);
+ CollisionCheck_SetOC(play, &play->colChkCtx, &this->standingCollider.base);
}
-void func_80AEAC54(EnRu1* this, PlayState* play) {
+void EnRu1_UpdateSittingOC(EnRu1* this, PlayState* play) {
s32 pad[5];
- Collider_UpdateCylinder(&this->actor, &this->collider2);
- if (this->unk_34C != 0) {
- CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider2.base);
+ Collider_UpdateCylinder(&this->actor, &this->sittingCollider);
+ if (this->isSittingOCActive) {
+ CollisionCheck_SetOC(play, &play->colChkCtx, &this->sittingCollider.base);
} else if (this->actor.xzDistToPlayer > 32.0f) {
- this->unk_34C = 1;
+ this->isSittingOCActive = true;
}
}
-void func_80AEACDC(EnRu1* this, PlayState* play) {
+void EnRu1_UpdateSittingAT(EnRu1* this, PlayState* play) {
s32 pad[5];
- Collider_UpdateCylinder(&this->actor, &this->collider2);
- CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider2.base);
+ Collider_UpdateCylinder(&this->actor, &this->sittingCollider);
+ CollisionCheck_SetAT(play, &play->colChkCtx, &this->sittingCollider.base);
}
-void func_80AEAD20(Actor* thisx, PlayState* play) {
+void EnRu1_InitColliders(Actor* thisx, PlayState* play) {
EnRu1* this = (EnRu1*)thisx;
- Collider_InitCylinder(play, &this->collider);
- Collider_SetCylinderType1(play, &this->collider, &this->actor, &sCylinderInit1);
+ Collider_InitCylinder(play, &this->standingCollider);
+ Collider_SetCylinderType1(play, &this->standingCollider, &this->actor, &sStandingCylinderInit);
- Collider_InitCylinder(play, &this->collider2);
- Collider_SetCylinderType1(play, &this->collider2, &this->actor, &sCylinderInit2);
+ Collider_InitCylinder(play, &this->sittingCollider);
+ Collider_SetCylinderType1(play, &this->sittingCollider, &this->actor, &sSittingCylinderInit);
}
void EnRu1_DestroyColliders(EnRu1* this, PlayState* play) {
- Collider_DestroyCylinder(play, &this->collider);
- Collider_DestroyCylinder(play, &this->collider2);
+ Collider_DestroyCylinder(play, &this->standingCollider);
+ Collider_DestroyCylinder(play, &this->sittingCollider);
}
-void func_80AEADD8(EnRu1* this) {
- this->unk_34C = 0;
+void EnRu1_DisableSittingOC(EnRu1* this) {
+ this->isSittingOCActive = false;
}
-u8 func_80AEADE0(EnRu1* this) {
- u8 params = PARAMS_GET_U(this->actor.params, 8, 8);
+u8 EnRu1_GetSwitchFlag(EnRu1* this) {
+ u8 switchFlag = ENRU1_SWITCH_FLAG(&this->actor);
- return params;
+ return switchFlag;
}
-u8 func_80AEADF0(EnRu1* this) {
- u8 params = PARAMS_GET_U(this->actor.params, 0, 8);
+u8 EnRu1_GetType(EnRu1* this) {
+ u8 type = ENRU1_TYPE(&this->actor);
- return params;
+ return type;
}
void EnRu1_Destroy(Actor* thisx, PlayState* play) {
@@ -230,24 +269,24 @@ void EnRu1_Destroy(Actor* thisx, PlayState* play) {
void EnRu1_UpdateEyes(EnRu1* this) {
s32 pad[3];
s16* blinkTimer = &this->blinkTimer;
- s16* eyeIndex = &this->eyeIndex;
+ s16* eyes = &this->eyes;
if (DECR(*blinkTimer) == 0) {
*blinkTimer = Rand_S16Offset(60, 60);
}
- *eyeIndex = *blinkTimer;
- if (*eyeIndex >= 3) {
- *eyeIndex = 0;
+ *eyes = *blinkTimer;
+ if (*eyes >= ENRU1_EYES_UP) {
+ *eyes = ENRU1_EYES_OPEN;
}
}
-void EnRu1_SetEyeIndex(EnRu1* this, s16 eyeIndex) {
- this->eyeIndex = eyeIndex;
+void EnRu1_SetEyes(EnRu1* this, s16 eyes) {
+ this->eyes = eyes;
}
-void EnRu1_SetMouthIndex(EnRu1* this, s16 mouthIndex) {
- this->mouthIndex = mouthIndex;
+void EnRu1_SetMouth(EnRu1* this, s16 mouth) {
+ this->mouth = mouth;
}
void func_80AEAECC(EnRu1* this, PlayState* play) {
@@ -303,7 +342,8 @@ s32 func_80AEB020(EnRu1* this, PlayState* play) {
if (actorIt->id == ACTOR_EN_RU1) {
someEnRu1 = (EnRu1*)actorIt;
if (someEnRu1 != this) {
- if ((someEnRu1->action == 31) || (someEnRu1->action == 32) || (someEnRu1->action == 24)) {
+ if ((someEnRu1->action == ENRU1_ACTION_31) || (someEnRu1->action == ENRU1_ACTION_32) ||
+ (someEnRu1->action == ENRU1_ACTION_24)) {
return true;
}
}
@@ -363,8 +403,8 @@ s32 func_80AEB1B4(PlayState* play) {
#if DEBUG_FEATURES
void func_80AEB1D8(EnRu1* this) {
- this->action = 36;
- this->drawConfig = 0;
+ this->action = ENRU1_ACTION_36;
+ this->drawConfig = ENRU1_DRAW_NOTHING;
this->actor.velocity.x = 0.0f;
this->actor.velocity.y = 0.0f;
this->actor.velocity.z = 0.0f;
@@ -404,7 +444,7 @@ void EnRu1_AnimationChange(EnRu1* this, AnimationHeader* animation, u8 mode, f32
s32 EnRu1_UpdateSkelAnime(EnRu1* this) {
// why?
- if (this->action != 32) {
+ if (this->action != ENRU1_ACTION_32) {
return SkelAnime_Update(&this->skelAnime);
} else {
return SkelAnime_Update(&this->skelAnime);
@@ -427,10 +467,10 @@ void func_80AEB3CC(EnRu1* this) {
void EnRu1_InitOutsideJabuJabu(EnRu1* this, PlayState* play) {
EnRu1_AnimationChange(this, &gRutoChildWaitHandsBehindBackAnim, ANIMMODE_LOOP, 0, false);
- this->action = 0;
- this->drawConfig = 1;
- EnRu1_SetEyeIndex(this, 4);
- EnRu1_SetMouthIndex(this, 0);
+ this->action = ENRU1_ACTION_00;
+ this->drawConfig = ENRU1_DRAW_OPA;
+ EnRu1_SetEyes(this, ENRU1_EYES_GAZING);
+ EnRu1_SetMouth(this, ENRU1_MOUTH_SMILING);
}
CsCmdActorCue* EnRu1_GetCueChannel3(PlayState* play) {
@@ -631,8 +671,8 @@ void func_80AEBCB8(EnRu1* this, UNK_TYPE arg1) {
void func_80AEBD1C(EnRu1* this, PlayState* play) {
if (func_80AEB480(play, 2)) {
- this->action = 1;
- this->drawConfig = 0;
+ this->action = ENRU1_ACTION_01;
+ this->drawConfig = ENRU1_DRAW_NOTHING;
func_80AEB914(this, play);
func_80AEAECC(this, play);
EnRu1_SpawnSplash(this, play);
@@ -649,8 +689,8 @@ void func_80AEBD94(EnRu1* this, PlayState* play) {
func_80AEB934(this, play);
func_80AEB738(this, play);
Animation_Change(&this->skelAnime, &gRutoChildResurfaceAnim, 1.0f, 0.0f, frameCount, ANIMMODE_ONCE, 0.0f);
- this->action = 2;
- this->drawConfig = 1;
+ this->action = ENRU1_ACTION_02;
+ this->drawConfig = ENRU1_DRAW_OPA;
}
}
@@ -662,7 +702,7 @@ void func_80AEBE3C(EnRu1* this, PlayState* play, s32 arg2) {
func_80AEB7D0(this);
Animation_Change(&this->skelAnime, &gRutoChildTreadWaterAnim, 1.0f, 0, frameCount, ANIMMODE_LOOP, -8.0f);
- this->action = 3;
+ this->action = ENRU1_ACTION_03;
} else {
func_80AEB954(this, play);
}
@@ -677,7 +717,7 @@ void func_80AEBEC8(EnRu1* this, PlayState* play) {
func_80AEB738(this, play);
Animation_Change(&this->skelAnime, &gRutoChildTransitionToSwimOnBackAnim, 1.0f, 0, frameCount, ANIMMODE_ONCE,
-8.0f);
- this->action = 4;
+ this->action = ENRU1_ACTION_04;
}
}
@@ -686,7 +726,7 @@ void func_80AEBF60(EnRu1* this, PlayState* play) {
s32 pad;
func_80AEB7D0(this);
- this->action = 5;
+ this->action = ENRU1_ACTION_05;
this->unk_364 = this->actor.world.pos;
} else {
func_80AEBA0C(this, play);
@@ -707,7 +747,7 @@ void func_80AEBFD8(EnRu1* this, PlayState* play) {
frameCount = Animation_GetLastFrame(&gRutoChildTransitionFromSwimOnBackAnim);
Animation_Change(&this->skelAnime, &gRutoChildTransitionFromSwimOnBackAnim, 1.0, 0, frameCount,
ANIMMODE_ONCE, -8.0f);
- this->action = 6;
+ this->action = ENRU1_ACTION_06;
}
}
}
@@ -785,17 +825,17 @@ void func_80AEC2C0(EnRu1* this, PlayState* play) {
void EnRu1_InitInJabuJabuHolesRoom(EnRu1* this, PlayState* play) {
if (!GET_INFTABLE(INFTABLE_141)) {
EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false);
- this->action = 7;
- EnRu1_SetMouthIndex(this, 1);
+ this->action = ENRU1_ACTION_07;
+ EnRu1_SetMouth(this, ENRU1_MOUTH_FROWNING);
} else if (GET_INFTABLE(INFTABLE_147) && !GET_INFTABLE(INFTABLE_140) && !GET_INFTABLE(INFTABLE_145)) {
if (!func_80AEB020(this, play)) {
s8 actorRoom;
EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false);
actorRoom = this->actor.room;
- this->action = 22;
+ this->action = ENRU1_ACTION_22;
this->actor.room = -1;
- this->drawConfig = 0;
+ this->drawConfig = ENRU1_DRAW_NOTHING;
this->roomNum1 = actorRoom;
this->roomNum3 = actorRoom;
this->roomNum2 = actorRoom;
@@ -885,7 +925,7 @@ void func_80AEC780(EnRu1* this, PlayState* play) {
play->csCtx.script = gRutoFirstMeetingCs;
gSaveContext.cutsceneTrigger = 1;
player->speedXZ = 0.0f;
- this->action = 8;
+ this->action = ENRU1_ACTION_08;
}
}
@@ -901,8 +941,8 @@ void func_80AEC81C(EnRu1* this, PlayState* play) {
newRotY = cue->rot.y;
this->actor.shape.rot.y = newRotY;
this->actor.world.rot.y = newRotY;
- this->action = 9;
- this->drawConfig = 1;
+ this->action = ENRU1_ACTION_09;
+ this->drawConfig = ENRU1_DRAW_OPA;
}
}
@@ -910,7 +950,7 @@ void func_80AEC8B8(EnRu1* this, PlayState* play) {
if (func_80AEAFA0(play, 3, 3)) {
Animation_Change(&this->skelAnime, &gRutoChildTurnAroundAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildTurnAroundAnim), ANIMMODE_ONCE, -8.0f);
- this->action = 10;
+ this->action = ENRU1_ACTION_10;
}
}
@@ -919,7 +959,7 @@ void func_80AEC93C(EnRu1* this, UNK_TYPE arg1) {
Animation_Change(&this->skelAnime, &gRutoChildWalkAnim, 1.0f, 0, Animation_GetLastFrame(&gRutoChildWalkAnim),
ANIMMODE_LOOP, -8.0f);
this->actor.world.rot.y += 0x8000;
- this->action = 0xB;
+ this->action = ENRU1_ACTION_11;
this->unk_26C = 0.0f;
}
}
@@ -927,7 +967,7 @@ void func_80AEC93C(EnRu1* this, UNK_TYPE arg1) {
void func_80AEC9C4(EnRu1* this) {
this->unk_26C += 1.0f;
if (this->unk_26C >= 8.0f) {
- this->action = 12;
+ this->action = ENRU1_ACTION_12;
this->unk_26C = 0.0f;
this->actor.velocity.y = -1.0f;
}
@@ -937,7 +977,7 @@ void func_80AECA18(EnRu1* this) {
if (!(this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) {
s32 pad;
- this->action = 13;
+ this->action = ENRU1_ACTION_13;
this->unk_26C = 0.0f;
this->actor.velocity.y = 0.0f;
}
@@ -946,7 +986,7 @@ void func_80AECA18(EnRu1* this) {
void func_80AECA44(EnRu1* this, PlayState* play) {
if (func_80AEAFA0(play, 5, 3)) {
SET_INFTABLE(INFTABLE_141);
- this->action = 14;
+ this->action = ENRU1_ACTION_14;
}
}
@@ -1029,10 +1069,10 @@ void func_80AECCB0(EnRu1* this, PlayState* play) {
void EnRu1_InitInBossRoom(EnRu1* this, PlayState* play) {
EnRu1_AnimationChange(this, &gRutoChildWaitHandsOnHipsAnim, ANIMMODE_LOOP, 0, false);
- this->action = 15;
+ this->action = ENRU1_ACTION_15;
this->actor.shape.yOffset = -10000.0f;
- EnRu1_SetEyeIndex(this, 5);
- EnRu1_SetMouthIndex(this, 2);
+ EnRu1_SetEyes(this, ENRU1_EYES_BLUSH);
+ EnRu1_SetMouth(this, ENRU1_MOUTH_OPEN);
}
void func_80AECE04(EnRu1* this, PlayState* play) {
@@ -1107,12 +1147,12 @@ void func_80AED0B0(EnRu1* this, s32 state) {
}
void func_80AED0C8(EnRu1* this, PlayState* play) {
- this->action = 16;
+ this->action = ENRU1_ACTION_16;
}
void func_80AED0D8(EnRu1* this, PlayState* play) {
- this->action = 17;
- this->drawConfig = 1;
+ this->action = ENRU1_ACTION_17;
+ this->drawConfig = ENRU1_DRAW_OPA;
this->actor.world.rot.y = this->actor.yawTowardsPlayer;
this->actor.shape.rot.y = this->actor.yawTowardsPlayer;
func_80AECCB0(this, play);
@@ -1120,7 +1160,7 @@ void func_80AED0D8(EnRu1* this, PlayState* play) {
void func_80AED110(EnRu1* this) {
if (this->actor.shape.yOffset >= 0.0f) {
- this->action = 18;
+ this->action = ENRU1_ACTION_18;
this->actor.shape.yOffset = 0.0f;
func_80AED0B0(this, WARP_BLUE_RUTO_STATE_READY);
}
@@ -1128,7 +1168,7 @@ void func_80AED110(EnRu1* this) {
void func_80AED154(EnRu1* this, PlayState* play) {
if (func_80AED084(this, WARP_BLUE_RUTO_STATE_ENTERED)) {
- this->action = 0x13;
+ this->action = ENRU1_ACTION_19;
this->unk_26C = 0.0f;
func_80AECEB4(this, play);
}
@@ -1139,7 +1179,7 @@ void func_80AED19C(EnRu1* this, s32 cond) {
Animation_Change(&this->skelAnime, &gRutoChildTransitionHandsOnHipToCrossArmsAndLegsAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildTransitionHandsOnHipToCrossArmsAndLegsAnim), ANIMMODE_ONCE,
-8.0f);
- this->action = 20;
+ this->action = ENRU1_ACTION_20;
func_80AED0B0(this, WARP_BLUE_RUTO_STATE_3);
}
}
@@ -1153,7 +1193,7 @@ void func_80AED218(EnRu1* this, UNK_TYPE arg1) {
} else if (func_80AED084(this, WARP_BLUE_RUTO_STATE_WARPING)) {
Animation_Change(&this->skelAnime, &gRutoChildWaitInBlueWarpAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildWaitInBlueWarpAnim), ANIMMODE_ONCE, -8.0f);
- this->action = 21;
+ this->action = ENRU1_ACTION_21;
this->unk_27C = this->actor.xzDistToPlayer;
}
}
@@ -1201,7 +1241,7 @@ void EnRu1_InitInJabuJabuBasement(EnRu1* this, PlayState* play) {
EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false);
actorRoom = this->actor.room;
- this->action = 22;
+ this->action = ENRU1_ACTION_22;
this->actor.room = -1;
this->roomNum1 = actorRoom;
this->roomNum3 = actorRoom;
@@ -1251,9 +1291,9 @@ s32 func_80AED624(EnRu1* this, PlayState* play) {
Actor_Kill(&this->actor);
return false;
} else if (((this->roomNum1 != curRoomNum) || (this->roomNum2 != curRoomNum)) &&
- (this->actor.depthInWater > kREG(16) + 50.0f) && (this->action != 33)) {
- this->action = 33;
- this->drawConfig = 2;
+ (this->actor.depthInWater > kREG(16) + 50.0f) && (this->action != ENRU1_ACTION_33)) {
+ this->action = ENRU1_ACTION_33;
+ this->drawConfig = ENRU1_DRAW_XLU;
this->alpha = 0xFF;
this->unk_2A4 = 0.0f;
}
@@ -1470,20 +1510,22 @@ void func_80AEE02C(EnRu1* this) {
this->actor.minVelocityY = 0.0f;
}
-void func_80AEE050(EnRu1* this) {
+void EnRu1_UpdateWaterState(EnRu1* this) {
s32 pad;
- f32 sp28;
- f32 sp24;
+ f32 bobMagnitude;
+ f32 startY;
EnRu1* thisx = this; // necessary to match
- if (this->unk_350 == 0) {
+ if (this->waterState == ENRU1_WATER_OUTSIDE) {
if ((this->actor.minVelocityY == 0.0f) && (this->actor.speed == 0.0f)) {
- this->unk_350 = 1;
+ // When Ruto's velocity has been slowed enough by the water, stop her motion
+ this->waterState = ENRU1_WATER_IMMERSED;
func_80AEE02C(this);
- this->unk_35C = 0;
- this->unk_358 = (this->actor.depthInWater - 10.0f) * 0.5f;
- this->unk_354 = this->actor.world.pos.y + thisx->unk_358; // thisx only used here
+ this->bobPhase = 0;
+ this->bobDepth = (this->actor.depthInWater - 10.0f) * 0.5f;
+ this->sinkingStartPosY = this->actor.world.pos.y + thisx->bobDepth;
} else {
+ // Ruto is touching the water but still in motion, e.g. from being thrown
this->actor.gravity = 0.0f;
this->actor.minVelocityY *= 0.2f;
this->actor.velocity.y *= 0.2f;
@@ -1500,25 +1542,25 @@ void func_80AEE050(EnRu1* this) {
Actor_UpdatePos(&this->actor);
}
} else {
- if (this->unk_350 == 1) {
- if (this->unk_358 <= 1.0f) {
+ if (this->waterState == ENRU1_WATER_IMMERSED) {
+ if (this->bobDepth <= 1.0f) {
func_80AEE02C(this);
- this->unk_350 = 2;
- this->unk_360 = 0.0f;
+ this->waterState = ENRU1_WATER_BOBBING;
+ this->isSinking = 0.0f;
} else {
- f32 temp_f10;
+ f32 deltaY;
- sp28 = this->unk_358;
- sp24 = this->unk_354;
- temp_f10 = Math_CosS(this->unk_35C) * -sp28;
- this->actor.world.pos.y = temp_f10 + sp24;
- this->unk_35C += 0x3E8;
- this->unk_358 *= 0.95f;
+ bobMagnitude = this->bobDepth;
+ startY = this->sinkingStartPosY;
+ deltaY = Math_CosS(this->bobPhase) * -bobMagnitude;
+ this->actor.world.pos.y = deltaY + startY;
+ this->bobPhase += 0x3E8;
+ this->bobDepth *= 0.95f;
}
} else {
- this->unk_360 += 1.0f;
- if (this->unk_360 > 0.0f) {
- this->unk_350 = 3;
+ this->isSinking += 1.0f;
+ if (this->isSinking > 0.0f) {
+ this->waterState = ENRU1_WATER_SINKING;
}
}
}
@@ -1574,8 +1616,8 @@ s32 func_80AEE394(EnRu1* this, PlayState* play) {
func_80AEE02C(this);
play->csCtx.script = gRutoObtainingSapphireCs;
gSaveContext.cutsceneTrigger = 1;
- this->action = 36;
- this->drawConfig = 0;
+ this->action = ENRU1_ACTION_36;
+ this->drawConfig = ENRU1_DRAW_NOTHING;
this->bigOctoPlatform = (BgBdanObjects*)dynaPolyActor;
this->actor.shape.shadowAlpha = 0;
return true;
@@ -1590,14 +1632,14 @@ void func_80AEE488(EnRu1* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play)) {
curRoomNum = play->roomCtx.curRoom.num;
this->roomNum3 = curRoomNum;
- this->action = 31;
+ this->action = ENRU1_ACTION_31;
func_80AED520(this, play);
} else if (!func_80AEE394(this, play) && !(this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) {
s32 pad;
this->actor.minVelocityY = -((kREG(24) * 0.01f) + 6.8f);
this->actor.gravity = -((kREG(23) * 0.01f) + 1.3f);
- this->action = 28;
+ this->action = ENRU1_ACTION_28;
}
}
@@ -1609,14 +1651,14 @@ void func_80AEE568(EnRu1* this, PlayState* play) {
func_80AEE02C(this);
Actor_OfferCarry(&this->actor, play);
- this->action = 27;
- func_80AEADD8(this);
+ this->action = ENRU1_ACTION_27;
+ EnRu1_DisableSittingOC(this);
return;
}
if (this->actor.depthInWater > 0.0f) {
- this->action = 29;
- this->unk_350 = 0;
+ this->action = ENRU1_ACTION_29;
+ this->waterState = ENRU1_WATER_OUTSIDE;
}
}
}
@@ -1629,7 +1671,7 @@ void func_80AEE628(EnRu1* this, PlayState* play) {
Animation_Change(&this->skelAnime, &gRutoChildSittingAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildSittingAnim), ANIMMODE_LOOP, -8.0f);
SET_INFTABLE(INFTABLE_144);
- this->action = 31;
+ this->action = ENRU1_ACTION_31;
}
this->roomNum3 = curRoomNum;
}
@@ -1643,7 +1685,7 @@ s32 func_80AEE6D0(EnRu1* this, PlayState* play) {
Animation_Change(&this->skelAnime, &gRutoChildSeesSapphireAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildSquirmAnim), ANIMMODE_LOOP, -8.0f);
func_80AED600(this);
- this->action = 34;
+ this->action = ENRU1_ACTION_34;
this->unk_26C = 0.0f;
play->csCtx.script = gRutoFoundSapphireCs;
gSaveContext.cutsceneTrigger = 1;
@@ -1670,7 +1712,7 @@ void EnRu1_UpdateCarriedBehavior(EnRu1* this, PlayState* play) {
this->actor.minVelocityY = -((kREG(24) * 0.01f) + 6.8f);
this->actor.gravity = -((kREG(23) * 0.01f) + 1.3f);
func_80AED57C(this);
- this->action = 28;
+ this->action = ENRU1_ACTION_28;
*carryIdleTimer = 0.0f;
} else if (func_80AEE6D0(this, play)) {
s32 pad;
@@ -1680,7 +1722,7 @@ void EnRu1_UpdateCarriedBehavior(EnRu1* this, PlayState* play) {
player = GET_PLAYER(play);
if (player->stateFlags2 & PLAYER_STATE2_IDLE_FIDGET) {
this->carryIdleTimer += 1.0f;
- if (this->action != 32) {
+ if (this->action != ENRU1_ACTION_32) {
if (*carryIdleTimer > 30.0f) {
if (Rand_S16Offset(0, 3) == 0) {
f32 frameCount = Animation_GetLastFrame(&gRutoChildSquirmAnim);
@@ -1688,7 +1730,7 @@ void EnRu1_UpdateCarriedBehavior(EnRu1* this, PlayState* play) {
Animation_Change(&this->skelAnime, &gRutoChildSquirmAnim, 1.0f, 0, frameCount, ANIMMODE_LOOP,
-8.0f);
func_80AED5DC(this);
- this->action = 32;
+ this->action = ENRU1_ACTION_32;
}
*carryIdleTimer = 0.0f;
}
@@ -1698,7 +1740,7 @@ void EnRu1_UpdateCarriedBehavior(EnRu1* this, PlayState* play) {
Animation_Change(&this->skelAnime, &gRutoChildSittingAnim, 1.0f, 0, frameCount, ANIMMODE_LOOP,
-8.0f);
- this->action = 31;
+ this->action = ENRU1_ACTION_31;
*carryIdleTimer = 0.0f;
}
}
@@ -1711,22 +1753,22 @@ void EnRu1_UpdateCarriedBehavior(EnRu1* this, PlayState* play) {
}
}
-s32 func_80AEEAC8(EnRu1* this, PlayState* play) {
+s32 EnRu1_CheckHitBottomUnderwater(EnRu1* this, PlayState* play) {
if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) {
s32 pad;
func_80AEE02C(this);
Actor_OfferCarry(&this->actor, play);
- this->action = 27;
- func_80AEADD8(this);
+ this->action = ENRU1_ACTION_27;
+ EnRu1_DisableSittingOC(this);
return true;
}
return false;
}
-void func_80AEEB24(EnRu1* this, PlayState* play) {
- if ((func_80AEEAC8(this, play) == 0) && (this->unk_350 == 3)) {
- this->action = 30;
+void EnRu1_CheckSinkingState(EnRu1* this, PlayState* play) {
+ if ((!EnRu1_CheckHitBottomUnderwater(this, play)) && (this->waterState == ENRU1_WATER_SINKING)) {
+ this->action = ENRU1_ACTION_30;
func_80AEE02C(this);
this->actor.gravity = -0.1f;
this->actor.minVelocityY = -((kREG(18) * 0.1f) + 0.7f);
@@ -1739,7 +1781,7 @@ void func_80AEEBB4(EnRu1* this, PlayState* play) {
void func_80AEEBD4(EnRu1* this, PlayState* play) {
func_80AED83C(this);
- func_80AEAC54(this, play);
+ EnRu1_UpdateSittingOC(this, play);
func_80AEAECC(this, play);
EnRu1_UpdateSkelAnime(this);
EnRu1_UpdateEyes(this);
@@ -1751,7 +1793,7 @@ void func_80AEEBD4(EnRu1* this, PlayState* play) {
void func_80AEEC5C(EnRu1* this, PlayState* play) {
func_80AED83C(this);
- func_80AEACDC(this, play);
+ EnRu1_UpdateSittingAT(this, play);
func_80AEAECC(this, play);
func_80AEE2F8(this, play);
func_80AEDFF4(this, play);
@@ -1765,10 +1807,10 @@ void func_80AEEC5C(EnRu1* this, PlayState* play) {
void func_80AEECF0(EnRu1* this, PlayState* play) {
func_80AED83C(this);
func_80AEAECC(this, play);
- func_80AEE050(this);
+ EnRu1_UpdateWaterState(this);
EnRu1_UpdateSkelAnime(this);
EnRu1_UpdateEyes(this);
- func_80AEEB24(this, play);
+ EnRu1_CheckSinkingState(this, play);
func_80AED624(this, play);
}
@@ -1778,7 +1820,7 @@ void func_80AEED58(EnRu1* this, PlayState* play) {
Actor_MoveXZGravity(&this->actor);
EnRu1_UpdateSkelAnime(this);
EnRu1_UpdateEyes(this);
- func_80AEEAC8(this, play);
+ EnRu1_CheckHitBottomUnderwater(this, play);
func_80AED624(this, play);
func_80AEDAE0(this, play);
}
@@ -1857,7 +1899,7 @@ s32 func_80AEF0BC(EnRu1* this, PlayState* play) {
Animation_Change(&this->skelAnime, &gRutoChildSitAnim, 1.0f, 0, frameCount, ANIMMODE_ONCE, -8.0f);
play->msgCtx.msgMode = MSGMODE_PAUSED;
- this->action = 26;
+ this->action = ENRU1_ACTION_26;
this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY);
return true;
}
@@ -1866,7 +1908,7 @@ s32 func_80AEF0BC(EnRu1* this, PlayState* play) {
void func_80AEF170(EnRu1* this, PlayState* play, s32 cond) {
if (cond) {
- this->action = 25;
+ this->action = ENRU1_ACTION_25;
}
}
@@ -1874,7 +1916,7 @@ void func_80AEF188(EnRu1* this, PlayState* play) {
if (func_80AEB174(play) && !func_80AEF0BC(this, play)) {
Message_CloseTextbox(play);
SET_INFTABLE(INFTABLE_142);
- this->action = 24;
+ this->action = ENRU1_ACTION_24;
}
}
@@ -1886,18 +1928,18 @@ void func_80AEF1F0(EnRu1* this, PlayState* play, UNK_TYPE arg2) {
SET_INFTABLE(INFTABLE_143);
func_80AED6DC(this, play);
Actor_OfferCarry(&this->actor, play);
- this->action = 27;
- func_80AEADD8(this);
+ this->action = ENRU1_ACTION_27;
+ EnRu1_DisableSittingOC(this);
}
}
void func_80AEF29C(EnRu1* this, PlayState* play) {
- this->action = 23;
+ this->action = ENRU1_ACTION_23;
}
void func_80AEF2AC(EnRu1* this, PlayState* play) {
- this->action = 24;
- this->drawConfig = 1;
+ this->action = ENRU1_ACTION_24;
+ this->drawConfig = ENRU1_DRAW_OPA;
this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY;
}
@@ -1907,7 +1949,7 @@ void func_80AEF2D0(EnRu1* this, PlayState* play) {
func_80AEEF68(this, play);
EnRu1_UpdateSkelAnime(this);
EnRu1_UpdateEyes(this);
- func_80AEAC10(this, play);
+ EnRu1_UpdateStandingOC(this, play);
func_80AEAECC(this, play);
cond = func_80AEE264(this, play);
func_80AED624(this, play);
@@ -1959,8 +2001,8 @@ void func_80AEF51C(EnRu1* this) {
void func_80AEF540(EnRu1* this) {
if (EnRu1_GetPlatformCamSetting(this) == 2) {
- EnRu1_SetEyeIndex(this, 3);
- EnRu1_SetMouthIndex(this, 2);
+ EnRu1_SetEyes(this, ENRU1_EYES_UP);
+ EnRu1_SetMouth(this, ENRU1_MOUTH_OPEN);
if (this->skelAnime.mode != 2) {
EnRu1_AnimationChange(this, &gRutoChildShutterAnim, ANIMMODE_ONCE, -8.0f, false);
func_80AEF51C(this);
@@ -1974,8 +2016,8 @@ void func_80AEF5B8(EnRu1* this) {
if (D_80AF1938 == 0) {
curFrame = this->skelAnime.curFrame;
if (curFrame >= 60.0f) {
- EnRu1_SetEyeIndex(this, 3);
- EnRu1_SetMouthIndex(this, 0);
+ EnRu1_SetEyes(this, ENRU1_EYES_UP);
+ EnRu1_SetMouth(this, ENRU1_MOUTH_SMILING);
func_80AED57C(this);
D_80AF1938 = 1;
}
@@ -2008,8 +2050,8 @@ void func_80AEF624(EnRu1* this, PlayState* play) {
Animation_Change(&this->skelAnime, &gRutoChildWalkToAndHoldUpSapphireAnim, 1.0f, 0.0f, frameCount,
ANIMMODE_ONCE, 0.0f);
func_80AEB3A4(this, play);
- this->action = 37;
- this->drawConfig = 1;
+ this->action = ENRU1_ACTION_37;
+ this->drawConfig = ENRU1_DRAW_OPA;
this->actor.shape.shadowAlpha = 0xFF;
}
}
@@ -2019,7 +2061,7 @@ void func_80AEF728(EnRu1* this, UNK_TYPE arg1) {
Animation_Change(&this->skelAnime, &gRutoChildHoldArmsUpAnim, 1.0f, 0.0f,
Animation_GetLastFrame(&gRutoChildHoldArmsUpAnim), ANIMMODE_LOOP, 0.0f);
func_80AEB3CC(this);
- this->action = 38;
+ this->action = ENRU1_ACTION_38;
}
}
@@ -2027,7 +2069,7 @@ void func_80AEF79C(EnRu1* this, PlayState* play) {
if (func_80AEAFE0(play, 2, 3)) {
Animation_Change(&this->skelAnime, &gRutoChildBringHandsDownAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildBringHandsDownAnim), ANIMMODE_ONCE, -8.0f);
- this->action = 39;
+ this->action = ENRU1_ACTION_39;
}
}
@@ -2035,7 +2077,7 @@ void func_80AEF820(EnRu1* this, UNK_TYPE arg1) {
if (arg1 != 0) {
Animation_Change(&this->skelAnime, &gRutoChildWait2Anim, 1.0f, 0, Animation_GetLastFrame(&gRutoChildWait2Anim),
ANIMMODE_LOOP, -8.0f);
- this->action = 40;
+ this->action = ENRU1_ACTION_40;
}
}
@@ -2046,9 +2088,9 @@ void func_80AEF890(EnRu1* this, PlayState* play) {
if (!(DEBUG_FEATURES && IS_CUTSCENE_LAYER) && EnRu1_IsCsStateIdle(play)) {
curRoomNum = play->roomCtx.curRoom.num;
SET_INFTABLE(INFTABLE_145);
- Flags_SetSwitch(play, func_80AEADE0(this));
+ Flags_SetSwitch(play, EnRu1_GetSwitchFlag(this));
EnRu1_SetPlatformCamSetting(this, 1);
- this->action = 42;
+ this->action = ENRU1_ACTION_42;
this->actor.room = curRoomNum;
}
}
@@ -2063,8 +2105,8 @@ void func_80AEF930(EnRu1* this, PlayState* play) {
Message_StartTextbox(play, this->actor.textId, NULL);
#endif
func_80AEF4A8(this, play);
- this->action = 43;
- this->drawConfig = 0;
+ this->action = ENRU1_ACTION_43;
+ this->drawConfig = ENRU1_DRAW_NOTHING;
}
}
@@ -2154,7 +2196,7 @@ void EnRu1_InitInSapphireRoom(EnRu1* this, PlayState* play) {
s32 pad;
EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false);
- this->action = 41;
+ this->action = ENRU1_ACTION_41;
this->bigOctoPlatform = EnRu1_FindBigOctoPlatform(play);
EnRu1_SetPlatformCamSetting(this, 1);
this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY);
@@ -2166,8 +2208,8 @@ void EnRu1_InitInSapphireRoom(EnRu1* this, PlayState* play) {
void func_80AEFCE8(EnRu1* this, PlayState* play) {
this->bigOctoPlatform = EnRu1_FindBigOctoPlatform(play);
if (this->bigOctoPlatform != NULL) {
- this->action = 42;
- this->drawConfig = 1;
+ this->action = ENRU1_ACTION_42;
+ this->drawConfig = ENRU1_DRAW_OPA;
EnRu1_SetPlatformCamSetting(this, 1);
}
}
@@ -2176,8 +2218,8 @@ void EnRu1_InitBesideKingZora(EnRu1* this, PlayState* play) {
if (GET_EVENTCHKINF(EVENTCHKINF_37) && LINK_IS_CHILD) {
EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false);
this->actor.flags &= ~ACTOR_FLAG_UPDATE_CULLING_DISABLED;
- this->action = 44;
- this->drawConfig = 1;
+ this->action = ENRU1_ACTION_44;
+ this->drawConfig = ENRU1_DRAW_OPA;
} else {
Actor_Kill(&this->actor);
}
@@ -2206,13 +2248,13 @@ s32 func_80AEFE38(EnRu1* this, PlayState* play) {
void func_80AEFE84(EnRu1* this, PlayState* play, s32 cond) {
if (cond) {
- this->action = 45;
+ this->action = ENRU1_ACTION_45;
}
}
void func_80AEFE9C(EnRu1* this, PlayState* play) {
if (func_80AEFE38(this, play)) {
- this->action = 44;
+ this->action = ENRU1_ACTION_44;
}
}
@@ -2220,7 +2262,7 @@ void func_80AEFECC(EnRu1* this, PlayState* play) {
func_80AEEF68(this, play);
EnRu1_UpdateSkelAnime(this);
EnRu1_UpdateEyes(this);
- func_80AEAC10(this, play);
+ EnRu1_UpdateStandingOC(this, play);
func_80AEAECC(this, play);
func_80AEFE84(this, play, func_80AEFDC0(this, play));
}
@@ -2243,9 +2285,9 @@ void EnRu1_InitBesideDoorSwitch(EnRu1* this, PlayState* play) {
(!(func_80AEB020(this, play)))) {
EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false);
actorRoom = this->actor.room;
- this->action = 22;
+ this->action = ENRU1_ACTION_22;
this->actor.room = -1;
- this->drawConfig = 0;
+ this->drawConfig = ENRU1_DRAW_NOTHING;
this->roomNum1 = actorRoom;
this->roomNum3 = actorRoom;
this->roomNum2 = actorRoom;
@@ -2259,7 +2301,7 @@ void EnRu1_InitBesideDoorSwitch(EnRu1* this, PlayState* play) {
#if DEBUG_FEATURES
void func_80AF0050(EnRu1* this, PlayState* play) {
EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false);
- this->action = 36;
+ this->action = ENRU1_ACTION_36;
this->roomNum1 = this->actor.room;
this->bigOctoPlatform = EnRu1_FindBigOctoPlatform(play);
this->actor.room = -1;
@@ -2284,42 +2326,42 @@ void EnRu1_Init(Actor* thisx, PlayState* play) {
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
SkelAnime_InitFlex(play, &this->skelAnime, &gRutoChildSkel, NULL, this->jointTable, this->morphTable, 17);
- func_80AEAD20(&this->actor, play);
- switch (func_80AEADF0(this)) {
- case 0:
+ EnRu1_InitColliders(&this->actor, play);
+ switch (EnRu1_GetType(this)) {
+ case ENRU1_TYPE_BOSS_ROOM:
EnRu1_InitInBossRoom(this, play);
break;
- case 1:
+ case ENRU1_TYPE_FOUNTAIN:
EnRu1_InitOutsideJabuJabu(this, play);
break;
- case 2:
+ case ENRU1_TYPE_HOLES_ROOM:
EnRu1_InitInJabuJabuHolesRoom(this, play);
break;
- case 3:
+ case ENRU1_TYPE_BASEMENT:
EnRu1_InitInJabuJabuBasement(this, play);
break;
- case 4:
+ case ENRU1_TYPE_SAPPHIRE_ROOM:
EnRu1_InitInSapphireRoom(this, play);
break;
- case 5:
+ case ENRU1_TYPE_BESIDE_KZ:
EnRu1_InitBesideKingZora(this, play);
break;
- case 6:
+ case ENRU1_TYPE_BESIDE_DOOR_SWITCH:
EnRu1_InitBesideDoorSwitch(this, play);
break;
#if DEBUG_FEATURES
- case 10:
+ case ENRU1_TYPE_DEBUG:
func_80AF0050(this, play);
break;
#endif
default:
Actor_Kill(&this->actor);
- PRINTF(T("該当 arge_data = %d 無し\n", "Relevant arge_data = %d unacceptable\n"), func_80AEADF0(this));
+ PRINTF(T("該当 arge_data = %d 無し\n", "Relevant arge_data = %d unacceptable\n"), EnRu1_GetType(this));
break;
}
}
-void func_80AF0278(EnRu1* this, PlayState* play, s32 limbIndex, Vec3s* rot) {
+void EnRu1_PreLimbDraw(EnRu1* this, PlayState* play, s32 limbIndex, Vec3s* rot) {
Vec3s* torsoRot = &this->interactInfo.torsoRot;
Vec3s* headRot = &this->interactInfo.headRot;
@@ -2339,11 +2381,12 @@ s32 EnRu1_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
Gfx** gfx) {
EnRu1* this = (EnRu1*)thisx;
- if ((this->unk_290 < 0) || (this->unk_290 > 0) || (*sPreLimbDrawFuncs[this->unk_290] == NULL)) {
+ if ((this->preLimbDrawIndex < 0) || (this->preLimbDrawIndex > 0) ||
+ (*sPreLimbDrawFuncs[this->preLimbDrawIndex] == NULL)) {
PRINTF(VT_FGCOL(RED) T("首回しモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n",
"Neck rotation mode is improper!!!!!!!!!!!!!!!!!!!!!!!!!\n") VT_RST);
} else {
- sPreLimbDrawFuncs[this->unk_290](this, play, limbIndex, rot);
+ sPreLimbDrawFuncs[this->preLimbDrawIndex](this, play, limbIndex, rot);
}
return false;
}
@@ -2352,14 +2395,14 @@ void EnRu1_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
EnRu1* this = (EnRu1*)thisx;
if (limbIndex == RUTO_CHILD_HEAD) {
- Vec3f vec1;
- Vec3f vec2;
+ Vec3f multVec;
+ Vec3f focusPos;
- vec1 = sMultVec;
- Matrix_MultVec3f(&vec1, &vec2);
- this->actor.focus.pos.x = vec2.x;
- this->actor.focus.pos.y = vec2.y;
- this->actor.focus.pos.z = vec2.z;
+ multVec = sMultVec;
+ Matrix_MultVec3f(&multVec, &focusPos);
+ this->actor.focus.pos.x = focusPos.x;
+ this->actor.focus.pos.y = focusPos.y;
+ this->actor.focus.pos.z = focusPos.z;
this->actor.focus.rot.x = this->actor.world.rot.x;
this->actor.focus.rot.y = this->actor.world.rot.y;
this->actor.focus.rot.z = this->actor.world.rot.z;
@@ -2371,11 +2414,11 @@ void EnRu1_DrawNothing(EnRu1* this, PlayState* play) {
void EnRu1_DrawOpa(EnRu1* this, PlayState* play) {
s32 pad[2];
- s16 eyeIndex = this->eyeIndex;
- void* eyeTex = sEyeTextures[eyeIndex];
- s16 mouthIndex = this->mouthIndex;
+ s16 eyes = this->eyes;
+ void* eyeTex = sEyeTextures[eyes];
+ s16 mouth = this->mouth;
SkelAnime* skelAnime = &this->skelAnime;
- void* mouthTex = sMouthTextures[mouthIndex];
+ void* mouthTex = sMouthTextures[mouth];
s32 pad1;
OPEN_DISPS(play->state.gfxCtx, "../z_en_ru1.c", 1282);
@@ -2396,11 +2439,11 @@ void EnRu1_DrawOpa(EnRu1* this, PlayState* play) {
void EnRu1_DrawXlu(EnRu1* this, PlayState* play) {
s32 pad[2];
- s16 eyeIndex = this->eyeIndex;
- void* eyeTex = sEyeTextures[eyeIndex];
- s16 mouthIndex = this->mouthIndex;
+ s16 eyes = this->eyes;
+ void* eyeTex = sEyeTextures[eyes];
+ s16 mouth = this->mouth;
SkelAnime* skelAnime = &this->skelAnime;
- void* mouthTex = sMouthTextures[mouthIndex];
+ void* mouthTex = sMouthTextures[mouth];
s32 pad1;
OPEN_DISPS(play->state.gfxCtx, "../z_en_ru1.c", 1324);
diff --git a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.h b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.h
index b3fea7c432..52e89effd1 100644
--- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.h
+++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.h
@@ -7,6 +7,9 @@
#include "overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.h"
#include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h"
+#define ENRU1_SWITCH_FLAG(thisx) PARAMS_GET_U((thisx)->params, 8, 8)
+#define ENRU1_TYPE(thisx) PARAMS_GET_U((thisx)->params, 0, 8)
+
struct EnRu1;
typedef void (*EnRu1ActionFunc)(struct EnRu1*, struct PlayState*);
@@ -18,9 +21,9 @@ typedef struct EnRu1 {
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ Vec3s jointTable[17];
/* 0x01F6 */ Vec3s morphTable[17];
- /* 0x025C */ s16 eyeIndex;
+ /* 0x025C */ s16 eyes;
/* 0x025E */ s16 blinkTimer;
- /* 0x0260 */ s16 mouthIndex;
+ /* 0x0260 */ s16 mouth;
/* 0x0264 */ s32 action;
/* 0x0268 */ s32 drawConfig;
/* 0x026C */ f32 unk_26C;
@@ -34,7 +37,7 @@ typedef struct EnRu1 {
/* 0x0286 */ s8 roomNum3;
/* 0x0288 */ f32 unk_288;
/* 0x028C */ BgBdanObjects* bigOctoPlatform;
- /* 0x0290 */ s32 unk_290;
+ /* 0x0290 */ s32 preLimbDrawIndex;
/* 0x0294 */ char unk_294[0x4];
/* 0x0298 */ s32 unk_298;
/* 0x029C */ char unk_29C[0x2];
@@ -44,30 +47,120 @@ typedef struct EnRu1 {
/* 0x02A8 */ s32 alpha;
/* 0x02AC */ s16 headRotTimer;
/* 0x02B0 */ s32 headRotDirection;
- /* 0x02B4 */ ColliderCylinder collider;
- /* 0x0300 */ ColliderCylinder collider2;
- /* 0x034C */ s32 unk_34C;
- /* 0x0350 */ s32 unk_350;
- /* 0x0354 */ f32 unk_354;
- /* 0x0358 */ f32 unk_358;
- /* 0x035C */ s16 unk_35C;
- /* 0x0360 */ f32 unk_360;
+ /* 0x02B4 */ ColliderCylinder standingCollider;
+ /* 0x0300 */ ColliderCylinder sittingCollider;
+ /* 0x034C */ s32 isSittingOCActive;
+ /* 0x0350 */ s32 waterState;
+ /* 0x0354 */ f32 sinkingStartPosY;
+ /* 0x0358 */ f32 bobDepth;
+ /* 0x035C */ s16 bobPhase;
+ /* 0x0360 */ f32 isSinking;
/* 0x0364 */ Vec3f unk_364;
/* 0x0370 */ f32 carryIdleTimer;
/* 0x0374 */ NpcInteractInfo interactInfo;
} EnRu1; // size = 0x039C
+typedef enum EnRu1Action {
+ /* 0 */ ENRU1_ACTION_00,
+ /* 1 */ ENRU1_ACTION_01,
+ /* 2 */ ENRU1_ACTION_02,
+ /* 3 */ ENRU1_ACTION_03,
+ /* 4 */ ENRU1_ACTION_04,
+ /* 5 */ ENRU1_ACTION_05,
+ /* 6 */ ENRU1_ACTION_06,
+ /* 7 */ ENRU1_ACTION_07,
+ /* 8 */ ENRU1_ACTION_08,
+ /* 9 */ ENRU1_ACTION_09,
+ /* 10 */ ENRU1_ACTION_10,
+ /* 11 */ ENRU1_ACTION_11,
+ /* 12 */ ENRU1_ACTION_12,
+ /* 13 */ ENRU1_ACTION_13,
+ /* 14 */ ENRU1_ACTION_14,
+ /* 15 */ ENRU1_ACTION_15,
+ /* 16 */ ENRU1_ACTION_16,
+ /* 17 */ ENRU1_ACTION_17,
+ /* 18 */ ENRU1_ACTION_18,
+ /* 19 */ ENRU1_ACTION_19,
+ /* 20 */ ENRU1_ACTION_20,
+ /* 21 */ ENRU1_ACTION_21,
+ /* 22 */ ENRU1_ACTION_22,
+ /* 23 */ ENRU1_ACTION_23,
+ /* 24 */ ENRU1_ACTION_24,
+ /* 25 */ ENRU1_ACTION_25,
+ /* 26 */ ENRU1_ACTION_26,
+ /* 27 */ ENRU1_ACTION_27,
+ /* 28 */ ENRU1_ACTION_28,
+ /* 29 */ ENRU1_ACTION_29,
+ /* 30 */ ENRU1_ACTION_30,
+ /* 31 */ ENRU1_ACTION_31,
+ /* 32 */ ENRU1_ACTION_32,
+ /* 33 */ ENRU1_ACTION_33,
+ /* 34 */ ENRU1_ACTION_34,
+ /* 35 */ ENRU1_ACTION_35,
+ /* 36 */ ENRU1_ACTION_36,
+ /* 37 */ ENRU1_ACTION_37,
+ /* 38 */ ENRU1_ACTION_38,
+ /* 39 */ ENRU1_ACTION_39,
+ /* 40 */ ENRU1_ACTION_40,
+ /* 41 */ ENRU1_ACTION_41,
+ /* 42 */ ENRU1_ACTION_42,
+ /* 43 */ ENRU1_ACTION_43,
+ /* 44 */ ENRU1_ACTION_44,
+ /* 45 */ ENRU1_ACTION_45
+} EnRu1Action;
+
+typedef enum EnRu1DrawConfig {
+ /* 0 */ ENRU1_DRAW_NOTHING,
+ /* 1 */ ENRU1_DRAW_OPA,
+ /* 2 */ ENRU1_DRAW_XLU
+} EnRu1DrawConfig;
+
+typedef enum EnRu1Type {
+ /* 0 */ ENRU1_TYPE_BOSS_ROOM,
+ /* 1 */ ENRU1_TYPE_FOUNTAIN,
+ /* 2 */ ENRU1_TYPE_HOLES_ROOM,
+ /* 3 */ ENRU1_TYPE_BASEMENT,
+ /* 4 */ ENRU1_TYPE_SAPPHIRE_ROOM,
+ /* 5 */ ENRU1_TYPE_BESIDE_KZ,
+ /* 6 */ ENRU1_TYPE_BESIDE_DOOR_SWITCH,
+#if DEBUG_FEATURES
+ /* 10 */ ENRU1_TYPE_DEBUG = 10,
+#endif
+} EnRu1Type;
+
+typedef enum EnRu1Eyes {
+ /* 0 */ ENRU1_EYES_OPEN,
+ /* 1 */ ENRU1_EYES_HALF_BLINK,
+ /* 2 */ ENRU1_EYES_CLOSED,
+ /* 3 */ ENRU1_EYES_UP,
+ /* 4 */ ENRU1_EYES_GAZING,
+ /* 5 */ ENRU1_EYES_BLUSH
+} EnRu1Eyes;
+
+typedef enum EnRu1Mouth {
+ /* 0 */ ENRU1_MOUTH_SMILING,
+ /* 1 */ ENRU1_MOUTH_FROWNING,
+ /* 2 */ ENRU1_MOUTH_OPEN
+} EnRu1Mouth;
+
+typedef enum EnRu1WaterState {
+ /* 0 */ ENRU1_WATER_OUTSIDE,
+ /* 1 */ ENRU1_WATER_IMMERSED,
+ /* 2 */ ENRU1_WATER_BOBBING,
+ /* 3 */ ENRU1_WATER_SINKING
+} EnRu1WaterState;
+
typedef enum RutoLimb {
- /* 0 */ RUTO_CHILD_NONE,
- /* 1 */ RUTO_CHILD_ROOT,
- /* 2 */ RUTO_CHILD_LEFT_THIGH,
- /* 3 */ RUTO_CHILD_LEFT_SHIN,
- /* 4 */ RUTO_CHILD_LEFT_FOOT,
- /* 5 */ RUTO_CHILD_RIGHT_THIGH,
- /* 6 */ RUTO_CHILD_RIGHT_SHIN,
- /* 7 */ RUTO_CHILD_RIGHT_FOOT,
- /* 8 */ RUTO_CHILD_CHEST,
- /* 9 */ RUTO_CHILD_LEFT_UPPER_ARM,
+ /* 0 */ RUTO_CHILD_NONE,
+ /* 1 */ RUTO_CHILD_ROOT,
+ /* 2 */ RUTO_CHILD_LEFT_THIGH,
+ /* 3 */ RUTO_CHILD_LEFT_SHIN,
+ /* 4 */ RUTO_CHILD_LEFT_FOOT,
+ /* 5 */ RUTO_CHILD_RIGHT_THIGH,
+ /* 6 */ RUTO_CHILD_RIGHT_SHIN,
+ /* 7 */ RUTO_CHILD_RIGHT_FOOT,
+ /* 8 */ RUTO_CHILD_CHEST,
+ /* 9 */ RUTO_CHILD_LEFT_UPPER_ARM,
/* 10 */ RUTO_CHILD_LEFT_FIN,
/* 11 */ RUTO_CHILD_LEFT_HAND,
/* 12 */ RUTO_CHILD_RIGHT_UPPER_ARM,
diff --git a/src/overlays/actors/ovl_En_Tite/z_en_tite.c b/src/overlays/actors/ovl_En_Tite/z_en_tite.c
index 22c4a16cee..1f45f2541b 100644
--- a/src/overlays/actors/ovl_En_Tite/z_en_tite.c
+++ b/src/overlays/actors/ovl_En_Tite/z_en_tite.c
@@ -227,8 +227,7 @@ void EnTite_Destroy(Actor* thisx, PlayState* play) {
spawner->curNumSpawn--;
}
PRINTF("\n\n");
- PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 同時発生数 ☆☆☆☆☆%d\n", "☆☆☆☆☆ Number of simultaneous occurrences ☆☆☆☆☆%d\n")
- VT_RST,
+ PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 同時発生数 ☆☆☆☆☆%d\n", "☆☆☆☆☆ Number of simultaneous spawns ☆☆☆☆☆%d\n") VT_RST,
spawner->curNumSpawn);
PRINTF("\n\n");
}
diff --git a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c
index 09368f5b09..ce7ea7e2c9 100644
--- a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c
+++ b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c
@@ -34,6 +34,8 @@
#include "assets/objects/object_ganon/object_ganon.h"
#include "assets/objects/object_opening_demo1/object_opening_demo1.h"
+#pragma increment_block_number "ntsc-1.0:128"
+
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
void EnViewer_Init(Actor* thisx, PlayState* play);
diff --git a/src/overlays/actors/ovl_En_Wf/z_en_wf.c b/src/overlays/actors/ovl_En_Wf/z_en_wf.c
index 2f33d07a2c..c651e4ff4a 100644
--- a/src/overlays/actors/ovl_En_Wf/z_en_wf.c
+++ b/src/overlays/actors/ovl_En_Wf/z_en_wf.c
@@ -293,7 +293,7 @@ void EnWf_Destroy(Actor* thisx, PlayState* play) {
}
PRINTF("\n\n");
- PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 同時発生数 ☆☆☆☆☆%d\n", "☆☆☆☆☆ Number of simultaneous occurrences ☆☆☆☆☆%d\n")
+ PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 同時発生数 ☆☆☆☆☆%d\n", "☆☆☆☆☆ Number of simultaneous spawns ☆☆☆☆☆%d\n")
VT_RST,
parent->curNumSpawn);
PRINTF("\n\n");
diff --git a/src/overlays/actors/ovl_En_Xc/z_en_xc.c b/src/overlays/actors/ovl_En_Xc/z_en_xc.c
index 2ff73c8f4a..60a247490b 100644
--- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c
+++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c
@@ -1416,7 +1416,7 @@ void func_80B3F3D8(void) {
}
#pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-jp:64 gc-jp-ce:64 gc-jp-mq:64 gc-us:64 gc-us-mq:64 ique-cn:64" \
- "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
+ "ntsc-1.0:64 ntsc-1.1:64 ntsc-1.2:64 pal-1.0:64 pal-1.1:64"
void EnXc_PlayDiveSFX(Vec3f* src, PlayState* play) {
static Vec3f D_80B42DA0;
diff --git a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c
index 21827f32c0..13acab8d46 100644
--- a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c
+++ b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c
@@ -11,6 +11,7 @@
#include "gfx_setupdl.h"
#include "sfx.h"
#include "sys_matrix.h"
+#include "tex_len.h"
#include "z_lib.h"
#include "play_state.h"
#include "player.h"
@@ -41,7 +42,23 @@ ActorProfile Magic_Dark_Profile = {
/**/ MagicDark_OrbDraw,
};
-#include "assets/overlays/ovl_Magic_Dark/ovl_Magic_Dark.c"
+#define sDiamondTex_WIDTH 32
+#define sDiamondTex_HEIGHT 64
+static u64 sDiamondTex[TEX_LEN(u64, sDiamondTex_WIDTH, sDiamondTex_HEIGHT, 8)] = {
+#include "assets/overlays/ovl_Magic_Dark/sDiamondTex.i8.inc.c"
+};
+
+static Vtx sDiamondVtx[] = {
+#include "assets/overlays/ovl_Magic_Dark/sDiamondVtx.inc.c"
+};
+
+static Gfx sDiamondMaterialDL[22] = {
+#include "assets/overlays/ovl_Magic_Dark/sDiamondMaterialDL.inc.c"
+};
+
+static Gfx sDiamondModelDL[8] = {
+#include "assets/overlays/ovl_Magic_Dark/sDiamondModelDL.inc.c"
+};
// unused
static Color_RGBA8 D_80B88B10[] = { { 50, 100, 150, 200 }, { 255, 200, 150, 100 } };
diff --git a/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c b/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c
index 103a7ee1b8..a5938c8fca 100644
--- a/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c
+++ b/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c
@@ -11,6 +11,7 @@
#include "ichain.h"
#include "sfx.h"
#include "sys_matrix.h"
+#include "tex_len.h"
#include "z_lib.h"
#include "play_state.h"
#include "player.h"
@@ -51,7 +52,23 @@ ActorProfile Magic_Fire_Profile = {
/**/ MagicFire_Draw,
};
-#include "assets/overlays/ovl_Magic_Fire/ovl_Magic_Fire.c"
+#define sTex_WIDTH 64
+#define sTex_HEIGHT 64
+static u64 sTex[TEX_LEN(u64, sTex_WIDTH, sTex_HEIGHT, 8)] = {
+#include "assets/overlays/ovl_Magic_Fire/sTex.i8.inc.c"
+};
+
+static Vtx sSphereVtx[] = {
+#include "assets/overlays/ovl_Magic_Fire/sSphereVtx.inc.c"
+};
+
+static Gfx sMaterialDL[5] = {
+#include "assets/overlays/ovl_Magic_Fire/sMaterialDL.inc.c"
+};
+
+static Gfx sModelDL[45] = {
+#include "assets/overlays/ovl_Magic_Fire/sModelDL.inc.c"
+};
static ColliderCylinderInit sCylinderInit = {
{
diff --git a/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c b/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c
index 3a164db8ea..06254d6ca6 100644
--- a/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c
+++ b/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c
@@ -182,11 +182,11 @@ void MirRay_Init(Actor* thisx, PlayState* play) {
Actor_ProcessInitChain(&this->actor, sInitChain);
ActorShape_Init(&this->actor.shape, 0.0f, NULL, 0.0f);
PRINTF(T("反射用 光の発生!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n",
- "Generation of reflectable light!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"));
+ "Spawn of reflectable light!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"));
LOG_NUM("this->actor.arg_data", this->actor.params, "../z_mir_ray.c", 518);
if (this->actor.params >= 0xA) {
- LOG_STRING_T("反射光 発生失敗", "Reflected light generation failure", "../z_mir_ray.c", 521);
+ LOG_STRING_T("反射光 発生失敗", "Reflected light failed to spawn", "../z_mir_ray.c", 521);
Actor_Kill(&this->actor);
}
diff --git a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c
index 2229560f1f..7ccb70299d 100644
--- a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c
+++ b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c
@@ -163,8 +163,8 @@ void ObjBean_InitDynaPoly(ObjBean* this, PlayState* play, CollisionHeader* colli
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_obj_bean.c", 374, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
diff --git a/src/overlays/actors/ovl_Obj_Elevator/z_obj_elevator.c b/src/overlays/actors/ovl_Obj_Elevator/z_obj_elevator.c
index f849298e10..ad572f17be 100644
--- a/src/overlays/actors/ovl_Obj_Elevator/z_obj_elevator.c
+++ b/src/overlays/actors/ovl_Obj_Elevator/z_obj_elevator.c
@@ -63,8 +63,8 @@ void func_80B92B08(ObjElevator* this, PlayState* play, CollisionHeader* collisio
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_obj_elevator.c", 136, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
diff --git a/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c b/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c
index 187bb4d184..3d8af090e5 100644
--- a/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c
+++ b/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c
@@ -75,8 +75,8 @@ void func_80B93B68(ObjHsblock* this, PlayState* play, CollisionHeader* collision
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_obj_hsblock.c", 163, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
diff --git a/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c b/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c
index a8da522c09..a6c35ed922 100644
--- a/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c
+++ b/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c
@@ -84,8 +84,8 @@ void ObjLift_InitDynaPoly(ObjLift* this, PlayState* play, CollisionHeader* colli
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_obj_lift.c", 188, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
diff --git a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c
index a8387c0d75..3a99282723 100644
--- a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c
+++ b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c
@@ -205,7 +205,7 @@ void ObjLightswitch_Init(Actor* thisx, PlayState* play) {
(0xFF << 8) | PUSHBLOCK_SMALL_START_ON) == NULL) {
PRINTF_COLOR_ERROR();
PRINTF(T("押引ブロック発生失敗(%s %d)(arg_data 0x%04x)\n",
- "Push/pull block failure(%s %d)(arg_data 0x%04x)\n"),
+ "Push/pull block failed to spawn (%s %d)(arg_data 0x%04x)\n"),
"../z_obj_lightswitch.c", 452, this->actor.params);
PRINTF_RST();
removeSelf = true;
diff --git a/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c b/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c
index 7865da9830..ad06491a54 100644
--- a/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c
+++ b/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c
@@ -80,7 +80,7 @@ void ObjMakeoshihiki_Init(Actor* thisx, PlayState* play) {
if (Actor_SpawnAsChild(&play->actorCtx, thisx, play, ACTOR_OBJ_OSHIHIKI, spawnPos->x, spawnPos->y, spawnPos->z, 0,
block->rotY, 0, ((block->color << 6) & 0xC0) | (block->type & 0xF) | 0xFF00) == NULL) {
PRINTF_COLOR_ERROR();
- PRINTF(T("Error : 押し引きブロック発生失敗(%s %d)\n", "Error : Push/pull block failure (%s %d)\n"),
+ PRINTF(T("Error : 押し引きブロック発生失敗(%s %d)\n", "Error : Push/pull block failed to spawn (%s %d)\n"),
"../z_obj_makeoshihiki.c", 194);
PRINTF_RST();
Actor_Kill(thisx);
diff --git a/src/overlays/actors/ovl_Obj_Mure/z_obj_mure.c b/src/overlays/actors/ovl_Obj_Mure/z_obj_mure.c
index c27662dd0c..238bf69cf6 100644
--- a/src/overlays/actors/ovl_Obj_Mure/z_obj_mure.c
+++ b/src/overlays/actors/ovl_Obj_Mure/z_obj_mure.c
@@ -176,7 +176,7 @@ void ObjMure_SpawnActors0(ObjMure* this, PlayState* play) {
this->children[i]->flags |= ACTOR_FLAG_GRASS_DESTROYED;
this->children[i]->room = actor->room;
} else {
- PRINTF(T("warning 発生失敗 (%s %d)\n", "warning failed to occur (%s %d)\n"), "../z_obj_mure.c",
+ PRINTF(T("warning 発生失敗 (%s %d)\n", "warning failed to spawn (%s %d)\n"), "../z_obj_mure.c",
359);
}
break;
@@ -188,7 +188,7 @@ void ObjMure_SpawnActors0(ObjMure* this, PlayState* play) {
if (this->children[i] != NULL) {
this->children[i]->room = actor->room;
} else {
- PRINTF(T("warning 発生失敗 (%s %d)\n", "warning failed to occur (%s %d)\n"), "../z_obj_mure.c",
+ PRINTF(T("warning 発生失敗 (%s %d)\n", "warning failed to spawn (%s %d)\n"), "../z_obj_mure.c",
382);
}
break;
@@ -221,7 +221,7 @@ void ObjMure_SpawnActors1(ObjMure* this, PlayState* play2) {
this->children[i]->room = actor->room;
} else {
this->childrenStates[i] = OBJMURE_CHILD_STATE_1;
- PRINTF(T("warning 発生失敗 (%s %d)\n", "warning failed to occur (%s %d)\n"), "../z_obj_mure.c", 438);
+ PRINTF(T("warning 発生失敗 (%s %d)\n", "warning failed to spawn (%s %d)\n"), "../z_obj_mure.c", 438);
}
}
}
diff --git a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c
index 8c4c20cc48..b328e2b6c1 100644
--- a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c
+++ b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c
@@ -111,8 +111,8 @@ void ObjOshihiki_InitDynapoly(ObjOshihiki* this, PlayState* play, CollisionHeade
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_obj_oshihiki.c", 280, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
diff --git a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c
index e71673413c..f8cc6397f8 100644
--- a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c
+++ b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c
@@ -218,8 +218,8 @@ void ObjSwitch_InitDynaPoly(ObjSwitch* this, PlayState* play, CollisionHeader* c
if (this->dyna.bgId == BG_ACTOR_MAX) {
s32 pad2;
- PRINTF(T("Warning : move BG 登録失敗",
- "Warning : move BG registration failed") "(%s %d)(name %d)(arg_data 0x%04x)\n",
+ PRINTF(T("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n",
+ "Warning : move BG registration failed (%s %d)(name %d)(arg_data 0x%04x)\n"),
"../z_obj_switch.c", 531, this->dyna.actor.id, this->dyna.actor.params);
}
#endif
@@ -339,7 +339,7 @@ void ObjSwitch_Init(Actor* thisx, PlayState* play) {
if (OBJSWITCH_FROZEN(&this->dyna.actor) && (ObjSwitch_SpawnIce(this, play) == NULL)) {
PRINTF_COLOR_RED();
- PRINTF(T("Error : 氷発生失敗 (%s %d)\n", "Error : Ice generation failure (%s %d)\n"), "../z_obj_switch.c", 732);
+ PRINTF(T("Error : 氷発生失敗 (%s %d)\n", "Error : Ice failed to spawn (%s %d)\n"), "../z_obj_switch.c", 732);
PRINTF_RST();
this->dyna.actor.params &= ~OBJSWITCH_FROZEN_FLAG;
}
diff --git a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c
index 9409ee0a52..ccebc0615e 100644
--- a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c
+++ b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c
@@ -188,7 +188,7 @@ void ObjSyokudai_Update(Actor* thisx, PlayState* play2) {
interactionType = 1;
}
} else if (player->heldItemAction == PLAYER_IA_DEKU_STICK) {
- Math_Vec3f_Diff(&player->meleeWeaponInfo[0].tip, &this->actor.world.pos, &tipToFlame);
+ Math_Vec3f_Diff(MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0]), &this->actor.world.pos, &tipToFlame);
tipToFlame.y -= 67.0f;
if ((SQ(tipToFlame.x) + SQ(tipToFlame.y) + SQ(tipToFlame.z)) < SQ(20.0f)) {
interactionType = -1;
diff --git a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c
index 61772fa0c1..15f6308e1e 100644
--- a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c
+++ b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c
@@ -13,6 +13,7 @@
#include "regs.h"
#include "sys_matrix.h"
#include "terminal.h"
+#include "tex_len.h"
#include "translation.h"
#include "z_lib.h"
#include "light.h"
@@ -42,7 +43,23 @@ ActorProfile Oceff_Spot_Profile = {
/**/ OceffSpot_Draw,
};
-#include "assets/overlays/ovl_Oceff_Spot/ovl_Oceff_Spot.c"
+#define sTex_WIDTH 32
+#define sTex_HEIGHT 32
+static u64 sTex[TEX_LEN(u64, sTex_WIDTH, sTex_HEIGHT, 8)] = {
+#include "assets/overlays/ovl_Oceff_Spot/sTex.i8.inc.c"
+};
+
+static Vtx sCylinderVtx[] = {
+#include "assets/overlays/ovl_Oceff_Spot/sCylinderVtx.inc.c"
+};
+
+static Gfx sCylinderMaterialDL[19] = {
+#include "assets/overlays/ovl_Oceff_Spot/sCylinderMaterialDL.inc.c"
+};
+
+static Gfx sCylinderModelDL[18] = {
+#include "assets/overlays/ovl_Oceff_Spot/sCylinderModelDL.inc.c"
+};
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 0, ICHAIN_CONTINUE),
diff --git a/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c b/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c
index 036349d0e9..e7e623f024 100644
--- a/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c
+++ b/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c
@@ -9,10 +9,13 @@
#include "gfx.h"
#include "gfx_setupdl.h"
#include "sys_matrix.h"
+#include "tex_len.h"
#include "play_state.h"
#include "player.h"
#include "save.h"
+#include "assets/objects/gameplay_keep/gameplay_keep.h"
+
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA)
void OceffStorm_Init(Actor* thisx, PlayState* play);
@@ -127,7 +130,27 @@ void OceffStorm_Update(Actor* thisx, PlayState* play) {
this->actionFunc(this, play);
}
-#include "assets/overlays/ovl_Oceff_Storm/ovl_Oceff_Storm.c"
+#define sTex_WIDTH 64
+#define sTex_HEIGHT 64
+static u64 sTex[TEX_LEN(u64, sTex_WIDTH, sTex_HEIGHT, 8)] = {
+#include "assets/overlays/ovl_Oceff_Storm/sTex.i8.inc.c"
+};
+
+static Gfx sMaterialDL[21] = {
+#include "assets/overlays/ovl_Oceff_Storm/sMaterialDL.inc.c"
+};
+
+static Vtx sCylinderVtx[] = {
+#include "assets/overlays/ovl_Oceff_Storm/sCylinderVtx.inc.c"
+};
+
+static Gfx sCylinderMaterialDL[21] = {
+#include "assets/overlays/ovl_Oceff_Storm/sCylinderMaterialDL.inc.c"
+};
+
+static Gfx sCylinderModelDL[18] = {
+#include "assets/overlays/ovl_Oceff_Storm/sCylinderModelDL.inc.c"
+};
void OceffStorm_Draw2(Actor* thisx, PlayState* play) {
u32 scroll = play->state.frames & 0xFFF;
diff --git a/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c b/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c
index 8346407c9a..e07daebbfd 100644
--- a/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c
+++ b/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c
@@ -11,6 +11,7 @@
#include "printf.h"
#include "sys_matrix.h"
#include "terminal.h"
+#include "tex_len.h"
#include "z_lib.h"
#include "play_state.h"
#include "player.h"
@@ -65,7 +66,23 @@ void OceffWipe_Update(Actor* thisx, PlayState* play) {
}
}
-#include "assets/overlays/ovl_Oceff_Wipe/ovl_Oceff_Wipe.c"
+#define sTex_WIDTH 32
+#define sTex_HEIGHT 32
+static u64 sTex[TEX_LEN(u64, sTex_WIDTH, sTex_HEIGHT, 8)] = {
+#include "assets/overlays/ovl_Oceff_Wipe/sTex.i8.inc.c"
+};
+
+static Vtx sFrustumVtx[] = {
+#include "assets/overlays/ovl_Oceff_Wipe/sFrustumVtx.inc.c"
+};
+
+static Gfx sMaterialDL[17] = {
+#include "assets/overlays/ovl_Oceff_Wipe/sMaterialDL.inc.c"
+};
+
+static Gfx sFrustumDL[23] = {
+#include "assets/overlays/ovl_Oceff_Wipe/sFrustumDL.inc.c"
+};
static u8 sAlphaIndices[] = {
0x01, 0x10, 0x22, 0x01, 0x20, 0x12, 0x01, 0x20, 0x12, 0x01,
diff --git a/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c b/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c
index 71498caa13..b71ddef91a 100644
--- a/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c
+++ b/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c
@@ -11,6 +11,7 @@
#include "printf.h"
#include "sys_matrix.h"
#include "terminal.h"
+#include "tex_len.h"
#include "z_lib.h"
#include "play_state.h"
#include "player.h"
@@ -65,7 +66,29 @@ void OceffWipe2_Update(Actor* thisx, PlayState* play) {
}
}
-#include "assets/overlays/ovl_Oceff_Wipe2/ovl_Oceff_Wipe2.c"
+#define s1Tex_WIDTH 64
+#define s1Tex_HEIGHT 64
+static u64 s1Tex[TEX_LEN(u64, s1Tex_WIDTH, s1Tex_HEIGHT, 4)] = {
+#include "assets/overlays/ovl_Oceff_Wipe2/s1Tex.i4.inc.c"
+};
+
+#define s2Tex_WIDTH 64
+#define s2Tex_HEIGHT 64
+static u64 s2Tex[TEX_LEN(u64, s2Tex_WIDTH, s2Tex_HEIGHT, 4)] = {
+#include "assets/overlays/ovl_Oceff_Wipe2/s2Tex.i4.inc.c"
+};
+
+static Vtx sFrustumVtx[] = {
+#include "assets/overlays/ovl_Oceff_Wipe2/sFrustumVtx.inc.c"
+};
+
+static Gfx sMaterialDL[21] = {
+#include "assets/overlays/ovl_Oceff_Wipe2/sMaterialDL.inc.c"
+};
+
+static Gfx sFrustumDL[12] = {
+#include "assets/overlays/ovl_Oceff_Wipe2/sFrustumDL.inc.c"
+};
void OceffWipe2_Draw(Actor* thisx, PlayState* play) {
u32 scroll = play->state.frames & 0xFF;
diff --git a/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c b/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c
index 6ec42324a2..eb62318ce7 100644
--- a/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c
+++ b/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c
@@ -11,6 +11,7 @@
#include "printf.h"
#include "sys_matrix.h"
#include "terminal.h"
+#include "tex_len.h"
#include "z_lib.h"
#include "play_state.h"
#include "player.h"
@@ -35,7 +36,23 @@ ActorProfile Oceff_Wipe3_Profile = {
/**/ OceffWipe3_Draw,
};
-#include "assets/overlays/ovl_Oceff_Wipe3/ovl_Oceff_Wipe3.c"
+#define sTex_WIDTH 64
+#define sTex_HEIGHT 64
+static u64 sTex[TEX_LEN(u64, sTex_WIDTH, sTex_HEIGHT, 8)] = {
+#include "assets/overlays/ovl_Oceff_Wipe3/sTex.i8.inc.c"
+};
+
+static Vtx sFrustumVtx[] = {
+#include "assets/overlays/ovl_Oceff_Wipe3/sFrustumVtx.inc.c"
+};
+
+static Gfx sMaterialDL[17] = {
+#include "assets/overlays/ovl_Oceff_Wipe3/sMaterialDL.inc.c"
+};
+
+static Gfx sFrustumDL[12] = {
+#include "assets/overlays/ovl_Oceff_Wipe3/sFrustumDL.inc.c"
+};
void OceffWipe3_Init(Actor* thisx, PlayState* play) {
OceffWipe3* this = (OceffWipe3*)thisx;
diff --git a/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c b/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c
index 8b860cc0c1..00b97cc756 100644
--- a/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c
+++ b/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c
@@ -11,9 +11,12 @@
#include "printf.h"
#include "sys_matrix.h"
#include "terminal.h"
+#include "tex_len.h"
#include "z_lib.h"
#include "play_state.h"
+#include "assets/objects/gameplay_keep/gameplay_keep.h"
+
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA)
void OceffWipe4_Init(Actor* thisx, PlayState* play);
@@ -62,7 +65,27 @@ void OceffWipe4_Update(Actor* thisx, PlayState* play) {
}
}
-#include "assets/overlays/ovl_Oceff_Wipe4/ovl_Oceff_Wipe4.c"
+#define sTex_WIDTH 32
+#define sTex_HEIGHT 64
+static u64 sTex[TEX_LEN(u64, sTex_WIDTH, sTex_HEIGHT, 8)] = {
+#include "assets/overlays/ovl_Oceff_Wipe4/sTex.i8.inc.c"
+};
+
+static Vtx sFrustumVtx[] = {
+#include "assets/overlays/ovl_Oceff_Wipe4/sFrustumVtx.inc.c"
+};
+
+static Gfx sMaterialDL[13] = {
+#include "assets/overlays/ovl_Oceff_Wipe4/sMaterialDL.inc.c"
+};
+
+static Gfx sUnusedMaterialDL[13] = {
+#include "assets/overlays/ovl_Oceff_Wipe4/sUnusedMaterialDL.inc.c"
+};
+
+static Gfx sMaterial2DL[23] = {
+#include "assets/overlays/ovl_Oceff_Wipe4/sMaterial2DL.inc.c"
+};
void OceffWipe4_Draw(Actor* thisx, PlayState* play) {
u32 scroll = play->state.frames & 0xFFF;
diff --git a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c
index 71d8b881f2..1ba86361ed 100644
--- a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c
+++ b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c
@@ -78,7 +78,7 @@ void ShotSun_Init(Actor* thisx, PlayState* play) {
ShotSun* this = (ShotSun*)thisx;
s32 params;
- PRINTF(T("%d ---- オカリナの秘密発生!!!!!!!!!!!!!\n", "%d ---- Ocarina secret occurrence!!!!!!!!!!!!!\n"),
+ PRINTF(T("%d ---- オカリナの秘密発生!!!!!!!!!!!!!\n", "%d ---- Ocarina secret spawn!!!!!!!!!!!!!\n"),
this->actor.params);
params = PARAMS_GET_U(this->actor.params, 0, 8);
if (params == 0x40 || params == 0x41) {
diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c
index cd87ea5554..36b124a1c6 100644
--- a/src/overlays/actors/ovl_player_actor/z_player.c
+++ b/src/overlays/actors/ovl_player_actor/z_player.c
@@ -377,7 +377,7 @@ static Vec3f sInteractWallCheckResult;
static Input* sControlInput;
#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \
- "ique-cn:192 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
+ "ique-cn:160 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
// .data
@@ -1766,7 +1766,7 @@ void Player_ApplyYawFromAnim(Player* this) {
void func_80832318(Player* this) {
this->stateFlags2 &= ~PLAYER_STATE2_17;
this->meleeWeaponState = 0;
- this->meleeWeaponInfo[0].active = this->meleeWeaponInfo[1].active = this->meleeWeaponInfo[2].active = 0;
+ this->meleeWeaponInfo[0].active = this->meleeWeaponInfo[1].active = this->meleeWeaponInfo[2].active = false;
}
void func_80832340(PlayState* play, Player* this) {
@@ -3498,7 +3498,7 @@ void Player_SetupActionPreserveItemAction(PlayState* play, Player* this, PlayerA
}
}
-void func_80835E44(PlayState* play, s16 camSetting) {
+void Player_RequestCameraSetting(PlayState* play, s16 camSetting) {
if (!Play_CamIsNotFixed(play)) {
if (camSetting == CAM_SET_SCENE_TRANSITION) {
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING_ALT);
@@ -3508,9 +3508,9 @@ void func_80835E44(PlayState* play, s16 camSetting) {
}
}
-void func_80835EA4(PlayState* play, s32 arg1) {
- func_80835E44(play, CAM_SET_TURN_AROUND);
- Camera_SetCameraData(Play_GetCamera(play, CAM_ID_MAIN), 4, NULL, NULL, arg1, 0, 0);
+void Player_SetTurnAroundCamera(PlayState* play, s32 camItemType) {
+ Player_RequestCameraSetting(play, CAM_SET_TURN_AROUND);
+ Camera_SetCameraData(Play_GetCamera(play, CAM_ID_MAIN), CAM_DATA_SET_2, NULL, NULL, camItemType, 0, 0);
}
void Player_DestroyHookshot(Player* this) {
@@ -5270,7 +5270,7 @@ s32 Player_HandleExitsAndVoids(PlayState* play, Player* this, CollisionPoly* pol
this->stateFlags1 |= PLAYER_STATE1_0 | PLAYER_STATE1_29;
- func_80835E44(play, CAM_SET_SCENE_TRANSITION);
+ Player_RequestCameraSetting(play, CAM_SET_SCENE_TRANSITION);
return 1;
} else {
@@ -5973,7 +5973,7 @@ void func_8083AF44(PlayState* play, Player* this, s32 magicSpell) {
if (magicSpell == 5) {
this->subCamId = OnePointCutscene_Init(play, 1100, -101, NULL, CAM_ID_MAIN);
} else {
- func_80835EA4(play, 10);
+ Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_10);
}
}
@@ -6041,7 +6041,7 @@ s32 Player_ActionHandler_13(Player* this, PlayState* play) {
Player_SetupAction(play, this, Player_Action_8085063C, 1);
this->stateFlags1 |= PLAYER_STATE1_28 | PLAYER_STATE1_29;
Player_AnimPlayOnce(play, this, Player_GetIdleAnim(this));
- func_80835EA4(play, 4);
+ Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_4);
}
func_80832224(this);
@@ -6095,11 +6095,11 @@ s32 Player_ActionHandler_13(Player* this, PlayState* play) {
} else if (sp2C == EXCH_ITEM_BOTTLE_RUTOS_LETTER) {
this->av1.actionVar1 = 1;
this->actor.textId = 0x4005;
- func_80835EA4(play, 1);
+ Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_1);
} else {
this->av1.actionVar1 = 2;
this->actor.textId = 0xCF;
- func_80835EA4(play, 4);
+ Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_4);
}
this->actor.flags |= ACTOR_FLAG_TALK;
@@ -6122,21 +6122,21 @@ s32 Player_ActionHandler_13(Player* this, PlayState* play) {
if (sp2C == 0xC) {
Player_SetupActionPreserveItemAction(play, this, Player_Action_8084EED8, 0);
Player_AnimPlayOnceAdjusted(play, this, &gPlayerAnim_link_bottle_bug_out);
- func_80835EA4(play, 3);
+ Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_3);
} else if ((sp2C > 0) && (sp2C < 4)) {
Player_SetupActionPreserveItemAction(play, this, Player_Action_8084EFC0, 0);
Player_AnimPlayOnceAdjusted(play, this, &gPlayerAnim_link_bottle_fish_out);
- func_80835EA4(play, (sp2C == 1) ? 1 : 5);
+ Player_SetTurnAroundCamera(play, (sp2C == 1) ? CAM_ITEM_TYPE_1 : CAM_ITEM_TYPE_5);
} else {
Player_SetupActionPreserveItemAction(play, this, Player_Action_8084EAC0, 0);
Player_AnimChangeOnceMorphAdjusted(play, this, &gPlayerAnim_link_bottle_drink_demo_start);
- func_80835EA4(play, 2);
+ Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_2);
}
} else {
Player_SetupActionPreserveItemAction(play, this, Player_Action_8084E3C4, 0);
Player_AnimPlayOnceAdjusted(play, this, &gPlayerAnim_link_normal_okarina_start);
this->stateFlags2 |= PLAYER_STATE2_USING_OCARINA;
- func_80835EA4(play, (this->unk_6A8 != NULL) ? 0x5B : 0x5A);
+ Player_SetTurnAroundCamera(play, (this->unk_6A8 != NULL) ? CAM_ITEM_TYPE_91 : CAM_ITEM_TYPE_90);
if (this->unk_6A8 != NULL) {
this->stateFlags2 |= PLAYER_STATE2_25;
Camera_SetViewParam(Play_GetCamera(play, CAM_ID_MAIN), CAM_VIEW_TARGET, this->unk_6A8);
@@ -7353,7 +7353,7 @@ s32 Player_ActionHandler_2(Player* this, PlayState* play) {
if (!(this->stateFlags2 & PLAYER_STATE2_10) || (this->currentBoots == PLAYER_BOOTS_IRON)) {
Player_SetupWaitForPutAway(play, this, func_8083A434);
Player_AnimPlayOnceAdjusted(play, this, &gPlayerAnim_link_demo_get_itemB);
- func_80835EA4(play, 9);
+ Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_9);
}
this->stateFlags1 |= PLAYER_STATE1_10 | PLAYER_STATE1_CARRYING_ACTOR | PLAYER_STATE1_29;
@@ -9070,7 +9070,7 @@ s32 func_80842DF4(PlayState* play, Player* this) {
s32 bgId;
Vec3f sp68;
Vec3f sp5C;
- Vec3f sp50;
+ Vec3f baseToTip;
s32 temp1;
s32 surfaceMaterial;
@@ -9080,18 +9080,19 @@ s32 func_80842DF4(PlayState* play, Player* this) {
!(this->meleeWeaponQuads[1].base.atFlags & AT_BOUNCED)) {
if (this->skelAnime.curFrame >= 2.0f) {
- phi_f2 = Math_Vec3f_DistXYZAndStoreDiff(&this->meleeWeaponInfo[0].tip,
- &this->meleeWeaponInfo[0].base, &sp50);
+ phi_f2 =
+ Math_Vec3f_DistXYZAndStoreDiff(MELEE_WEAPON_INFO_TIP(&this->meleeWeaponInfo[0]),
+ MELEE_WEAPON_INFO_BASE(&this->meleeWeaponInfo[0]), &baseToTip);
if (phi_f2 != 0.0f) {
phi_f2 = (phi_f2 + 10.0f) / phi_f2;
}
- sp68.x = this->meleeWeaponInfo[0].tip.x + (sp50.x * phi_f2);
- sp68.y = this->meleeWeaponInfo[0].tip.y + (sp50.y * phi_f2);
- sp68.z = this->meleeWeaponInfo[0].tip.z + (sp50.z * phi_f2);
+ sp68.x = MELEE_WEAPON_INFO_TIP(&this->meleeWeaponInfo[0])->x + (baseToTip.x * phi_f2);
+ sp68.y = MELEE_WEAPON_INFO_TIP(&this->meleeWeaponInfo[0])->y + (baseToTip.y * phi_f2);
+ sp68.z = MELEE_WEAPON_INFO_TIP(&this->meleeWeaponInfo[0])->z + (baseToTip.z * phi_f2);
- if (BgCheck_EntityLineTest1(&play->colCtx, &sp68, &this->meleeWeaponInfo[0].tip, &sp5C, &groundPoly,
- true, false, false, true, &bgId) &&
+ if (BgCheck_EntityLineTest1(&play->colCtx, &sp68, MELEE_WEAPON_INFO_TIP(&this->meleeWeaponInfo[0]),
+ &sp5C, &groundPoly, true, false, false, true, &bgId) &&
!SurfaceType_IsIgnoredByEntities(&play->colCtx, groundPoly, bgId) &&
(SurfaceType_GetFloorType(&play->colCtx, groundPoly, bgId) != FLOOR_TYPE_6) &&
(func_8002F9EC(play, &this->actor, groundPoly, bgId, &sp5C) == 0)) {
@@ -11474,8 +11475,8 @@ void Player_UpdateBurningDekuStick(PlayState* play, Player* this) {
this->unk_85C = temp;
}
- func_8002836C(play, &this->meleeWeaponInfo[0].tip, &D_808547A4, &D_808547B0, &D_808547BC, &D_808547C0,
- temp * 200.0f, 0, 8);
+ func_8002836C(play, MELEE_WEAPON_INFO_TIP(&this->meleeWeaponInfo[0]), &D_808547A4, &D_808547B0, &D_808547BC,
+ &D_808547C0, temp * 200.0f, 0, 8);
}
void Player_UpdateBodyShock(PlayState* play, Player* this) {
@@ -13747,7 +13748,7 @@ void Player_Action_8084E1EC(Player* this, PlayState* play) {
if ((this->stateFlags1 & PLAYER_STATE1_10) && LinkAnimation_OnFrame(&this->skelAnime, 10.0f)) {
func_808332F4(this, play);
func_80832340(play, this);
- func_80835EA4(play, 8);
+ Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_8);
} else if (LinkAnimation_OnFrame(&this->skelAnime, 5.0f)) {
Player_PlayVoiceSfx(this, NA_SE_VO_LI_BREATH_DRINK);
}
@@ -13917,7 +13918,7 @@ void Player_Action_8084E6D4(Player* this, PlayState* play) {
}
this->av2.actionVar2 = 2;
- func_80835EA4(play, 9);
+ Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_9);
}
} else {
if (this->av2.actionVar2 == 0) {
@@ -14119,7 +14120,7 @@ void Player_Action_SwingBottle(Player* this, PlayState* play) {
Player_UpdateBottleHeld(play, this, catchInfo->itemId, ABS(catchInfo->itemAction));
Player_AnimPlayOnceAdjusted(play, this, swingEntry->catchAnimation);
- func_80835EA4(play, 4);
+ Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_4);
}
}
}
@@ -16218,6 +16219,6 @@ void Player_StartTalking(PlayState* play, Actor* actor) {
if ((this->naviActor == this->talkActor) && ((this->talkActor->textId & 0xFF00) != 0x200)) {
this->naviActor->flags |= ACTOR_FLAG_TALK;
- func_80835EA4(play, 0xB);
+ Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_11);
}
}
diff --git a/tools/assets/extract/extase/__init__.py b/tools/assets/extract/extase/__init__.py
index 527a187a72..029b20d214 100644
--- a/tools/assets/extract/extase/__init__.py
+++ b/tools/assets/extract/extase/__init__.py
@@ -1110,6 +1110,10 @@ class BinaryBlobResource(Resource):
# Nothing specific to do
return RESOURCE_PARSE_SUCCESS
+ def get_as_xml(self):
+ return f"""\
+ """
+
def get_c_reference(self, resource_offset):
return f"&{self.symbol_name}[{resource_offset}]"
diff --git a/tools/assets/extract/extase_oot64/dlist_resources.py b/tools/assets/extract/extase_oot64/dlist_resources.py
index ad470c33aa..f80a2f9954 100644
--- a/tools/assets/extract/extase_oot64/dlist_resources.py
+++ b/tools/assets/extract/extase_oot64/dlist_resources.py
@@ -43,6 +43,7 @@ VERBOSE_ColorIndexedTexturesManager = False
VERBOSE_BEST_EFFORT_TLUT_NO_REAL_USER = True
EXPLICIT_DL_AND_TEX_SIZES = True
+TEXS_SHORTER_NAMES = True
class MtxResource(CDataResource):
@@ -275,6 +276,15 @@ class TextureResource(Resource):
self.width_name = f"{self.symbol_name}_WIDTH"
self.height_name = f"{self.symbol_name}_HEIGHT"
+ def get_as_xml(self):
+ tlut_offset_attr = (
+ f' TlutOffset="0x{self.resource_tlut.range_start:X}"'
+ if self.resource_tlut
+ else ""
+ )
+ return f"""\
+ """
+
def check_declare_length(self):
return (
hasattr(self, "HACK_IS_STATIC_ON") or EXPLICIT_DL_AND_TEX_SIZES
@@ -1159,7 +1169,7 @@ class ColorIndexedTexturesManager:
lambda file, offset: TextureResource(
file,
offset,
- f"{reporter.name}_{offset:08X}_CITex",
+ f"{file.name if TEXS_SHORTER_NAMES else reporter.name}_{offset:08X}_CITex",
tex.fmt,
tex.siz,
tex.width,
@@ -1181,7 +1191,7 @@ class ColorIndexedTexturesManager:
lambda file, offset: TLUTResource(
file,
offset,
- f"{reporter.name}_{offset:08X}_TLUT",
+ f"{file.name if TEXS_SHORTER_NAMES else reporter.name}_{offset:08X}_TLUT",
{
G_TT.RGBA16: G_IM_FMT.RGBA,
G_TT.IA16: G_IM_FMT.IA,
@@ -1249,7 +1259,7 @@ class DListResource(Resource, can_size_be_unknown=True):
lambda file, offset: TextureResource(
file,
offset,
- f"{self.name}_{offset:08X}_Tex",
+ f"{file.name if TEXS_SHORTER_NAMES else self.name}_{offset:08X}_Tex",
g_fmt,
g_siz,
width,
@@ -1347,6 +1357,10 @@ class DListResource(Resource, can_size_be_unknown=True):
return RESOURCE_PARSE_SUCCESS
+ def get_as_xml(self):
+ return f"""\
+ """
+
def get_c_declaration_base(self):
if hasattr(self, "HACK_IS_STATIC_ON") or EXPLICIT_DL_AND_TEX_SIZES:
length = (self.range_end - self.range_start) // 8
diff --git a/tools/assets/extract/extase_oot64/skelanime_legacy_resources.py b/tools/assets/extract/extase_oot64/skelanime_legacy_resources.py
index df21aa8d28..42cf8c4c3f 100644
--- a/tools/assets/extract/extase_oot64/skelanime_legacy_resources.py
+++ b/tools/assets/extract/extase_oot64/skelanime_legacy_resources.py
@@ -164,7 +164,11 @@ class LegacyAnimationResource(CDataResource):
lambda file, offset: LegacyJointKeyArrayResource(
file,
offset,
- f"{self.name}_{address_jointKey:08X}_JointKeys",
+ (
+ f"{self.symbol_name.removesuffix('Anim')}JointKeys"
+ if self.symbol_name.endswith("Anim")
+ else f"{self.symbol_name}_{address_jointKey:08X}_JointKeys"
+ ),
),
)
resource_jointKey.set_length(self.cdata_unpacked["limbCount"] + 1)
diff --git a/tools/assets/extract/extase_oot64/skeleton_resources.py b/tools/assets/extract/extase_oot64/skeleton_resources.py
index 3cff22c59b..12fe050a61 100644
--- a/tools/assets/extract/extase_oot64/skeleton_resources.py
+++ b/tools/assets/extract/extase_oot64/skeleton_resources.py
@@ -65,6 +65,10 @@ class StandardLimbResource(CDataResource):
def set_enum_member_name(self, enum_member_name: str):
self.enum_member_name = enum_member_name
+ def get_as_xml(self) -> str:
+ return f"""\
+ """
+
def get_c_declaration_base(self):
return f"StandardLimb {self.symbol_name}"
@@ -101,6 +105,10 @@ class LODLimbResource(CDataResource):
def set_enum_member_name(self, enum_member_name: str):
self.enum_member_name = enum_member_name
+ def get_as_xml(self):
+ return f"""\
+ """
+
def get_c_declaration_base(self):
return f"LodLimb {self.symbol_name}"
@@ -241,7 +249,11 @@ class SkeletonResourceABC(SkeletonResourceBaseABC):
lambda file, offset: resource.limbs_array_type(
file,
offset,
- f"{resource.name}_{address:08X}_Limbs",
+ (
+ f"{resource.name.removesuffix('Skel')}Limbs"
+ if resource.name.endswith("Skel")
+ else f"{resource.name}_{address:08X}_Limbs"
+ ),
),
)
resource_limbs.set_length(
diff --git a/tools/assets/extract/write_source.txt b/tools/assets/extract/write_source.txt
index 5d19b2a10a..35b876ee4b 100644
--- a/tools/assets/extract/write_source.txt
+++ b/tools/assets/extract/write_source.txt
@@ -87,7 +87,6 @@ assets/objects/object_fz/object_fz.c
assets/objects/object_ganon2/object_ganon2.c
assets/objects/object_ganon_anime1/object_ganon_anime1.c
assets/objects/object_ganon_anime2/object_ganon_anime2.c
-assets/objects/object_ganon_anime3/object_ganon_anime3.c
assets/objects/object_ganon/object_ganon.c
assets/objects/object_ganon_objects/object_ganon_objects.c
assets/objects/object_ge1/object_ge1.c
@@ -381,30 +380,17 @@ assets/objects/object_zl2_anime1/object_zl2_anime1.c
assets/objects/object_zl2_anime2/object_zl2_anime2.c
assets/objects/object_zl2/object_zl2.c
assets/objects/object_zl4/object_zl4.c
-assets/objects/object_zo/object_zo.c
-assets/overlays/ovl_Boss_Ganon2/ovl_Boss_Ganon2.c
assets/overlays/ovl_Boss_Ganon/ovl_Boss_Ganon.c
assets/overlays/ovl_Boss_Sst/ovl_Boss_Sst.c
assets/overlays/ovl_Demo_Shd/ovl_Demo_Shd.c
-assets/overlays/ovl_Elf_Msg2/ovl_Elf_Msg2.c
-assets/overlays/ovl_Elf_Msg/ovl_Elf_Msg.c
assets/overlays/ovl_En_Bili/ovl_En_Bili.c
assets/overlays/ovl_En_Clear_Tag/ovl_En_Clear_Tag.c
-assets/overlays/ovl_En_Ganon_Organ/ovl_En_Ganon_Organ.c
assets/overlays/ovl_En_Mag/ovl_En_Mag.c
assets/overlays/ovl_En_Sda/ovl_En_Sda.c
assets/overlays/ovl_En_Ssh/ovl_En_Ssh.c
assets/overlays/ovl_En_Sth/ovl_En_Sth.c
assets/overlays/ovl_file_choose/ovl_file_choose.c
-assets/overlays/ovl_Magic_Dark/ovl_Magic_Dark.c
-assets/overlays/ovl_Magic_Fire/ovl_Magic_Fire.c
assets/overlays/ovl_Magic_Wind/ovl_Magic_Wind.c
-assets/overlays/ovl_Oceff_Spot/ovl_Oceff_Spot.c
-assets/overlays/ovl_Oceff_Storm/ovl_Oceff_Storm.c
-assets/overlays/ovl_Oceff_Wipe2/ovl_Oceff_Wipe2.c
-assets/overlays/ovl_Oceff_Wipe3/ovl_Oceff_Wipe3.c
-assets/overlays/ovl_Oceff_Wipe4/ovl_Oceff_Wipe4.c
-assets/overlays/ovl_Oceff_Wipe/ovl_Oceff_Wipe.c
assets/scenes/dungeons/bdan/bdan_room_0.c
assets/scenes/dungeons/bdan/bdan_room_10.c
assets/scenes/dungeons/bdan/bdan_room_11.c
@@ -960,7 +946,6 @@ assets/textures/backgrounds/vr_TTVR_pal_static.c
assets/textures/backgrounds/vr_TTVR_static.c
assets/textures/backgrounds/vr_ZRVR_pal_static.c
assets/textures/backgrounds/vr_ZRVR_static.c
-assets/textures/do_action_static/do_action_static.c
assets/textures/icon_item_dungeon_static/icon_item_dungeon_static.c
assets/textures/icon_item_field_static/icon_item_field_static.c
assets/textures/icon_item_gameover_static/icon_item_gameover_static.c