diff --git a/CHANGES b/CHANGES index dfb3cf7..a6d7102 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,33 @@ +Refresh #4 +1.) Label screen_transition.c (#737) +2.) Revamp macros (#738) +3.) Simplify the cake makefile logic (#739) +4.) Move zbuffer to C (#742) +5.) Audio blob endian/64-bit fixes (#740) +6.) Ub fixes (#745) +7.) process_level_music_dynamics: slightly better stack and regalloc (#746) +8.) move level order specific definitions out to levels/level_defines.h (#743) +9.) Renamed some mislabelled sound effects (#748) +10.) Very minor white space fixes in Mario.c (#752) +11.) Renamed GRAVITY to OBJ_PHYSICS (#755) +12.) Use defined macros instead of literal values for interactions in behavior_data.c (#754) +13.) iQue Player console detection + full support (#756) +14.) Fix Goddard Mario head for little endian etc. (#757) +15.) Small bits of audio doc (#749) +16.) Update diff script (#750) +17.) Nicer format for course/dialog text, enum for dialog IDs (#753) +18.) first-diff: store most recent mtime during check (#759) +19.) Use Lights1 struct for light values (#760) +20.) Detect mips64-elf in diff.py (#761) +21.) Name display lists in gd renderer.c (#764) +22.) Document a variety of PU type crashes. (#765) +23.) Label object_behaviors. (#716) +24.) Update swoop.inc.c (#767) +25.) Label tilting_pyramid.inc.c (#768) +26.) Label red_coin.inc.c (#770) +27.) Use more level defines (#758) +28.) Named Mario actions 6, 7, and 8 and noted causes of hands-free holding glitch (#769) + Refresh #3 1.) Small bits of sound sample labelling 2.) Append 'b' to fopen calls in n64graphics to satisfy Windows diff --git a/Doxyfile b/Doxyfile index 2900493..f73f4c6 100644 --- a/Doxyfile +++ b/Doxyfile @@ -2089,7 +2089,7 @@ INCLUDE_FILE_PATTERNS = # recursively expanded use the := operator instead of the = operator. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -PREDEFINED = NON_MATCHING +PREDEFINED = NON_MATCHING AVOID_UB # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # tag can be used to specify a list of macro names that should be expanded. The diff --git a/Jenkinsfile b/Jenkinsfile index 18babc0..2bb4d8f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -27,16 +27,6 @@ pipeline { sh 'make -j4 VERSION=us' } } - stage('Build J Source, NON_MATCHING') { - steps { - sh 'make -j4 VERSION=jp NON_MATCHING=1' - } - } - stage('Build U Source, NON_MATCHING') { - steps { - sh 'make -j4 VERSION=us NON_MATCHING=1' - } - } } environment { QEMU_IRIX = credentials('qemu-irix') diff --git a/Makefile b/Makefile index f8eea76..e3b89b0 100644 --- a/Makefile +++ b/Makefile @@ -6,29 +6,31 @@ default: all ### Build Options ### +# These options can either be changed by modifying the makefile, or +# by building with 'make SETTING=value'. 'make clean' may be required. + # Version of the game to build VERSION ?= us # Graphics microcode used GRUCODE ?= f3d_old # If COMPARE is 1, check the output sha1sum when building 'all' COMPARE ?= 1 -# If NON_MATCHING is 1, define the NON_MATCHING macro when building +# If NON_MATCHING is 1, define the NON_MATCHING and AVOID_UB macros when building (recommended) NON_MATCHING ?= 0 -# If ENDIAN_IND is 1, enable non-matching code changes that try to ensure -# endianness independence -ENDIAN_IND ?= 0 +# Build for the N64 (turn this off for ports) +TARGET_N64 ?= 1 # Release ifeq ($(VERSION),jp) - VERSION_CFLAGS := -DVERSION_JP=1 + VERSION_CFLAGS := -DVERSION_JP VERSION_ASFLAGS := --defsym VERSION_JP=1 GRUCODE_CFLAGS := -DF3D_OLD GRUCODE_ASFLAGS := --defsym F3D_OLD=1 TARGET := sm64.jp else ifeq ($(VERSION),us) - VERSION_CFLAGS := -DVERSION_US=1 + VERSION_CFLAGS := -DVERSION_US VERSION_ASFLAGS := --defsym VERSION_US=1 GRUCODE_CFLAGS := -DF3D_OLD GRUCODE_ASFLAGS := --defsym F3D_OLD=1 @@ -36,7 +38,7 @@ ifeq ($(VERSION),us) else ifeq ($(VERSION),eu) $(warning Building EU is experimental and is prone to breaking. Try at your own risk.) - VERSION_CFLAGS := -DVERSION_EU=1 + VERSION_CFLAGS := -DVERSION_EU VERSION_ASFLAGS := --defsym VERSION_EU=1 GRUCODE_CFLAGS := -DF3D_NEW GRUCODE_ASFLAGS := --defsym F3D_NEW=1 @@ -50,13 +52,13 @@ endif # Microcode ifeq ($(GRUCODE),f3dex) # Fast3DEX - GRUCODE_CFLAGS := -DF3DEX_GBI=1 + GRUCODE_CFLAGS := -DF3DEX_GBI GRUCODE_ASFLAGS := --defsym F3DEX_GBI_SHARED=1 --defsym F3DEX_GBI=1 TARGET := $(TARGET).f3dex COMPARE := 0 else ifeq ($(GRUCODE), f3dex2) # Fast3DEX2 - GRUCODE_CFLAGS := -DF3DEX_GBI_2=1 + GRUCODE_CFLAGS := -DF3DEX_GBI_2 GRUCODE_ASFLAGS := --defsym F3DEX_GBI_SHARED=1 --defsym F3DEX_GBI_2=1 TARGET := $(TARGET).f3dex2 COMPARE := 0 @@ -69,7 +71,7 @@ ifeq ($(GRUCODE),f3d_new) # Fast3D 2.0H (Shindou) else ifeq ($(GRUCODE),f3dzex) # Fast3DZEX (2.0J / Animal Forest - Dōbutsu no Mori) $(warning Fast3DZEX is experimental. Try at your own risk.) - GRUCODE_CFLAGS := -DF3DEX_GBI_2=1 + GRUCODE_CFLAGS := -DF3DEX_GBI_2 GRUCODE_ASFLAGS := --defsym F3DEX_GBI_SHARED=1 --defsym F3DZEX_GBI=1 TARGET := $(TARGET).f3dzex COMPARE := 0 @@ -78,13 +80,12 @@ endif endif endif -ifeq ($(NON_MATCHING),1) - VERSION_CFLAGS := $(VERSION_CFLAGS) -DNON_MATCHING=1 - COMPARE := 0 +ifeq ($(TARGET_N64),0) + NON_MATCHING := 1 endif -ifeq ($(ENDIAN_IND),1) - VERSION_CFLAGS := $(VERSION_CFLAGS) -DENDIAN_IND=1 +ifeq ($(NON_MATCHING),1) + VERSION_CFLAGS := $(VERSION_CFLAGS) -DNON_MATCHING -DAVOID_UB COMPARE := 0 endif @@ -132,8 +133,8 @@ ACTOR_DIR := actors LEVEL_DIRS := $(patsubst levels/%,%,$(dir $(wildcard levels/*/header.h))) # Directories containing source files -SRC_DIRS := src src/engine src/game src/audio src/menu src/buffers actors levels text bin data assets -ASM_DIRS := asm lib sound +SRC_DIRS := src src/engine src/game src/audio src/menu src/buffers actors levels bin data assets +ASM_DIRS := asm lib BIN_DIRS := bin bin/$(VERSION) ULTRA_SRC_DIRS := lib/src lib/src/math @@ -191,10 +192,10 @@ GODDARD_O_FILES := $(foreach file,$(GODDARD_C_FILES),$(BUILD_DIR)/$(file:.c=.o)) # Automatic dependency files DEP_FILES := $(O_FILES:.o=.d) $(ULTRA_O_FILES:.o=.d) $(GODDARD_O_FILES:.o=.d) $(BUILD_DIR)/$(LD_SCRIPT).d -# Files with NON_MATCHING ifdefs -NON_MATCHING_C_FILES != grep -rl NON_MATCHING $(wildcard src/audio/*.c) $(wildcard src/game/*.c) -NON_MATCHING_O_FILES = $(foreach file,$(NON_MATCHING_C_FILES),$(BUILD_DIR)/$(file:.c=.o)) -NON_MATCHING_DEP = $(BUILD_DIR)/src/audio/non_matching_dep +# Files with GLOBAL_ASM blocks +GLOBAL_ASM_C_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/audio/*.c) $(wildcard src/game/*.c) +GLOBAL_ASM_O_FILES = $(foreach file,$(GLOBAL_ASM_C_FILES),$(BUILD_DIR)/$(file:.c=.o)) +GLOBAL_ASM_DEP = $(BUILD_DIR)/src/audio/non_matching_dep # Segment elf files SEG_FILES := $(SEGMENT_ELF_FILES) $(ACTOR_ELF_FILES) $(LEVEL_ELF_FILES) @@ -218,23 +219,29 @@ endif AS := $(CROSS)as CC := $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc -CPP := cpp -P +CPP := cpp -P -Wno-trigraphs LD := $(CROSS)ld AR := $(CROSS)ar OBJDUMP := $(CROSS)objdump OBJCOPY := $(CROSS)objcopy PYTHON := python3 -INCLUDE_CFLAGS := -I include -I include/libc -I $(BUILD_DIR) -I $(BUILD_DIR)/include -I src -I . +ifeq ($(TARGET_N64),1) + TARGET_CFLAGS := -nostdinc -I include/libc -DTARGET_N64 + CC_CFLAGS := -fno-builtin +endif + +INCLUDE_CFLAGS := -I include -I $(BUILD_DIR) -I $(BUILD_DIR)/include -I src -I . # Check code syntax with host compiler -CC_CHECK := gcc -fsyntax-only -fsigned-char -nostdinc -fno-builtin $(INCLUDE_CFLAGS) -std=gnu90 -Wall -Wextra -Wno-format-security -DNON_MATCHING $(VERSION_CFLAGS) $(GRUCODE_CFLAGS) -DTARGET_N64 +CC_CHECK := gcc -fsyntax-only -fsigned-char $(CC_CFLAGS) $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) -std=gnu90 -Wall -Wextra -Wno-format-security -DNON_MATCHING -DAVOID_UB $(VERSION_CFLAGS) $(GRUCODE_CFLAGS) ASFLAGS := -march=vr4300 -mabi=32 -I include -I $(BUILD_DIR) $(VERSION_ASFLAGS) $(GRUCODE_ASFLAGS) -CFLAGS = -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -Xfullwarn $(OPT_FLAGS) -signed $(INCLUDE_CFLAGS) $(VERSION_CFLAGS) $(MIPSISET) $(GRUCODE_CFLAGS) -DTARGET_N64 +CFLAGS = -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -Xfullwarn -signed $(OPT_FLAGS) $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) $(VERSION_CFLAGS) $(MIPSISET) $(GRUCODE_CFLAGS) OBJCOPYFLAGS := --pad-to=0x800000 --gap-fill=0xFF SYMBOL_LINKING_FLAGS := $(addprefix -R ,$(SEG_FILES)) LDFLAGS := -T undefined_syms.txt -T $(BUILD_DIR)/$(LD_SCRIPT) -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(SYMBOL_LINKING_FLAGS) +ENDIAN_BITWIDTH := $(BUILD_DIR)/endian-and-bitwidth ifeq ($(shell getconf LONG_BIT), 32) # Work around memory allocation bug in QEMU @@ -306,21 +313,26 @@ $(BUILD_DIR)/include/text_strings.h: include/text_strings.h.in $(BUILD_DIR)/include/text_menu_strings.h: include/text_menu_strings.h.in $(TEXTCONV) charmap_menu.txt $< $@ -$(BUILD_DIR)/text/%.inc.c: text/$(VERSION)/%.c.in - $(TEXTCONV) charmap.txt $< $@ - ifeq ($(VERSION),eu) -SRC_DIRS += text/de text/en text/fr +TEXT_DIRS := text/de text/us text/fr + # EU encoded text inserted into individual segment 0x19 files -$(BUILD_DIR)/bin/$(VERSION)/translation_de.o: $(BUILD_DIR)/text/de/dialog.inc.c $(BUILD_DIR)/text/de/level.inc.c $(BUILD_DIR)/text/de/star.inc.c -$(BUILD_DIR)/bin/$(VERSION)/translation_en.o: $(BUILD_DIR)/text/en/dialog.inc.c $(BUILD_DIR)/text/en/level.inc.c $(BUILD_DIR)/text/en/star.inc.c -$(BUILD_DIR)/bin/$(VERSION)/translation_fr.o: $(BUILD_DIR)/text/fr/dialog.inc.c $(BUILD_DIR)/text/fr/level.inc.c $(BUILD_DIR)/text/fr/star.inc.c +$(BUILD_DIR)/bin/eu/translation_en.o: $(BUILD_DIR)/text/us/define_text.inc.c +$(BUILD_DIR)/bin/eu/translation_de.o: $(BUILD_DIR)/text/de/define_text.inc.c +$(BUILD_DIR)/bin/eu/translation_fr.o: $(BUILD_DIR)/text/fr/define_text.inc.c + else +TEXT_DIRS := text/$(VERSION) + # non-EU encoded text inserted into segment 0x02 -$(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/debug.inc.c $(BUILD_DIR)/text/dialog.inc.c $(BUILD_DIR)/text/level.inc.c $(BUILD_DIR)/text/star.inc.c +$(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/$(VERSION)/define_text.inc.c endif -ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS) $(GODDARD_SRC_DIRS) $(ULTRA_SRC_DIRS) $(ULTRA_ASM_DIRS) $(ULTRA_BIN_DIRS) $(BIN_DIRS) $(TEXTURE_DIRS) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) include) $(MIO0_DIR) $(addprefix $(MIO0_DIR)/,$(VERSION)) $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/sequences/$(VERSION) +$(BUILD_DIR)/text/%/define_text.inc.c: text/define_text.inc.c text/%/courses.h text/%/dialogs.h + $(CPP) $(VERSION_CFLAGS) $< -o $@ -I text/$*/ + $(TEXTCONV) charmap.txt $@ $@ + +ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS) $(GODDARD_SRC_DIRS) $(ULTRA_SRC_DIRS) $(ULTRA_ASM_DIRS) $(ULTRA_BIN_DIRS) $(BIN_DIRS) $(TEXTURE_DIRS) $(TEXT_DIRS) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) include) $(MIO0_DIR) $(addprefix $(MIO0_DIR)/,$(VERSION)) $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/sequences/$(VERSION) # Make sure build directory exists before compiling anything DUMMY != mkdir -p $(ALL_DIRS) @@ -390,17 +402,24 @@ $(BUILD_DIR)/%.table: %.aiff $(BUILD_DIR)/%.aifc: $(BUILD_DIR)/%.table %.aiff $(VADPCM_ENC) -c $^ $@ -$(SOUND_BIN_DIR)/sound_data.ctl: sound/sound_banks/ $(SOUND_BANK_FILES) $(SOUND_SAMPLE_AIFCS) - $(PYTHON) tools/assemble_sound.py $(BUILD_DIR)/sound/samples/ sound/sound_banks/ $(SOUND_BIN_DIR)/sound_data.ctl $(SOUND_BIN_DIR)/sound_data.tbl $(VERSION_CFLAGS) +$(ENDIAN_BITWIDTH): tools/determine-endian-bitwidth.c + $(CC) -c $(CFLAGS) -o $@.dummy2 $< 2>$@.dummy1; true + grep -o 'msgbegin --endian .* --bitwidth .* msgend' $@.dummy1 > $@.dummy2 + head -n1 <$@.dummy2 | cut -d' ' -f2-5 > $@ + @rm $@.dummy1 + @rm $@.dummy2 + +$(SOUND_BIN_DIR)/sound_data.ctl: sound/sound_banks/ $(SOUND_BANK_FILES) $(SOUND_SAMPLE_AIFCS) $(ENDIAN_BITWIDTH) + $(PYTHON) tools/assemble_sound.py $(BUILD_DIR)/sound/samples/ sound/sound_banks/ $(SOUND_BIN_DIR)/sound_data.ctl $(SOUND_BIN_DIR)/sound_data.tbl $(VERSION_CFLAGS) $$(cat $(ENDIAN_BITWIDTH)) $(SOUND_BIN_DIR)/sound_data.tbl: $(SOUND_BIN_DIR)/sound_data.ctl - touch $@ + @true -$(SOUND_BIN_DIR)/sequences.bin: $(SOUND_BANK_FILES) sound/sequences.json sound/sequences/ sound/sequences/$(VERSION)/ $(SOUND_SEQUENCE_FILES) - $(PYTHON) tools/assemble_sound.py --sequences $@ $(SOUND_BIN_DIR)/bank_sets sound/sound_banks/ sound/sequences.json $(SOUND_SEQUENCE_FILES) $(VERSION_CFLAGS) +$(SOUND_BIN_DIR)/sequences.bin: $(SOUND_BANK_FILES) sound/sequences.json sound/sequences/ sound/sequences/$(VERSION)/ $(SOUND_SEQUENCE_FILES) $(ENDIAN_BITWIDTH) + $(PYTHON) tools/assemble_sound.py --sequences $@ $(SOUND_BIN_DIR)/bank_sets sound/sound_banks/ sound/sequences.json $(SOUND_SEQUENCE_FILES) $(VERSION_CFLAGS) $$(cat $(ENDIAN_BITWIDTH)) $(SOUND_BIN_DIR)/bank_sets: $(SOUND_BIN_DIR)/sequences.bin - touch $@ + @true $(SOUND_BIN_DIR)/%.m64: $(SOUND_BIN_DIR)/%.o $(OBJCOPY) -j .rodata $< -O binary $@ @@ -411,6 +430,11 @@ $(SOUND_BIN_DIR)/%.o: $(SOUND_BIN_DIR)/%.s $(SOUND_BIN_DIR)/%.s: $(SOUND_BIN_DIR)/% printf ".section .data\n\n.incbin \"$<\"\n" > $@ +$(BUILD_DIR)/levels/scripts.o: $(BUILD_DIR)/include/level_headers.h + +$(BUILD_DIR)/include/level_headers.h: levels/level_headers.h.in + $(CPP) -I . levels/level_headers.h.in | $(PYTHON) tools/output_level_headers.py > $(BUILD_DIR)/include/level_headers.h + $(BUILD_DIR)/assets/mario_anim_data.c: $(wildcard assets/anims/*.inc.c) $(PYTHON) tools/mario_anims_converter.py > $@ @@ -420,7 +444,6 @@ $(BUILD_DIR)/assets/demo_data.c: assets/demo_data.json $(wildcard assets/demos/* # Source code $(BUILD_DIR)/src/goddard/%.o: OPT_FLAGS := -g $(BUILD_DIR)/src/goddard/%.o: MIPSISET := -mips1 -$(NON_MATCHING_O_FILES): CC := $(PYTHON) tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- $(BUILD_DIR)/src/audio/%.o: OPT_FLAGS := -O2 -Wo,-loopunroll,0 $(BUILD_DIR)/src/audio/load.o: OPT_FLAGS := -O2 -framepointer -Wo,-loopunroll,0 $(BUILD_DIR)/lib/src/%.o: OPT_FLAGS := @@ -438,16 +461,20 @@ $(BUILD_DIR)/lib/src/_Ldtob.o: OPT_FLAGS := -O3 $(BUILD_DIR)/lib/src/_Printf.o: OPT_FLAGS := -O3 endif -# Rebuild files with '#ifdef NON_MATCHING' when that macro changes. -$(NON_MATCHING_O_FILES): $(NON_MATCHING_DEP).$(NON_MATCHING) -$(NON_MATCHING_DEP).$(NON_MATCHING): - @rm -f $(NON_MATCHING_DEP).* +ifeq ($(NON_MATCHING),0) +$(GLOBAL_ASM_O_FILES): CC := $(PYTHON) tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- +endif + +# Rebuild files with 'GLOBAL_ASM' if the NON_MATCHING flag changes. +$(GLOBAL_ASM_O_FILES): $(GLOBAL_ASM_DEP).$(NON_MATCHING) +$(GLOBAL_ASM_DEP).$(NON_MATCHING): + @rm -f $(GLOBAL_ASM_DEP).* touch $@ $(BUILD_DIR)/lib/src/math/%.o: lib/src/math/%.c @$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/lib/src/math/$*.d $< $(CC) -c $(CFLAGS) -o $@ $< - tools/patch_libultra_math $@ || rm $@ + tools/patch_libultra_math $@ $(BUILD_DIR)/%.o: %.c @$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $< @@ -462,7 +489,7 @@ $(BUILD_DIR)/%.o: %.s $(AS) $(ASFLAGS) -MD $(BUILD_DIR)/$*.d -o $@ $< $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) - $(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -DBUILD_DIR=$(BUILD_DIR) -o $@ $< + $(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ $< $(BUILD_DIR)/libultra.a: $(ULTRA_O_FILES) $(AR) rcs -o $@ $(ULTRA_O_FILES) @@ -483,7 +510,7 @@ $(BUILD_DIR)/$(TARGET).objdump: $(ELF) .PHONY: all clean distclean default diff test load libultra -.PRECIOUS: $(BUILD_DIR)/bin/%.elf $(SOUND_BIN_DIR)/%.ctl $(SOUND_BIN_DIR)/%.tbl $(SOUND_SAMPLE_TABLES) $(SOUND_BIN_DIR)/%.s $(BUILD_DIR)/% +.PRECIOUS: $(BUILD_DIR)/bin/%.elf $(SOUND_BIN_DIR)/%.ctl $(SOUND_BIN_DIR)/%.tbl $(SOUND_SAMPLE_TABLES) $(SOUND_BIN_DIR)/%.s $(BUILD_DIR)/% .DELETE_ON_ERROR: # Remove built-in rules, to improve performance diff --git a/Makefile.split b/Makefile.split index 6aa30c7..416985c 100644 --- a/Makefile.split +++ b/Makefile.split @@ -135,70 +135,39 @@ $(BUILD_DIR)/actors/common1.elf: SEGMENT_ADDRESS := 0x03000000 # Level Rules # -------------------------------------- -# Using these rules: -# When defining a level, define the 3 variables needed and copy the rules -# as-is. +$(BUILD_DIR)/levels/%/leveldata.elf: SEGMENT_ADDRESS := 0x07000000 + # TODO: Generate these rules from the level configs? define level_rules = - $(1)_SEG7_FILES := $$(patsubst %.png,%.inc.c,$$(notdir $$(wildcard levels/$(1)/*.png))) - $$(BUILD_DIR)/levels/$(1)/leveldata.o: $$(addprefix $$(BUILD_DIR)/levels/$(1)/,$$($(1)_SEG7_FILES)) - $$(BUILD_DIR)/levels/$(1)/leveldata.elf: SEGMENT_ADDRESS := $(2) - $$(BUILD_DIR)/levels/$(1)/leveldata.elf: TEXTURE_BIN := $(3) + $(1)_SEG7_FILES := $$(patsubst %.png,%.inc.c,$$(wildcard levels/$(1)/*.png)) + $$(BUILD_DIR)/levels/$(1)/leveldata.o: $$(addprefix $$(BUILD_DIR)/,$$($(1)_SEG7_FILES)) + $$(BUILD_DIR)/levels/$(1)/leveldata.elf: TEXTURE_BIN := $(2) endef -$(eval $(call level_rules,bbh,0x07000000,spooky)) # BBH (Big Boo's Haunt) -$(eval $(call level_rules,ccm,0x07000000,snow)) # CCM (Cool Cool Mountain) -$(eval $(call level_rules,castle_inside,0x07000000,inside)) # Castle Inside (Inside Princess Peach's Castle) -$(eval $(call level_rules,hmc,0x07000000,cave))# HMC (Hazy Maze Cave) -$(eval $(call level_rules,ssl,0x07000000,generic)) # SSL (Shifting Sand Land) -$(eval $(call level_rules,bob,0x07000000,generic)) # BOB (Bob-Omb Battlefield) -$(eval $(call level_rules,sl,0x07000000,snow)) # SL (Snowman's Land) -$(eval $(call level_rules,wdw,0x07000000,grass)) # WDW (Wet Dry World) -$(eval $(call level_rules,jrb,0x07000000,water)) # JRB (Jolly Roger Bay) -$(eval $(call level_rules,thi,0x07000000,grass)) # THI (Tiny Huge Island) -$(eval $(call level_rules,ttc,0x07000000,machine)) # TTC (Tick Tock Clock) -$(eval $(call level_rules,rr,0x07000000,sky)) # RR (Rainbow Ride) -$(eval $(call level_rules,castle_grounds,0x07000000,outside)) # Castle Grounds (Outside Princess Peach's Castle) -$(eval $(call level_rules,bitdw,0x07000000,sky)) # BitDW (Bowser in the Dark World) -$(eval $(call level_rules,vcutm,0x07000000,outside)) # VCUTM (Vanish Cap under the Moat) -$(eval $(call level_rules,bitfs,0x07000000,sky)) # BITFS (Bowser in the Fire Sea) -$(eval $(call level_rules,sa,0x07000000,inside)) # SA (The Secret Aquarium) -$(eval $(call level_rules,bits,0x07000000,sky)) # BITS (Bowser in the Sky) -$(eval $(call level_rules,lll,0x07000000,fire)) # LLL (Lethal Lava Land) -$(eval $(call level_rules,ddd,0x07000000,water)) # DDD (Dire Dire Docks) -$(eval $(call level_rules,wf,0x07000000,grass)) # WF (Whomp's Fortress) -$(eval $(call level_rules,castle_courtyard,0x07000000,outside)) # Castle Courtyard (The Courtyard of Princess Peach's Castle) -$(eval $(call level_rules,pss,0x07000000,mountain)) # PSS (The Princess's Secret Slide) -$(eval $(call level_rules,cotmc,0x07000000,cave)) # COTMC (Cavern of the Metal Cap) -$(eval $(call level_rules,totwc,0x07000000,sky)) # TOTWC (Tower of the Wing Cap) -$(eval $(call level_rules,bowser_1,0x07000000,generic)) # BOWSER_1 (Bowser in the Dark World [Boss Area]) -$(eval $(call level_rules,wmotr,0x07000000,generic)) # WMOTR (Wing Mario over the Rainbow) -$(eval $(call level_rules,bowser_2,0x07000000,fire)) # BOWSER_2 (Bowser in the Fire Sea [Boss Area]) -$(eval $(call level_rules,bowser_3,0x07000000,generic)) # BOWSER_3 (Bowser in the Sky [Boss Area]) -$(eval $(call level_rules,totwc,0x07000000,sky)) # TOTWC (Tower of the Wing Cap) -$(eval $(call level_rules,ttm,0x07000000,mountain)) # TTM (Tall Tall Mountain) -$(eval $(call level_rules,intro,0x07000000,generic)) # Intro (Super Mario 64 Logo) -$(eval $(call level_rules,menu,0x07000000,generic)) # Menu (File Select) +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(MAKECMDGOALS),distclean) +$(BUILD_DIR)/level_rules.mk: levels/level_rules.mk levels/level_defines.h + $(CPP) $(VERSION_CFLAGS) -I . -o $@ $< +include $(BUILD_DIR)/level_rules.mk +endif +endif -# Ending cake texture override -ifeq ($(VERSION),eu) -ending_SEG7_FILES := $(patsubst %.png,%.inc.c,$(notdir $(wildcard levels/ending/eu*.png levels/ending/*eu.png))) -$(BUILD_DIR)/levels/ending/leveldata.o: $(addprefix $(BUILD_DIR)/levels/ending/,$(ending_SEG7_FILES)) -$(BUILD_DIR)/levels/ending/leveldata.elf: SEGMENT_ADDRESS := 0x07000000 -$(BUILD_DIR)/levels/ending/leveldata.elf: TEXTURE_BIN := generic +# -------------------------------------- +# Extra Level Rules +# -------------------------------------- +$(eval $(call level_rules,intro,generic)) # Intro (Super Mario 64 Logo) +$(eval $(call level_rules,menu,generic)) # Menu (File Select) +# -------------------------------------- +# Cake Texture Rules +# -------------------------------------- + +# Ending cake textures are generated in a special way $(BUILD_DIR)/levels/ending/cake_eu.inc.c: levels/ending/cake_eu.png $(SKYCONV) --type cake-eu --split $^ $(BUILD_DIR)/levels/ending -else -ending_SEG7_FILES := cake.inc.c -$(BUILD_DIR)/levels/ending/leveldata.o: $(BUILD_DIR)/levels/ending/cake.inc.c -$(BUILD_DIR)/levels/ending/leveldata.elf: SEGMENT_ADDRESS := 0x07000000 -$(BUILD_DIR)/levels/ending/leveldata.elf: TEXTURE_BIN := generic - $(BUILD_DIR)/levels/ending/cake.inc.c: levels/ending/cake.png $(SKYCONV) --type cake --split $^ $(BUILD_DIR)/levels/ending -endif # -------------------------------------- # Texture Bin Rules @@ -257,9 +226,9 @@ $(BUILD_DIR)/bin/mountain.elf: SEGMENT_ADDRESS := 0x09000000 $(BUILD_DIR)/bin/grass.elf: SEGMENT_ADDRESS := 0x09000000 # EU segment 19 translations -$(BUILD_DIR)/bin/$(VERSION)/translation_de.elf: SEGMENT_ADDRESS := 0x19000000 -$(BUILD_DIR)/bin/$(VERSION)/translation_en.elf: SEGMENT_ADDRESS := 0x19000000 -$(BUILD_DIR)/bin/$(VERSION)/translation_fr.elf: SEGMENT_ADDRESS := 0x19000000 +$(BUILD_DIR)/bin/eu/translation_de.elf: SEGMENT_ADDRESS := 0x19000000 +$(BUILD_DIR)/bin/eu/translation_en.elf: SEGMENT_ADDRESS := 0x19000000 +$(BUILD_DIR)/bin/eu/translation_fr.elf: SEGMENT_ADDRESS := 0x19000000 # -------------------------------------- # Skybox Rules diff --git a/actors/amp/model.inc.c b/actors/amp/model.inc.c index 2ba76b2..094a6f1 100644 --- a/actors/amp/model.inc.c +++ b/actors/amp/model.inc.c @@ -166,14 +166,10 @@ const Gfx amp_seg8_dl_08002E58[] = { }; // 0x08002EC8 -static const Ambient amp_seg8_light_08002EC8 = { - {{0x33, 0x3f, 0x00}, 0, {0x33, 0x3f, 0x00}, 0} -}; - -// 0x08002ED0 -static const Light amp_seg8_light_08002ED0 = { - {{0xcf, 0xff, 0x00}, 0, {0xcf, 0xff, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 amp_seg8_lights_08002EC8 = gdSPDefLights1( + 0x33, 0x3f, 0x00, + 0xcf, 0xff, 0x00, 0x28, 0x28, 0x28 +); // //! Another malformed entry: Vertex interpreted as light // 0x08002EE0 @@ -401,8 +397,8 @@ static const Vtx amp_seg8_vertex_080038D0[] = { // 0x08003910 - 0x08003940 const Gfx amp_seg8_dl_08003910[] = { - gsSPLight(&_seg8_light_08002ED0, 1), - gsSPLight(&_seg8_light_08002EC8, 2), + gsSPLight(&_seg8_lights_08002EC8.l, 1), + gsSPLight(&_seg8_lights_08002EC8.a, 2), gsSPVertex(amp_seg8_vertex_08002EE0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), @@ -410,8 +406,8 @@ const Gfx amp_seg8_dl_08003910[] = { // 0x08003940 - 0x08003970 const Gfx amp_seg8_dl_08003940[] = { - gsSPLight(&_seg8_light_08002ED0, 1), - gsSPLight(&_seg8_light_08002EC8, 2), + gsSPLight(&_seg8_lights_08002EC8.l, 1), + gsSPLight(&_seg8_lights_08002EC8.a, 2), gsSPVertex(amp_seg8_vertex_08002F40, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), @@ -419,8 +415,8 @@ const Gfx amp_seg8_dl_08003940[] = { // 0x08003970 - 0x080039A0 const Gfx amp_seg8_dl_08003970[] = { - gsSPLight(&_seg8_light_08002ED0, 1), - gsSPLight(&_seg8_light_08002EC8, 2), + gsSPLight(&_seg8_lights_08002EC8.l, 1), + gsSPLight(&_seg8_lights_08002EC8.a, 2), gsSPVertex(amp_seg8_vertex_08002FA0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), @@ -428,8 +424,8 @@ const Gfx amp_seg8_dl_08003970[] = { // 0x080039A0 - 0x080039D0 const Gfx amp_seg8_dl_080039A0[] = { - gsSPLight(&_seg8_light_08002ED0, 1), - gsSPLight(&_seg8_light_08002EC8, 2), + gsSPLight(&_seg8_lights_08002EC8.l, 1), + gsSPLight(&_seg8_lights_08002EC8.a, 2), gsSPVertex(amp_seg8_vertex_08003000, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), diff --git a/actors/bird/model.inc.c b/actors/bird/model.inc.c index 1c05247..d7e2ca8 100644 --- a/actors/bird/model.inc.c +++ b/actors/bird/model.inc.c @@ -1,34 +1,22 @@ // Birds // 0x05000000 -static const Ambient birds_seg5_light_05000000 = { - {{0x07, 0x24, 0x2c}, 0, {0x07, 0x24, 0x2c}, 0} -}; - -// 0x05000008 -static const Light birds_seg5_light_05000008 = { - {{0x1d, 0x91, 0xb0}, 0, {0x1d, 0x91, 0xb0}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 birds_seg5_lights_05000000 = gdSPDefLights1( + 0x07, 0x24, 0x2c, + 0x1d, 0x91, 0xb0, 0x28, 0x28, 0x28 +); // 0x05000018 -static const Ambient birds_seg5_light_05000018 = { - {{0x33, 0x27, 0x0d}, 0, {0x33, 0x27, 0x0d}, 0} -}; - -// 0x05000020 -static const Light birds_seg5_light_05000020 = { - {{0xce, 0x9d, 0x34}, 0, {0xce, 0x9d, 0x34}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 birds_seg5_lights_05000018 = gdSPDefLights1( + 0x33, 0x27, 0x0d, + 0xce, 0x9d, 0x34, 0x28, 0x28, 0x28 +); // 0x05000030 -static const Ambient birds_seg5_light_05000030 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05000038 -static const Light birds_seg5_light_05000038 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 birds_seg5_lights_05000030 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05000048 static const Vtx birds_seg5_vertex_05000048[] = { @@ -150,8 +138,8 @@ static const Vtx birds_seg5_vertex_050004C8[] = { // 0x05000528 - 0x05000598 const Gfx birds_seg5_dl_05000528[] = { - gsSPLight(&birds_seg5_light_05000008, 1), - gsSPLight(&birds_seg5_light_05000000, 2), + gsSPLight(&birds_seg5_lights_05000000.l, 1), + gsSPLight(&birds_seg5_lights_05000000.a, 2), gsSPVertex(birds_seg5_vertex_05000048, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 4, 3, 2, 0x0, 5, 3, 6, 0x0), @@ -163,16 +151,16 @@ const Gfx birds_seg5_dl_05000528[] = { // 0x05000598 - 0x05000600 const Gfx birds_seg5_dl_05000598[] = { - gsSPLight(&birds_seg5_light_05000008, 1), - gsSPLight(&birds_seg5_light_05000000, 2), + gsSPLight(&birds_seg5_lights_05000000.l, 1), + gsSPLight(&birds_seg5_lights_05000000.a, 2), gsSPVertex(birds_seg5_vertex_050000D8, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), - gsSPLight(&birds_seg5_light_05000008, 1), - gsSPLight(&birds_seg5_light_05000000, 2), + gsSPLight(&birds_seg5_lights_05000000.l, 1), + gsSPLight(&birds_seg5_lights_05000000.a, 2), gsSPVertex(birds_seg5_vertex_05000108, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), - gsSPLight(&birds_seg5_light_05000008, 1), - gsSPLight(&birds_seg5_light_05000000, 2), + gsSPLight(&birds_seg5_lights_05000000.l, 1), + gsSPLight(&birds_seg5_lights_05000000.a, 2), gsSPVertex(birds_seg5_vertex_05000138, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), gsSPEndDisplayList(), @@ -180,8 +168,8 @@ const Gfx birds_seg5_dl_05000598[] = { // 0x05000600 - 0x05000670 const Gfx birds_seg5_dl_05000600[] = { - gsSPLight(&birds_seg5_light_05000008, 1), - gsSPLight(&birds_seg5_light_05000000, 2), + gsSPLight(&birds_seg5_lights_05000000.l, 1), + gsSPLight(&birds_seg5_lights_05000000.a, 2), gsSPVertex(birds_seg5_vertex_05000168, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 0, 3, 4, 0x0, 5, 3, 6, 0x0), @@ -193,8 +181,8 @@ const Gfx birds_seg5_dl_05000600[] = { // 0x05000670 - 0x050007E0 const Gfx birds_seg5_dl_05000670[] = { - gsSPLight(&birds_seg5_light_05000008, 1), - gsSPLight(&birds_seg5_light_05000000, 2), + gsSPLight(&birds_seg5_lights_05000000.l, 1), + gsSPLight(&birds_seg5_lights_05000000.a, 2), gsSPVertex(birds_seg5_vertex_050001F8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 1, 9, 10, 0x0), @@ -210,16 +198,16 @@ const Gfx birds_seg5_dl_05000670[] = { gsSP1Triangle( 7, 6, 15, 0x0), gsSPVertex(birds_seg5_vertex_050003F8, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), - gsSPLight(&birds_seg5_light_05000038, 1), - gsSPLight(&birds_seg5_light_05000030, 2), + gsSPLight(&birds_seg5_lights_05000030.l, 1), + gsSPLight(&birds_seg5_lights_05000030.a, 2), gsSPVertex(birds_seg5_vertex_05000428, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 0, 7, 0x0, 7, 8, 6, 0x0), gsSP2Triangles( 9, 7, 2, 0x0, 2, 7, 0, 0x0), gsSP2Triangles( 2, 3, 9, 0x0, 7, 9, 8, 0x0), gsSP1Triangle( 5, 4, 1, 0x0), - gsSPLight(&birds_seg5_light_05000020, 1), - gsSPLight(&birds_seg5_light_05000018, 2), + gsSPLight(&birds_seg5_lights_05000018.l, 1), + gsSPLight(&birds_seg5_lights_05000018.a, 2), gsSPVertex(birds_seg5_vertex_050004C8, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP1Triangle( 1, 3, 5, 0x0), diff --git a/actors/blargg/model.inc.c b/actors/blargg/model.inc.c index 1169e32..7590456 100644 --- a/actors/blargg/model.inc.c +++ b/actors/blargg/model.inc.c @@ -1,54 +1,34 @@ // Blargg (Unused) -// Unreferenced light -UNUSED static const Ambient blargg_light_1 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// Unreferenced light -UNUSED static const Light blargg_light_2 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 blargg_lights_unused = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05004740 -static const Ambient blargg_seg5_light_05004740 = { - {{0x3f, 0x0d, 0x05}, 0, {0x3f, 0x0d, 0x05}, 0} -}; - -// 0x05004748 -static const Light blargg_seg5_light_05004748 = { - {{0xff, 0x36, 0x16}, 0, {0xff, 0x36, 0x16}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 blargg_seg5_lights_05004740 = gdSPDefLights1( + 0x3f, 0x0d, 0x05, + 0xff, 0x36, 0x16, 0x28, 0x28, 0x28 +); // 0x05004758 -static const Ambient blargg_seg5_light_05004758 = { - {{0x2c, 0x2c, 0x2c}, 0, {0x2c, 0x2c, 0x2c}, 0} -}; - -// 0x05004760 -static const Light blargg_seg5_light_05004760 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 blargg_seg5_lights_05004758 = gdSPDefLights1( + 0x2c, 0x2c, 0x2c, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); // 0x05004770 -static const Ambient blargg_seg5_light_05004770 = { - {{0x3f, 0x0a, 0x06}, 0, {0x3f, 0x0a, 0x06}, 0} -}; - -// 0x05004778 -static const Light blargg_seg5_light_05004778 = { - {{0xff, 0x2a, 0x1a}, 0, {0xff, 0x2a, 0x1a}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 blargg_seg5_lights_05004770 = gdSPDefLights1( + 0x3f, 0x0a, 0x06, + 0xff, 0x2a, 0x1a, 0x28, 0x28, 0x28 +); // 0x05004788 -static const Ambient blargg_seg5_light_05004788 = { - {{0x3f, 0x0b, 0x07}, 0, {0x3f, 0x0b, 0x07}, 0} -}; - -// 0x05004790 -static const Light blargg_seg5_light_05004790 = { - {{0xff, 0x2e, 0x1f}, 0, {0xff, 0x2e, 0x1f}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 blargg_seg5_lights_05004788 = gdSPDefLights1( + 0x3f, 0x0b, 0x07, + 0xff, 0x2e, 0x1f, 0x28, 0x28, 0x28 +); // 0x050047A0 static const Vtx blargg_seg5_vertex_050047A0[] = { @@ -403,8 +383,8 @@ static const Vtx blargg_seg5_vertex_050057E0[] = { // 0x050058D0 - 0x05005A60 const Gfx blargg_seg5_dl_050058D0[] = { - gsSPLight(&blargg_seg5_light_05004760, 1), - gsSPLight(&blargg_seg5_light_05004758, 2), + gsSPLight(&blargg_seg5_lights_05004758.l, 1), + gsSPLight(&blargg_seg5_lights_05004758.a, 2), gsSPVertex(blargg_seg5_vertex_050047A0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -418,8 +398,8 @@ const Gfx blargg_seg5_dl_050058D0[] = { gsSPVertex(blargg_seg5_vertex_050049A0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&blargg_seg5_light_05004748, 1), - gsSPLight(&blargg_seg5_light_05004740, 2), + gsSPLight(&blargg_seg5_lights_05004740.l, 1), + gsSPLight(&blargg_seg5_lights_05004740.a, 2), gsSPVertex(blargg_seg5_vertex_05004A20, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -438,8 +418,8 @@ const Gfx blargg_seg5_dl_050058D0[] = { // 0x05005A60 - 0x05005D00 const Gfx blargg_seg5_dl_05005A60[] = { - gsSPLight(&blargg_seg5_light_05004760, 1), - gsSPLight(&blargg_seg5_light_05004758, 2), + gsSPLight(&blargg_seg5_lights_05004758.l, 1), + gsSPLight(&blargg_seg5_lights_05004758.a, 2), gsSPVertex(blargg_seg5_vertex_05004BE0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -453,8 +433,8 @@ const Gfx blargg_seg5_dl_05005A60[] = { gsSPVertex(blargg_seg5_vertex_05004DE0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&blargg_seg5_light_05004778, 1), - gsSPLight(&blargg_seg5_light_05004770, 2), + gsSPLight(&blargg_seg5_lights_05004770.l, 1), + gsSPLight(&blargg_seg5_lights_05004770.a, 2), gsSPVertex(blargg_seg5_vertex_05004E60, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 2, 6, 7, 0x0, 2, 7, 8, 0x0), @@ -492,8 +472,8 @@ const Gfx blargg_seg5_dl_05005A60[] = { // 0x05005D00 - 0x05005EB8 const Gfx blargg_seg5_dl_05005D00[] = { - gsSPLight(&blargg_seg5_light_05004790, 1), - gsSPLight(&blargg_seg5_light_05004788, 2), + gsSPLight(&blargg_seg5_lights_05004788.l, 1), + gsSPLight(&blargg_seg5_lights_05004788.a, 2), gsSPVertex(blargg_seg5_vertex_050053E0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/actors/blue_coin_switch/model.inc.c b/actors/blue_coin_switch/model.inc.c index a47fbae..f83d5a2 100644 --- a/actors/blue_coin_switch/model.inc.c +++ b/actors/blue_coin_switch/model.inc.c @@ -1,14 +1,10 @@ // Blue Coin Switch // 0x08000000 -static const Ambient blue_coin_switch_seg8_light_08000000 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x08000008 -static const Light blue_coin_switch_seg8_light_08000008 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 blue_coin_switch_seg8_lights_08000000 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x08000018 ALIGNED8 static const u8 blue_coin_switch_seg8_texture_08000018[] = { @@ -53,8 +49,8 @@ const Gfx blue_coin_switch_seg8_dl_08000D58[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_coin_switch_seg8_texture_08000018), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&blue_coin_switch_seg8_light_08000008, 1), - gsSPLight(&blue_coin_switch_seg8_light_08000000, 2), + gsSPLight(&blue_coin_switch_seg8_lights_08000000.l, 1), + gsSPLight(&blue_coin_switch_seg8_lights_08000000.a, 2), gsSPVertex(blue_coin_switch_seg8_vertex_08000C18, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/actors/blue_fish/model.inc.c b/actors/blue_fish/model.inc.c index cf143e7..a1a7da1 100644 --- a/actors/blue_fish/model.inc.c +++ b/actors/blue_fish/model.inc.c @@ -1,14 +1,10 @@ // Blue Fish // 0x0301B5C8 -static const Ambient blue_fish_seg3_light_0301B5C8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0301B5D0 -static const Light blue_fish_seg3_light_0301B5D0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 blue_fish_seg3_lights_0301B5C8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0301B5E0 ALIGNED8 static const u8 blue_fish_seg3_texture_0301B5E0[] = { @@ -38,8 +34,8 @@ const Gfx blue_fish_seg3_dl_0301BEC0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_fish_seg3_texture_0301B5E0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&blue_fish_seg3_light_0301B5D0, 1), - gsSPLight(&blue_fish_seg3_light_0301B5C8, 2), + gsSPLight(&blue_fish_seg3_lights_0301B5C8.l, 1), + gsSPLight(&blue_fish_seg3_lights_0301B5C8.a, 2), gsSPVertex(blue_fish_seg3_vertex_0301BDE0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 5, 0, 3, 0x0, 2, 6, 0, 0x0), @@ -90,8 +86,8 @@ const Gfx blue_fish_seg3_dl_0301C0A8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_fish_seg3_texture_0301B5E0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&blue_fish_seg3_light_0301B5D0, 1), - gsSPLight(&blue_fish_seg3_light_0301B5C8, 2), + gsSPLight(&blue_fish_seg3_lights_0301B5C8.l, 1), + gsSPLight(&blue_fish_seg3_lights_0301B5C8.a, 2), gsSPVertex(blue_fish_seg3_vertex_0301C018, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), gsSP2Triangles( 4, 5, 2, 0x0, 2, 5, 6, 0x0), diff --git a/actors/bobomb/model.inc.c b/actors/bobomb/model.inc.c index 2e523c6..27aea98 100644 --- a/actors/bobomb/model.inc.c +++ b/actors/bobomb/model.inc.c @@ -168,34 +168,22 @@ const Gfx bobomb_seg8_dl_08022D78[] = { }; // 0x08022DE8 -static const Ambient bobomb_seg8_light_08022DE8 = { - {{0x3f, 0x26, 0x04}, 0, {0x3f, 0x26, 0x04}, 0} -}; - -// 0x08022DF0 -static const Light bobomb_seg8_light_08022DF0 = { - {{0xff, 0x99, 0x12}, 0, {0xff, 0x99, 0x12}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bobomb_seg8_lights_08022DE8 = gdSPDefLights1( + 0x3f, 0x26, 0x04, + 0xff, 0x99, 0x12, 0x28, 0x28, 0x28 +); // 0x08022E00 -static const Ambient bobomb_seg8_light_08022E00 = { - {{0x2c, 0x2c, 0x2c}, 0, {0x2c, 0x2c, 0x2c}, 0} -}; +static const Lights1 bobomb_seg8_lights_08022E00 = gdSPDefLights1( + 0x2c, 0x2c, 0x2c, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); -// 0x08022E08 -static const Light bobomb_seg8_light_08022E08 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient bobomb_light_1 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light bobomb_light_2 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +static const Lights1 bobomb_lights_unused = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x08022E30 static const Vtx bobomb_seg8_vertex_08022E30[] = { @@ -291,8 +279,8 @@ static const Vtx bobomb_seg8_vertex_08023190[] = { // 0x08023270 - 0x08023378 const Gfx bobomb_seg8_dl_08023270[] = { - gsSPLight(&bobomb_seg8_light_08022DF0, 1), - gsSPLight(&bobomb_seg8_light_08022DE8, 2), + gsSPLight(&bobomb_seg8_lights_08022DE8.l, 1), + gsSPLight(&bobomb_seg8_lights_08022DE8.a, 2), gsSPVertex(bobomb_seg8_vertex_08022E30, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -314,8 +302,8 @@ const Gfx bobomb_seg8_dl_08023270[] = { // 0x08023378 - 0x08023480 const Gfx bobomb_seg8_dl_08023378[] = { - gsSPLight(&bobomb_seg8_light_08022DF0, 1), - gsSPLight(&bobomb_seg8_light_08022DE8, 2), + gsSPLight(&bobomb_seg8_lights_08022DE8.l, 1), + gsSPLight(&bobomb_seg8_lights_08022DE8.a, 2), gsSPVertex(bobomb_seg8_vertex_08022F70, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -337,8 +325,8 @@ const Gfx bobomb_seg8_dl_08023378[] = { // 0x08023480 - 0x08023528 const Gfx bobomb_seg8_dl_08023480[] = { - gsSPLight(&bobomb_seg8_light_08022E08, 1), - gsSPLight(&bobomb_seg8_light_08022E00, 2), + gsSPLight(&bobomb_seg8_lights_08022E00.l, 1), + gsSPLight(&bobomb_seg8_lights_08022E00.a, 2), gsSPVertex(bobomb_seg8_vertex_080230B0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 0, 3, 0x0, 4, 3, 5, 0x0), diff --git a/actors/bomb/model.inc.c b/actors/bomb/model.inc.c index 7a8c279..14e15a3 100644 --- a/actors/bomb/model.inc.c +++ b/actors/bomb/model.inc.c @@ -1,14 +1,10 @@ // Bomb // 0x06057AA8 -static const Ambient bomb_seg6_light_06057AA8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x06057AB0 -static const Light bomb_seg6_light_06057AB0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bomb_seg6_lights_06057AA8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06057AC0 ALIGNED8 static const u8 bomb_seg6_texture_06057AC0[] = { @@ -177,8 +173,8 @@ const Gfx bomb_seg6_dl_0605A8A8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bomb_seg6_texture_06059AC0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bomb_seg6_light_06057AB0, 1), - gsSPLight(&bomb_seg6_light_06057AA8, 2), + gsSPLight(&bomb_seg6_lights_06057AA8.l, 1), + gsSPLight(&bomb_seg6_lights_06057AA8.a, 2), gsSPVertex(bomb_seg6_vertex_0605A340, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/actors/boo/model.inc.c b/actors/boo/model.inc.c index ce12e6a..40ce782 100644 --- a/actors/boo/model.inc.c +++ b/actors/boo/model.inc.c @@ -1,14 +1,10 @@ // Boo // 0x05009B28 -static const Ambient boo_seg5_light_05009B28 = { - {{0x97, 0x9a, 0xff}, 0, {0x97, 0x9a, 0xff}, 0} -}; - -// 0x05009B30 -static const Light boo_seg5_light_05009B30 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 boo_seg5_lights_05009B28 = gdSPDefLights1( + 0x97, 0x9a, 0xff, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05009B40 ALIGNED8 static const u8 boo_seg5_texture_05009B40[] = { @@ -265,8 +261,8 @@ const Gfx boo_seg5_dl_0500BEE0[] = { gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&boo_seg5_light_05009B30, 1), - gsSPLight(&boo_seg5_light_05009B28, 2), + gsSPLight(&boo_seg5_lights_05009B28.l, 1), + gsSPLight(&boo_seg5_lights_05009B28.a, 2), gsSPVertex(boo_seg5_vertex_0500B340, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -338,7 +334,7 @@ const Gfx boo_seg5_dl_0500BFA0[] = { const Gfx boo_seg5_dl_0500C1B0[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsSPNumLights(NUMLIGHTS_0), // I cannot tell if they meant to put 0 or 1 here. + gsSPNumLights(NUMLIGHTS_1), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), diff --git a/actors/boo_castle/model.inc.c b/actors/boo_castle/model.inc.c index 6700715..68c3a46 100644 --- a/actors/boo_castle/model.inc.c +++ b/actors/boo_castle/model.inc.c @@ -1,14 +1,10 @@ // Boo (Castle) // 0x06015658 -static const Ambient boo_castle_seg6_light_06015658 = { - {{0x97, 0x9a, 0xff}, 0, {0x97, 0x9a, 0xff}, 0} -}; - -// 0x06015660 -static const Light boo_castle_seg6_light_06015660 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 boo_castle_seg6_lights_06015658 = gdSPDefLights1( + 0x97, 0x9a, 0xff, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06015670 ALIGNED8 static const u8 boo_castle_seg6_texture_06015670[] = { @@ -265,8 +261,8 @@ const Gfx boo_castle_seg6_dl_06017A10[] = { gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&boo_castle_seg6_light_06015660, 1), - gsSPLight(&boo_castle_seg6_light_06015658, 2), + gsSPLight(&boo_castle_seg6_lights_06015658.l, 1), + gsSPLight(&boo_castle_seg6_lights_06015658.a, 2), gsSPVertex(boo_castle_seg6_vertex_06016E70, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -338,7 +334,7 @@ const Gfx boo_castle_seg6_dl_06017AD0[] = { const Gfx boo_castle_seg6_dl_06017CE0[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - gsSPNumLights(NUMLIGHTS_0), // I cannot tell if they meant to put 0 or 1 here. + gsSPNumLights(NUMLIGHTS_1), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), diff --git a/actors/book/model.inc.c b/actors/book/model.inc.c index a375150..80b4f23 100644 --- a/actors/book/model.inc.c +++ b/actors/book/model.inc.c @@ -3,14 +3,10 @@ // This actor file requires including actor bookend because of bookend_seg5_texture_05000C60 // 0x05002558 -static const Ambient book_seg5_light_05002558 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05002560 -static const Light book_seg5_light_05002560 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 book_seg5_lights_05002558 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05002570 ALIGNED8 static const u8 book_seg5_texture_05002570[] = { @@ -54,8 +50,8 @@ const Gfx book_seg5_dl_05002EF0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bookend_seg5_texture_05000C60), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&book_seg5_light_05002560, 1), - gsSPLight(&book_seg5_light_05002558, 2), + gsSPLight(&book_seg5_lights_05002558.l, 1), + gsSPLight(&book_seg5_lights_05002558.a, 2), gsSPVertex(book_seg5_vertex_05002D70, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/actors/bookend/model.inc.c b/actors/bookend/model.inc.c index 10adda9..3796ec0 100644 --- a/actors/bookend/model.inc.c +++ b/actors/bookend/model.inc.c @@ -1,44 +1,28 @@ // Bookend -// Unreferenced Light -UNUSED static const Ambient bookend_light_1 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 bookend_lights_unused1 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// Unreferenced Light -UNUSED static const Light bookend_light_2 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 bookend_lights_unused2 = gdSPDefLights1( + 0x03, 0x19, 0x09, + 0x0c, 0x66, 0x26, 0x28, 0x28, 0x28 +); -// Unreferenced Light -UNUSED static const Ambient bookend_light_3 = { - {{0x03, 0x19, 0x09}, 0, {0x03, 0x19, 0x09}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 bookend_lights_unused3 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// Unreferenced Light -UNUSED static const Light bookend_light_4 = { - {{0x0c, 0x66, 0x26}, 0, {0x0c, 0x66, 0x26}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced Light -UNUSED static const Ambient bookend_light_5 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// Unreferenced Light -UNUSED static const Light bookend_light_6 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced Light -UNUSED static const Ambient bookend_light_7 = { - {{0x3f, 0x00, 0x00}, 0, {0x3f, 0x00, 0x00}, 0} -}; - -// Unreferenced Light -UNUSED static const Light bookend_light_8 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 bookend_lights_unused4 = gdSPDefLights1( + 0x3f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x05000060 ALIGNED8 static const u8 bookend_seg5_texture_05000060[] = { @@ -66,14 +50,10 @@ ALIGNED8 static const u8 bookend_seg5_texture_05001060[] = { }; // 0x05001860 -static const Ambient bookend_seg5_light_05001860 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x05001868 -static const Light bookend_seg5_light_05001868 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bookend_seg5_lights_05001860 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05001878 static const Vtx bookend_seg5_vertex_05001878[] = { @@ -96,8 +76,8 @@ const Gfx bookend_seg5_dl_050018F8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bookend_seg5_texture_05000060), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bookend_seg5_light_05001868, 1), - gsSPLight(&bookend_seg5_light_05001860, 2), + gsSPLight(&bookend_seg5_lights_05001860.l, 1), + gsSPLight(&bookend_seg5_lights_05001860.a, 2), gsSPVertex(bookend_seg5_vertex_05001878, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -136,14 +116,10 @@ const Gfx bookend_seg5_dl_05001978[] = { }; // 0x05001A08 -static const Ambient bookend_seg5_light_05001A08 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x05001A10 -static const Light bookend_seg5_light_05001A10 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bookend_seg5_lights_05001A08 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05001A20 static const Vtx bookend_seg5_vertex_05001A20[] = { @@ -166,8 +142,8 @@ const Gfx bookend_seg5_dl_05001AA0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bookend_seg5_texture_05000060), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bookend_seg5_light_05001A10, 1), - gsSPLight(&bookend_seg5_light_05001A08, 2), + gsSPLight(&bookend_seg5_lights_05001A08.l, 1), + gsSPLight(&bookend_seg5_lights_05001A08.a, 2), gsSPVertex(bookend_seg5_vertex_05001A20, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -206,14 +182,10 @@ const Gfx bookend_seg5_dl_05001B20[] = { }; // 0x05001BB0 -static const Ambient bookend_seg5_light_05001BB0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x05001BB8 -static const Light bookend_seg5_light_05001BB8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bookend_seg5_lights_05001BB0 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05001BC8 static const Vtx bookend_seg5_vertex_05001BC8[] = { @@ -244,8 +216,8 @@ const Gfx bookend_seg5_dl_05001CC8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bookend_seg5_texture_05000860), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bookend_seg5_light_05001BB8, 1), - gsSPLight(&bookend_seg5_light_05001BB0, 2), + gsSPLight(&bookend_seg5_lights_05001BB0.l, 1), + gsSPLight(&bookend_seg5_lights_05001BB0.a, 2), gsSPVertex(bookend_seg5_vertex_05001BC8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -283,14 +255,10 @@ const Gfx bookend_seg5_dl_05001D68[] = { }; // 0x05001DE0 -static const Ambient bookend_seg5_light_05001DE0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x05001DE8 -static const Light bookend_seg5_light_05001DE8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bookend_seg5_lights_05001DE0 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05001DF8 static const Vtx bookend_seg5_vertex_05001DF8[] = { @@ -321,8 +289,8 @@ const Gfx bookend_seg5_dl_05001EF8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bookend_seg5_texture_05000860), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bookend_seg5_light_05001DE8, 1), - gsSPLight(&bookend_seg5_light_05001DE0, 2), + gsSPLight(&bookend_seg5_lights_05001DE0.l, 1), + gsSPLight(&bookend_seg5_lights_05001DE0.a, 2), gsSPVertex(bookend_seg5_vertex_05001DF8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -360,14 +328,10 @@ const Gfx bookend_seg5_dl_05001F98[] = { }; // 0x05002010 -static const Ambient bookend_seg5_light_05002010 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x05002018 -static const Light bookend_seg5_light_05002018 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bookend_seg5_lights_05002010 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05002028 static const Vtx bookend_seg5_vertex_05002028[] = { @@ -390,8 +354,8 @@ const Gfx bookend_seg5_dl_050020E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bookend_seg5_texture_05000460), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bookend_seg5_light_05002018, 1), - gsSPLight(&bookend_seg5_light_05002010, 2), + gsSPLight(&bookend_seg5_lights_05002010.l, 1), + gsSPLight(&bookend_seg5_lights_05002010.a, 2), gsSPVertex(bookend_seg5_vertex_05002028, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -417,14 +381,10 @@ const Gfx bookend_seg5_dl_05002140[] = { }; // 0x050021B0 -static const Ambient bookend_seg5_light_050021B0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x050021B8 -static const Light bookend_seg5_light_050021B8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bookend_seg5_lights_050021B0 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x050021C8 static const Vtx bookend_seg5_vertex_050021C8[] = { @@ -447,8 +407,8 @@ const Gfx bookend_seg5_dl_05002288[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bookend_seg5_texture_05000460), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bookend_seg5_light_050021B8, 1), - gsSPLight(&bookend_seg5_light_050021B0, 2), + gsSPLight(&bookend_seg5_lights_050021B0.l, 1), + gsSPLight(&bookend_seg5_lights_050021B0.a, 2), gsSPVertex(bookend_seg5_vertex_050021C8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/actors/bowser/model.inc.c b/actors/bowser/model.inc.c index 6679120..c4f7839 100644 --- a/actors/bowser/model.inc.c +++ b/actors/bowser/model.inc.c @@ -148,34 +148,22 @@ ALIGNED8 static const u8 bowser_seg6_texture_06037C38[] = { }; // 0x06038C38 -static const Ambient bowser_seg6_light_06038C38 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; +static const Lights1 bowser_seg6_lights_06038C38 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x06038C40 -static const Light bowser_seg6_light_06038C40 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 bowser_lights_unused1 = gdSPDefLights1( + 0x33, 0x31, 0x00, + 0xce, 0xc7, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient bowser_light_1 = { - {{0x33, 0x31, 0x00}, 0, {0x33, 0x31, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light bowser_light_2 = { - {{0xce, 0xc7, 0x00}, 0, {0xce, 0xc7, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient bowser_light_3 = { - {{0x34, 0x34, 0x00}, 0, {0x34, 0x34, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light bowser_light_4 = { - {{0xd2, 0xd2, 0x00}, 0, {0xd2, 0xd2, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 bowser_lights_unused2 = gdSPDefLights1( + 0x34, 0x34, 0x00, + 0xd2, 0xd2, 0x00, 0x28, 0x28, 0x28 +); // 0x06038C80 static const Vtx bowser_seg6_vertex_06038C80[] = { @@ -279,8 +267,8 @@ const Gfx bowser_seg6_dl_06039110[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06022438), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_seg6_light_06038C40, 1), - gsSPLight(&bowser_seg6_light_06038C38, 2), + gsSPLight(&bowser_seg6_lights_06038C38.l, 1), + gsSPLight(&bowser_seg6_lights_06038C38.a, 2), gsSPVertex(bowser_seg6_vertex_06038C80, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -451,8 +439,8 @@ const Gfx bowser_seg6_dl_06039808[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06023C38), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_seg6_light_06038C40, 1), - gsSPLight(&bowser_seg6_light_06038C38, 2), + gsSPLight(&bowser_seg6_lights_06038C38.l, 1), + gsSPLight(&bowser_seg6_lights_06038C38.a, 2), gsSPVertex(bowser_seg6_vertex_06039368, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -683,8 +671,8 @@ const Gfx bowser_seg6_dl_0603A210[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06022438), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_seg6_light_06038C40, 1), - gsSPLight(&bowser_seg6_light_06038C38, 2), + gsSPLight(&bowser_seg6_lights_06038C38.l, 1), + gsSPLight(&bowser_seg6_lights_06038C38.a, 2), gsSPVertex(bowser_seg6_vertex_06039A60, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 4, 0, 2, 0x0, 2, 1, 5, 0x0), @@ -959,8 +947,8 @@ const Gfx bowser_seg6_dl_0603AED8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06022438), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_seg6_light_06038C40, 1), - gsSPLight(&bowser_seg6_light_06038C38, 2), + gsSPLight(&bowser_seg6_lights_06038C38.l, 1), + gsSPLight(&bowser_seg6_lights_06038C38.a, 2), gsSPVertex(bowser_seg6_vertex_0603A568, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 5, 8, 0x0), @@ -1144,8 +1132,8 @@ const Gfx bowser_seg6_dl_0603B718[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06022438), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_seg6_light_06038C40, 1), - gsSPLight(&bowser_seg6_light_06038C38, 2), + gsSPLight(&bowser_seg6_lights_06038C38.l, 1), + gsSPLight(&bowser_seg6_lights_06038C38.a, 2), gsSPVertex(bowser_seg6_vertex_0603B288, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 1, 4, 3, 0x0, 5, 3, 4, 0x0), @@ -1322,8 +1310,8 @@ const Gfx bowser_seg6_dl_0603BDF8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06023C38), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_seg6_light_06038C40, 1), - gsSPLight(&bowser_seg6_light_06038C38, 2), + gsSPLight(&bowser_seg6_lights_06038C38.l, 1), + gsSPLight(&bowser_seg6_lights_06038C38.a, 2), gsSPVertex(bowser_seg6_vertex_0603B948, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 7, 6, 5, 0x0), @@ -1495,8 +1483,8 @@ const Gfx bowser_seg6_dl_0603C500[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06023C38), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_seg6_light_06038C40, 1), - gsSPLight(&bowser_seg6_light_06038C38, 2), + gsSPLight(&bowser_seg6_lights_06038C38.l, 1), + gsSPLight(&bowser_seg6_lights_06038C38.a, 2), gsSPVertex(bowser_seg6_vertex_0603C050, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 7, 0x0, 3, 7, 4, 0x0), @@ -1730,8 +1718,8 @@ const Gfx bowser_seg6_dl_0603CF28[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06022438), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_seg6_light_06038C40, 1), - gsSPLight(&bowser_seg6_light_06038C38, 2), + gsSPLight(&bowser_seg6_lights_06038C38.l, 1), + gsSPLight(&bowser_seg6_lights_06038C38.a, 2), gsSPVertex(bowser_seg6_vertex_0603C758, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 5, 0, 4, 0x0, 0, 2, 6, 0x0), @@ -2021,8 +2009,8 @@ const Gfx bowser_seg6_dl_0603DC70[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06022438), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_seg6_light_06038C40, 1), - gsSPLight(&bowser_seg6_light_06038C38, 2), + gsSPLight(&bowser_seg6_lights_06038C38.l, 1), + gsSPLight(&bowser_seg6_lights_06038C38.a, 2), gsSPVertex(bowser_seg6_vertex_0603D280, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 7, 0x0, 4, 7, 8, 0x0), @@ -2211,8 +2199,8 @@ const Gfx bowser_seg6_dl_0603E500[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06022438), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_seg6_light_06038C40, 1), - gsSPLight(&bowser_seg6_light_06038C38, 2), + gsSPLight(&bowser_seg6_lights_06038C38.l, 1), + gsSPLight(&bowser_seg6_lights_06038C38.a, 2), gsSPVertex(bowser_seg6_vertex_0603E030, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -2690,8 +2678,8 @@ const Gfx bowser_seg6_dl_0603FBA8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06023C38), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_seg6_light_06038C40, 1), - gsSPLight(&bowser_seg6_light_06038C38, 2), + gsSPLight(&bowser_seg6_lights_06038C38.l, 1), + gsSPLight(&bowser_seg6_lights_06038C38.a, 2), gsSPVertex(bowser_seg6_vertex_0603E718, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -3404,8 +3392,8 @@ const Gfx bowser_seg6_dl_06041A28[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06028438), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_seg6_light_06038C40, 1), - gsSPLight(&bowser_seg6_light_06038C38, 2), + gsSPLight(&bowser_seg6_lights_06038C38.l, 1), + gsSPLight(&bowser_seg6_lights_06038C38.a, 2), gsSPVertex(bowser_seg6_vertex_060402D8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -3961,8 +3949,8 @@ const Gfx bowser_seg6_dl_06042EE0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06020C38), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_seg6_light_06038C40, 1), - gsSPLight(&bowser_seg6_light_06038C38, 2), + gsSPLight(&bowser_seg6_lights_06038C38.l, 1), + gsSPLight(&bowser_seg6_lights_06038C38.a, 2), gsSPVertex(bowser_seg6_vertex_06042660, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 6, 7, 3, 0x0), @@ -4119,8 +4107,8 @@ const Gfx bowser_seg6_dl_06043548[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06022438), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_seg6_light_06038C40, 1), - gsSPLight(&bowser_seg6_light_06038C38, 2), + gsSPLight(&bowser_seg6_lights_06038C38.l, 1), + gsSPLight(&bowser_seg6_lights_06038C38.a, 2), gsSPVertex(bowser_seg6_vertex_06043278, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), gsSP2Triangles( 0, 2, 3, 0x0, 0, 5, 1, 0x0), diff --git a/actors/bowser_key/model.inc.c b/actors/bowser_key/model.inc.c index d67f412..7cee595 100644 --- a/actors/bowser_key/model.inc.c +++ b/actors/bowser_key/model.inc.c @@ -1,14 +1,10 @@ // Bowser Key -// 0x030156E0, solid color brown -static const Ambient bowser_key_amb_light = { - {{0x3f, 0x2c, 0x00}, 0, {0x3f, 0x2c, 0x00}, 0} -}; - -// 0x030156E8, solid color orange -static const Light bowser_key_diff_light = { - {{0xff, 0xb2, 0x00}, 0, {0xff, 0xb2, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x030156E0, ambient color brown - light color orange +static const Lights1 bowser_key_lights = gdSPDefLights1( + 0x3f, 0x2c, 0x00, + 0xff, 0xb2, 0x00, 0x28, 0x28, 0x28 +); // 0x030156F8 static const Vtx bowser_key_dl_vertex_group1[] = { @@ -236,8 +232,8 @@ static const Vtx bowser_key_dl_vertex_group12[] = { // 0x030161F8 - 0x03016530 const Gfx bowser_key_dl[] = { - gsSPLight(&bowser_key_diff_light, 1), - gsSPLight(&bowser_key_amb_light, 2), + gsSPLight(&bowser_key_lights.l, 1), + gsSPLight(&bowser_key_lights.a, 2), gsSPVertex(bowser_key_dl_vertex_group1, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/actors/breakable_box/model.inc.c b/actors/breakable_box/model.inc.c index 1e42c31..a451771 100644 --- a/actors/breakable_box/model.inc.c +++ b/actors/breakable_box/model.inc.c @@ -1,14 +1,10 @@ // Breakable Box // 0x08011A78 -static const Ambient breakable_box_seg8_light_08011A78 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x08011A80 -static const Light breakable_box_seg8_light_08011A80 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 breakable_box_seg8_lights_08011A80 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x08011A90 ALIGNED8 static const u8 breakable_box_seg8_texture_08011A90[] = { @@ -56,8 +52,8 @@ static const Vtx breakable_box_seg8_vertex_08012B80[] = { // 0x08012C30 - 0x08012CD8 const Gfx breakable_box_seg8_dl_08012C30[] = { - gsSPLight(&breakable_box_seg8_light_08011A80, 1), - gsSPLight(&breakable_box_seg8_light_08011A78, 2), + gsSPLight(&breakable_box_seg8_lights_08011A80.l, 1), + gsSPLight(&breakable_box_seg8_lights_08011A80.a, 2), gsSPVertex(breakable_box_seg8_vertex_08012A90, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/actors/bub/model.inc.c b/actors/bub/model.inc.c index 1de54d4..12619be 100644 --- a/actors/bub/model.inc.c +++ b/actors/bub/model.inc.c @@ -1,24 +1,16 @@ // Bub // 0x0600E278 -static const Ambient bub_seg6_light_0600E278 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0600E280 -static const Light bub_seg6_light_0600E280 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bub_seg6_lights_0600E280 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0600E290 -static const Ambient bub_seg6_light_0600E290 = { - {{0x3f, 0x1d, 0x25}, 0, {0x3f, 0x1d, 0x25}, 0} -}; - -// 0x0600E298 -static const Light bub_seg6_light_0600E298 = { - {{0xff, 0x75, 0x94}, 0, {0xff, 0x75, 0x94}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bub_seg6_lights_0600E290 = gdSPDefLights1( + 0x3f, 0x1d, 0x25, + 0xff, 0x75, 0x94, 0x28, 0x28, 0x28 +); // 0x0600E2A8 ALIGNED8 static const u8 bub_seg6_texture_0600E2A8[] = { @@ -171,8 +163,8 @@ const Gfx bub_seg6_dl_06011848[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bub_seg6_texture_0600E2A8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bub_seg6_light_0600E280, 1), - gsSPLight(&bub_seg6_light_0600E278, 2), + gsSPLight(&bub_seg6_lights_0600E280.l, 1), + gsSPLight(&bub_seg6_lights_0600E280.a, 2), gsSPVertex(bub_seg6_vertex_060112A8, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), @@ -230,8 +222,8 @@ const Gfx bub_seg6_dl_06011968[] = { // 0x06011A50 - 0x06011B28 const Gfx bub_seg6_dl_06011A50[] = { - gsSPLight(&bub_seg6_light_0600E298, 1), - gsSPLight(&bub_seg6_light_0600E290, 2), + gsSPLight(&bub_seg6_lights_0600E290.l, 1), + gsSPLight(&bub_seg6_lights_0600E290.a, 2), gsSPVertex(bub_seg6_vertex_06011718, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 1, 4, 2, 0x0, 1, 3, 4, 0x0), @@ -240,8 +232,8 @@ const Gfx bub_seg6_dl_06011A50[] = { gsSP2Triangles( 8, 9, 10, 0x0, 8, 5, 0, 0x0), gsSP2Triangles( 0, 11, 8, 0x0, 8, 10, 5, 0x0), gsSP2Triangles( 5, 10, 6, 0x0, 10, 9, 6, 0x0), - gsSPLight(&bub_seg6_light_0600E280, 1), - gsSPLight(&bub_seg6_light_0600E278, 2), + gsSPLight(&bub_seg6_lights_0600E280.l, 1), + gsSPLight(&bub_seg6_lights_0600E280.a, 2), gsSPVertex(bub_seg6_vertex_060117D8, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), gsSP2Triangles( 2, 1, 5, 0x0, 2, 5, 6, 0x0), @@ -292,8 +284,8 @@ const Gfx bub_seg6_dl_06011C58[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bub_seg6_texture_0600EAA8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bub_seg6_light_0600E280, 1), - gsSPLight(&bub_seg6_light_0600E278, 2), + gsSPLight(&bub_seg6_lights_0600E280.l, 1), + gsSPLight(&bub_seg6_lights_0600E280.a, 2), gsSPVertex(bub_seg6_vertex_06011BD8, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 4, 5, 0, 0x0, 0, 5, 6, 0x0), @@ -336,8 +328,8 @@ const Gfx bub_seg6_dl_06011DC0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bub_seg6_texture_0600EAA8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bub_seg6_light_0600E280, 1), - gsSPLight(&bub_seg6_light_0600E278, 2), + gsSPLight(&bub_seg6_lights_0600E280.l, 1), + gsSPLight(&bub_seg6_lights_0600E280.a, 2), gsSPVertex(bub_seg6_vertex_06011D50, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 2, 0x0), gsSP2Triangles( 2, 4, 0, 0x0, 3, 2, 1, 0x0), @@ -379,8 +371,8 @@ const Gfx bub_seg6_dl_06011F18[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bub_seg6_texture_0600EAA8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bub_seg6_light_0600E280, 1), - gsSPLight(&bub_seg6_light_0600E278, 2), + gsSPLight(&bub_seg6_lights_0600E280.l, 1), + gsSPLight(&bub_seg6_lights_0600E280.a, 2), gsSPVertex(bub_seg6_vertex_06011EA8, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 3, 0, 0x0, 0, 5, 6, 0x0), diff --git a/actors/bubba/model.inc.c b/actors/bubba/model.inc.c index 231cfa1..1e9f31e 100644 --- a/actors/bubba/model.inc.c +++ b/actors/bubba/model.inc.c @@ -34,34 +34,22 @@ ALIGNED8 static const u8 bubba_seg5_texture_05002408[] = { }; // 0x05004408 -static const Ambient bubba_seg5_light_05004408 = { - {{0x48, 0x31, 0x2a}, 0, {0x48, 0x31, 0x2a}, 0} -}; - -// 0x05004410 -static const Light bubba_seg5_light_05004410 = { - {{0xf1, 0xa6, 0x8c}, 0, {0xf1, 0xa6, 0x8c}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bubba_seg5_lights_05004408 = gdSPDefLights1( + 0x48, 0x31, 0x2a, + 0xf1, 0xa6, 0x8c, 0x28, 0x28, 0x28 +); // 0x05004420 -static const Ambient bubba_seg5_light_05004420 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x05004428 -static const Light bubba_seg5_light_05004428 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bubba_seg5_lights_05004420 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05004438 -static const Ambient bubba_seg5_light_05004438 = { - {{0x10, 0x07, 0x08}, 0, {0x10, 0x07, 0x08}, 0} -}; - -// 0x05004440 -static const Light bubba_seg5_light_05004440 = { - {{0x36, 0x1a, 0x1c}, 0, {0x36, 0x1a, 0x1c}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bubba_seg5_lights_05004438 = gdSPDefLights1( + 0x10, 0x07, 0x08, + 0x36, 0x1a, 0x1c, 0x28, 0x28, 0x28 +); // 0x05004450 static const Vtx bubba_seg5_vertex_05004450[] = { @@ -199,8 +187,8 @@ const Gfx bubba_seg5_dl_05004A40[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bubba_seg5_texture_05000008), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bubba_seg5_light_05004410, 1), - gsSPLight(&bubba_seg5_light_05004408, 2), + gsSPLight(&bubba_seg5_lights_05004408.l, 1), + gsSPLight(&bubba_seg5_lights_05004408.a, 2), gsSPVertex(bubba_seg5_vertex_05004450, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 4, 1, 3, 0x0, 5, 1, 4, 0x0), @@ -213,8 +201,8 @@ const Gfx bubba_seg5_dl_05004AA8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bubba_seg5_texture_05001408), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bubba_seg5_light_05004428, 1), - gsSPLight(&bubba_seg5_light_05004420, 2), + gsSPLight(&bubba_seg5_lights_05004420.l, 1), + gsSPLight(&bubba_seg5_lights_05004420.a, 2), gsSPVertex(bubba_seg5_vertex_050044C0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), gsSP2Triangles( 0, 2, 3, 0x0, 5, 0, 4, 0x0), @@ -274,8 +262,8 @@ const Gfx bubba_seg5_dl_05004C40[] = { // 0x05004D48 - 0x05004E80 const Gfx bubba_seg5_dl_05004D48[] = { - gsSPLight(&bubba_seg5_light_05004410, 1), - gsSPLight(&bubba_seg5_light_05004408, 2), + gsSPLight(&bubba_seg5_lights_05004408.l, 1), + gsSPLight(&bubba_seg5_lights_05004408.a, 2), gsSPVertex(bubba_seg5_vertex_05004870, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 2, 4, 5, 0x0, 4, 6, 5, 0x0), @@ -284,16 +272,16 @@ const Gfx bubba_seg5_dl_05004D48[] = { gsSP2Triangles(10, 11, 7, 0x0, 3, 7, 0, 0x0), gsSP2Triangles( 0, 11, 1, 0x0, 6, 10, 9, 0x0), gsSP2Triangles(12, 10, 6, 0x0, 12, 11, 10, 0x0), - gsSPLight(&bubba_seg5_light_05004440, 1), - gsSPLight(&bubba_seg5_light_05004438, 2), + gsSPLight(&bubba_seg5_lights_05004438.l, 1), + gsSPLight(&bubba_seg5_lights_05004438.a, 2), gsSPVertex(bubba_seg5_vertex_05004940, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 7, 0x0, 5, 6, 3, 0x0), gsSP2Triangles( 3, 8, 4, 0x0, 7, 6, 5, 0x0), gsSP2Triangles( 8, 2, 1, 0x0, 8, 1, 0, 0x0), gsSP1Triangle( 4, 8, 0, 0x0), - gsSPLight(&bubba_seg5_light_05004428, 1), - gsSPLight(&bubba_seg5_light_05004420, 2), + gsSPLight(&bubba_seg5_lights_05004420.l, 1), + gsSPLight(&bubba_seg5_lights_05004420.a, 2), gsSPVertex(bubba_seg5_vertex_050049D0, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 0, 0x0, 0, 5, 3, 0x0), @@ -328,34 +316,22 @@ const Gfx bubba_seg5_dl_05004E80[] = { }; // 0x05004F30 -static const Ambient bubba_seg5_light_05004F30 = { - {{0x48, 0x31, 0x2a}, 0, {0x48, 0x31, 0x2a}, 0} -}; - -// 0x05004F38 -static const Light bubba_seg5_light_05004F38 = { - {{0xf1, 0xa6, 0x8c}, 0, {0xf1, 0xa6, 0x8c}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bubba_seg5_lights_05004F30 = gdSPDefLights1( + 0x48, 0x31, 0x2a, + 0xf1, 0xa6, 0x8c, 0x28, 0x28, 0x28 +); // 0x05004F48 -static const Ambient bubba_seg5_light_05004F48 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x05004F50 -static const Light bubba_seg5_light_05004F50 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bubba_seg5_lights_05004F50 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05004F60 -static const Ambient bubba_seg5_light_05004F60 = { - {{0x0a, 0x07, 0x08}, 0, {0x0a, 0x07, 0x08}, 0} -}; - -// 0x05004F68 -static const Light bubba_seg5_light_05004F68 = { - {{0x22, 0x1a, 0x1c}, 0, {0x22, 0x1a, 0x1c}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bubba_seg5_lights_05004F60 = gdSPDefLights1( + 0x0a, 0x07, 0x08, + 0x22, 0x1a, 0x1c, 0x28, 0x28, 0x28 +); // 0x05004F78 static const Vtx bubba_seg5_vertex_05004F78[] = { @@ -490,8 +466,8 @@ const Gfx bubba_seg5_dl_05005538[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bubba_seg5_texture_05000008), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bubba_seg5_light_05004F38, 1), - gsSPLight(&bubba_seg5_light_05004F30, 2), + gsSPLight(&bubba_seg5_lights_05004F30.l, 1), + gsSPLight(&bubba_seg5_lights_05004F30.a, 2), gsSPVertex(bubba_seg5_vertex_05004F78, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 4, 0, 5, 0x0, 5, 0, 2, 0x0), @@ -504,8 +480,8 @@ const Gfx bubba_seg5_dl_050055A0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bubba_seg5_texture_05001408), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bubba_seg5_light_05004F50, 1), - gsSPLight(&bubba_seg5_light_05004F48, 2), + gsSPLight(&bubba_seg5_lights_05004F50.l, 1), + gsSPLight(&bubba_seg5_lights_05004F50.a, 2), gsSPVertex(bubba_seg5_vertex_05004FE8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 5, 3, 0x0, 6, 5, 0, 0x0), @@ -565,8 +541,8 @@ const Gfx bubba_seg5_dl_05005738[] = { // 0x05005840 - 0x05005978 const Gfx bubba_seg5_dl_05005840[] = { - gsSPLight(&bubba_seg5_light_05004F38, 1), - gsSPLight(&bubba_seg5_light_05004F30, 2), + gsSPLight(&bubba_seg5_lights_05004F30.l, 1), + gsSPLight(&bubba_seg5_lights_05004F30.a, 2), gsSPVertex(bubba_seg5_vertex_05005368, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 5, 2, 1, 0x0, 1, 6, 5, 0x0), @@ -575,16 +551,16 @@ const Gfx bubba_seg5_dl_05005840[] = { gsSP2Triangles(11, 6, 1, 0x0, 9, 10, 8, 0x0), gsSP2Triangles(12, 5, 9, 0x0, 7, 5, 12, 0x0), gsSP2Triangles( 9, 8, 12, 0x0, 0, 11, 1, 0x0), - gsSPLight(&bubba_seg5_light_05004F68, 1), - gsSPLight(&bubba_seg5_light_05004F60, 2), + gsSPLight(&bubba_seg5_lights_05004F60.l, 1), + gsSPLight(&bubba_seg5_lights_05004F60.a, 2), gsSPVertex(bubba_seg5_vertex_05005438, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 6, 4, 3, 0x0), gsSP2Triangles( 3, 7, 6, 0x0, 3, 8, 7, 0x0), gsSP2Triangles( 7, 8, 0, 0x0, 8, 1, 0, 0x0), gsSP1Triangle( 8, 2, 1, 0x0), - gsSPLight(&bubba_seg5_light_05004F50, 1), - gsSPLight(&bubba_seg5_light_05004F48, 2), + gsSPLight(&bubba_seg5_lights_05004F50.l, 1), + gsSPLight(&bubba_seg5_lights_05004F50.a, 2), gsSPVertex(bubba_seg5_vertex_050054C8, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 0, 4, 1, 0x0, 5, 6, 0, 0x0), diff --git a/actors/bullet_bill/model.inc.c b/actors/bullet_bill/model.inc.c index 3a2bdad..3763515 100644 --- a/actors/bullet_bill/model.inc.c +++ b/actors/bullet_bill/model.inc.c @@ -1,14 +1,10 @@ // Bullet Bill // 0x0500BA90 -static const Ambient bullet_bill_seg5_light_0500BA90 = { - {{0x06, 0x07, 0x14}, 0, {0x06, 0x07, 0x14}, 0} -}; - -// 0x0500BA98 -static const Light bullet_bill_seg5_light_0500BA98 = { - {{0x19, 0x1c, 0x52}, 0, {0x19, 0x1c, 0x52}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bullet_bill_seg5_lights_0500BA90 = gdSPDefLights1( + 0x06, 0x07, 0x14, + 0x19, 0x1c, 0x52, 0x28, 0x28, 0x28 +); // 0x0500BAA8 ALIGNED8 static const u8 bullet_bill_seg5_texture_0500BAA8[] = { @@ -259,8 +255,8 @@ const Gfx bullet_bill_seg5_dl_0500E5E8[] = { gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bullet_bill_seg5_light_0500BA98, 1), - gsSPLight(&bullet_bill_seg5_light_0500BA90, 2), + gsSPLight(&bullet_bill_seg5_lights_0500BA90.l, 1), + gsSPLight(&bullet_bill_seg5_lights_0500BA90.a, 2), gsSPVertex(bullet_bill_seg5_vertex_0500DAA8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -332,7 +328,7 @@ const Gfx bullet_bill_seg5_dl_0500E730[] = { const Gfx bullet_bill_seg5_dl_0500E8A8[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBA, G_CC_BLENDRGBA), - gsSPNumLights(NUMLIGHTS_0), // I cannot tell if they meant to put 0 or 1 here. + gsSPNumLights(NUMLIGHTS_1), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 6, G_TX_NOLOD), diff --git a/actors/bully/model.inc.c b/actors/bully/model.inc.c index 4b55486..5573946 100644 --- a/actors/bully/model.inc.c +++ b/actors/bully/model.inc.c @@ -60,44 +60,28 @@ const Gfx bully_seg5_dl_05000398[] = { }; // 0x05000408 -static const Ambient bully_seg5_light_05000408 = { - {{0x00, 0x38, 0x00}, 0, {0x00, 0x38, 0x00}, 0} -}; - -// 0x05000410 -static const Light bully_seg5_light_05000410 = { - {{0x00, 0xe3, 0x00}, 0, {0x00, 0xe3, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bully_seg5_lights_05000408 = gdSPDefLights1( + 0x00, 0x38, 0x00, + 0x00, 0xe3, 0x00, 0x28, 0x28, 0x28 +); // 0x05000420 -static const Ambient bully_seg5_light_05000420 = { - {{0x00, 0x3f, 0x00}, 0, {0x00, 0x3f, 0x00}, 0} -}; +static const Lights1 bully_seg5_lights_05000420 = gdSPDefLights1( + 0x00, 0x3f, 0x00, + 0x00, 0xff, 0x00, 0x28, 0x28, 0x28 +); -// 0x05000428 -static const Light bully_seg5_light_05000428 = { - {{0x00, 0xff, 0x00}, 0, {0x00, 0xff, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient bully_light_1 = { - {{0x3f, 0x29, 0x00}, 0, {0x3f, 0x29, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light bully_light_2 = { - {{0xff, 0xa5, 0x00}, 0, {0xff, 0xa5, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 bully_lights_unused = gdSPDefLights1( + 0x3f, 0x29, 0x00, + 0xff, 0xa5, 0x00, 0x28, 0x28, 0x28 +); // 0x05000450 -static const Ambient bully_seg5_light_05000450 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x05000458 -static const Light bully_seg5_light_05000458 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 bully_seg5_lights_05000450 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // //! There's another malformed light entry here. // 0x05000468 @@ -339,8 +323,8 @@ static const Vtx bully_seg5_vertex_05003608[] = { // 0x05003708 - 0x050037A0 const Gfx bully_seg5_dl_05003708[] = { - gsSPLight(&bully_seg5_light_05000410, 1), - gsSPLight(&bully_seg5_light_05000408, 2), + gsSPLight(&bully_seg5_lights_05000408.l, 1), + gsSPLight(&bully_seg5_lights_05000408.a, 2), gsSPVertex(bully_seg5_vertex_05002C68, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 2, 3, 4, 0x0, 1, 5, 6, 0x0), @@ -355,8 +339,8 @@ const Gfx bully_seg5_dl_05003708[] = { // 0x050037A0 - 0x05003838 const Gfx bully_seg5_dl_050037A0[] = { - gsSPLight(&bully_seg5_light_05000428, 1), - gsSPLight(&bully_seg5_light_05000420, 2), + gsSPLight(&bully_seg5_lights_05000420.l, 1), + gsSPLight(&bully_seg5_lights_05000420.a, 2), gsSPVertex(bully_seg5_vertex_05002D88, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), gsSP2Triangles( 3, 1, 0, 0x0, 5, 6, 7, 0x0), @@ -372,7 +356,7 @@ const Gfx bully_seg5_dl_050037A0[] = { // 0x05003838 - 0x05003878 const Gfx bully_seg5_dl_05003838[] = { gsSPLight(bully_seg5_texture_05000468 + 0x8, 1), // yet another malformed light... - gsSPLight(bully_seg5_texture_05000468 + 0x0, 2), + gsSPLight(bully_seg5_texture_05000468, 2), gsSPVertex(bully_seg5_vertex_05002EA8, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 3, 4, 5, 0x0, 3, 5, 0, 0x0), @@ -381,8 +365,8 @@ const Gfx bully_seg5_dl_05003838[] = { // 0x05003878 - 0x05003C50 const Gfx bully_seg5_dl_05003878[] = { - gsSPLight(&bully_seg5_light_05000458, 1), - gsSPLight(&bully_seg5_light_05000450, 2), + gsSPLight(&bully_seg5_lights_05000450.l, 1), + gsSPLight(&bully_seg5_lights_05000450.a, 2), gsSPVertex(bully_seg5_vertex_05002F08, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 1, 3, 4, 0x0, 4, 3, 5, 0x0), diff --git a/actors/cannon_barrel/model.inc.c b/actors/cannon_barrel/model.inc.c index ad37f44..aee370d 100644 --- a/actors/cannon_barrel/model.inc.c +++ b/actors/cannon_barrel/model.inc.c @@ -1,24 +1,16 @@ // Cannon Barrel // 0x08005878 -static const Ambient cannon_barrel_seg8_light_08005878 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x08005880 -static const Light cannon_barrel_seg8_light_08005880 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 cannon_barrel_seg8_lights_08005878 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x08005890 -static const Ambient cannon_barrel_seg8_light_08005890 = { - {{0x00, 0x00, 0x0f}, 0, {0x00, 0x00, 0x0f}, 0} -}; - -// 0x08005898 -static const Light cannon_barrel_seg8_light_08005898 = { - {{0x00, 0x00, 0x32}, 0, {0x00, 0x00, 0x32}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 cannon_barrel_seg8_lights_08005890 = gdSPDefLights1( + 0x00, 0x00, 0x0f, + 0x00, 0x00, 0x32, 0x28, 0x28, 0x28 +); // 0x080058A8 ALIGNED8 static const u8 cannon_barrel_seg8_texture_080058A8[] = { @@ -100,8 +92,8 @@ const Gfx cannon_barrel_seg8_dl_08006408[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cannon_barrel_seg8_texture_080058A8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&cannon_barrel_seg8_light_08005880, 1), - gsSPLight(&cannon_barrel_seg8_light_08005878, 2), + gsSPLight(&cannon_barrel_seg8_lights_08005878.l, 1), + gsSPLight(&cannon_barrel_seg8_lights_08005878.a, 2), gsSPVertex(cannon_barrel_seg8_vertex_080060A8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 2, 4, 5, 0x0, 2, 1, 4, 0x0), @@ -116,8 +108,8 @@ const Gfx cannon_barrel_seg8_dl_08006408[] = { // 0x080064C0 - 0x08006660 const Gfx cannon_barrel_seg8_dl_080064C0[] = { - gsSPLight(&cannon_barrel_seg8_light_08005898, 1), - gsSPLight(&cannon_barrel_seg8_light_08005890, 2), + gsSPLight(&cannon_barrel_seg8_lights_08005890.l, 1), + gsSPLight(&cannon_barrel_seg8_lights_08005890.a, 2), gsSPVertex(cannon_barrel_seg8_vertex_080061A8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 4, 0x0, 6, 4, 3, 0x0), diff --git a/actors/cannon_base/model.inc.c b/actors/cannon_base/model.inc.c index 8041e4d..ebf4580 100644 --- a/actors/cannon_base/model.inc.c +++ b/actors/cannon_base/model.inc.c @@ -1,24 +1,16 @@ // Cannon Base // 0x08004988 -static const Ambient cannon_base_seg8_light_08004988 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x08004990 -static const Light cannon_base_seg8_light_08004990 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 cannon_base_seg8_lights_08004988 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x080049A0 -static const Ambient cannon_base_seg8_light_080049A0 = { - {{0x0e, 0x10, 0x4c}, 0, {0x0e, 0x10, 0x4c}, 0} -}; - -// 0x080049A8 -static const Light cannon_base_seg8_light_080049A8 = { - {{0x30, 0x37, 0xff}, 0, {0x30, 0x37, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 cannon_base_seg8_lights_080049A0 = gdSPDefLights1( + 0x0e, 0x10, 0x4c, + 0x30, 0x37, 0xff, 0x28, 0x28, 0x28 +); // 0x080049B8 ALIGNED8 static const u8 cannon_base_seg8_texture_080049B8[] = { @@ -124,8 +116,8 @@ const Gfx cannon_base_seg8_dl_08005658[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cannon_base_seg8_texture_080049B8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&cannon_base_seg8_light_08004990, 1), - gsSPLight(&cannon_base_seg8_light_08004988, 2), + gsSPLight(&cannon_base_seg8_lights_08004988.l, 1), + gsSPLight(&cannon_base_seg8_lights_08004988.a, 2), gsSPVertex(cannon_base_seg8_vertex_080051B8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 2, 5, 0x0, 0, 5, 3, 0x0), @@ -136,8 +128,8 @@ const Gfx cannon_base_seg8_dl_08005658[] = { // 0x080056D0 - 0x080057F8 const Gfx cannon_base_seg8_dl_080056D0[] = { - gsSPLight(&cannon_base_seg8_light_080049A8, 1), - gsSPLight(&cannon_base_seg8_light_080049A0, 2), + gsSPLight(&cannon_base_seg8_lights_080049A0.l, 1), + gsSPLight(&cannon_base_seg8_lights_080049A0.a, 2), gsSPVertex(cannon_base_seg8_vertex_08005278, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/actors/cannon_lid/model.inc.c b/actors/cannon_lid/model.inc.c index ac9b469..36edb68 100644 --- a/actors/cannon_lid/model.inc.c +++ b/actors/cannon_lid/model.inc.c @@ -1,14 +1,10 @@ // Cannon Lid // 0x08004040 -static const Ambient cannon_lid_seg8_light_08004040 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x08004048 -static const Light cannon_lid_seg8_light_08004048 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 cannon_lid_seg8_lights_08004040 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x08004058 ALIGNED8 static const u8 cannon_lid_seg8_texture_08004058[] = { @@ -28,8 +24,8 @@ const Gfx cannon_lid_seg8_dl_08004898[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cannon_lid_seg8_texture_08004058), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&cannon_lid_seg8_light_08004048, 1), - gsSPLight(&cannon_lid_seg8_light_08004040, 2), + gsSPLight(&cannon_lid_seg8_lights_08004040.l, 1), + gsSPLight(&cannon_lid_seg8_lights_08004040.a, 2), gsSPVertex(cannon_lid_seg8_vertex_08004858, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/actors/capswitch/model.inc.c b/actors/capswitch/model.inc.c index 2f0b027..5adca94 100644 --- a/actors/capswitch/model.inc.c +++ b/actors/capswitch/model.inc.c @@ -1,64 +1,40 @@ // Capswitch // 0x05001BB8 -static const Ambient capswitch_seg5_light_05001BB8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05001BC0 -static const Light capswitch_seg5_light_05001BC0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 capswitch_seg5_lights_05001BB8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05001BD0 -static const Ambient capswitch_seg5_light_05001BD0 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05001BD8 -static const Light capswitch_seg5_light_05001BD8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 capswitch_seg5_lights_05001BD0 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05001BE8 -static const Ambient capswitch_seg5_light_05001BE8 = { - {{0x3f, 0x00, 0x00}, 0, {0x3f, 0x00, 0x00}, 0} -}; - -// 0x05001BF0 -static const Light capswitch_seg5_light_05001BF0 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 capswitch_seg5_lights_05001BE8 = gdSPDefLights1( + 0x3f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x05001C00 -static const Ambient capswitch_seg5_light_05001C00 = { - {{0x01, 0x2a, 0x09}, 0, {0x01, 0x2a, 0x09}, 0} -}; - -// 0x05001C08 -static const Light capswitch_seg5_light_05001C08 = { - {{0x07, 0xa9, 0x25}, 0, {0x07, 0xa9, 0x25}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 capswitch_seg5_lights_05001C00 = gdSPDefLights1( + 0x01, 0x2a, 0x09, + 0x07, 0xa9, 0x25, 0x28, 0x28, 0x28 +); // 0x05001C18 -static const Ambient capswitch_seg5_light_05001C18 = { - {{0x00, 0x00, 0x3f}, 0, {0x00, 0x00, 0x3f}, 0} -}; - -// 0x05001C20 -static const Light capswitch_seg5_light_05001C20 = { - {{0x00, 0x00, 0xff}, 0, {0x00, 0x00, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 capswitch_seg5_lights_05001C18 = gdSPDefLights1( + 0x00, 0x00, 0x3f, + 0x00, 0x00, 0xff, 0x28, 0x28, 0x28 +); // 0x05001C30 -static const Ambient capswitch_seg5_light_05001C30 = { - {{0x3f, 0x25, 0x02}, 0, {0x3f, 0x25, 0x02}, 0} -}; - -// 0x05001C38 -static const Light capswitch_seg5_light_05001C38 = { - {{0xff, 0x96, 0x08}, 0, {0xff, 0x96, 0x08}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 capswitch_seg5_lights_05001C30 = gdSPDefLights1( + 0x3f, 0x25, 0x02, + 0xff, 0x96, 0x08, 0x28, 0x28, 0x28 +); // 0x05001C48 ALIGNED8 static const u8 capswitch_seg5_texture_05001C48[] = { @@ -91,8 +67,8 @@ const Gfx capswitch_seg5_dl_05002D88[] = { gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, capswitch_seg5_texture_05001C48), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&capswitch_seg5_light_05001BC0, 1), - gsSPLight(&capswitch_seg5_light_05001BB8, 2), + gsSPLight(&capswitch_seg5_lights_05001BB8.l, 1), + gsSPLight(&capswitch_seg5_lights_05001BB8.a, 2), gsSPVertex(capswitch_seg5_vertex_05002CC8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 4, 3, 0, 0x0, 5, 4, 0, 0x0), @@ -158,8 +134,8 @@ const Gfx capswitch_seg5_dl_05003020[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, capswitch_seg5_texture_05002C48), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 4 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&capswitch_seg5_light_05001BD8, 1), - gsSPLight(&capswitch_seg5_light_05001BD0, 2), + gsSPLight(&capswitch_seg5_lights_05001BD0.l, 1), + gsSPLight(&capswitch_seg5_lights_05001BD0.a, 2), gsSPVertex(capswitch_seg5_vertex_05002E60, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 4, 7, 6, 0x0), @@ -234,32 +210,32 @@ const Gfx capswitch_seg5_dl_05003280[] = { // 0x05003350 - 0x05003370 const Gfx capswitch_seg5_dl_05003350[] = { - gsSPLight(&capswitch_seg5_light_05001BF0, 1), - gsSPLight(&capswitch_seg5_light_05001BE8, 2), + gsSPLight(&capswitch_seg5_lights_05001BE8.l, 1), + gsSPLight(&capswitch_seg5_lights_05001BE8.a, 2), gsSPDisplayList(capswitch_seg5_dl_05003280), gsSPEndDisplayList(), }; // 0x05003370 - 0x05003390 const Gfx capswitch_seg5_dl_05003370[] = { - gsSPLight(&capswitch_seg5_light_05001C08, 1), - gsSPLight(&capswitch_seg5_light_05001C00, 2), + gsSPLight(&capswitch_seg5_lights_05001C00.l, 1), + gsSPLight(&capswitch_seg5_lights_05001C00.a, 2), gsSPDisplayList(capswitch_seg5_dl_05003280), gsSPEndDisplayList(), }; // 0x05003390 - 0x050033B0 const Gfx capswitch_seg5_dl_05003390[] = { - gsSPLight(&capswitch_seg5_light_05001C20, 1), - gsSPLight(&capswitch_seg5_light_05001C18, 2), + gsSPLight(&capswitch_seg5_lights_05001C18.l, 1), + gsSPLight(&capswitch_seg5_lights_05001C18.a, 2), gsSPDisplayList(capswitch_seg5_dl_05003280), gsSPEndDisplayList(), }; // 0x050033B0 - 0x050033D0 const Gfx capswitch_seg5_dl_050033B0[] = { - gsSPLight(&capswitch_seg5_light_05001C38, 1), - gsSPLight(&capswitch_seg5_light_05001C30, 2), + gsSPLight(&capswitch_seg5_lights_05001C30.l, 1), + gsSPLight(&capswitch_seg5_lights_05001C30.a, 2), gsSPDisplayList(capswitch_seg5_dl_05003280), gsSPEndDisplayList(), }; diff --git a/actors/chain_chomp/model.inc.c b/actors/chain_chomp/model.inc.c index 406a492..e7e39ab 100644 --- a/actors/chain_chomp/model.inc.c +++ b/actors/chain_chomp/model.inc.c @@ -1,36 +1,22 @@ // Chain Chomp - -// These 6 lights are unreferenced. // 0x06021388 -static const Ambient chain_chomp_seg6_light_06021388 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x06021390 -static const Light chain_chomp_seg6_light_06021390 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +UNUSED static const Lights1 chain_chomp_lights_unused1 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x060213A0 -static const Ambient chain_chomp_seg6_light_060213A0 = { - {{0x03, 0x03, 0x05}, 0, {0x03, 0x03, 0x05}, 0} -}; - -// 0x060213A8 -static const Light chain_chomp_seg6_light_060213A8 = { - {{0x0d, 0x0f, 0x16}, 0, {0x0d, 0x0f, 0x16}, 0, {0x28, 0x28, 0x28}, 0} -}; +UNUSED static const Lights1 chain_chomp_lights_unused2 = gdSPDefLights1( + 0x03, 0x03, 0x05, + 0x0d, 0x0f, 0x16, 0x28, 0x28, 0x28 +); // 0x060213B8 -static const Ambient chain_chomp_seg6_light_060213B8 = { - {{0x25, 0x00, 0x00}, 0, {0x25, 0x00, 0x00}, 0} -}; - -// 0x060213C0 -static const Light chain_chomp_seg6_light_060213C0 = { - {{0x96, 0x00, 0x00}, 0, {0x96, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +UNUSED static const Lights1 chain_chomp_lights_unused3 = gdSPDefLights1( + 0x25, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x060213D0 ALIGNED8 static const u8 chain_chomp_seg6_texture_060213D0[] = { @@ -380,14 +366,10 @@ const Gfx chain_chomp_seg6_dl_06024940[] = { }; // 0x060249D0 -static const Ambient chain_chomp_seg6_light_060249D0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x060249D8 -static const Light chain_chomp_seg6_light_060249D8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 chain_chomp_seg6_lights_060249D0 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x060249E8 static const Vtx chain_chomp_seg6_vertex_060249E8[] = { @@ -410,8 +392,8 @@ const Gfx chain_chomp_seg6_dl_06024AA8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, chain_chomp_seg6_texture_060233D0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&chain_chomp_seg6_light_060249D8, 1), - gsSPLight(&chain_chomp_seg6_light_060249D0, 2), + gsSPLight(&chain_chomp_seg6_lights_060249D0.l, 1), + gsSPLight(&chain_chomp_seg6_lights_060249D0.a, 2), gsSPVertex(chain_chomp_seg6_vertex_060249E8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/actors/chair/model.inc.c b/actors/chair/model.inc.c index 702797d..ec0ad35 100644 --- a/actors/chair/model.inc.c +++ b/actors/chair/model.inc.c @@ -1,14 +1,10 @@ // Chair -// Unreferenced light -UNUSED static const Ambient chair_light_1 = { - {{0x19, 0x0d, 0x06}, 0, {0x19, 0x0d, 0x06}, 0} -}; - -// Unreferenced light -UNUSED static const Light chair_light_2 = { - {{0x64, 0x36, 0x1a}, 0, {0x64, 0x36, 0x1a}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 chair_lights_unused = gdSPDefLights1( + 0x19, 0x0d, 0x06, + 0x64, 0x36, 0x1a, 0x28, 0x28, 0x28 +); // 0x05003060 ALIGNED8 static const u8 chair_seg5_texture_05003060[] = { @@ -32,14 +28,10 @@ ALIGNED8 static const u8 chair_seg5_texture_05004460[] = { }; // 0x05004C60 -static const Ambient chair_seg5_light_05004C60 = { - {{0x47, 0x47, 0x47}, 0, {0x47, 0x47, 0x47}, 0} -}; - -// 0x05004C68 -static const Light chair_seg5_light_05004C68 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 chair_seg5_lights_05004C60 = gdSPDefLights1( + 0x47, 0x47, 0x47, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); // 0x05004C78 static const Vtx chair_seg5_vertex_05004C78[] = { @@ -82,8 +74,8 @@ const Gfx chair_seg5_dl_05004E38[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, chair_seg5_texture_05003060), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&chair_seg5_light_05004C68, 1), - gsSPLight(&chair_seg5_light_05004C60, 2), + gsSPLight(&chair_seg5_lights_05004C60.l, 1), + gsSPLight(&chair_seg5_lights_05004C60.a, 2), gsSPVertex(chair_seg5_vertex_05004C78, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -115,14 +107,10 @@ const Gfx chair_seg5_dl_05004EE8[] = { }; // 0x05004F58 -static const Ambient chair_seg5_light_05004F58 = { - {{0x47, 0x47, 0x47}, 0, {0x47, 0x47, 0x47}, 0} -}; - -// 0x05004F60 -static const Light chair_seg5_light_05004F60 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 chair_seg5_lights_05004F58 = gdSPDefLights1( + 0x47, 0x47, 0x47, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); // 0x05004F70 static const Vtx chair_seg5_vertex_05004F70[] = { @@ -161,8 +149,8 @@ const Gfx chair_seg5_dl_050050F0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, chair_seg5_texture_05004060), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&chair_seg5_light_05004F60, 1), - gsSPLight(&chair_seg5_light_05004F58, 2), + gsSPLight(&chair_seg5_lights_05004F58.l, 1), + gsSPLight(&chair_seg5_lights_05004F58.a, 2), gsSPVertex(chair_seg5_vertex_05004F70, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -193,14 +181,10 @@ const Gfx chair_seg5_dl_05005190[] = { }; // 0x05005200 -static const Ambient chair_seg5_light_05005200 = { - {{0x47, 0x47, 0x47}, 0, {0x47, 0x47, 0x47}, 0} -}; - -// 0x05005208 -static const Light chair_seg5_light_05005208 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 chair_seg5_lights_05005200 = gdSPDefLights1( + 0x47, 0x47, 0x47, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); // 0x05005218 static const Vtx chair_seg5_vertex_05005218[] = { @@ -237,8 +221,8 @@ const Gfx chair_seg5_dl_05005378[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, chair_seg5_texture_05003860), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&chair_seg5_light_05005208, 1), - gsSPLight(&chair_seg5_light_05005200, 2), + gsSPLight(&chair_seg5_lights_05005200.l, 1), + gsSPLight(&chair_seg5_lights_05005200.a, 2), gsSPVertex(chair_seg5_vertex_05005218, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -269,14 +253,10 @@ const Gfx chair_seg5_dl_05005408[] = { }; // 0x05005478 -static const Ambient chair_seg5_light_05005478 = { - {{0x47, 0x47, 0x47}, 0, {0x47, 0x47, 0x47}, 0} -}; - -// 0x05005480 -static const Light chair_seg5_light_05005480 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 chair_seg5_lights_05005478 = gdSPDefLights1( + 0x47, 0x47, 0x47, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); // 0x05005490 static const Vtx chair_seg5_vertex_05005490[] = { @@ -313,8 +293,8 @@ const Gfx chair_seg5_dl_050055F0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, chair_seg5_texture_05003860), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&chair_seg5_light_05005480, 1), - gsSPLight(&chair_seg5_light_05005478, 2), + gsSPLight(&chair_seg5_lights_05005478.l, 1), + gsSPLight(&chair_seg5_lights_05005478.a, 2), gsSPVertex(chair_seg5_vertex_05005490, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/actors/checkerboard_platform/model.inc.c b/actors/checkerboard_platform/model.inc.c index db3290e..9a5685d 100644 --- a/actors/checkerboard_platform/model.inc.c +++ b/actors/checkerboard_platform/model.inc.c @@ -1,14 +1,10 @@ // Checkerboard Platform // 0x0800C828 -static const Ambient checkerboard_platform_seg8_light_0800C828 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0800C830 -static const Light checkerboard_platform_seg8_light_0800C830 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 checkerboard_platform_seg8_lights_0800C828 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0800C840 ALIGNED8 static const u8 checkerboard_platform_seg8_texture_0800C840[] = { @@ -57,8 +53,8 @@ const Gfx checkerboard_platform_seg8_dl_0800D5C0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, checkerboard_platform_seg8_texture_0800C840), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&checkerboard_platform_seg8_light_0800C830, 1), - gsSPLight(&checkerboard_platform_seg8_light_0800C828, 2), + gsSPLight(&checkerboard_platform_seg8_lights_0800C828.l, 1), + gsSPLight(&checkerboard_platform_seg8_lights_0800C828.a, 2), gsSPVertex(checkerboard_platform_seg8_vertex_0800D440, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/actors/chillychief/model.inc.c b/actors/chillychief/model.inc.c index 0d2403f..1c5f4e4 100644 --- a/actors/chillychief/model.inc.c +++ b/actors/chillychief/model.inc.c @@ -1,44 +1,28 @@ // Chilly Chief (Chill Bully) // 0x06000000 -static const Ambient chilly_chief_seg6_light_06000000 = { - {{0x00, 0x38, 0x00}, 0, {0x00, 0x38, 0x00}, 0} -}; - -// 0x06000008 -static const Light chilly_chief_seg6_light_06000008 = { - {{0x00, 0xe3, 0x00}, 0, {0x00, 0xe3, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 chilly_chief_seg6_lights_06000000 = gdSPDefLights1( + 0x00, 0x38, 0x00, + 0x00, 0xe3, 0x00, 0x28, 0x28, 0x28 +); // 0x06000018 -static const Ambient chilly_chief_seg6_light_06000018 = { - {{0x00, 0x3f, 0x00}, 0, {0x00, 0x3f, 0x00}, 0} -}; - -// 0x06000020 -static const Light chilly_chief_seg6_light_06000020 = { - {{0x00, 0xff, 0x00}, 0, {0x00, 0xff, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 chilly_chief_seg6_lights_06000018 = gdSPDefLights1( + 0x00, 0x3f, 0x00, + 0x00, 0xff, 0x00, 0x28, 0x28, 0x28 +); // 0x06000030 -static const Ambient chilly_chief_seg6_light_06000030 = { - {{0x3f, 0x29, 0x00}, 0, {0x3f, 0x29, 0x00}, 0} -}; +static const Lights1 chilly_chief_seg6_lights_06000030 = gdSPDefLights1( + 0x3f, 0x29, 0x00, + 0xff, 0xa5, 0x00, 0x28, 0x28, 0x28 +); -// 0x06000038 -static const Light chilly_chief_seg6_light_06000038 = { - {{0xff, 0xa5, 0x00}, 0, {0xff, 0xa5, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient chillychief_light_1 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light chillychief_light_2 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 chillychief_lights_unused = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x06000060 ALIGNED8 static const u8 chilly_chief_seg6_texture_06000060[] = { @@ -122,8 +106,8 @@ static const Vtx chilly_chief_seg6_vertex_06002AA0[] = { // 0x06002B30 - 0x06002BC8 const Gfx chilly_chief_seg6_dl_06002B30[] = { - gsSPLight(&chilly_chief_seg6_light_06000008, 1), - gsSPLight(&chilly_chief_seg6_light_06000000, 2), + gsSPLight(&chilly_chief_seg6_lights_06000000.l, 1), + gsSPLight(&chilly_chief_seg6_lights_06000000.a, 2), gsSPVertex(chilly_chief_seg6_vertex_06002860, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 2, 3, 4, 0x0, 1, 5, 6, 0x0), @@ -138,8 +122,8 @@ const Gfx chilly_chief_seg6_dl_06002B30[] = { // 0x06002BC8 - 0x06002C60 const Gfx chilly_chief_seg6_dl_06002BC8[] = { - gsSPLight(&chilly_chief_seg6_light_06000020, 1), - gsSPLight(&chilly_chief_seg6_light_06000018, 2), + gsSPLight(&chilly_chief_seg6_lights_06000018.l, 1), + gsSPLight(&chilly_chief_seg6_lights_06000018.a, 2), gsSPVertex(chilly_chief_seg6_vertex_06002980, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), gsSP2Triangles( 3, 1, 0, 0x0, 5, 6, 7, 0x0), @@ -154,8 +138,8 @@ const Gfx chilly_chief_seg6_dl_06002BC8[] = { // 0x06002C60 - 0x06002C98 const Gfx chilly_chief_seg6_dl_06002C60[] = { - gsSPLight(&chilly_chief_seg6_light_06000038, 1), - gsSPLight(&chilly_chief_seg6_light_06000030, 2), + gsSPLight(&chilly_chief_seg6_lights_06000030.l, 1), + gsSPLight(&chilly_chief_seg6_lights_06000030.a, 2), gsSPVertex(chilly_chief_seg6_vertex_06002AA0, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 6, 7, 8, 0x0), diff --git a/actors/chuckya/model.inc.c b/actors/chuckya/model.inc.c index 9c0efb1..b6b0dd5 100644 --- a/actors/chuckya/model.inc.c +++ b/actors/chuckya/model.inc.c @@ -1,74 +1,46 @@ // Chuckya -// Unreferenced light -UNUSED static const Ambient chuckya_light_1 = { - {{0x26, 0x00, 0x27}, 0, {0x26, 0x00, 0x27}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 chuckya_lights_unused1 = gdSPDefLights1( + 0x26, 0x00, 0x27, + 0x9a, 0x00, 0x9c, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light chuckya_light_2 = { - {{0x9a, 0x00, 0x9c}, 0, {0x9a, 0x00, 0x9c}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 chuckya_lights_unused2 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient chuckya_light_3 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 chuckya_lights_unused3 = gdSPDefLights1( + 0x3f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light chuckya_light_4 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 chuckya_lights_unused4 = gdSPDefLights1( + 0x0e, 0x0e, 0x0e, + 0x39, 0x39, 0x39, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient chuckya_light_5 = { - {{0x3f, 0x00, 0x00}, 0, {0x3f, 0x00, 0x00}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 chuckya_lights_unused5 = gdSPDefLights1( + 0x39, 0x20, 0x00, + 0xe4, 0x83, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light chuckya_light_6 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 chuckya_lights_unused6 = gdSPDefLights1( + 0x3f, 0x27, 0x00, + 0xff, 0x9e, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient chuckya_light_7 = { - {{0x0e, 0x0e, 0x0e}, 0, {0x0e, 0x0e, 0x0e}, 0} -}; - -// Unreferenced light -UNUSED static const Light chuckya_light_8 = { - {{0x39, 0x39, 0x39}, 0, {0x39, 0x39, 0x39}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient chuckya_light_9 = { - {{0x39, 0x20, 0x00}, 0, {0x39, 0x20, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light chuckya_light_10 = { - {{0xe4, 0x83, 0x00}, 0, {0xe4, 0x83, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient chuckya_light_11 = { - {{0x3f, 0x27, 0x00}, 0, {0x3f, 0x27, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light chuckya_light_12 = { - {{0xff, 0x9e, 0x00}, 0, {0xff, 0x9e, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient chuckya_light_13 = { - {{0x15, 0x14, 0x16}, 0, {0x15, 0x14, 0x16}, 0} -}; - -// Unreferenced light -UNUSED static const Light chuckya_light_14 = { - {{0x57, 0x53, 0x58}, 0, {0x57, 0x53, 0x58}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 chuckya_lights_unused7 = gdSPDefLights1( + 0x15, 0x14, 0x16, + 0x57, 0x53, 0x58, 0x28, 0x28, 0x28 +); // 0x08006778 ALIGNED8 static const u8 chuckya_seg8_texture_08006778[] = { @@ -364,14 +336,10 @@ const Gfx chuckya_seg8_dl_0800A5F8[] = { }; // 0x0800A668 -static const Ambient chuckya_seg8_light_0800A668 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0800A670 -static const Light chuckya_seg8_light_0800A670 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 chuckya_seg8_lights_0800A668 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0800A680 static const Vtx chuckya_seg8_vertex_0800A680[] = { @@ -390,8 +358,8 @@ const Gfx chuckya_seg8_dl_0800A700[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, chuckya_seg8_texture_08006778), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&chuckya_seg8_light_0800A670, 1), - gsSPLight(&chuckya_seg8_light_0800A668, 2), + gsSPLight(&chuckya_seg8_lights_0800A668.l, 1), + gsSPLight(&chuckya_seg8_lights_0800A668.a, 2), gsSPVertex(chuckya_seg8_vertex_0800A680, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -417,14 +385,10 @@ const Gfx chuckya_seg8_dl_0800A758[] = { }; // 0x0800A7C8 -static const Ambient chuckya_seg8_light_0800A7C8 = { - {{0x29, 0x29, 0x29}, 0, {0x29, 0x29, 0x29}, 0} -}; - -// 0x0800A7D0 -static const Light chuckya_seg8_light_0800A7D0 = { - {{0x89, 0x89, 0x8a}, 0, {0x89, 0x89, 0x8a}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 chuckya_seg8_lights_0800A7C8 = gdSPDefLights1( + 0x29, 0x29, 0x29, + 0x89, 0x89, 0x8a, 0x28, 0x28, 0x28 +); // 0x0800A7E0 static const Vtx chuckya_seg8_vertex_0800A7E0[] = { @@ -441,8 +405,8 @@ static const Vtx chuckya_seg8_vertex_0800A7E0[] = { // 0x0800A870 - 0x0800A8D0 const Gfx chuckya_seg8_dl_0800A870[] = { - gsSPLight(&chuckya_seg8_light_0800A7D0, 1), - gsSPLight(&chuckya_seg8_light_0800A7C8, 2), + gsSPLight(&chuckya_seg8_lights_0800A7C8.l, 1), + gsSPLight(&chuckya_seg8_lights_0800A7C8.a, 2), gsSPVertex(chuckya_seg8_vertex_0800A7E0, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 1, 4, 2, 0x0, 5, 6, 2, 0x0), @@ -460,14 +424,10 @@ const Gfx chuckya_seg8_dl_0800A8D0[] = { }; // 0x0800A8F0 -static const Ambient chuckya_seg8_light_0800A8F0 = { - {{0x4c, 0x4c, 0x00}, 0, {0x4c, 0x4c, 0x00}, 0} -}; - -// 0x0800A8F8 -static const Light chuckya_seg8_light_0800A8F8 = { - {{0xff, 0xff, 0x00}, 0, {0xff, 0xff, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 chuckya_seg8_lights_0800A8F0 = gdSPDefLights1( + 0x4c, 0x4c, 0x00, + 0xff, 0xff, 0x00, 0x28, 0x28, 0x28 +); // 0x0800A908 static const Vtx chuckya_seg8_vertex_0800A908[] = { @@ -480,8 +440,8 @@ static const Vtx chuckya_seg8_vertex_0800A908[] = { // 0x0800A958 - 0x0800A998 const Gfx chuckya_seg8_dl_0800A958[] = { - gsSPLight(&chuckya_seg8_light_0800A8F8, 1), - gsSPLight(&chuckya_seg8_light_0800A8F0, 2), + gsSPLight(&chuckya_seg8_lights_0800A8F0.l, 1), + gsSPLight(&chuckya_seg8_lights_0800A8F0.a, 2), gsSPVertex(chuckya_seg8_vertex_0800A908, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 2, 3, 0x0, 0, 4, 1, 0x0), @@ -497,14 +457,10 @@ const Gfx chuckya_seg8_dl_0800A998[] = { }; // 0x0800A9B8 -static const Ambient chuckya_seg8_light_0800A9B8 = { - {{0x0c, 0x0c, 0x0c}, 0, {0x0c, 0x0c, 0x0c}, 0} -}; - -// 0x0800A9C0 -static const Light chuckya_seg8_light_0800A9C0 = { - {{0x32, 0x32, 0x32}, 0, {0x32, 0x32, 0x32}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 chuckya_seg8_lights_0800A9B8 = gdSPDefLights1( + 0x0c, 0x0c, 0x0c, + 0x32, 0x32, 0x32, 0x28, 0x28, 0x28 +); // 0x0800A9D0 static const Vtx chuckya_seg8_vertex_0800A9D0[] = { @@ -542,8 +498,8 @@ static const Vtx chuckya_seg8_vertex_0800AAC0[] = { // 0x0800AB70 - 0x0800ABE8 const Gfx chuckya_seg8_dl_0800AB70[] = { - gsSPLight(&chuckya_seg8_light_0800A9C0, 1), - gsSPLight(&chuckya_seg8_light_0800A9B8, 2), + gsSPLight(&chuckya_seg8_lights_0800A9B8.l, 1), + gsSPLight(&chuckya_seg8_lights_0800A9B8.a, 2), gsSPVertex(chuckya_seg8_vertex_0800A9D0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/actors/clam_shell/model.inc.c b/actors/clam_shell/model.inc.c index 4fc5382..4a9e57b 100644 --- a/actors/clam_shell/model.inc.c +++ b/actors/clam_shell/model.inc.c @@ -1,24 +1,16 @@ // Clam Shell -// Unreferenced light -UNUSED static const Ambient clam_shell_light_1 = { - {{0x1b, 0x23, 0x30}, 0, {0x1b, 0x23, 0x30}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 clam_shell_lights_unused1 = gdSPDefLights1( + 0x1b, 0x23, 0x30, + 0x6d, 0x8f, 0xc3, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light clam_shell_light_2 = { - {{0x6d, 0x8f, 0xc3}, 0, {0x6d, 0x8f, 0xc3}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient clam_shell_light_3 = { - {{0x18, 0x28, 0x38}, 0, {0x18, 0x28, 0x38}, 0} -}; - -// Unreferenced light -UNUSED static const Light clam_shell_light_4 = { - {{0x60, 0xa2, 0xe2}, 0, {0x60, 0xa2, 0xe2}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 clam_shell_lights_unused2 = gdSPDefLights1( + 0x18, 0x28, 0x38, + 0x60, 0xa2, 0xe2, 0x28, 0x28, 0x28 +); // 0x05000030 ALIGNED8 static const u8 clam_shell_seg5_texture_05000030[] = { @@ -31,14 +23,10 @@ ALIGNED8 static const u8 clam_shell_seg5_texture_05000830[] = { }; // 0x05001030 -static const Ambient clam_shell_seg5_light_05001030 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x05001038 -static const Light clam_shell_seg5_light_05001038 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 clam_shell_seg5_lights_05001030 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05001048 static const Vtx clam_shell_seg5_vertex_05001048[] = { @@ -75,8 +63,8 @@ const Gfx clam_shell_seg5_dl_050011A8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, clam_shell_seg5_texture_05000030), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&clam_shell_seg5_light_05001038, 1), - gsSPLight(&clam_shell_seg5_light_05001030, 2), + gsSPLight(&clam_shell_seg5_lights_05001030.l, 1), + gsSPLight(&clam_shell_seg5_lights_05001030.a, 2), gsSPVertex(clam_shell_seg5_vertex_05001048, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 4, 5, 3, 0x0, 4, 0, 6, 0x0), @@ -120,14 +108,10 @@ const Gfx clam_shell_seg5_dl_050012B8[] = { }; // 0x05001320 -static const Ambient clam_shell_seg5_light_05001320 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x05001328 -static const Light clam_shell_seg5_light_05001328 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 clam_shell_seg5_lights_05001320 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05001338 static const Vtx clam_shell_seg5_vertex_05001338[] = { @@ -162,8 +146,8 @@ const Gfx clam_shell_seg5_dl_05001478[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, clam_shell_seg5_texture_05000030), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&clam_shell_seg5_light_05001328, 1), - gsSPLight(&clam_shell_seg5_light_05001320, 2), + gsSPLight(&clam_shell_seg5_lights_05001320.l, 1), + gsSPLight(&clam_shell_seg5_lights_05001320.a, 2), gsSPVertex(clam_shell_seg5_vertex_05001338, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), gsSP2Triangles( 4, 5, 0, 0x0, 0, 5, 6, 0x0), diff --git a/actors/cyan_fish/model.inc.c b/actors/cyan_fish/model.inc.c index 34b525e..3e646da 100644 --- a/actors/cyan_fish/model.inc.c +++ b/actors/cyan_fish/model.inc.c @@ -8,15 +8,10 @@ ALIGNED8 static const u8 cyan_fish_seg6_texture_0600D468[] = { #include "actors/cyan_fish/cyan_fish.rgba16.inc.c" }; -// 0x0600DC68 -static const Ambient cyan_fish_seg6_light_0600DC68 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0600DC70 -static const Light cyan_fish_seg6_light_0600DC70 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 cyan_fish_seg6_lights_0600DC68 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0600DC80 static const Vtx cyan_fish_seg6_vertex_0600DC80[] = { @@ -37,8 +32,8 @@ const Gfx cyan_fish_seg6_dl_0600DD20[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cyan_fish_seg6_texture_0600D468), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&cyan_fish_seg6_light_0600DC70, 1), - gsSPLight(&cyan_fish_seg6_light_0600DC68, 2), + gsSPLight(&cyan_fish_seg6_lights_0600DC68.l, 1), + gsSPLight(&cyan_fish_seg6_lights_0600DC68.a, 2), gsSPVertex(cyan_fish_seg6_vertex_0600DC80, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 0, 4, 1, 0x0, 4, 0, 3, 0x0), @@ -68,14 +63,10 @@ const Gfx cyan_fish_seg6_dl_0600DDD8[] = { }; // 0x0600DE38 -static const Ambient cyan_fish_seg6_light_0600DE38 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0600DE40 -static const Light cyan_fish_seg6_light_0600DE40 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 cyan_fish_seg6_lights_0600DE38 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0600DE50 static const Vtx cyan_fish_seg6_vertex_0600DE50[] = { @@ -90,8 +81,8 @@ const Gfx cyan_fish_seg6_dl_0600DE90[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cyan_fish_seg6_texture_0600D468), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&cyan_fish_seg6_light_0600DE40, 1), - gsSPLight(&cyan_fish_seg6_light_0600DE38, 2), + gsSPLight(&cyan_fish_seg6_lights_0600DE38.l, 1), + gsSPLight(&cyan_fish_seg6_lights_0600DE38.a, 2), gsSPVertex(cyan_fish_seg6_vertex_0600DE50, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSPEndDisplayList(), @@ -116,14 +107,10 @@ const Gfx cyan_fish_seg6_dl_0600DED8[] = { }; // 0x0600DF48 -static const Ambient cyan_fish_seg6_light_0600DF48 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0600DF50 -static const Light cyan_fish_seg6_light_0600DF50 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 cyan_fish_seg6_lights_0600DF48 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0600DF60 static const Vtx cyan_fish_seg6_vertex_0600DF60[] = { @@ -140,8 +127,8 @@ const Gfx cyan_fish_seg6_dl_0600DFC0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cyan_fish_seg6_texture_0600D468), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&cyan_fish_seg6_light_0600DF50, 1), - gsSPLight(&cyan_fish_seg6_light_0600DF48, 2), + gsSPLight(&cyan_fish_seg6_lights_0600DF48.l, 1), + gsSPLight(&cyan_fish_seg6_lights_0600DF48.a, 2), gsSPVertex(cyan_fish_seg6_vertex_0600DF60, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), gsSP2Triangles( 1, 4, 2, 0x0, 0, 3, 1, 0x0), diff --git a/actors/dirt/model.inc.c b/actors/dirt/model.inc.c index c7f83c8..7f646cf 100644 --- a/actors/dirt/model.inc.c +++ b/actors/dirt/model.inc.c @@ -1,44 +1,28 @@ // Dirt // 0x0302BD68 -static const Ambient dirt_seg3_light_0302BD68 = { - {{0x3f, 0x19, 0x19}, 0, {0x3f, 0x19, 0x19}, 0} -}; - -// 0x0302BD70 -static const Light dirt_seg3_light_0302BD70 = { - {{0xff, 0x64, 0x64}, 0, {0xff, 0x64, 0x64}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 dirt_seg3_lights_0302BD68 = gdSPDefLights1( + 0x3f, 0x19, 0x19, + 0xff, 0x64, 0x64, 0x28, 0x28, 0x28 +); // 0x0302BD80 -static const Ambient dirt_seg3_light_0302BD80 = { - {{0x19, 0x3f, 0x19}, 0, {0x19, 0x3f, 0x19}, 0} -}; - -// 0x0302BD88 -static const Light dirt_seg3_light_0302BD88 = { - {{0x64, 0xff, 0x64}, 0, {0x64, 0xff, 0x64}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 dirt_seg3_lights_0302BD80 = gdSPDefLights1( + 0x19, 0x3f, 0x19, + 0x64, 0xff, 0x64, 0x28, 0x28, 0x28 +); // 0x0302BD98 -static const Ambient dirt_seg3_light_0302BD98 = { - {{0x19, 0x19, 0x3f}, 0, {0x19, 0x19, 0x3f}, 0} -}; - -// 0x0302BDA0 -static const Light dirt_seg3_light_0302BDA0 = { - {{0x64, 0x64, 0xff}, 0, {0x64, 0x64, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 dirt_seg3_lights_0302BD98 = gdSPDefLights1( + 0x19, 0x19, 0x3f, + 0x64, 0x64, 0xff, 0x28, 0x28, 0x28 +); // 0x0302BDB0 -static const Ambient dirt_seg3_light_0302BDB0 = { - {{0x3f, 0x3f, 0x19}, 0, {0x3f, 0x3f, 0x19}, 0} -}; - -// 0x0302BDB8 -static const Light dirt_seg3_light_0302BDB8 = { - {{0xff, 0xff, 0x64}, 0, {0xff, 0xff, 0x64}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 dirt_seg3_lights_0302BDB0 = gdSPDefLights1( + 0x3f, 0x3f, 0x19, + 0xff, 0xff, 0x64, 0x28, 0x28, 0x28 +); // 0x0302BDC8 static const Vtx dirt_seg3_vertex_0302BDC8[] = { @@ -136,32 +120,32 @@ const Gfx dirt_seg3_dl_0302C238[] = { // 0x0302C298 - 0x0302C2B8 const Gfx dirt_seg3_dl_0302C298[] = { - gsSPLight(&dirt_seg3_light_0302BD70, 1), - gsSPLight(&dirt_seg3_light_0302BD68, 2), + gsSPLight(&dirt_seg3_lights_0302BD68.l, 1), + gsSPLight(&dirt_seg3_lights_0302BD68.a, 2), gsSPDisplayList(dirt_seg3_dl_0302C238), gsSPEndDisplayList(), }; // 0x0302C2B8 - 0x0302C2D8 const Gfx dirt_seg3_dl_0302C2B8[] = { - gsSPLight(&dirt_seg3_light_0302BD88, 1), - gsSPLight(&dirt_seg3_light_0302BD80, 2), + gsSPLight(&dirt_seg3_lights_0302BD80.l, 1), + gsSPLight(&dirt_seg3_lights_0302BD80.a, 2), gsSPDisplayList(dirt_seg3_dl_0302C238), gsSPEndDisplayList(), }; // 0x0302C2D8 - 0x0302C2F8 const Gfx dirt_seg3_dl_0302C2D8[] = { - gsSPLight(&dirt_seg3_light_0302BDA0, 1), - gsSPLight(&dirt_seg3_light_0302BD98, 2), + gsSPLight(&dirt_seg3_lights_0302BD98.l, 1), + gsSPLight(&dirt_seg3_lights_0302BD98.a, 2), gsSPDisplayList(dirt_seg3_dl_0302C238), gsSPEndDisplayList(), }; // 0x0302C2F8 - 0x0302C318 const Gfx dirt_seg3_dl_0302C2F8[] = { - gsSPLight(&dirt_seg3_light_0302BDB8, 1), - gsSPLight(&dirt_seg3_light_0302BDB0, 2), + gsSPLight(&dirt_seg3_lights_0302BDB0.l, 1), + gsSPLight(&dirt_seg3_lights_0302BDB0.a, 2), gsSPDisplayList(dirt_seg3_dl_0302C238), gsSPEndDisplayList(), }; @@ -180,8 +164,8 @@ const Gfx dirt_seg3_dl_0302C318[] = { // 0x0302C378 - 0x0302C3B0 const Gfx dirt_seg3_dl_0302C378[] = { - gsSPLight(&dirt_seg3_light_0302BD70, 1), - gsSPLight(&dirt_seg3_light_0302BD68, 2), + gsSPLight(&dirt_seg3_lights_0302BD68.l, 1), + gsSPLight(&dirt_seg3_lights_0302BD68.a, 2), gsSPClearGeometryMode(G_CULL_BACK), gsSPVertex(dirt_seg3_vertex_0302C098, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), @@ -191,8 +175,8 @@ const Gfx dirt_seg3_dl_0302C378[] = { // 0x0302C3B0 - 0x0302C3E8 const Gfx dirt_seg3_dl_0302C3B0[] = { - gsSPLight(&dirt_seg3_light_0302BD88, 1), - gsSPLight(&dirt_seg3_light_0302BD80, 2), + gsSPLight(&dirt_seg3_lights_0302BD80.l, 1), + gsSPLight(&dirt_seg3_lights_0302BD80.a, 2), gsSPClearGeometryMode(G_CULL_BACK), gsSPVertex(dirt_seg3_vertex_0302C098, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), @@ -202,8 +186,8 @@ const Gfx dirt_seg3_dl_0302C3B0[] = { // 0x0302C3E8 - 0x0302C420 const Gfx dirt_seg3_dl_0302C3E8[] = { - gsSPLight(&dirt_seg3_light_0302BDA0, 1), - gsSPLight(&dirt_seg3_light_0302BD98, 2), + gsSPLight(&dirt_seg3_lights_0302BD98.l, 1), + gsSPLight(&dirt_seg3_lights_0302BD98.a, 2), gsSPClearGeometryMode(G_CULL_BACK), gsSPVertex(dirt_seg3_vertex_0302C098, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), @@ -213,8 +197,8 @@ const Gfx dirt_seg3_dl_0302C3E8[] = { // 0x0302C420 - 0x0302C458 const Gfx dirt_seg3_dl_0302C420[] = { - gsSPLight(&dirt_seg3_light_0302BDB8, 1), - gsSPLight(&dirt_seg3_light_0302BDB0, 2), + gsSPLight(&dirt_seg3_lights_0302BDB0.l, 1), + gsSPLight(&dirt_seg3_lights_0302BDB0.a, 2), gsSPClearGeometryMode(G_CULL_BACK), gsSPVertex(dirt_seg3_vertex_0302C098, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), diff --git a/actors/door/model.inc.c b/actors/door/model.inc.c index f52d8a4..0b39b7d 100644 --- a/actors/door/model.inc.c +++ b/actors/door/model.inc.c @@ -1,24 +1,16 @@ // Door // 0x03009CE0 -static const Ambient door_seg3_light_03009CE0 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x03009CE8 -static const Light door_seg3_light_03009CE8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 door_seg3_lights_03009CE0 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x03009CF8 -static const Ambient door_seg3_light_03009CF8 = { - {{0x3f, 0x3f, 0x00}, 0, {0x3f, 0x3f, 0x00}, 0} -}; - -// 0x03009D00 -static const Light door_seg3_light_03009D00 = { - {{0xff, 0xff, 0x00}, 0, {0xff, 0xff, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 door_seg3_lights_03009CF8 = gdSPDefLights1( + 0x3f, 0x3f, 0x00, + 0xff, 0xff, 0x00, 0x28, 0x28, 0x28 +); // 0x03009D10 ALIGNED8 static const u8 door_seg3_texture_03009D10[] = { @@ -159,8 +151,8 @@ const Gfx door_seg3_dl_03013C10[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_0300AD10), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&door_seg3_light_03009CE8, 1), - gsSPLight(&door_seg3_light_03009CE0, 2), + gsSPLight(&door_seg3_lights_03009CE0.l, 1), + gsSPLight(&door_seg3_lights_03009CE0.a, 2), gsSPVertex(door_seg3_vertex_03013910, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -177,8 +169,8 @@ const Gfx door_seg3_dl_03013C10[] = { // 0x03013CC8 - 0x03013D78 const Gfx door_seg3_dl_03013CC8[] = { - gsSPLight(&door_seg3_light_03009D00, 1), - gsSPLight(&door_seg3_light_03009CF8, 2), + gsSPLight(&door_seg3_lights_03009CF8.l, 1), + gsSPLight(&door_seg3_lights_03009CF8.a, 2), gsSPVertex(door_seg3_vertex_03013A90, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), gsSP2Triangles( 2, 1, 3, 0x0, 5, 2, 4, 0x0), @@ -194,8 +186,8 @@ const Gfx door_seg3_dl_03013CC8[] = { // 0x03013D78 - 0x03013E28 const Gfx door_seg3_dl_03013D78[] = { - gsSPLight(&door_seg3_light_03009D00, 1), - gsSPLight(&door_seg3_light_03009CF8, 2), + gsSPLight(&door_seg3_lights_03009CF8.l, 1), + gsSPLight(&door_seg3_lights_03009CF8.a, 2), gsSPVertex(door_seg3_vertex_03013B50, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 0, 3, 4, 0x0, 0, 5, 1, 0x0), @@ -285,16 +277,16 @@ const Gfx door_seg3_dl_03014020[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_03009D10), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&door_seg3_light_03009CE8, 1), - gsSPLight(&door_seg3_light_03009CE0, 2), + gsSPLight(&door_seg3_lights_03009CE0.l, 1), + gsSPLight(&door_seg3_lights_03009CE0.a, 2), gsSPVertex(door_seg3_vertex_03013F20, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPLight(&door_seg3_light_03009D00, 1), - gsSPLight(&door_seg3_light_03009CF8, 2), + gsSPLight(&door_seg3_lights_03009CF8.l, 1), + gsSPLight(&door_seg3_lights_03009CF8.a, 2), gsSPVertex(door_seg3_vertex_03013FA0, 8, 0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), gsSPSetGeometryMode(G_SHADING_SMOOTH), @@ -342,8 +334,8 @@ const Gfx door_seg3_dl_030141C0[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&door_seg3_light_03009CE8, 1), - gsSPLight(&door_seg3_light_03009CE0, 2), + gsSPLight(&door_seg3_lights_03009CE0.l, 1), + gsSPLight(&door_seg3_lights_03009CE0.a, 2), gsSPEndDisplayList(), }; @@ -454,8 +446,8 @@ const Gfx door_seg3_dl_03014470[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_03013510), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&door_seg3_light_03009CE8, 1), - gsSPLight(&door_seg3_light_03009CE0, 2), + gsSPLight(&door_seg3_lights_03009CE0.l, 1), + gsSPLight(&door_seg3_lights_03009CE0.a, 2), gsSPEndDisplayList(), }; @@ -579,8 +571,8 @@ const Gfx door_seg3_dl_03014888[] = { // 0x030149C0 - 0x03014A20 const Gfx door_seg3_dl_030149C0[] = { - gsSPLight(&door_seg3_light_03009CE8, 1), - gsSPLight(&door_seg3_light_03009CE0, 2), + gsSPLight(&door_seg3_lights_03009CE0.l, 1), + gsSPLight(&door_seg3_lights_03009CE0.a, 2), gsSPVertex(door_seg3_vertex_03014558, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -628,8 +620,8 @@ const Gfx door_seg3_dl_03014A80[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPLight(&door_seg3_light_03009D00, 1), - gsSPLight(&door_seg3_light_03009CF8, 2), + gsSPLight(&door_seg3_lights_03009CF8.l, 1), + gsSPLight(&door_seg3_lights_03009CF8.a, 2), gsSPBranchList(door_seg3_dl_03014888), }; @@ -654,8 +646,8 @@ const Gfx door_seg3_dl_03014B30[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPLight(&door_seg3_light_03009D00, 1), - gsSPLight(&door_seg3_light_03009CF8, 2), + gsSPLight(&door_seg3_lights_03009CF8.l, 1), + gsSPLight(&door_seg3_lights_03009CF8.a, 2), gsSPBranchList(door_seg3_dl_03014888), }; @@ -680,8 +672,8 @@ const Gfx door_seg3_dl_03014BE0[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPLight(&door_seg3_light_03009D00, 1), - gsSPLight(&door_seg3_light_03009CF8, 2), + gsSPLight(&door_seg3_lights_03009CF8.l, 1), + gsSPLight(&door_seg3_lights_03009CF8.a, 2), gsSPBranchList(door_seg3_dl_03014888), }; @@ -706,8 +698,8 @@ const Gfx door_seg3_dl_03014C90[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPLight(&door_seg3_light_03009D00, 1), - gsSPLight(&door_seg3_light_03009CF8, 2), + gsSPLight(&door_seg3_lights_03009CF8.l, 1), + gsSPLight(&door_seg3_lights_03009CF8.a, 2), gsSPBranchList(door_seg3_dl_03014888), }; @@ -732,8 +724,8 @@ const Gfx door_seg3_dl_03014D40[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPLight(&door_seg3_light_03009D00, 1), - gsSPLight(&door_seg3_light_03009CF8, 2), + gsSPLight(&door_seg3_lights_03009CF8.l, 1), + gsSPLight(&door_seg3_lights_03009CF8.a, 2), gsSPBranchList(door_seg3_dl_03014888), }; @@ -763,8 +755,8 @@ static const Vtx door_seg3_vertex_03014E70[] = { // 0x03014EF0 - 0x03014F30 const Gfx door_seg3_dl_03014EF0[] = { - gsSPLight(&door_seg3_light_03009CE8, 1), - gsSPLight(&door_seg3_light_03009CE0, 2), + gsSPLight(&door_seg3_lights_03009CE0.l, 1), + gsSPLight(&door_seg3_lights_03009CE0.a, 2), gsSPVertex(door_seg3_vertex_03014DF0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -803,8 +795,8 @@ const Gfx door_seg3_dl_03014F98[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPLight(&door_seg3_light_03009D00, 1), - gsSPLight(&door_seg3_light_03009CF8, 2), + gsSPLight(&door_seg3_lights_03009CF8.l, 1), + gsSPLight(&door_seg3_lights_03009CF8.a, 2), gsSPBranchList(door_seg3_dl_03014F30), }; @@ -821,8 +813,8 @@ const Gfx door_seg3_dl_03015008[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPLight(&door_seg3_light_03009D00, 1), - gsSPLight(&door_seg3_light_03009CF8, 2), + gsSPLight(&door_seg3_lights_03009CF8.l, 1), + gsSPLight(&door_seg3_lights_03009CF8.a, 2), gsSPBranchList(door_seg3_dl_03014F30), }; @@ -839,8 +831,8 @@ const Gfx door_seg3_dl_03015078[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPLight(&door_seg3_light_03009D00, 1), - gsSPLight(&door_seg3_light_03009CF8, 2), + gsSPLight(&door_seg3_lights_03009CF8.l, 1), + gsSPLight(&door_seg3_lights_03009CF8.a, 2), gsSPBranchList(door_seg3_dl_03014F30), }; @@ -857,8 +849,8 @@ const Gfx door_seg3_dl_030150E8[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPLight(&door_seg3_light_03009D00, 1), - gsSPLight(&door_seg3_light_03009CF8, 2), + gsSPLight(&door_seg3_lights_03009CF8.l, 1), + gsSPLight(&door_seg3_lights_03009CF8.a, 2), gsSPBranchList(door_seg3_dl_03014F30), }; @@ -875,7 +867,7 @@ const Gfx door_seg3_dl_03015158[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPLight(&door_seg3_light_03009D00, 1), - gsSPLight(&door_seg3_light_03009CF8, 2), + gsSPLight(&door_seg3_lights_03009CF8.l, 1), + gsSPLight(&door_seg3_lights_03009CF8.a, 2), gsSPBranchList(door_seg3_dl_03014F30), }; diff --git a/actors/dorrie/model.inc.c b/actors/dorrie/model.inc.c index b390e63..6c9044d 100644 --- a/actors/dorrie/model.inc.c +++ b/actors/dorrie/model.inc.c @@ -16,14 +16,10 @@ ALIGNED8 static const u8 dorrie_seg6_texture_0600ADA0[] = { }; // 0x0600B5A0 -static const Ambient dorrie_seg6_light_0600B5A0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0600B5A8 -static const Light dorrie_seg6_light_0600B5A8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 dorrie_seg6_lights_0600B5A0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0600B5B8 static const Vtx dorrie_seg6_vertex_0600B5B8[] = { @@ -97,8 +93,8 @@ const Gfx dorrie_seg6_dl_0600B8E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dorrie_seg6_texture_0600ADA0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&dorrie_seg6_light_0600B5A8, 1), - gsSPLight(&dorrie_seg6_light_0600B5A0, 2), + gsSPLight(&dorrie_seg6_lights_0600B5A0.l, 1), + gsSPLight(&dorrie_seg6_lights_0600B5A0.a, 2), gsSPVertex(dorrie_seg6_vertex_0600B5B8, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 1, 4, 5, 0x0, 1, 3, 4, 0x0), @@ -171,14 +167,10 @@ const Gfx dorrie_seg6_dl_0600BAF8[] = { }; // 0x0600BBC0 -static const Ambient dorrie_seg6_light_0600BBC0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0600BBC8 -static const Light dorrie_seg6_light_0600BBC8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 dorrie_seg6_lights_0600BBC0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0600BBD8 static const Vtx dorrie_seg6_vertex_0600BBD8[] = { @@ -238,8 +230,8 @@ const Gfx dorrie_seg6_dl_0600BE68[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dorrie_seg6_texture_0600ADA0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&dorrie_seg6_light_0600BBC8, 1), - gsSPLight(&dorrie_seg6_light_0600BBC0, 2), + gsSPLight(&dorrie_seg6_lights_0600BBC0.l, 1), + gsSPLight(&dorrie_seg6_lights_0600BBC0.a, 2), gsSPVertex(dorrie_seg6_vertex_0600BBD8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 0, 3, 0x0, 0, 5, 1, 0x0), @@ -306,14 +298,10 @@ const Gfx dorrie_seg6_dl_0600C030[] = { }; // 0x0600C0F8 -static const Ambient dorrie_seg6_light_0600C0F8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0600C100 -static const Light dorrie_seg6_light_0600C100 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 dorrie_seg6_lights_0600C0F8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0600C110 static const Vtx dorrie_seg6_vertex_0600C110[] = { @@ -360,8 +348,8 @@ const Gfx dorrie_seg6_dl_0600C310[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dorrie_seg6_texture_06009DA0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&dorrie_seg6_light_0600C100, 1), - gsSPLight(&dorrie_seg6_light_0600C0F8, 2), + gsSPLight(&dorrie_seg6_lights_0600C0F8.l, 1), + gsSPLight(&dorrie_seg6_lights_0600C0F8.a, 2), gsSPVertex(dorrie_seg6_vertex_0600C110, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 4, 7, 0x0, 4, 8, 7, 0x0), @@ -411,14 +399,10 @@ const Gfx dorrie_seg6_dl_0600C468[] = { }; // 0x0600C510 -static const Ambient dorrie_seg6_light_0600C510 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0600C518 -static const Light dorrie_seg6_light_0600C518 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 dorrie_seg6_lights_0600C510 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0600C528 static const Vtx dorrie_seg6_vertex_0600C528[] = { @@ -472,8 +456,8 @@ const Gfx dorrie_seg6_dl_0600C758[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dorrie_seg6_texture_06009DA0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&dorrie_seg6_light_0600C518, 1), - gsSPLight(&dorrie_seg6_light_0600C510, 2), + gsSPLight(&dorrie_seg6_lights_0600C510.l, 1), + gsSPLight(&dorrie_seg6_lights_0600C510.a, 2), gsSPVertex(dorrie_seg6_vertex_0600C528, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 5, 4, 6, 0x0), @@ -524,14 +508,10 @@ const Gfx dorrie_seg6_dl_0600C8B8[] = { }; // 0x0600C960 -static const Ambient dorrie_seg6_light_0600C960 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0600C968 -static const Light dorrie_seg6_light_0600C968 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 dorrie_seg6_lights_0600C960 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0600C978 static const Vtx dorrie_seg6_vertex_0600C978[] = { @@ -629,8 +609,8 @@ const Gfx dorrie_seg6_dl_0600CDE8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dorrie_seg6_texture_06009DA0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&dorrie_seg6_light_0600C968, 1), - gsSPLight(&dorrie_seg6_light_0600C960, 2), + gsSPLight(&dorrie_seg6_lights_0600C960.l, 1), + gsSPLight(&dorrie_seg6_lights_0600C960.a, 2), gsSPVertex(dorrie_seg6_vertex_0600C978, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 2, 4, 5, 0x0, 2, 5, 0, 0x0), @@ -691,14 +671,10 @@ const Gfx dorrie_seg6_dl_0600CFD0[] = { }; // 0x0600D078 -static const Ambient dorrie_seg6_light_0600D078 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0600D080 -static const Light dorrie_seg6_light_0600D080 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 dorrie_seg6_lights_0600D078 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0600D090 static const Vtx dorrie_seg6_vertex_0600D090[] = { @@ -756,8 +732,8 @@ const Gfx dorrie_seg6_dl_0600D300[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dorrie_seg6_texture_06009DA0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&dorrie_seg6_light_0600D080, 1), - gsSPLight(&dorrie_seg6_light_0600D078, 2), + gsSPLight(&dorrie_seg6_lights_0600D078.l, 1), + gsSPLight(&dorrie_seg6_lights_0600D078.a, 2), gsSPVertex(dorrie_seg6_vertex_0600D090, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), gsSP2Triangles( 2, 4, 5, 0x0, 2, 5, 0, 0x0), @@ -806,14 +782,10 @@ const Gfx dorrie_seg6_dl_0600D440[] = { }; // 0x0600D4E8 -static const Ambient dorrie_seg6_light_0600D4E8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0600D4F0 -static const Light dorrie_seg6_light_0600D4F0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 dorrie_seg6_lights_0600D4E8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0600D500 static const Vtx dorrie_seg6_vertex_0600D500[] = { @@ -846,8 +818,8 @@ const Gfx dorrie_seg6_dl_0600D620[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dorrie_seg6_texture_06009DA0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&dorrie_seg6_light_0600D4F0, 1), - gsSPLight(&dorrie_seg6_light_0600D4E8, 2), + gsSPLight(&dorrie_seg6_lights_0600D4E8.l, 1), + gsSPLight(&dorrie_seg6_lights_0600D4E8.a, 2), gsSPVertex(dorrie_seg6_vertex_0600D500, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 1, 4, 5, 0x0, 3, 4, 1, 0x0), @@ -887,14 +859,10 @@ const Gfx dorrie_seg6_dl_0600D6D8[] = { }; // 0x0600D780 -static const Ambient dorrie_seg6_light_0600D780 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0600D788 -static const Light dorrie_seg6_light_0600D788 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 dorrie_seg6_lights_0600D780 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0600D798 static const Vtx dorrie_seg6_vertex_0600D798[] = { @@ -913,8 +881,8 @@ const Gfx dorrie_seg6_dl_0600D818[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dorrie_seg6_texture_06009DA0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&dorrie_seg6_light_0600D788, 1), - gsSPLight(&dorrie_seg6_light_0600D780, 2), + gsSPLight(&dorrie_seg6_lights_0600D780.l, 1), + gsSPLight(&dorrie_seg6_lights_0600D780.a, 2), gsSPVertex(dorrie_seg6_vertex_0600D798, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 2, 0x0), gsSP2Triangles( 2, 1, 5, 0x0, 2, 6, 3, 0x0), @@ -951,14 +919,10 @@ const Gfx dorrie_seg6_dl_0600D8B0[] = { }; // 0x0600D958 -static const Ambient dorrie_seg6_light_0600D958 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0600D960 -static const Light dorrie_seg6_light_0600D960 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 dorrie_seg6_lights_0600D958 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0600D970 static const Vtx dorrie_seg6_vertex_0600D970[] = { @@ -977,8 +941,8 @@ const Gfx dorrie_seg6_dl_0600D9F0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dorrie_seg6_texture_06009DA0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&dorrie_seg6_light_0600D960, 1), - gsSPLight(&dorrie_seg6_light_0600D958, 2), + gsSPLight(&dorrie_seg6_lights_0600D958.l, 1), + gsSPLight(&dorrie_seg6_lights_0600D958.a, 2), gsSPVertex(dorrie_seg6_vertex_0600D970, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), gsSP2Triangles( 1, 5, 3, 0x0, 2, 1, 4, 0x0), @@ -1015,14 +979,10 @@ const Gfx dorrie_seg6_dl_0600DA88[] = { }; // 0x0600DB30 -static const Ambient dorrie_seg6_light_0600DB30 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0600DB38 -static const Light dorrie_seg6_light_0600DB38 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 dorrie_seg6_lights_0600DB30 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0600DB48 static const Vtx dorrie_seg6_vertex_0600DB48[] = { @@ -1041,8 +1001,8 @@ const Gfx dorrie_seg6_dl_0600DBC8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dorrie_seg6_texture_06009DA0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&dorrie_seg6_light_0600DB38, 1), - gsSPLight(&dorrie_seg6_light_0600DB30, 2), + gsSPLight(&dorrie_seg6_lights_0600DB30.l, 1), + gsSPLight(&dorrie_seg6_lights_0600DB30.a, 2), gsSPVertex(dorrie_seg6_vertex_0600DB48, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 4, 2, 1, 0x0, 1, 3, 4, 0x0), @@ -1079,14 +1039,10 @@ const Gfx dorrie_seg6_dl_0600DC60[] = { }; // 0x0600DD08 -static const Ambient dorrie_seg6_light_0600DD08 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0600DD10 -static const Light dorrie_seg6_light_0600DD10 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 dorrie_seg6_lights_0600DD08 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0600DD20 static const Vtx dorrie_seg6_vertex_0600DD20[] = { @@ -1105,8 +1061,8 @@ const Gfx dorrie_seg6_dl_0600DDA0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dorrie_seg6_texture_06009DA0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&dorrie_seg6_light_0600DD10, 1), - gsSPLight(&dorrie_seg6_light_0600DD08, 2), + gsSPLight(&dorrie_seg6_lights_0600DD08.l, 1), + gsSPLight(&dorrie_seg6_lights_0600DD08.a, 2), gsSPVertex(dorrie_seg6_vertex_0600DD20, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 0, 4, 5, 0x0, 0, 6, 3, 0x0), diff --git a/actors/exclamation_box/model.inc.c b/actors/exclamation_box/model.inc.c index 71d6f41..e50b8c5 100644 --- a/actors/exclamation_box/model.inc.c +++ b/actors/exclamation_box/model.inc.c @@ -1,14 +1,10 @@ // Exclamation Box // 0x08012E10 -static const Ambient exclamation_box_seg8_light_08012E10 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x08012E18 -static const Light exclamation_box_seg8_light_08012E18 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 exclamation_box_seg8_lights_08012E10 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x08012E28 ALIGNED8 static const u8 exclamation_box_seg8_texture_08012E28[] = { @@ -84,8 +80,8 @@ static const Vtx exclamation_box_seg8_vertex_08018F28[] = { // 0x08018FA8 - 0x08019008 const Gfx exclamation_box_seg8_dl_08018FA8[] = { - gsSPLight(&exclamation_box_seg8_light_08012E18, 1), - gsSPLight(&exclamation_box_seg8_light_08012E10, 2), + gsSPLight(&exclamation_box_seg8_lights_08012E10.l, 1), + gsSPLight(&exclamation_box_seg8_lights_08012E10.a, 2), gsSPVertex(exclamation_box_seg8_vertex_08018E28, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -153,8 +149,8 @@ static const Vtx exclamation_box_seg8_vertex_080191A0[] = { // 0x08019220 - 0x08019280 const Gfx exclamation_box_seg8_dl_08019220[] = { - gsSPLight(&exclamation_box_seg8_light_08012E18, 1), - gsSPLight(&exclamation_box_seg8_light_08012E10, 2), + gsSPLight(&exclamation_box_seg8_lights_08012E10.l, 1), + gsSPLight(&exclamation_box_seg8_lights_08012E10.a, 2), gsSPVertex(exclamation_box_seg8_vertex_080190A0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/actors/exclamation_box_outline/model.inc.c b/actors/exclamation_box_outline/model.inc.c index 63fbe3a..f0f2d4a 100644 --- a/actors/exclamation_box_outline/model.inc.c +++ b/actors/exclamation_box_outline/model.inc.c @@ -1,44 +1,28 @@ // Exclamation Box Outline // 0x08024CB8 -static const Ambient exclamation_box_outline_seg8_light_08024CB8 = { - {{0x7f, 0x00, 0x00}, 0, {0x7f, 0x00, 0x00}, 0} -}; - -// 0x08024CC0 -static const Light exclamation_box_outline_seg8_light_08024CC0 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 exclamation_box_outline_seg8_lights_08024CB8 = gdSPDefLights1( + 0x7f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x08024CD0 -static const Ambient exclamation_box_outline_seg8_light_08024CD0 = { - {{0x00, 0x7f, 0x00}, 0, {0x00, 0x7f, 0x00}, 0} -}; - -// 0x08024CD8 -static const Light exclamation_box_outline_seg8_light_08024CD8 = { - {{0x00, 0xff, 0x00}, 0, {0x00, 0xff, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 exclamation_box_outline_seg8_lights_08024CD0 = gdSPDefLights1( + 0x00, 0x7f, 0x00, + 0x00, 0xff, 0x00, 0x28, 0x28, 0x28 +); // 0x08024CE8 -static const Ambient exclamation_box_outline_seg8_light_08024CE8 = { - {{0x00, 0x00, 0x7f}, 0, {0x00, 0x00, 0x7f}, 0} -}; - -// 0x08024CF0 -static const Light exclamation_box_outline_seg8_light_08024CF0 = { - {{0x00, 0x00, 0xff}, 0, {0x00, 0x00, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 exclamation_box_outline_seg8_lights_08024CE8 = gdSPDefLights1( + 0x00, 0x00, 0x7f, + 0x00, 0x00, 0xff, 0x28, 0x28, 0x28 +); // 0x08024D00 -static const Ambient exclamation_box_outline_seg8_light_08024D00 = { - {{0x7f, 0x6a, 0x00}, 0, {0x7f, 0x6a, 0x00}, 0} -}; - -// 0x08024D08 -static const Light exclamation_box_outline_seg8_light_08024D08 = { - {{0xff, 0xd4, 0x00}, 0, {0xff, 0xd4, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 exclamation_box_outline_seg8_lights_08024D00 = gdSPDefLights1( + 0x7f, 0x6a, 0x00, + 0xff, 0xd4, 0x00, 0x28, 0x28, 0x28 +); // 0x08024D18 static const Vtx exclamation_box_outline_seg8_vertex_08024D18[] = { @@ -110,32 +94,32 @@ const Gfx exclamation_box_outline_seg8_dl_08024F58[] = { // 0x08024F88 - 0x08024FA8 const Gfx exclamation_box_outline_seg8_dl_08024F88[] = { gsSPDisplayList(exclamation_box_outline_seg8_dl_08024F30), - gsSPLight(&exclamation_box_outline_seg8_light_08024CC0, 1), - gsSPLight(&exclamation_box_outline_seg8_light_08024CB8, 2), + gsSPLight(&exclamation_box_outline_seg8_lights_08024CB8.l, 1), + gsSPLight(&exclamation_box_outline_seg8_lights_08024CB8.a, 2), gsSPBranchList(exclamation_box_outline_seg8_dl_08024F58), }; // 0x08024FA8 - 0x08024FC8 const Gfx exclamation_box_outline_seg8_dl_08024FA8[] = { gsSPDisplayList(exclamation_box_outline_seg8_dl_08024F30), - gsSPLight(&exclamation_box_outline_seg8_light_08024CD8, 1), - gsSPLight(&exclamation_box_outline_seg8_light_08024CD0, 2), + gsSPLight(&exclamation_box_outline_seg8_lights_08024CD0.l, 1), + gsSPLight(&exclamation_box_outline_seg8_lights_08024CD0.a, 2), gsSPBranchList(exclamation_box_outline_seg8_dl_08024F58), }; // 0x08024FC8 - 0x08024FE8 const Gfx exclamation_box_outline_seg8_dl_08024FC8[] = { gsSPDisplayList(exclamation_box_outline_seg8_dl_08024F30), - gsSPLight(&exclamation_box_outline_seg8_light_08024CF0, 1), - gsSPLight(&exclamation_box_outline_seg8_light_08024CE8, 2), + gsSPLight(&exclamation_box_outline_seg8_lights_08024CE8.l, 1), + gsSPLight(&exclamation_box_outline_seg8_lights_08024CE8.a, 2), gsSPBranchList(exclamation_box_outline_seg8_dl_08024F58), }; // 0x08024FE8 - 0x08025008 const Gfx exclamation_box_outline_seg8_dl_08024FE8[] = { gsSPDisplayList(exclamation_box_outline_seg8_dl_08024F30), - gsSPLight(&exclamation_box_outline_seg8_light_08024D08, 1), - gsSPLight(&exclamation_box_outline_seg8_light_08024D00, 2), + gsSPLight(&exclamation_box_outline_seg8_lights_08024D00.l, 1), + gsSPLight(&exclamation_box_outline_seg8_lights_08024D00.a, 2), gsSPBranchList(exclamation_box_outline_seg8_dl_08024F58), }; @@ -209,14 +193,10 @@ const Gfx exclamation_box_outline_seg8_dl_080259F8[] = { }; // 0x08025A68 -static const Ambient exclamation_box_outline_seg8_light_08025A68 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x08025A70 -static const Light exclamation_box_outline_seg8_light_08025A70 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 exclamation_box_outline_seg8_lights_08025A68 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x08025A80 ALIGNED8 static const u8 exclamation_box_outline_seg8_texture_08025A80[] = { @@ -236,8 +216,8 @@ const Gfx exclamation_box_outline_seg8_dl_08025EC0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, exclamation_box_outline_seg8_texture_08025A80), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&exclamation_box_outline_seg8_light_08025A70, 1), - gsSPLight(&exclamation_box_outline_seg8_light_08025A68, 2), + gsSPLight(&exclamation_box_outline_seg8_lights_08025A68.l, 1), + gsSPLight(&exclamation_box_outline_seg8_lights_08025A68.a, 2), gsSPVertex(exclamation_box_outline_seg8_vertex_08025E80, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/actors/eyerok/model.inc.c b/actors/eyerok/model.inc.c index 30f0dd9..0b684c4 100644 --- a/actors/eyerok/model.inc.c +++ b/actors/eyerok/model.inc.c @@ -1,14 +1,10 @@ // Eyerok -// Unreferenced light -UNUSED static const Ambient eyerok_light_1 = { - {{0x3f, 0x2a, 0x16}, 0, {0x3f, 0x2a, 0x16}, 0} -}; - -// Unreferenced light -UNUSED static const Light eyerok_light_2 = { - {{0xff, 0xa9, 0x5b}, 0, {0xff, 0xa9, 0x5b}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 eyerok_lights_unused = gdSPDefLights1( + 0x3f, 0x2a, 0x16, + 0xff, 0xa9, 0x5b, 0x28, 0x28, 0x28 +); // 0x05008D40 ALIGNED8 static const u8 eyerok_seg5_texture_05008D40[] = { @@ -36,14 +32,10 @@ ALIGNED8 static const u8 eyerok_seg5_texture_0500AD40[] = { }; // 0x0500B540 -static const Ambient eyerok_seg5_light_0500B540 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500B548 -static const Light eyerok_seg5_light_0500B548 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 eyerok_seg5_lights_0500B540 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500B558 static const Vtx eyerok_seg5_vertex_0500B558[] = { @@ -80,8 +72,8 @@ const Gfx eyerok_seg5_dl_0500B6B8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, eyerok_seg5_texture_05008D40), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&eyerok_seg5_light_0500B548, 1), - gsSPLight(&eyerok_seg5_light_0500B540, 2), + gsSPLight(&eyerok_seg5_lights_0500B540.l, 1), + gsSPLight(&eyerok_seg5_lights_0500B540.a, 2), gsSPVertex(eyerok_seg5_vertex_0500B558, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 7, 8, 9, 0x0), @@ -112,14 +104,10 @@ const Gfx eyerok_seg5_dl_0500B748[] = { }; // 0x0500B7B8 -static const Ambient eyerok_seg5_light_0500B7B8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500B7C0 -static const Light eyerok_seg5_light_0500B7C0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 eyerok_seg5_lights_0500B7B8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500B7D0 static const Vtx eyerok_seg5_vertex_0500B7D0[] = { @@ -156,8 +144,8 @@ const Gfx eyerok_seg5_dl_0500B930[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, eyerok_seg5_texture_05008D40), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&eyerok_seg5_light_0500B7C0, 1), - gsSPLight(&eyerok_seg5_light_0500B7B8, 2), + gsSPLight(&eyerok_seg5_lights_0500B7B8.l, 1), + gsSPLight(&eyerok_seg5_lights_0500B7B8.a, 2), gsSPVertex(eyerok_seg5_vertex_0500B7D0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -188,14 +176,10 @@ const Gfx eyerok_seg5_dl_0500B9C0[] = { }; // 0x0500BA30 -static const Ambient eyerok_seg5_light_0500BA30 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500BA38 -static const Light eyerok_seg5_light_0500BA38 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 eyerok_seg5_lights_0500BA30 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500BA48 static const Vtx eyerok_seg5_vertex_0500BA48[] = { @@ -236,8 +220,8 @@ const Gfx eyerok_seg5_dl_0500BBE8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, eyerok_seg5_texture_05008D40), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&eyerok_seg5_light_0500BA38, 1), - gsSPLight(&eyerok_seg5_light_0500BA30, 2), + gsSPLight(&eyerok_seg5_lights_0500BA30.l, 1), + gsSPLight(&eyerok_seg5_lights_0500BA30.a, 2), gsSPVertex(eyerok_seg5_vertex_0500BA48, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -269,14 +253,10 @@ const Gfx eyerok_seg5_dl_0500BC88[] = { }; // 0x0500BCF8 -static const Ambient eyerok_seg5_light_0500BCF8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500BD00 -static const Light eyerok_seg5_light_0500BD00 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 eyerok_seg5_lights_0500BCF8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500BD10 static const Vtx eyerok_seg5_vertex_0500BD10[] = { @@ -313,8 +293,8 @@ const Gfx eyerok_seg5_dl_0500BE70[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, eyerok_seg5_texture_05008D40), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&eyerok_seg5_light_0500BD00, 1), - gsSPLight(&eyerok_seg5_light_0500BCF8, 2), + gsSPLight(&eyerok_seg5_lights_0500BCF8.l, 1), + gsSPLight(&eyerok_seg5_lights_0500BCF8.a, 2), gsSPVertex(eyerok_seg5_vertex_0500BD10, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -345,14 +325,10 @@ const Gfx eyerok_seg5_dl_0500BF00[] = { }; // 0x0500BF70 -static const Ambient eyerok_seg5_light_0500BF70 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500BF78 -static const Light eyerok_seg5_light_0500BF78 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 eyerok_seg5_lights_0500BF70 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500BF88 static const Vtx eyerok_seg5_vertex_0500BF88[] = { @@ -379,8 +355,8 @@ const Gfx eyerok_seg5_dl_0500C088[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, eyerok_seg5_texture_05008D40), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&eyerok_seg5_light_0500BF78, 1), - gsSPLight(&eyerok_seg5_light_0500BF70, 2), + gsSPLight(&eyerok_seg5_lights_0500BF70.l, 1), + gsSPLight(&eyerok_seg5_lights_0500BF70.a, 2), gsSPVertex(eyerok_seg5_vertex_0500BF88, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -408,14 +384,10 @@ const Gfx eyerok_seg5_dl_0500C100[] = { }; // 0x0500C170 -static const Ambient eyerok_seg5_light_0500C170 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500C178 -static const Light eyerok_seg5_light_0500C178 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 eyerok_seg5_lights_0500C170 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500C188 static const Vtx eyerok_seg5_vertex_0500C188[] = { @@ -452,8 +424,8 @@ const Gfx eyerok_seg5_dl_0500C2E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, eyerok_seg5_texture_05008D40), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&eyerok_seg5_light_0500C178, 1), - gsSPLight(&eyerok_seg5_light_0500C170, 2), + gsSPLight(&eyerok_seg5_lights_0500C170.l, 1), + gsSPLight(&eyerok_seg5_lights_0500C170.a, 2), gsSPVertex(eyerok_seg5_vertex_0500C188, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -484,14 +456,10 @@ const Gfx eyerok_seg5_dl_0500C378[] = { }; // 0x0500C3E8 -static const Ambient eyerok_seg5_light_0500C3E8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500C3F0 -static const Light eyerok_seg5_light_0500C3F0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 eyerok_seg5_lights_0500C3E8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500C400 static const Vtx eyerok_seg5_vertex_0500C400[] = { @@ -532,8 +500,8 @@ const Gfx eyerok_seg5_dl_0500C5A0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, eyerok_seg5_texture_05008D40), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&eyerok_seg5_light_0500C3F0, 1), - gsSPLight(&eyerok_seg5_light_0500C3E8, 2), + gsSPLight(&eyerok_seg5_lights_0500C3E8.l, 1), + gsSPLight(&eyerok_seg5_lights_0500C3E8.a, 2), gsSPVertex(eyerok_seg5_vertex_0500C400, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -565,14 +533,10 @@ const Gfx eyerok_seg5_dl_0500C640[] = { }; // 0x0500C6B0 -static const Ambient eyerok_seg5_light_0500C6B0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500C6B8 -static const Light eyerok_seg5_light_0500C6B8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 eyerok_seg5_lights_0500C6B0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500C6C8 static const Vtx eyerok_seg5_vertex_0500C6C8[] = { @@ -613,8 +577,8 @@ const Gfx eyerok_seg5_dl_0500C868[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, eyerok_seg5_texture_05008D40), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&eyerok_seg5_light_0500C6B8, 1), - gsSPLight(&eyerok_seg5_light_0500C6B0, 2), + gsSPLight(&eyerok_seg5_lights_0500C6B0.l, 1), + gsSPLight(&eyerok_seg5_lights_0500C6B0.a, 2), gsSPVertex(eyerok_seg5_vertex_0500C6C8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/actors/flyguy/model.inc.c b/actors/flyguy/model.inc.c index 3fcaafc..05e3824 100644 --- a/actors/flyguy/model.inc.c +++ b/actors/flyguy/model.inc.c @@ -18,75 +18,47 @@ ALIGNED8 static const u8 flyguy_seg8_texture_0800F888[] = { #include "actors/flyguy/flyguy_propeller.ia16.inc.c" }; -// Unreferenced light -UNUSED static const Ambient flyguy_light_1 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// Unreferenced light -UNUSED static const Light flyguy_light_2 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 flyguy_lights_unused1 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x080100A0 -static const Ambient flyguy_seg8_light_080100A0 = { - {{0x00, 0x1f, 0x33}, 0, {0x00, 0x1f, 0x33}, 0} -}; - -// 0x080100A8 -static const Light flyguy_seg8_light_080100A8 = { - {{0x02, 0x7f, 0xcc}, 0, {0x02, 0x7f, 0xcc}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 flyguy_seg8_lights_080100A0 = gdSPDefLights1( + 0x00, 0x1f, 0x33, + 0x02, 0x7f, 0xcc, 0x28, 0x28, 0x28 +); // 0x080100B8 -static const Ambient flyguy_seg8_light_080100B8 = { - {{0x3f, 0x32, 0x08}, 0, {0x3f, 0x32, 0x08}, 0} -}; +static const Lights1 flyguy_seg8_lights_080100B8 = gdSPDefLights1( + 0x3f, 0x32, 0x08, + 0xff, 0xc8, 0x23, 0x28, 0x28, 0x28 +); -// 0x080100C0 -static const Light flyguy_seg8_light_080100C0 = { - {{0xff, 0xc8, 0x23}, 0, {0xff, 0xc8, 0x23}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 flyguy_lights_unused2 = gdSPDefLights1( + 0x3a, 0x2f, 0x04, + 0xe8, 0xbd, 0x13, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient flyguy_light_3 = { - {{0x3a, 0x2f, 0x04}, 0, {0x3a, 0x2f, 0x04}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 flyguy_lights_unused3 = gdSPDefLights1( + 0x2c, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light flyguy_light_4 = { - {{0xe8, 0xbd, 0x13}, 0, {0xe8, 0xbd, 0x13}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 flyguy_lights_unused4 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient flyguy_light_5 = { - {{0x2c, 0x00, 0x00}, 0, {0x2c, 0x00, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light flyguy_light_6 = { - {{0xb2, 0x00, 0x00}, 0, {0xb2, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient flyguy_light_7 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// Unreferenced light -UNUSED static const Light flyguy_light_8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient flyguy_light_9 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light flyguy_light_10 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 flyguy_lights_unused5 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x08010130 static const Vtx flyguy_seg8_vertex_08010130[] = { @@ -239,8 +211,8 @@ static const Vtx flyguy_seg8_vertex_08010770[] = { // 0x08010840 - 0x08010968 const Gfx flyguy_seg8_dl_08010840[] = { - gsSPLight(&flyguy_seg8_light_080100A8, 1), - gsSPLight(&flyguy_seg8_light_080100A0, 2), + gsSPLight(&flyguy_seg8_lights_080100A0.l, 1), + gsSPLight(&flyguy_seg8_lights_080100A0.a, 2), gsSPVertex(flyguy_seg8_vertex_08010130, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), @@ -266,8 +238,8 @@ const Gfx flyguy_seg8_dl_08010840[] = { // 0x08010968 - 0x08010A90 const Gfx flyguy_seg8_dl_08010968[] = { - gsSPLight(&flyguy_seg8_light_080100A8, 1), - gsSPLight(&flyguy_seg8_light_080100A0, 2), + gsSPLight(&flyguy_seg8_lights_080100A0.l, 1), + gsSPLight(&flyguy_seg8_lights_080100A0.a, 2), gsSPVertex(flyguy_seg8_vertex_08010460, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -293,8 +265,8 @@ const Gfx flyguy_seg8_dl_08010968[] = { // 0x08010A90 - 0x08010AE0 const Gfx flyguy_seg8_dl_08010A90[] = { - gsSPLight(&flyguy_seg8_light_080100C0, 1), - gsSPLight(&flyguy_seg8_light_080100B8, 2), + gsSPLight(&flyguy_seg8_lights_080100B8.l, 1), + gsSPLight(&flyguy_seg8_lights_080100B8.a, 2), gsSPVertex(flyguy_seg8_vertex_08010770, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 0, 2, 0x0, 7, 8, 9, 0x0), @@ -303,14 +275,10 @@ const Gfx flyguy_seg8_dl_08010A90[] = { }; // 0x08010AE0 -static const Ambient flyguy_seg8_light_08010AE0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x08010AE8 -static const Light flyguy_seg8_light_08010AE8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 flyguy_seg8_lights_08010AE0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x08010AF8 static const Vtx flyguy_seg8_vertex_08010AF8[] = { @@ -325,8 +293,8 @@ const Gfx flyguy_seg8_dl_08010B38[] = { gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, flyguy_seg8_texture_0800F888), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&flyguy_seg8_light_08010AE8, 1), - gsSPLight(&flyguy_seg8_light_08010AE0, 2), + gsSPLight(&flyguy_seg8_lights_08010AE0.l, 1), + gsSPLight(&flyguy_seg8_lights_08010AE0.a, 2), gsSPVertex(flyguy_seg8_vertex_08010AF8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -351,34 +319,22 @@ const Gfx flyguy_seg8_dl_08010B80[] = { }; // 0x08010BF0 -static const Ambient flyguy_seg8_light_08010BF0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x08010BF8 -static const Light flyguy_seg8_light_08010BF8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 flyguy_seg8_lights_08010BF0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x08010C08 -static const Ambient flyguy_seg8_light_08010C08 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x08010C10 -static const Light flyguy_seg8_light_08010C10 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 flyguy_seg8_lights_08010C08 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x08010C20 -static const Ambient flyguy_seg8_light_08010C20 = { - {{0x62, 0x00, 0x13}, 0, {0x62, 0x00, 0x13}, 0} -}; - -// 0x08010C28 -static const Light flyguy_seg8_light_08010C28 = { - {{0xc4, 0x00, 0x26}, 0, {0xc4, 0x00, 0x26}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 flyguy_seg8_lights_08010C20 = gdSPDefLights1( + 0x62, 0x00, 0x13, + 0xc4, 0x00, 0x26, 0x28, 0x28, 0x28 +); // 0x08010C38 static const Vtx flyguy_seg8_vertex_08010C38[] = { @@ -544,8 +500,8 @@ const Gfx flyguy_seg8_dl_080113A8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, flyguy_seg8_texture_0800F088), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&flyguy_seg8_light_08010BF8, 1), - gsSPLight(&flyguy_seg8_light_08010BF0, 2), + gsSPLight(&flyguy_seg8_lights_08010BF0.l, 1), + gsSPLight(&flyguy_seg8_lights_08010BF0.a, 2), gsSPVertex(flyguy_seg8_vertex_08010C38, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 1, 0, 0x0, 2, 5, 0, 0x0), @@ -559,12 +515,12 @@ const Gfx flyguy_seg8_dl_08011420[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, flyguy_seg8_texture_0800E088), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&flyguy_seg8_light_08010C10, 1), - gsSPLight(&flyguy_seg8_light_08010C08, 2), + gsSPLight(&flyguy_seg8_lights_08010C08.l, 1), + gsSPLight(&flyguy_seg8_lights_08010C08.a, 2), gsSPVertex(flyguy_seg8_vertex_08010CC8, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&flyguy_seg8_light_08010C28, 1), - gsSPLight(&flyguy_seg8_light_08010C20, 2), + gsSPLight(&flyguy_seg8_lights_08010C20.l, 1), + gsSPLight(&flyguy_seg8_lights_08010C20.a, 2), gsSPVertex(flyguy_seg8_vertex_08010D28, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), gsSP2Triangles( 1, 5, 3, 0x0, 1, 4, 2, 0x0), @@ -613,8 +569,8 @@ const Gfx flyguy_seg8_dl_08011420[] = { // 0x080116D0 - 0x08011710 const Gfx flyguy_seg8_dl_080116D0[] = { - gsSPLight(&flyguy_seg8_light_08010C10, 1), - gsSPLight(&flyguy_seg8_light_08010C08, 2), + gsSPLight(&flyguy_seg8_lights_08010C08.l, 1), + gsSPLight(&flyguy_seg8_lights_08010C08.a, 2), gsSPVertex(flyguy_seg8_vertex_08011348, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 1, 4, 2, 0x0, 1, 5, 4, 0x0), diff --git a/actors/goomba/model.inc.c b/actors/goomba/model.inc.c index 451e717..a68a9bf 100644 --- a/actors/goomba/model.inc.c +++ b/actors/goomba/model.inc.c @@ -1,64 +1,40 @@ // Goomba -// Unreferenced light -UNUSED static const Ambient goomba_light_1 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 goomba_lights_unused1 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light goomba_light_2 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient goomba_light_3 = { - {{0x2c, 0x2c, 0x2c}, 0, {0x2c, 0x2c, 0x2c}, 0} -}; - -// Unreferenced light -UNUSED static const Light goomba_light_4 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 goomba_lights_unused2 = gdSPDefLights1( + 0x2c, 0x2c, 0x2c, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); // 0x080194D0 -static const Ambient goomba_seg8_light_080194D0 = { - {{0x15, 0x0b, 0x04}, 0, {0x15, 0x0b, 0x04}, 0} -}; - -// 0x080194D8 -static const Light goomba_seg8_light_080194D8 = { - {{0x54, 0x2e, 0x10}, 0, {0x54, 0x2e, 0x10}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 goomba_seg8_lights_080194D0 = gdSPDefLights1( + 0x15, 0x0b, 0x04, + 0x54, 0x2e, 0x10, 0x28, 0x28, 0x28 +); // 0x080194E8 -static const Ambient goomba_seg8_light_080194E8 = { - {{0x18, 0x0d, 0x04}, 0, {0x18, 0x0d, 0x04}, 0} -}; - -// 0x080194F0 -static const Light goomba_seg8_light_080194F0 = { - {{0x61, 0x34, 0x13}, 0, {0x61, 0x34, 0x13}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 goomba_seg8_lights_080194E8 = gdSPDefLights1( + 0x18, 0x0d, 0x04, + 0x61, 0x34, 0x13, 0x28, 0x28, 0x28 +); // 0x08019500 -static const Ambient goomba_seg8_light_08019500 = { - {{0x1d, 0x10, 0x08}, 0, {0x1d, 0x10, 0x08}, 0} -}; - -// 0x08019508 -static const Light goomba_seg8_light_08019508 = { - {{0x77, 0x42, 0x20}, 0, {0x77, 0x42, 0x20}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 goomba_seg8_lights_08019500 = gdSPDefLights1( + 0x1d, 0x10, 0x08, + 0x77, 0x42, 0x20, 0x28, 0x28, 0x28 +); // 0x08019518 -static const Ambient goomba_seg8_light_08019518 = { - {{0x37, 0x2d, 0x13}, 0, {0x37, 0x2d, 0x13}, 0} -}; - -// 0x08019520 -static const Light goomba_seg8_light_08019520 = { - {{0xde, 0xb4, 0x4e}, 0, {0xde, 0xb4, 0x4e}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 goomba_seg8_lights_08019518 = gdSPDefLights1( + 0x37, 0x2d, 0x13, + 0xde, 0xb4, 0x4e, 0x28, 0x28, 0x28 +); // 0x08019530 ALIGNED8 static const u8 goomba_seg8_texture_08019530[] = { @@ -76,14 +52,10 @@ ALIGNED8 static const u8 goomba_seg8_texture_0801A530[] = { }; // 0x0801AD30 -static const Ambient goomba_seg8_light_0801AD30 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0801AD38 -static const Light goomba_seg8_light_0801AD38 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 goomba_seg8_lights_0801AD30 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0801AD48 static const Vtx goomba_seg8_vertex_0801AD48[] = { @@ -201,8 +173,8 @@ static const Vtx goomba_seg8_vertex_0801B238[] = { // 0x0801B2E8 - 0x0801B560 const Gfx goomba_seg8_dl_0801B2E8[] = { - gsSPLight(&goomba_seg8_light_0801AD38, 1), - gsSPLight(&goomba_seg8_light_0801AD30, 2), + gsSPLight(&goomba_seg8_lights_0801AD30.l, 1), + gsSPLight(&goomba_seg8_lights_0801AD30.a, 2), gsSPVertex(goomba_seg8_vertex_0801AD48, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 5, 4, 0x0, 5, 7, 3, 0x0), @@ -800,8 +772,8 @@ static const Vtx goomba_seg8_vertex_0801CDF0[] = { // 0x0801CE20 - 0x0801CF78 const Gfx goomba_seg8_dl_0801CE20[] = { - gsSPLight(&goomba_seg8_light_080194D8, 1), - gsSPLight(&goomba_seg8_light_080194D0, 2), + gsSPLight(&goomba_seg8_lights_080194D0.l, 1), + gsSPLight(&goomba_seg8_lights_080194D0.a, 2), gsSPVertex(goomba_seg8_vertex_0801B700, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -829,8 +801,8 @@ const Gfx goomba_seg8_dl_0801CE20[] = { // 0x0801CF78 - 0x0801D0D0 const Gfx goomba_seg8_dl_0801CF78[] = { - gsSPLight(&goomba_seg8_light_080194F0, 1), - gsSPLight(&goomba_seg8_light_080194E8, 2), + gsSPLight(&goomba_seg8_lights_080194E8.l, 1), + gsSPLight(&goomba_seg8_lights_080194E8.a, 2), gsSPVertex(goomba_seg8_vertex_0801BA50, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 1, 4, 5, 0x0, 1, 5, 2, 0x0), @@ -858,8 +830,8 @@ const Gfx goomba_seg8_dl_0801CF78[] = { // 0x0801D0D0 - 0x0801D360 const Gfx goomba_seg8_dl_0801D0D0[] = { - gsSPLight(&goomba_seg8_light_08019508, 1), - gsSPLight(&goomba_seg8_light_08019500, 2), + gsSPLight(&goomba_seg8_lights_08019500.l, 1), + gsSPLight(&goomba_seg8_lights_08019500.a, 2), gsSPVertex(goomba_seg8_vertex_0801BDC0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -910,8 +882,8 @@ const Gfx goomba_seg8_dl_0801D0D0[] = { // 0x0801D360 - 0x0801D760 const Gfx goomba_seg8_dl_0801D360[] = { - gsSPLight(&goomba_seg8_light_08019520, 1), - gsSPLight(&goomba_seg8_light_08019518, 2), + gsSPLight(&goomba_seg8_lights_08019518.l, 1), + gsSPLight(&goomba_seg8_lights_08019518.a, 2), gsSPVertex(goomba_seg8_vertex_0801C620, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 1, 0x0, 4, 1, 0, 0x0), @@ -985,6 +957,6 @@ const Gfx goomba_seg8_dl_0801D360[] = { // 0x0801D760 - 0x0801D770 const Gfx goomba_seg8_dl_0801D760[] = { - gsSPNumLights(NUMLIGHTS_0), // I cannot tell if they meant to put 0 or 1 here. + gsSPNumLights(NUMLIGHTS_1), gsSPEndDisplayList(), }; diff --git a/actors/haunted_cage/model.inc.c b/actors/haunted_cage/model.inc.c index 9740ab1..d763de2 100644 --- a/actors/haunted_cage/model.inc.c +++ b/actors/haunted_cage/model.inc.c @@ -1,24 +1,16 @@ // Haunted Cage // 0x0500C258 -static const Ambient haunted_cage_seg5_light_0500C258 = { - {{0x39, 0x0c, 0x0e}, 0, {0x39, 0x0c, 0x0e}, 0} -}; - -// 0x0500C260 -static const Light haunted_cage_seg5_light_0500C260 = { - {{0x90, 0x1e, 0x25}, 0, {0x90, 0x1e, 0x25}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 haunted_cage_seg5_lights_0500C258 = gdSPDefLights1( + 0x39, 0x0c, 0x0e, + 0x90, 0x1e, 0x25, 0x28, 0x28, 0x28 +); // 0x0500C270 -static const Ambient haunted_cage_seg5_light_0500C270 = { - {{0x47, 0x47, 0x47}, 0, {0x47, 0x47, 0x47}, 0} -}; - -// 0x0500C278 -static const Light haunted_cage_seg5_light_0500C278 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 haunted_cage_seg5_lights_0500C270 = gdSPDefLights1( + 0x47, 0x47, 0x47, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); // 0x0500C288 ALIGNED8 static const u8 haunted_cage_seg5_texture_0500C288[] = { @@ -270,8 +262,8 @@ const Gfx haunted_cage_seg5_dl_0500F4C8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, haunted_cage_seg5_texture_0500D288), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&haunted_cage_seg5_light_0500C260, 1), - gsSPLight(&haunted_cage_seg5_light_0500C258, 2), + gsSPLight(&haunted_cage_seg5_lights_0500C258.l, 1), + gsSPLight(&haunted_cage_seg5_lights_0500C258.a, 2), gsSPVertex(haunted_cage_seg5_vertex_0500EA88, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -282,8 +274,8 @@ const Gfx haunted_cage_seg5_dl_0500F4C8[] = { gsSP1Triangle(12, 13, 14, 0x0), gsSPVertex(haunted_cage_seg5_vertex_0500EC68, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&haunted_cage_seg5_light_0500C278, 1), - gsSPLight(&haunted_cage_seg5_light_0500C270, 2), + gsSPLight(&haunted_cage_seg5_lights_0500C270.l, 1), + gsSPLight(&haunted_cage_seg5_lights_0500C270.a, 2), gsSPVertex(haunted_cage_seg5_vertex_0500ECC8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 3, 9, 4, 0x0), @@ -369,14 +361,10 @@ const Gfx haunted_cage_seg5_dl_0500F7D8[] = { }; // 0x0500F888 -static const Ambient haunted_cage_seg5_light_0500F888 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0500F890 -static const Light haunted_cage_seg5_light_0500F890 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 haunted_cage_seg5_lights_0500F888 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500F8A0 static const Vtx haunted_cage_seg5_vertex_0500F8A0[] = { @@ -437,8 +425,8 @@ const Gfx haunted_cage_seg5_dl_0500FB40[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, haunted_cage_seg5_texture_0500D688), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&haunted_cage_seg5_light_0500F890, 1), - gsSPLight(&haunted_cage_seg5_light_0500F888, 2), + gsSPLight(&haunted_cage_seg5_lights_0500F888.l, 1), + gsSPLight(&haunted_cage_seg5_lights_0500F888.a, 2), gsSPVertex(haunted_cage_seg5_vertex_0500F8A0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -475,14 +463,10 @@ const Gfx haunted_cage_seg5_dl_0500FC28[] = { }; // 0x0500FC98 -static const Ambient haunted_cage_seg5_light_0500FC98 = { - {{0x2c, 0x2c, 0x2c}, 0, {0x2c, 0x2c, 0x2c}, 0} -}; - -// 0x0500FCA0 -static const Light haunted_cage_seg5_light_0500FCA0 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 haunted_cage_seg5_lights_0500FC98 = gdSPDefLights1( + 0x2c, 0x2c, 0x2c, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); // 0x0500FCB0 static const Vtx haunted_cage_seg5_vertex_0500FCB0[] = { @@ -557,8 +541,8 @@ const Gfx haunted_cage_seg5_dl_0500FFF0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, haunted_cage_seg5_texture_0500DA88), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&haunted_cage_seg5_light_0500FCA0, 1), - gsSPLight(&haunted_cage_seg5_light_0500FC98, 2), + gsSPLight(&haunted_cage_seg5_lights_0500FC98.l, 1), + gsSPLight(&haunted_cage_seg5_lights_0500FC98.a, 2), gsSPVertex(haunted_cage_seg5_vertex_0500FCB0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/actors/heave_ho/model.inc.c b/actors/heave_ho/model.inc.c index 6c903cc..7007ab0 100644 --- a/actors/heave_ho/model.inc.c +++ b/actors/heave_ho/model.inc.c @@ -1,74 +1,46 @@ // Heave Ho -// Unreferenced light -UNUSED static const Ambient heave_ho_light_1 = { - {{0x2c, 0x2c, 0x2c}, 0, {0x2c, 0x2c, 0x2c}, 0} -}; +// Unreferenced light group +static const Lights1 heave_ho_lights_unused1 = gdSPDefLights1( + 0x2c, 0x2c, 0x2c, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light heave_ho_light_2 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +static const Lights1 heave_ho_lights_unused2 = gdSPDefLights1( + 0x3f, 0x38, 0x00, + 0xff, 0xe3, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient heave_ho_light_3 = { - {{0x3f, 0x38, 0x00}, 0, {0x3f, 0x38, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light heave_ho_light_4 = { - {{0xff, 0xe3, 0x00}, 0, {0xff, 0xe3, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient heave_ho_light_5 = { - {{0x3f, 0x00, 0x00}, 0, {0x3f, 0x00, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light heave_ho_light_6 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +static const Lights1 heave_ho_lights_unused3 = gdSPDefLights1( + 0x3f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x0500E968 -static const Ambient heave_ho_seg5_light_0500E968 = { - {{0x14, 0x14, 0x15}, 0, {0x14, 0x14, 0x15}, 0} -}; - -// 0x0500E970 -static const Light heave_ho_seg5_light_0500E970 = { - {{0x50, 0x50, 0x54}, 0, {0x50, 0x50, 0x54}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 heave_ho_seg5_lights_0500E968 = gdSPDefLights1( + 0x14, 0x14, 0x15, + 0x50, 0x50, 0x54, 0x28, 0x28, 0x28 +); // 0x0500E980 -static const Ambient heave_ho_seg5_light_0500E980 = { - {{0x73, 0x3f, 0x32}, 0, {0x73, 0x3f, 0x32}, 0} -}; +static const Lights1 heave_ho_seg5_lights_0500E980 = gdSPDefLights1( + 0x73, 0x3f, 0x32, + 0xff, 0xe0, 0x85, 0x28, 0x28, 0x28 +); -// 0x0500E988 -static const Light heave_ho_seg5_light_0500E988 = { - {{0xff, 0xe0, 0x85}, 0, {0xff, 0xe0, 0x85}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +static const Lights1 heave_ho_lights_unused4 = gdSPDefLights1( + 0x3b, 0x38, 0x21, + 0xec, 0xe3, 0x84, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient heave_ho_light_7 = { - {{0x3b, 0x38, 0x21}, 0, {0x3b, 0x38, 0x21}, 0} -}; - -// Unreferenced light -UNUSED static const Light heave_ho_light_8 = { - {{0xec, 0xe3, 0x84}, 0, {0xec, 0xe3, 0x84}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient heave_ho_light_9 = { - {{0x32, 0x32, 0x32}, 0, {0x32, 0x32, 0x32}, 0} -}; - -// Unreferenced light -UNUSED static const Light heave_ho_light_10 = { - {{0xc8, 0xc8, 0xc8}, 0, {0xc8, 0xc8, 0xc8}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +static const Lights1 heave_ho_lights_unused5 = gdSPDefLights1( + 0x32, 0x32, 0x32, + 0xc8, 0xc8, 0xc8, 0x28, 0x28, 0x28 +); // 0x0500E9C8 ALIGNED8 static const u8 heave_ho_seg5_texture_0500E9C8[] = { @@ -101,24 +73,16 @@ ALIGNED8 static const u8 heave_ho_seg5_texture_050113C8[] = { }; // 0x05011BC8 -static const Ambient heave_ho_seg5_light_05011BC8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05011BD0 -static const Light heave_ho_seg5_light_05011BD0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 heave_ho_seg5_lights_05011BC8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05011BE0 -static const Ambient heave_ho_seg5_light_05011BE0 = { - {{0x40, 0x00, 0x0d}, 0, {0x40, 0x00, 0x0d}, 0} -}; - -// 0x05011BE8 -static const Light heave_ho_seg5_light_05011BE8 = { - {{0x81, 0x01, 0x1a}, 0, {0x81, 0x01, 0x1a}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 heave_ho_seg5_lights_05011BE0 = gdSPDefLights1( + 0x40, 0x00, 0x0d, + 0x81, 0x01, 0x1a, 0x28, 0x28, 0x28 +); // 0x05011BF8 static const Vtx heave_ho_seg5_vertex_05011BF8[] = { @@ -167,8 +131,8 @@ const Gfx heave_ho_seg5_dl_05011D98[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, heave_ho_seg5_texture_0500E9C8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&heave_ho_seg5_light_05011BD0, 1), - gsSPLight(&heave_ho_seg5_light_05011BC8, 2), + gsSPLight(&heave_ho_seg5_lights_05011BC8.l, 1), + gsSPLight(&heave_ho_seg5_lights_05011BC8.a, 2), gsSPVertex(heave_ho_seg5_vertex_05011BF8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -199,8 +163,8 @@ const Gfx heave_ho_seg5_dl_05011E28[] = { // 0x05011E80 - 0x05011EC0 const Gfx heave_ho_seg5_dl_05011E80[] = { - gsSPLight(&heave_ho_seg5_light_05011BE8, 1), - gsSPLight(&heave_ho_seg5_light_05011BE0, 2), + gsSPLight(&heave_ho_seg5_lights_05011BE0.l, 1), + gsSPLight(&heave_ho_seg5_lights_05011BE0.a, 2), gsSPVertex(heave_ho_seg5_vertex_05011D38, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 3, 4, 5, 0x0, 3, 5, 1, 0x0), @@ -230,24 +194,16 @@ const Gfx heave_ho_seg5_dl_05011EC0[] = { }; // 0x05011F50 -static const Ambient heave_ho_seg5_light_05011F50 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05011F58 -static const Light heave_ho_seg5_light_05011F58 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 heave_ho_seg5_lights_05011F50 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05011F68 -static const Ambient heave_ho_seg5_light_05011F68 = { - {{0x4c, 0x00, 0x16}, 0, {0x4c, 0x00, 0x16}, 0} -}; - -// 0x05011F70 -static const Light heave_ho_seg5_light_05011F70 = { - {{0x99, 0x00, 0x2d}, 0, {0x99, 0x00, 0x2d}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 heave_ho_seg5_lights_05011F68 = gdSPDefLights1( + 0x4c, 0x00, 0x16, + 0x99, 0x00, 0x2d, 0x28, 0x28, 0x28 +); // 0x05011F80 static const Vtx heave_ho_seg5_vertex_05011F80[] = { @@ -280,8 +236,8 @@ const Gfx heave_ho_seg5_dl_050120A0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, heave_ho_seg5_texture_050109C8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&heave_ho_seg5_light_05011F58, 1), - gsSPLight(&heave_ho_seg5_light_05011F50, 2), + gsSPLight(&heave_ho_seg5_lights_05011F50.l, 1), + gsSPLight(&heave_ho_seg5_lights_05011F50.a, 2), gsSPVertex(heave_ho_seg5_vertex_05011F80, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 3, 0x0, 7, 8, 9, 0x0), @@ -291,8 +247,8 @@ const Gfx heave_ho_seg5_dl_050120A0[] = { // 0x05012100 - 0x05012148 const Gfx heave_ho_seg5_dl_05012100[] = { - gsSPLight(&heave_ho_seg5_light_05011F70, 1), - gsSPLight(&heave_ho_seg5_light_05011F68, 2), + gsSPLight(&heave_ho_seg5_lights_05011F68.l, 1), + gsSPLight(&heave_ho_seg5_lights_05011F68.a, 2), gsSPVertex(heave_ho_seg5_vertex_05012030, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 4, 0, 3, 0x0, 3, 5, 4, 0x0), @@ -318,24 +274,16 @@ const Gfx heave_ho_seg5_dl_05012148[] = { }; // 0x050121B0 -static const Ambient heave_ho_seg5_light_050121B0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x050121B8 -static const Light heave_ho_seg5_light_050121B8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 heave_ho_seg5_lights_050121B0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x050121C8 -static const Ambient heave_ho_seg5_light_050121C8 = { - {{0x4c, 0x00, 0x16}, 0, {0x4c, 0x00, 0x16}, 0} -}; - -// 0x050121D0 -static const Light heave_ho_seg5_light_050121D0 = { - {{0x99, 0x00, 0x2d}, 0, {0x99, 0x00, 0x2d}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 heave_ho_seg5_lights_050121C8 = gdSPDefLights1( + 0x4c, 0x00, 0x16, + 0x99, 0x00, 0x2d, 0x28, 0x28, 0x28 +); // 0x050121E0 static const Vtx heave_ho_seg5_vertex_050121E0[] = { @@ -368,8 +316,8 @@ const Gfx heave_ho_seg5_dl_05012300[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, heave_ho_seg5_texture_050109C8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&heave_ho_seg5_light_050121B8, 1), - gsSPLight(&heave_ho_seg5_light_050121B0, 2), + gsSPLight(&heave_ho_seg5_lights_050121B0.l, 1), + gsSPLight(&heave_ho_seg5_lights_050121B0.a, 2), gsSPVertex(heave_ho_seg5_vertex_050121E0, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 3, 0x0, 7, 8, 9, 0x0), @@ -379,8 +327,8 @@ const Gfx heave_ho_seg5_dl_05012300[] = { // 0x05012360 - 0x050123A8 const Gfx heave_ho_seg5_dl_05012360[] = { - gsSPLight(&heave_ho_seg5_light_050121D0, 1), - gsSPLight(&heave_ho_seg5_light_050121C8, 2), + gsSPLight(&heave_ho_seg5_lights_050121C8.l, 1), + gsSPLight(&heave_ho_seg5_lights_050121C8.a, 2), gsSPVertex(heave_ho_seg5_vertex_05012290, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 2, 4, 0x0, 4, 3, 6, 0x0), @@ -406,24 +354,16 @@ const Gfx heave_ho_seg5_dl_050123A8[] = { }; // 0x05012410 -static const Ambient heave_ho_seg5_light_05012410 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05012418 -static const Light heave_ho_seg5_light_05012418 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 heave_ho_seg5_lights_05012410 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05012428 -static const Ambient heave_ho_seg5_light_05012428 = { - {{0x5d, 0x6d, 0x65}, 0, {0x5d, 0x6d, 0x65}, 0} -}; - -// 0x05012430 -static const Light heave_ho_seg5_light_05012430 = { - {{0xbb, 0xda, 0xcb}, 0, {0xbb, 0xda, 0xcb}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 heave_ho_seg5_lights_05012428 = gdSPDefLights1( + 0x5d, 0x6d, 0x65, + 0xbb, 0xda, 0xcb, 0x28, 0x28, 0x28 +); // 0x05012440 static const Vtx heave_ho_seg5_vertex_05012440[] = { @@ -456,8 +396,8 @@ const Gfx heave_ho_seg5_dl_05012560[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, heave_ho_seg5_texture_0500F1C8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&heave_ho_seg5_light_05012418, 1), - gsSPLight(&heave_ho_seg5_light_05012410, 2), + gsSPLight(&heave_ho_seg5_lights_05012410.l, 1), + gsSPLight(&heave_ho_seg5_lights_05012410.a, 2), gsSPVertex(heave_ho_seg5_vertex_05012440, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -465,8 +405,8 @@ const Gfx heave_ho_seg5_dl_05012560[] = { // 0x050125A8 - 0x050125F8 const Gfx heave_ho_seg5_dl_050125A8[] = { - gsSPLight(&heave_ho_seg5_light_05012430, 1), - gsSPLight(&heave_ho_seg5_light_05012428, 2), + gsSPLight(&heave_ho_seg5_lights_05012428.l, 1), + gsSPLight(&heave_ho_seg5_lights_05012428.a, 2), gsSPVertex(heave_ho_seg5_vertex_05012480, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), @@ -530,14 +470,10 @@ const Gfx heave_ho_seg5_dl_050126E8[] = { }; // 0x05012758 -static const Ambient heave_ho_seg5_light_05012758 = { - {{0x93, 0x73, 0x7c}, 0, {0x93, 0x73, 0x7c}, 0} -}; - -// 0x05012760 -static const Light heave_ho_seg5_light_05012760 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 heave_ho_seg5_lights_05012758 = gdSPDefLights1( + 0x93, 0x73, 0x7c, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05012770 static const Vtx heave_ho_seg5_vertex_05012770[] = { @@ -552,8 +488,8 @@ const Gfx heave_ho_seg5_dl_050127B0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, heave_ho_seg5_texture_050113C8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&heave_ho_seg5_light_05012760, 1), - gsSPLight(&heave_ho_seg5_light_05012758, 2), + gsSPLight(&heave_ho_seg5_lights_05012758.l, 1), + gsSPLight(&heave_ho_seg5_lights_05012758.a, 2), gsSPVertex(heave_ho_seg5_vertex_05012770, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSPEndDisplayList(), @@ -1085,8 +1021,8 @@ static const Vtx heave_ho_seg5_vertex_05014128[] = { // 0x05014188 - 0x05014560 const Gfx heave_ho_seg5_dl_05014188[] = { - gsSPLight(&heave_ho_seg5_light_0500E970, 1), - gsSPLight(&heave_ho_seg5_light_0500E968, 2), + gsSPLight(&heave_ho_seg5_lights_0500E968.l, 1), + gsSPLight(&heave_ho_seg5_lights_0500E968.a, 2), gsSPVertex(heave_ho_seg5_vertex_05012868, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 1, 3, 4, 0x0, 4, 3, 5, 0x0), @@ -1156,8 +1092,8 @@ const Gfx heave_ho_seg5_dl_05014188[] = { // 0x05014560 - 0x050145D0 const Gfx heave_ho_seg5_dl_05014560[] = { - gsSPLight(&heave_ho_seg5_light_0500E988, 1), - gsSPLight(&heave_ho_seg5_light_0500E980, 2), + gsSPLight(&heave_ho_seg5_lights_0500E980.l, 1), + gsSPLight(&heave_ho_seg5_lights_0500E980.a, 2), gsSPVertex(heave_ho_seg5_vertex_05013068, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 3, 6, 0x0, 5, 7, 3, 0x0), @@ -1169,8 +1105,8 @@ const Gfx heave_ho_seg5_dl_05014560[] = { // 0x050145D0 - 0x050149A8 const Gfx heave_ho_seg5_dl_050145D0[] = { - gsSPLight(&heave_ho_seg5_light_0500E970, 1), - gsSPLight(&heave_ho_seg5_light_0500E968, 2), + gsSPLight(&heave_ho_seg5_lights_0500E968.l, 1), + gsSPLight(&heave_ho_seg5_lights_0500E968.a, 2), gsSPVertex(heave_ho_seg5_vertex_05013128, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 1, 3, 4, 0x0, 4, 3, 5, 0x0), @@ -1240,8 +1176,8 @@ const Gfx heave_ho_seg5_dl_050145D0[] = { // 0x050149A8 - 0x05014D80 const Gfx heave_ho_seg5_dl_050149A8[] = { - gsSPLight(&heave_ho_seg5_light_0500E970, 1), - gsSPLight(&heave_ho_seg5_light_0500E968, 2), + gsSPLight(&heave_ho_seg5_lights_0500E968.l, 1), + gsSPLight(&heave_ho_seg5_lights_0500E968.a, 2), gsSPVertex(heave_ho_seg5_vertex_05013928, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 1, 3, 4, 0x0, 4, 3, 5, 0x0), @@ -1311,8 +1247,8 @@ const Gfx heave_ho_seg5_dl_050149A8[] = { // 0x05014D80 - 0x05014DD0 const Gfx heave_ho_seg5_dl_05014D80[] = { - gsSPLight(&heave_ho_seg5_light_0500E988, 1), - gsSPLight(&heave_ho_seg5_light_0500E980, 2), + gsSPLight(&heave_ho_seg5_lights_0500E980.l, 1), + gsSPLight(&heave_ho_seg5_lights_0500E980.a, 2), gsSPVertex(heave_ho_seg5_vertex_05014128, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), gsSP2Triangles( 4, 3, 5, 0x0, 0, 2, 5, 0x0), diff --git a/actors/hoot/model.inc.c b/actors/hoot/model.inc.c index d3cf6c1..ebffc2a 100644 --- a/actors/hoot/model.inc.c +++ b/actors/hoot/model.inc.c @@ -1,124 +1,76 @@ // Hoot // 0x05000900 -static const Ambient hoot_seg5_light_05000900 = { - {{0x30, 0x1b, 0x0f}, 0, {0x30, 0x1b, 0x0f}, 0} -}; +static const Lights1 hoot_seg5_lights_05000900 = gdSPDefLights1( + 0x30, 0x1b, 0x0f, + 0xc0, 0x6e, 0x3d, 0x28, 0x28, 0x28 +); -// 0x05000908 -static const Light hoot_seg5_light_05000908 = { - {{0xc0, 0x6e, 0x3d}, 0, {0xc0, 0x6e, 0x3d}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient hoot_light_1 = { - {{0x37, 0x27, 0x0b}, 0, {0x37, 0x27, 0x0b}, 0} -}; - -// Unreferenced light -UNUSED static const Light hoot_light_2 = { - {{0xdd, 0x9d, 0x2d}, 0, {0xdd, 0x9d, 0x2d}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 hoot_lights_unused1 = gdSPDefLights1( + 0x37, 0x27, 0x0b, + 0xdd, 0x9d, 0x2d, 0x28, 0x28, 0x28 +); // 0x05000930 -static const Ambient hoot_seg5_light_05000930 = { - {{0x36, 0x26, 0x11}, 0, {0x36, 0x26, 0x11}, 0} -}; - -// 0x05000938 -static const Light hoot_seg5_light_05000938 = { - {{0xdb, 0x99, 0x46}, 0, {0xdb, 0x99, 0x46}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 hoot_seg5_lights_05000930 = gdSPDefLights1( + 0x36, 0x26, 0x11, + 0xdb, 0x99, 0x46, 0x28, 0x28, 0x28 +); // 0x05000948 -static const Ambient hoot_seg5_light_05000948 = { - {{0x06, 0x06, 0x06}, 0, {0x06, 0x06, 0x06}, 0} -}; - -// 0x05000950 -static const Light hoot_seg5_light_05000950 = { - {{0x19, 0x19, 0x19}, 0, {0x19, 0x19, 0x19}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 hoot_seg5_lights_05000948 = gdSPDefLights1( + 0x06, 0x06, 0x06, + 0x19, 0x19, 0x19, 0x28, 0x28, 0x28 +); // 0x05000960 -static const Ambient hoot_seg5_light_05000960 = { - {{0x1d, 0x0a, 0x05}, 0, {0x1d, 0x0a, 0x05}, 0} -}; - -// 0x05000968 -static const Light hoot_seg5_light_05000968 = { - {{0x77, 0x2a, 0x16}, 0, {0x77, 0x2a, 0x16}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 hoot_seg5_lights_05000960 = gdSPDefLights1( + 0x1d, 0x0a, 0x05, + 0x77, 0x2a, 0x16, 0x28, 0x28, 0x28 +); // 0x05000978 -static const Ambient hoot_seg5_light_05000978 = { - {{0x06, 0x06, 0x06}, 0, {0x06, 0x06, 0x06}, 0} -}; +static const Lights1 hoot_seg5_lights_05000978 = gdSPDefLights1( + 0x06, 0x06, 0x06, + 0x19, 0x19, 0x19, 0x28, 0x28, 0x28 +); -// 0x05000980 -static const Light hoot_seg5_light_05000980 = { - {{0x19, 0x19, 0x19}, 0, {0x19, 0x19, 0x19}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 hoot_lights_unused2 = gdSPDefLights1( + 0x39, 0x27, 0x0a, + 0xe6, 0x9d, 0x29, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient hoot_light_3 = { - {{0x39, 0x27, 0x0a}, 0, {0x39, 0x27, 0x0a}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 hoot_lights_unused3 = gdSPDefLights1( + 0x1d, 0x06, 0x3b, + 0x75, 0x18, 0xef, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light hoot_light_4 = { - {{0xe6, 0x9d, 0x29}, 0, {0xe6, 0x9d, 0x29}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient hoot_light_5 = { - {{0x1d, 0x06, 0x3b}, 0, {0x1d, 0x06, 0x3b}, 0} -}; - -// Unreferenced light -UNUSED static const Light hoot_light_6 = { - {{0x75, 0x18, 0xef}, 0, {0x75, 0x18, 0xef}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient hoot_light_7 = { - {{0x3a, 0x29, 0x09}, 0, {0x3a, 0x29, 0x09}, 0} -}; - -// Unreferenced light -UNUSED static const Light hoot_light_8 = { - {{0xeb, 0xa6, 0x27}, 0, {0xeb, 0xa6, 0x27}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 hoot_lights_unused4 = gdSPDefLights1( + 0x3a, 0x29, 0x09, + 0xeb, 0xa6, 0x27, 0x28, 0x28, 0x28 +); // 0x050009D8 -static const Ambient hoot_seg5_light_050009D8 = { - {{0x18, 0x07, 0x03}, 0, {0x18, 0x07, 0x03}, 0} -}; - -// 0x050009E0 -static const Light hoot_seg5_light_050009E0 = { - {{0x63, 0x1e, 0x0f}, 0, {0x63, 0x1e, 0x0f}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 hoot_seg5_lights_050009D8 = gdSPDefLights1( + 0x18, 0x07, 0x03, + 0x63, 0x1e, 0x0f, 0x28, 0x28, 0x28 +); // 0x050009F0 -static const Ambient hoot_seg5_light_050009F0 = { - {{0x3f, 0x3a, 0x09}, 0, {0x3f, 0x3a, 0x09}, 0} -}; - -// 0x050009F8 -static const Light hoot_seg5_light_050009F8 = { - {{0xfe, 0xea, 0x26}, 0, {0xfe, 0xea, 0x26}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 hoot_seg5_lights_050009F0 = gdSPDefLights1( + 0x3f, 0x3a, 0x09, + 0xfe, 0xea, 0x26, 0x28, 0x28, 0x28 +); // 0x05000A08 -static const Ambient hoot_seg5_light_05000A08 = { - {{0x13, 0x0d, 0x0b}, 0, {0x13, 0x0d, 0x0b}, 0} -}; - -// 0x05000A10 -static const Light hoot_seg5_light_05000A10 = { - {{0x4d, 0x35, 0x2e}, 0, {0x4d, 0x35, 0x2e}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 hoot_seg5_lights_05000A08 = gdSPDefLights1( + 0x13, 0x0d, 0x0b, + 0x4d, 0x35, 0x2e, 0x28, 0x28, 0x28 +); // 0x05000A20 ALIGNED8 static const u8 hoot_seg5_texture_05000A20[] = { @@ -322,8 +274,8 @@ static const Vtx hoot_seg5_vertex_05001A90[] = { // 0x05001B80 - 0x05001C00 const Gfx hoot_seg5_dl_05001B80[] = { gsDPLoadTextureBlock(hoot_seg5_texture_05000A20, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 5, G_TX_NOLOD, G_TX_NOLOD), - gsSPLight(&hoot_seg5_light_050009E0, 1), - gsSPLight(&hoot_seg5_light_050009D8, 2), + gsSPLight(&hoot_seg5_lights_050009D8.l, 1), + gsSPLight(&hoot_seg5_lights_050009D8.a, 2), gsSPVertex(hoot_seg5_vertex_05001220, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -333,17 +285,17 @@ const Gfx hoot_seg5_dl_05001B80[] = { // 0x05001C00 - 0x05001DF0 const Gfx hoot_seg5_dl_05001C00[] = { - gsSPLight(&hoot_seg5_light_050009F8, 1), - gsSPLight(&hoot_seg5_light_050009F0, 2), + gsSPLight(&hoot_seg5_lights_050009F0.l, 1), + gsSPLight(&hoot_seg5_lights_050009F0.a, 2), gsSPVertex(hoot_seg5_vertex_05001310, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), - gsSPLight(&hoot_seg5_light_05000A10, 1), - gsSPLight(&hoot_seg5_light_05000A08, 2), + gsSPLight(&hoot_seg5_lights_05000A08.l, 1), + gsSPLight(&hoot_seg5_lights_05000A08.a, 2), gsSPVertex(hoot_seg5_vertex_050013D0, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), - gsSPLight(&hoot_seg5_light_050009E0, 1), - gsSPLight(&hoot_seg5_light_050009D8, 2), + gsSPLight(&hoot_seg5_lights_050009D8.l, 1), + gsSPLight(&hoot_seg5_lights_050009D8.a, 2), gsSPVertex(hoot_seg5_vertex_05001400, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -393,14 +345,10 @@ const Gfx hoot_seg5_dl_05001DF0[] = { }; // 0x05001E38 -static const Ambient hoot_seg5_light_05001E38 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05001E40 -static const Light hoot_seg5_light_05001E40 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 hoot_seg5_lights_05001E38 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05001E50 ALIGNED8 static const u8 hoot_seg5_texture_05001E50[] = { @@ -438,8 +386,8 @@ const Gfx hoot_seg5_dl_05002EB0[] = { gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&hoot_seg5_light_05001E40, 1), - gsSPLight(&hoot_seg5_light_05001E38, 2), + gsSPLight(&hoot_seg5_lights_05001E38.l, 1), + gsSPLight(&hoot_seg5_lights_05001E38.a, 2), gsSPVertex(hoot_seg5_vertex_05002E50, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), @@ -460,14 +408,10 @@ const Gfx hoot_seg5_dl_05002F10[] = { }; // 0x05002F60 -static const Ambient hoot_seg5_light_05002F60 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05002F68 -static const Light hoot_seg5_light_05002F68 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 hoot_seg5_lights_05002F60 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // //! The vertex macro which calls this has too large of a size. // 0x05002F78 @@ -495,8 +439,8 @@ const Gfx hoot_seg5_dl_05002FD8[] = { gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&hoot_seg5_light_05002F68, 1), - gsSPLight(&hoot_seg5_light_05002F60, 2), + gsSPLight(&hoot_seg5_lights_05002F60.l, 1), + gsSPLight(&hoot_seg5_lights_05002F60.a, 2), gsSPVertex(hoot_seg5_vertex_05002F78, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), @@ -517,14 +461,10 @@ const Gfx hoot_seg5_dl_05003038[] = { }; // 0x05003088 -static const Ambient hoot_seg5_light_05003088 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05003090 -static const Light hoot_seg5_light_05003090 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 hoot_seg5_lights_05003088 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // //! The vertex macro which calls this has too large of a size. // 0x050030A0 @@ -552,8 +492,8 @@ const Gfx hoot_seg5_dl_05003100[] = { gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&hoot_seg5_light_05003090, 1), - gsSPLight(&hoot_seg5_light_05003088, 2), + gsSPLight(&hoot_seg5_lights_05003088.l, 1), + gsSPLight(&hoot_seg5_lights_05003088.a, 2), gsSPVertex(hoot_seg5_vertex_050030A0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), @@ -574,14 +514,10 @@ const Gfx hoot_seg5_dl_05003160[] = { }; // 0x050031B0 -static const Ambient hoot_seg5_light_050031B0 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x050031B8 -static const Light hoot_seg5_light_050031B8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 hoot_seg5_lights_050031B0 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // //! The vertex macro which calls this has too large of a size. // 0x050031C8 @@ -609,8 +545,8 @@ const Gfx hoot_seg5_dl_05003228[] = { gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&hoot_seg5_light_050031B8, 1), - gsSPLight(&hoot_seg5_light_050031B0, 2), + gsSPLight(&hoot_seg5_lights_050031B0.l, 1), + gsSPLight(&hoot_seg5_lights_050031B0.a, 2), gsSPVertex(hoot_seg5_vertex_050031C8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), @@ -631,14 +567,10 @@ const Gfx hoot_seg5_dl_05003288[] = { }; // 0x050032D8 -static const Ambient hoot_seg5_light_050032D8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x050032E0 -static const Light hoot_seg5_light_050032E0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 hoot_seg5_lights_050032D8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // //! The vertex macro which calls this has too large of a size. // 0x050032F0 @@ -666,8 +598,8 @@ const Gfx hoot_seg5_dl_05003350[] = { gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&hoot_seg5_light_050032E0, 1), - gsSPLight(&hoot_seg5_light_050032D8, 2), + gsSPLight(&hoot_seg5_lights_050032D8.l, 1), + gsSPLight(&hoot_seg5_lights_050032D8.a, 2), gsSPVertex(hoot_seg5_vertex_050032F0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), @@ -688,14 +620,10 @@ const Gfx hoot_seg5_dl_050033B0[] = { }; // 0x05003400 -static const Ambient hoot_seg5_light_05003400 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05003408 -static const Light hoot_seg5_light_05003408 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 hoot_seg5_lights_05003400 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // //! The vertex macro which calls this has too large of a size. // 0x05003418 @@ -723,8 +651,8 @@ const Gfx hoot_seg5_dl_05003478[] = { gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&hoot_seg5_light_05003408, 1), - gsSPLight(&hoot_seg5_light_05003400, 2), + gsSPLight(&hoot_seg5_lights_05003400.l, 1), + gsSPLight(&hoot_seg5_lights_05003400.a, 2), gsSPVertex(hoot_seg5_vertex_05003418, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), @@ -745,14 +673,10 @@ const Gfx hoot_seg5_dl_050034D8[] = { }; // 0x05003528 -static const Ambient hoot_seg5_light_05003528 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05003530 -static const Light hoot_seg5_light_05003530 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 hoot_seg5_lights_05003528 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // //! The vertex macro which calls this has too large of a size. // 0x05003540 @@ -780,8 +704,8 @@ const Gfx hoot_seg5_dl_050035A0[] = { gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&hoot_seg5_light_05003530, 1), - gsSPLight(&hoot_seg5_light_05003528, 2), + gsSPLight(&hoot_seg5_lights_05003528.l, 1), + gsSPLight(&hoot_seg5_lights_05003528.a, 2), gsSPVertex(hoot_seg5_vertex_05003540, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), @@ -802,14 +726,10 @@ const Gfx hoot_seg5_dl_05003600[] = { }; // 0x05003650 -static const Ambient hoot_seg5_light_05003650 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05003658 -static const Light hoot_seg5_light_05003658 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 hoot_seg5_lights_05003650 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // //! The vertex macro which calls this has too large of a size. // 0x05003668 @@ -837,8 +757,8 @@ const Gfx hoot_seg5_dl_050036C8[] = { gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&hoot_seg5_light_05003658, 1), - gsSPLight(&hoot_seg5_light_05003650, 2), + gsSPLight(&hoot_seg5_lights_05003650.l, 1), + gsSPLight(&hoot_seg5_lights_05003650.a, 2), gsSPVertex(hoot_seg5_vertex_05003668, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), @@ -1231,8 +1151,8 @@ static const Vtx hoot_seg5_vertex_05004828[] = { // 0x05004928 - 0x05004A98 const Gfx hoot_seg5_dl_05004928[] = { - gsSPLight(&hoot_seg5_light_05000938, 1), - gsSPLight(&hoot_seg5_light_05000930, 2), + gsSPLight(&hoot_seg5_lights_05000930.l, 1), + gsSPLight(&hoot_seg5_lights_05000930.a, 2), gsSPVertex(hoot_seg5_vertex_05003778, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -1252,8 +1172,8 @@ const Gfx hoot_seg5_dl_05004928[] = { gsSP1Triangle(12, 13, 14, 0x0), gsSPVertex(hoot_seg5_vertex_05003B48, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&hoot_seg5_light_05000950, 1), - gsSPLight(&hoot_seg5_light_05000948, 2), + gsSPLight(&hoot_seg5_lights_05000948.l, 1), + gsSPLight(&hoot_seg5_lights_05000948.a, 2), gsSPVertex(hoot_seg5_vertex_05003BA8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -1266,8 +1186,8 @@ const Gfx hoot_seg5_dl_05004928[] = { // 0x05004A98 - 0x05004B38 const Gfx hoot_seg5_dl_05004A98[] = { - gsSPLight(&hoot_seg5_light_05000968, 1), - gsSPLight(&hoot_seg5_light_05000960, 2), + gsSPLight(&hoot_seg5_lights_05000960.l, 1), + gsSPLight(&hoot_seg5_lights_05000960.a, 2), gsSPVertex(hoot_seg5_vertex_05003D58, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -1275,8 +1195,8 @@ const Gfx hoot_seg5_dl_05004A98[] = { gsSPVertex(hoot_seg5_vertex_05003E58, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), - gsSPLight(&hoot_seg5_light_05000980, 1), - gsSPLight(&hoot_seg5_light_05000978, 2), + gsSPLight(&hoot_seg5_lights_05000978.l, 1), + gsSPLight(&hoot_seg5_lights_05000978.a, 2), gsSPVertex(hoot_seg5_vertex_05003F18, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -1284,8 +1204,8 @@ const Gfx hoot_seg5_dl_05004A98[] = { // 0x05004B38 - 0x05004CA8 const Gfx hoot_seg5_dl_05004B38[] = { - gsSPLight(&hoot_seg5_light_05000950, 1), - gsSPLight(&hoot_seg5_light_05000948, 2), + gsSPLight(&hoot_seg5_lights_05000948.l, 1), + gsSPLight(&hoot_seg5_lights_05000948.a, 2), gsSPVertex(hoot_seg5_vertex_05003F58, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -1293,8 +1213,8 @@ const Gfx hoot_seg5_dl_05004B38[] = { gsSPVertex(hoot_seg5_vertex_05004048, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), - gsSPLight(&hoot_seg5_light_05000938, 1), - gsSPLight(&hoot_seg5_light_05000930, 2), + gsSPLight(&hoot_seg5_lights_05000930.l, 1), + gsSPLight(&hoot_seg5_lights_05000930.a, 2), gsSPVertex(hoot_seg5_vertex_05004108, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -1319,8 +1239,8 @@ const Gfx hoot_seg5_dl_05004B38[] = { // 0x05004CA8 - 0x05004D48 const Gfx hoot_seg5_dl_05004CA8[] = { - gsSPLight(&hoot_seg5_light_05000968, 1), - gsSPLight(&hoot_seg5_light_05000960, 2), + gsSPLight(&hoot_seg5_lights_05000960.l, 1), + gsSPLight(&hoot_seg5_lights_05000960.a, 2), gsSPVertex(hoot_seg5_vertex_05004548, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -1328,8 +1248,8 @@ const Gfx hoot_seg5_dl_05004CA8[] = { gsSPVertex(hoot_seg5_vertex_05004648, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), - gsSPLight(&hoot_seg5_light_05000980, 1), - gsSPLight(&hoot_seg5_light_05000978, 2), + gsSPLight(&hoot_seg5_lights_05000978.l, 1), + gsSPLight(&hoot_seg5_lights_05000978.a, 2), gsSPVertex(hoot_seg5_vertex_05004708, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSPEndDisplayList(), @@ -1337,8 +1257,8 @@ const Gfx hoot_seg5_dl_05004CA8[] = { // 0x05004D48 - 0x05004EC0 const Gfx hoot_seg5_dl_05004D48[] = { - gsSPLight(&hoot_seg5_light_05000908, 1), - gsSPLight(&hoot_seg5_light_05000900, 2), + gsSPLight(&hoot_seg5_lights_05000900.l, 1), + gsSPLight(&hoot_seg5_lights_05000900.a, 2), gsSPVertex(hoot_seg5_vertex_05004748, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 1, 4, 0x0, 7, 8, 9, 0x0), @@ -1350,8 +1270,8 @@ const Gfx hoot_seg5_dl_05004D48[] = { gsSP2Triangles( 2, 10, 12, 0x0, 6, 9, 8, 0x0), gsSP2Triangles(11, 13, 7, 0x0, 5, 4, 1, 0x0), gsSP1Triangle( 1, 8, 2, 0x0), - gsSPLight(&hoot_seg5_light_05000968, 1), - gsSPLight(&hoot_seg5_light_05000960, 2), + gsSPLight(&hoot_seg5_lights_05000960.l, 1), + gsSPLight(&hoot_seg5_lights_05000960.a, 2), gsSPVertex(hoot_seg5_vertex_05004828, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 8, 4, 3, 0x0), diff --git a/actors/impact_ring/model.inc.c b/actors/impact_ring/model.inc.c index 436576b..6425825 100644 --- a/actors/impact_ring/model.inc.c +++ b/actors/impact_ring/model.inc.c @@ -49,7 +49,7 @@ const Gfx impact_ring_seg6_dl_0601EA88[] = { // 0x0601EAC0 - 0x0601EB40 const Gfx impact_ring_seg6_dl_0601EAC0[] = { gsDPPipeSync(), - gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA), + gsDPSetCombineMode(G_CC_MODULATEIFADEA, G_CC_MODULATEIFADEA), gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), diff --git a/actors/king_bobomb/model.inc.c b/actors/king_bobomb/model.inc.c index f539e18..be75ab0 100644 --- a/actors/king_bobomb/model.inc.c +++ b/actors/king_bobomb/model.inc.c @@ -1,54 +1,34 @@ // King Bobomb -// Unreferenced light -UNUSED static const Ambient king_bobomb_light_1 = { - {{0x36, 0x1e, 0x00}, 0, {0x36, 0x1e, 0x00}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 king_bobomb_lights_unused1 = gdSPDefLights1( + 0x36, 0x1e, 0x00, + 0xd9, 0x7a, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light king_bobomb_light_2 = { - {{0xd9, 0x7a, 0x00}, 0, {0xd9, 0x7a, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 king_bobomb_lights_unused2 = gdSPDefLights1( + 0x00, 0x00, 0x3f, + 0x00, 0x00, 0xff, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient king_bobomb_light_3 = { - {{0x00, 0x00, 0x3f}, 0, {0x00, 0x00, 0x3f}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 king_bobomb_lights_unused3 = gdSPDefLights1( + 0x3c, 0x28, 0x00, + 0xf1, 0xa2, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light king_bobomb_light_4 = { - {{0x00, 0x00, 0xff}, 0, {0x00, 0x00, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 king_bobomb_lights_unused4 = gdSPDefLights1( + 0x2c, 0x2c, 0x2c, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient king_bobomb_light_5 = { - {{0x3c, 0x28, 0x00}, 0, {0x3c, 0x28, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light king_bobomb_light_6 = { - {{0xf1, 0xa2, 0x00}, 0, {0xf1, 0xa2, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient king_bobomb_light_7 = { - {{0x2c, 0x2c, 0x2c}, 0, {0x2c, 0x2c, 0x2c}, 0} -}; - -// Unreferenced light -UNUSED static const Light king_bobomb_light_8 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient king_bobomb_light_9 = { - {{0x06, 0x06, 0x06}, 0, {0x06, 0x06, 0x06}, 0} -}; - -// Unreferenced light -UNUSED static const Light king_bobomb_light_10 = { - {{0x19, 0x19, 0x19}, 0, {0x19, 0x19, 0x19}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 king_bobomb_lights_unused5 = gdSPDefLights1( + 0x06, 0x06, 0x06, + 0x19, 0x19, 0x19, 0x28, 0x28, 0x28 +); // 0x05000078 ALIGNED8 static const u8 king_bobomb_seg5_texture_05000078[] = { @@ -317,14 +297,10 @@ const Gfx king_bobomb_seg5_dl_0500A978[] = { }; // 0x0500A9E8 -static const Ambient king_bobomb_seg5_light_0500A9E8 = { - {{0x6f, 0x56, 0x11}, 0, {0x6f, 0x56, 0x11}, 0} -}; - -// 0x0500A9F0 -static const Light king_bobomb_seg5_light_0500A9F0 = { - {{0xde, 0xad, 0x23}, 0, {0xde, 0xad, 0x23}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 king_bobomb_seg5_lights_0500A9E8 = gdSPDefLights1( + 0x6f, 0x56, 0x11, + 0xde, 0xad, 0x23, 0x28, 0x28, 0x28 +); // 0x0500AA00 static const Vtx king_bobomb_seg5_vertex_0500AA00[] = { @@ -364,8 +340,8 @@ static const Vtx king_bobomb_seg5_vertex_0500AB00[] = { // 0x0500ABC0 - 0x0500AD08 const Gfx king_bobomb_seg5_dl_0500ABC0[] = { - gsSPLight(&king_bobomb_seg5_light_0500A9F0, 1), - gsSPLight(&king_bobomb_seg5_light_0500A9E8, 2), + gsSPLight(&king_bobomb_seg5_lights_0500A9E8.l, 1), + gsSPLight(&king_bobomb_seg5_lights_0500A9E8.a, 2), gsSPVertex(king_bobomb_seg5_vertex_0500AA00, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 1, 4, 5, 0x0, 1, 5, 6, 0x0), @@ -400,14 +376,10 @@ const Gfx king_bobomb_seg5_dl_0500AD08[] = { }; // 0x0500AD38 -static const Ambient king_bobomb_seg5_light_0500AD38 = { - {{0x6f, 0x4f, 0x10}, 0, {0x6f, 0x4f, 0x10}, 0} -}; - -// 0x0500AD40 -static const Light king_bobomb_seg5_light_0500AD40 = { - {{0xde, 0x9e, 0x20}, 0, {0xde, 0x9e, 0x20}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 king_bobomb_seg5_lights_0500AD38 = gdSPDefLights1( + 0x6f, 0x4f, 0x10, + 0xde, 0x9e, 0x20, 0x28, 0x28, 0x28 +); // 0x0500AD50 static const Vtx king_bobomb_seg5_vertex_0500AD50[] = { @@ -448,8 +420,8 @@ static const Vtx king_bobomb_seg5_vertex_0500AE50[] = { // 0x0500AF20 - 0x0500B068 const Gfx king_bobomb_seg5_dl_0500AF20[] = { - gsSPLight(&king_bobomb_seg5_light_0500AD40, 1), - gsSPLight(&king_bobomb_seg5_light_0500AD38, 2), + gsSPLight(&king_bobomb_seg5_lights_0500AD38.l, 1), + gsSPLight(&king_bobomb_seg5_lights_0500AD38.a, 2), gsSPVertex(king_bobomb_seg5_vertex_0500AD50, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 1, 4, 5, 0x0, 1, 5, 2, 0x0), @@ -540,14 +512,10 @@ const Gfx king_bobomb_seg5_dl_0500B188[] = { }; // 0x0500B200 -static const Ambient king_bobomb_seg5_light_0500B200 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0500B208 -static const Light king_bobomb_seg5_light_0500B208 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 king_bobomb_seg5_lights_0500B200 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500B218 static const Vtx king_bobomb_seg5_vertex_0500B218[] = { @@ -564,8 +532,8 @@ const Gfx king_bobomb_seg5_dl_0500B278[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, king_bobomb_seg5_texture_05004878), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&king_bobomb_seg5_light_0500B208, 1), - gsSPLight(&king_bobomb_seg5_light_0500B200, 2), + gsSPLight(&king_bobomb_seg5_lights_0500B200.l, 1), + gsSPLight(&king_bobomb_seg5_lights_0500B200.a, 2), gsSPVertex(king_bobomb_seg5_vertex_0500B218, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), gsSP2Triangles( 2, 3, 0, 0x0, 4, 5, 3, 0x0), @@ -589,14 +557,10 @@ const Gfx king_bobomb_seg5_dl_0500B2D0[] = { }; // 0x0500B330 -static const Ambient king_bobomb_seg5_light_0500B330 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500B338 -static const Light king_bobomb_seg5_light_0500B338 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 king_bobomb_seg5_lights_0500B330 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500B348 static const Vtx king_bobomb_seg5_vertex_0500B348[] = { @@ -612,8 +576,8 @@ static const Vtx king_bobomb_seg5_vertex_0500B348[] = { // 0x0500B3C8 - 0x0500B418 const Gfx king_bobomb_seg5_dl_0500B3C8[] = { - gsSPLight(&king_bobomb_seg5_light_0500B338, 1), - gsSPLight(&king_bobomb_seg5_light_0500B330, 2), + gsSPLight(&king_bobomb_seg5_lights_0500B330.l, 1), + gsSPLight(&king_bobomb_seg5_lights_0500B330.a, 2), gsSPVertex(king_bobomb_seg5_vertex_0500B348, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), gsSP2Triangles( 2, 4, 5, 0x0, 2, 5, 0, 0x0), @@ -634,14 +598,10 @@ const Gfx king_bobomb_seg5_dl_0500B418[] = { }; // 0x0500B458 -static const Ambient king_bobomb_seg5_light_0500B458 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500B460 -static const Light king_bobomb_seg5_light_0500B460 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 king_bobomb_seg5_lights_0500B458 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500B470 static const Vtx king_bobomb_seg5_vertex_0500B470[] = { @@ -680,8 +640,8 @@ const Gfx king_bobomb_seg5_dl_0500B5F0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, king_bobomb_seg5_texture_05006078), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&king_bobomb_seg5_light_0500B460, 1), - gsSPLight(&king_bobomb_seg5_light_0500B458, 2), + gsSPLight(&king_bobomb_seg5_lights_0500B458.l, 1), + gsSPLight(&king_bobomb_seg5_lights_0500B458.a, 2), gsSPVertex(king_bobomb_seg5_vertex_0500B470, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), gsSP2Triangles( 0, 2, 3, 0x0, 5, 4, 3, 0x0), diff --git a/actors/klepto/model.inc.c b/actors/klepto/model.inc.c index ad70884..9f83b07 100644 --- a/actors/klepto/model.inc.c +++ b/actors/klepto/model.inc.c @@ -31,24 +31,16 @@ ALIGNED8 static const u8 klepto_seg5_texture_05003008[] = { }; // 0x05003808 -static const Ambient klepto_seg5_light_05003808 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05003810 -static const Light klepto_seg5_light_05003810 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_05003808 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05003820 -static const Ambient klepto_seg5_light_05003820 = { - {{0x3f, 0x1d, 0x08}, 0, {0x3f, 0x1d, 0x08}, 0} -}; - -// 0x05003828 -static const Light klepto_seg5_light_05003828 = { - {{0xff, 0x75, 0x21}, 0, {0xff, 0x75, 0x21}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_05003820 = gdSPDefLights1( + 0x3f, 0x1d, 0x08, + 0xff, 0x75, 0x21, 0x28, 0x28, 0x28 +); // 0x05003838 static const Vtx klepto_seg5_vertex_05003838[] = { @@ -106,8 +98,8 @@ const Gfx klepto_seg5_dl_05003A68[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, klepto_seg5_texture_05000808), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&klepto_seg5_light_05003810, 1), - gsSPLight(&klepto_seg5_light_05003808, 2), + gsSPLight(&klepto_seg5_lights_05003808.l, 1), + gsSPLight(&klepto_seg5_lights_05003808.a, 2), gsSPVertex(klepto_seg5_vertex_05003838, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 2, 1, 4, 0x0, 4, 5, 2, 0x0), @@ -132,8 +124,8 @@ const Gfx klepto_seg5_dl_05003AC0[] = { // 0x05003B40 - 0x05003BD0 const Gfx klepto_seg5_dl_05003B40[] = { - gsSPLight(&klepto_seg5_light_05003828, 1), - gsSPLight(&klepto_seg5_light_05003820, 2), + gsSPLight(&klepto_seg5_lights_05003820.l, 1), + gsSPLight(&klepto_seg5_lights_05003820.a, 2), gsSPVertex(klepto_seg5_vertex_050039B8, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 3, 0x0, 3, 6, 4, 0x0), @@ -167,14 +159,10 @@ const Gfx klepto_seg5_dl_05003BD0[] = { }; // 0x05003C58 -static const Ambient klepto_seg5_light_05003C58 = { - {{0x3f, 0x1d, 0x08}, 0, {0x3f, 0x1d, 0x08}, 0} -}; - -// 0x05003C60 -static const Light klepto_seg5_light_05003C60 = { - {{0xff, 0x75, 0x21}, 0, {0xff, 0x75, 0x21}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_05003C58 = gdSPDefLights1( + 0x3f, 0x1d, 0x08, + 0xff, 0x75, 0x21, 0x28, 0x28, 0x28 +); // 0x05003C70 static const Vtx klepto_seg5_vertex_05003C70[] = { @@ -191,8 +179,8 @@ static const Vtx klepto_seg5_vertex_05003C70[] = { // 0x05003D00 - 0x05003D80 const Gfx klepto_seg5_dl_05003D00[] = { - gsSPLight(&klepto_seg5_light_05003C60, 1), - gsSPLight(&klepto_seg5_light_05003C58, 2), + gsSPLight(&klepto_seg5_lights_05003C58.l, 1), + gsSPLight(&klepto_seg5_lights_05003C58.a, 2), gsSPVertex(klepto_seg5_vertex_05003C70, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 4, 2, 5, 0x0, 2, 4, 3, 0x0), @@ -214,14 +202,10 @@ const Gfx klepto_seg5_dl_05003D80[] = { }; // 0x05003DB0 -static const Ambient klepto_seg5_light_05003DB0 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05003DB8 -static const Light klepto_seg5_light_05003DB8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_05003DB0 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05003DC8 static const Vtx klepto_seg5_vertex_05003DC8[] = { @@ -242,8 +226,8 @@ const Gfx klepto_seg5_dl_05003E68[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, klepto_seg5_texture_05000008), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&klepto_seg5_light_05003DB8, 1), - gsSPLight(&klepto_seg5_light_05003DB0, 2), + gsSPLight(&klepto_seg5_lights_05003DB0.l, 1), + gsSPLight(&klepto_seg5_lights_05003DB0.a, 2), gsSPVertex(klepto_seg5_vertex_05003DC8, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 2, 0x0), gsSP2Triangles( 5, 2, 1, 0x0, 2, 5, 3, 0x0), @@ -273,14 +257,10 @@ const Gfx klepto_seg5_dl_05003F20[] = { }; // 0x05003F80 -static const Ambient klepto_seg5_light_05003F80 = { - {{0x07, 0x01, 0x01}, 0, {0x07, 0x01, 0x01}, 0} -}; - -// 0x05003F88 -static const Light klepto_seg5_light_05003F88 = { - {{0x1e, 0x05, 0x04}, 0, {0x1e, 0x05, 0x04}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_05003F80 = gdSPDefLights1( + 0x07, 0x01, 0x01, + 0x1e, 0x05, 0x04, 0x28, 0x28, 0x28 +); // 0x05003F98 static const Vtx klepto_seg5_vertex_05003F98[] = { @@ -300,8 +280,8 @@ static const Vtx klepto_seg5_vertex_05003F98[] = { // 0x05004058 - 0x05004118 const Gfx klepto_seg5_dl_05004058[] = { - gsSPLight(&klepto_seg5_light_05003F88, 1), - gsSPLight(&klepto_seg5_light_05003F80, 2), + gsSPLight(&klepto_seg5_lights_05003F80.l, 1), + gsSPLight(&klepto_seg5_lights_05003F80.a, 2), gsSPVertex(klepto_seg5_vertex_05003F98, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 2, 4, 5, 0x0, 2, 5, 0, 0x0), @@ -327,14 +307,10 @@ const Gfx klepto_seg5_dl_05004118[] = { }; // 0x05004148 -static const Ambient klepto_seg5_light_05004148 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05004150 -static const Light klepto_seg5_light_05004150 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_05004148 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05004160 static const Vtx klepto_seg5_vertex_05004160[] = { @@ -349,8 +325,8 @@ const Gfx klepto_seg5_dl_050041A0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, klepto_seg5_texture_05003008), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&klepto_seg5_light_05004150, 1), - gsSPLight(&klepto_seg5_light_05004148, 2), + gsSPLight(&klepto_seg5_lights_05004148.l, 1), + gsSPLight(&klepto_seg5_lights_05004148.a, 2), gsSPVertex(klepto_seg5_vertex_05004160, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSPEndDisplayList(), @@ -375,14 +351,10 @@ const Gfx klepto_seg5_dl_050041E8[] = { }; // 0x05004258 -static const Ambient klepto_seg5_light_05004258 = { - {{0x3f, 0x1d, 0x08}, 0, {0x3f, 0x1d, 0x08}, 0} -}; - -// 0x05004260 -static const Light klepto_seg5_light_05004260 = { - {{0xff, 0x75, 0x21}, 0, {0xff, 0x75, 0x21}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_05004258 = gdSPDefLights1( + 0x3f, 0x1d, 0x08, + 0xff, 0x75, 0x21, 0x28, 0x28, 0x28 +); // 0x05004270 static const Vtx klepto_seg5_vertex_05004270[] = { @@ -396,8 +368,8 @@ static const Vtx klepto_seg5_vertex_05004270[] = { // 0x050042D0 - 0x05004330 const Gfx klepto_seg5_dl_050042D0[] = { - gsSPLight(&klepto_seg5_light_05004260, 1), - gsSPLight(&klepto_seg5_light_05004258, 2), + gsSPLight(&klepto_seg5_lights_05004258.l, 1), + gsSPLight(&klepto_seg5_lights_05004258.a, 2), gsSPVertex(klepto_seg5_vertex_05004270, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 4, 0, 2, 0x0, 0, 4, 3, 0x0), @@ -417,14 +389,10 @@ const Gfx klepto_seg5_dl_05004330[] = { }; // 0x05004360 -static const Ambient klepto_seg5_light_05004360 = { - {{0x3f, 0x1d, 0x08}, 0, {0x3f, 0x1d, 0x08}, 0} -}; - -// 0x05004368 -static const Light klepto_seg5_light_05004368 = { - {{0xff, 0x75, 0x21}, 0, {0xff, 0x75, 0x21}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_05004360 = gdSPDefLights1( + 0x3f, 0x1d, 0x08, + 0xff, 0x75, 0x21, 0x28, 0x28, 0x28 +); // 0x05004378 static const Vtx klepto_seg5_vertex_05004378[] = { @@ -438,8 +406,8 @@ static const Vtx klepto_seg5_vertex_05004378[] = { // 0x050043D8 - 0x05004438 const Gfx klepto_seg5_dl_050043D8[] = { - gsSPLight(&klepto_seg5_light_05004368, 1), - gsSPLight(&klepto_seg5_light_05004360, 2), + gsSPLight(&klepto_seg5_lights_05004360.l, 1), + gsSPLight(&klepto_seg5_lights_05004360.a, 2), gsSPVertex(klepto_seg5_vertex_05004378, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 4, 0, 2, 0x0, 0, 4, 3, 0x0), @@ -459,24 +427,16 @@ const Gfx klepto_seg5_dl_05004438[] = { }; // 0x05004468 -static const Ambient klepto_seg5_light_05004468 = { - {{0x02, 0x00, 0x00}, 0, {0x02, 0x00, 0x00}, 0} -}; - -// 0x05004470 -static const Light klepto_seg5_light_05004470 = { - {{0x08, 0x00, 0x00}, 0, {0x08, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_05004468 = gdSPDefLights1( + 0x02, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x05004480 -static const Ambient klepto_seg5_light_05004480 = { - {{0x3f, 0x1d, 0x08}, 0, {0x3f, 0x1d, 0x08}, 0} -}; - -// 0x05004488 -static const Light klepto_seg5_light_05004488 = { - {{0xff, 0x75, 0x21}, 0, {0xff, 0x75, 0x21}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_05004480 = gdSPDefLights1( + 0x3f, 0x1d, 0x08, + 0xff, 0x75, 0x21, 0x28, 0x28, 0x28 +); // 0x05004498 static const Vtx klepto_seg5_vertex_05004498[] = { @@ -524,16 +484,16 @@ static const Vtx klepto_seg5_vertex_05004648[] = { // 0x05004698 - 0x050047C8 const Gfx klepto_seg5_dl_05004698[] = { - gsSPLight(&klepto_seg5_light_05004470, 1), - gsSPLight(&klepto_seg5_light_05004468, 2), + gsSPLight(&klepto_seg5_lights_05004468.l, 1), + gsSPLight(&klepto_seg5_lights_05004468.a, 2), gsSPVertex(klepto_seg5_vertex_05004498, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 3, 6, 0x0, 3, 5, 6, 0x0), gsSP2Triangles( 7, 8, 9, 0x0, 8, 7, 10, 0x0), gsSP2Triangles( 8, 10, 9, 0x0, 0, 11, 1, 0x0), gsSP1Triangle(11, 0, 2, 0x0), - gsSPLight(&klepto_seg5_light_05004488, 1), - gsSPLight(&klepto_seg5_light_05004480, 2), + gsSPLight(&klepto_seg5_lights_05004480.l, 1), + gsSPLight(&klepto_seg5_lights_05004480.a, 2), gsSPVertex(klepto_seg5_vertex_05004558, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 3, 0x0, 7, 4, 3, 0x0), @@ -561,24 +521,16 @@ const Gfx klepto_seg5_dl_050047C8[] = { }; // 0x050047F8 -static const Ambient klepto_seg5_light_050047F8 = { - {{0x02, 0x00, 0x00}, 0, {0x02, 0x00, 0x00}, 0} -}; - -// 0x05004800 -static const Light klepto_seg5_light_05004800 = { - {{0x08, 0x00, 0x00}, 0, {0x08, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_050047F8 = gdSPDefLights1( + 0x02, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x05004810 -static const Ambient klepto_seg5_light_05004810 = { - {{0x3f, 0x1d, 0x08}, 0, {0x3f, 0x1d, 0x08}, 0} -}; - -// 0x05004818 -static const Light klepto_seg5_light_05004818 = { - {{0xff, 0x75, 0x21}, 0, {0xff, 0x75, 0x21}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_05004810 = gdSPDefLights1( + 0x3f, 0x1d, 0x08, + 0xff, 0x75, 0x21, 0x28, 0x28, 0x28 +); // 0x05004828 static const Vtx klepto_seg5_vertex_05004828[] = { @@ -626,16 +578,16 @@ static const Vtx klepto_seg5_vertex_050049D8[] = { // 0x05004A28 - 0x05004B58 const Gfx klepto_seg5_dl_05004A28[] = { - gsSPLight(&klepto_seg5_light_05004800, 1), - gsSPLight(&klepto_seg5_light_050047F8, 2), + gsSPLight(&klepto_seg5_lights_050047F8.l, 1), + gsSPLight(&klepto_seg5_lights_050047F8.a, 2), gsSPVertex(klepto_seg5_vertex_05004828, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 3, 6, 0x0, 3, 5, 6, 0x0), gsSP2Triangles( 7, 8, 9, 0x0, 8, 7, 10, 0x0), gsSP2Triangles( 8, 10, 9, 0x0, 0, 11, 1, 0x0), gsSP1Triangle(11, 0, 2, 0x0), - gsSPLight(&klepto_seg5_light_05004818, 1), - gsSPLight(&klepto_seg5_light_05004810, 2), + gsSPLight(&klepto_seg5_lights_05004810.l, 1), + gsSPLight(&klepto_seg5_lights_05004810.a, 2), gsSPVertex(klepto_seg5_vertex_050048E8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 3, 0x0, 7, 4, 3, 0x0), @@ -663,14 +615,10 @@ const Gfx klepto_seg5_dl_05004B58[] = { }; // 0x05004B88 -static const Ambient klepto_seg5_light_05004B88 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05004B90 -static const Light klepto_seg5_light_05004B90 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_05004B88 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05004BA0 static const Vtx klepto_seg5_vertex_05004BA0[] = { @@ -685,8 +633,8 @@ const Gfx klepto_seg5_dl_05004BE0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, klepto_seg5_texture_05002008), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&klepto_seg5_light_05004B90, 1), - gsSPLight(&klepto_seg5_light_05004B88, 2), + gsSPLight(&klepto_seg5_lights_05004B88.l, 1), + gsSPLight(&klepto_seg5_lights_05004B88.a, 2), gsSPVertex(klepto_seg5_vertex_05004BA0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -711,14 +659,10 @@ const Gfx klepto_seg5_dl_05004C28[] = { }; // 0x05004C98 -static const Ambient klepto_seg5_light_05004C98 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05004CA0 -static const Light klepto_seg5_light_05004CA0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_05004C98 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05004CB0 static const Vtx klepto_seg5_vertex_05004CB0[] = { @@ -733,8 +677,8 @@ const Gfx klepto_seg5_dl_05004CF0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, klepto_seg5_texture_05002008), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&klepto_seg5_light_05004CA0, 1), - gsSPLight(&klepto_seg5_light_05004C98, 2), + gsSPLight(&klepto_seg5_lights_05004C98.l, 1), + gsSPLight(&klepto_seg5_lights_05004C98.a, 2), gsSPVertex(klepto_seg5_vertex_05004CB0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSPEndDisplayList(), @@ -759,14 +703,10 @@ const Gfx klepto_seg5_dl_05004D38[] = { }; // 0x05004DA8 -static const Ambient klepto_seg5_light_05004DA8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05004DB0 -static const Light klepto_seg5_light_05004DB0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_05004DA8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05004DC0 static const Vtx klepto_seg5_vertex_05004DC0[] = { @@ -781,8 +721,8 @@ const Gfx klepto_seg5_dl_05004E00[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, klepto_seg5_texture_05002008), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&klepto_seg5_light_05004DB0, 1), - gsSPLight(&klepto_seg5_light_05004DA8, 2), + gsSPLight(&klepto_seg5_lights_05004DA8.l, 1), + gsSPLight(&klepto_seg5_lights_05004DA8.a, 2), gsSPVertex(klepto_seg5_vertex_05004DC0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -807,14 +747,10 @@ const Gfx klepto_seg5_dl_05004E48[] = { }; // 0x05004EB8 -static const Ambient klepto_seg5_light_05004EB8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05004EC0 -static const Light klepto_seg5_light_05004EC0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_05004EB8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05004ED0 static const Vtx klepto_seg5_vertex_05004ED0[] = { @@ -829,8 +765,8 @@ const Gfx klepto_seg5_dl_05004F10[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, klepto_seg5_texture_05002008), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&klepto_seg5_light_05004EC0, 1), - gsSPLight(&klepto_seg5_light_05004EB8, 2), + gsSPLight(&klepto_seg5_lights_05004EB8.l, 1), + gsSPLight(&klepto_seg5_lights_05004EB8.a, 2), gsSPVertex(klepto_seg5_vertex_05004ED0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSPEndDisplayList(), @@ -855,14 +791,10 @@ const Gfx klepto_seg5_dl_05004F58[] = { }; // 0x05004FC8 -static const Ambient klepto_seg5_light_05004FC8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05004FD0 -static const Light klepto_seg5_light_05004FD0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_05004FC8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05004FE0 static const Vtx klepto_seg5_vertex_05004FE0[] = { @@ -877,8 +809,8 @@ const Gfx klepto_seg5_dl_05005020[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, klepto_seg5_texture_05002008), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&klepto_seg5_light_05004FD0, 1), - gsSPLight(&klepto_seg5_light_05004FC8, 2), + gsSPLight(&klepto_seg5_lights_05004FC8.l, 1), + gsSPLight(&klepto_seg5_lights_05004FC8.a, 2), gsSPVertex(klepto_seg5_vertex_05004FE0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -903,14 +835,10 @@ const Gfx klepto_seg5_dl_05005068[] = { }; // 0x050050D8 -static const Ambient klepto_seg5_light_050050D8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x050050E0 -static const Light klepto_seg5_light_050050E0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 klepto_seg5_lights_050050D8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x050050F0 static const Vtx klepto_seg5_vertex_050050F0[] = { @@ -925,8 +853,8 @@ const Gfx klepto_seg5_dl_05005130[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, klepto_seg5_texture_05002008), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&klepto_seg5_light_050050E0, 1), - gsSPLight(&klepto_seg5_light_050050D8, 2), + gsSPLight(&klepto_seg5_lights_050050D8.l, 1), + gsSPLight(&klepto_seg5_lights_050050D8.a, 2), gsSPVertex(klepto_seg5_vertex_050050F0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSPEndDisplayList(), diff --git a/actors/koopa/model.inc.c b/actors/koopa/model.inc.c index 8927734..04a43a8 100644 --- a/actors/koopa/model.inc.c +++ b/actors/koopa/model.inc.c @@ -1,85 +1,53 @@ // Koopa (Small Koopa, Big Koopa [Koopa the Quick]) -// Unreferenced light -UNUSED static const Ambient koopa_light_1 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// Unreferenced light -UNUSED static const Light koopa_light_2 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 koopa_lights_unused1 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x060025A0 -static const Ambient koopa_seg6_light_060025A0 = { - {{0x00, 0x59, 0x00}, 0, {0x00, 0x59, 0x00}, 0} -}; - -// 0x060025A8 -static const Light koopa_seg6_light_060025A8 = { - {{0x00, 0xb2, 0x00}, 0, {0x00, 0xb2, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_seg6_lights_060025A0 = gdSPDefLights1( + 0x00, 0x59, 0x00, + 0x00, 0xb2, 0x00, 0x28, 0x28, 0x28 +); // 0x060025B8 -static const Ambient koopa_seg6_light_060025B8 = { - {{0x70, 0x57, 0x00}, 0, {0x70, 0x57, 0x00}, 0} -}; - -// 0x060025C0 -static const Light koopa_seg6_light_060025C0 = { - {{0xe0, 0xae, 0x00}, 0, {0xe0, 0xae, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_seg6_lights_060025B8 = gdSPDefLights1( + 0x70, 0x57, 0x00, + 0xe0, 0xae, 0x00, 0x28, 0x28, 0x28 +); // 0x060025D0 -static const Ambient koopa_seg6_light_060025D0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +static const Lights1 koopa_seg6_lights_060025D0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x060025D8 -static const Light koopa_seg6_light_060025D8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient koopa_light_3 = { - {{0x59, 0x59, 0x59}, 0, {0x59, 0x59, 0x59}, 0} -}; - -// Unreferenced light -UNUSED static const Light koopa_light_4 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 koopa_lights_unused2 = gdSPDefLights1( + 0x59, 0x59, 0x59, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); // 0x06002600 -static const Ambient koopa_seg6_light_06002600 = { - {{0x00, 0x54, 0x00}, 0, {0x00, 0x54, 0x00}, 0} -}; - -// 0x06002608 -static const Light koopa_seg6_light_06002608 = { - {{0x00, 0xa9, 0x00}, 0, {0x00, 0xa9, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_seg6_lights_06002600 = gdSPDefLights1( + 0x00, 0x54, 0x00, + 0x00, 0xa9, 0x00, 0x28, 0x28, 0x28 +); // 0x06002618 -static const Ambient koopa_seg6_light_06002618 = { - {{0x59, 0x59, 0x59}, 0, {0x59, 0x59, 0x59}, 0} -}; - -// 0x06002620 -static const Light koopa_seg6_light_06002620 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_seg6_lights_06002618 = gdSPDefLights1( + 0x59, 0x59, 0x59, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); // 0x06002630 -static const Ambient koopa_seg6_light_06002630 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x06002638 -static const Light koopa_seg6_light_06002638 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_seg6_lights_06002630 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // //! There is a malformed light entry here pointing to this texture + 0x18. // It results in the koopa actor 'wearing' what appears to be pink shorts @@ -127,24 +95,16 @@ ALIGNED8 static const u8 koopa_seg6_texture_06005E48[] = { }; // 0x06006E48 -static const Ambient koopa_seg6_light_06006E48 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x06006E50 -static const Light koopa_seg6_light_06006E50 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_seg6_lights_06006E48 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06006E60 -static const Ambient koopa_seg6_light_06006E60 = { - {{0x67, 0x0b, 0x1a}, 0, {0x67, 0x0b, 0x1a}, 0} -}; - -// 0x06006E68 -static const Light koopa_seg6_light_06006E68 = { - {{0xce, 0x16, 0x35}, 0, {0xce, 0x16, 0x35}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_seg6_lights_06006E60 = gdSPDefLights1( + 0x67, 0x0b, 0x1a, + 0xce, 0x16, 0x35, 0x28, 0x28, 0x28 +); // 0x06006E78 static const Vtx koopa_seg6_vertex_06006E78[] = { @@ -318,8 +278,8 @@ static const Vtx koopa_seg6_vertex_060075B8[] = { // 0x06007658 - 0x060076B0 const Gfx koopa_seg6_dl_06007658[] = { - gsSPLight(&koopa_seg6_light_06006E50, 1), - gsSPLight(&koopa_seg6_light_06006E48, 2), + gsSPLight(&koopa_seg6_lights_06006E48.l, 1), + gsSPLight(&koopa_seg6_lights_06006E48.a, 2), gsSPVertex(koopa_seg6_vertex_06006E78, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), gsSP2Triangles( 0, 5, 3, 0x0, 4, 6, 0, 0x0), @@ -392,12 +352,12 @@ const Gfx koopa_seg6_dl_06007850[] = { // 0x06007970 - 0x06007A60 const Gfx koopa_seg6_dl_06007970[] = { - gsSPLight(&koopa_seg6_light_06006E68, 1), - gsSPLight(&koopa_seg6_light_06006E60, 2), + gsSPLight(&koopa_seg6_lights_06006E60.l, 1), + gsSPLight(&koopa_seg6_lights_06006E60.a, 2), gsSPVertex(koopa_seg6_vertex_06007488, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), - gsSPLight(&koopa_seg6_light_06006E50, 1), - gsSPLight(&koopa_seg6_light_06006E48, 2), + gsSPLight(&koopa_seg6_lights_06006E48.l, 1), + gsSPLight(&koopa_seg6_lights_06006E48.a, 2), gsSPVertex(koopa_seg6_vertex_060074B8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 4, 7, 0x0, 4, 6, 5, 0x0), @@ -460,24 +420,16 @@ const Gfx koopa_seg6_dl_06007B20[] = { }; // 0x06007B48 -static const Ambient koopa_seg6_light_06007B48 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x06007B50 -static const Light koopa_seg6_light_06007B50 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_seg6_lights_06007B48 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06007B60 -static const Ambient koopa_seg6_light_06007B60 = { - {{0x70, 0x57, 0x00}, 0, {0x70, 0x57, 0x00}, 0} -}; - -// 0x06007B68 -static const Light koopa_seg6_light_06007B68 = { - {{0xe0, 0xae, 0x00}, 0, {0xe0, 0xae, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_seg6_lights_06007B60 = gdSPDefLights1( + 0x70, 0x57, 0x00, + 0xe0, 0xae, 0x00, 0x28, 0x28, 0x28 +); // 0x06007B78 static const Vtx koopa_seg6_vertex_06007B78[] = { @@ -576,8 +528,8 @@ const Gfx koopa_seg6_dl_06007FB8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, koopa_seg6_texture_06002E48), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&koopa_seg6_light_06007B50, 1), - gsSPLight(&koopa_seg6_light_06007B48, 2), + gsSPLight(&koopa_seg6_lights_06007B48.l, 1), + gsSPLight(&koopa_seg6_lights_06007B48.a, 2), gsSPVertex(koopa_seg6_vertex_06007B78, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 0, 4, 1, 0x0, 0, 5, 4, 0x0), @@ -607,13 +559,13 @@ const Gfx koopa_seg6_dl_06008050[] = { // 0x060080F8 - 0x06008250 const Gfx koopa_seg6_dl_060080F8[] = { - gsSPLight(&koopa_seg6_light_06007B68, 1), - gsSPLight(&koopa_seg6_light_06007B60, 2), + gsSPLight(&koopa_seg6_lights_06007B60.l, 1), + gsSPLight(&koopa_seg6_lights_06007B60.a, 2), gsSPVertex(koopa_seg6_vertex_06007CF8, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP1Triangle( 2, 4, 3, 0x0), - gsSPLight(&koopa_seg6_light_06007B50, 1), - gsSPLight(&koopa_seg6_light_06007B48, 2), + gsSPLight(&koopa_seg6_lights_06007B48.l, 1), + gsSPLight(&koopa_seg6_lights_06007B48.a, 2), gsSPVertex(koopa_seg6_vertex_06007D48, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 4, 1, 3, 0x0, 2, 1, 5, 0x0), @@ -655,24 +607,16 @@ const Gfx koopa_seg6_dl_06008250[] = { }; // 0x060082C0 -static const Ambient koopa_seg6_light_060082C0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x060082C8 -static const Light koopa_seg6_light_060082C8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_seg6_lights_060082C0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x060082D8 -static const Ambient koopa_seg6_light_060082D8 = { - {{0x00, 0x64, 0x00}, 0, {0x00, 0x64, 0x00}, 0} -}; - -// 0x060082E0 -static const Light koopa_seg6_light_060082E0 = { - {{0x00, 0xc8, 0x00}, 0, {0x00, 0xc8, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_seg6_lights_060082D8 = gdSPDefLights1( + 0x00, 0x64, 0x00, + 0x00, 0xc8, 0x00, 0x28, 0x28, 0x28 +); // 0x060082F0 static const Vtx koopa_seg6_vertex_060082F0[] = { @@ -727,8 +671,8 @@ const Gfx koopa_seg6_dl_06008530[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, koopa_seg6_texture_06003648), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&koopa_seg6_light_060082C8, 1), - gsSPLight(&koopa_seg6_light_060082C0, 2), + gsSPLight(&koopa_seg6_lights_060082C0.l, 1), + gsSPLight(&koopa_seg6_lights_060082C0.a, 2), gsSPVertex(koopa_seg6_vertex_060082F0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 1, 4, 3, 0x0, 4, 5, 3, 0x0), @@ -755,8 +699,8 @@ const Gfx koopa_seg6_dl_060085E8[] = { // 0x06008640 - 0x060086D0 const Gfx koopa_seg6_dl_06008640[] = { - gsSPLight(&koopa_seg6_light_060082E0, 1), - gsSPLight(&koopa_seg6_light_060082D8, 2), + gsSPLight(&koopa_seg6_lights_060082D8.l, 1), + gsSPLight(&koopa_seg6_lights_060082D8.a, 2), gsSPVertex(koopa_seg6_vertex_06008470, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 3, 4, 0, 0x0, 1, 5, 2, 0x0), @@ -787,24 +731,16 @@ const Gfx koopa_seg6_dl_060086D0[] = { }; // 0x06008740 -static const Ambient koopa_seg6_light_06008740 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x06008748 -static const Light koopa_seg6_light_06008748 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_seg6_lights_06008740 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06008758 -static const Ambient koopa_seg6_light_06008758 = { - {{0x00, 0x64, 0x00}, 0, {0x00, 0x64, 0x00}, 0} -}; - -// 0x06008760 -static const Light koopa_seg6_light_06008760 = { - {{0x00, 0xc8, 0x00}, 0, {0x00, 0xc8, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_seg6_lights_06008758 = gdSPDefLights1( + 0x00, 0x64, 0x00, + 0x00, 0xc8, 0x00, 0x28, 0x28, 0x28 +); // 0x06008770 static const Vtx koopa_seg6_vertex_06008770[] = { @@ -859,8 +795,8 @@ const Gfx koopa_seg6_dl_060089B0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, koopa_seg6_texture_06003648), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&koopa_seg6_light_06008748, 1), - gsSPLight(&koopa_seg6_light_06008740, 2), + gsSPLight(&koopa_seg6_lights_06008740.l, 1), + gsSPLight(&koopa_seg6_lights_06008740.a, 2), gsSPVertex(koopa_seg6_vertex_06008770, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 1, 4, 3, 0x0, 4, 5, 3, 0x0), @@ -887,8 +823,8 @@ const Gfx koopa_seg6_dl_06008A68[] = { // 0x06008AC0 - 0x06008B50 const Gfx koopa_seg6_dl_06008AC0[] = { - gsSPLight(&koopa_seg6_light_06008760, 1), - gsSPLight(&koopa_seg6_light_06008758, 2), + gsSPLight(&koopa_seg6_lights_06008758.l, 1), + gsSPLight(&koopa_seg6_lights_06008758.a, 2), gsSPVertex(koopa_seg6_vertex_060088F0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 5, 0, 6, 0x0), @@ -1806,8 +1742,8 @@ static const Vtx koopa_seg6_vertex_0600B5F0[] = { // 0x0600B6E0 - 0x0600B838 const Gfx koopa_seg6_dl_0600B6E0[] = { - gsSPLight(&koopa_seg6_light_060025A8, 1), - gsSPLight(&koopa_seg6_light_060025A0, 2), + gsSPLight(&koopa_seg6_lights_060025A0.l, 1), + gsSPLight(&koopa_seg6_lights_060025A0.a, 2), gsSPVertex(koopa_seg6_vertex_06008BC0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -1835,8 +1771,8 @@ const Gfx koopa_seg6_dl_0600B6E0[] = { // 0x0600B838 - 0x0600B8B8 const Gfx koopa_seg6_dl_0600B838[] = { - gsSPLight(&koopa_seg6_light_060025C0, 1), - gsSPLight(&koopa_seg6_light_060025B8, 2), + gsSPLight(&koopa_seg6_lights_060025B8.l, 1), + gsSPLight(&koopa_seg6_lights_060025B8.a, 2), gsSPVertex(koopa_seg6_vertex_06008F60, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1849,8 +1785,8 @@ const Gfx koopa_seg6_dl_0600B838[] = { // 0x0600B8B8 - 0x0600BA10 const Gfx koopa_seg6_dl_0600B8B8[] = { - gsSPLight(&koopa_seg6_light_060025A8, 1), - gsSPLight(&koopa_seg6_light_060025A0, 2), + gsSPLight(&koopa_seg6_lights_060025A0.l, 1), + gsSPLight(&koopa_seg6_lights_060025A0.a, 2), gsSPVertex(koopa_seg6_vertex_06009040, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -1879,8 +1815,8 @@ const Gfx koopa_seg6_dl_0600B8B8[] = { // 0x0600BA10 - 0x0600BA90 const Gfx koopa_seg6_dl_0600BA10[] = { - gsSPLight(&koopa_seg6_light_060025C0, 1), - gsSPLight(&koopa_seg6_light_060025B8, 2), + gsSPLight(&koopa_seg6_lights_060025B8.l, 1), + gsSPLight(&koopa_seg6_lights_060025B8.a, 2), gsSPVertex(koopa_seg6_vertex_06009410, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1893,8 +1829,8 @@ const Gfx koopa_seg6_dl_0600BA10[] = { // 0x0600BA90 - 0x0600BC18 const Gfx koopa_seg6_dl_0600BA90[] = { - gsSPLight(&koopa_seg6_light_060025C0, 1), - gsSPLight(&koopa_seg6_light_060025B8, 2), + gsSPLight(&koopa_seg6_lights_060025B8.l, 1), + gsSPLight(&koopa_seg6_lights_060025B8.a, 2), gsSPVertex(koopa_seg6_vertex_060094F0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1928,8 +1864,8 @@ const Gfx koopa_seg6_dl_0600BA90[] = { // 0x0600BC18 - 0x0600BC88 const Gfx koopa_seg6_dl_0600BC18[] = { - gsSPLight(&koopa_seg6_light_060025C0, 1), - gsSPLight(&koopa_seg6_light_060025B8, 2), + gsSPLight(&koopa_seg6_lights_060025B8.l, 1), + gsSPLight(&koopa_seg6_lights_060025B8.a, 2), gsSPVertex(koopa_seg6_vertex_06009A30, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 1, 4, 5, 0x0, 1, 5, 2, 0x0), @@ -1941,8 +1877,8 @@ const Gfx koopa_seg6_dl_0600BC18[] = { // 0x0600BC88 - 0x0600BE10 const Gfx koopa_seg6_dl_0600BC88[] = { - gsSPLight(&koopa_seg6_light_060025C0, 1), - gsSPLight(&koopa_seg6_light_060025B8, 2), + gsSPLight(&koopa_seg6_lights_060025B8.l, 1), + gsSPLight(&koopa_seg6_lights_060025B8.a, 2), gsSPVertex(koopa_seg6_vertex_06009AD0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1976,8 +1912,8 @@ const Gfx koopa_seg6_dl_0600BC88[] = { // 0x0600BE10 - 0x0600BE80 const Gfx koopa_seg6_dl_0600BE10[] = { - gsSPLight(&koopa_seg6_light_060025C0, 1), - gsSPLight(&koopa_seg6_light_060025B8, 2), + gsSPLight(&koopa_seg6_lights_060025B8.l, 1), + gsSPLight(&koopa_seg6_lights_060025B8.a, 2), gsSPVertex(koopa_seg6_vertex_0600A010, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 1, 4, 5, 0x0, 1, 5, 2, 0x0), @@ -1989,8 +1925,8 @@ const Gfx koopa_seg6_dl_0600BE10[] = { // 0x0600BE80 - 0x0600C240 const Gfx koopa_seg6_dl_0600BE80[] = { - gsSPLight(&koopa_seg6_light_060025C0, 1), - gsSPLight(&koopa_seg6_light_060025B8, 2), + gsSPLight(&koopa_seg6_lights_060025B8.l, 1), + gsSPLight(&koopa_seg6_lights_060025B8.a, 2), gsSPVertex(koopa_seg6_vertex_0600A0B0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 1, 4, 5, 0x0, 6, 7, 8, 0x0), @@ -2041,8 +1977,8 @@ const Gfx koopa_seg6_dl_0600BE80[] = { gsSP1Triangle(13, 14, 15, 0x0), gsSPVertex(koopa_seg6_vertex_0600A990, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), - gsSPLight(&koopa_seg6_light_060025D8, 1), - gsSPLight(&koopa_seg6_light_060025D0, 2), + gsSPLight(&koopa_seg6_lights_060025D0.l, 1), + gsSPLight(&koopa_seg6_lights_060025D0.a, 2), gsSPVertex(koopa_seg6_vertex_0600A9C0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 2, 9, 10, 0x0), @@ -2065,8 +2001,8 @@ const Gfx koopa_seg6_dl_0600BE80[] = { // 0x0600C240 - 0x0600C498 const Gfx koopa_seg6_dl_0600C240[] = { - gsSPLight(&koopa_seg6_light_06002620, 1), - gsSPLight(&koopa_seg6_light_06002618, 2), + gsSPLight(&koopa_seg6_lights_06002618.l, 1), + gsSPLight(&koopa_seg6_lights_06002618.a, 2), gsSPVertex(koopa_seg6_vertex_0600AC90, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 5, 4, 0x0), @@ -2087,8 +2023,8 @@ const Gfx koopa_seg6_dl_0600C240[] = { gsSP2Triangles( 4, 7, 8, 0x0, 4, 8, 9, 0x0), gsSP2Triangles( 3, 4, 9, 0x0, 0, 3, 10, 0x0), gsSP1Triangle(11, 12, 7, 0x0), - gsSPLight(&koopa_seg6_light_06002608, 1), - gsSPLight(&koopa_seg6_light_06002600, 2), + gsSPLight(&koopa_seg6_lights_06002600.l, 1), + gsSPLight(&koopa_seg6_lights_06002600.a, 2), gsSPVertex(koopa_seg6_vertex_0600AF60, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 6, 5, 1, 0x0), @@ -2096,8 +2032,8 @@ const Gfx koopa_seg6_dl_0600C240[] = { gsSP2Triangles( 3, 8, 9, 0x0, 4, 3, 9, 0x0), gsSP2Triangles( 7, 2, 5, 0x0, 6, 0, 8, 0x0), gsSP2Triangles( 8, 3, 6, 0x0, 6, 1, 0, 0x0), - gsSPLight(&koopa_seg6_light_060025C0, 1), - gsSPLight(&koopa_seg6_light_060025B8, 2), + gsSPLight(&koopa_seg6_lights_060025B8.l, 1), + gsSPLight(&koopa_seg6_lights_060025B8.a, 2), gsSPVertex(koopa_seg6_vertex_0600B000, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 3, 6, 0x0, 7, 8, 9, 0x0), @@ -2115,8 +2051,8 @@ const Gfx koopa_seg6_dl_0600C240[] = { // 0x0600C498 - 0x0600C6A0 const Gfx koopa_seg6_dl_0600C498[] = { - gsSPLight(&koopa_seg6_light_06002638, 1), - gsSPLight(&koopa_seg6_light_06002630, 2), + gsSPLight(&koopa_seg6_lights_06002630.l, 1), + gsSPLight(&koopa_seg6_lights_06002630.a, 2), gsSPVertex(koopa_seg6_vertex_0600B190, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/actors/koopa_flag/model.inc.c b/actors/koopa_flag/model.inc.c index bb94c48..a706dee 100644 --- a/actors/koopa_flag/model.inc.c +++ b/actors/koopa_flag/model.inc.c @@ -1,34 +1,22 @@ // Koopa Flag // 0x06000000 -static const Ambient koopa_flag_seg6_light_06000000 = { - {{0x00, 0x1b, 0x00}, 0, {0x00, 0x1b, 0x00}, 0} -}; - -// 0x06000008 -static const Light koopa_flag_seg6_light_06000008 = { - {{0x00, 0x6e, 0x00}, 0, {0x00, 0x6e, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_flag_seg6_lights_06000000 = gdSPDefLights1( + 0x00, 0x1b, 0x00, + 0x00, 0x6e, 0x00, 0x28, 0x28, 0x28 +); // 0x06000018 -static const Ambient koopa_flag_seg6_light_06000018 = { - {{0x3f, 0x39, 0x15}, 0, {0x3f, 0x39, 0x15}, 0} -}; - -// 0x06000020 -static const Light koopa_flag_seg6_light_06000020 = { - {{0xff, 0xe6, 0x57}, 0, {0xff, 0xe6, 0x57}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_flag_seg6_lights_06000018 = gdSPDefLights1( + 0x3f, 0x39, 0x15, + 0xff, 0xe6, 0x57, 0x28, 0x28, 0x28 +); // 0x06000030 -static const Ambient koopa_flag_seg6_light_06000030 = { - {{0x2b, 0x15, 0x01}, 0, {0x2b, 0x15, 0x01}, 0} -}; - -// 0x06000038 -static const Light koopa_flag_seg6_light_06000038 = { - {{0xac, 0x54, 0x05}, 0, {0xac, 0x54, 0x05}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_flag_seg6_lights_06000030 = gdSPDefLights1( + 0x2b, 0x15, 0x01, + 0xac, 0x54, 0x05, 0x28, 0x28, 0x28 +); // 0x06000048 ALIGNED8 static const u8 koopa_flag_seg6_texture_06000048[] = { @@ -36,24 +24,16 @@ ALIGNED8 static const u8 koopa_flag_seg6_texture_06000048[] = { }; // 0x06000848 -static const Ambient koopa_flag_seg6_light_06000848 = { - {{0x37, 0x27, 0x07}, 0, {0x37, 0x27, 0x07}, 0} -}; - -// 0x06000850 -static const Light koopa_flag_seg6_light_06000850 = { - {{0xdf, 0x9f, 0x1f}, 0, {0xdf, 0x9f, 0x1f}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_flag_seg6_lights_06000848 = gdSPDefLights1( + 0x37, 0x27, 0x07, + 0xdf, 0x9f, 0x1f, 0x28, 0x28, 0x28 +); // 0x06000860 -static const Ambient koopa_flag_seg6_light_06000860 = { - {{0x14, 0x0a, 0x00}, 0, {0x14, 0x0a, 0x00}, 0} -}; - -// 0x06000868 -static const Light koopa_flag_seg6_light_06000868 = { - {{0x50, 0x28, 0x00}, 0, {0x50, 0x28, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_flag_seg6_lights_06000860 = gdSPDefLights1( + 0x14, 0x0a, 0x00, + 0x50, 0x28, 0x00, 0x28, 0x28, 0x28 +); // 0x06000878 static const Vtx koopa_flag_seg6_vertex_06000878[] = { @@ -80,13 +60,13 @@ static const Vtx koopa_flag_seg6_vertex_060008C8[] = { // 0x06000968 - 0x06000A08 const Gfx koopa_flag_seg6_dl_06000968[] = { - gsSPLight(&koopa_flag_seg6_light_06000850, 1), - gsSPLight(&koopa_flag_seg6_light_06000848, 2), + gsSPLight(&koopa_flag_seg6_lights_06000848.l, 1), + gsSPLight(&koopa_flag_seg6_lights_06000848.a, 2), gsSPVertex(koopa_flag_seg6_vertex_06000878, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), gsSP1Triangle( 3, 0, 2, 0x0), - gsSPLight(&koopa_flag_seg6_light_06000868, 1), - gsSPLight(&koopa_flag_seg6_light_06000860, 2), + gsSPLight(&koopa_flag_seg6_lights_06000860.l, 1), + gsSPLight(&koopa_flag_seg6_lights_06000860.a, 2), gsSPVertex(koopa_flag_seg6_vertex_060008C8, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 4, 2, 1, 0x0, 5, 0, 3, 0x0), diff --git a/actors/koopa_shell/model.inc.c b/actors/koopa_shell/model.inc.c index b9a58ba..7e4042e 100644 --- a/actors/koopa_shell/model.inc.c +++ b/actors/koopa_shell/model.inc.c @@ -1,44 +1,28 @@ // Koopa Shell // 0x08026388 -static const Ambient koopa_shell_seg8_light_08026388 = { - {{0x11, 0x33, 0x06}, 0, {0x11, 0x33, 0x06}, 0} -}; - -// 0x08026390 -static const Light koopa_shell_seg8_light_08026390 = { - {{0x45, 0xcd, 0x1a}, 0, {0x45, 0xcd, 0x1a}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_shell_seg8_lights_08026388 = gdSPDefLights1( + 0x11, 0x33, 0x06, + 0x45, 0xcd, 0x1a, 0x28, 0x28, 0x28 +); // 0x080263A0 -static const Ambient koopa_shell_seg8_light_080263A0 = { - {{0x39, 0x0a, 0x07}, 0, {0x39, 0x0a, 0x07}, 0} -}; - -// 0x080263A8 -static const Light koopa_shell_seg8_light_080263A8 = { - {{0xe4, 0x29, 0x1d}, 0, {0xe4, 0x29, 0x1d}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_shell_seg8_lights_080263A0 = gdSPDefLights1( + 0x39, 0x0a, 0x07, + 0xe4, 0x29, 0x1d, 0x28, 0x28, 0x28 +); // 0x080263B8 -static const Ambient koopa_shell_seg8_light_080263B8 = { - {{0x21, 0x30, 0x39}, 0, {0x21, 0x30, 0x39}, 0} -}; - -// 0x080263C0 -static const Light koopa_shell_seg8_light_080263C0 = { - {{0x84, 0xc3, 0xe5}, 0, {0x84, 0xc3, 0xe5}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_shell_seg8_lights_080263B8 = gdSPDefLights1( + 0x21, 0x30, 0x39, + 0x84, 0xc3, 0xe5, 0x28, 0x28, 0x28 +); // 0x080263D0 -static const Ambient koopa_shell_seg8_light_080263D0 = { - {{0x3e, 0x3f, 0x3e}, 0, {0x3e, 0x3f, 0x3e}, 0} -}; - -// 0x080263D8 -static const Light koopa_shell_seg8_light_080263D8 = { - {{0xfa, 0xff, 0xf8}, 0, {0xfa, 0xff, 0xf8}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_shell_seg8_lights_080263D0 = gdSPDefLights1( + 0x3e, 0x3f, 0x3e, + 0xfa, 0xff, 0xf8, 0x28, 0x28, 0x28 +); // 0x080263E8 static const Vtx koopa_shell_seg8_vertex_080263E8[] = { @@ -385,51 +369,43 @@ const Gfx koopa_shell_seg8_dl_08027258[] = { // 0x080273C8 - 0x08027420 const Gfx koopa_shell_seg8_dl_080273C8[] = { gsDPPipeSync(), - gsSPNumLights(NUMLIGHTS_0), // I cannot tell if they meant to put 0 or 1 here. - gsSPLight(&koopa_shell_seg8_light_08026390, 1), - gsSPLight(&koopa_shell_seg8_light_08026388, 2), + gsSPNumLights(NUMLIGHTS_1), + gsSPLight(&koopa_shell_seg8_lights_08026388.l, 1), + gsSPLight(&koopa_shell_seg8_lights_08026388.a, 2), gsSPDisplayList(koopa_shell_seg8_dl_08027108), - gsSPLight(&koopa_shell_seg8_light_080263C0, 1), - gsSPLight(&koopa_shell_seg8_light_080263B8, 2), + gsSPLight(&koopa_shell_seg8_lights_080263B8.l, 1), + gsSPLight(&koopa_shell_seg8_lights_080263B8.a, 2), gsSPDisplayList(koopa_shell_seg8_dl_08027170), - gsSPLight(&koopa_shell_seg8_light_080263D8, 1), - gsSPLight(&koopa_shell_seg8_light_080263D0, 2), + gsSPLight(&koopa_shell_seg8_lights_080263D0.l, 1), + gsSPLight(&koopa_shell_seg8_lights_080263D0.a, 2), gsSPBranchList(koopa_shell_seg8_dl_08027258), }; // 0x08027420 - 0x08027470 const Gfx koopa_shell_seg8_dl_08027420[] = { gsDPPipeSync(), - gsSPLight(&koopa_shell_seg8_light_080263A8, 1), - gsSPLight(&koopa_shell_seg8_light_080263A0, 2), + gsSPLight(&koopa_shell_seg8_lights_080263A0.l, 1), + gsSPLight(&koopa_shell_seg8_lights_080263A0.a, 2), gsSPDisplayList(koopa_shell_seg8_dl_08027108), - gsSPLight(&koopa_shell_seg8_light_080263C0, 1), - gsSPLight(&koopa_shell_seg8_light_080263B8, 2), + gsSPLight(&koopa_shell_seg8_lights_080263B8.l, 1), + gsSPLight(&koopa_shell_seg8_lights_080263B8.a, 2), gsSPDisplayList(koopa_shell_seg8_dl_08027170), - gsSPLight(&koopa_shell_seg8_light_080263D8, 1), - gsSPLight(&koopa_shell_seg8_light_080263D0, 2), + gsSPLight(&koopa_shell_seg8_lights_080263D0.l, 1), + gsSPLight(&koopa_shell_seg8_lights_080263D0.a, 2), gsSPBranchList(koopa_shell_seg8_dl_08027258), }; // 0x08027470 -static const Ambient koopa_shell_seg8_light_08027470 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x08027478 -static const Light koopa_shell_seg8_light_08027478 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_shell_seg8_lights_08027470 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x08027488 -static const Ambient koopa_shell_seg8_light_08027488 = { - {{0x38, 0x2b, 0x00}, 0, {0x38, 0x2b, 0x00}, 0} -}; - -// 0x08027490 -static const Light koopa_shell_seg8_light_08027490 = { - {{0xe0, 0xae, 0x00}, 0, {0xe0, 0xae, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 koopa_shell_seg8_lights_08027488 = gdSPDefLights1( + 0x38, 0x2b, 0x00, + 0xe0, 0xae, 0x00, 0x28, 0x28, 0x28 +); // 0x080274A0 ALIGNED8 static const u8 koopa_shell_seg8_texture_080274A0[] = { @@ -538,8 +514,8 @@ const Gfx koopa_shell_seg8_dl_080288E0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, koopa_shell_seg8_texture_08027CA0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&koopa_shell_seg8_light_08027478, 1), - gsSPLight(&koopa_shell_seg8_light_08027470, 2), + gsSPLight(&koopa_shell_seg8_lights_08027470.l, 1), + gsSPLight(&koopa_shell_seg8_lights_08027470.a, 2), gsSPVertex(koopa_shell_seg8_vertex_080284A0, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 0, 4, 1, 0x0, 0, 5, 4, 0x0), @@ -569,13 +545,13 @@ const Gfx koopa_shell_seg8_dl_08028978[] = { // 0x08028A20 - 0x08028B78 const Gfx koopa_shell_seg8_dl_08028A20[] = { - gsSPLight(&koopa_shell_seg8_light_08027490, 1), - gsSPLight(&koopa_shell_seg8_light_08027488, 2), + gsSPLight(&koopa_shell_seg8_lights_08027488.l, 1), + gsSPLight(&koopa_shell_seg8_lights_08027488.a, 2), gsSPVertex(koopa_shell_seg8_vertex_08028620, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP1Triangle( 2, 4, 3, 0x0), - gsSPLight(&koopa_shell_seg8_light_08027478, 1), - gsSPLight(&koopa_shell_seg8_light_08027470, 2), + gsSPLight(&koopa_shell_seg8_lights_08027470.l, 1), + gsSPLight(&koopa_shell_seg8_lights_08027470.a, 2), gsSPVertex(koopa_shell_seg8_vertex_08028670, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 4, 1, 3, 0x0, 2, 1, 5, 0x0), diff --git a/actors/lakitu_cameraman/model.inc.c b/actors/lakitu_cameraman/model.inc.c index 2b54b5c..8db4d26 100644 --- a/actors/lakitu_cameraman/model.inc.c +++ b/actors/lakitu_cameraman/model.inc.c @@ -31,24 +31,16 @@ ALIGNED8 static const u8 lakitu_seg6_texture_06003800[] = { }; // 0x06003A00 -static const Ambient lakitu_seg6_light_06003A00 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x06003A08 -static const Light lakitu_seg6_light_06003A08 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 lakitu_seg6_lights_06003A00 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06003A18 -static const Ambient lakitu_seg6_light_06003A18 = { - {{0x79, 0x55, 0x00}, 0, {0x79, 0x55, 0x00}, 0} -}; - -// 0x06003A20 -static const Light lakitu_seg6_light_06003A20 = { - {{0xf2, 0xab, 0x00}, 0, {0xf2, 0xab, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 lakitu_seg6_lights_06003A18 = gdSPDefLights1( + 0x79, 0x55, 0x00, + 0xf2, 0xab, 0x00, 0x28, 0x28, 0x28 +); // 0x06003A30 static const Vtx lakitu_seg6_vertex_06003A30[] = { @@ -104,8 +96,8 @@ const Gfx lakitu_seg6_dl_06003C80[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lakitu_seg6_texture_06002800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lakitu_seg6_light_06003A08, 1), - gsSPLight(&lakitu_seg6_light_06003A00, 2), + gsSPLight(&lakitu_seg6_lights_06003A00.l, 1), + gsSPLight(&lakitu_seg6_lights_06003A00.a, 2), gsSPVertex(lakitu_seg6_vertex_06003A30, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 7, 0x0, 4, 7, 5, 0x0), @@ -128,8 +120,8 @@ const Gfx lakitu_seg6_dl_06003C80[] = { // 0x06003DB0 - 0x06003E30 const Gfx lakitu_seg6_dl_06003DB0[] = { - gsSPLight(&lakitu_seg6_light_06003A20, 1), - gsSPLight(&lakitu_seg6_light_06003A18, 2), + gsSPLight(&lakitu_seg6_lights_06003A18.l, 1), + gsSPLight(&lakitu_seg6_lights_06003A18.a, 2), gsSPVertex(lakitu_seg6_vertex_06003BD0, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), gsSP2Triangles( 1, 5, 2, 0x0, 4, 0, 2, 0x0), @@ -158,14 +150,10 @@ const Gfx lakitu_seg6_dl_06003E30[] = { }; // 0x06003E98 -static const Ambient lakitu_seg6_light_06003E98 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x06003EA0 -static const Light lakitu_seg6_light_06003EA0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 lakitu_seg6_lights_06003E98 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06003EB0 static const Vtx lakitu_seg6_vertex_06003EB0[] = { @@ -282,8 +270,8 @@ const Gfx lakitu_seg6_dl_06004410[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lakitu_seg6_texture_06003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lakitu_seg6_light_06003EA0, 1), - gsSPLight(&lakitu_seg6_light_06003E98, 2), + gsSPLight(&lakitu_seg6_lights_06003E98.l, 1), + gsSPLight(&lakitu_seg6_lights_06003E98.a, 2), gsSPVertex(lakitu_seg6_vertex_06003EB0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), gsSP2Triangles( 3, 5, 1, 0x0, 1, 6, 7, 0x0), @@ -345,14 +333,10 @@ const Gfx lakitu_seg6_dl_06004680[] = { }; // 0x060046E0 -static const Ambient lakitu_seg6_light_060046E0 = { - {{0x79, 0x55, 0x00}, 0, {0x79, 0x55, 0x00}, 0} -}; - -// 0x060046E8 -static const Light lakitu_seg6_light_060046E8 = { - {{0xf2, 0xab, 0x00}, 0, {0xf2, 0xab, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 lakitu_seg6_lights_060046E0 = gdSPDefLights1( + 0x79, 0x55, 0x00, + 0xf2, 0xab, 0x00, 0x28, 0x28, 0x28 +); // 0x060046F8 static const Vtx lakitu_seg6_vertex_060046F8[] = { @@ -375,8 +359,8 @@ static const Vtx lakitu_seg6_vertex_060046F8[] = { // 0x060047E8 - 0x060048D8 const Gfx lakitu_seg6_dl_060047E8[] = { - gsSPLight(&lakitu_seg6_light_060046E8, 1), - gsSPLight(&lakitu_seg6_light_060046E0, 2), + gsSPLight(&lakitu_seg6_lights_060046E0.l, 1), + gsSPLight(&lakitu_seg6_lights_060046E0.a, 2), gsSPVertex(lakitu_seg6_vertex_060046F8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 7, 0x0, 4, 7, 5, 0x0), @@ -395,14 +379,10 @@ const Gfx lakitu_seg6_dl_060047E8[] = { }; // 0x060048D8 -static const Ambient lakitu_seg6_light_060048D8 = { - {{0x79, 0x55, 0x00}, 0, {0x79, 0x55, 0x00}, 0} -}; - -// 0x060048E0 -static const Light lakitu_seg6_light_060048E0 = { - {{0xf2, 0xab, 0x00}, 0, {0xf2, 0xab, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 lakitu_seg6_lights_060048D8 = gdSPDefLights1( + 0x79, 0x55, 0x00, + 0xf2, 0xab, 0x00, 0x28, 0x28, 0x28 +); // 0x060048F0 static const Vtx lakitu_seg6_vertex_060048F0[] = { @@ -425,8 +405,8 @@ static const Vtx lakitu_seg6_vertex_060048F0[] = { // 0x060049E0 - 0x06004AD0 const Gfx lakitu_seg6_dl_060049E0[] = { - gsSPLight(&lakitu_seg6_light_060048E0, 1), - gsSPLight(&lakitu_seg6_light_060048D8, 2), + gsSPLight(&lakitu_seg6_lights_060048D8.l, 1), + gsSPLight(&lakitu_seg6_lights_060048D8.a, 2), gsSPVertex(lakitu_seg6_vertex_060048F0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 3, 7, 4, 0x0), @@ -445,14 +425,10 @@ const Gfx lakitu_seg6_dl_060049E0[] = { }; // 0x06004AD0 -static const Ambient lakitu_seg6_light_06004AD0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x06004AD8 -static const Light lakitu_seg6_light_06004AD8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 lakitu_seg6_lights_06004AD0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06004AE8 static const Vtx lakitu_seg6_vertex_06004AE8[] = { @@ -472,8 +448,8 @@ static const Vtx lakitu_seg6_vertex_06004AE8[] = { // 0x06004BA8 - 0x06004BE8 const Gfx lakitu_seg6_dl_06004BA8[] = { - gsSPLight(&lakitu_seg6_light_06004AD8, 1), - gsSPLight(&lakitu_seg6_light_06004AD0, 2), + gsSPLight(&lakitu_seg6_lights_06004AD0.l, 1), + gsSPLight(&lakitu_seg6_lights_06004AD0.a, 2), gsSPVertex(lakitu_seg6_vertex_06004AE8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -522,44 +498,28 @@ const Gfx lakitu_seg6_dl_06004C88[] = { }; // 0x06004CB0 -static const Ambient lakitu_seg6_light_06004CB0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x06004CB8 -static const Light lakitu_seg6_light_06004CB8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 lakitu_seg6_lights_06004CB0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06004CC8 -static const Ambient lakitu_seg6_light_06004CC8 = { - {{0x0c, 0x0c, 0x0c}, 0, {0x0c, 0x0c, 0x0c}, 0} -}; - -// 0x06004CD0 -static const Light lakitu_seg6_light_06004CD0 = { - {{0x19, 0x19, 0x19}, 0, {0x19, 0x19, 0x19}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 lakitu_seg6_lights_06004CC8 = gdSPDefLights1( + 0x0c, 0x0c, 0x0c, + 0x19, 0x19, 0x19, 0x28, 0x28, 0x28 +); // 0x06004CE0 -static const Ambient lakitu_seg6_light_06004CE0 = { - {{0x19, 0x22, 0x20}, 0, {0x19, 0x22, 0x20}, 0} -}; - -// 0x06004CE8 -static const Light lakitu_seg6_light_06004CE8 = { - {{0x32, 0x44, 0x40}, 0, {0x32, 0x44, 0x40}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 lakitu_seg6_lights_06004CE0 = gdSPDefLights1( + 0x19, 0x22, 0x20, + 0x32, 0x44, 0x40, 0x28, 0x28, 0x28 +); // 0x06004CF8 -static const Ambient lakitu_seg6_light_06004CF8 = { - {{0x18, 0x18, 0x18}, 0, {0x18, 0x18, 0x18}, 0} -}; - -// 0x06004D00 -static const Light lakitu_seg6_light_06004D00 = { - {{0x30, 0x30, 0x30}, 0, {0x30, 0x30, 0x30}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 lakitu_seg6_lights_06004CF8 = gdSPDefLights1( + 0x18, 0x18, 0x18, + 0x30, 0x30, 0x30, 0x28, 0x28, 0x28 +); // 0x06004D10 static const Vtx lakitu_seg6_vertex_06004D10[] = { @@ -670,8 +630,8 @@ const Gfx lakitu_seg6_dl_060051D0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lakitu_seg6_texture_06003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 16 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lakitu_seg6_light_06004CB8, 1), - gsSPLight(&lakitu_seg6_light_06004CB0, 2), + gsSPLight(&lakitu_seg6_lights_06004CB0.l, 1), + gsSPLight(&lakitu_seg6_lights_06004CB0.a, 2), gsSPVertex(lakitu_seg6_vertex_06004D10, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -679,8 +639,8 @@ const Gfx lakitu_seg6_dl_060051D0[] = { // 0x06005218 - 0x06005360 const Gfx lakitu_seg6_dl_06005218[] = { - gsSPLight(&lakitu_seg6_light_06004CD0, 1), - gsSPLight(&lakitu_seg6_light_06004CC8, 2), + gsSPLight(&lakitu_seg6_lights_06004CC8.l, 1), + gsSPLight(&lakitu_seg6_lights_06004CC8.a, 2), gsSPVertex(lakitu_seg6_vertex_06004D50, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -691,8 +651,8 @@ const Gfx lakitu_seg6_dl_06005218[] = { gsSP1Triangle(12, 13, 14, 0x0), gsSPVertex(lakitu_seg6_vertex_06004F30, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&lakitu_seg6_light_06004CE8, 1), - gsSPLight(&lakitu_seg6_light_06004CE0, 2), + gsSPLight(&lakitu_seg6_lights_06004CE0.l, 1), + gsSPLight(&lakitu_seg6_lights_06004CE0.a, 2), gsSPVertex(lakitu_seg6_vertex_06004F90, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 0, 7, 1, 0x0), @@ -701,8 +661,8 @@ const Gfx lakitu_seg6_dl_06005218[] = { gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0), - gsSPLight(&lakitu_seg6_light_06004D00, 1), - gsSPLight(&lakitu_seg6_light_06004CF8, 2), + gsSPLight(&lakitu_seg6_lights_06004CF8.l, 1), + gsSPLight(&lakitu_seg6_lights_06004CF8.a, 2), gsSPVertex(lakitu_seg6_vertex_06005150, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 1, 6, 0x0), @@ -728,65 +688,41 @@ const Gfx lakitu_seg6_dl_06005360[] = { gsSPEndDisplayList(), }; -// unreferenced light? -UNUSED static const Ambient lakitu_cameraman_light_1 = { - {{0x33, 0x1f, 0x0c}, 0, {0x33, 0x1f, 0x0c}, 0} -}; - -// unreferenced light? -UNUSED static const Light lakitu_cameraman_light_2 = { - {{0xcc, 0x7f, 0x33}, 0, {0xcc, 0x7f, 0x33}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 lakitu_cameraman_lights_unused1 = gdSPDefLights1( + 0x33, 0x1f, 0x0c, + 0xcc, 0x7f, 0x33, 0x28, 0x28, 0x28 +); // 0x060053F0 -static const Ambient lakitu_seg6_light_060053F0 = { - {{0x29, 0x13, 0x06}, 0, {0x29, 0x13, 0x06}, 0} -}; +static const Lights1 lakitu_seg6_lights_060053F0 = gdSPDefLights1( + 0x29, 0x13, 0x06, + 0xa5, 0x4f, 0x1b, 0x28, 0x28, 0x28 +); -// 0x060053F8 -static const Light lakitu_seg6_light_060053F8 = { - {{0xa5, 0x4f, 0x1b}, 0, {0xa5, 0x4f, 0x1b}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 lakitu_cameraman_lights_unused2 = gdSPDefLights1( + 0x06, 0x06, 0x06, + 0x19, 0x19, 0x19, 0x28, 0x28, 0x28 +); -// unreferenced light? -UNUSED static const Ambient lakitu_cameraman_light_3 = { - {{0x06, 0x06, 0x06}, 0, {0x06, 0x06, 0x06}, 0} -}; - -// unreferenced light? -UNUSED static const Light lakitu_cameraman_light_4 = { - {{0x19, 0x19, 0x19}, 0, {0x19, 0x19, 0x19}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// unreferenced light? -UNUSED static const Ambient lakitu_cameraman_light_5 = { - {{0x2c, 0x2c, 0x2c}, 0, {0x2c, 0x2c, 0x2c}, 0} -}; - -// unreferenced light? -UNUSED static const Light lakitu_cameraman_light_6 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 lakitu_cameraman_lights_unused3 = gdSPDefLights1( + 0x2c, 0x2c, 0x2c, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); // 0x06005438 -static const Ambient lakitu_seg6_light_06005438 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; +static const Lights1 lakitu_seg6_lights_06005438 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x06005440 -static const Light lakitu_seg6_light_06005440 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// unreferenced light? -UNUSED static const Ambient lakitu_cameraman_light_7 = { - {{0x0d, 0x2c, 0x0b}, 0, {0x0d, 0x2c, 0x0b}, 0} -}; - -// unreferenced light? -UNUSED static const Light lakitu_cameraman_light_8 = { - {{0x34, 0xb2, 0x2c}, 0, {0x34, 0xb2, 0x2c}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 lakitu_cameraman_lights_unused4 = gdSPDefLights1( + 0x0d, 0x2c, 0x0b, + 0x34, 0xb2, 0x2c, 0x28, 0x28, 0x28 +); // 0x06005468 static const Vtx lakitu_seg6_vertex_06005468[] = { @@ -821,8 +757,8 @@ static const Vtx lakitu_seg6_vertex_06005568[] = { // 0x06005598 - 0x060055E8 const Gfx lakitu_seg6_dl_06005598[] = { - gsSPLight(&lakitu_seg6_light_060053F8, 1), - gsSPLight(&lakitu_seg6_light_060053F0, 2), + gsSPLight(&lakitu_seg6_lights_060053F0.l, 1), + gsSPLight(&lakitu_seg6_lights_060053F0.a, 2), gsSPVertex(lakitu_seg6_vertex_06005468, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 0, 2, 0x0, 7, 8, 9, 0x0), @@ -832,8 +768,8 @@ const Gfx lakitu_seg6_dl_06005598[] = { // 0x060055E8 - 0x06005610 const Gfx lakitu_seg6_dl_060055E8[] = { - gsSPLight(&lakitu_seg6_light_06005440, 1), - gsSPLight(&lakitu_seg6_light_06005438, 2), + gsSPLight(&lakitu_seg6_lights_06005438.l, 1), + gsSPLight(&lakitu_seg6_lights_06005438.a, 2), gsSPVertex(lakitu_seg6_vertex_06005538, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), gsSPEndDisplayList(), @@ -841,8 +777,8 @@ const Gfx lakitu_seg6_dl_060055E8[] = { // 0x06005610 - 0x06005638 const Gfx lakitu_seg6_dl_06005610[] = { - gsSPLight(&lakitu_seg6_light_06005440, 1), - gsSPLight(&lakitu_seg6_light_06005438, 2), + gsSPLight(&lakitu_seg6_lights_06005438.l, 1), + gsSPLight(&lakitu_seg6_lights_06005438.a, 2), gsSPVertex(lakitu_seg6_vertex_06005568, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), gsSPEndDisplayList(), diff --git a/actors/lakitu_enemy/model.inc.c b/actors/lakitu_enemy/model.inc.c index 14dad05..0cc4183 100644 --- a/actors/lakitu_enemy/model.inc.c +++ b/actors/lakitu_enemy/model.inc.c @@ -1,34 +1,22 @@ // Lakitu Enemy -// Unreferenced light -UNUSED static const Ambient lakitu_enemy_light_1 = { - {{0x33, 0x1f, 0x0c}, 0, {0x33, 0x1f, 0x0c}, 0} -}; - -// Unreferenced light -UNUSED static const Light lakitu_enemy_light_2 = { - {{0xcc, 0x7f, 0x33}, 0, {0xcc, 0x7f, 0x33}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 lakitu_enemy_lights_unused1 = gdSPDefLights1( + 0x33, 0x1f, 0x0c, + 0xcc, 0x7f, 0x33, 0x28, 0x28, 0x28 +); // 0x0500ECB0 -static const Ambient lakitu_enemy_seg5_light_0500ECB0 = { - {{0x29, 0x13, 0x06}, 0, {0x29, 0x13, 0x06}, 0} -}; +static const Lights1 lakitu_enemy_seg5_lights_0500ECB0 = gdSPDefLights1( + 0x29, 0x13, 0x06, + 0xa5, 0x4f, 0x1b, 0x28, 0x28, 0x28 +); -// 0x0500ECB8 -static const Light lakitu_enemy_seg5_light_0500ECB8 = { - {{0xa5, 0x4f, 0x1b}, 0, {0xa5, 0x4f, 0x1b}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient lakitu_enemy_light_3 = { - {{0x0d, 0x2c, 0x0b}, 0, {0x0d, 0x2c, 0x0b}, 0} -}; - -// Unreferenced light -UNUSED static const Light lakitu_enemy_light_4 = { - {{0x34, 0xb2, 0x2c}, 0, {0x34, 0xb2, 0x2c}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 lakitu_enemy_lights_unused2 = gdSPDefLights1( + 0x0d, 0x2c, 0x0b, + 0x34, 0xb2, 0x2c, 0x28, 0x28, 0x28 +); // Unreferenced texture // 0x0500ECE0 @@ -57,24 +45,16 @@ ALIGNED8 static const u8 lakitu_enemy_seg5_texture_05011CE0[] = { }; // 0x050124E0 -static const Ambient lakitu_enemy_seg5_light_050124E0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x050124E8 -static const Light lakitu_enemy_seg5_light_050124E8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 lakitu_enemy_seg5_lights_050124E0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x050124F8 -static const Ambient lakitu_enemy_seg5_light_050124F8 = { - {{0x79, 0x55, 0x00}, 0, {0x79, 0x55, 0x00}, 0} -}; - -// 0x05012500 -static const Light lakitu_enemy_seg5_light_05012500 = { - {{0xf2, 0xab, 0x00}, 0, {0xf2, 0xab, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 lakitu_enemy_seg5_lights_050124F8 = gdSPDefLights1( + 0x79, 0x55, 0x00, + 0xf2, 0xab, 0x00, 0x28, 0x28, 0x28 +); // 0x05012510 static const Vtx lakitu_enemy_seg5_vertex_05012510[] = { @@ -130,8 +110,8 @@ const Gfx lakitu_enemy_seg5_dl_05012760[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lakitu_enemy_seg5_texture_050114E0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lakitu_enemy_seg5_light_050124E8, 1), - gsSPLight(&lakitu_enemy_seg5_light_050124E0, 2), + gsSPLight(&lakitu_enemy_seg5_lights_050124E0.l, 1), + gsSPLight(&lakitu_enemy_seg5_lights_050124E0.a, 2), gsSPVertex(lakitu_enemy_seg5_vertex_05012510, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 7, 0x0, 4, 7, 5, 0x0), @@ -154,8 +134,8 @@ const Gfx lakitu_enemy_seg5_dl_05012760[] = { // 0x05012890 - 0x05012910 const Gfx lakitu_enemy_seg5_dl_05012890[] = { - gsSPLight(&lakitu_enemy_seg5_light_05012500, 1), - gsSPLight(&lakitu_enemy_seg5_light_050124F8, 2), + gsSPLight(&lakitu_enemy_seg5_lights_050124F8.l, 1), + gsSPLight(&lakitu_enemy_seg5_lights_050124F8.a, 2), gsSPVertex(lakitu_enemy_seg5_vertex_050126B0, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), gsSP2Triangles( 1, 5, 2, 0x0, 4, 0, 2, 0x0), @@ -184,14 +164,10 @@ const Gfx lakitu_enemy_seg5_dl_05012910[] = { }; // 0x05012978 -static const Ambient lakitu_enemy_seg5_light_05012978 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05012980 -static const Light lakitu_enemy_seg5_light_05012980 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 lakitu_enemy_seg5_lights_05012978 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05012990 static const Vtx lakitu_enemy_seg5_vertex_05012990[] = { @@ -308,8 +284,8 @@ const Gfx lakitu_enemy_seg5_dl_05012EF0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lakitu_enemy_seg5_texture_05011CE0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lakitu_enemy_seg5_light_05012980, 1), - gsSPLight(&lakitu_enemy_seg5_light_05012978, 2), + gsSPLight(&lakitu_enemy_seg5_lights_05012978.l, 1), + gsSPLight(&lakitu_enemy_seg5_lights_05012978.a, 2), gsSPVertex(lakitu_enemy_seg5_vertex_05012990, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), gsSP2Triangles( 3, 5, 1, 0x0, 1, 6, 7, 0x0), @@ -371,14 +347,10 @@ const Gfx lakitu_enemy_seg5_dl_05013160[] = { }; // 0x050131C0 -static const Ambient lakitu_enemy_seg5_light_050131C0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x050131C8 -static const Light lakitu_enemy_seg5_light_050131C8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 lakitu_enemy_seg5_lights_050131C0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x050131D8 static const Vtx lakitu_enemy_seg5_vertex_050131D8[] = { @@ -398,8 +370,8 @@ static const Vtx lakitu_enemy_seg5_vertex_050131D8[] = { // 0x05013298 - 0x050132D8 const Gfx lakitu_enemy_seg5_dl_05013298[] = { - gsSPLight(&lakitu_enemy_seg5_light_050131C8, 1), - gsSPLight(&lakitu_enemy_seg5_light_050131C0, 2), + gsSPLight(&lakitu_enemy_seg5_lights_050131C0.l, 1), + gsSPLight(&lakitu_enemy_seg5_lights_050131C0.a, 2), gsSPVertex(lakitu_enemy_seg5_vertex_050131D8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -448,14 +420,10 @@ const Gfx lakitu_enemy_seg5_dl_05013378[] = { }; // 0x050133A0 -static const Ambient lakitu_enemy_seg5_light_050133A0 = { - {{0x79, 0x55, 0x00}, 0, {0x79, 0x55, 0x00}, 0} -}; - -// 0x050133A8 -static const Light lakitu_enemy_seg5_light_050133A8 = { - {{0xf2, 0xab, 0x00}, 0, {0xf2, 0xab, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 lakitu_enemy_seg5_lights_050133A0 = gdSPDefLights1( + 0x79, 0x55, 0x00, + 0xf2, 0xab, 0x00, 0x28, 0x28, 0x28 +); // 0x050133B8 static const Vtx lakitu_enemy_seg5_vertex_050133B8[] = { @@ -478,8 +446,8 @@ static const Vtx lakitu_enemy_seg5_vertex_050133B8[] = { // 0x050134A8 - 0x05013598 const Gfx lakitu_enemy_seg5_dl_050134A8[] = { - gsSPLight(&lakitu_enemy_seg5_light_050133A8, 1), - gsSPLight(&lakitu_enemy_seg5_light_050133A0, 2), + gsSPLight(&lakitu_enemy_seg5_lights_050133A0.l, 1), + gsSPLight(&lakitu_enemy_seg5_lights_050133A0.a, 2), gsSPVertex(lakitu_enemy_seg5_vertex_050133B8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 3, 7, 4, 0x0), @@ -498,14 +466,10 @@ const Gfx lakitu_enemy_seg5_dl_050134A8[] = { }; // 0x05013598 -static const Ambient lakitu_enemy_seg5_light_05013598 = { - {{0x79, 0x55, 0x00}, 0, {0x79, 0x55, 0x00}, 0} -}; - -// 0x050135A0 -static const Light lakitu_enemy_seg5_light_050135A0 = { - {{0xf2, 0xab, 0x00}, 0, {0xf2, 0xab, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 lakitu_enemy_seg5_lights_05013598 = gdSPDefLights1( + 0x79, 0x55, 0x00, + 0xf2, 0xab, 0x00, 0x28, 0x28, 0x28 +); // 0x050135B0 static const Vtx lakitu_enemy_seg5_vertex_050135B0[] = { @@ -528,8 +492,8 @@ static const Vtx lakitu_enemy_seg5_vertex_050135B0[] = { // 0x050136A0 - 0x05013790 const Gfx lakitu_enemy_seg5_dl_050136A0[] = { - gsSPLight(&lakitu_enemy_seg5_light_050135A0, 1), - gsSPLight(&lakitu_enemy_seg5_light_05013598, 2), + gsSPLight(&lakitu_enemy_seg5_lights_05013598.l, 1), + gsSPLight(&lakitu_enemy_seg5_lights_05013598.a, 2), gsSPVertex(lakitu_enemy_seg5_vertex_050135B0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 7, 0x0, 4, 7, 5, 0x0), @@ -566,8 +530,8 @@ static const Vtx lakitu_enemy_seg5_vertex_05013790[] = { // 0x05013860 - 0x050138B0 const Gfx lakitu_enemy_seg5_dl_05013860[] = { - gsSPLight(&lakitu_enemy_seg5_light_0500ECB8, 1), - gsSPLight(&lakitu_enemy_seg5_light_0500ECB0, 2), + gsSPLight(&lakitu_enemy_seg5_lights_0500ECB0.l, 1), + gsSPLight(&lakitu_enemy_seg5_lights_0500ECB0.a, 2), gsSPVertex(lakitu_enemy_seg5_vertex_05013790, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 0, 2, 0x0, 7, 8, 9, 0x0), @@ -577,6 +541,6 @@ const Gfx lakitu_enemy_seg5_dl_05013860[] = { // 0x050138B0 - 0x050138C0 const Gfx lakitu_enemy_seg5_dl_050138B0[] = { - gsSPNumLights(NUMLIGHTS_0), // I cannot tell if they meant to put 0 or 1 here. + gsSPNumLights(NUMLIGHTS_1), gsSPEndDisplayList(), }; diff --git a/actors/mad_piano/model.inc.c b/actors/mad_piano/model.inc.c index 9af3176..8240963 100644 --- a/actors/mad_piano/model.inc.c +++ b/actors/mad_piano/model.inc.c @@ -1,44 +1,28 @@ // Mad Piano -// Unreferenced light -UNUSED static const Ambient mad_piano_light_1 = { - {{0x05, 0x04, 0x08}, 0, {0x05, 0x04, 0x08}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 mad_piano_lights_unused1 = gdSPDefLights1( + 0x05, 0x04, 0x08, + 0x14, 0x13, 0x20, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light mad_piano_light_2 = { - {{0x14, 0x13, 0x20}, 0, {0x14, 0x13, 0x20}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 mad_piano_lights_unused2 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient mad_piano_light_3 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 mad_piano_lights_unused3 = gdSPDefLights1( + 0x2c, 0x2c, 0x2c, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light mad_piano_light_4 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient mad_piano_light_5 = { - {{0x2c, 0x2c, 0x2c}, 0, {0x2c, 0x2c, 0x2c}, 0} -}; - -// Unreferenced light -UNUSED static const Light mad_piano_light_6 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient mad_piano_light_7 = { - {{0x30, 0x00, 0x00}, 0, {0x30, 0x00, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light mad_piano_light_8 = { - {{0xc3, 0x00, 0x00}, 0, {0xc3, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 mad_piano_lights_unused4 = gdSPDefLights1( + 0x30, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x05006AF0 ALIGNED8 static const u8 mad_piano_seg5_texture_05006AF0[] = { @@ -71,14 +55,10 @@ ALIGNED8 static const u8 mad_piano_seg5_texture_050082F0[] = { }; // 0x050086F0 -static const Ambient mad_piano_seg5_light_050086F0 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x050086F8 -static const Light mad_piano_seg5_light_050086F8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mad_piano_seg5_lights_050086F0 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05008708 static const Vtx mad_piano_seg5_vertex_05008708[] = { @@ -175,8 +155,8 @@ const Gfx mad_piano_seg5_dl_05008B68[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mad_piano_seg5_texture_050072F0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mad_piano_seg5_light_050086F8, 1), - gsSPLight(&mad_piano_seg5_light_050086F0, 2), + gsSPLight(&mad_piano_seg5_lights_050086F0.l, 1), + gsSPLight(&mad_piano_seg5_lights_050086F0.a, 2), gsSPVertex(mad_piano_seg5_vertex_05008708, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 0, 2, 6, 0x0, 0, 7, 8, 0x0), @@ -231,44 +211,28 @@ const Gfx mad_piano_seg5_dl_05008CB0[] = { }; // 0x05008D40 -static const Ambient mad_piano_seg5_light_05008D40 = { - {{0x3d, 0x3d, 0x3d}, 0, {0x3d, 0x3d, 0x3d}, 0} -}; - -// 0x05008D48 -static const Light mad_piano_seg5_light_05008D48 = { - {{0xcc, 0xcc, 0xcc}, 0, {0xcc, 0xcc, 0xcc}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mad_piano_seg5_lights_05008D40 = gdSPDefLights1( + 0x3d, 0x3d, 0x3d, + 0xcc, 0xcc, 0xcc, 0x28, 0x28, 0x28 +); // 0x05008D58 -static const Ambient mad_piano_seg5_light_05008D58 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x05008D60 -static const Light mad_piano_seg5_light_05008D60 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mad_piano_seg5_lights_05008D58 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05008D70 -static const Ambient mad_piano_seg5_light_05008D70 = { - {{0x26, 0x26, 0x26}, 0, {0x26, 0x26, 0x26}, 0} -}; - -// 0x05008D78 -static const Light mad_piano_seg5_light_05008D78 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mad_piano_seg5_lights_05008D70 = gdSPDefLights1( + 0x26, 0x26, 0x26, + 0x7f, 0x7f, 0x7f, 0x28, 0x28, 0x28 +); // 0x05008D88 -static const Ambient mad_piano_seg5_light_05008D88 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x05008D90 -static const Light mad_piano_seg5_light_05008D90 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mad_piano_seg5_lights_05008D88 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x05008DA0 static const Vtx mad_piano_seg5_vertex_05008DA0[] = { @@ -446,16 +410,16 @@ const Gfx mad_piano_seg5_dl_05009590[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mad_piano_seg5_texture_050072F0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mad_piano_seg5_light_05008D48, 1), - gsSPLight(&mad_piano_seg5_light_05008D40, 2), + gsSPLight(&mad_piano_seg5_lights_05008D40.l, 1), + gsSPLight(&mad_piano_seg5_lights_05008D40.a, 2), gsSPVertex(mad_piano_seg5_vertex_05008DA0, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 10, 8, 0x0, 11, 7, 9, 0x0), gsSP2Triangles(11, 9, 1, 0x0, 0, 12, 11, 0x0), gsSP1Triangle( 0, 11, 1, 0x0), - gsSPLight(&mad_piano_seg5_light_05008D60, 1), - gsSPLight(&mad_piano_seg5_light_05008D58, 2), + gsSPLight(&mad_piano_seg5_lights_05008D58.l, 1), + gsSPLight(&mad_piano_seg5_lights_05008D58.a, 2), gsSPVertex(mad_piano_seg5_vertex_05008E70, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -500,8 +464,8 @@ const Gfx mad_piano_seg5_dl_050097B0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mad_piano_seg5_texture_050082F0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mad_piano_seg5_light_05008D78, 1), - gsSPLight(&mad_piano_seg5_light_05008D70, 2), + gsSPLight(&mad_piano_seg5_lights_05008D70.l, 1), + gsSPLight(&mad_piano_seg5_lights_05008D70.a, 2), gsSPVertex(mad_piano_seg5_vertex_050093F0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -512,8 +476,8 @@ const Gfx mad_piano_seg5_dl_050097F8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mad_piano_seg5_texture_05007EF0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mad_piano_seg5_light_05008D48, 1), - gsSPLight(&mad_piano_seg5_light_05008D40, 2), + gsSPLight(&mad_piano_seg5_lights_05008D40.l, 1), + gsSPLight(&mad_piano_seg5_lights_05008D40.a, 2), gsSPVertex(mad_piano_seg5_vertex_05009430, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -532,8 +496,8 @@ const Gfx mad_piano_seg5_dl_05009840[] = { // 0x05009888 - 0x050098E8 const Gfx mad_piano_seg5_dl_05009888[] = { - gsSPLight(&mad_piano_seg5_light_05008D90, 1), - gsSPLight(&mad_piano_seg5_light_05008D88, 2), + gsSPLight(&mad_piano_seg5_lights_05008D88.l, 1), + gsSPLight(&mad_piano_seg5_lights_05008D88.a, 2), gsSPVertex(mad_piano_seg5_vertex_050094F0, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 2, 4, 3, 0x0, 2, 5, 4, 0x0), diff --git a/actors/manta/model.inc.c b/actors/manta/model.inc.c index 613bb51..7246230 100644 --- a/actors/manta/model.inc.c +++ b/actors/manta/model.inc.c @@ -1,34 +1,22 @@ // Manta Ray // 0x05001758 -static const Ambient manta_seg5_light_05001758 = { - {{0x31, 0x3b, 0x3b}, 0, {0x31, 0x3b, 0x3b}, 0} -}; - -// 0x05001760 -static const Light manta_seg5_light_05001760 = { - {{0xc6, 0xee, 0xed}, 0, {0xc6, 0xee, 0xed}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 manta_seg5_lights_05001758 = gdSPDefLights1( + 0x31, 0x3b, 0x3b, + 0xc6, 0xee, 0xed, 0x28, 0x28, 0x28 +); // 0x05001770 -static const Ambient manta_seg5_light_05001770 = { - {{0x00, 0x16, 0x18}, 0, {0x00, 0x16, 0x18}, 0} -}; +static const Lights1 manta_seg5_lights_05001770 = gdSPDefLights1( + 0x00, 0x16, 0x18, + 0x03, 0x5b, 0x63, 0x28, 0x28, 0x28 +); -// 0x05001778 -static const Light manta_seg5_light_05001778 = { - {{0x03, 0x5b, 0x63}, 0, {0x03, 0x5b, 0x63}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient manta_light_1 = { - {{0x3f, 0x3f, 0x35}, 0, {0x3f, 0x3f, 0x35}, 0} -}; - -// Unreferenced light -UNUSED static const Light manta_light_2 = { - {{0xff, 0xff, 0xd7}, 0, {0xff, 0xff, 0xd7}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +static const Lights1 manta_lights_unused = gdSPDefLights1( + 0x3f, 0x3f, 0x35, + 0xff, 0xff, 0xd7, 0x28, 0x28, 0x28 +); // 0x050017A0 ALIGNED8 static const u8 manta_seg5_texture_050017A0[] = { @@ -1049,13 +1037,13 @@ static const Vtx manta_seg5_vertex_05006A88[] = { // 0x05006B08 - 0x05006B70 const Gfx manta_seg5_dl_05006B08[] = { - gsSPLight(&manta_seg5_light_05001778, 1), - gsSPLight(&manta_seg5_light_05001770, 2), + gsSPLight(&manta_seg5_lights_05001770.l, 1), + gsSPLight(&manta_seg5_lights_05001770.a, 2), gsSPVertex(manta_seg5_vertex_05006808, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), gsSP2Triangles( 1, 4, 2, 0x0, 1, 0, 5, 0x0), - gsSPLight(&manta_seg5_light_05001760, 1), - gsSPLight(&manta_seg5_light_05001758, 2), + gsSPLight(&manta_seg5_lights_05001758.l, 1), + gsSPLight(&manta_seg5_lights_05001758.a, 2), gsSPVertex(manta_seg5_vertex_05006868, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), @@ -1063,15 +1051,15 @@ const Gfx manta_seg5_dl_05006B08[] = { // 0x05006B70 - 0x05006C08 const Gfx manta_seg5_dl_05006B70[] = { - gsSPLight(&manta_seg5_light_05001778, 1), - gsSPLight(&manta_seg5_light_05001770, 2), + gsSPLight(&manta_seg5_lights_05001770.l, 1), + gsSPLight(&manta_seg5_lights_05001770.a, 2), gsSPVertex(manta_seg5_vertex_050068C8, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 1, 7, 2, 0x0), gsSP2Triangles( 5, 1, 0, 0x0, 5, 0, 3, 0x0), gsSP2Triangles( 6, 7, 1, 0x0, 6, 1, 5, 0x0), - gsSPLight(&manta_seg5_light_05001760, 1), - gsSPLight(&manta_seg5_light_05001758, 2), + gsSPLight(&manta_seg5_lights_05001758.l, 1), + gsSPLight(&manta_seg5_lights_05001758.a, 2), gsSPVertex(manta_seg5_vertex_05006948, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 5, 7, 3, 0x0), @@ -1080,15 +1068,15 @@ const Gfx manta_seg5_dl_05006B70[] = { // 0x05006C08 - 0x05006CA0 const Gfx manta_seg5_dl_05006C08[] = { - gsSPLight(&manta_seg5_light_05001778, 1), - gsSPLight(&manta_seg5_light_05001770, 2), + gsSPLight(&manta_seg5_lights_05001770.l, 1), + gsSPLight(&manta_seg5_lights_05001770.a, 2), gsSPVertex(manta_seg5_vertex_050069C8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 1, 7, 2, 0x0), gsSP2Triangles( 5, 8, 9, 0x0, 5, 9, 3, 0x0), gsSP2Triangles( 6, 10, 11, 0x0, 6, 11, 5, 0x0), - gsSPLight(&manta_seg5_light_05001760, 1), - gsSPLight(&manta_seg5_light_05001758, 2), + gsSPLight(&manta_seg5_lights_05001758.l, 1), + gsSPLight(&manta_seg5_lights_05001758.a, 2), gsSPVertex(manta_seg5_vertex_05006A88, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 5, 7, 3, 0x0), diff --git a/actors/mario/model.inc.c b/actors/mario/model.inc.c index d5b5078..9d39ba2 100644 --- a/actors/mario/model.inc.c +++ b/actors/mario/model.inc.c @@ -1,64 +1,40 @@ // Mario -// 0x04000000 # solid color dark blue - butt, left thigh, right thigh - all polys -static const Ambient mario_amb_light_group1 = { - {{0x00, 0x00, 0x7f}, 0, {0x00, 0x00, 0x7f}, 0} -}; +// 0x04000000 # solid color blue - butt, left thigh, right thigh - all poly types +static const Lights1 mario_blue_lights_group = gdSPDefLights1( + 0x00, 0x00, 0x7f, + 0x00, 0x00, 0xff, 0x28, 0x28, 0x28 +); -// 0x04000008 # solid color light blue - butt, left thigh, right thigh - all polys -static const Light mario_diff_light_group1 = { - {{0x00, 0x00, 0xff}, 0, {0x00, 0x00, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x04000018 # solid color red - left & right arm, torso (tshirt part), caps - all poly types +static const Lights1 mario_red_lights_group = gdSPDefLights1( + 0x7f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x04000018 # solid color dark red - left & right arm, torso (tshirt part), caps - all polys -static const Ambient mario_amb_light_group2 = { - {{0x7f, 0x00, 0x00}, 0, {0x7f, 0x00, 0x00}, 0} -}; +// 0x04000030 # solid color white - metal butt & left thigh - normal left & right hand closed & open (with cap too) and all wings - all poly types +static const Lights1 mario_white_lights_group = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x04000020 # solid color light red - left & right arm, torso (tshirt part), caps - all polys -static const Light mario_diff_light_group2 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x04000048 # solid color brown 1 - foot - all poly types +static const Lights1 mario_brown1_lights_group = gdSPDefLights1( + 0x39, 0x0e, 0x07, + 0x72, 0x1c, 0x0e, 0x28, 0x28, 0x28 +); -// 0x04000030 # solid color gray - metal butt & left thigh - normal left & right hand closed & open (with cap too) and all wings - all polys -static const Ambient mario_amb_light_group3 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x04000060 # solid color beige skin - face (cap on and off dls) - all poly types +static const Lights1 mario_beige_lights_group = gdSPDefLights1( + 0x7f, 0x60, 0x3c, + 0xfe, 0xc1, 0x79, 0x28, 0x28, 0x28 +); -// 0x04000038 # solid color white - metal butt & left thigh - normal left & right hand closed & open (with cap too) and all wings - all polys -static const Light mario_diff_light_group3 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x04000048 # solid color dark brown 1 - foot - all polys -static const Ambient mario_amb_light_group4 = { - {{0x39, 0x0e, 0x07}, 0, {0x39, 0x0e, 0x07}, 0} -}; - -// 0x04000050 # solid color light brown 1 - foot - all polys -static const Light mario_diff_light_group4 = { - {{0x72, 0x1c, 0x0e}, 0, {0x72, 0x1c, 0x0e}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x04000060 # solid color dark skin - face (cap on and off dls) - all polys -static const Ambient mario_amb_light_group5 = { - {{0x7f, 0x60, 0x3c}, 0, {0x7f, 0x60, 0x3c}, 0} -}; - -// 0x04000068 # solid color light skin - face (cap on and off dls) - all polys -static const Light mario_diff_light_group5 = { - {{0xfe, 0xc1, 0x79}, 0, {0xfe, 0xc1, 0x79}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x04000078 # solid color dark brown 2 - hair - all polys -static const Ambient mario_amb_light_group6 = { - {{0x39, 0x03, 0x00}, 0, {0x39, 0x03, 0x00}, 0} -}; - -// 0x04000080 # solid color light brown 2 - hair - all polys -static const Light mario_diff_light_group6 = { - {{0x73, 0x06, 0x00}, 0, {0x73, 0x06, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x04000078 # solid color brown 2 - hair - all poly types +static const Lights1 mario_brown2_lights_group = gdSPDefLights1( + 0x39, 0x03, 0x00, + 0x73, 0x06, 0x00, 0x28, 0x28, 0x28 +); // 0x04000090 ALIGNED8 static const u8 mario_texture_metal[] = { @@ -405,8 +381,8 @@ const Gfx mario_butt_dl[] = { const Gfx mario_butt[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&mario_diff_light_group1, 1), - gsSPLight(&mario_amb_light_group1, 2), + gsSPLight(&mario_blue_lights_group.l, 1), + gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_butt_dl), gsSPEndDisplayList(), }; @@ -418,8 +394,8 @@ const Gfx mario_metal_butt[] = { gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_butt_dl), gsSPEndDisplayList(), }; @@ -523,8 +499,8 @@ const Gfx mario_left_arm_shared_dl[] = { // 0x0400D1D8 - 0x0400D1F8 const Gfx mario_left_arm[] = { - gsSPLight(&mario_diff_light_group2, 1), - gsSPLight(&mario_amb_light_group2, 2), + gsSPLight(&mario_red_lights_group.l, 1), + gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_left_arm_shared_dl), gsSPEndDisplayList(), }; @@ -675,8 +651,8 @@ const Gfx mario_left_hand_closed_shared_dl[] = { // 0x0400D8F0 - 0x0400D910 const Gfx mario_left_hand_closed[] = { - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_left_hand_closed_shared_dl), gsSPEndDisplayList(), }; @@ -784,8 +760,8 @@ const Gfx mario_right_arm_shared_dl[] = { // 0x0400DDE8 - 0x0400DE08 const Gfx mario_right_arm[] = { - gsSPLight(&mario_diff_light_group2, 1), - gsSPLight(&mario_amb_light_group2, 2), + gsSPLight(&mario_red_lights_group.l, 1), + gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_right_arm_shared_dl), gsSPEndDisplayList(), }; @@ -921,8 +897,8 @@ const Gfx mario_right_hand_closed_dl[] = { // 0x0400E458 - 0x0400E478 const Gfx mario_right_hand_closed[] = { - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_right_hand_closed_dl), gsSPEndDisplayList(), }; @@ -1003,8 +979,8 @@ const Gfx mario_left_thigh_dl[] = { const Gfx mario_left_thigh[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&mario_diff_light_group1, 1), - gsSPLight(&mario_amb_light_group1, 2), + gsSPLight(&mario_blue_lights_group.l, 1), + gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_left_thigh_dl), gsSPEndDisplayList(), }; @@ -1016,8 +992,8 @@ const Gfx mario_metal_left_thigh[] = { gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_left_thigh_dl), gsSPEndDisplayList(), }; @@ -1115,8 +1091,8 @@ const Gfx mario_left_foot_shared_dl[] = { // 0x0400ECA0 - 0x0400ECC0 const Gfx mario_left_foot[] = { - gsSPLight(&mario_diff_light_group4, 1), - gsSPLight(&mario_amb_light_group4, 2), + gsSPLight(&mario_brown1_lights_group.l, 1), + gsSPLight(&mario_brown1_lights_group.a, 2), gsSPDisplayList(mario_left_foot_shared_dl), gsSPEndDisplayList(), }; @@ -1184,8 +1160,8 @@ const Gfx mario_right_thigh_shared_dl[] = { // 0x0400EFB8 - 0x0400EFD8 const Gfx mario_right_thigh[] = { - gsSPLight(&mario_diff_light_group1, 1), - gsSPLight(&mario_amb_light_group1, 2), + gsSPLight(&mario_blue_lights_group.l, 1), + gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_right_thigh_shared_dl), gsSPEndDisplayList(), }; @@ -1300,8 +1276,8 @@ const Gfx mario_right_foot_dl[] = { // 0x0400F4E8 - 0x0400F528 const Gfx mario_right_foot[] = { - gsSPLight(&mario_diff_light_group4, 1), - gsSPLight(&mario_amb_light_group4, 2), + gsSPLight(&mario_brown1_lights_group.l, 1), + gsSPLight(&mario_brown1_lights_group.a, 2), gsSPDisplayList(mario_right_foot_dl), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), @@ -1613,8 +1589,8 @@ const Gfx mario_tshirt_shared_dl[] = { // 0x04010348 - 0x04010370 const Gfx mario_torso_dl[] = { gsSPDisplayList(mario_pants_overalls_shared_dl), - gsSPLight(&mario_diff_light_group2, 1), - gsSPLight(&mario_amb_light_group2, 2), + gsSPLight(&mario_red_lights_group.l, 1), + gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_tshirt_shared_dl), gsSPEndDisplayList(), }; @@ -2104,11 +2080,11 @@ const Gfx mario_face_back_hair_cap_on_dl[] = { // 0x04011960 - 0x040119A0 const Gfx mario_face_cap_on_dl[] = { gsSPDisplayList(mario_face_part_cap_on_dl), - gsSPLight(&mario_diff_light_group2, 1), - gsSPLight(&mario_amb_light_group2, 2), + gsSPLight(&mario_red_lights_group.l, 1), + gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_face_cap_dl), - gsSPLight(&mario_diff_light_group6, 1), - gsSPLight(&mario_amb_light_group6, 2), + gsSPLight(&mario_brown2_lights_group.l, 1), + gsSPLight(&mario_brown2_lights_group.a, 2), gsSPDisplayList(mario_face_back_hair_cap_on_dl), gsSPEndDisplayList(), }; @@ -2129,8 +2105,8 @@ const Gfx mario_cap_on_eyes_front[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), gsDPLoadSync(), @@ -2163,8 +2139,8 @@ const Gfx mario_cap_on_eyes_half_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), gsDPLoadSync(), @@ -2197,8 +2173,8 @@ const Gfx mario_cap_on_eyes_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), gsDPLoadSync(), @@ -2231,8 +2207,8 @@ const Gfx mario_cap_on_eyes_right[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), gsDPLoadSync(), @@ -2265,8 +2241,8 @@ const Gfx mario_cap_on_eyes_left[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), gsDPLoadSync(), @@ -2299,8 +2275,8 @@ const Gfx mario_cap_on_eyes_up[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), gsDPLoadSync(), @@ -2333,8 +2309,8 @@ const Gfx mario_cap_on_eyes_down[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), gsDPLoadSync(), @@ -2367,8 +2343,8 @@ const Gfx mario_cap_on_eyes_dead[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), gsDPLoadSync(), @@ -2397,25 +2373,17 @@ const Gfx mario_metal_cap_on_shared_dl[] = { gsSPEndDisplayList(), }; -// Unreferenced light -UNUSED static const Ambient mario_light_1 = { - {{0x3f, 0x30, 0x1e}, 0, {0x3f, 0x30, 0x1e}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 mario_lights_unused1 = gdSPDefLights1( + 0x3f, 0x30, 0x1e, + 0xfe, 0xc1, 0x79, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light mario_light_2 = { - {{0xfe, 0xc1, 0x79}, 0, {0xfe, 0xc1, 0x79}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient mario_light_3 = { - {{0x1c, 0x01, 0x00}, 0, {0x1c, 0x01, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light mario_light_4 = { - {{0x73, 0x06, 0x00}, 0, {0x73, 0x06, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 mario_lights_unused2 = gdSPDefLights1( + 0x1c, 0x01, 0x00, + 0x73, 0x06, 0x00, 0x28, 0x28, 0x28 +); // 0x04012190 static const Vtx mario_eyes_cap_off_dl_vertex[] = { @@ -2924,8 +2892,8 @@ const Gfx mario_face_hair_cap_off_dl[] = { // 0x040139C0 - 0x040139E8 const Gfx mario_face_cap_off_dl[] = { gsSPDisplayList(mario_face_part_cap_off_dl), - gsSPLight(&mario_diff_light_group6, 1), - gsSPLight(&mario_amb_light_group6, 2), + gsSPLight(&mario_brown2_lights_group.l, 1), + gsSPLight(&mario_brown2_lights_group.a, 2), gsSPDisplayList(mario_face_hair_cap_off_dl), gsSPEndDisplayList(), }; @@ -2942,8 +2910,8 @@ const Gfx mario_cap_off_eyes_front[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -2972,8 +2940,8 @@ const Gfx mario_cap_off_eyes_half_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -3002,8 +2970,8 @@ const Gfx mario_cap_off_eyes_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -3032,8 +3000,8 @@ const Gfx mario_cap_off_eyes_right[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -3062,8 +3030,8 @@ const Gfx mario_cap_off_eyes_left[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -3092,8 +3060,8 @@ const Gfx mario_cap_off_eyes_up[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -3122,8 +3090,8 @@ const Gfx mario_cap_off_eyes_down[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -3152,8 +3120,8 @@ const Gfx mario_cap_off_eyes_dead[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -3302,8 +3270,8 @@ const Gfx mario_medium_poly_butt_dl[] = { const Gfx mario_medium_poly_butt[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&mario_diff_light_group1, 1), - gsSPLight(&mario_amb_light_group1, 2), + gsSPLight(&mario_blue_lights_group.l, 1), + gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_butt_dl), gsSPEndDisplayList(), }; @@ -3315,8 +3283,8 @@ const Gfx mario_metal_medium_poly_butt[] = { gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_butt_dl), gsSPEndDisplayList(), }; @@ -3354,8 +3322,8 @@ const Gfx mario_medium_poly_left_arm_shared_dl[] = { // 0x04014840 - 0x04014860 const Gfx mario_medium_poly_left_arm[] = { - gsSPLight(&mario_diff_light_group2, 1), - gsSPLight(&mario_amb_light_group2, 2), + gsSPLight(&mario_red_lights_group.l, 1), + gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_left_arm_shared_dl), gsSPEndDisplayList(), }; @@ -3476,8 +3444,8 @@ const Gfx mario_medium_poly_left_hand_closed_shared_dl[] = { // 0x04014DC0 - 0x04014DE0 const Gfx mario_medium_poly_left_hand_closed[] = { - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_left_hand_closed_shared_dl), gsSPEndDisplayList(), }; @@ -3515,8 +3483,8 @@ const Gfx mario_medium_poly_right_arm_shared_dl[] = { // 0x04014F40 - 0x04014F60 const Gfx mario_medium_poly_right_arm[] = { - gsSPLight(&mario_diff_light_group2, 1), - gsSPLight(&mario_amb_light_group2, 2), + gsSPLight(&mario_red_lights_group.l, 1), + gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_right_arm_shared_dl), gsSPEndDisplayList(), }; @@ -3638,8 +3606,8 @@ const Gfx mario_medium_poly_right_hand_closed_dl[] = { // 0x040154E0 - 0x04015500 const Gfx mario_medium_poly_right_hand_closed[] = { - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_right_hand_closed_dl), gsSPEndDisplayList(), }; @@ -3691,8 +3659,8 @@ const Gfx mario_medium_poly_left_thigh_dl[] = { const Gfx mario_medium_poly_left_thigh[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&mario_diff_light_group1, 1), - gsSPLight(&mario_amb_light_group1, 2), + gsSPLight(&mario_blue_lights_group.l, 1), + gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_left_thigh_dl), gsSPEndDisplayList(), }; @@ -3704,8 +3672,8 @@ const Gfx mario_metal_medium_poly_left_thigh[] = { gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_left_thigh_dl), gsSPEndDisplayList(), }; @@ -3799,8 +3767,8 @@ const Gfx mario_medium_poly_left_foot_shared_dl[] = { // 0x04015B60 - 0x04015B80 const Gfx mario_medium_poly_left_foot[] = { - gsSPLight(&mario_diff_light_group4, 1), - gsSPLight(&mario_amb_light_group4, 2), + gsSPLight(&mario_brown1_lights_group.l, 1), + gsSPLight(&mario_brown1_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_left_foot_shared_dl), gsSPEndDisplayList(), }; @@ -3840,8 +3808,8 @@ const Gfx mario_medium_poly_right_thigh_shared_dl[] = { // 0x04015D00 - 0x04015D20 const Gfx mario_medium_poly_right_thigh[] = { - gsSPLight(&mario_diff_light_group1, 1), - gsSPLight(&mario_amb_light_group1, 2), + gsSPLight(&mario_blue_lights_group.l, 1), + gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_right_thigh_shared_dl), gsSPEndDisplayList(), }; @@ -3929,8 +3897,8 @@ const Gfx mario_medium_poly_right_foot_dl[] = { // 0x040160C8 - 0x04016108 const Gfx mario_medium_poly_right_foot[] = { - gsSPLight(&mario_diff_light_group4, 1), - gsSPLight(&mario_amb_light_group4, 2), + gsSPLight(&mario_brown1_lights_group.l, 1), + gsSPLight(&mario_brown1_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_right_foot_dl), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), @@ -4113,8 +4081,8 @@ const Gfx mario_medium_poly_tshirt_shared_dl[] = { // 0x040168A0 - 0x040168C8 const Gfx mario_medium_poly_torso_dl[] = { gsSPDisplayList(mario_medium_poly_pants_overalls_shared_dl), - gsSPLight(&mario_diff_light_group2, 1), - gsSPLight(&mario_amb_light_group2, 2), + gsSPLight(&mario_red_lights_group.l, 1), + gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_tshirt_shared_dl), gsSPEndDisplayList(), }; @@ -4181,8 +4149,8 @@ const Gfx mario_low_poly_butt_dl[] = { const Gfx mario_low_poly_butt[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&mario_diff_light_group1, 1), - gsSPLight(&mario_amb_light_group1, 2), + gsSPLight(&mario_blue_lights_group.l, 1), + gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_low_poly_butt_dl), gsSPEndDisplayList(), }; @@ -4194,8 +4162,8 @@ const Gfx mario_metal_low_poly_butt[] = { gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_low_poly_butt_dl), gsSPEndDisplayList(), }; @@ -4228,8 +4196,8 @@ const Gfx mario_low_poly_left_arm_shared_dl[] = { // 0x04016C70 - 0x04016C90 const Gfx mario_low_poly_left_arm[] = { - gsSPLight(&mario_diff_light_group2, 1), - gsSPLight(&mario_amb_light_group2, 2), + gsSPLight(&mario_red_lights_group.l, 1), + gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_low_poly_left_arm_shared_dl), gsSPEndDisplayList(), }; @@ -4285,8 +4253,8 @@ const Gfx mario_low_poly_left_hand_closed_shared_dl[] = { // 0x04016E80 - 0x04016EA0 const Gfx mario_low_poly_left_hand_closed[] = { - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_low_poly_left_hand_closed_shared_dl), gsSPEndDisplayList(), }; @@ -4319,8 +4287,8 @@ const Gfx mario_low_poly_right_arm_shared_dl[] = { // 0x04016FB0 - 0x04016FD0 const Gfx mario_low_poly_right_arm[] = { - gsSPLight(&mario_diff_light_group2, 1), - gsSPLight(&mario_amb_light_group2, 2), + gsSPLight(&mario_red_lights_group.l, 1), + gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_low_poly_right_arm_shared_dl), gsSPEndDisplayList(), }; @@ -4376,8 +4344,8 @@ const Gfx mario_low_poly_right_hand_closed_dl[] = { // 0x040171C0 - 0x040171E0 const Gfx mario_low_poly_right_hand_closed[] = { - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_low_poly_right_hand_closed_dl), gsSPEndDisplayList(), }; @@ -4426,8 +4394,8 @@ const Gfx mario_low_poly_left_thigh_dl[] = { const Gfx mario_low_poly_left_thigh[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&mario_diff_light_group1, 1), - gsSPLight(&mario_amb_light_group1, 2), + gsSPLight(&mario_blue_lights_group.l, 1), + gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_low_poly_left_thigh_dl), gsSPEndDisplayList(), }; @@ -4439,8 +4407,8 @@ const Gfx mario_metal_low_poly_left_thigh[] = { gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_low_poly_left_thigh_dl), gsSPEndDisplayList(), }; @@ -4507,8 +4475,8 @@ const Gfx mario_low_poly_left_foot_shared_dl[] = { // 0x040176A8 - 0x040176C8 const Gfx mario_low_poly_left_foot[] = { - gsSPLight(&mario_diff_light_group4, 1), - gsSPLight(&mario_amb_light_group4, 2), + gsSPLight(&mario_brown1_lights_group.l, 1), + gsSPLight(&mario_brown1_lights_group.a, 2), gsSPDisplayList(mario_low_poly_left_foot_shared_dl), gsSPEndDisplayList(), }; @@ -4545,8 +4513,8 @@ const Gfx mario_low_poly_right_thigh_shared_dl[] = { // 0x04017818 - 0x04017838 const Gfx mario_low_poly_right_thigh[] = { - gsSPLight(&mario_diff_light_group1, 1), - gsSPLight(&mario_amb_light_group1, 2), + gsSPLight(&mario_blue_lights_group.l, 1), + gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_low_poly_right_thigh_shared_dl), gsSPEndDisplayList(), }; @@ -4613,8 +4581,8 @@ const Gfx mario_low_poly_right_foot_dl[] = { // 0x04017AD8 - 0x04017B18 const Gfx mario_low_poly_right_foot[] = { - gsSPLight(&mario_diff_light_group4, 1), - gsSPLight(&mario_amb_light_group4, 2), + gsSPLight(&mario_brown1_lights_group.l, 1), + gsSPLight(&mario_brown1_lights_group.a, 2), gsSPDisplayList(mario_low_poly_right_foot_dl), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), @@ -4716,8 +4684,8 @@ const Gfx mario_low_poly_tshirt_shared_dl[] = { // 0x04017E78 - 0x04017EA0 const Gfx mario_low_poly_torso_dl[] = { gsSPDisplayList(mario_low_poly_pants_overalls_shared_dl), - gsSPLight(&mario_diff_light_group2, 1), - gsSPLight(&mario_amb_light_group2, 2), + gsSPLight(&mario_red_lights_group.l, 1), + gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_low_poly_tshirt_shared_dl), gsSPEndDisplayList(), }; @@ -4886,11 +4854,11 @@ const Gfx mario_low_poly_face_back_hair_cap_on_dl[] = { // 0x04018420 - 0x04018460 const Gfx mario_low_poly_face_cap_on_dl[] = { gsSPDisplayList(mario_low_poly_face_part_cap_on_dl), - gsSPLight(&mario_diff_light_group2, 1), - gsSPLight(&mario_amb_light_group2, 2), + gsSPLight(&mario_red_lights_group.l, 1), + gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_low_poly_face_cap_dl), - gsSPLight(&mario_diff_light_group6, 1), - gsSPLight(&mario_amb_light_group6, 2), + gsSPLight(&mario_brown2_lights_group.l, 1), + gsSPLight(&mario_brown2_lights_group.a, 2), gsSPDisplayList(mario_low_poly_face_back_hair_cap_on_dl), gsSPEndDisplayList(), }; @@ -4911,8 +4879,8 @@ const Gfx mario_low_poly_cap_on_eyes_front[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -4941,8 +4909,8 @@ const Gfx mario_low_poly_cap_on_eyes_half_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -4971,8 +4939,8 @@ const Gfx mario_low_poly_cap_on_eyes_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5001,8 +4969,8 @@ const Gfx mario_low_poly_cap_on_eyes_right[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5031,8 +4999,8 @@ const Gfx mario_low_poly_cap_on_eyes_left[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5061,8 +5029,8 @@ const Gfx mario_low_poly_cap_on_eyes_up[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5091,8 +5059,8 @@ const Gfx mario_low_poly_cap_on_eyes_down[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5121,8 +5089,8 @@ const Gfx mario_low_poly_cap_on_eyes_dead[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5255,8 +5223,8 @@ const Gfx mario_low_poly_face_hair_cap_off_dl[] = { // 0x04018F68 - 0x04018F90 const Gfx mario_low_poly_face_cap_off_dl[] = { gsSPDisplayList(mario_low_poly_face_part_cap_off_dl), - gsSPLight(&mario_diff_light_group6, 1), - gsSPLight(&mario_amb_light_group6, 2), + gsSPLight(&mario_brown2_lights_group.l, 1), + gsSPLight(&mario_brown2_lights_group.a, 2), gsSPDisplayList(mario_low_poly_face_hair_cap_off_dl), gsSPEndDisplayList(), }; @@ -5273,8 +5241,8 @@ const Gfx mario_low_poly_cap_off_eyes_front[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5299,8 +5267,8 @@ const Gfx mario_low_poly_cap_off_eyes_half_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5325,8 +5293,8 @@ const Gfx mario_low_poly_cap_off_eyes_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5351,8 +5319,8 @@ const Gfx mario_low_poly_cap_off_eyes_right[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5377,8 +5345,8 @@ const Gfx mario_low_poly_cap_off_eyes_left[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5403,8 +5371,8 @@ const Gfx mario_low_poly_cap_off_eyes_up[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5429,8 +5397,8 @@ const Gfx mario_low_poly_cap_off_eyes_down[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5455,8 +5423,8 @@ const Gfx mario_low_poly_cap_off_eyes_dead[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group5, 1), - gsSPLight(&mario_amb_light_group5, 2), + gsSPLight(&mario_beige_lights_group.l, 1), + gsSPLight(&mario_beige_lights_group.a, 2), gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5631,8 +5599,8 @@ const Gfx mario_left_hand_open_shared_dl[] = { // 0x04019CA0 - 0x04019CC0 const Gfx mario_left_hand_open[] = { - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_left_hand_open_shared_dl), gsSPEndDisplayList(), }; @@ -5790,8 +5758,8 @@ const Gfx mario_right_hand_open_dl[] = { // 0x0401A428 - 0x0401A448 const Gfx mario_right_hand_open[] = { - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_right_hand_open_dl), gsSPEndDisplayList(), }; @@ -6040,11 +6008,11 @@ const Gfx mario_right_hand_cap_bottom_dl[] = { // 0x0401AF20 - 0x0401AF60 const Gfx mario_right_hand_cap_dl[] = { gsSPDisplayList(mario_right_hand_cap_top_dl), - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_right_hand_cap_hand_position_dl), - gsSPLight(&mario_diff_light_group6, 1), - gsSPLight(&mario_amb_light_group6, 2), + gsSPLight(&mario_brown2_lights_group.l, 1), + gsSPLight(&mario_brown2_lights_group.a, 2), gsSPDisplayList(mario_right_hand_cap_bottom_dl), gsSPEndDisplayList(), }; @@ -6098,8 +6066,8 @@ const Gfx mario_right_hand_cap_wings_intial_dl[] = { gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), @@ -6433,8 +6401,8 @@ const Gfx mario_right_hand_peace_shared_dl[] = { // 0x0401BF30 - 0x0401BF50 const Gfx mario_right_hand_peace[] = { - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_right_hand_peace_shared_dl), gsSPEndDisplayList(), }; @@ -6571,8 +6539,8 @@ const Gfx mario_cap_unused_base_bottom_dl[] = { // 0x0401C510 - 0x0401C538 const Gfx mario_cap_unused_base_dl[] = { gsSPDisplayList(mario_cap_unused_base_top_dl), - gsSPLight(&mario_diff_light_group6, 1), - gsSPLight(&mario_amb_light_group6, 2), + gsSPLight(&mario_brown2_lights_group.l, 1), + gsSPLight(&mario_brown2_lights_group.a, 2), gsSPDisplayList(mario_cap_unused_base_bottom_dl), gsSPEndDisplayList(), }; @@ -6631,8 +6599,8 @@ const Gfx mario_cap_wings_unused_intial_dl[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPEndDisplayList(), }; @@ -6657,8 +6625,8 @@ const Gfx mario_cap_unused_dl[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_diff_light_group2, 1), - gsSPLight(&mario_amb_light_group2, 2), + gsSPLight(&mario_red_lights_group.l, 1), + gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_cap_unused_m_logo_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -6674,8 +6642,8 @@ const Gfx mario_metal_cap_unused_dl[] = { gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB), gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsSPDisplayList(mario_cap_unused_m_logo_dl), gsSPDisplayList(mario_cap_unused_base_top_dl), gsSPDisplayList(mario_cap_unused_base_bottom_dl), @@ -6756,8 +6724,8 @@ const Gfx mario_cap_wings[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), @@ -6783,8 +6751,8 @@ const Gfx mario_cap_wings_transparent[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), @@ -6810,8 +6778,8 @@ const Gfx mario_metal_cap_wings[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPLight(&mario_diff_light_group3, 1), - gsSPLight(&mario_amb_light_group3, 2), + gsSPLight(&mario_white_lights_group.l, 1), + gsSPLight(&mario_white_lights_group.a, 2), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_metal_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), diff --git a/actors/mario_cap/model.inc.c b/actors/mario_cap/model.inc.c index 0dccccc..84a7a96 100644 --- a/actors/mario_cap/model.inc.c +++ b/actors/mario_cap/model.inc.c @@ -1,34 +1,22 @@ // Mario Cap (Normal Cap, Metal, Winged, etc) // 0x0301CF08 -static const Ambient mario_cap_seg3_light_0301CF08 = { - {{0x39, 0x03, 0x00}, 0, {0x39, 0x03, 0x00}, 0} -}; - -// 0x0301CF10 -static const Light mario_cap_seg3_light_0301CF10 = { - {{0x73, 0x06, 0x00}, 0, {0x73, 0x06, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mario_cap_seg3_lights_0301CF08 = gdSPDefLights1( + 0x39, 0x03, 0x00, + 0x73, 0x06, 0x00, 0x28, 0x28, 0x28 +); // 0x0301CF20 -static const Ambient mario_cap_seg3_light_0301CF20 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0301CF28 -static const Light mario_cap_seg3_light_0301CF28 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mario_cap_seg3_lights_0301CF20 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0301CF38 -static const Ambient mario_cap_seg3_light_0301CF38 = { - {{0x7f, 0x00, 0x00}, 0, {0x7f, 0x00, 0x00}, 0} -}; - -// 0x0301CF40 -static const Light mario_cap_seg3_light_0301CF40 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mario_cap_seg3_lights_0301CF38 = gdSPDefLights1( + 0x7f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x0301CF50 ALIGNED8 static const u8 mario_cap_seg3_texture_0301CF50[] = { @@ -192,8 +180,8 @@ const Gfx mario_cap_seg3_dl_03022CC8[] = { // 0x03022D10 - 0x03022D38 const Gfx mario_cap_seg3_dl_03022D10[] = { gsSPDisplayList(mario_cap_seg3_dl_03022B68), - gsSPLight(&mario_cap_seg3_light_0301CF10, 1), - gsSPLight(&mario_cap_seg3_light_0301CF08, 2), + gsSPLight(&mario_cap_seg3_lights_0301CF08.l, 1), + gsSPLight(&mario_cap_seg3_lights_0301CF08.a, 2), gsSPDisplayList(mario_cap_seg3_dl_03022CC8), gsSPEndDisplayList(), }; @@ -276,8 +264,8 @@ const Gfx mario_cap_seg3_dl_03022F48[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301DF50), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_cap_seg3_light_0301CF40, 1), - gsSPLight(&mario_cap_seg3_light_0301CF38, 2), + gsSPLight(&mario_cap_seg3_lights_0301CF38.l, 1), + gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(mario_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -297,8 +285,8 @@ const Gfx mario_cap_seg3_dl_03022FF8[] = { gsDPSetCombineMode(G_CC_MODULATERGBFADE, G_CC_MODULATERGBFADE), gsDPLoadTextureBlock(mario_cap_seg3_texture_0301CF50, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_cap_seg3_light_0301CF28, 1), - gsSPLight(&mario_cap_seg3_light_0301CF20, 2), + gsSPLight(&mario_cap_seg3_lights_0301CF20.l, 1), + gsSPLight(&mario_cap_seg3_lights_0301CF20.a, 2), gsSPDisplayList(mario_cap_seg3_dl_03022B30), gsSPDisplayList(mario_cap_seg3_dl_03022B68), gsSPDisplayList(mario_cap_seg3_dl_03022CC8), @@ -353,8 +341,8 @@ const Gfx mario_cap_seg3_dl_03023160[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301DF50), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_cap_seg3_light_0301CF40, 1), - gsSPLight(&mario_cap_seg3_light_0301CF38, 2), + gsSPLight(&mario_cap_seg3_lights_0301CF38.l, 1), + gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(mario_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -397,8 +385,8 @@ const Gfx mario_cap_seg3_dl_03023298[] = { gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&mario_cap_seg3_light_0301CF28, 1), - gsSPLight(&mario_cap_seg3_light_0301CF20, 2), + gsSPLight(&mario_cap_seg3_lights_0301CF20.l, 1), + gsSPLight(&mario_cap_seg3_lights_0301CF20.a, 2), gsSPDisplayList(mario_cap_seg3_dl_03022B30), gsSPDisplayList(mario_cap_seg3_dl_03022B68), gsSPDisplayList(mario_cap_seg3_dl_03022CC8), diff --git a/actors/metal_box/model.inc.c b/actors/metal_box/model.inc.c index f4dd034..2958922 100644 --- a/actors/metal_box/model.inc.c +++ b/actors/metal_box/model.inc.c @@ -1,14 +1,10 @@ // Metal Box // 0x08023980 -static const Ambient metal_box_seg8_light_08023980 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x08023988 -static const Light metal_box_seg8_light_08023988 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 metal_box_seg8_lights_08023980 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x08023998 ALIGNED8 static const u8 metal_box_seg8_texture_08023998[] = { @@ -52,8 +48,8 @@ const Gfx metal_box_seg8_dl_08024B18[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, metal_box_seg8_texture_08023998), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&metal_box_seg8_light_08023988, 1), - gsSPLight(&metal_box_seg8_light_08023980, 2), + gsSPLight(&metal_box_seg8_lights_08023980.l, 1), + gsSPLight(&metal_box_seg8_lights_08023980.a, 2), gsSPVertex(metal_box_seg8_vertex_08024998, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/actors/mips/model.inc.c b/actors/mips/model.inc.c index d620a23..acbefd2 100644 --- a/actors/mips/model.inc.c +++ b/actors/mips/model.inc.c @@ -6,24 +6,16 @@ ALIGNED8 static const u8 mips_seg6_texture_0600FB80[] = { }; // 0x06010380 -static const Ambient mips_seg6_light_06010380 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x06010388 -static const Light mips_seg6_light_06010388 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06010380 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06010398 -static const Ambient mips_seg6_light_06010398 = { - {{0x0f, 0x0d, 0x04}, 0, {0x0f, 0x0d, 0x04}, 0} -}; - -// 0x060103A0 -static const Light mips_seg6_light_060103A0 = { - {{0x27, 0x21, 0x0b}, 0, {0x27, 0x21, 0x0b}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06010398 = gdSPDefLights1( + 0x0f, 0x0d, 0x04, + 0x27, 0x21, 0x0b, 0x28, 0x28, 0x28 +); // 0x060103B0 static const Vtx mips_seg6_vertex_060103B0[] = { @@ -83,8 +75,8 @@ const Gfx mips_seg6_dl_06010600[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mips_seg6_texture_0600FB80), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mips_seg6_light_06010388, 1), - gsSPLight(&mips_seg6_light_06010380, 2), + gsSPLight(&mips_seg6_lights_06010380.l, 1), + gsSPLight(&mips_seg6_lights_06010380.a, 2), gsSPVertex(mips_seg6_vertex_060103B0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 2, 1, 4, 0x0, 2, 5, 3, 0x0), @@ -109,13 +101,13 @@ const Gfx mips_seg6_dl_06010600[] = { // 0x06010748 - 0x060107B8 const Gfx mips_seg6_dl_06010748[] = { - gsSPLight(&mips_seg6_light_060103A0, 1), - gsSPLight(&mips_seg6_light_06010398, 2), + gsSPLight(&mips_seg6_lights_06010398.l, 1), + gsSPLight(&mips_seg6_lights_06010398.a, 2), gsSPVertex(mips_seg6_vertex_06010580, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP1Triangle( 3, 2, 1, 0x0), - gsSPLight(&mips_seg6_light_06010388, 1), - gsSPLight(&mips_seg6_light_06010380, 2), + gsSPLight(&mips_seg6_lights_06010380.l, 1), + gsSPLight(&mips_seg6_lights_06010380.a, 2), gsSPVertex(mips_seg6_vertex_060105C0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 3, 2, 0, 0x0, 2, 1, 0, 0x0), @@ -140,14 +132,10 @@ const Gfx mips_seg6_dl_060107B8[] = { }; // 0x06010820 -static const Ambient mips_seg6_light_06010820 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x06010828 -static const Light mips_seg6_light_06010828 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06010820 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06010838 static const Vtx mips_seg6_vertex_06010838[] = { @@ -204,8 +192,8 @@ const Gfx mips_seg6_dl_06010A98[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mips_seg6_texture_0600FB80), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mips_seg6_light_06010828, 1), - gsSPLight(&mips_seg6_light_06010820, 2), + gsSPLight(&mips_seg6_lights_06010820.l, 1), + gsSPLight(&mips_seg6_lights_06010820.a, 2), gsSPVertex(mips_seg6_vertex_06010838, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), gsSP2Triangles( 0, 5, 1, 0x0, 1, 6, 3, 0x0), @@ -252,24 +240,16 @@ const Gfx mips_seg6_dl_06010C40[] = { }; // 0x06010CA0 -static const Ambient mips_seg6_light_06010CA0 = { - {{0x3c, 0x3c, 0x00}, 0, {0x3c, 0x3c, 0x00}, 0} -}; - -// 0x06010CA8 -static const Light mips_seg6_light_06010CA8 = { - {{0x96, 0x96, 0x00}, 0, {0x96, 0x96, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06010CA0 = gdSPDefLights1( + 0x3c, 0x3c, 0x00, + 0x96, 0x96, 0x00, 0x28, 0x28, 0x28 +); // 0x06010CB8 -static const Ambient mips_seg6_light_06010CB8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x06010CC0 -static const Light mips_seg6_light_06010CC0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06010CB8 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06010CD0 static const Vtx mips_seg6_vertex_06010CD0[] = { @@ -298,13 +278,13 @@ const Gfx mips_seg6_dl_06010DB0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mips_seg6_texture_0600FB80), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mips_seg6_light_06010CA8, 1), - gsSPLight(&mips_seg6_light_06010CA0, 2), + gsSPLight(&mips_seg6_lights_06010CA0.l, 1), + gsSPLight(&mips_seg6_lights_06010CA0.a, 2), gsSPVertex(mips_seg6_vertex_06010CD0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 0, 4, 1, 0x0, 4, 0, 5, 0x0), - gsSPLight(&mips_seg6_light_06010CC0, 1), - gsSPLight(&mips_seg6_light_06010CB8, 2), + gsSPLight(&mips_seg6_lights_06010CB8.l, 1), + gsSPLight(&mips_seg6_lights_06010CB8.a, 2), gsSPVertex(mips_seg6_vertex_06010D30, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 5, 6, 0, 0x0), @@ -330,34 +310,22 @@ const Gfx mips_seg6_dl_06010E60[] = { }; // 0x06010EC0 -static const Ambient mips_seg6_light_06010EC0 = { - {{0x3c, 0x3c, 0x00}, 0, {0x3c, 0x3c, 0x00}, 0} -}; - -// 0x06010EC8 -static const Light mips_seg6_light_06010EC8 = { - {{0x96, 0x96, 0x00}, 0, {0x96, 0x96, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06010EC0 = gdSPDefLights1( + 0x3c, 0x3c, 0x00, + 0x96, 0x96, 0x00, 0x28, 0x28, 0x28 +); // 0x06010ED8 -static const Ambient mips_seg6_light_06010ED8 = { - {{0x35, 0x38, 0x00}, 0, {0x35, 0x38, 0x00}, 0} -}; - -// 0x06010EE0 -static const Light mips_seg6_light_06010EE0 = { - {{0x85, 0x8e, 0x00}, 0, {0x85, 0x8e, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06010ED8 = gdSPDefLights1( + 0x35, 0x38, 0x00, + 0x85, 0x8e, 0x00, 0x28, 0x28, 0x28 +); // 0x06010EF0 -static const Ambient mips_seg6_light_06010EF0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x06010EF8 -static const Light mips_seg6_light_06010EF8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06010EF0 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06010F08 static const Vtx mips_seg6_vertex_06010F08[] = { @@ -391,17 +359,17 @@ const Gfx mips_seg6_dl_06010FF8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mips_seg6_texture_0600FB80), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mips_seg6_light_06010EC8, 1), - gsSPLight(&mips_seg6_light_06010EC0, 2), + gsSPLight(&mips_seg6_lights_06010EC0.l, 1), + gsSPLight(&mips_seg6_lights_06010EC0.a, 2), gsSPVertex(mips_seg6_vertex_06010F08, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP1Triangle( 3, 2, 4, 0x0), - gsSPLight(&mips_seg6_light_06010EE0, 1), - gsSPLight(&mips_seg6_light_06010ED8, 2), + gsSPLight(&mips_seg6_lights_06010ED8.l, 1), + gsSPLight(&mips_seg6_lights_06010ED8.a, 2), gsSPVertex(mips_seg6_vertex_06010F58, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), - gsSPLight(&mips_seg6_light_06010EF8, 1), - gsSPLight(&mips_seg6_light_06010EF0, 2), + gsSPLight(&mips_seg6_lights_06010EF0.l, 1), + gsSPLight(&mips_seg6_lights_06010EF0.a, 2), gsSPVertex(mips_seg6_vertex_06010F88, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 3, 2, 4, 0x0, 2, 1, 4, 0x0), @@ -426,24 +394,16 @@ const Gfx mips_seg6_dl_060110B0[] = { }; // 0x06011110 -static const Ambient mips_seg6_light_06011110 = { - {{0x3c, 0x3c, 0x00}, 0, {0x3c, 0x3c, 0x00}, 0} -}; - -// 0x06011118 -static const Light mips_seg6_light_06011118 = { - {{0x96, 0x96, 0x00}, 0, {0x96, 0x96, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06011110 = gdSPDefLights1( + 0x3c, 0x3c, 0x00, + 0x96, 0x96, 0x00, 0x28, 0x28, 0x28 +); // 0x06011128 -static const Ambient mips_seg6_light_06011128 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x06011130 -static const Light mips_seg6_light_06011130 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06011128 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06011140 static const Vtx mips_seg6_vertex_06011140[] = { @@ -474,13 +434,13 @@ const Gfx mips_seg6_dl_06011240[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mips_seg6_texture_0600FB80), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mips_seg6_light_06011118, 1), - gsSPLight(&mips_seg6_light_06011110, 2), + gsSPLight(&mips_seg6_lights_06011110.l, 1), + gsSPLight(&mips_seg6_lights_06011110.a, 2), gsSPVertex(mips_seg6_vertex_06011140, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 2, 4, 3, 0x0, 3, 4, 5, 0x0), - gsSPLight(&mips_seg6_light_06011130, 1), - gsSPLight(&mips_seg6_light_06011128, 2), + gsSPLight(&mips_seg6_lights_06011128.l, 1), + gsSPLight(&mips_seg6_lights_06011128.a, 2), gsSPVertex(mips_seg6_vertex_060111A0, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 0, 4, 3, 0x0, 5, 6, 1, 0x0), @@ -508,24 +468,16 @@ const Gfx mips_seg6_dl_06011310[] = { }; // 0x06011370 -static const Ambient mips_seg6_light_06011370 = { - {{0x3c, 0x3c, 0x00}, 0, {0x3c, 0x3c, 0x00}, 0} -}; - -// 0x06011378 -static const Light mips_seg6_light_06011378 = { - {{0x96, 0x96, 0x00}, 0, {0x96, 0x96, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06011370 = gdSPDefLights1( + 0x3c, 0x3c, 0x00, + 0x96, 0x96, 0x00, 0x28, 0x28, 0x28 +); // 0x06011388 -static const Ambient mips_seg6_light_06011388 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x06011390 -static const Light mips_seg6_light_06011390 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06011388 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x060113A0 static const Vtx mips_seg6_vertex_060113A0[] = { @@ -553,13 +505,13 @@ const Gfx mips_seg6_dl_06011470[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mips_seg6_texture_0600FB80), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mips_seg6_light_06011378, 1), - gsSPLight(&mips_seg6_light_06011370, 2), + gsSPLight(&mips_seg6_lights_06011370.l, 1), + gsSPLight(&mips_seg6_lights_06011370.a, 2), gsSPVertex(mips_seg6_vertex_060113A0, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP1Triangle( 3, 4, 1, 0x0), - gsSPLight(&mips_seg6_light_06011390, 1), - gsSPLight(&mips_seg6_light_06011388, 2), + gsSPLight(&mips_seg6_lights_06011388.l, 1), + gsSPLight(&mips_seg6_lights_06011388.a, 2), gsSPVertex(mips_seg6_vertex_060113F0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), gsSP2Triangles( 3, 2, 1, 0x0, 3, 5, 6, 0x0), @@ -586,24 +538,16 @@ const Gfx mips_seg6_dl_06011520[] = { }; // 0x06011580 -static const Ambient mips_seg6_light_06011580 = { - {{0x3c, 0x3c, 0x00}, 0, {0x3c, 0x3c, 0x00}, 0} -}; - -// 0x06011588 -static const Light mips_seg6_light_06011588 = { - {{0x96, 0x96, 0x00}, 0, {0x96, 0x96, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06011580 = gdSPDefLights1( + 0x3c, 0x3c, 0x00, + 0x96, 0x96, 0x00, 0x28, 0x28, 0x28 +); // 0x06011598 -static const Ambient mips_seg6_light_06011598 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x060115A0 -static const Light mips_seg6_light_060115A0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06011598 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x060115B0 static const Vtx mips_seg6_vertex_060115B0[] = { @@ -634,13 +578,13 @@ const Gfx mips_seg6_dl_060116B0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mips_seg6_texture_0600FB80), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mips_seg6_light_06011588, 1), - gsSPLight(&mips_seg6_light_06011580, 2), + gsSPLight(&mips_seg6_lights_06011580.l, 1), + gsSPLight(&mips_seg6_lights_06011580.a, 2), gsSPVertex(mips_seg6_vertex_060115B0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 3, 1, 0x0, 2, 5, 0, 0x0), - gsSPLight(&mips_seg6_light_060115A0, 1), - gsSPLight(&mips_seg6_light_06011598, 2), + gsSPLight(&mips_seg6_lights_06011598.l, 1), + gsSPLight(&mips_seg6_lights_06011598.a, 2), gsSPVertex(mips_seg6_vertex_06011610, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 2, 3, 0, 0x0, 3, 2, 5, 0x0), @@ -668,24 +612,16 @@ const Gfx mips_seg6_dl_06011780[] = { }; // 0x060117E0 -static const Ambient mips_seg6_light_060117E0 = { - {{0x3c, 0x3c, 0x00}, 0, {0x3c, 0x3c, 0x00}, 0} -}; - -// 0x060117E8 -static const Light mips_seg6_light_060117E8 = { - {{0x96, 0x96, 0x00}, 0, {0x96, 0x96, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_060117E0 = gdSPDefLights1( + 0x3c, 0x3c, 0x00, + 0x96, 0x96, 0x00, 0x28, 0x28, 0x28 +); // 0x060117F8 -static const Ambient mips_seg6_light_060117F8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x06011800 -static const Light mips_seg6_light_06011800 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_060117F8 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06011810 static const Vtx mips_seg6_vertex_06011810[] = { @@ -713,13 +649,13 @@ const Gfx mips_seg6_dl_060118E0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mips_seg6_texture_0600FB80), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mips_seg6_light_060117E8, 1), - gsSPLight(&mips_seg6_light_060117E0, 2), + gsSPLight(&mips_seg6_lights_060117E0.l, 1), + gsSPLight(&mips_seg6_lights_060117E0.a, 2), gsSPVertex(mips_seg6_vertex_06011810, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), gsSP1Triangle( 1, 4, 3, 0x0), - gsSPLight(&mips_seg6_light_06011800, 1), - gsSPLight(&mips_seg6_light_060117F8, 2), + gsSPLight(&mips_seg6_lights_060117F8.l, 1), + gsSPLight(&mips_seg6_lights_060117F8.a, 2), gsSPVertex(mips_seg6_vertex_06011860, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 3, 0x0, 6, 7, 3, 0x0), @@ -746,24 +682,16 @@ const Gfx mips_seg6_dl_06011990[] = { }; // 0x060119F0 -static const Ambient mips_seg6_light_060119F0 = { - {{0x3c, 0x3c, 0x00}, 0, {0x3c, 0x3c, 0x00}, 0} -}; - -// 0x060119F8 -static const Light mips_seg6_light_060119F8 = { - {{0x96, 0x96, 0x00}, 0, {0x96, 0x96, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_060119F0 = gdSPDefLights1( + 0x3c, 0x3c, 0x00, + 0x96, 0x96, 0x00, 0x28, 0x28, 0x28 +); // 0x06011A08 -static const Ambient mips_seg6_light_06011A08 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x06011A10 -static const Light mips_seg6_light_06011A10 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06011A08 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06011A20 static const Vtx mips_seg6_vertex_06011A20[] = { @@ -792,13 +720,13 @@ const Gfx mips_seg6_dl_06011B00[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mips_seg6_texture_0600FB80), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mips_seg6_light_060119F8, 1), - gsSPLight(&mips_seg6_light_060119F0, 2), + gsSPLight(&mips_seg6_lights_060119F0.l, 1), + gsSPLight(&mips_seg6_lights_060119F0.a, 2), gsSPVertex(mips_seg6_vertex_06011A20, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 1, 4, 2, 0x0, 5, 2, 4, 0x0), - gsSPLight(&mips_seg6_light_06011A10, 1), - gsSPLight(&mips_seg6_light_06011A08, 2), + gsSPLight(&mips_seg6_lights_06011A08.l, 1), + gsSPLight(&mips_seg6_lights_06011A08.a, 2), gsSPVertex(mips_seg6_vertex_06011A80, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 1, 0x0, 1, 3, 6, 0x0), @@ -824,24 +752,16 @@ const Gfx mips_seg6_dl_06011BB0[] = { }; // 0x06011C10 -static const Ambient mips_seg6_light_06011C10 = { - {{0x3c, 0x3c, 0x00}, 0, {0x3c, 0x3c, 0x00}, 0} -}; - -// 0x06011C18 -static const Light mips_seg6_light_06011C18 = { - {{0x96, 0x96, 0x00}, 0, {0x96, 0x96, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06011C10 = gdSPDefLights1( + 0x3c, 0x3c, 0x00, + 0x96, 0x96, 0x00, 0x28, 0x28, 0x28 +); // 0x06011C28 -static const Ambient mips_seg6_light_06011C28 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x06011C30 -static const Light mips_seg6_light_06011C30 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06011C28 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06011C40 static const Vtx mips_seg6_vertex_06011C40[] = { @@ -869,13 +789,13 @@ const Gfx mips_seg6_dl_06011D10[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mips_seg6_texture_0600FB80), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mips_seg6_light_06011C18, 1), - gsSPLight(&mips_seg6_light_06011C10, 2), + gsSPLight(&mips_seg6_lights_06011C10.l, 1), + gsSPLight(&mips_seg6_lights_06011C10.a, 2), gsSPVertex(mips_seg6_vertex_06011C40, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 1, 4, 3, 0x0, 3, 4, 5, 0x0), - gsSPLight(&mips_seg6_light_06011C30, 1), - gsSPLight(&mips_seg6_light_06011C28, 2), + gsSPLight(&mips_seg6_lights_06011C28.l, 1), + gsSPLight(&mips_seg6_lights_06011C28.a, 2), gsSPVertex(mips_seg6_vertex_06011CA0, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 3, 4, 5, 0x0, 1, 3, 5, 0x0), @@ -900,14 +820,10 @@ const Gfx mips_seg6_dl_06011DB0[] = { }; // 0x06011E10 -static const Ambient mips_seg6_light_06011E10 = { - {{0x34, 0x2c, 0x0f}, 0, {0x34, 0x2c, 0x0f}, 0} -}; - -// 0x06011E18 -static const Light mips_seg6_light_06011E18 = { - {{0x82, 0x6e, 0x26}, 0, {0x82, 0x6e, 0x26}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06011E10 = gdSPDefLights1( + 0x34, 0x2c, 0x0f, + 0x82, 0x6e, 0x26, 0x28, 0x28, 0x28 +); // 0x06011E28 static const Vtx mips_seg6_vertex_06011E28[] = { @@ -921,8 +837,8 @@ static const Vtx mips_seg6_vertex_06011E28[] = { // 0x06011E88 - 0x06011ED8 const Gfx mips_seg6_dl_06011E88[] = { - gsSPLight(&mips_seg6_light_06011E18, 1), - gsSPLight(&mips_seg6_light_06011E10, 2), + gsSPLight(&mips_seg6_lights_06011E10.l, 1), + gsSPLight(&mips_seg6_lights_06011E10.a, 2), gsSPVertex(mips_seg6_vertex_06011E28, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 0, 2, 0x0, 2, 5, 4, 0x0), @@ -939,14 +855,10 @@ const Gfx mips_seg6_dl_06011ED8[] = { }; // 0x06011EF8 -static const Ambient mips_seg6_light_06011EF8 = { - {{0x34, 0x2c, 0x0f}, 0, {0x34, 0x2c, 0x0f}, 0} -}; - -// 0x06011F00 -static const Light mips_seg6_light_06011F00 = { - {{0x82, 0x6e, 0x26}, 0, {0x82, 0x6e, 0x26}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 mips_seg6_lights_06011EF8 = gdSPDefLights1( + 0x34, 0x2c, 0x0f, + 0x82, 0x6e, 0x26, 0x28, 0x28, 0x28 +); // 0x06011F10 static const Vtx mips_seg6_vertex_06011F10[] = { @@ -960,8 +872,8 @@ static const Vtx mips_seg6_vertex_06011F10[] = { // 0x06011F70 - 0x06011FC0 const Gfx mips_seg6_dl_06011F70[] = { - gsSPLight(&mips_seg6_light_06011F00, 1), - gsSPLight(&mips_seg6_light_06011EF8, 2), + gsSPLight(&mips_seg6_lights_06011EF8.l, 1), + gsSPLight(&mips_seg6_lights_06011EF8.a, 2), gsSPVertex(mips_seg6_vertex_06011F10, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 2, 0x0, 2, 1, 4, 0x0), diff --git a/actors/mist/model.inc.c b/actors/mist/model.inc.c index 9acb246..ef4d4ba 100644 --- a/actors/mist/model.inc.c +++ b/actors/mist/model.inc.c @@ -25,7 +25,7 @@ ALIGNED8 static const u8 mist_seg3_texture_03000080[] = { const Gfx mist_seg3_dl_03000880[] = { gsDPPipeSync(), gsSPClearGeometryMode(G_LIGHTING), - gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA), + gsDPSetCombineMode(G_CC_MODULATEIFADEA, G_CC_MODULATEIFADEA), gsDPLoadTextureBlock(mist_seg3_texture_03000080, G_IM_FMT_IA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsSPVertex(mist_seg3_vertex_03000000, 4, 0), @@ -42,7 +42,7 @@ const Gfx mist_seg3_dl_03000880[] = { const Gfx mist_seg3_dl_03000920[] = { gsDPPipeSync(), gsSPClearGeometryMode(G_LIGHTING), - gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA), + gsDPSetCombineMode(G_CC_MODULATEIFADEA, G_CC_MODULATEIFADEA), gsDPLoadTextureBlock(mist_seg3_texture_03000080, G_IM_FMT_IA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsSPVertex(mist_seg3_vertex_03000040, 4, 0), diff --git a/actors/moneybag/model.inc.c b/actors/moneybag/model.inc.c index 8b6755d..935aa12 100644 --- a/actors/moneybag/model.inc.c +++ b/actors/moneybag/model.inc.c @@ -11,24 +11,16 @@ ALIGNED8 static const u8 moneybag_seg6_texture_060049B0[] = { }; // 0x060051B0 -static const Ambient moneybag_seg6_light_060051B0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x060051B8 -static const Light moneybag_seg6_light_060051B8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 moneybag_seg6_lights_060051B0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x060051C8 -static const Ambient moneybag_seg6_light_060051C8 = { - {{0x00, 0x3f, 0x23}, 0, {0x00, 0x3f, 0x23}, 0} -}; - -// 0x060051D0 -static const Light moneybag_seg6_light_060051D0 = { - {{0x00, 0x7f, 0x47}, 0, {0x00, 0x7f, 0x47}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 moneybag_seg6_lights_060051C8 = gdSPDefLights1( + 0x00, 0x3f, 0x23, + 0x00, 0x7f, 0x47, 0x28, 0x28, 0x28 +); // 0x060051E0 static const Vtx moneybag_seg6_vertex_060051E0[] = { @@ -61,8 +53,8 @@ const Gfx moneybag_seg6_dl_06005300[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, moneybag_seg6_texture_060039B0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&moneybag_seg6_light_060051B8, 1), - gsSPLight(&moneybag_seg6_light_060051B0, 2), + gsSPLight(&moneybag_seg6_lights_060051B0.l, 1), + gsSPLight(&moneybag_seg6_lights_060051B0.a, 2), gsSPVertex(moneybag_seg6_vertex_060051E0, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 0, 0x0, 8, 4, 9, 0x0), @@ -71,8 +63,8 @@ const Gfx moneybag_seg6_dl_06005300[] = { // 0x06005358 - 0x060053B8 const Gfx moneybag_seg6_dl_06005358[] = { - gsSPLight(&moneybag_seg6_light_060051D0, 1), - gsSPLight(&moneybag_seg6_light_060051C8, 2), + gsSPLight(&moneybag_seg6_lights_060051C8.l, 1), + gsSPLight(&moneybag_seg6_lights_060051C8.a, 2), gsSPVertex(moneybag_seg6_vertex_06005280, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 3, 0, 4, 0x0, 3, 5, 1, 0x0), @@ -100,14 +92,10 @@ const Gfx moneybag_seg6_dl_060053B8[] = { }; // 0x06005428 -static const Ambient moneybag_seg6_light_06005428 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x06005430 -static const Light moneybag_seg6_light_06005430 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 moneybag_seg6_lights_06005428 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06005440 static const Vtx moneybag_seg6_vertex_06005440[] = { @@ -143,8 +131,8 @@ const Gfx moneybag_seg6_dl_06005590[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, moneybag_seg6_texture_060039B0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&moneybag_seg6_light_06005430, 1), - gsSPLight(&moneybag_seg6_light_06005428, 2), + gsSPLight(&moneybag_seg6_lights_06005428.l, 1), + gsSPLight(&moneybag_seg6_lights_06005428.a, 2), gsSPVertex(moneybag_seg6_vertex_06005440, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 7, 0x0), @@ -220,45 +208,29 @@ const Gfx moneybag_seg6_dl_06005750[] = { gsSPEndDisplayList(), }; -// Unreferenced light -UNUSED static const Ambient moneybag_light_1 = { - {{0x0c, 0x20, 0x06}, 0, {0x0c, 0x20, 0x06}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 moneybag_lights_unused1 = gdSPDefLights1( + 0x0c, 0x20, 0x06, + 0x30, 0x83, 0x1a, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light moneybag_light_2 = { - {{0x30, 0x83, 0x1a}, 0, {0x30, 0x83, 0x1a}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient moneybag_light_3 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light moneybag_light_4 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 moneybag_lights_unused2 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x060057F0 -static const Ambient moneybag_seg6_light_060057F0 = { - {{0x3f, 0x3f, 0x00}, 0, {0x3f, 0x3f, 0x00}, 0} -}; +static const Lights1 moneybag_seg6_lights_060057F0 = gdSPDefLights1( + 0x3f, 0x3f, 0x00, + 0xff, 0xff, 0x00, 0x28, 0x28, 0x28 +); -// 0x060057F8 -static const Light moneybag_seg6_light_060057F8 = { - {{0xff, 0xff, 0x00}, 0, {0xff, 0xff, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient moneybag_light_5 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light moneybag_light_6 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 moneybag_lights_unused3 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x06005820 static const Vtx moneybag_seg6_vertex_06005820[] = { @@ -293,8 +265,8 @@ static const Vtx moneybag_seg6_vertex_060058D0[] = { // 0x06005980 - 0x060059F0 const Gfx moneybag_seg6_dl_06005980[] = { gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&moneybag_seg6_light_060057F8, 1), - gsSPLight(&moneybag_seg6_light_060057F0, 2), + gsSPLight(&moneybag_seg6_lights_060057F0.l, 1), + gsSPLight(&moneybag_seg6_lights_060057F0.a, 2), gsSPVertex(moneybag_seg6_vertex_06005820, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 5, 7, 8, 0x0), @@ -307,8 +279,8 @@ const Gfx moneybag_seg6_dl_06005980[] = { // 0x060059F0 - 0x06005A60 const Gfx moneybag_seg6_dl_060059F0[] = { gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&moneybag_seg6_light_060057F8, 1), - gsSPLight(&moneybag_seg6_light_060057F0, 2), + gsSPLight(&moneybag_seg6_lights_060057F0.l, 1), + gsSPLight(&moneybag_seg6_lights_060057F0.a, 2), gsSPVertex(moneybag_seg6_vertex_060058D0, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 2, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 8, 5, 7, 0x0), diff --git a/actors/monty_mole/model.inc.c b/actors/monty_mole/model.inc.c index 0f0f31d..6998aee 100644 --- a/actors/monty_mole/model.inc.c +++ b/actors/monty_mole/model.inc.c @@ -1,64 +1,40 @@ // Monty Mole -// Unreferenced light -UNUSED static const Ambient monty_mole_light_1 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 monty_mole_lights_unused1 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light monty_mole_light_2 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 monty_mole_lights_unused2 = gdSPDefLights1( + 0x30, 0x1f, 0x00, + 0xc3, 0x7e, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient monty_mole_light_3 = { - {{0x30, 0x1f, 0x00}, 0, {0x30, 0x1f, 0x00}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 monty_mole_lights_unused3 = gdSPDefLights1( + 0x05, 0x04, 0x05, + 0x16, 0x13, 0x14, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light monty_mole_light_4 = { - {{0xc3, 0x7e, 0x00}, 0, {0xc3, 0x7e, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 monty_mole_lights_unused4 = gdSPDefLights1( + 0x07, 0x08, 0x07, + 0x1f, 0x20, 0x1f, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient monty_mole_light_5 = { - {{0x05, 0x04, 0x05}, 0, {0x05, 0x04, 0x05}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 monty_mole_lights_unused5 = gdSPDefLights1( + 0x14, 0x0b, 0x0a, + 0x53, 0x2e, 0x28, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light monty_mole_light_6 = { - {{0x16, 0x13, 0x14}, 0, {0x16, 0x13, 0x14}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient monty_mole_light_7 = { - {{0x07, 0x08, 0x07}, 0, {0x07, 0x08, 0x07}, 0} -}; - -// Unreferenced light -UNUSED static const Light monty_mole_light_8 = { - {{0x1f, 0x20, 0x1f}, 0, {0x1f, 0x20, 0x1f}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient monty_mole_light_9 = { - {{0x14, 0x0b, 0x0a}, 0, {0x14, 0x0b, 0x0a}, 0} -}; - -// Unreferenced light -UNUSED static const Light monty_mole_light_10 = { - {{0x53, 0x2e, 0x28}, 0, {0x53, 0x2e, 0x28}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient monty_mole_light_11 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// Unreferenced light -UNUSED static const Light monty_mole_light_12 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 monty_mole_lights_unused6 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05000970 ALIGNED8 static const u8 monty_mole_seg5_texture_05000970[] = { @@ -86,14 +62,10 @@ ALIGNED8 static const u8 monty_mole_seg5_texture_05002970[] = { }; // 0x05003170 -static const Ambient monty_mole_seg5_light_05003170 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05003178 -static const Light monty_mole_seg5_light_05003178 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 monty_mole_seg5_lights_05003170 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05003188 static const Vtx monty_mole_seg5_vertex_05003188[] = { @@ -112,8 +84,8 @@ const Gfx monty_mole_seg5_dl_05003208[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, monty_mole_seg5_texture_05001170), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&monty_mole_seg5_light_05003178, 1), - gsSPLight(&monty_mole_seg5_light_05003170, 2), + gsSPLight(&monty_mole_seg5_lights_05003170.l, 1), + gsSPLight(&monty_mole_seg5_lights_05003170.a, 2), gsSPVertex(monty_mole_seg5_vertex_05003188, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), gsSP2Triangles( 2, 1, 3, 0x0, 5, 2, 4, 0x0), @@ -141,14 +113,10 @@ const Gfx monty_mole_seg5_dl_050032A0[] = { }; // 0x05003300 -static const Ambient monty_mole_seg5_light_05003300 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05003308 -static const Light monty_mole_seg5_light_05003308 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 monty_mole_seg5_lights_05003300 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05003318 static const Vtx monty_mole_seg5_vertex_05003318[] = { @@ -181,8 +149,8 @@ const Gfx monty_mole_seg5_dl_05003438[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, monty_mole_seg5_texture_05002970), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&monty_mole_seg5_light_05003308, 1), - gsSPLight(&monty_mole_seg5_light_05003300, 2), + gsSPLight(&monty_mole_seg5_lights_05003300.l, 1), + gsSPLight(&monty_mole_seg5_lights_05003300.a, 2), gsSPVertex(monty_mole_seg5_vertex_05003318, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0), @@ -225,14 +193,10 @@ const Gfx monty_mole_seg5_dl_05003518[] = { }; // 0x05003598 -static const Ambient monty_mole_seg5_light_05003598 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x050035A0 -static const Light monty_mole_seg5_light_050035A0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 monty_mole_seg5_lights_05003598 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x050035B0 static const Vtx monty_mole_seg5_vertex_050035B0[] = { @@ -271,8 +235,8 @@ const Gfx monty_mole_seg5_dl_05003730[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, monty_mole_seg5_texture_05002970), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&monty_mole_seg5_light_050035A0, 1), - gsSPLight(&monty_mole_seg5_light_05003598, 2), + gsSPLight(&monty_mole_seg5_lights_05003598.l, 1), + gsSPLight(&monty_mole_seg5_lights_05003598.a, 2), gsSPVertex(monty_mole_seg5_vertex_050035B0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 1, 3, 4, 0x0, 1, 4, 5, 0x0), @@ -316,14 +280,10 @@ const Gfx monty_mole_seg5_dl_05003820[] = { }; // 0x050038A0 -static const Ambient monty_mole_seg5_light_050038A0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x050038A8 -static const Light monty_mole_seg5_light_050038A8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 monty_mole_seg5_lights_050038A0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x050038B8 static const Vtx monty_mole_seg5_vertex_050038B8[] = { @@ -342,8 +302,8 @@ const Gfx monty_mole_seg5_dl_05003938[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, monty_mole_seg5_texture_05001170), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&monty_mole_seg5_light_050038A8, 1), - gsSPLight(&monty_mole_seg5_light_050038A0, 2), + gsSPLight(&monty_mole_seg5_lights_050038A0.l, 1), + gsSPLight(&monty_mole_seg5_lights_050038A0.a, 2), gsSPVertex(monty_mole_seg5_vertex_050038B8, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), gsSP2Triangles( 1, 0, 3, 0x0, 1, 5, 2, 0x0), @@ -371,14 +331,10 @@ const Gfx monty_mole_seg5_dl_050039D0[] = { }; // 0x05003A30 -static const Ambient monty_mole_seg5_light_05003A30 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05003A38 -static const Light monty_mole_seg5_light_05003A38 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 monty_mole_seg5_lights_05003A30 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05003A48 static const Vtx monty_mole_seg5_vertex_05003A48[] = { @@ -411,8 +367,8 @@ const Gfx monty_mole_seg5_dl_05003B68[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, monty_mole_seg5_texture_05002970), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&monty_mole_seg5_light_05003A38, 1), - gsSPLight(&monty_mole_seg5_light_05003A30, 2), + gsSPLight(&monty_mole_seg5_lights_05003A30.l, 1), + gsSPLight(&monty_mole_seg5_lights_05003A30.a, 2), gsSPVertex(monty_mole_seg5_vertex_05003A48, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0), @@ -455,14 +411,10 @@ const Gfx monty_mole_seg5_dl_05003C48[] = { }; // 0x05003CC8 -static const Ambient monty_mole_seg5_light_05003CC8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05003CD0 -static const Light monty_mole_seg5_light_05003CD0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 monty_mole_seg5_lights_05003CC8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05003CE0 static const Vtx monty_mole_seg5_vertex_05003CE0[] = { @@ -501,8 +453,8 @@ const Gfx monty_mole_seg5_dl_05003E60[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, monty_mole_seg5_texture_05002970), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&monty_mole_seg5_light_05003CD0, 1), - gsSPLight(&monty_mole_seg5_light_05003CC8, 2), + gsSPLight(&monty_mole_seg5_lights_05003CC8.l, 1), + gsSPLight(&monty_mole_seg5_lights_05003CC8.a, 2), gsSPVertex(monty_mole_seg5_vertex_05003CE0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 2, 5, 0x0, 2, 3, 5, 0x0), @@ -546,14 +498,10 @@ const Gfx monty_mole_seg5_dl_05003F50[] = { }; // 0x05003FD0 -static const Ambient monty_mole_seg5_light_05003FD0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05003FD8 -static const Light monty_mole_seg5_light_05003FD8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 monty_mole_seg5_lights_05003FD0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05003FE8 static const Vtx monty_mole_seg5_vertex_05003FE8[] = { @@ -617,8 +565,8 @@ const Gfx monty_mole_seg5_dl_050042B8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, monty_mole_seg5_texture_05000970), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&monty_mole_seg5_light_05003FD8, 1), - gsSPLight(&monty_mole_seg5_light_05003FD0, 2), + gsSPLight(&monty_mole_seg5_lights_05003FD0.l, 1), + gsSPLight(&monty_mole_seg5_lights_05003FD0.a, 2), gsSPVertex(monty_mole_seg5_vertex_05003FE8, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 3, 0x0, 7, 5, 4, 0x0), @@ -677,14 +625,10 @@ const Gfx monty_mole_seg5_dl_050044B0[] = { }; // 0x05004518 -static const Ambient monty_mole_seg5_light_05004518 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05004520 -static const Light monty_mole_seg5_light_05004520 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 monty_mole_seg5_lights_05004518 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05004530 static const Vtx monty_mole_seg5_vertex_05004530[] = { @@ -791,8 +735,8 @@ const Gfx monty_mole_seg5_dl_050049B0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, monty_mole_seg5_texture_05001970), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&monty_mole_seg5_light_05004520, 1), - gsSPLight(&monty_mole_seg5_light_05004518, 2), + gsSPLight(&monty_mole_seg5_lights_05004518.l, 1), + gsSPLight(&monty_mole_seg5_lights_05004518.a, 2), gsSPVertex(monty_mole_seg5_vertex_05004530, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 0, 3, 5, 0x0, 5, 1, 0, 0x0), @@ -874,14 +818,10 @@ const Gfx monty_mole_seg5_dl_05004C00[] = { }; // 0x05004C90 -static const Ambient monty_mole_seg5_light_05004C90 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05004C98 -static const Light monty_mole_seg5_light_05004C98 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 monty_mole_seg5_lights_05004C90 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05004CA8 static const Vtx monty_mole_seg5_vertex_05004CA8[] = { @@ -896,8 +836,8 @@ const Gfx monty_mole_seg5_dl_05004CE8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, monty_mole_seg5_texture_05002170), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&monty_mole_seg5_light_05004C98, 1), - gsSPLight(&monty_mole_seg5_light_05004C90, 2), + gsSPLight(&monty_mole_seg5_lights_05004C90.l, 1), + gsSPLight(&monty_mole_seg5_lights_05004C90.a, 2), gsSPVertex(monty_mole_seg5_vertex_05004CA8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/actors/peach/model.inc.c b/actors/peach/model.inc.c index 9e13583..0514802 100644 --- a/actors/peach/model.inc.c +++ b/actors/peach/model.inc.c @@ -1,24 +1,16 @@ // Peach // 0x050009F8 -static const Ambient peach_seg5_light_050009F8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05000A00 -static const Light peach_seg5_light_05000A00 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_050009F8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05000A10 -static const Ambient peach_seg5_light_05000A10 = { - {{0x7f, 0x5f, 0x0c}, 0, {0x7f, 0x5f, 0x0c}, 0} -}; - -// 0x05000A18 -static const Light peach_seg5_light_05000A18 = { - {{0xff, 0xbf, 0x18}, 0, {0xff, 0xbf, 0x18}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_05000A10 = gdSPDefLights1( + 0x7f, 0x5f, 0x0c, + 0xff, 0xbf, 0x18, 0x28, 0x28, 0x28 +); // 0x05000A28 ALIGNED8 static const u8 peach_seg5_texture_05000A28[] = { @@ -369,8 +361,8 @@ const Gfx peach_seg5_dl_05005648[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, peach_seg5_texture_05002A28), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 16 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&peach_seg5_light_05000A00, 1), - gsSPLight(&peach_seg5_light_050009F8, 2), + gsSPLight(&peach_seg5_lights_050009F8.l, 1), + gsSPLight(&peach_seg5_lights_050009F8.a, 2), gsSPVertex(peach_seg5_vertex_05004828, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 4, 1, 5, 0x0, 5, 1, 6, 0x0), @@ -437,8 +429,8 @@ const Gfx peach_seg5_dl_050058B8[] = { // 0x050058E0 - 0x05005C48 const Gfx peach_seg5_dl_050058E0[] = { - gsSPLight(&peach_seg5_light_05000A18, 1), - gsSPLight(&peach_seg5_light_05000A10, 2), + gsSPLight(&peach_seg5_lights_05000A10.l, 1), + gsSPLight(&peach_seg5_lights_05000A10.a, 2), gsSPVertex(peach_seg5_vertex_05004E88, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 3, 5, 0, 0x0, 6, 4, 0, 0x0), @@ -649,14 +641,10 @@ const Gfx peach_seg5_dl_05005F48[] = { }; // 0x05005FA0 -static const Ambient peach_seg5_light_05005FA0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05005FA8 -static const Light peach_seg5_light_05005FA8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_05005FA0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05005FB8 static const Vtx peach_seg5_vertex_05005FB8[] = { @@ -677,8 +665,8 @@ const Gfx peach_seg5_dl_05006058[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, peach_seg5_texture_05000A28), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&peach_seg5_light_05005FA8, 1), - gsSPLight(&peach_seg5_light_05005FA0, 2), + gsSPLight(&peach_seg5_lights_05005FA0.l, 1), + gsSPLight(&peach_seg5_lights_05005FA0.a, 2), gsSPVertex(peach_seg5_vertex_05005FB8, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 1, 4, 3, 0x0, 4, 5, 3, 0x0), @@ -704,24 +692,16 @@ const Gfx peach_seg5_dl_050060E0[] = { }; // 0x05006138 -static const Ambient peach_seg5_light_05006138 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05006140 -static const Light peach_seg5_light_05006140 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_05006138 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05006150 -static const Ambient peach_seg5_light_05006150 = { - {{0x6c, 0x54, 0x5f}, 0, {0x6c, 0x54, 0x5f}, 0} -}; - -// 0x05006158 -static const Light peach_seg5_light_05006158 = { - {{0xd9, 0xa9, 0xbe}, 0, {0xd9, 0xa9, 0xbe}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_05006150 = gdSPDefLights1( + 0x6c, 0x54, 0x5f, + 0xd9, 0xa9, 0xbe, 0x28, 0x28, 0x28 +); // 0x05006168 static const Vtx peach_seg5_vertex_05006168[] = { @@ -852,8 +832,8 @@ const Gfx peach_seg5_dl_05006728[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, peach_seg5_texture_05002C28), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 16 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&peach_seg5_light_05006140, 1), - gsSPLight(&peach_seg5_light_05006138, 2), + gsSPLight(&peach_seg5_lights_05006138.l, 1), + gsSPLight(&peach_seg5_lights_05006138.a, 2), gsSPVertex(peach_seg5_vertex_05006168, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), gsSP2Triangles( 4, 1, 5, 0x0, 6, 1, 3, 0x0), @@ -867,13 +847,13 @@ const Gfx peach_seg5_dl_05006798[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, peach_seg5_texture_05004028), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&peach_seg5_light_05006158, 1), - gsSPLight(&peach_seg5_light_05006150, 2), + gsSPLight(&peach_seg5_lights_05006150.l, 1), + gsSPLight(&peach_seg5_lights_05006150.a, 2), gsSPVertex(peach_seg5_vertex_050061E8, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), gsSP1Triangle( 3, 0, 2, 0x0), - gsSPLight(&peach_seg5_light_05006140, 1), - gsSPLight(&peach_seg5_light_05006138, 2), + gsSPLight(&peach_seg5_lights_05006138.l, 1), + gsSPLight(&peach_seg5_lights_05006138.a, 2), gsSPVertex(peach_seg5_vertex_05006238, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 0, 0x0, 0, 6, 7, 0x0), @@ -936,14 +916,10 @@ const Gfx peach_seg5_dl_05006A18[] = { }; // 0x05006A90 -static const Ambient peach_seg5_light_05006A90 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05006A98 -static const Light peach_seg5_light_05006A98 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_05006A90 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05006AA8 static const Vtx peach_seg5_vertex_05006AA8[] = { @@ -1050,8 +1026,8 @@ const Gfx peach_seg5_dl_05006FA8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, peach_seg5_texture_05004028), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&peach_seg5_light_05006A98, 1), - gsSPLight(&peach_seg5_light_05006A90, 2), + gsSPLight(&peach_seg5_lights_05006A90.l, 1), + gsSPLight(&peach_seg5_lights_05006A90.a, 2), gsSPVertex(peach_seg5_vertex_05006AA8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 7, 0x0, 3, 8, 9, 0x0), @@ -1130,14 +1106,10 @@ const Gfx peach_seg5_us_dl_05007288[] = { #endif // 0x05007288 -static const Ambient peach_seg5_light_05007288 = { - {{0x7f, 0x5f, 0x0c}, 0, {0x7f, 0x5f, 0x0c}, 0} -}; - -// 0x05007290 -static const Light peach_seg5_light_05007290 = { - {{0xff, 0xbf, 0x18}, 0, {0xff, 0xbf, 0x18}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_05007288 = gdSPDefLights1( + 0x7f, 0x5f, 0x0c, + 0xff, 0xbf, 0x18, 0x28, 0x28, 0x28 +); // 0x050072A0 static const Vtx peach_seg5_vertex_050072A0[] = { @@ -1252,8 +1224,8 @@ static const Vtx peach_seg5_vertex_05007780[] = { // 0x05007810 - 0x05007AB8 const Gfx peach_seg5_dl_05007810[] = { - gsSPLight(&peach_seg5_light_05007290, 1), - gsSPLight(&peach_seg5_light_05007288, 2), + gsSPLight(&peach_seg5_lights_05007288.l, 1), + gsSPLight(&peach_seg5_lights_05007288.a, 2), gsSPVertex(peach_seg5_vertex_050072A0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), gsSP2Triangles( 2, 1, 4, 0x0, 2, 3, 0, 0x0), @@ -1312,14 +1284,10 @@ const Gfx peach_seg5_dl_05007AB8[] = { }; // 0x05007AE0 -static const Ambient peach_seg5_light_05007AE0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05007AE8 -static const Light peach_seg5_light_05007AE8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_05007AE0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05007AF8 static const Vtx peach_seg5_vertex_05007AF8[] = { @@ -1365,8 +1333,8 @@ const Gfx peach_seg5_dl_05007CE8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, peach_seg5_texture_05004028), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&peach_seg5_light_05007AE8, 1), - gsSPLight(&peach_seg5_light_05007AE0, 2), + gsSPLight(&peach_seg5_lights_05007AE0.l, 1), + gsSPLight(&peach_seg5_lights_05007AE0.a, 2), gsSPVertex(peach_seg5_vertex_05007AF8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), gsSP2Triangles( 5, 3, 0, 0x0, 4, 6, 0, 0x0), @@ -1407,14 +1375,10 @@ const Gfx peach_seg5_dl_05007E58[] = { }; // 0x05007EB0 -static const Ambient peach_seg5_light_05007EB0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05007EB8 -static const Light peach_seg5_light_05007EB8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_05007EB0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05007EC8 static const Vtx peach_seg5_vertex_05007EC8[] = { @@ -1460,8 +1424,8 @@ const Gfx peach_seg5_dl_050080B8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, peach_seg5_texture_05004028), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&peach_seg5_light_05007EB8, 1), - gsSPLight(&peach_seg5_light_05007EB0, 2), + gsSPLight(&peach_seg5_lights_05007EB0.l, 1), + gsSPLight(&peach_seg5_lights_05007EB0.a, 2), gsSPVertex(peach_seg5_vertex_05007EC8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 2, 1, 4, 0x0, 4, 3, 2, 0x0), @@ -1503,14 +1467,10 @@ const Gfx peach_seg5_dl_05008228[] = { }; // 0x05008280 -static const Ambient peach_seg5_light_05008280 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05008288 -static const Light peach_seg5_light_05008288 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_05008280 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05008298 static const Vtx peach_seg5_vertex_05008298[] = { @@ -1550,8 +1510,8 @@ const Gfx peach_seg5_dl_05008428[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, peach_seg5_texture_05000A28), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&peach_seg5_light_05008288, 1), - gsSPLight(&peach_seg5_light_05008280, 2), + gsSPLight(&peach_seg5_lights_05008280.l, 1), + gsSPLight(&peach_seg5_lights_05008280.a, 2), gsSPVertex(peach_seg5_vertex_05008298, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 3, 0, 0x0, 1, 5, 6, 0x0), @@ -1596,14 +1556,10 @@ const Gfx peach_seg5_dl_05008560[] = { }; // 0x050085D0 -static const Ambient peach_seg5_light_050085D0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x050085D8 -static const Light peach_seg5_light_050085D8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_050085D0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x050085E8 static const Vtx peach_seg5_vertex_050085E8[] = { @@ -1625,8 +1581,8 @@ static const Vtx peach_seg5_vertex_050085E8[] = { // 0x050086C8 - 0x050087A8 const Gfx peach_seg5_dl_050086C8[] = { - gsSPLight(&peach_seg5_light_050085D8, 1), - gsSPLight(&peach_seg5_light_050085D0, 2), + gsSPLight(&peach_seg5_lights_050085D0.l, 1), + gsSPLight(&peach_seg5_lights_050085D0.a, 2), gsSPVertex(peach_seg5_vertex_050085E8, 14, 0), gsSP1Triangle( 0, 1, 2, 0x0), gsSP2Triangles( 3, 4, 2, 0x0, 2, 5, 3, 0x0), @@ -1654,14 +1610,10 @@ const Gfx peach_seg5_dl_050087A8[] = { }; // 0x050087D0 -static const Ambient peach_seg5_light_050087D0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x050087D8 -static const Light peach_seg5_light_050087D8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_050087D0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x050087E8 static const Vtx peach_seg5_vertex_050087E8[] = { @@ -1701,8 +1653,8 @@ const Gfx peach_seg5_dl_05008978[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, peach_seg5_texture_05000A28), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&peach_seg5_light_050087D8, 1), - gsSPLight(&peach_seg5_light_050087D0, 2), + gsSPLight(&peach_seg5_lights_050087D0.l, 1), + gsSPLight(&peach_seg5_lights_050087D0.a, 2), gsSPVertex(peach_seg5_vertex_050087E8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 2, 4, 0, 0x0, 0, 5, 3, 0x0), @@ -1747,14 +1699,10 @@ const Gfx peach_seg5_dl_05008AB0[] = { }; // 0x05008B20 -static const Ambient peach_seg5_light_05008B20 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05008B28 -static const Light peach_seg5_light_05008B28 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_05008B20 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05008B38 static const Vtx peach_seg5_vertex_05008B38[] = { @@ -1776,8 +1724,8 @@ static const Vtx peach_seg5_vertex_05008B38[] = { // 0x05008C18 - 0x05008CF8 const Gfx peach_seg5_dl_05008C18[] = { - gsSPLight(&peach_seg5_light_05008B28, 1), - gsSPLight(&peach_seg5_light_05008B20, 2), + gsSPLight(&peach_seg5_lights_05008B20.l, 1), + gsSPLight(&peach_seg5_lights_05008B20.a, 2), gsSPVertex(peach_seg5_vertex_05008B38, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), gsSP2Triangles( 2, 5, 0, 0x0, 5, 2, 6, 0x0), @@ -1804,14 +1752,10 @@ const Gfx peach_seg5_dl_05008CF8[] = { }; // 0x05008D20 -static const Ambient peach_seg5_light_05008D20 = { - {{0x0b, 0x1a, 0x67}, 0, {0x0b, 0x1a, 0x67}, 0} -}; - -// 0x05008D28 -static const Light peach_seg5_light_05008D28 = { - {{0x16, 0x35, 0xce}, 0, {0x16, 0x35, 0xce}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_05008D20 = gdSPDefLights1( + 0x0b, 0x1a, 0x67, + 0x16, 0x35, 0xce, 0x28, 0x28, 0x28 +); // 0x05008D38 static const Vtx peach_seg5_vertex_05008D38[] = { @@ -1835,8 +1779,8 @@ static const Vtx peach_seg5_vertex_05008D38[] = { // 0x05008E38 - 0x05008F20 const Gfx peach_seg5_dl_05008E38[] = { - gsSPLight(&peach_seg5_light_05008D28, 1), - gsSPLight(&peach_seg5_light_05008D20, 2), + gsSPLight(&peach_seg5_lights_05008D20.l, 1), + gsSPLight(&peach_seg5_lights_05008D20.a, 2), gsSPVertex(peach_seg5_vertex_05008D38, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 3, 4, 5, 0x0, 3, 0, 4, 0x0), @@ -1864,14 +1808,10 @@ const Gfx peach_seg5_dl_05008F20[] = { }; // 0x05008F48 -static const Ambient peach_seg5_light_05008F48 = { - {{0x0b, 0x1a, 0x67}, 0, {0x0b, 0x1a, 0x67}, 0} -}; - -// 0x05008F50 -static const Light peach_seg5_light_05008F50 = { - {{0x16, 0x35, 0xce}, 0, {0x16, 0x35, 0xce}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_05008F48 = gdSPDefLights1( + 0x0b, 0x1a, 0x67, + 0x16, 0x35, 0xce, 0x28, 0x28, 0x28 +); // 0x05008F60 static const Vtx peach_seg5_vertex_05008F60[] = { @@ -1895,8 +1835,8 @@ static const Vtx peach_seg5_vertex_05008F60[] = { // 0x05009060 - 0x05009148 const Gfx peach_seg5_dl_05009060[] = { - gsSPLight(&peach_seg5_light_05008F50, 1), - gsSPLight(&peach_seg5_light_05008F48, 2), + gsSPLight(&peach_seg5_lights_05008F48.l, 1), + gsSPLight(&peach_seg5_lights_05008F48.a, 2), gsSPVertex(peach_seg5_vertex_05008F60, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 7, 3, 5, 0x0), @@ -1924,14 +1864,10 @@ const Gfx peach_seg5_dl_05009148[] = { }; // 0x05009170 -static const Ambient peach_seg5_light_05009170 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05009178 -static const Light peach_seg5_light_05009178 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_05009170 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05009188 static const Vtx peach_seg5_vertex_05009188[] = { @@ -1975,8 +1911,8 @@ static const Vtx peach_seg5_vertex_05009288[] = { // 0x05009388 - 0x05009500 const Gfx peach_seg5_dl_05009388[] = { - gsSPLight(&peach_seg5_light_05009178, 1), - gsSPLight(&peach_seg5_light_05009170, 2), + gsSPLight(&peach_seg5_lights_05009170.l, 1), + gsSPLight(&peach_seg5_lights_05009170.a, 2), gsSPVertex(peach_seg5_vertex_05009188, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 4, 5, 0, 0x0, 0, 5, 6, 0x0), @@ -2014,14 +1950,10 @@ const Gfx peach_seg5_dl_05009500[] = { }; // 0x05009528 -static const Ambient peach_seg5_light_05009528 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05009530 -static const Light peach_seg5_light_05009530 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_05009528 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05009540 static const Vtx peach_seg5_vertex_05009540[] = { @@ -2077,8 +2009,8 @@ static const Vtx peach_seg5_vertex_05009740[] = { // 0x050097C0 - 0x05009940 const Gfx peach_seg5_dl_050097C0[] = { - gsSPLight(&peach_seg5_light_05009530, 1), - gsSPLight(&peach_seg5_light_05009528, 2), + gsSPLight(&peach_seg5_lights_05009528.l, 1), + gsSPLight(&peach_seg5_lights_05009528.a, 2), gsSPVertex(peach_seg5_vertex_05009540, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), gsSP2Triangles( 5, 0, 2, 0x0, 2, 3, 5, 0x0), @@ -2117,14 +2049,10 @@ const Gfx peach_seg5_dl_05009940[] = { }; // 0x05009968 -static const Ambient peach_seg5_light_05009968 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05009970 -static const Light peach_seg5_light_05009970 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 peach_seg5_lights_05009968 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05009980 static const Vtx peach_seg5_vertex_05009980[] = { @@ -2225,8 +2153,8 @@ const Gfx peach_seg5_dl_05009E20[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, peach_seg5_texture_05004028), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&peach_seg5_light_05009970, 1), - gsSPLight(&peach_seg5_light_05009968, 2), + gsSPLight(&peach_seg5_lights_05009968.l, 1), + gsSPLight(&peach_seg5_lights_05009968.a, 2), gsSPVertex(peach_seg5_vertex_05009980, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 4, 2, 1, 0x0, 5, 2, 4, 0x0), diff --git a/actors/penguin/model.inc.c b/actors/penguin/model.inc.c index d352d69..ff9eed7 100644 --- a/actors/penguin/model.inc.c +++ b/actors/penguin/model.inc.c @@ -1,44 +1,28 @@ // Penguin // 0x05002D80 -static const Ambient penguin_seg5_light_05002D80 = { - {{0x06, 0x06, 0x39}, 0, {0x06, 0x06, 0x39}, 0} -}; - -// 0x05002D88 -static const Light penguin_seg5_light_05002D88 = { - {{0x0f, 0x0f, 0x90}, 0, {0x0f, 0x0f, 0x90}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 penguin_seg5_lights_05002D80 = gdSPDefLights1( + 0x06, 0x06, 0x39, + 0x0f, 0x0f, 0x90, 0x28, 0x28, 0x28 +); // 0x05002D98 -static const Ambient penguin_seg5_light_05002D98 = { - {{0x52, 0x34, 0x0a}, 0, {0x52, 0x34, 0x0a}, 0} -}; - -// 0x05002DA0 -static const Light penguin_seg5_light_05002DA0 = { - {{0xce, 0x84, 0x1a}, 0, {0xce, 0x84, 0x1a}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 penguin_seg5_lights_05002D98 = gdSPDefLights1( + 0x52, 0x34, 0x0a, + 0xce, 0x84, 0x1a, 0x28, 0x28, 0x28 +); // 0x05002DB0 -static const Ambient penguin_seg5_light_05002DB0 = { - {{0x59, 0x42, 0x14}, 0, {0x59, 0x42, 0x14}, 0} -}; - -// 0x05002DB8 -static const Light penguin_seg5_light_05002DB8 = { - {{0xdf, 0xa7, 0x34}, 0, {0xdf, 0xa7, 0x34}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 penguin_seg5_lights_05002DB0 = gdSPDefLights1( + 0x59, 0x42, 0x14, + 0xdf, 0xa7, 0x34, 0x28, 0x28, 0x28 +); // 0x05002DC8 -static const Ambient penguin_seg5_light_05002DC8 = { - {{0x66, 0x66, 0x65}, 0, {0x66, 0x66, 0x65}, 0} -}; - -// 0x05002DD0 -static const Light penguin_seg5_light_05002DD0 = { - {{0xff, 0xff, 0xfd}, 0, {0xff, 0xff, 0xfd}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 penguin_seg5_lights_05002DC8 = gdSPDefLights1( + 0x66, 0x66, 0x65, + 0xff, 0xff, 0xfd, 0x28, 0x28, 0x28 +); // 0x05002DE0 ALIGNED8 static const u8 penguin_seg5_texture_05002DE0[] = { @@ -71,34 +55,22 @@ ALIGNED8 static const u8 penguin_seg5_texture_050055E0[] = { }; // 0x05005DE0 -static const Ambient penguin_seg5_light_05005DE0 = { - {{0x04, 0x0f, 0x41}, 0, {0x04, 0x0f, 0x41}, 0} -}; - -// 0x05005DE8 -static const Light penguin_seg5_light_05005DE8 = { - {{0x0b, 0x26, 0xa4}, 0, {0x0b, 0x26, 0xa4}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 penguin_seg5_lights_05005DE0 = gdSPDefLights1( + 0x04, 0x0f, 0x41, + 0x0b, 0x26, 0xa4, 0x28, 0x28, 0x28 +); // 0x05005DF8 -static const Ambient penguin_seg5_light_05005DF8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x05005E00 -static const Light penguin_seg5_light_05005E00 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 penguin_seg5_lights_05005DF8 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05005E10 -static const Ambient penguin_seg5_light_05005E10 = { - {{0x60, 0x55, 0x0b}, 0, {0x60, 0x55, 0x0b}, 0} -}; - -// 0x05005E18 -static const Light penguin_seg5_light_05005E18 = { - {{0xf2, 0xd5, 0x1c}, 0, {0xf2, 0xd5, 0x1c}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 penguin_seg5_lights_05005E10 = gdSPDefLights1( + 0x60, 0x55, 0x0b, + 0xf2, 0xd5, 0x1c, 0x28, 0x28, 0x28 +); // 0x05005E28 static const Vtx penguin_seg5_vertex_05005E28[] = { @@ -180,8 +152,8 @@ static const Vtx penguin_seg5_vertex_05006158[] = { // 0x05006188 - 0x050061C8 const Gfx penguin_seg5_dl_05006188[] = { - gsSPLight(&penguin_seg5_light_05005DE8, 1), - gsSPLight(&penguin_seg5_light_05005DE0, 2), + gsSPLight(&penguin_seg5_lights_05005DE0.l, 1), + gsSPLight(&penguin_seg5_lights_05005DE0.a, 2), gsSPVertex(penguin_seg5_vertex_05005E28, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 6, 5, 0x0), @@ -190,8 +162,8 @@ const Gfx penguin_seg5_dl_05006188[] = { // 0x050061C8 - 0x050061F8 const Gfx penguin_seg5_dl_050061C8[] = { - gsSPLight(&penguin_seg5_light_05005E00, 1), - gsSPLight(&penguin_seg5_light_05005DF8, 2), + gsSPLight(&penguin_seg5_lights_05005DF8.l, 1), + gsSPLight(&penguin_seg5_lights_05005DF8.a, 2), gsSPVertex(penguin_seg5_vertex_05005EA8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSPEndDisplayList(), @@ -199,8 +171,8 @@ const Gfx penguin_seg5_dl_050061C8[] = { // 0x050061F8 - 0x05006380 const Gfx penguin_seg5_dl_050061F8[] = { - gsSPLight(&penguin_seg5_light_05005DE8, 1), - gsSPLight(&penguin_seg5_light_05005DE0, 2), + gsSPLight(&penguin_seg5_lights_05005DE0.l, 1), + gsSPLight(&penguin_seg5_lights_05005DE0.a, 2), gsSPVertex(penguin_seg5_vertex_05005EE8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 1, 5, 0x0, 1, 4, 6, 0x0), @@ -224,8 +196,8 @@ const Gfx penguin_seg5_dl_050061F8[] = { gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 0, 2, 0x0, 5, 2, 3, 0x0), gsSP2Triangles( 2, 5, 4, 0x0, 4, 5, 6, 0x0), - gsSPLight(&penguin_seg5_light_05005E18, 1), - gsSPLight(&penguin_seg5_light_05005E10, 2), + gsSPLight(&penguin_seg5_lights_05005E10.l, 1), + gsSPLight(&penguin_seg5_lights_05005E10.a, 2), gsSPVertex(penguin_seg5_vertex_05006158, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), gsSPEndDisplayList(), @@ -576,8 +548,8 @@ static const Vtx penguin_seg5_vertex_050070A8[] = { // 0x05007198 - 0x050071E8 const Gfx penguin_seg5_dl_05007198[] = { - gsSPLight(&penguin_seg5_light_05002D88, 1), - gsSPLight(&penguin_seg5_light_05002D80, 2), + gsSPLight(&penguin_seg5_lights_05002D80.l, 1), + gsSPLight(&penguin_seg5_lights_05002D80.a, 2), gsSPVertex(penguin_seg5_vertex_05006518, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 3, 0x0, 3, 6, 7, 0x0), @@ -587,8 +559,8 @@ const Gfx penguin_seg5_dl_05007198[] = { // 0x050071E8 - 0x05007238 const Gfx penguin_seg5_dl_050071E8[] = { - gsSPLight(&penguin_seg5_light_05002D88, 1), - gsSPLight(&penguin_seg5_light_05002D80, 2), + gsSPLight(&penguin_seg5_lights_05002D80.l, 1), + gsSPLight(&penguin_seg5_lights_05002D80.a, 2), gsSPVertex(penguin_seg5_vertex_050065B8, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 7, 6, 8, 0x0), @@ -598,8 +570,8 @@ const Gfx penguin_seg5_dl_050071E8[] = { // 0x05007238 - 0x050072C8 const Gfx penguin_seg5_dl_05007238[] = { - gsSPLight(&penguin_seg5_light_05002DA0, 1), - gsSPLight(&penguin_seg5_light_05002D98, 2), + gsSPLight(&penguin_seg5_lights_05002D98.l, 1), + gsSPLight(&penguin_seg5_lights_05002D98.a, 2), gsSPVertex(penguin_seg5_vertex_05006658, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 6, 7, 2, 0x0), @@ -613,8 +585,8 @@ const Gfx penguin_seg5_dl_05007238[] = { // 0x050072C8 - 0x05007358 const Gfx penguin_seg5_dl_050072C8[] = { - gsSPLight(&penguin_seg5_light_05002DA0, 1), - gsSPLight(&penguin_seg5_light_05002D98, 2), + gsSPLight(&penguin_seg5_lights_05002D98.l, 1), + gsSPLight(&penguin_seg5_lights_05002D98.a, 2), gsSPVertex(penguin_seg5_vertex_05006748, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 7, 8, 9, 0x0), @@ -628,13 +600,13 @@ const Gfx penguin_seg5_dl_050072C8[] = { // 0x05007358 - 0x05007540 const Gfx penguin_seg5_dl_05007358[] = { - gsSPLight(&penguin_seg5_light_05002DB8, 1), - gsSPLight(&penguin_seg5_light_05002DB0, 2), + gsSPLight(&penguin_seg5_lights_05002DB0.l, 1), + gsSPLight(&penguin_seg5_lights_05002DB0.a, 2), gsSPVertex(penguin_seg5_vertex_05006838, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP1Triangle( 1, 4, 3, 0x0), - gsSPLight(&penguin_seg5_light_05002D88, 1), - gsSPLight(&penguin_seg5_light_05002D80, 2), + gsSPLight(&penguin_seg5_lights_05002D80.l, 1), + gsSPLight(&penguin_seg5_lights_05002D80.a, 2), gsSPVertex(penguin_seg5_vertex_05006888, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 0, 0x0), @@ -662,8 +634,8 @@ const Gfx penguin_seg5_dl_05007358[] = { gsSPVertex(penguin_seg5_vertex_05006D68, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 6, 7, 4, 0x0), - gsSPLight(&penguin_seg5_light_05002D88, 1), - gsSPLight(&penguin_seg5_light_05002D80, 2), + gsSPLight(&penguin_seg5_lights_05002D80.l, 1), + gsSPLight(&penguin_seg5_lights_05002D80.a, 2), gsSPVertex(penguin_seg5_vertex_05006DE8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSPEndDisplayList(), @@ -671,8 +643,8 @@ const Gfx penguin_seg5_dl_05007358[] = { // 0x05007540 - 0x05007708 const Gfx penguin_seg5_dl_05007540[] = { - gsSPLight(&penguin_seg5_light_05002D88, 1), - gsSPLight(&penguin_seg5_light_05002D80, 2), + gsSPLight(&penguin_seg5_lights_05002D80.l, 1), + gsSPLight(&penguin_seg5_lights_05002D80.a, 2), gsSPVertex(penguin_seg5_vertex_05006E28, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 2, 9, 6, 0x0), @@ -691,8 +663,8 @@ const Gfx penguin_seg5_dl_05007540[] = { gsSPVertex(penguin_seg5_vertex_05007018, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 2, 8, 0x0), - gsSPLight(&penguin_seg5_light_05002DD0, 1), - gsSPLight(&penguin_seg5_light_05002DC8, 2), + gsSPLight(&penguin_seg5_lights_05002DC8.l, 1), + gsSPLight(&penguin_seg5_lights_05002DC8.a, 2), gsSPVertex(penguin_seg5_vertex_050070A8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), gsSP2Triangles( 5, 2, 6, 0x0, 7, 8, 9, 0x0), diff --git a/actors/piranha_plant/model.inc.c b/actors/piranha_plant/model.inc.c index a40ae2c..31603f9 100644 --- a/actors/piranha_plant/model.inc.c +++ b/actors/piranha_plant/model.inc.c @@ -1,35 +1,22 @@ // Piranha Plant - // 0x060113B0 -static const Ambient piranha_plant_seg6_light_060113B0 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x060113B8 -static const Light piranha_plant_seg6_light_060113B8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 piranha_plant_seg6_lights_060113B0 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x060113C8 -static const Ambient piranha_plant_seg6_light_060113C8 = { - {{0x0a, 0x2b, 0x02}, 0, {0x0a, 0x2b, 0x02}, 0} -}; - -// 0x060113D0 -static const Light piranha_plant_seg6_light_060113D0 = { - {{0x2b, 0xae, 0x0a}, 0, {0x2b, 0xae, 0x0a}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 piranha_plant_seg6_lights_060113C8 = gdSPDefLights1( + 0x0a, 0x2b, 0x02, + 0x2b, 0xae, 0x0a, 0x28, 0x28, 0x28 +); // 0x060113E0 -static const Ambient piranha_plant_seg6_light_060113E0 = { - {{0x3f, 0x00, 0x00}, 0, {0x3f, 0x00, 0x00}, 0} -}; - -// 0x060113E8 -static const Light piranha_plant_seg6_light_060113E8 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 piranha_plant_seg6_lights_060113E0 = gdSPDefLights1( + 0x3f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x060113F8 ALIGNED8 static const u8 piranha_plant_seg6_texture_060113F8[] = { @@ -74,8 +61,8 @@ const Gfx piranha_plant_seg6_dl_06015438[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, piranha_plant_seg6_texture_060143F8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&piranha_plant_seg6_light_060113B8, 1), - gsSPLight(&piranha_plant_seg6_light_060113B0, 2), + gsSPLight(&piranha_plant_seg6_lights_060113B0.l, 1), + gsSPLight(&piranha_plant_seg6_lights_060113B0.a, 2), gsSPVertex(piranha_plant_seg6_vertex_060153F8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -112,8 +99,8 @@ const Gfx piranha_plant_seg6_dl_06015530[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, piranha_plant_seg6_texture_060143F8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&piranha_plant_seg6_light_060113B8, 1), - gsSPLight(&piranha_plant_seg6_light_060113B0, 2), + gsSPLight(&piranha_plant_seg6_lights_060113B0.l, 1), + gsSPLight(&piranha_plant_seg6_lights_060113B0.a, 2), gsSPVertex(piranha_plant_seg6_vertex_060154F0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -177,8 +164,8 @@ const Gfx piranha_plant_seg6_dl_06015798[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, piranha_plant_seg6_texture_06012BF8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&piranha_plant_seg6_light_060113B8, 1), - gsSPLight(&piranha_plant_seg6_light_060113B0, 2), + gsSPLight(&piranha_plant_seg6_lights_060113B0.l, 1), + gsSPLight(&piranha_plant_seg6_lights_060113B0.a, 2), gsSPVertex(piranha_plant_seg6_vertex_060155E8, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 3, 4, 1, 0x0, 5, 6, 7, 0x0), @@ -330,8 +317,8 @@ const Gfx piranha_plant_seg6_dl_06015E40[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, piranha_plant_seg6_texture_06013BF8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&piranha_plant_seg6_light_060113B8, 1), - gsSPLight(&piranha_plant_seg6_light_060113B0, 2), + gsSPLight(&piranha_plant_seg6_lights_060113B0.l, 1), + gsSPLight(&piranha_plant_seg6_lights_060113B0.a, 2), gsSPVertex(piranha_plant_seg6_vertex_060158B0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), @@ -344,8 +331,8 @@ const Gfx piranha_plant_seg6_dl_06015EA8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, piranha_plant_seg6_texture_060133F8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&piranha_plant_seg6_light_060113D0, 1), - gsSPLight(&piranha_plant_seg6_light_060113C8, 2), + gsSPLight(&piranha_plant_seg6_lights_060113C8.l, 1), + gsSPLight(&piranha_plant_seg6_lights_060113C8.a, 2), gsSPVertex(piranha_plant_seg6_vertex_06015990, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 3, 0x0, 3, 5, 8, 0x0), @@ -365,8 +352,8 @@ const Gfx piranha_plant_seg6_dl_06015F68[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, piranha_plant_seg6_texture_060123F8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&piranha_plant_seg6_light_060113B8, 1), - gsSPLight(&piranha_plant_seg6_light_060113B0, 2), + gsSPLight(&piranha_plant_seg6_lights_060113B0.l, 1), + gsSPLight(&piranha_plant_seg6_lights_060113B0.a, 2), gsSPVertex(piranha_plant_seg6_vertex_06015B40, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 7, 0x0, 3, 7, 8, 0x0), @@ -386,8 +373,8 @@ const Gfx piranha_plant_seg6_dl_06015F68[] = { // 0x06016060 - 0x060160B0 const Gfx piranha_plant_seg6_dl_06016060[] = { - gsSPLight(&piranha_plant_seg6_light_060113E8, 1), - gsSPLight(&piranha_plant_seg6_light_060113E0, 2), + gsSPLight(&piranha_plant_seg6_lights_060113E0.l, 1), + gsSPLight(&piranha_plant_seg6_lights_060113E0.a, 2), gsSPVertex(piranha_plant_seg6_vertex_06015DC0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 5, 3, 0x0, 0, 4, 1, 0x0), @@ -560,8 +547,8 @@ const Gfx piranha_plant_seg6_dl_06016750[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, piranha_plant_seg6_texture_06013BF8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&piranha_plant_seg6_light_060113B8, 1), - gsSPLight(&piranha_plant_seg6_light_060113B0, 2), + gsSPLight(&piranha_plant_seg6_lights_060113B0.l, 1), + gsSPLight(&piranha_plant_seg6_lights_060113B0.a, 2), gsSPVertex(piranha_plant_seg6_vertex_06016190, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), @@ -574,8 +561,8 @@ const Gfx piranha_plant_seg6_dl_060167B8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, piranha_plant_seg6_texture_060133F8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&piranha_plant_seg6_light_060113D0, 1), - gsSPLight(&piranha_plant_seg6_light_060113C8, 2), + gsSPLight(&piranha_plant_seg6_lights_060113C8.l, 1), + gsSPLight(&piranha_plant_seg6_lights_060113C8.a, 2), gsSPVertex(piranha_plant_seg6_vertex_06016270, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 3, 0x0, 7, 6, 5, 0x0), @@ -597,8 +584,8 @@ const Gfx piranha_plant_seg6_dl_06016890[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, piranha_plant_seg6_texture_060123F8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&piranha_plant_seg6_light_060113B8, 1), - gsSPLight(&piranha_plant_seg6_light_060113B0, 2), + gsSPLight(&piranha_plant_seg6_lights_060113B0.l, 1), + gsSPLight(&piranha_plant_seg6_lights_060113B0.a, 2), gsSPVertex(piranha_plant_seg6_vertex_06016490, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 0, 4, 5, 0x0, 0, 3, 4, 0x0), @@ -626,8 +613,8 @@ const Gfx piranha_plant_seg6_dl_06016960[] = { // 0x060169A8 - 0x060169E8 const Gfx piranha_plant_seg6_dl_060169A8[] = { - gsSPLight(&piranha_plant_seg6_light_060113D0, 1), - gsSPLight(&piranha_plant_seg6_light_060113C8, 2), + gsSPLight(&piranha_plant_seg6_lights_060113C8.l, 1), + gsSPLight(&piranha_plant_seg6_lights_060113C8.a, 2), gsSPVertex(piranha_plant_seg6_vertex_060166E0, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 3, 4, 5, 0x0, 5, 4, 6, 0x0), @@ -695,8 +682,8 @@ const Gfx piranha_plant_seg6_dl_06016BA8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, piranha_plant_seg6_texture_06012BF8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&piranha_plant_seg6_light_060113B8, 1), - gsSPLight(&piranha_plant_seg6_light_060113B0, 2), + gsSPLight(&piranha_plant_seg6_lights_060113B0.l, 1), + gsSPLight(&piranha_plant_seg6_lights_060113B0.a, 2), gsSPVertex(piranha_plant_seg6_vertex_06016AE8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -741,8 +728,8 @@ const Gfx piranha_plant_seg6_dl_06016D30[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, piranha_plant_seg6_texture_06012BF8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&piranha_plant_seg6_light_060113B8, 1), - gsSPLight(&piranha_plant_seg6_light_060113B0, 2), + gsSPLight(&piranha_plant_seg6_lights_060113B0.l, 1), + gsSPLight(&piranha_plant_seg6_lights_060113B0.a, 2), gsSPVertex(piranha_plant_seg6_vertex_06016C70, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -787,8 +774,8 @@ const Gfx piranha_plant_seg6_dl_06016EB8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, piranha_plant_seg6_texture_06012BF8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&piranha_plant_seg6_light_060113B8, 1), - gsSPLight(&piranha_plant_seg6_light_060113B0, 2), + gsSPLight(&piranha_plant_seg6_lights_060113B0.l, 1), + gsSPLight(&piranha_plant_seg6_lights_060113B0.a, 2), gsSPVertex(piranha_plant_seg6_vertex_06016DF8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/actors/poundable_pole/model.inc.c b/actors/poundable_pole/model.inc.c index 5468cc8..14f19f8 100644 --- a/actors/poundable_pole/model.inc.c +++ b/actors/poundable_pole/model.inc.c @@ -1,14 +1,10 @@ // Poundable Pole // 0x06001038 -static const Ambient poundable_pole_seg6_light_06001038 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x06001040 -static const Light poundable_pole_seg6_light_06001040 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 poundable_pole_seg6_lights_06001038 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06001050 ALIGNED8 static const u8 poundable_pole_seg6_texture_06001050[] = { @@ -83,8 +79,8 @@ const Gfx poundable_pole_seg6_dl_060022F0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, poundable_pole_seg6_texture_06001050), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(£able_pole_seg6_light_06001040, 1), - gsSPLight(£able_pole_seg6_light_06001038, 2), + gsSPLight(£able_pole_seg6_lights_06001038.l, 1), + gsSPLight(£able_pole_seg6_lights_06001038.a, 2), gsSPVertex(poundable_pole_seg6_vertex_06002050, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 2, 3, 0x0, 2, 1, 5, 0x0), diff --git a/actors/purple_switch/model.inc.c b/actors/purple_switch/model.inc.c index ddb5405..dea765f 100644 --- a/actors/purple_switch/model.inc.c +++ b/actors/purple_switch/model.inc.c @@ -1,14 +1,10 @@ // Purple Switch // 0x0800C090 -static const Ambient purple_switch_seg8_light_0800C090 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0800C098 -static const Light purple_switch_seg8_light_0800C098 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 purple_switch_seg8_lights_0800C090 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0800C0A8 ALIGNED8 static const u8 purple_switch_seg8_texture_0800C0A8[] = { @@ -53,8 +49,8 @@ const Gfx purple_switch_seg8_dl_0800C668[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, purple_switch_seg8_texture_0800C0A8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 4 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&purple_switch_seg8_light_0800C098, 1), - gsSPLight(&purple_switch_seg8_light_0800C090, 2), + gsSPLight(&purple_switch_seg8_lights_0800C090.l, 1), + gsSPLight(&purple_switch_seg8_lights_0800C090.a, 2), gsSPVertex(purple_switch_seg8_vertex_0800C528, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/actors/scuttlebug/model.inc.c b/actors/scuttlebug/model.inc.c index 89bf866..38fdf27 100644 --- a/actors/scuttlebug/model.inc.c +++ b/actors/scuttlebug/model.inc.c @@ -1,24 +1,16 @@ // Scuttlebug -// Unreferenced light -UNUSED static const Ambient scuttlebug_light_1 = { - {{0x2c, 0x00, 0x00}, 0, {0x2c, 0x00, 0x00}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 scuttlebug_lights_unused1 = gdSPDefLights1( + 0x2c, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light scuttlebug_light_2 = { - {{0xb2, 0x00, 0x00}, 0, {0xb2, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient scuttlebug_light_3 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light scuttlebug_light_4 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 scuttlebug_lights_unused2 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x06010108 ALIGNED8 static const u8 scuttlebug_seg6_texture_06010108[] = { @@ -245,14 +237,10 @@ const Gfx scuttlebug_seg6_dl_06013DA0[] = { }; // 0x06013E10 -static const Ambient scuttlebug_seg6_light_06013E10 = { - {{0x33, 0x22, 0x01}, 0, {0x33, 0x22, 0x01}, 0} -}; - -// 0x06013E18 -static const Light scuttlebug_seg6_light_06013E18 = { - {{0xcf, 0x89, 0x06}, 0, {0xcf, 0x89, 0x06}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 scuttlebug_seg6_lights_06013E10 = gdSPDefLights1( + 0x33, 0x22, 0x01, + 0xcf, 0x89, 0x06, 0x28, 0x28, 0x28 +); // 0x06013E28 static const Vtx scuttlebug_seg6_vertex_06013E28[] = { @@ -290,8 +278,8 @@ static const Vtx scuttlebug_seg6_vertex_06013F28[] = { // 0x06013FC8 - 0x060140F0 const Gfx scuttlebug_seg6_dl_06013FC8[] = { - gsSPLight(&scuttlebug_seg6_light_06013E18, 1), - gsSPLight(&scuttlebug_seg6_light_06013E10, 2), + gsSPLight(&scuttlebug_seg6_lights_06013E10.l, 1), + gsSPLight(&scuttlebug_seg6_lights_06013E10.a, 2), gsSPVertex(scuttlebug_seg6_vertex_06013E28, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 5, 4, 6, 0x0), @@ -394,14 +382,10 @@ const Gfx scuttlebug_seg6_dl_06014270[] = { }; // 0x060142E0 -static const Ambient scuttlebug_seg6_light_060142E0 = { - {{0x26, 0x05, 0x05}, 0, {0x26, 0x05, 0x05}, 0} -}; - -// 0x060142E8 -static const Light scuttlebug_seg6_light_060142E8 = { - {{0x99, 0x16, 0x16}, 0, {0x99, 0x16, 0x16}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 scuttlebug_seg6_lights_060142E0 = gdSPDefLights1( + 0x26, 0x05, 0x05, + 0x99, 0x16, 0x16, 0x28, 0x28, 0x28 +); // 0x060142F8 static const Vtx scuttlebug_seg6_vertex_060142F8[] = { @@ -413,8 +397,8 @@ static const Vtx scuttlebug_seg6_vertex_060142F8[] = { // 0x06014338 - 0x06014378 const Gfx scuttlebug_seg6_dl_06014338[] = { - gsSPLight(&scuttlebug_seg6_light_060142E8, 1), - gsSPLight(&scuttlebug_seg6_light_060142E0, 2), + gsSPLight(&scuttlebug_seg6_lights_060142E0.l, 1), + gsSPLight(&scuttlebug_seg6_lights_060142E0.a, 2), gsSPVertex(scuttlebug_seg6_vertex_060142F8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), gsSP2Triangles( 2, 3, 0, 0x0, 1, 0, 3, 0x0), diff --git a/actors/seaweed/model.inc.c b/actors/seaweed/model.inc.c index ef36132..72a5086 100644 --- a/actors/seaweed/model.inc.c +++ b/actors/seaweed/model.inc.c @@ -1,14 +1,10 @@ // Seaweed // 0x06007DF8 -static const Ambient seaweed_seg6_light_06007DF8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x06007E00 -static const Light seaweed_seg6_light_06007E00 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 seaweed_seg6_lights_06007DF8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06007E10 ALIGNED8 static const u8 seaweed_seg6_texture_06007E10[] = { @@ -43,8 +39,8 @@ const Gfx seaweed_seg6_dl_06009E50[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, seaweed_seg6_texture_06007E10), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&seaweed_seg6_light_06007E00, 1), - gsSPLight(&seaweed_seg6_light_06007DF8, 2), + gsSPLight(&seaweed_seg6_lights_06007DF8.l, 1), + gsSPLight(&seaweed_seg6_lights_06007DF8.a, 2), gsSPVertex(seaweed_seg6_vertex_06009E10, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -81,8 +77,8 @@ const Gfx seaweed_seg6_dl_06009F48[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, seaweed_seg6_texture_06008610), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&seaweed_seg6_light_06007E00, 1), - gsSPLight(&seaweed_seg6_light_06007DF8, 2), + gsSPLight(&seaweed_seg6_lights_06007DF8.l, 1), + gsSPLight(&seaweed_seg6_lights_06007DF8.a, 2), gsSPVertex(seaweed_seg6_vertex_06009F08, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -119,8 +115,8 @@ const Gfx seaweed_seg6_dl_0600A040[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, seaweed_seg6_texture_06008E10), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&seaweed_seg6_light_06007E00, 1), - gsSPLight(&seaweed_seg6_light_06007DF8, 2), + gsSPLight(&seaweed_seg6_lights_06007DF8.l, 1), + gsSPLight(&seaweed_seg6_lights_06007DF8.a, 2), gsSPVertex(seaweed_seg6_vertex_0600A000, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -157,8 +153,8 @@ const Gfx seaweed_seg6_dl_0600A138[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, seaweed_seg6_texture_06009610), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&seaweed_seg6_light_06007E00, 1), - gsSPLight(&seaweed_seg6_light_06007DF8, 2), + gsSPLight(&seaweed_seg6_lights_06007DF8.l, 1), + gsSPLight(&seaweed_seg6_lights_06007DF8.a, 2), gsSPVertex(seaweed_seg6_vertex_0600A0F8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/actors/skeeter/model.inc.c b/actors/skeeter/model.inc.c index b3a028c..190bb83 100644 --- a/actors/skeeter/model.inc.c +++ b/actors/skeeter/model.inc.c @@ -1,64 +1,40 @@ // Skeeter -// Unreferenced light -UNUSED static const Ambient skeeter_light_1 = { - {{0x3f, 0x20, 0x02}, 0, {0x3f, 0x20, 0x02}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 skeeter_lights_unused1 = gdSPDefLights1( + 0x3f, 0x20, 0x02, + 0xfc, 0x80, 0x08, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light skeeter_light_2 = { - {{0xfc, 0x80, 0x08}, 0, {0xfc, 0x80, 0x08}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 skeeter_lights_unused2 = gdSPDefLights1( + 0x05, 0x05, 0x02, + 0x15, 0x15, 0x08, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient skeeter_light_3 = { - {{0x05, 0x05, 0x02}, 0, {0x05, 0x05, 0x02}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 skeeter_lights_unused3 = gdSPDefLights1( + 0x03, 0x10, 0x29, + 0x0e, 0x40, 0xa4, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light skeeter_light_4 = { - {{0x15, 0x15, 0x08}, 0, {0x15, 0x15, 0x08}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 skeeter_lights_unused4 = gdSPDefLights1( + 0x3b, 0x3a, 0x36, + 0xef, 0xea, 0xd9, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient skeeter_light_5 = { - {{0x03, 0x10, 0x29}, 0, {0x03, 0x10, 0x29}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 skeeter_lights_unused5 = gdSPDefLights1( + 0x33, 0x0c, 0x00, + 0xcf, 0x32, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light skeeter_light_6 = { - {{0x0e, 0x40, 0xa4}, 0, {0x0e, 0x40, 0xa4}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient skeeter_light_7 = { - {{0x3b, 0x3a, 0x36}, 0, {0x3b, 0x3a, 0x36}, 0} -}; - -// Unreferenced light -UNUSED static const Light skeeter_light_8 = { - {{0xef, 0xea, 0xd9}, 0, {0xef, 0xea, 0xd9}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient skeeter_light_9 = { - {{0x33, 0x0c, 0x00}, 0, {0x33, 0x0c, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light skeeter_light_10 = { - {{0xcf, 0x32, 0x00}, 0, {0xcf, 0x32, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient skeeter_light_11 = { - {{0x10, 0x29, 0x20}, 0, {0x10, 0x29, 0x20}, 0} -}; - -// Unreferenced light -UNUSED static const Light skeeter_light_12 = { - {{0x42, 0xa5, 0x81}, 0, {0x42, 0xa5, 0x81}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 skeeter_lights_unused6 = gdSPDefLights1( + 0x10, 0x29, 0x20, + 0x42, 0xa5, 0x81, 0x28, 0x28, 0x28 +); // 0x06000090 ALIGNED8 static const u8 skeeter_seg6_texture_06000090[] = { @@ -249,14 +225,10 @@ const Gfx skeeter_seg6_dl_06000D78[] = { }; // 0x06000DE8 -static const Ambient skeeter_seg6_light_06000DE8 = { - {{0x7f, 0x55, 0x00}, 0, {0x7f, 0x55, 0x00}, 0} -}; - -// 0x06000DF0 -static const Light skeeter_seg6_light_06000DF0 = { - {{0xff, 0xaa, 0x00}, 0, {0xff, 0xaa, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 skeeter_seg6_lights_06000DE8 = gdSPDefLights1( + 0x7f, 0x55, 0x00, + 0xff, 0xaa, 0x00, 0x28, 0x28, 0x28 +); // 0x06000E00 static const Vtx skeeter_seg6_vertex_06000E00[] = { @@ -270,8 +242,8 @@ static const Vtx skeeter_seg6_vertex_06000E00[] = { // 0x06000E60 - 0x06000EC0 const Gfx skeeter_seg6_dl_06000E60[] = { - gsSPLight(&skeeter_seg6_light_06000DF0, 1), - gsSPLight(&skeeter_seg6_light_06000DE8, 2), + gsSPLight(&skeeter_seg6_lights_06000DE8.l, 1), + gsSPLight(&skeeter_seg6_lights_06000DE8.a, 2), gsSPVertex(skeeter_seg6_vertex_06000E00, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 2, 1, 4, 0x0, 1, 3, 4, 0x0), diff --git a/actors/small_key/model.inc.c b/actors/small_key/model.inc.c index 22ff4ec..d6493eb 100644 --- a/actors/small_key/model.inc.c +++ b/actors/small_key/model.inc.c @@ -4,44 +4,28 @@ UNUSED static const u64 small_key_unused_1 = 0; // 0x05005798 -static const Ambient small_key_seg5_light_05005798 = { - {{0x3f, 0x19, 0x0c}, 0, {0x3f, 0x19, 0x0c}, 0} -}; - -// 0x050057A0 -static const Light small_key_seg5_light_050057A0 = { - {{0xff, 0x64, 0x32}, 0, {0xff, 0x64, 0x32}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 small_key_seg5_lights_05005798 = gdSPDefLights1( + 0x3f, 0x19, 0x0c, + 0xff, 0x64, 0x32, 0x28, 0x28, 0x28 +); // 0x050057B0 -static const Ambient small_key_seg5_light_050057B0 = { - {{0x0c, 0x3f, 0x19}, 0, {0x0c, 0x3f, 0x19}, 0} -}; - -// 0x050057B8 -static const Light small_key_seg5_light_050057B8 = { - {{0x32, 0xff, 0x64}, 0, {0x32, 0xff, 0x64}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 small_key_seg5_lights_050057B0 = gdSPDefLights1( + 0x0c, 0x3f, 0x19, + 0x32, 0xff, 0x64, 0x28, 0x28, 0x28 +); // 0x050057C8 -static const Ambient small_key_seg5_light_050057C8 = { - {{0x0c, 0x19, 0x3f}, 0, {0x0c, 0x19, 0x3f}, 0} -}; - -// 0x050057D0 -static const Light small_key_seg5_light_050057D0 = { - {{0x32, 0x64, 0xff}, 0, {0x32, 0x64, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 small_key_seg5_lights_050057C8 = gdSPDefLights1( + 0x0c, 0x19, 0x3f, + 0x32, 0x64, 0xff, 0x28, 0x28, 0x28 +); // 0x050057E0 -static const Ambient small_key_seg5_light_050057E0 = { - {{0x33, 0x3f, 0x00}, 0, {0x33, 0x3f, 0x00}, 0} -}; - -// 0x050057E8 -static const Light small_key_seg5_light_050057E8 = { - {{0xcc, 0xff, 0x00}, 0, {0xcc, 0xff, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 small_key_seg5_lights_050057E0 = gdSPDefLights1( + 0x33, 0x3f, 0x00, + 0xcc, 0xff, 0x00, 0x28, 0x28, 0x28 +); // align UNUSED static const u64 small_key_unused_2 = 0; @@ -420,32 +404,24 @@ const Gfx small_key_seg5_dl_05006700[] = { // 0x05006A08 - 0x05006A28 const Gfx small_key_seg5_dl_05006A08[] = { - gsSPNumLights(NUMLIGHTS_0), // I cannot tell if they meant to put 0 or 1 here. - gsSPLight(&small_key_seg5_light_050057D0, 1), - gsSPLight(&small_key_seg5_light_050057C8, 2), + gsSPSetLights1(small_key_seg5_lights_050057C8), gsSPBranchList(small_key_seg5_dl_05006700), }; // 0x05006A28 - 0x05006A48 const Gfx small_key_seg5_dl_05006A28[] = { - gsSPNumLights(NUMLIGHTS_0), // I cannot tell if they meant to put 0 or 1 here. - gsSPLight(&small_key_seg5_light_050057B8, 1), - gsSPLight(&small_key_seg5_light_050057B0, 2), + gsSPSetLights1(small_key_seg5_lights_050057B0), gsSPBranchList(small_key_seg5_dl_05006700), }; // 0x05006A48 - 0x05006A68 const Gfx small_key_seg5_dl_05006A48[] = { - gsSPNumLights(NUMLIGHTS_0), // I cannot tell if they meant to put 0 or 1 here. - gsSPLight(&small_key_seg5_light_050057A0, 1), - gsSPLight(&small_key_seg5_light_05005798, 2), + gsSPSetLights1(small_key_seg5_lights_05005798), gsSPBranchList(small_key_seg5_dl_05006700), }; // 0x05006A68 - 0x05006A88 const Gfx small_key_seg5_dl_05006A68[] = { - gsSPNumLights(NUMLIGHTS_0), // I cannot tell if they meant to put 0 or 1 here. - gsSPLight(&small_key_seg5_light_050057E8, 1), - gsSPLight(&small_key_seg5_light_050057E0, 2), + gsSPSetLights1(small_key_seg5_lights_050057E0), gsSPBranchList(small_key_seg5_dl_05006700), }; diff --git a/actors/snowman/model.inc.c b/actors/snowman/model.inc.c index 6d9e343..4cc5de3 100644 --- a/actors/snowman/model.inc.c +++ b/actors/snowman/model.inc.c @@ -3,45 +3,29 @@ // ??? UNUSED static const u64 snowman_unused_1 = 1; -// Unreferenced light -UNUSED static const Ambient snowman_light_1 = { - {{0x0d, 0x0c, 0x28}, 0, {0x0d, 0x0c, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 snowman_lights_unused1 = gdSPDefLights1( + 0x0d, 0x0c, 0x28, + 0x35, 0x32, 0xa2, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light snowman_light_2 = { - {{0x35, 0x32, 0xa2}, 0, {0x35, 0x32, 0xa2}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 snowman_lights_unused2 = gdSPDefLights1( + 0x3f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient snowman_light_3 = { - {{0x3f, 0x00, 0x00}, 0, {0x3f, 0x00, 0x00}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 snowman_lights_unused3 = gdSPDefLights1( + 0x08, 0x07, 0x04, + 0x23, 0x1c, 0x12, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light snowman_light_4 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient snowman_light_5 = { - {{0x08, 0x07, 0x04}, 0, {0x08, 0x07, 0x04}, 0} -}; - -// Unreferenced light -UNUSED static const Light snowman_light_6 = { - {{0x23, 0x1c, 0x12}, 0, {0x23, 0x1c, 0x12}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient snowman_light_7 = { - {{0x03, 0x03, 0x02}, 0, {0x03, 0x03, 0x02}, 0} -}; - -// Unreferenced light -UNUSED static const Light snowman_light_8 = { - {{0x0e, 0x0d, 0x0b}, 0, {0x0e, 0x0d, 0x0b}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 snowman_lights_unused4 = gdSPDefLights1( + 0x03, 0x03, 0x02, + 0x0e, 0x0d, 0x0b, 0x28, 0x28, 0x28 +); // 0x05008C70 ALIGNED8 static const u8 snowman_seg5_texture_05008C70[] = { @@ -69,14 +53,10 @@ ALIGNED8 static const u8 snowman_seg5_texture_0500BC70[] = { }; // 0x0500C470 -static const Ambient snowman_seg5_light_0500C470 = { - {{0x1c, 0x0f, 0x07}, 0, {0x1c, 0x0f, 0x07}, 0} -}; - -// 0x0500C478 -static const Light snowman_seg5_light_0500C478 = { - {{0x38, 0x1e, 0x0e}, 0, {0x38, 0x1e, 0x0e}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 snowman_seg5_lights_0500C470 = gdSPDefLights1( + 0x1c, 0x0f, 0x07, + 0x38, 0x1e, 0x0e, 0x28, 0x28, 0x28 +); // 0x0500C488 static const Vtx snowman_seg5_vertex_0500C488[] = { @@ -88,8 +68,8 @@ static const Vtx snowman_seg5_vertex_0500C488[] = { // 0x0500C4C8 - 0x0500C500 const Gfx snowman_seg5_dl_0500C4C8[] = { - gsSPLight(&snowman_seg5_light_0500C478, 1), - gsSPLight(&snowman_seg5_light_0500C470, 2), + gsSPLight(&snowman_seg5_lights_0500C470.l, 1), + gsSPLight(&snowman_seg5_lights_0500C470.a, 2), gsSPVertex(snowman_seg5_vertex_0500C488, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP1Triangle( 0, 3, 1, 0x0), @@ -203,14 +183,10 @@ const Gfx snowman_seg5_dl_0500C760[] = { }; // 0x0500C7D0 -static const Ambient snowman_seg5_light_0500C7D0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500C7D8 -static const Light snowman_seg5_light_0500C7D8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 snowman_seg5_lights_0500C7D0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500C7E8 static const Vtx snowman_seg5_vertex_0500C7E8[] = { @@ -250,8 +226,8 @@ const Gfx snowman_seg5_dl_0500C978[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snowman_seg5_texture_05008C70), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&snowman_seg5_light_0500C7D8, 1), - gsSPLight(&snowman_seg5_light_0500C7D0, 2), + gsSPLight(&snowman_seg5_lights_0500C7D0.l, 1), + gsSPLight(&snowman_seg5_lights_0500C7D0.a, 2), gsSPVertex(snowman_seg5_vertex_0500C7E8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 4, 1, 0, 0x0, 5, 4, 3, 0x0), diff --git a/actors/snufit/model.inc.c b/actors/snufit/model.inc.c index 306daba..6a5dbbe 100644 --- a/actors/snufit/model.inc.c +++ b/actors/snufit/model.inc.c @@ -21,24 +21,16 @@ ALIGNED8 static const u8 snufit_seg6_texture_060084E0[] = { }; // 0x06008CE0 -static const Ambient snufit_seg6_light_06008CE0 = { - {{0x47, 0x47, 0x47}, 0, {0x47, 0x47, 0x47}, 0} -}; - -// 0x06008CE8 -static const Light snufit_seg6_light_06008CE8 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 snufit_seg6_lights_06008CE0 = gdSPDefLights1( + 0x47, 0x47, 0x47, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); // 0x06008CF8 -static const Ambient snufit_seg6_light_06008CF8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x06008D00 -static const Light snufit_seg6_light_06008D00 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 snufit_seg6_lights_06008CF8 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06008D10 static const Vtx snufit_seg6_vertex_06008D10[] = { @@ -146,8 +138,8 @@ const Gfx snufit_seg6_dl_060091E0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snufit_seg6_texture_060080E0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&snufit_seg6_light_06008CE8, 1), - gsSPLight(&snufit_seg6_light_06008CE0, 2), + gsSPLight(&snufit_seg6_lights_06008CE0.l, 1), + gsSPLight(&snufit_seg6_lights_06008CE0.a, 2), gsSPVertex(snufit_seg6_vertex_06008D10, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 0, 2, 0x0, 3, 5, 1, 0x0), @@ -163,8 +155,8 @@ const Gfx snufit_seg6_dl_06009278[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snufit_seg6_texture_060078E0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&snufit_seg6_light_06008D00, 1), - gsSPLight(&snufit_seg6_light_06008CF8, 2), + gsSPLight(&snufit_seg6_lights_06008CF8.l, 1), + gsSPLight(&snufit_seg6_lights_06008CF8.a, 2), gsSPVertex(snufit_seg6_vertex_06008DF0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 2, 3, 4, 0x0, 4, 3, 5, 0x0), @@ -231,14 +223,10 @@ const Gfx snufit_seg6_dl_06009498[] = { }; // 0x06009530 -static const Ambient snufit_seg6_light_06009530 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x06009538 -static const Light snufit_seg6_light_06009538 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 snufit_seg6_lights_06009530 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06009548 static const Vtx snufit_seg6_vertex_06009548[] = { @@ -271,8 +259,8 @@ const Gfx snufit_seg6_dl_06009668[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snufit_seg6_texture_060080E0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&snufit_seg6_light_06009538, 1), - gsSPLight(&snufit_seg6_light_06009530, 2), + gsSPLight(&snufit_seg6_lights_06009530.l, 1), + gsSPLight(&snufit_seg6_lights_06009530.a, 2), gsSPVertex(snufit_seg6_vertex_06009548, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 0, 3, 0x0, 1, 5, 2, 0x0), @@ -315,14 +303,10 @@ const Gfx snufit_seg6_dl_06009748[] = { }; // 0x060097C8 -static const Ambient snufit_seg6_light_060097C8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x060097D0 -static const Light snufit_seg6_light_060097D0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 snufit_seg6_lights_060097C8 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x060097E0 static const Vtx snufit_seg6_vertex_060097E0[] = { @@ -345,8 +329,8 @@ const Gfx snufit_seg6_dl_060098A0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snufit_seg6_texture_060080E0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&snufit_seg6_light_060097D0, 1), - gsSPLight(&snufit_seg6_light_060097C8, 2), + gsSPLight(&snufit_seg6_lights_060097C8.l, 1), + gsSPLight(&snufit_seg6_lights_060097C8.a, 2), gsSPVertex(snufit_seg6_vertex_060097E0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), gsSP2Triangles( 1, 4, 2, 0x0, 3, 5, 6, 0x0), @@ -410,14 +394,10 @@ const Gfx snufit_seg6_dl_06009A10[] = { }; // 0x06009A80 -static const Ambient snufit_seg6_light_06009A80 = { - {{0x65, 0x08, 0x08}, 0, {0x65, 0x08, 0x08}, 0} -}; - -// 0x06009A88 -static const Light snufit_seg6_light_06009A88 = { - {{0xfe, 0x14, 0x14}, 0, {0xfe, 0x14, 0x14}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 snufit_seg6_lights_06009A80 = gdSPDefLights1( + 0x65, 0x08, 0x08, + 0xfe, 0x14, 0x14, 0x28, 0x28, 0x28 +); // 0x06009A98 static const Vtx snufit_seg6_vertex_06009A98[] = { @@ -433,8 +413,8 @@ static const Vtx snufit_seg6_vertex_06009A98[] = { // 0x06009B18 - 0x06009B68 const Gfx snufit_seg6_dl_06009B18[] = { - gsSPLight(&snufit_seg6_light_06009A88, 1), - gsSPLight(&snufit_seg6_light_06009A80, 2), + gsSPLight(&snufit_seg6_lights_06009A80.l, 1), + gsSPLight(&snufit_seg6_lights_06009A80.a, 2), gsSPVertex(snufit_seg6_vertex_06009A98, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 1, 0, 3, 0x0, 4, 5, 6, 0x0), diff --git a/actors/spindrift/anims/anim_050006AC.inc.c b/actors/spindrift/anims/anim_050006AC.inc.c index 162e81f..844f2e3 100644 --- a/actors/spindrift/anims/anim_050006AC.inc.c +++ b/actors/spindrift/anims/anim_050006AC.inc.c @@ -199,14 +199,10 @@ const Gfx spindrift_seg5_dl_05002900[] = { }; // 0x05002970 -static const Ambient spindrift_seg5_light_05002970 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05002978 -static const Light spindrift_seg5_light_05002978 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 spindrift_seg5_lights_05002970 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05002988 static const Vtx spindrift_seg5_vertex_05002988[] = { @@ -222,8 +218,8 @@ const Gfx spindrift_seg5_dl_050029C8[] = { gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPClearGeometryMode(G_CULL_BACK), - gsSPLight(&spindrift_seg5_light_05002978, 1), - gsSPLight(&spindrift_seg5_light_05002970, 2), + gsSPLight(&spindrift_seg5_lights_05002970.l, 1), + gsSPLight(&spindrift_seg5_lights_05002970.a, 2), gsSPVertex(spindrift_seg5_vertex_05002988, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPSetGeometryMode(G_CULL_BACK), @@ -247,14 +243,10 @@ const Gfx spindrift_seg5_dl_05002A20[] = { }; // 0x05002A80 -static const Ambient spindrift_seg5_light_05002A80 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05002A88 -static const Light spindrift_seg5_light_05002A88 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 spindrift_seg5_lights_05002A80 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05002A98 static const Vtx spindrift_seg5_vertex_05002A98[] = { @@ -270,8 +262,8 @@ const Gfx spindrift_seg5_dl_05002AD8[] = { gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPClearGeometryMode(G_CULL_BACK), - gsSPLight(&spindrift_seg5_light_05002A88, 1), - gsSPLight(&spindrift_seg5_light_05002A80, 2), + gsSPLight(&spindrift_seg5_lights_05002A80.l, 1), + gsSPLight(&spindrift_seg5_lights_05002A80.a, 2), gsSPVertex(spindrift_seg5_vertex_05002A98, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSPSetGeometryMode(G_CULL_BACK), @@ -295,14 +287,10 @@ const Gfx spindrift_seg5_dl_05002B30[] = { }; // 0x05002B90 -static const Ambient spindrift_seg5_light_05002B90 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x05002B98 -static const Light spindrift_seg5_light_05002B98 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 spindrift_seg5_lights_05002B90 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05002BA8 static const Vtx spindrift_seg5_vertex_05002BA8[] = { @@ -329,8 +317,8 @@ const Gfx spindrift_seg5_dl_05002C98[] = { gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPClearGeometryMode(G_CULL_BACK), - gsSPLight(&spindrift_seg5_light_05002B98, 1), - gsSPLight(&spindrift_seg5_light_05002B90, 2), + gsSPLight(&spindrift_seg5_lights_05002B90.l, 1), + gsSPLight(&spindrift_seg5_lights_05002B90.a, 2), gsSPVertex(spindrift_seg5_vertex_05002BA8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/actors/spindrift/model.inc.c b/actors/spindrift/model.inc.c index 7122b69..b383394 100644 --- a/actors/spindrift/model.inc.c +++ b/actors/spindrift/model.inc.c @@ -1,84 +1,52 @@ // Spindrift -// Unreferenced light -UNUSED static const Ambient spindrift_light_1 = { - {{0x3f, 0x08, 0x1b}, 0, {0x3f, 0x08, 0x1b}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 spindrift_lights_unused1 = gdSPDefLights1( + 0x3f, 0x08, 0x1b, + 0xff, 0x22, 0x6d, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light spindrift_light_2 = { - {{0xff, 0x22, 0x6d}, 0, {0xff, 0x22, 0x6d}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient spindrift_light_3 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// Unreferenced light -UNUSED static const Light spindrift_light_4 = { - {{0xfd, 0xff, 0xff}, 0, {0xfd, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 spindrift_lights_unused2 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xfd, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05000030 -static const Ambient spindrift_seg5_light_05000030 = { - {{0x12, 0x2c, 0x00}, 0, {0x12, 0x2c, 0x00}, 0} -}; - -// 0x05000038 -static const Light spindrift_seg5_light_05000038 = { - {{0x49, 0xb2, 0x00}, 0, {0x49, 0xb2, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 spindrift_seg5_lights_05000030 = gdSPDefLights1( + 0x12, 0x2c, 0x00, + 0x49, 0xb2, 0x00, 0x28, 0x28, 0x28 +); // 0x05000048 -static const Ambient spindrift_seg5_light_05000048 = { - {{0x37, 0x3f, 0x00}, 0, {0x37, 0x3f, 0x00}, 0} -}; +static const Lights1 spindrift_seg5_lights_05000048 = gdSPDefLights1( + 0x37, 0x3f, 0x00, + 0xdd, 0xff, 0x01, 0x28, 0x28, 0x28 +); -// 0x05000050 -static const Light spindrift_seg5_light_05000050 = { - {{0xdd, 0xff, 0x01}, 0, {0xdd, 0xff, 0x01}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient spindrift_light_5 = { - {{0x00, 0x15, 0x00}, 0, {0x00, 0x15, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light spindrift_light_6 = { - {{0x00, 0x56, 0x00}, 0, {0x00, 0x56, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 spindrift_lights_unused3 = gdSPDefLights1( + 0x00, 0x15, 0x00, + 0x00, 0x56, 0x00, 0x28, 0x28, 0x28 +); // 0x05000078 -static const Ambient spindrift_seg5_light_05000078 = { - {{0x3f, 0x38, 0x00}, 0, {0x3f, 0x38, 0x00}, 0} -}; - -// 0x05000080 -static const Light spindrift_seg5_light_05000080 = { - {{0xff, 0xe2, 0x00}, 0, {0xff, 0xe2, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 spindrift_seg5_lights_05000078 = gdSPDefLights1( + 0x3f, 0x38, 0x00, + 0xff, 0xe2, 0x00, 0x28, 0x28, 0x28 +); // 0x05000090 -static const Ambient spindrift_seg5_light_05000090 = { - {{0x00, 0x0f, 0x00}, 0, {0x00, 0x0f, 0x00}, 0} -}; +static const Lights1 spindrift_seg5_lights_05000090 = gdSPDefLights1( + 0x00, 0x0f, 0x00, + 0x00, 0x3f, 0x00, 0x28, 0x28, 0x28 +); -// 0x05000098 -static const Light spindrift_seg5_light_05000098 = { - {{0x00, 0x3f, 0x00}, 0, {0x00, 0x3f, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient spindrift_light_7 = { - {{0x3f, 0x00, 0x00}, 0, {0x3f, 0x00, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light spindrift_light_8 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 spindrift_lights_unused4 = gdSPDefLights1( + 0x3f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x050000C0 static const Vtx spindrift_seg5_vertex_050000C0[] = { @@ -128,14 +96,14 @@ static const Vtx spindrift_seg5_vertex_05000210[] = { // 0x050002A0 - 0x05000328 const Gfx spindrift_seg5_dl_050002A0[] = { - gsSPLight(&spindrift_seg5_light_05000050, 1), - gsSPLight(&spindrift_seg5_light_05000048, 2), + gsSPLight(&spindrift_seg5_lights_05000048.l, 1), + gsSPLight(&spindrift_seg5_lights_05000048.a, 2), gsSPVertex(spindrift_seg5_vertex_050000C0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 2, 0x0), gsSP2Triangles( 1, 3, 2, 0x0, 4, 5, 2, 0x0), gsSP1Triangle( 5, 0, 2, 0x0), - gsSPLight(&spindrift_seg5_light_05000038, 1), - gsSPLight(&spindrift_seg5_light_05000030, 2), + gsSPLight(&spindrift_seg5_lights_05000030.l, 1), + gsSPLight(&spindrift_seg5_lights_05000030.a, 2), gsSPVertex(spindrift_seg5_vertex_05000120, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 1, 0, 4, 0x0, 4, 0, 5, 0x0), @@ -146,15 +114,15 @@ const Gfx spindrift_seg5_dl_050002A0[] = { // 0x05000328 - 0x050003D8 const Gfx spindrift_seg5_dl_05000328[] = { gsSPClearGeometryMode(G_CULL_BACK), - gsSPLight(&spindrift_seg5_light_05000098, 1), - gsSPLight(&spindrift_seg5_light_05000090, 2), + gsSPLight(&spindrift_seg5_lights_05000090.l, 1), + gsSPLight(&spindrift_seg5_lights_05000090.a, 2), gsSPVertex(spindrift_seg5_vertex_05000180, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 0, 4, 3, 0x0, 1, 5, 6, 0x0), gsSP2Triangles( 7, 4, 0, 0x0, 5, 4, 8, 0x0), gsSP2Triangles( 5, 1, 3, 0x0, 4, 5, 3, 0x0), - gsSPLight(&spindrift_seg5_light_05000080, 1), - gsSPLight(&spindrift_seg5_light_05000078, 2), + gsSPLight(&spindrift_seg5_lights_05000078.l, 1), + gsSPLight(&spindrift_seg5_lights_05000078.a, 2), gsSPVertex(spindrift_seg5_vertex_05000210, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 1, 5, 6, 0x0, 5, 7, 8, 0x0), diff --git a/actors/spiny/model.inc.c b/actors/spiny/model.inc.c index 0238c0b..aedcd62 100644 --- a/actors/spiny/model.inc.c +++ b/actors/spiny/model.inc.c @@ -1,64 +1,40 @@ // Spiny // 0x050157F8 -static const Ambient spiny_seg5_light_050157F8 = { - {{0x32, 0x23, 0x0a}, 0, {0x32, 0x23, 0x0a}, 0} -}; - -// 0x05015800 -static const Light spiny_seg5_light_05015800 = { - {{0xca, 0x8d, 0x29}, 0, {0xca, 0x8d, 0x29}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 spiny_seg5_lights_050157F8 = gdSPDefLights1( + 0x32, 0x23, 0x0a, + 0xca, 0x8d, 0x29, 0x28, 0x28, 0x28 +); // 0x05015810 -static const Ambient spiny_seg5_light_05015810 = { - {{0x3a, 0x2c, 0x1f}, 0, {0x3a, 0x2c, 0x1f}, 0} -}; - -// 0x05015818 -static const Light spiny_seg5_light_05015818 = { - {{0xeb, 0xb0, 0x7f}, 0, {0xeb, 0xb0, 0x7f}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 spiny_seg5_lights_05015810 = gdSPDefLights1( + 0x3a, 0x2c, 0x1f, + 0xeb, 0xb0, 0x7f, 0x28, 0x28, 0x28 +); // 0x05015828 -static const Ambient spiny_seg5_light_05015828 = { - {{0x2c, 0x2c, 0x2c}, 0, {0x2c, 0x2c, 0x2c}, 0} -}; - -// 0x05015830 -static const Light spiny_seg5_light_05015830 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 spiny_seg5_lights_05015828 = gdSPDefLights1( + 0x2c, 0x2c, 0x2c, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); // 0x05015840 -static const Ambient spiny_seg5_light_05015840 = { - {{0x3f, 0x00, 0x00}, 0, {0x3f, 0x00, 0x00}, 0} -}; - -// 0x05015848 -static const Light spiny_seg5_light_05015848 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 spiny_seg5_lights_05015840 = gdSPDefLights1( + 0x3f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x05015858 -static const Ambient spiny_seg5_light_05015858 = { - {{0x3d, 0x25, 0x01}, 0, {0x3d, 0x25, 0x01}, 0} -}; - -// 0x05015860 -static const Light spiny_seg5_light_05015860 = { - {{0xf4, 0x96, 0x07}, 0, {0xf4, 0x96, 0x07}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 spiny_seg5_lights_05015858 = gdSPDefLights1( + 0x3d, 0x25, 0x01, + 0xf4, 0x96, 0x07, 0x28, 0x28, 0x28 +); // 0x05015870 -static const Ambient spiny_seg5_light_05015870 = { - {{0x3c, 0x2c, 0x09}, 0, {0x3c, 0x2c, 0x09}, 0} -}; - -// 0x05015878 -static const Light spiny_seg5_light_05015878 = { - {{0xf1, 0xb2, 0x25}, 0, {0xf1, 0xb2, 0x25}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 spiny_seg5_lights_05015870 = gdSPDefLights1( + 0x3c, 0x2c, 0x09, + 0xf1, 0xb2, 0x25, 0x28, 0x28, 0x28 +); // 0x05015888 static const Vtx spiny_seg5_vertex_05015888[] = { @@ -311,8 +287,8 @@ static const Vtx spiny_seg5_vertex_05016328[] = { // 0x05016418 - 0x050164E0 const Gfx spiny_seg5_dl_05016418[] = { - gsSPLight(&spiny_seg5_light_05015800, 1), - gsSPLight(&spiny_seg5_light_050157F8, 2), + gsSPLight(&spiny_seg5_lights_050157F8.l, 1), + gsSPLight(&spiny_seg5_lights_050157F8.a, 2), gsSPVertex(spiny_seg5_vertex_05015888, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 7, 0x0, 8, 7, 9, 0x0), @@ -321,8 +297,8 @@ const Gfx spiny_seg5_dl_05016418[] = { gsSP2Triangles( 3, 5, 11, 0x0, 11, 5, 0, 0x0), gsSP2Triangles( 7, 8, 3, 0x0, 9, 12, 8, 0x0), gsSP2Triangles( 9, 2, 1, 0x0, 2, 10, 0, 0x0), - gsSPLight(&spiny_seg5_light_05015818, 1), - gsSPLight(&spiny_seg5_light_05015810, 2), + gsSPLight(&spiny_seg5_lights_05015810.l, 1), + gsSPLight(&spiny_seg5_lights_05015810.a, 2), gsSPVertex(spiny_seg5_vertex_05015958, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 3, 4, 0, 0x0, 1, 5, 2, 0x0), @@ -331,8 +307,8 @@ const Gfx spiny_seg5_dl_05016418[] = { // 0x050164E0 - 0x050165A8 const Gfx spiny_seg5_dl_050164E0[] = { - gsSPLight(&spiny_seg5_light_05015800, 1), - gsSPLight(&spiny_seg5_light_050157F8, 2), + gsSPLight(&spiny_seg5_lights_050157F8.l, 1), + gsSPLight(&spiny_seg5_lights_050157F8.a, 2), gsSPVertex(spiny_seg5_vertex_050159B8, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 7, 0x0, 8, 7, 9, 0x0), @@ -341,8 +317,8 @@ const Gfx spiny_seg5_dl_050164E0[] = { gsSP2Triangles( 3, 5, 11, 0x0, 11, 5, 0, 0x0), gsSP2Triangles( 7, 8, 3, 0x0, 9, 12, 8, 0x0), gsSP2Triangles( 9, 2, 1, 0x0, 2, 10, 0, 0x0), - gsSPLight(&spiny_seg5_light_05015818, 1), - gsSPLight(&spiny_seg5_light_05015810, 2), + gsSPLight(&spiny_seg5_lights_05015810.l, 1), + gsSPLight(&spiny_seg5_lights_05015810.a, 2), gsSPVertex(spiny_seg5_vertex_05015A88, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 3, 4, 0, 0x0, 1, 5, 2, 0x0), @@ -351,8 +327,8 @@ const Gfx spiny_seg5_dl_050164E0[] = { // 0x050165A8 - 0x05016670 const Gfx spiny_seg5_dl_050165A8[] = { - gsSPLight(&spiny_seg5_light_05015800, 1), - gsSPLight(&spiny_seg5_light_050157F8, 2), + gsSPLight(&spiny_seg5_lights_050157F8.l, 1), + gsSPLight(&spiny_seg5_lights_050157F8.a, 2), gsSPVertex(spiny_seg5_vertex_05015AE8, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 5, 0x0, 8, 6, 9, 0x0), @@ -361,8 +337,8 @@ const Gfx spiny_seg5_dl_050165A8[] = { gsSP2Triangles(10, 3, 5, 0x0, 2, 3, 10, 0x0), gsSP2Triangles( 5, 9, 6, 0x0, 9, 12, 8, 0x0), gsSP2Triangles( 1, 0, 8, 0x0, 2, 11, 0, 0x0), - gsSPLight(&spiny_seg5_light_05015818, 1), - gsSPLight(&spiny_seg5_light_05015810, 2), + gsSPLight(&spiny_seg5_lights_05015810.l, 1), + gsSPLight(&spiny_seg5_lights_05015810.a, 2), gsSPVertex(spiny_seg5_vertex_05015BB8, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 2, 4, 3, 0x0, 0, 5, 1, 0x0), @@ -371,8 +347,8 @@ const Gfx spiny_seg5_dl_050165A8[] = { // 0x05016670 - 0x05016738 const Gfx spiny_seg5_dl_05016670[] = { - gsSPLight(&spiny_seg5_light_05015800, 1), - gsSPLight(&spiny_seg5_light_050157F8, 2), + gsSPLight(&spiny_seg5_lights_050157F8.l, 1), + gsSPLight(&spiny_seg5_lights_050157F8.a, 2), gsSPVertex(spiny_seg5_vertex_05015C18, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 5, 0x0, 8, 6, 9, 0x0), @@ -381,8 +357,8 @@ const Gfx spiny_seg5_dl_05016670[] = { gsSP2Triangles(10, 3, 5, 0x0, 2, 3, 10, 0x0), gsSP2Triangles( 5, 9, 6, 0x0, 9, 12, 8, 0x0), gsSP2Triangles( 1, 0, 8, 0x0, 2, 11, 0, 0x0), - gsSPLight(&spiny_seg5_light_05015818, 1), - gsSPLight(&spiny_seg5_light_05015810, 2), + gsSPLight(&spiny_seg5_lights_05015810.l, 1), + gsSPLight(&spiny_seg5_lights_05015810.a, 2), gsSPVertex(spiny_seg5_vertex_05015CE8, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 2, 4, 3, 0x0, 0, 5, 1, 0x0), @@ -391,8 +367,8 @@ const Gfx spiny_seg5_dl_05016670[] = { // 0x05016738 - 0x05016A48 const Gfx spiny_seg5_dl_05016738[] = { - gsSPLight(&spiny_seg5_light_05015830, 1), - gsSPLight(&spiny_seg5_light_05015828, 2), + gsSPLight(&spiny_seg5_lights_05015828.l, 1), + gsSPLight(&spiny_seg5_lights_05015828.a, 2), gsSPVertex(spiny_seg5_vertex_05015D48, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 3, 4, 2, 0x0, 1, 0, 5, 0x0), @@ -413,8 +389,8 @@ const Gfx spiny_seg5_dl_05016738[] = { gsSPVertex(spiny_seg5_vertex_05015F48, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), gsSP2Triangles( 5, 2, 4, 0x0, 4, 2, 1, 0x0), - gsSPLight(&spiny_seg5_light_05015860, 1), - gsSPLight(&spiny_seg5_light_05015858, 2), + gsSPLight(&spiny_seg5_lights_05015858.l, 1), + gsSPLight(&spiny_seg5_lights_05015858.a, 2), gsSPVertex(spiny_seg5_vertex_05015FA8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 5, 6, 7, 0x0), @@ -426,8 +402,8 @@ const Gfx spiny_seg5_dl_05016738[] = { gsSP2Triangles( 0, 9, 10, 0x0, 0, 10, 1, 0x0), gsSP2Triangles( 6, 5, 0, 0x0, 15, 10, 13, 0x0), gsSP2Triangles( 3, 1, 15, 0x0, 10, 15, 1, 0x0), - gsSPLight(&spiny_seg5_light_05015848, 1), - gsSPLight(&spiny_seg5_light_05015840, 2), + gsSPLight(&spiny_seg5_lights_05015840.l, 1), + gsSPLight(&spiny_seg5_lights_05015840.a, 2), gsSPVertex(spiny_seg5_vertex_050160A8, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 0, 8, 1, 0x0), @@ -435,8 +411,8 @@ const Gfx spiny_seg5_dl_05016738[] = { gsSP2Triangles( 3, 5, 9, 0x0, 1, 8, 7, 0x0), gsSP2Triangles( 3, 9, 2, 0x0, 3, 7, 4, 0x0), gsSP2Triangles( 4, 7, 6, 0x0, 4, 6, 5, 0x0), - gsSPLight(&spiny_seg5_light_05015878, 1), - gsSPLight(&spiny_seg5_light_05015870, 2), + gsSPLight(&spiny_seg5_lights_05015870.l, 1), + gsSPLight(&spiny_seg5_lights_05015870.a, 2), gsSPVertex(spiny_seg5_vertex_05016148, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -454,6 +430,6 @@ const Gfx spiny_seg5_dl_05016738[] = { // 0x05016A48 - 0x05016A58 const Gfx spiny_seg5_dl_05016A48[] = { - gsSPNumLights(NUMLIGHTS_0), // I cannot tell if they meant to put 0 or 1 here. + gsSPNumLights(NUMLIGHTS_1), gsSPEndDisplayList(), }; diff --git a/actors/spiny_egg/model.inc.c b/actors/spiny_egg/model.inc.c index 6ca9fb6..6a60d2d 100644 --- a/actors/spiny_egg/model.inc.c +++ b/actors/spiny_egg/model.inc.c @@ -1,24 +1,16 @@ // Spiny Egg // 0x050144F8 -static const Ambient spiny_egg_seg5_light_050144F8 = { - {{0x3f, 0x3f, 0x00}, 0, {0x3f, 0x3f, 0x00}, 0} -}; - -// 0x05014500 -static const Light spiny_egg_seg5_light_05014500 = { - {{0xff, 0xff, 0x00}, 0, {0xff, 0xff, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 spiny_egg_seg5_lights_050144F8 = gdSPDefLights1( + 0x3f, 0x3f, 0x00, + 0xff, 0xff, 0x00, 0x28, 0x28, 0x28 +); // 0x05014510 -static const Ambient spiny_egg_seg5_light_05014510 = { - {{0x3f, 0x00, 0x00}, 0, {0x3f, 0x00, 0x00}, 0} -}; - -// 0x05014518 -static const Light spiny_egg_seg5_light_05014518 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 spiny_egg_seg5_lights_05014510 = gdSPDefLights1( + 0x3f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x05014528 static const Vtx spiny_egg_seg5_vertex_05014528[] = { @@ -286,8 +278,8 @@ static const Vtx spiny_egg_seg5_vertex_050150A8[] = { // 0x050151A8 - 0x050151E0 const Gfx spiny_egg_seg5_dl_050151A8[] = { - gsSPLight(&spiny_egg_seg5_light_05014500, 1), - gsSPLight(&spiny_egg_seg5_light_050144F8, 2), + gsSPLight(&spiny_egg_seg5_lights_050144F8.l, 1), + gsSPLight(&spiny_egg_seg5_lights_050144F8.a, 2), gsSPVertex(spiny_egg_seg5_vertex_05014528, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 6, 7, 8, 0x0), @@ -296,8 +288,8 @@ const Gfx spiny_egg_seg5_dl_050151A8[] = { // 0x050151E0 - 0x05015218 const Gfx spiny_egg_seg5_dl_050151E0[] = { - gsSPLight(&spiny_egg_seg5_light_05014500, 1), - gsSPLight(&spiny_egg_seg5_light_050144F8, 2), + gsSPLight(&spiny_egg_seg5_lights_050144F8.l, 1), + gsSPLight(&spiny_egg_seg5_lights_050144F8.a, 2), gsSPVertex(spiny_egg_seg5_vertex_050145B8, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 6, 7, 8, 0x0), @@ -306,8 +298,8 @@ const Gfx spiny_egg_seg5_dl_050151E0[] = { // 0x05015218 - 0x05015250 const Gfx spiny_egg_seg5_dl_05015218[] = { - gsSPLight(&spiny_egg_seg5_light_05014500, 1), - gsSPLight(&spiny_egg_seg5_light_050144F8, 2), + gsSPLight(&spiny_egg_seg5_lights_050144F8.l, 1), + gsSPLight(&spiny_egg_seg5_lights_050144F8.a, 2), gsSPVertex(spiny_egg_seg5_vertex_05014648, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 6, 7, 8, 0x0), @@ -316,8 +308,8 @@ const Gfx spiny_egg_seg5_dl_05015218[] = { // 0x05015250 - 0x05015288 const Gfx spiny_egg_seg5_dl_05015250[] = { - gsSPLight(&spiny_egg_seg5_light_05014500, 1), - gsSPLight(&spiny_egg_seg5_light_050144F8, 2), + gsSPLight(&spiny_egg_seg5_lights_050144F8.l, 1), + gsSPLight(&spiny_egg_seg5_lights_050144F8.a, 2), gsSPVertex(spiny_egg_seg5_vertex_050146D8, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 6, 7, 8, 0x0), @@ -326,8 +318,8 @@ const Gfx spiny_egg_seg5_dl_05015250[] = { // 0x05015288 - 0x050152C0 const Gfx spiny_egg_seg5_dl_05015288[] = { - gsSPLight(&spiny_egg_seg5_light_05014500, 1), - gsSPLight(&spiny_egg_seg5_light_050144F8, 2), + gsSPLight(&spiny_egg_seg5_lights_050144F8.l, 1), + gsSPLight(&spiny_egg_seg5_lights_050144F8.a, 2), gsSPVertex(spiny_egg_seg5_vertex_05014768, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 6, 7, 8, 0x0), @@ -336,8 +328,8 @@ const Gfx spiny_egg_seg5_dl_05015288[] = { // 0x050152C0 - 0x050152F8 const Gfx spiny_egg_seg5_dl_050152C0[] = { - gsSPLight(&spiny_egg_seg5_light_05014500, 1), - gsSPLight(&spiny_egg_seg5_light_050144F8, 2), + gsSPLight(&spiny_egg_seg5_lights_050144F8.l, 1), + gsSPLight(&spiny_egg_seg5_lights_050144F8.a, 2), gsSPVertex(spiny_egg_seg5_vertex_050147F8, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 6, 7, 8, 0x0), @@ -346,8 +338,8 @@ const Gfx spiny_egg_seg5_dl_050152C0[] = { // 0x050152F8 - 0x05015330 const Gfx spiny_egg_seg5_dl_050152F8[] = { - gsSPLight(&spiny_egg_seg5_light_05014500, 1), - gsSPLight(&spiny_egg_seg5_light_050144F8, 2), + gsSPLight(&spiny_egg_seg5_lights_050144F8.l, 1), + gsSPLight(&spiny_egg_seg5_lights_050144F8.a, 2), gsSPVertex(spiny_egg_seg5_vertex_05014888, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 6, 7, 8, 0x0), @@ -356,8 +348,8 @@ const Gfx spiny_egg_seg5_dl_050152F8[] = { // 0x05015330 - 0x05015368 const Gfx spiny_egg_seg5_dl_05015330[] = { - gsSPLight(&spiny_egg_seg5_light_05014500, 1), - gsSPLight(&spiny_egg_seg5_light_050144F8, 2), + gsSPLight(&spiny_egg_seg5_lights_050144F8.l, 1), + gsSPLight(&spiny_egg_seg5_lights_050144F8.a, 2), gsSPVertex(spiny_egg_seg5_vertex_05014918, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 6, 7, 8, 0x0), @@ -366,8 +358,8 @@ const Gfx spiny_egg_seg5_dl_05015330[] = { // 0x05015368 - 0x05015740 const Gfx spiny_egg_seg5_dl_05015368[] = { - gsSPLight(&spiny_egg_seg5_light_05014518, 1), - gsSPLight(&spiny_egg_seg5_light_05014510, 2), + gsSPLight(&spiny_egg_seg5_lights_05014510.l, 1), + gsSPLight(&spiny_egg_seg5_lights_05014510.a, 2), gsSPVertex(spiny_egg_seg5_vertex_050149A8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 1, 3, 4, 0x0, 4, 3, 5, 0x0), @@ -437,6 +429,6 @@ const Gfx spiny_egg_seg5_dl_05015368[] = { // 0x05015740 - 0x05015750 const Gfx spiny_egg_seg5_dl_05015740[] = { - gsSPNumLights(NUMLIGHTS_0), // I cannot tell if they meant to put 0 or 1 here. + gsSPNumLights(NUMLIGHTS_1), gsSPEndDisplayList(), }; diff --git a/actors/springboard/model.inc.c b/actors/springboard/model.inc.c index 8c9823d..4297a68 100644 --- a/actors/springboard/model.inc.c +++ b/actors/springboard/model.inc.c @@ -1,14 +1,10 @@ // Springboard (unused) // 0x05000000 -static const Ambient springboard_seg5_light_05000000 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x05000008 -static const Light springboard_seg5_light_05000008 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 springboard_seg5_lights_05000000 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05000018 ALIGNED8 static const u8 springboard_seg5_texture_05000018[] = { @@ -171,8 +167,8 @@ const Gfx springboard_checkerboard_seg5_dl_050016B8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, springboard_seg5_texture_05000018), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&springboard_seg5_light_05000008, 1), - gsSPLight(&springboard_seg5_light_05000000, 2), + gsSPLight(&springboard_seg5_lights_05000000.l, 1), + gsSPLight(&springboard_seg5_lights_05000000.a, 2), gsSPVertex(springboard_seg5_vertex_05001018, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), @@ -207,8 +203,8 @@ const Gfx springboard_spring_seg5_dl_05001800[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, springboard_seg5_texture_05000818), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&springboard_seg5_light_05000008, 1), - gsSPLight(&springboard_seg5_light_05000000, 2), + gsSPLight(&springboard_seg5_lights_05000000.l, 1), + gsSPLight(&springboard_seg5_lights_05000000.a, 2), gsSPVertex(springboard_seg5_vertex_050012B8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -238,8 +234,8 @@ const Gfx springboard_checkerboard_seg5_dl_05001900[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, springboard_seg5_texture_05000018), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&springboard_seg5_light_05000008, 1), - gsSPLight(&springboard_seg5_light_05000000, 2), + gsSPLight(&springboard_seg5_lights_05000000.l, 1), + gsSPLight(&springboard_seg5_lights_05000000.a, 2), gsSPVertex(springboard_seg5_vertex_05001458, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), diff --git a/actors/star/model.inc.c b/actors/star/model.inc.c index 2ea7ebe..1b52118 100644 --- a/actors/star/model.inc.c +++ b/actors/star/model.inc.c @@ -1,14 +1,10 @@ // Star // 0x0302A6D8 -static const Ambient star_seg3_light_0302A6D8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0302A6E0 -static const Light star_seg3_light_0302A6E0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 star_seg3_lights_0302A6D8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0302A6F0 ALIGNED8 static const u8 star_seg3_texture_0302A6F0[] = { @@ -38,8 +34,8 @@ static const Vtx star_seg3_vertex_0302B6F0[] = { // 0x0302B7B0 - 0x0302B870 const Gfx star_seg3_dl_0302B7B0[] = { - gsSPLight(&star_seg3_light_0302A6E0, 1), - gsSPLight(&star_seg3_light_0302A6D8, 2), + gsSPLight(&star_seg3_lights_0302A6D8.l, 1), + gsSPLight(&star_seg3_lights_0302A6D8.a, 2), gsSPVertex(star_seg3_vertex_0302B6F0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 2, 1, 4, 0x0, 1, 3, 4, 0x0), @@ -72,14 +68,10 @@ const Gfx star_seg3_dl_0302B870[] = { }; // 0x0302B908 -static const Ambient star_seg3_light_0302B908 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0302B910 -static const Light star_seg3_light_0302B910 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 star_seg3_lights_0302B908 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0302B920 static const Vtx star_seg3_vertex_0302B920[] = { @@ -100,8 +92,8 @@ const Gfx star_seg3_dl_0302B9C0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, star_seg3_texture_0302AEF0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&star_seg3_light_0302B910, 1), - gsSPLight(&star_seg3_light_0302B908, 2), + gsSPLight(&star_seg3_lights_0302B908.l, 1), + gsSPLight(&star_seg3_lights_0302B908.a, 2), gsSPVertex(star_seg3_vertex_0302B920, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/actors/swoop/model.inc.c b/actors/swoop/model.inc.c index 04e0c48..fc99de1 100644 --- a/actors/swoop/model.inc.c +++ b/actors/swoop/model.inc.c @@ -1,24 +1,16 @@ // Swoop -// Unreferenced light -UNUSED static const Ambient swoop_light_1 = { - {{0x0a, 0x00, 0x25}, 0, {0x0a, 0x00, 0x25}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 swoop_lights_unused1 = gdSPDefLights1( + 0x0a, 0x00, 0x25, + 0x2a, 0x00, 0x95, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light swoop_light_2 = { - {{0x2a, 0x00, 0x95}, 0, {0x2a, 0x00, 0x95}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient swoop_light_3 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// Unreferenced light -UNUSED static const Light swoop_light_4 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 swoop_lights_unused2 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06004270 ALIGNED8 static const u8 swoop_seg6_texture_06004270[] = { @@ -41,14 +33,10 @@ ALIGNED8 static const u8 swoop_seg6_texture_06005A70[] = { }; // 0x06006270 -static const Ambient swoop_seg6_light_06006270 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; - -// 0x06006278 -static const Light swoop_seg6_light_06006278 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 swoop_seg6_lights_06006270 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06006288 static const Vtx swoop_seg6_vertex_06006288[] = { @@ -122,8 +110,8 @@ const Gfx swoop_seg6_dl_060065B8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, swoop_seg6_texture_06004A70), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&swoop_seg6_light_06006278, 1), - gsSPLight(&swoop_seg6_light_06006270, 2), + gsSPLight(&swoop_seg6_lights_06006270.l, 1), + gsSPLight(&swoop_seg6_lights_06006270.a, 2), gsSPVertex(swoop_seg6_vertex_06006288, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 3, 0x0, 3, 7, 4, 0x0), @@ -231,14 +219,10 @@ const Gfx swoop_seg6_dl_06006880[] = { }; // 0x06006938 -static const Ambient swoop_seg6_light_06006938 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; - -// 0x06006940 -static const Light swoop_seg6_light_06006940 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 swoop_seg6_lights_06006938 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06006950 static const Vtx swoop_seg6_vertex_06006950[] = { @@ -265,8 +249,8 @@ const Gfx swoop_seg6_dl_06006A10[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, swoop_seg6_texture_06005270), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&swoop_seg6_light_06006940, 1), - gsSPLight(&swoop_seg6_light_06006938, 2), + gsSPLight(&swoop_seg6_lights_06006938.l, 1), + gsSPLight(&swoop_seg6_lights_06006938.a, 2), gsSPVertex(swoop_seg6_vertex_06006950, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/actors/test_platform/model.inc.c b/actors/test_platform/model.inc.c index 7a6674f..072138e 100644 --- a/actors/test_platform/model.inc.c +++ b/actors/test_platform/model.inc.c @@ -1,14 +1,10 @@ // Test Platform (small tiny platform 1/4th the size of a box. Probably used in early modeling tests?) // 0x08026008 -static const Ambient unknown_seg8_light_08026008 = { - {{0x32, 0x32, 0x07}, 0, {0x32, 0x32, 0x07}, 0} -}; - -// 0x08026010 -static const Light unknown_seg8_light_08026010 = { - {{0xc8, 0xc8, 0x1e}, 0, {0xc8, 0xc8, 0x1e}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 unknown_seg8_lights_08026008 = gdSPDefLights1( + 0x32, 0x32, 0x07, + 0xc8, 0xc8, 0x1e, 0x28, 0x28, 0x28 +); // 0x08026020 static const Vtx unknown_seg8_vertex_08026020[] = { @@ -60,9 +56,7 @@ static const Vtx unknown_seg8_vertex_08026200[] = { // 0x08026260 - 0x080262F8 const Gfx unknown_seg8_dl_08026260[] = { - gsSPNumLights(NUMLIGHTS_0), // I cannot tell if they meant to put 0 or 1 here. - gsSPLight(&unknown_seg8_light_08026010, 1), - gsSPLight(&unknown_seg8_light_08026008, 2), + gsSPSetLights1(unknown_seg8_lights_08026008), gsSPVertex(unknown_seg8_vertex_08026020, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/actors/thwomp/model.inc.c b/actors/thwomp/model.inc.c index 902efdd..7871d8c 100644 --- a/actors/thwomp/model.inc.c +++ b/actors/thwomp/model.inc.c @@ -1,14 +1,10 @@ // Thwomp // 0x050098E8 -static const Ambient thwomp_seg5_light_050098E8 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x050098F0 -static const Light thwomp_seg5_light_050098F0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 thwomp_seg5_lights_050098E8 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x05009900 ALIGNED8 static const u8 thwomp_seg5_texture_05009900[] = { @@ -120,8 +116,8 @@ const Gfx thwomp_seg5_dl_0500B570[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, thwomp_seg5_texture_0500A900), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thwomp_seg5_light_050098F0, 1), - gsSPLight(&thwomp_seg5_light_050098E8, 2), + gsSPLight(&thwomp_seg5_lights_050098E8.l, 1), + gsSPLight(&thwomp_seg5_lights_050098E8.a, 2), gsSPVertex(thwomp_seg5_vertex_0500B100, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 0, 3, 4, 0x0, 0, 4, 5, 0x0), diff --git a/actors/toad/model.inc.c b/actors/toad/model.inc.c index b832fbf..ecdfbfd 100644 --- a/actors/toad/model.inc.c +++ b/actors/toad/model.inc.c @@ -1,14 +1,10 @@ // Toad // 0x06005908 -static const Ambient toad_seg6_light_06005908 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x06005910 -static const Light toad_seg6_light_06005910 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 toad_seg6_lights_06005908 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06005920 ALIGNED8 static const u8 toad_seg6_texture_06005920[] = { @@ -227,8 +223,8 @@ const Gfx toad_seg6_dl_06007300[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, toad_seg6_texture_06005920), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&toad_seg6_light_06005910, 1), - gsSPLight(&toad_seg6_light_06005908, 2), + gsSPLight(&toad_seg6_lights_06005908.l, 1), + gsSPLight(&toad_seg6_lights_06005908.a, 2), gsSPVertex(toad_seg6_vertex_06006920, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 2, 4, 0, 0x0, 0, 5, 6, 0x0), @@ -354,14 +350,10 @@ const Gfx toad_seg6_us_dl_06007788[] = { #endif // 0x06007788 -static const Ambient toad_seg6_light_06007788 = { - {{0x21, 0x13, 0x5a}, 0, {0x21, 0x13, 0x5a}, 0} -}; - -// 0x06007790 -static const Light toad_seg6_light_06007790 = { - {{0x42, 0x27, 0xb5}, 0, {0x42, 0x27, 0xb5}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 toad_seg6_lights_06007788 = gdSPDefLights1( + 0x21, 0x13, 0x5a, + 0x42, 0x27, 0xb5, 0x28, 0x28, 0x28 +); // 0x060077A0 static const Vtx toad_seg6_vertex_060077A0[] = { @@ -401,8 +393,8 @@ static const Vtx toad_seg6_vertex_060078A0[] = { // 0x06007960 - 0x06007A48 const Gfx toad_seg6_dl_06007960[] = { - gsSPLight(&toad_seg6_light_06007790, 1), - gsSPLight(&toad_seg6_light_06007788, 2), + gsSPLight(&toad_seg6_lights_06007788.l, 1), + gsSPLight(&toad_seg6_lights_06007788.a, 2), gsSPVertex(toad_seg6_vertex_060077A0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 7, 0x0, 4, 7, 8, 0x0), @@ -443,24 +435,16 @@ const Gfx toad_seg6_us_dl_06007B00[] = { #endif // 0x06007A80 -static const Ambient toad_seg6_light_06007A80 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x06007A88 -static const Light toad_seg6_light_06007A88 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 toad_seg6_lights_06007A80 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06007A98 -static const Ambient toad_seg6_light_06007A98 = { - {{0x7f, 0x6a, 0x50}, 0, {0x7f, 0x6a, 0x50}, 0} -}; - -// 0x06007AA0 -static const Light toad_seg6_light_06007AA0 = { - {{0xfe, 0xd5, 0xa1}, 0, {0xfe, 0xd5, 0xa1}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 toad_seg6_lights_06007A98 = gdSPDefLights1( + 0x7f, 0x6a, 0x50, + 0xfe, 0xd5, 0xa1, 0x28, 0x28, 0x28 +); // 0x06007AB0 static const Vtx toad_seg6_vertex_06007AB0[] = { @@ -514,8 +498,8 @@ static const Vtx toad_seg6_vertex_06007C50[] = { // 0x06007D10 - 0x06007EB0 const Gfx toad_seg6_dl_06007D10[] = { - gsSPLight(&toad_seg6_light_06007A88, 1), - gsSPLight(&toad_seg6_light_06007A80, 2), + gsSPLight(&toad_seg6_lights_06007A80.l, 1), + gsSPLight(&toad_seg6_lights_06007A80.a, 2), gsSPVertex(toad_seg6_vertex_06007AB0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 3, 6, 7, 0x0), @@ -534,8 +518,8 @@ const Gfx toad_seg6_dl_06007D10[] = { gsSP2Triangles( 5, 9, 0, 0x0, 0, 9, 1, 0x0), gsSP2Triangles(11, 6, 0, 0x0, 11, 0, 2, 0x0), gsSP1Triangle( 0, 6, 5, 0x0), - gsSPLight(&toad_seg6_light_06007AA0, 1), - gsSPLight(&toad_seg6_light_06007A98, 2), + gsSPLight(&toad_seg6_lights_06007A98.l, 1), + gsSPLight(&toad_seg6_lights_06007A98.a, 2), gsSPVertex(toad_seg6_vertex_06007C50, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 4, 2, 1, 0x0, 4, 1, 5, 0x0), @@ -557,14 +541,10 @@ const Gfx toad_seg6_dl_06007EB0[] = { }; // 0x06007ED8 -static const Ambient toad_seg6_light_06007ED8 = { - {{0x7f, 0x6a, 0x50}, 0, {0x7f, 0x6a, 0x50}, 0} -}; - -// 0x06007EE0 -static const Light toad_seg6_light_06007EE0 = { - {{0xfe, 0xd5, 0xa1}, 0, {0xfe, 0xd5, 0xa1}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 toad_seg6_lights_06007ED8 = gdSPDefLights1( + 0x7f, 0x6a, 0x50, + 0xfe, 0xd5, 0xa1, 0x28, 0x28, 0x28 +); // 0x06007EF0 static const Vtx toad_seg6_vertex_06007EF0[] = { @@ -605,8 +585,8 @@ static const Vtx toad_seg6_vertex_06007FF0[] = { // 0x060080C0 - 0x060081F8 const Gfx toad_seg6_dl_060080C0[] = { - gsSPLight(&toad_seg6_light_06007EE0, 1), - gsSPLight(&toad_seg6_light_06007ED8, 2), + gsSPLight(&toad_seg6_lights_06007ED8.l, 1), + gsSPLight(&toad_seg6_lights_06007ED8.a, 2), gsSPVertex(toad_seg6_vertex_06007EF0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 4, 3, 0, 0x0), @@ -639,14 +619,10 @@ const Gfx toad_seg6_dl_060081F8[] = { }; // 0x06008220 -static const Ambient toad_seg6_light_06008220 = { - {{0x7f, 0x6a, 0x50}, 0, {0x7f, 0x6a, 0x50}, 0} -}; - -// 0x06008228 -static const Light toad_seg6_light_06008228 = { - {{0xfe, 0xd5, 0xa1}, 0, {0xfe, 0xd5, 0xa1}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 toad_seg6_lights_06008220 = gdSPDefLights1( + 0x7f, 0x6a, 0x50, + 0xfe, 0xd5, 0xa1, 0x28, 0x28, 0x28 +); // 0x06008238 static const Vtx toad_seg6_vertex_06008238[] = { @@ -685,8 +661,8 @@ static const Vtx toad_seg6_vertex_06008338[] = { // 0x060083E8 - 0x06008520 const Gfx toad_seg6_dl_060083E8[] = { - gsSPLight(&toad_seg6_light_06008228, 1), - gsSPLight(&toad_seg6_light_06008220, 2), + gsSPLight(&toad_seg6_lights_06008220.l, 1), + gsSPLight(&toad_seg6_lights_06008220.a, 2), gsSPVertex(toad_seg6_vertex_06008238, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), gsSP2Triangles( 5, 1, 0, 0x0, 0, 4, 6, 0x0), @@ -738,14 +714,10 @@ const Gfx toad_seg6_us_dl_06008608[] = { #endif // 0x06008560 -static const Ambient toad_seg6_light_06008560 = { - {{0x34, 0x20, 0x0d}, 0, {0x34, 0x20, 0x0d}, 0} -}; - -// 0x06008568 -static const Light toad_seg6_light_06008568 = { - {{0x68, 0x40, 0x1b}, 0, {0x68, 0x40, 0x1b}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 toad_seg6_lights_06008560 = gdSPDefLights1( + 0x34, 0x20, 0x0d, + 0x68, 0x40, 0x1b, 0x28, 0x28, 0x28 +); // 0x06008578 static const Vtx toad_seg6_vertex_06008578[] = { @@ -786,8 +758,8 @@ static const Vtx toad_seg6_vertex_06008678[] = { // 0x06008748 - 0x06008890 const Gfx toad_seg6_dl_06008748[] = { - gsSPLight(&toad_seg6_light_06008568, 1), - gsSPLight(&toad_seg6_light_06008560, 2), + gsSPLight(&toad_seg6_lights_06008560.l, 1), + gsSPLight(&toad_seg6_lights_06008560.a, 2), gsSPVertex(toad_seg6_vertex_06008578, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 2, 4, 5, 0x0, 2, 5, 6, 0x0), @@ -822,14 +794,10 @@ const Gfx toad_seg6_dl_06008890[] = { }; // 0x060088B8 -static const Ambient toad_seg6_light_060088B8 = { - {{0x34, 0x20, 0x0d}, 0, {0x34, 0x20, 0x0d}, 0} -}; - -// 0x060088C0 -static const Light toad_seg6_light_060088C0 = { - {{0x68, 0x40, 0x1b}, 0, {0x68, 0x40, 0x1b}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 toad_seg6_lights_060088B8 = gdSPDefLights1( + 0x34, 0x20, 0x0d, + 0x68, 0x40, 0x1b, 0x28, 0x28, 0x28 +); // 0x060088D0 static const Vtx toad_seg6_vertex_060088D0[] = { @@ -869,8 +837,8 @@ static const Vtx toad_seg6_vertex_060089D0[] = { // 0x06008A90 - 0x06008BD8 const Gfx toad_seg6_dl_06008A90[] = { - gsSPLight(&toad_seg6_light_060088C0, 1), - gsSPLight(&toad_seg6_light_060088B8, 2), + gsSPLight(&toad_seg6_lights_060088B8.l, 1), + gsSPLight(&toad_seg6_lights_060088B8.a, 2), gsSPVertex(toad_seg6_vertex_060088D0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 4, 1, 0x0, 0, 2, 5, 0x0), diff --git a/actors/tornado/model.inc.c b/actors/tornado/model.inc.c index 599e524..afa1b95 100644 --- a/actors/tornado/model.inc.c +++ b/actors/tornado/model.inc.c @@ -6,14 +6,10 @@ ALIGNED8 static const u8 tornado_seg5_texture_05013128[] = { }; // 0x05014128 -static const Ambient tornado_seg5_light_05014128 = { - {{0x3b, 0x34, 0x23}, 0, {0x3b, 0x34, 0x23}, 0} -}; - -// 0x05014130 -static const Light tornado_seg5_light_05014130 = { - {{0xee, 0xd0, 0x8d}, 0, {0xee, 0xd0, 0x8d}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 tornado_seg5_lights_05014128 = gdSPDefLights1( + 0x3b, 0x34, 0x23, + 0xee, 0xd0, 0x8d, 0x28, 0x28, 0x28 +); // 0x05014140 static const Vtx tornado_seg5_vertex_05014140[] = { @@ -85,8 +81,8 @@ const Gfx tornado_seg5_dl_05014450[] = { gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, tornado_seg5_texture_05013128), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&tornado_seg5_light_05014130, 1), - gsSPLight(&tornado_seg5_light_05014128, 2), + gsSPLight(&tornado_seg5_lights_05014128.l, 1), + gsSPLight(&tornado_seg5_lights_05014128.a, 2), gsSPVertex(tornado_seg5_vertex_05014140, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 0, 5, 6, 0x0, 0, 6, 1, 0x0), diff --git a/actors/transparent_star/model.inc.c b/actors/transparent_star/model.inc.c index 21335ee..851e7cc 100644 --- a/actors/transparent_star/model.inc.c +++ b/actors/transparent_star/model.inc.c @@ -1,14 +1,10 @@ // Transparent Star // 0x0302C488 -static const Ambient transparent_star_seg3_light_0302C488 = { - {{0x03, 0x05, 0x17}, 0, {0x03, 0x05, 0x17}, 0} -}; - -// 0x0302C490 -static const Light transparent_star_seg3_light_0302C490 = { - {{0x1e, 0x32, 0xe6}, 0, {0x1e, 0x32, 0xe6}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 transparent_star_seg3_lights_0302C488 = gdSPDefLights1( + 0x03, 0x05, 0x17, + 0x1e, 0x32, 0xe6, 0x28, 0x28, 0x28 +); // 0x0302C4A0 static const Vtx transparent_star_seg3_vertex_0302C4A0[] = { @@ -28,8 +24,8 @@ static const Vtx transparent_star_seg3_vertex_0302C4A0[] = { // 0x0302C560 - 0x0302C620 const Gfx transparent_star_seg3_dl_0302C560[] = { - gsSPLight(&transparent_star_seg3_light_0302C490, 1), - gsSPLight(&transparent_star_seg3_light_0302C488, 2), + gsSPLight(&transparent_star_seg3_lights_0302C488.l, 1), + gsSPLight(&transparent_star_seg3_lights_0302C488.a, 2), gsSPVertex(transparent_star_seg3_vertex_0302C4A0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 2, 1, 4, 0x0, 1, 3, 4, 0x0), diff --git a/actors/treasure_chest/model.inc.c b/actors/treasure_chest/model.inc.c index 7c2d7db..f9aaad2 100644 --- a/actors/treasure_chest/model.inc.c +++ b/actors/treasure_chest/model.inc.c @@ -1,14 +1,10 @@ // Treasure Chest // 0x06013F90 -static const Ambient treasure_chest_seg6_light_06013F90 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x06013F98 -static const Light treasure_chest_seg6_light_06013F98 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 treasure_chest_seg6_lights_06013F90 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06013FA8 ALIGNED8 static const u8 treasure_chest_seg6_texture_06013FA8[] = { @@ -158,8 +154,8 @@ const Gfx treasure_chest_seg6_dl_06016D58[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, treasure_chest_seg6_texture_06013FA8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&treasure_chest_seg6_light_06013F98, 1), - gsSPLight(&treasure_chest_seg6_light_06013F90, 2), + gsSPLight(&treasure_chest_seg6_lights_06013F90.l, 1), + gsSPLight(&treasure_chest_seg6_lights_06013F90.a, 2), gsSPVertex(treasure_chest_seg6_vertex_060167A8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -381,8 +377,8 @@ const Gfx treasure_chest_seg6_dl_06017680[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, treasure_chest_seg6_texture_060147A8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&treasure_chest_seg6_light_06013F98, 1), - gsSPLight(&treasure_chest_seg6_light_06013F90, 2), + gsSPLight(&treasure_chest_seg6_lights_06013F90.l, 1), + gsSPLight(&treasure_chest_seg6_lights_06013F90.a, 2), gsSPVertex(treasure_chest_seg6_vertex_06017030, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 0, 3, 4, 0x0, 5, 6, 7, 0x0), diff --git a/actors/tree/model.inc.c b/actors/tree/model.inc.c index a734baa..a09c3e7 100644 --- a/actors/tree/model.inc.c +++ b/actors/tree/model.inc.c @@ -1,14 +1,10 @@ // Tree // 0x0302DE10 -static const Ambient tree_seg3_light_0302DE10 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0302DE18 -static const Light tree_seg3_light_0302DE18 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 tree_seg3_lights_0302DE10 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0302DE28 ALIGNED8 static const u8 tree_seg3_texture_0302DE28[] = { @@ -99,8 +95,8 @@ const Gfx tree_seg3_dl_03030FA0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, tree_seg3_texture_0302FF60), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&tree_seg3_light_0302DE18, 1), - gsSPLight(&tree_seg3_light_0302DE10, 2), + gsSPLight(&tree_seg3_lights_0302DE10.l, 1), + gsSPLight(&tree_seg3_lights_0302DE10.a, 2), gsSPVertex(tree_seg3_vertex_03030F60, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), @@ -136,8 +132,8 @@ const Gfx tree_seg3_dl_03032088[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, tree_seg3_texture_03031048), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&tree_seg3_light_0302DE18, 1), - gsSPLight(&tree_seg3_light_0302DE10, 2), + gsSPLight(&tree_seg3_lights_0302DE10.l, 1), + gsSPLight(&tree_seg3_lights_0302DE10.a, 2), gsSPVertex(tree_seg3_vertex_03032048, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), @@ -168,8 +164,8 @@ const Gfx tree_seg3_dl_03032170[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, tree_seg3_texture_0302FF60), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&tree_seg3_light_0302DE18, 1), - gsSPLight(&tree_seg3_light_0302DE10, 2), + gsSPLight(&tree_seg3_lights_0302DE10.l, 1), + gsSPLight(&tree_seg3_lights_0302DE10.a, 2), gsSPVertex(tree_seg3_vertex_03032130, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), @@ -205,8 +201,8 @@ const Gfx tree_seg3_dl_03033258[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, tree_seg3_texture_03032218), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&tree_seg3_light_0302DE18, 1), - gsSPLight(&tree_seg3_light_0302DE10, 2), + gsSPLight(&tree_seg3_lights_0302DE10.l, 1), + gsSPLight(&tree_seg3_lights_0302DE10.a, 2), gsSPVertex(tree_seg3_vertex_03033218, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), diff --git a/actors/ukiki/model.inc.c b/actors/ukiki/model.inc.c index 8330f98..a0e3783 100644 --- a/actors/ukiki/model.inc.c +++ b/actors/ukiki/model.inc.c @@ -1,34 +1,22 @@ // Ukiki -// Unreferenced light -UNUSED static const Ambient ukiki_light_1 = { - {{0x1d, 0x12, 0x07}, 0, {0x1d, 0x12, 0x07}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 ukiki_lights_unused1 = gdSPDefLights1( + 0x1d, 0x12, 0x07, + 0x77, 0x48, 0x1f, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light ukiki_light_2 = { - {{0x77, 0x48, 0x1f}, 0, {0x77, 0x48, 0x1f}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient ukiki_light_3 = { - {{0x39, 0x24, 0x18}, 0, {0x39, 0x24, 0x18}, 0} -}; - -// Unreferenced light -UNUSED static const Light ukiki_light_4 = { - {{0xe7, 0x93, 0x61}, 0, {0xe7, 0x93, 0x61}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 ukiki_lights_unused2 = gdSPDefLights1( + 0x39, 0x24, 0x18, + 0xe7, 0x93, 0x61, 0x28, 0x28, 0x28 +); // 0x05007BA0 -static const Ambient ukiki_seg5_light_05007BA0 = { - {{0x39, 0x24, 0x18}, 0, {0x39, 0x24, 0x18}, 0} -}; - -// 0x05007BA8 -static const Light ukiki_seg5_light_05007BA8 = { - {{0xe7, 0x93, 0x61}, 0, {0xe7, 0x93, 0x61}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 ukiki_seg5_lights_05007BA0 = gdSPDefLights1( + 0x39, 0x24, 0x18, + 0xe7, 0x93, 0x61, 0x28, 0x28, 0x28 +); // The hell? UNUSED static const u64 ukiki_unused_1 = 1; @@ -54,24 +42,16 @@ ALIGNED8 static const u8 ukiki_seg5_texture_0500A3C0[] = { }; // 0x0500ABC0 -static const Ambient ukiki_seg5_light_0500ABC0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500ABC8 -static const Light ukiki_seg5_light_0500ABC8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 ukiki_seg5_lights_0500ABC0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500ABD8 -static const Ambient ukiki_seg5_light_0500ABD8 = { - {{0x77, 0x66, 0x45}, 0, {0x77, 0x66, 0x45}, 0} -}; - -// 0x0500ABE0 -static const Light ukiki_seg5_light_0500ABE0 = { - {{0xee, 0xcd, 0x8a}, 0, {0xee, 0xcd, 0x8a}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 ukiki_seg5_lights_0500ABD8 = gdSPDefLights1( + 0x77, 0x66, 0x45, + 0xee, 0xcd, 0x8a, 0x28, 0x28, 0x28 +); // 0x0500ABF0 static const Vtx ukiki_seg5_vertex_0500ABF0[] = { @@ -164,8 +144,8 @@ static const Vtx ukiki_seg5_vertex_0500AF60[] = { // 0x0500B040 - 0x0500B1D8 const Gfx ukiki_seg5_dl_0500B040[] = { - gsSPLight(&ukiki_seg5_light_0500ABC8, 1), - gsSPLight(&ukiki_seg5_light_0500ABC0, 2), + gsSPLight(&ukiki_seg5_lights_0500ABC0.l, 1), + gsSPLight(&ukiki_seg5_lights_0500ABC0.a, 2), gsSPVertex(ukiki_seg5_vertex_0500ABF0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 1, 4, 2, 0x0, 5, 2, 4, 0x0), @@ -198,8 +178,8 @@ const Gfx ukiki_seg5_dl_0500B040[] = { // 0x0500B1D8 - 0x0500B278 const Gfx ukiki_seg5_dl_0500B1D8[] = { - gsSPLight(&ukiki_seg5_light_0500ABE0, 1), - gsSPLight(&ukiki_seg5_light_0500ABD8, 2), + gsSPLight(&ukiki_seg5_lights_0500ABD8.l, 1), + gsSPLight(&ukiki_seg5_lights_0500ABD8.a, 2), gsSPVertex(ukiki_seg5_vertex_0500AF60, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 2, 4, 0, 0x0, 5, 6, 4, 0x0), @@ -253,14 +233,10 @@ const Gfx ukiki_seg5_dl_0500B310[] = { }; // 0x0500B338 -static const Ambient ukiki_seg5_light_0500B338 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500B340 -static const Light ukiki_seg5_light_0500B340 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 ukiki_seg5_lights_0500B338 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500B350 static const Vtx ukiki_seg5_vertex_0500B350[] = { @@ -332,8 +308,8 @@ const Gfx ukiki_seg5_dl_0500B660[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ukiki_seg5_texture_0500A3C0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ukiki_seg5_light_0500B340, 1), - gsSPLight(&ukiki_seg5_light_0500B338, 2), + gsSPLight(&ukiki_seg5_lights_0500B338.l, 1), + gsSPLight(&ukiki_seg5_lights_0500B338.a, 2), gsSPVertex(ukiki_seg5_vertex_0500B350, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 3, 0, 4, 0x0, 3, 5, 6, 0x0), @@ -389,14 +365,10 @@ const Gfx ukiki_seg5_dl_0500B820[] = { }; // 0x0500B888 -static const Ambient ukiki_seg5_light_0500B888 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500B890 -static const Light ukiki_seg5_light_0500B890 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 ukiki_seg5_lights_0500B888 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500B8A0 static const Vtx ukiki_seg5_vertex_0500B8A0[] = { @@ -415,8 +387,8 @@ const Gfx ukiki_seg5_dl_0500B920[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ukiki_seg5_texture_0500A3C0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ukiki_seg5_light_0500B890, 1), - gsSPLight(&ukiki_seg5_light_0500B888, 2), + gsSPLight(&ukiki_seg5_lights_0500B888.l, 1), + gsSPLight(&ukiki_seg5_lights_0500B888.a, 2), gsSPVertex(ukiki_seg5_vertex_0500B8A0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 1, 4, 5, 0x0, 4, 6, 5, 0x0), @@ -441,14 +413,10 @@ const Gfx ukiki_seg5_dl_0500B988[] = { }; // 0x0500B9E8 -static const Ambient ukiki_seg5_light_0500B9E8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500B9F0 -static const Light ukiki_seg5_light_0500B9F0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 ukiki_seg5_lights_0500B9E8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500BA00 static const Vtx ukiki_seg5_vertex_0500BA00[] = { @@ -468,8 +436,8 @@ const Gfx ukiki_seg5_dl_0500BA90[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ukiki_seg5_texture_0500A3C0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ukiki_seg5_light_0500B9F0, 1), - gsSPLight(&ukiki_seg5_light_0500B9E8, 2), + gsSPLight(&ukiki_seg5_lights_0500B9E8.l, 1), + gsSPLight(&ukiki_seg5_lights_0500B9E8.a, 2), gsSPVertex(ukiki_seg5_vertex_0500BA00, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), gsSP2Triangles( 1, 5, 6, 0x0, 1, 6, 2, 0x0), @@ -497,14 +465,10 @@ const Gfx ukiki_seg5_dl_0500BB28[] = { }; // 0x0500BB88 -static const Ambient ukiki_seg5_light_0500BB88 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500BB90 -static const Light ukiki_seg5_light_0500BB90 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 ukiki_seg5_lights_0500BB88 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500BBA0 static const Vtx ukiki_seg5_vertex_0500BBA0[] = { @@ -522,8 +486,8 @@ const Gfx ukiki_seg5_dl_0500BC10[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ukiki_seg5_texture_0500A3C0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ukiki_seg5_light_0500BB90, 1), - gsSPLight(&ukiki_seg5_light_0500BB88, 2), + gsSPLight(&ukiki_seg5_lights_0500BB88.l, 1), + gsSPLight(&ukiki_seg5_lights_0500BB88.a, 2), gsSPVertex(ukiki_seg5_vertex_0500BBA0, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 2, 4, 3, 0x0, 2, 5, 4, 0x0), @@ -548,14 +512,10 @@ const Gfx ukiki_seg5_dl_0500BC78[] = { }; // 0x0500BCD8 -static const Ambient ukiki_seg5_light_0500BCD8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500BCE0 -static const Light ukiki_seg5_light_0500BCE0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 ukiki_seg5_lights_0500BCD8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500BCF0 static const Vtx ukiki_seg5_vertex_0500BCF0[] = { @@ -577,8 +537,8 @@ const Gfx ukiki_seg5_dl_0500BDA0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ukiki_seg5_texture_0500A3C0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ukiki_seg5_light_0500BCE0, 1), - gsSPLight(&ukiki_seg5_light_0500BCD8, 2), + gsSPLight(&ukiki_seg5_lights_0500BCD8.l, 1), + gsSPLight(&ukiki_seg5_lights_0500BCD8.a, 2), gsSPVertex(ukiki_seg5_vertex_0500BCF0, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 0, 3, 5, 0x0, 0, 2, 6, 0x0), @@ -606,14 +566,10 @@ const Gfx ukiki_seg5_dl_0500BE38[] = { }; // 0x0500BE98 -static const Ambient ukiki_seg5_light_0500BE98 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500BEA0 -static const Light ukiki_seg5_light_0500BEA0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 ukiki_seg5_lights_0500BE98 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500BEB0 static const Vtx ukiki_seg5_vertex_0500BEB0[] = { @@ -635,8 +591,8 @@ const Gfx ukiki_seg5_dl_0500BF60[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ukiki_seg5_texture_0500A3C0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ukiki_seg5_light_0500BEA0, 1), - gsSPLight(&ukiki_seg5_light_0500BE98, 2), + gsSPLight(&ukiki_seg5_lights_0500BE98.l, 1), + gsSPLight(&ukiki_seg5_lights_0500BE98.a, 2), gsSPVertex(ukiki_seg5_vertex_0500BEB0, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 2, 4, 5, 0x0, 2, 5, 3, 0x0), @@ -664,14 +620,10 @@ const Gfx ukiki_seg5_dl_0500BFF8[] = { }; // 0x0500C058 -static const Ambient ukiki_seg5_light_0500C058 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500C060 -static const Light ukiki_seg5_light_0500C060 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 ukiki_seg5_lights_0500C058 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500C070 static const Vtx ukiki_seg5_vertex_0500C070[] = { @@ -693,8 +645,8 @@ const Gfx ukiki_seg5_dl_0500C120[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ukiki_seg5_texture_0500A3C0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ukiki_seg5_light_0500C060, 1), - gsSPLight(&ukiki_seg5_light_0500C058, 2), + gsSPLight(&ukiki_seg5_lights_0500C058.l, 1), + gsSPLight(&ukiki_seg5_lights_0500C058.a, 2), gsSPVertex(ukiki_seg5_vertex_0500C070, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), gsSP2Triangles( 2, 1, 5, 0x0, 2, 5, 4, 0x0), @@ -722,14 +674,10 @@ const Gfx ukiki_seg5_dl_0500C1B8[] = { }; // 0x0500C218 -static const Ambient ukiki_seg5_light_0500C218 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500C220 -static const Light ukiki_seg5_light_0500C220 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 ukiki_seg5_lights_0500C218 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500C230 static const Vtx ukiki_seg5_vertex_0500C230[] = { @@ -750,8 +698,8 @@ const Gfx ukiki_seg5_dl_0500C2D0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ukiki_seg5_texture_0500A3C0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ukiki_seg5_light_0500C220, 1), - gsSPLight(&ukiki_seg5_light_0500C218, 2), + gsSPLight(&ukiki_seg5_lights_0500C218.l, 1), + gsSPLight(&ukiki_seg5_lights_0500C218.a, 2), gsSPVertex(ukiki_seg5_vertex_0500C230, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 0, 3, 1, 0x0, 0, 2, 5, 0x0), @@ -779,14 +727,10 @@ const Gfx ukiki_seg5_dl_0500C368[] = { }; // 0x0500C3C8 -static const Ambient ukiki_seg5_light_0500C3C8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500C3D0 -static const Light ukiki_seg5_light_0500C3D0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 ukiki_seg5_lights_0500C3C8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500C3E0 static const Vtx ukiki_seg5_vertex_0500C3E0[] = { @@ -808,8 +752,8 @@ const Gfx ukiki_seg5_dl_0500C490[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ukiki_seg5_texture_0500A3C0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ukiki_seg5_light_0500C3D0, 1), - gsSPLight(&ukiki_seg5_light_0500C3C8, 2), + gsSPLight(&ukiki_seg5_lights_0500C3C8.l, 1), + gsSPLight(&ukiki_seg5_lights_0500C3C8.a, 2), gsSPVertex(ukiki_seg5_vertex_0500C3E0, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 0, 3, 4, 0x0, 2, 1, 5, 0x0), @@ -837,14 +781,10 @@ const Gfx ukiki_seg5_dl_0500C528[] = { }; // 0x0500C588 -static const Ambient ukiki_seg5_light_0500C588 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500C590 -static const Light ukiki_seg5_light_0500C590 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 ukiki_seg5_lights_0500C588 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500C5A0 static const Vtx ukiki_seg5_vertex_0500C5A0[] = { @@ -866,8 +806,8 @@ const Gfx ukiki_seg5_dl_0500C650[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ukiki_seg5_texture_0500A3C0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ukiki_seg5_light_0500C590, 1), - gsSPLight(&ukiki_seg5_light_0500C588, 2), + gsSPLight(&ukiki_seg5_lights_0500C588.l, 1), + gsSPLight(&ukiki_seg5_lights_0500C588.a, 2), gsSPVertex(ukiki_seg5_vertex_0500C5A0, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 2, 3, 4, 0x0, 0, 5, 1, 0x0), @@ -895,14 +835,10 @@ const Gfx ukiki_seg5_dl_0500C6E8[] = { }; // 0x0500C748 -static const Ambient ukiki_seg5_light_0500C748 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500C750 -static const Light ukiki_seg5_light_0500C750 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 ukiki_seg5_lights_0500C748 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500C760 static const Vtx ukiki_seg5_vertex_0500C760[] = { @@ -923,8 +859,8 @@ const Gfx ukiki_seg5_dl_0500C800[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ukiki_seg5_texture_0500A3C0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ukiki_seg5_light_0500C750, 1), - gsSPLight(&ukiki_seg5_light_0500C748, 2), + gsSPLight(&ukiki_seg5_lights_0500C748.l, 1), + gsSPLight(&ukiki_seg5_lights_0500C748.a, 2), gsSPVertex(ukiki_seg5_vertex_0500C760, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 2, 1, 4, 0x0, 2, 4, 3, 0x0), @@ -952,14 +888,10 @@ const Gfx ukiki_seg5_dl_0500C898[] = { }; // 0x0500C8F8 -static const Ambient ukiki_seg5_light_0500C8F8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0500C900 -static const Light ukiki_seg5_light_0500C900 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 ukiki_seg5_lights_0500C8F8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500C910 static const Vtx ukiki_seg5_vertex_0500C910[] = { @@ -980,8 +912,8 @@ const Gfx ukiki_seg5_dl_0500C9B0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ukiki_seg5_texture_0500A3C0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ukiki_seg5_light_0500C900, 1), - gsSPLight(&ukiki_seg5_light_0500C8F8, 2), + gsSPLight(&ukiki_seg5_lights_0500C8F8.l, 1), + gsSPLight(&ukiki_seg5_lights_0500C8F8.a, 2), gsSPVertex(ukiki_seg5_vertex_0500C910, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 2, 4, 5, 0x0, 2, 5, 3, 0x0), @@ -1110,8 +1042,8 @@ static const Vtx ukiki_seg5_vertex_0500CE98[] = { // 0x0500CF68 - 0x0500CFF0 const Gfx ukiki_seg5_dl_0500CF68[] = { - gsSPLight(&ukiki_seg5_light_05007BA8, 1), - gsSPLight(&ukiki_seg5_light_05007BA0, 2), + gsSPLight(&ukiki_seg5_lights_05007BA0.l, 1), + gsSPLight(&ukiki_seg5_lights_05007BA0.a, 2), gsSPVertex(ukiki_seg5_vertex_0500CAA8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -1125,8 +1057,8 @@ const Gfx ukiki_seg5_dl_0500CF68[] = { // 0x0500CFF0 - 0x0500D078 const Gfx ukiki_seg5_dl_0500CFF0[] = { - gsSPLight(&ukiki_seg5_light_05007BA8, 1), - gsSPLight(&ukiki_seg5_light_05007BA0, 2), + gsSPLight(&ukiki_seg5_lights_05007BA0.l, 1), + gsSPLight(&ukiki_seg5_lights_05007BA0.a, 2), gsSPVertex(ukiki_seg5_vertex_0500CC28, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -1140,8 +1072,8 @@ const Gfx ukiki_seg5_dl_0500CFF0[] = { // 0x0500D078 - 0x0500D108 const Gfx ukiki_seg5_dl_0500D078[] = { - gsSPLight(&ukiki_seg5_light_05007BA8, 1), - gsSPLight(&ukiki_seg5_light_05007BA0, 2), + gsSPLight(&ukiki_seg5_lights_05007BA0.l, 1), + gsSPLight(&ukiki_seg5_lights_05007BA0.a, 2), gsSPVertex(ukiki_seg5_vertex_0500CDA8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 2, 7, 6, 0x0), @@ -1155,8 +1087,8 @@ const Gfx ukiki_seg5_dl_0500D078[] = { // 0x0500D108 - 0x0500D198 const Gfx ukiki_seg5_dl_0500D108[] = { - gsSPLight(&ukiki_seg5_light_05007BA8, 1), - gsSPLight(&ukiki_seg5_light_05007BA0, 2), + gsSPLight(&ukiki_seg5_lights_05007BA0.l, 1), + gsSPLight(&ukiki_seg5_lights_05007BA0.a, 2), gsSPVertex(ukiki_seg5_vertex_0500CE98, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 0, 5, 0x0, 4, 5, 6, 0x0), diff --git a/actors/unagi/model.inc.c b/actors/unagi/model.inc.c index ba4c24a..a8cb419 100644 --- a/actors/unagi/model.inc.c +++ b/actors/unagi/model.inc.c @@ -1,84 +1,52 @@ // Unagi (Eel) -// Unreferenced light -UNUSED static const Ambient unagi_light_1 = { - {{0x2c, 0x25, 0x00}, 0, {0x2c, 0x25, 0x00}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 unagi_lights_unused1 = gdSPDefLights1( + 0x2c, 0x25, 0x00, + 0xb2, 0x94, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light unagi_light_2 = { - {{0xb2, 0x94, 0x00}, 0, {0xb2, 0x94, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 unagi_lights_unused2 = gdSPDefLights1( + 0x35, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient unagi_light_3 = { - {{0x35, 0x00, 0x00}, 0, {0x35, 0x00, 0x00}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 unagi_lights_unused3 = gdSPDefLights1( + 0x37, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light unagi_light_4 = { - {{0xd5, 0x00, 0x00}, 0, {0xd5, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 unagi_lights_unused4 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient unagi_light_5 = { - {{0x37, 0x00, 0x00}, 0, {0x37, 0x00, 0x00}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 unagi_lights_unused5 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light unagi_light_6 = { - {{0xdd, 0x00, 0x00}, 0, {0xdd, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 unagi_lights_unused6 = gdSPDefLights1( + 0x34, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient unagi_light_7 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 unagi_lights_unused7 = gdSPDefLights1( + 0x34, 0x00, 0x00, + 0xd3, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light unagi_light_8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient unagi_light_9 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light unagi_light_10 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient unagi_light_11 = { - {{0x34, 0x00, 0x00}, 0, {0x34, 0x00, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light unagi_light_12 = { - {{0xd2, 0x00, 0x00}, 0, {0xd2, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient unagi_light_13 = { - {{0x34, 0x00, 0x00}, 0, {0x34, 0x00, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light unagi_light_14 = { - {{0xd3, 0x00, 0x00}, 0, {0xd3, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient unagi_light_15 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// Unreferenced light -UNUSED static const Light unagi_light_16 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 unagi_lights_unused8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500AF20 ALIGNED8 static const u8 unagi_seg5_texture_0500AF20[] = { diff --git a/actors/warp_pipe/model.inc.c b/actors/warp_pipe/model.inc.c index 7c7fd6b..f428a0b 100644 --- a/actors/warp_pipe/model.inc.c +++ b/actors/warp_pipe/model.inc.c @@ -1,14 +1,10 @@ // Warp Pipe // 0x030079E8 -static const Ambient warp_pipe_seg3_light_030079E8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x030079F0 -static const Light warp_pipe_seg3_light_030079F0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 warp_pipe_seg3_lights_030079E8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x03007A00 static const Vtx warp_pipe_seg3_vertex_03007A00[] = { @@ -108,8 +104,8 @@ const Gfx warp_pipe_seg3_dl_03008E40[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, warp_pipe_seg3_texture_03007E40), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&warp_pipe_seg3_light_030079F0, 1), - gsSPLight(&warp_pipe_seg3_light_030079E8, 2), + gsSPLight(&warp_pipe_seg3_lights_030079E8.l, 1), + gsSPLight(&warp_pipe_seg3_lights_030079E8.a, 2), gsSPVertex(warp_pipe_seg3_vertex_03007A00, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -153,24 +149,16 @@ const Gfx warp_pipe_seg3_dl_03008F98[] = { }; // 0x03008FF8 -static const Ambient warp_pipe_seg3_light_03008FF8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x03009000 -static const Light warp_pipe_seg3_light_03009000 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 warp_pipe_seg3_lights_03008FF8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x03009010 -static const Ambient warp_pipe_seg3_light_03009010 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x03009018 -static const Light warp_pipe_seg3_light_03009018 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 warp_pipe_seg3_lights_03009010 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x03009028 static const Vtx warp_pipe_seg3_vertex_03009028[] = { @@ -210,8 +198,8 @@ const Gfx warp_pipe_seg3_dl_03009968[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, warp_pipe_seg3_texture_03009168), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&warp_pipe_seg3_light_03009000, 1), - gsSPLight(&warp_pipe_seg3_light_03008FF8, 2), + gsSPLight(&warp_pipe_seg3_lights_03008FF8.l, 1), + gsSPLight(&warp_pipe_seg3_lights_03008FF8.a, 2), gsSPVertex(warp_pipe_seg3_vertex_03009028, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 3, 5, 0x0), @@ -226,8 +214,8 @@ const Gfx warp_pipe_seg3_dl_03009968[] = { // 0x03009A20 - 0x03009A50 const Gfx warp_pipe_seg3_dl_03009A20[] = { - gsSPLight(&warp_pipe_seg3_light_03009018, 1), - gsSPLight(&warp_pipe_seg3_light_03009010, 2), + gsSPLight(&warp_pipe_seg3_lights_03009010.l, 1), + gsSPLight(&warp_pipe_seg3_lights_03009010.a, 2), gsSPVertex(warp_pipe_seg3_vertex_03009128, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/actors/water_bubble/model.inc.c b/actors/water_bubble/model.inc.c index 0d35f26..8db7688 100644 --- a/actors/water_bubble/model.inc.c +++ b/actors/water_bubble/model.inc.c @@ -1,14 +1,10 @@ // Water Bubble // 0x0500FE68 -static const Ambient water_bubble_seg5_light_0500FE68 = { - {{0xbf, 0xbf, 0xbf}, 0, {0xbf, 0xbf, 0xbf}, 0} -}; - -// 0x0500FE70 -static const Light water_bubble_seg5_light_0500FE70 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 water_bubble_seg5_lights_0500FE68 = gdSPDefLights1( + 0xbf, 0xbf, 0xbf, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0500FE80 ALIGNED8 static const u8 water_bubble_seg5_texture_0500FE80[] = { @@ -152,8 +148,8 @@ static const Vtx water_bubble_seg5_vertex_05010C50[] = { // 0x05010D30 - 0x05011000 const Gfx water_bubble_seg5_dl_05010D30[] = { - gsSPLight(&water_bubble_seg5_light_0500FE70, 1), - gsSPLight(&water_bubble_seg5_light_0500FE68, 2), + gsSPLight(&water_bubble_seg5_lights_0500FE68.l, 1), + gsSPLight(&water_bubble_seg5_lights_0500FE68.a, 2), gsSPVertex(water_bubble_seg5_vertex_05010680, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 2, 3, 4, 0x0, 1, 5, 3, 0x0), diff --git a/actors/water_mine/model.inc.c b/actors/water_mine/model.inc.c index e5b79dc..a85c721 100644 --- a/actors/water_mine/model.inc.c +++ b/actors/water_mine/model.inc.c @@ -1,14 +1,10 @@ // Water Mine (unused) // 0x0600A4E0 -static const Ambient water_mine_seg6_light_0600A4E0 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0600A4E8 -static const Light water_mine_seg6_light_0600A4E8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 water_mine_seg6_lights_0600A4E0 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0600A4F8 ALIGNED8 static const u8 water_mine_seg6_texture_0600A4F8[] = { @@ -177,8 +173,8 @@ const Gfx water_mine_seg6_dl_0600D2E0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_mine_seg6_texture_0600C4F8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&water_mine_seg6_light_0600A4E8, 1), - gsSPLight(&water_mine_seg6_light_0600A4E0, 2), + gsSPLight(&water_mine_seg6_lights_0600A4E0.l, 1), + gsSPLight(&water_mine_seg6_lights_0600A4E0.a, 2), gsSPVertex(water_mine_seg6_vertex_0600CD78, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/actors/water_ring/model.inc.c b/actors/water_ring/model.inc.c index d1a8622..9d7e548 100644 --- a/actors/water_ring/model.inc.c +++ b/actors/water_ring/model.inc.c @@ -1,14 +1,10 @@ // Water Ring // 0x06012368 -static const Ambient water_ring_seg6_light_06012368 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x06012370 -static const Light water_ring_seg6_light_06012370 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 water_ring_seg6_lights_06012368 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x06012380 ALIGNED8 static const u8 water_ring_seg6_texture_06012380[] = { @@ -170,8 +166,8 @@ const Gfx water_ring_seg6_dl_06013AC0[] = { gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), gsDPLoadTextureBlock(water_ring_seg6_texture_06012380, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x1800, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPLight(&water_ring_seg6_light_06012370, 1), - gsSPLight(&water_ring_seg6_light_06012368, 2), + gsSPLight(&water_ring_seg6_lights_06012368.l, 1), + gsSPLight(&water_ring_seg6_lights_06012368.a, 2), gsSPVertex(water_ring_seg6_vertex_06013380, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/actors/whomp/model.inc.c b/actors/whomp/model.inc.c index 785d605..d98c77d 100644 --- a/actors/whomp/model.inc.c +++ b/actors/whomp/model.inc.c @@ -25,14 +25,10 @@ ALIGNED8 static const u8 whomp_seg6_texture_0601EB60[] = { }; // 0x0601F360 -static const Ambient whomp_seg6_light_0601F360 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0601F368 -static const Light whomp_seg6_light_0601F368 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 whomp_seg6_lights_0601F360 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0601F378 static const Vtx whomp_seg6_vertex_0601F378[] = { @@ -75,8 +71,8 @@ const Gfx whomp_seg6_dl_0601F4F8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, whomp_seg6_texture_0601EB60), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&whomp_seg6_light_0601F368, 1), - gsSPLight(&whomp_seg6_light_0601F360, 2), + gsSPLight(&whomp_seg6_lights_0601F360.l, 1), + gsSPLight(&whomp_seg6_lights_0601F360.a, 2), gsSPVertex(whomp_seg6_vertex_0601F378, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -129,14 +125,10 @@ const Gfx whomp_seg6_dl_0601F5E0[] = { }; // 0x0601F678 -static const Ambient whomp_seg6_light_0601F678 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0601F680 -static const Light whomp_seg6_light_0601F680 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 whomp_seg6_lights_0601F678 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0601F690 static const Vtx whomp_seg6_vertex_0601F690[] = { @@ -173,8 +165,8 @@ const Gfx whomp_seg6_dl_0601F7F0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, whomp_seg6_texture_0601EB60), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&whomp_seg6_light_0601F680, 1), - gsSPLight(&whomp_seg6_light_0601F678, 2), + gsSPLight(&whomp_seg6_lights_0601F678.l, 1), + gsSPLight(&whomp_seg6_lights_0601F678.a, 2), gsSPVertex(whomp_seg6_vertex_0601F690, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -203,14 +195,10 @@ const Gfx whomp_seg6_dl_0601F880[] = { }; // 0x0601F8E0 -static const Ambient whomp_seg6_light_0601F8E0 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0601F8E8 -static const Light whomp_seg6_light_0601F8E8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 whomp_seg6_lights_0601F8E0 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0601F8F8 static const Vtx whomp_seg6_vertex_0601F8F8[] = { @@ -247,8 +235,8 @@ const Gfx whomp_seg6_dl_0601FA58[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, whomp_seg6_texture_0601EB60), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&whomp_seg6_light_0601F8E8, 1), - gsSPLight(&whomp_seg6_light_0601F8E0, 2), + gsSPLight(&whomp_seg6_lights_0601F8E0.l, 1), + gsSPLight(&whomp_seg6_lights_0601F8E0.a, 2), gsSPVertex(whomp_seg6_vertex_0601F8F8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -349,14 +337,10 @@ const Gfx whomp_seg6_dl_0601FCA8[] = { }; // 0x0601FD18 -static const Ambient whomp_seg6_light_0601FD18 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0601FD20 -static const Light whomp_seg6_light_0601FD20 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 whomp_seg6_lights_0601FD18 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0601FD30 static const Vtx whomp_seg6_vertex_0601FD30[] = { @@ -381,8 +365,8 @@ const Gfx whomp_seg6_dl_0601FE10[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, whomp_seg6_texture_0601EB60), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&whomp_seg6_light_0601FD20, 1), - gsSPLight(&whomp_seg6_light_0601FD18, 2), + gsSPLight(&whomp_seg6_lights_0601FD18.l, 1), + gsSPLight(&whomp_seg6_lights_0601FD18.a, 2), gsSPVertex(whomp_seg6_vertex_0601FD30, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 2, 1, 4, 0x0, 4, 3, 2, 0x0), @@ -410,14 +394,10 @@ const Gfx whomp_seg6_dl_0601FEA8[] = { }; // 0x0601FF08 -static const Ambient whomp_seg6_light_0601FF08 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0601FF10 -static const Light whomp_seg6_light_0601FF10 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 whomp_seg6_lights_0601FF08 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0601FF20 static const Vtx whomp_seg6_vertex_0601FF20[] = { @@ -436,8 +416,8 @@ const Gfx whomp_seg6_dl_0601FFA0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, whomp_seg6_texture_0601EB60), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&whomp_seg6_light_0601FF10, 1), - gsSPLight(&whomp_seg6_light_0601FF08, 2), + gsSPLight(&whomp_seg6_lights_0601FF08.l, 1), + gsSPLight(&whomp_seg6_lights_0601FF08.a, 2), gsSPVertex(whomp_seg6_vertex_0601FF20, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 2, 1, 0x0, 1, 5, 4, 0x0), diff --git a/actors/wiggler_body/model.inc.c b/actors/wiggler_body/model.inc.c index a4ce2f0..0b685b2 100644 --- a/actors/wiggler_body/model.inc.c +++ b/actors/wiggler_body/model.inc.c @@ -36,34 +36,22 @@ ALIGNED8 static const u8 wiggler_seg5_texture_0500A230[] = { }; // 0x0500B230 -static const Ambient wiggler_seg5_light_0500B230 = { - {{0x37, 0x00, 0x00}, 0, {0x37, 0x00, 0x00}, 0} -}; - -// 0x0500B238 -static const Light wiggler_seg5_light_0500B238 = { - {{0xdf, 0x00, 0x00}, 0, {0xdf, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 wiggler_seg5_lights_0500B230 = gdSPDefLights1( + 0x37, 0x00, 0x00, + 0xdf, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x0500B248 -static const Ambient wiggler_seg5_light_0500B248 = { - {{0x39, 0x11, 0x00}, 0, {0x39, 0x11, 0x00}, 0} -}; +static const Lights1 wiggler_seg5_lights_0500B248 = gdSPDefLights1( + 0x39, 0x11, 0x00, + 0xe7, 0x47, 0x00, 0x28, 0x28, 0x28 +); -// 0x0500B250 -static const Light wiggler_seg5_light_0500B250 = { - {{0xe7, 0x47, 0x00}, 0, {0xe7, 0x47, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient wiggler_body_light_1 = { - {{0x3a, 0x22, 0x05}, 0, {0x3a, 0x22, 0x05}, 0} -}; - -// Unreferenced light -UNUSED static const Light wiggler_body_light_2 = { - {{0xea, 0x8b, 0x16}, 0, {0xea, 0x8b, 0x16}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 wiggler_body_lights_unused = gdSPDefLights1( + 0x3a, 0x22, 0x05, + 0xea, 0x8b, 0x16, 0x28, 0x28, 0x28 +); // 0x0500B278 static const Vtx wiggler_seg5_vertex_0500B278[] = { @@ -279,8 +267,8 @@ static const Vtx wiggler_seg5_vertex_0500BBC8[] = { // 0x0500BCB8 - 0x0500BE10 const Gfx wiggler_seg5_dl_0500BCB8[] = { - gsSPLight(&wiggler_seg5_light_0500B238, 1), - gsSPLight(&wiggler_seg5_light_0500B230, 2), + gsSPLight(&wiggler_seg5_lights_0500B230.l, 1), + gsSPLight(&wiggler_seg5_lights_0500B230.a, 2), gsSPVertex(wiggler_seg5_vertex_0500B278, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -308,8 +296,8 @@ const Gfx wiggler_seg5_dl_0500BCB8[] = { // 0x0500BE10 - 0x0500BE98 const Gfx wiggler_seg5_dl_0500BE10[] = { - gsSPLight(&wiggler_seg5_light_0500B250, 1), - gsSPLight(&wiggler_seg5_light_0500B248, 2), + gsSPLight(&wiggler_seg5_lights_0500B248.l, 1), + gsSPLight(&wiggler_seg5_lights_0500B248.a, 2), gsSPVertex(wiggler_seg5_vertex_0500B5B8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -323,8 +311,8 @@ const Gfx wiggler_seg5_dl_0500BE10[] = { // 0x0500BE98 - 0x0500BF20 const Gfx wiggler_seg5_dl_0500BE98[] = { - gsSPLight(&wiggler_seg5_light_0500B250, 1), - gsSPLight(&wiggler_seg5_light_0500B248, 2), + gsSPLight(&wiggler_seg5_lights_0500B248.l, 1), + gsSPLight(&wiggler_seg5_lights_0500B248.a, 2), gsSPVertex(wiggler_seg5_vertex_0500B6A8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -338,8 +326,8 @@ const Gfx wiggler_seg5_dl_0500BE98[] = { // 0x0500BF20 - 0x0500C078 const Gfx wiggler_seg5_dl_0500BF20[] = { - gsSPLight(&wiggler_seg5_light_0500B238, 1), - gsSPLight(&wiggler_seg5_light_0500B230, 2), + gsSPLight(&wiggler_seg5_lights_0500B230.l, 1), + gsSPLight(&wiggler_seg5_lights_0500B230.a, 2), gsSPVertex(wiggler_seg5_vertex_0500B798, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -367,8 +355,8 @@ const Gfx wiggler_seg5_dl_0500BF20[] = { // 0x0500C078 - 0x0500C100 const Gfx wiggler_seg5_dl_0500C078[] = { - gsSPLight(&wiggler_seg5_light_0500B250, 1), - gsSPLight(&wiggler_seg5_light_0500B248, 2), + gsSPLight(&wiggler_seg5_lights_0500B248.l, 1), + gsSPLight(&wiggler_seg5_lights_0500B248.a, 2), gsSPVertex(wiggler_seg5_vertex_0500BAD8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -382,8 +370,8 @@ const Gfx wiggler_seg5_dl_0500C078[] = { // 0x0500C100 - 0x0500C188 const Gfx wiggler_seg5_dl_0500C100[] = { - gsSPLight(&wiggler_seg5_light_0500B250, 1), - gsSPLight(&wiggler_seg5_light_0500B248, 2), + gsSPLight(&wiggler_seg5_lights_0500B248.l, 1), + gsSPLight(&wiggler_seg5_lights_0500B248.a, 2), gsSPVertex(wiggler_seg5_vertex_0500BBC8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/actors/wiggler_head/model.inc.c b/actors/wiggler_head/model.inc.c index 2e3d34e..afc3337 100644 --- a/actors/wiggler_head/model.inc.c +++ b/actors/wiggler_head/model.inc.c @@ -1,44 +1,28 @@ // Wiggler Head // 0x0500C878 -static const Ambient wiggler_seg5_light_0500C878 = { - {{0x37, 0x00, 0x00}, 0, {0x37, 0x00, 0x00}, 0} -}; - -// 0x0500C880 -static const Light wiggler_seg5_light_0500C880 = { - {{0xdf, 0x00, 0x00}, 0, {0xdf, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 wiggler_seg5_lights_0500C878 = gdSPDefLights1( + 0x37, 0x00, 0x00, + 0xdf, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x0500C890 -static const Ambient wiggler_seg5_light_0500C890 = { - {{0x39, 0x11, 0x00}, 0, {0x39, 0x11, 0x00}, 0} -}; +static const Lights1 wiggler_seg5_lights_0500C890 = gdSPDefLights1( + 0x39, 0x11, 0x00, + 0xe7, 0x47, 0x00, 0x28, 0x28, 0x28 +); -// 0x0500C898 -static const Light wiggler_seg5_light_0500C898 = { - {{0xe7, 0x47, 0x00}, 0, {0xe7, 0x47, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 wiggler_head_lights_unused1 = gdSPDefLights1( + 0x1b, 0x06, 0x00, + 0x6d, 0x1a, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient wiggler_head_light_1 = { - {{0x1b, 0x06, 0x00}, 0, {0x1b, 0x06, 0x00}, 0} -}; - -// Unreferenced light -UNUSED static const Light wiggler_head_light_2 = { - {{0x6d, 0x1a, 0x00}, 0, {0x6d, 0x1a, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// Unreferenced light -UNUSED static const Ambient wiggler_head_light_3 = { - {{0x3a, 0x22, 0x05}, 0, {0x3a, 0x22, 0x05}, 0} -}; - -// Unreferenced light -UNUSED static const Light wiggler_head_light_4 = { - {{0xea, 0x8b, 0x16}, 0, {0xea, 0x8b, 0x16}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 wiggler_head_lights_unused2 = gdSPDefLights1( + 0x3a, 0x22, 0x05, + 0xea, 0x8b, 0x16, 0x28, 0x28, 0x28 +); // 0x0500C8D8 static const Vtx wiggler_seg5_vertex_0500C8D8[] = { @@ -402,8 +386,8 @@ static const Vtx wiggler_seg5_vertex_0500D318[] = { // 0x0500DC18 - 0x0500DD70 const Gfx wiggler_seg5_dl_0500DC18[] = { - gsSPLight(&wiggler_seg5_light_0500C880, 1), - gsSPLight(&wiggler_seg5_light_0500C878, 2), + gsSPLight(&wiggler_seg5_lights_0500C878.l, 1), + gsSPLight(&wiggler_seg5_lights_0500C878.a, 2), gsSPVertex(wiggler_seg5_vertex_0500C8D8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -431,8 +415,8 @@ const Gfx wiggler_seg5_dl_0500DC18[] = { // 0x0500DD70 - 0x0500DDF8 const Gfx wiggler_seg5_dl_0500DD70[] = { - gsSPLight(&wiggler_seg5_light_0500C898, 1), - gsSPLight(&wiggler_seg5_light_0500C890, 2), + gsSPLight(&wiggler_seg5_lights_0500C890.l, 1), + gsSPLight(&wiggler_seg5_lights_0500C890.a, 2), gsSPVertex(wiggler_seg5_vertex_0500CC18, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -446,8 +430,8 @@ const Gfx wiggler_seg5_dl_0500DD70[] = { // 0x0500DDF8 - 0x0500DE80 const Gfx wiggler_seg5_dl_0500DDF8[] = { - gsSPLight(&wiggler_seg5_light_0500C898, 1), - gsSPLight(&wiggler_seg5_light_0500C890, 2), + gsSPLight(&wiggler_seg5_lights_0500C890.l, 1), + gsSPLight(&wiggler_seg5_lights_0500C890.a, 2), gsSPVertex(wiggler_seg5_vertex_0500CD08, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -461,8 +445,8 @@ const Gfx wiggler_seg5_dl_0500DDF8[] = { // 0x0500DE80 - 0x0500DFD8 const Gfx wiggler_seg5_dl_0500DE80[] = { - gsSPLight(&wiggler_seg5_light_0500C880, 1), - gsSPLight(&wiggler_seg5_light_0500C878, 2), + gsSPLight(&wiggler_seg5_lights_0500C878.l, 1), + gsSPLight(&wiggler_seg5_lights_0500C878.a, 2), gsSPVertex(wiggler_seg5_vertex_0500CDF8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -490,8 +474,8 @@ const Gfx wiggler_seg5_dl_0500DE80[] = { // 0x0500DFD8 - 0x0500E060 const Gfx wiggler_seg5_dl_0500DFD8[] = { - gsSPLight(&wiggler_seg5_light_0500C898, 1), - gsSPLight(&wiggler_seg5_light_0500C890, 2), + gsSPLight(&wiggler_seg5_lights_0500C890.l, 1), + gsSPLight(&wiggler_seg5_lights_0500C890.a, 2), gsSPVertex(wiggler_seg5_vertex_0500D138, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -505,8 +489,8 @@ const Gfx wiggler_seg5_dl_0500DFD8[] = { // 0x0500E060 - 0x0500E0E8 const Gfx wiggler_seg5_dl_0500E060[] = { - gsSPLight(&wiggler_seg5_light_0500C898, 1), - gsSPLight(&wiggler_seg5_light_0500C890, 2), + gsSPLight(&wiggler_seg5_lights_0500C890.l, 1), + gsSPLight(&wiggler_seg5_lights_0500C890.a, 2), gsSPVertex(wiggler_seg5_vertex_0500D228, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/actors/wooden_signpost/model.inc.c b/actors/wooden_signpost/model.inc.c index 4225780..ec2ebd0 100644 --- a/actors/wooden_signpost/model.inc.c +++ b/actors/wooden_signpost/model.inc.c @@ -1,14 +1,10 @@ // Signpost // 0x0302C940 -static const Ambient wooden_signpost_seg3_light_0302C940 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0302C948 -static const Light wooden_signpost_seg3_light_0302C948 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 wooden_signpost_seg3_lights_0302C940 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0302C958 static const Vtx wooden_signpost_seg3_vertex_0302C958[] = { @@ -36,8 +32,8 @@ const Gfx wooden_signpost_seg3_dl_0302D9C8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wooden_signpost_seg3_texture_0302C9C8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wooden_signpost_seg3_light_0302C948, 1), - gsSPLight(&wooden_signpost_seg3_light_0302C940, 2), + gsSPLight(&wooden_signpost_seg3_lights_0302C940.l, 1), + gsSPLight(&wooden_signpost_seg3_lights_0302C940.a, 2), gsSPVertex(wooden_signpost_seg3_vertex_0302C958, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 0, 3, 1, 0x0, 4, 1, 3, 0x0), @@ -64,14 +60,10 @@ const Gfx wooden_signpost_seg3_dl_0302DA48[] = { }; // 0x0302DAA8 -static const Ambient wooden_signpost_seg3_light_0302DAA8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0302DAB0 -static const Light wooden_signpost_seg3_light_0302DAB0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 wooden_signpost_seg3_lights_0302DAA8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0302DAC0 static const Vtx wooden_signpost_seg3_vertex_0302DAC0[] = { @@ -114,8 +106,8 @@ const Gfx wooden_signpost_seg3_dl_0302DC40[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wooden_signpost_seg3_texture_0302C9C8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wooden_signpost_seg3_light_0302DAB0, 1), - gsSPLight(&wooden_signpost_seg3_light_0302DAA8, 2), + gsSPLight(&wooden_signpost_seg3_lights_0302DAA8.l, 1), + gsSPLight(&wooden_signpost_seg3_lights_0302DAA8.a, 2), gsSPVertex(wooden_signpost_seg3_vertex_0302DAC0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), diff --git a/actors/yoshi/model.inc.c b/actors/yoshi/model.inc.c index d002874..bf6a365 100644 --- a/actors/yoshi/model.inc.c +++ b/actors/yoshi/model.inc.c @@ -1,34 +1,22 @@ // Yoshi // 0x0501C458 -static const Ambient yoshi_seg5_light_0501C458 = { - {{0x00, 0x7c, 0x00}, 0, {0x00, 0x7c, 0x00}, 0} -}; - -// 0x0501C460 -static const Light yoshi_seg5_light_0501C460 = { - {{0x00, 0xf9, 0x00}, 0, {0x00, 0xf9, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 yoshi_seg5_lights_0501C458 = gdSPDefLights1( + 0x00, 0x7c, 0x00, + 0x00, 0xf9, 0x00, 0x28, 0x28, 0x28 +); // 0x0501C470 -static const Ambient yoshi_seg5_light_0501C470 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0501C478 -static const Light yoshi_seg5_light_0501C478 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 yoshi_seg5_lights_0501C470 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0501C488 -static const Ambient yoshi_seg5_light_0501C488 = { - {{0x7f, 0x00, 0x00}, 0, {0x7f, 0x00, 0x00}, 0} -}; - -// 0x0501C490 -static const Light yoshi_seg5_light_0501C490 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 yoshi_seg5_lights_0501C488 = gdSPDefLights1( + 0x7f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x0501C4A0 ALIGNED8 static const u8 yoshi_seg5_texture_0501C4A0[] = { @@ -256,8 +244,8 @@ const Gfx yoshi_seg5_dl_0501D440[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, yoshi_seg5_texture_0501C8A0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 16 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&yoshi_seg5_light_0501C460, 1), - gsSPLight(&yoshi_seg5_light_0501C458, 2), + gsSPLight(&yoshi_seg5_lights_0501C458.l, 1), + gsSPLight(&yoshi_seg5_lights_0501C458.a, 2), gsSPVertex(yoshi_seg5_vertex_0501CAA0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), @@ -265,8 +253,8 @@ const Gfx yoshi_seg5_dl_0501D440[] = { // 0x0501D488 - 0x0501D4E0 const Gfx yoshi_seg5_dl_0501D488[] = { - gsSPLight(&yoshi_seg5_light_0501C478, 1), - gsSPLight(&yoshi_seg5_light_0501C470, 2), + gsSPLight(&yoshi_seg5_lights_0501C470.l, 1), + gsSPLight(&yoshi_seg5_lights_0501C470.a, 2), gsSPVertex(yoshi_seg5_vertex_0501CB00, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 3, 4, 5, 0x0, 5, 0, 3, 0x0), @@ -277,13 +265,13 @@ const Gfx yoshi_seg5_dl_0501D488[] = { // 0x0501D4E0 - 0x0501D8F8 const Gfx yoshi_seg5_dl_0501D4E0[] = { - gsSPLight(&yoshi_seg5_light_0501C490, 1), - gsSPLight(&yoshi_seg5_light_0501C488, 2), + gsSPLight(&yoshi_seg5_lights_0501C488.l, 1), + gsSPLight(&yoshi_seg5_lights_0501C488.a, 2), gsSPVertex(yoshi_seg5_vertex_0501CBB0, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 4, 1, 3, 0x0, 2, 1, 4, 0x0), - gsSPLight(&yoshi_seg5_light_0501C460, 1), - gsSPLight(&yoshi_seg5_light_0501C458, 2), + gsSPLight(&yoshi_seg5_lights_0501C458.l, 1), + gsSPLight(&yoshi_seg5_lights_0501C458.a, 2), gsSPVertex(yoshi_seg5_vertex_0501CC00, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 3, 0x0, 3, 5, 6, 0x0), @@ -343,8 +331,8 @@ const Gfx yoshi_seg5_dl_0501D4E0[] = { gsSPVertex(yoshi_seg5_vertex_0501D2C0, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 2, 4, 5, 0x0, 3, 5, 6, 0x0), - gsSPLight(&yoshi_seg5_light_0501C478, 1), - gsSPLight(&yoshi_seg5_light_0501C470, 2), + gsSPLight(&yoshi_seg5_lights_0501C470.l, 1), + gsSPLight(&yoshi_seg5_lights_0501C470.a, 2), gsSPVertex(yoshi_seg5_vertex_0501D330, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 4, 8, 0x0), @@ -398,64 +386,40 @@ const Gfx yoshi_seg5_dl_0501D998[] = { }; // 0x0501D9C0 -static const Ambient yoshi_seg5_light_0501D9C0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0501D9C8 -static const Light yoshi_seg5_light_0501D9C8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 yoshi_seg5_lights_0501D9C0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0501D9D8 -static const Ambient yoshi_seg5_light_0501D9D8 = { - {{0x00, 0x7b, 0x00}, 0, {0x00, 0x7b, 0x00}, 0} -}; - -// 0x0501D9E0 -static const Light yoshi_seg5_light_0501D9E0 = { - {{0x00, 0xf7, 0x00}, 0, {0x00, 0xf7, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 yoshi_seg5_lights_0501D9D8 = gdSPDefLights1( + 0x00, 0x7b, 0x00, + 0x00, 0xf7, 0x00, 0x28, 0x28, 0x28 +); // 0x0501D9F0 -static const Ambient yoshi_seg5_light_0501D9F0 = { - {{0x7f, 0x00, 0x00}, 0, {0x7f, 0x00, 0x00}, 0} -}; +static const Lights1 yoshi_seg5_lights_0501D9F0 = gdSPDefLights1( + 0x7f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x0501D9F8 -static const Light yoshi_seg5_light_0501D9F8 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 yoshi_lights_unused1 = gdSPDefLights1( + 0x59, 0x59, 0x59, + 0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28 +); -// unreferenced light -UNUSED static const Ambient yoshi_light_1 = { - {{0x59, 0x59, 0x59}, 0, {0x59, 0x59, 0x59}, 0} -}; - -// unreferenced light -UNUSED static const Light yoshi_light_2 = { - {{0xb2, 0xb2, 0xb2}, 0, {0xb2, 0xb2, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// unreferenced light -UNUSED static const Ambient yoshi_light_3 = { - {{0x7f, 0x00, 0x00}, 0, {0x7f, 0x00, 0x00}, 0} -}; - -// unreferenced light -UNUSED static const Light yoshi_light_4 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 yoshi_lights_unused2 = gdSPDefLights1( + 0x7f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x0501DA38 -static const Ambient yoshi_seg5_light_0501DA38 = { - {{0x45, 0x00, 0x00}, 0, {0x45, 0x00, 0x00}, 0} -}; - -// 0x0501DA40 -static const Light yoshi_seg5_light_0501DA40 = { - {{0x8b, 0x00, 0x00}, 0, {0x8b, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +static const Lights1 yoshi_seg5_lights_0501DA38 = gdSPDefLights1( + 0x45, 0x00, 0x00, + 0x8b, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x0501DA50 static const Vtx yoshi_seg5_vertex_0501DA50[] = { @@ -1621,8 +1585,8 @@ static const Vtx yoshi_seg5_vertex_050211D0[] = { // 0x050212B0 - 0x05021490 const Gfx yoshi_seg5_dl_050212B0[] = { - gsSPLight(&yoshi_seg5_light_0501D9C8, 1), - gsSPLight(&yoshi_seg5_light_0501D9C0, 2), + gsSPLight(&yoshi_seg5_lights_0501D9C0.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9C0.a, 2), gsSPVertex(yoshi_seg5_vertex_0501DA50, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -1664,8 +1628,8 @@ const Gfx yoshi_seg5_dl_050212B0[] = { // 0x05021490 - 0x050215D8 const Gfx yoshi_seg5_dl_05021490[] = { - gsSPLight(&yoshi_seg5_light_0501D9E0, 1), - gsSPLight(&yoshi_seg5_light_0501D9D8, 2), + gsSPLight(&yoshi_seg5_lights_0501D9D8.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9D8.a, 2), gsSPVertex(yoshi_seg5_vertex_0501E1E0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -1694,8 +1658,8 @@ const Gfx yoshi_seg5_dl_05021490[] = { // 0x050215D8 - 0x05021678 const Gfx yoshi_seg5_dl_050215D8[] = { - gsSPLight(&yoshi_seg5_light_0501D9E0, 1), - gsSPLight(&yoshi_seg5_light_0501D9D8, 2), + gsSPLight(&yoshi_seg5_lights_0501D9D8.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9D8.a, 2), gsSPVertex(yoshi_seg5_vertex_0501E530, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 1, 4, 5, 0x0, 2, 6, 7, 0x0), @@ -1710,8 +1674,8 @@ const Gfx yoshi_seg5_dl_050215D8[] = { // 0x05021678 - 0x05021718 const Gfx yoshi_seg5_dl_05021678[] = { - gsSPLight(&yoshi_seg5_light_0501D9E0, 1), - gsSPLight(&yoshi_seg5_light_0501D9D8, 2), + gsSPLight(&yoshi_seg5_lights_0501D9D8.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9D8.a, 2), gsSPVertex(yoshi_seg5_vertex_0501E5D0, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 0, 6, 7, 0x0, 4, 8, 1, 0x0), @@ -1726,8 +1690,8 @@ const Gfx yoshi_seg5_dl_05021678[] = { // 0x05021718 - 0x05021860 const Gfx yoshi_seg5_dl_05021718[] = { - gsSPLight(&yoshi_seg5_light_0501D9E0, 1), - gsSPLight(&yoshi_seg5_light_0501D9D8, 2), + gsSPLight(&yoshi_seg5_lights_0501D9D8.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9D8.a, 2), gsSPVertex(yoshi_seg5_vertex_0501E680, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -1756,8 +1720,8 @@ const Gfx yoshi_seg5_dl_05021718[] = { // 0x05021860 - 0x05021900 const Gfx yoshi_seg5_dl_05021860[] = { - gsSPLight(&yoshi_seg5_light_0501D9E0, 1), - gsSPLight(&yoshi_seg5_light_0501D9D8, 2), + gsSPLight(&yoshi_seg5_lights_0501D9D8.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9D8.a, 2), gsSPVertex(yoshi_seg5_vertex_0501E9D0, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 4, 5, 1, 0x0, 6, 7, 0, 0x0), @@ -1772,8 +1736,8 @@ const Gfx yoshi_seg5_dl_05021860[] = { // 0x05021900 - 0x050219A0 const Gfx yoshi_seg5_dl_05021900[] = { - gsSPLight(&yoshi_seg5_light_0501D9E0, 1), - gsSPLight(&yoshi_seg5_light_0501D9D8, 2), + gsSPLight(&yoshi_seg5_lights_0501D9D8.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9D8.a, 2), gsSPVertex(yoshi_seg5_vertex_0501EA70, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 2, 0x0, 1, 8, 4, 0x0), @@ -1788,8 +1752,8 @@ const Gfx yoshi_seg5_dl_05021900[] = { // 0x050219A0 - 0x05021B90 const Gfx yoshi_seg5_dl_050219A0[] = { - gsSPLight(&yoshi_seg5_light_0501D9F8, 1), - gsSPLight(&yoshi_seg5_light_0501D9F0, 2), + gsSPLight(&yoshi_seg5_lights_0501D9F0.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9F0.a, 2), gsSPVertex(yoshi_seg5_vertex_0501EB20, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), @@ -1830,8 +1794,8 @@ const Gfx yoshi_seg5_dl_050219A0[] = { // 0x05021B90 - 0x05021CD8 const Gfx yoshi_seg5_dl_05021B90[] = { - gsSPLight(&yoshi_seg5_light_0501D9E0, 1), - gsSPLight(&yoshi_seg5_light_0501D9D8, 2), + gsSPLight(&yoshi_seg5_lights_0501D9D8.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9D8.a, 2), gsSPVertex(yoshi_seg5_vertex_0501F180, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 0, 6, 1, 0x0, 3, 7, 4, 0x0), @@ -1859,8 +1823,8 @@ const Gfx yoshi_seg5_dl_05021B90[] = { // 0x05021CD8 - 0x05021E38 const Gfx yoshi_seg5_dl_05021CD8[] = { - gsSPLight(&yoshi_seg5_light_0501D9E0, 1), - gsSPLight(&yoshi_seg5_light_0501D9D8, 2), + gsSPLight(&yoshi_seg5_lights_0501D9D8.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9D8.a, 2), gsSPVertex(yoshi_seg5_vertex_0501F540, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -1890,8 +1854,8 @@ const Gfx yoshi_seg5_dl_05021CD8[] = { // 0x05021E38 - 0x05021F70 const Gfx yoshi_seg5_dl_05021E38[] = { - gsSPLight(&yoshi_seg5_light_0501D9E0, 1), - gsSPLight(&yoshi_seg5_light_0501D9D8, 2), + gsSPLight(&yoshi_seg5_lights_0501D9D8.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9D8.a, 2), gsSPVertex(yoshi_seg5_vertex_0501FA00, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 4, 5, 3, 0x0, 6, 7, 8, 0x0), @@ -1903,8 +1867,8 @@ const Gfx yoshi_seg5_dl_05021E38[] = { gsSP2Triangles(10, 8, 7, 0x0, 3, 9, 12, 0x0), gsSP2Triangles( 2, 1, 11, 0x0, 8, 11, 6, 0x0), gsSP1Triangle( 5, 0, 3, 0x0), - gsSPLight(&yoshi_seg5_light_0501D9C8, 1), - gsSPLight(&yoshi_seg5_light_0501D9C0, 2), + gsSPLight(&yoshi_seg5_lights_0501D9C0.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9C0.a, 2), gsSPVertex(yoshi_seg5_vertex_0501FAF0, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 7, 6, 8, 0x0), @@ -1918,8 +1882,8 @@ const Gfx yoshi_seg5_dl_05021E38[] = { // 0x05021F70 - 0x05022160 const Gfx yoshi_seg5_dl_05021F70[] = { - gsSPLight(&yoshi_seg5_light_0501D9F8, 1), - gsSPLight(&yoshi_seg5_light_0501D9F0, 2), + gsSPLight(&yoshi_seg5_lights_0501D9F0.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9F0.a, 2), gsSPVertex(yoshi_seg5_vertex_0501FBA0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -1960,8 +1924,8 @@ const Gfx yoshi_seg5_dl_05021F70[] = { // 0x05022160 - 0x050222A8 const Gfx yoshi_seg5_dl_05022160[] = { - gsSPLight(&yoshi_seg5_light_0501D9E0, 1), - gsSPLight(&yoshi_seg5_light_0501D9D8, 2), + gsSPLight(&yoshi_seg5_lights_0501D9D8.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9D8.a, 2), gsSPVertex(yoshi_seg5_vertex_05020200, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 1, 6, 2, 0x0, 4, 7, 5, 0x0), @@ -1989,8 +1953,8 @@ const Gfx yoshi_seg5_dl_05022160[] = { // 0x050222A8 - 0x05022408 const Gfx yoshi_seg5_dl_050222A8[] = { - gsSPLight(&yoshi_seg5_light_0501D9E0, 1), - gsSPLight(&yoshi_seg5_light_0501D9D8, 2), + gsSPLight(&yoshi_seg5_lights_0501D9D8.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9D8.a, 2), gsSPVertex(yoshi_seg5_vertex_050205C0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -2020,8 +1984,8 @@ const Gfx yoshi_seg5_dl_050222A8[] = { // 0x05022408 - 0x05022608 const Gfx yoshi_seg5_dl_05022408[] = { - gsSPLight(&yoshi_seg5_light_0501D9E0, 1), - gsSPLight(&yoshi_seg5_light_0501D9D8, 2), + gsSPLight(&yoshi_seg5_lights_0501D9D8.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9D8.a, 2), gsSPVertex(yoshi_seg5_vertex_05020A80, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -2042,8 +2006,8 @@ const Gfx yoshi_seg5_dl_05022408[] = { gsSP1Triangle( 4, 14, 15, 0x0), gsSPVertex(yoshi_seg5_vertex_05020E60, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), - gsSPLight(&yoshi_seg5_light_0501D9C8, 1), - gsSPLight(&yoshi_seg5_light_0501D9C0, 2), + gsSPLight(&yoshi_seg5_lights_0501D9C0.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9C0.a, 2), gsSPVertex(yoshi_seg5_vertex_05020E90, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 5, 9, 3, 0x0), @@ -2054,8 +2018,8 @@ const Gfx yoshi_seg5_dl_05022408[] = { gsSP2Triangles(14, 15, 8, 0x0, 3, 10, 12, 0x0), gsSP2Triangles(12, 4, 3, 0x0, 12, 14, 7, 0x0), gsSP2Triangles( 8, 7, 14, 0x0, 7, 4, 12, 0x0), - gsSPLight(&yoshi_seg5_light_0501D9F8, 1), - gsSPLight(&yoshi_seg5_light_0501D9F0, 2), + gsSPLight(&yoshi_seg5_lights_0501D9F0.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9F0.a, 2), gsSPVertex(yoshi_seg5_vertex_05020F90, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 7, 6, 5, 0x0), @@ -2064,8 +2028,8 @@ const Gfx yoshi_seg5_dl_05022408[] = { // 0x05022608 - 0x050227D8 const Gfx yoshi_seg5_dl_05022608[] = { - gsSPLight(&yoshi_seg5_light_0501D9E0, 1), - gsSPLight(&yoshi_seg5_light_0501D9D8, 2), + gsSPLight(&yoshi_seg5_lights_0501D9D8.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9D8.a, 2), gsSPVertex(yoshi_seg5_vertex_05021010, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -2075,8 +2039,8 @@ const Gfx yoshi_seg5_dl_05022608[] = { gsSP2Triangles(14, 7, 3, 0x0, 13, 9, 12, 0x0), gsSP2Triangles(11, 12, 9, 0x0, 7, 14, 8, 0x0), gsSP2Triangles( 3, 13, 4, 0x0, 1, 15, 2, 0x0), - gsSPLight(&yoshi_seg5_light_0501DA40, 1), - gsSPLight(&yoshi_seg5_light_0501DA38, 2), + gsSPLight(&yoshi_seg5_lights_0501DA38.l, 1), + gsSPLight(&yoshi_seg5_lights_0501DA38.a, 2), gsSPVertex(yoshi_seg5_vertex_05021110, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 2, 1, 0x0, 6, 7, 4, 0x0), @@ -2085,8 +2049,8 @@ const Gfx yoshi_seg5_dl_05022608[] = { gsSP2Triangles( 4, 1, 6, 0x0, 2, 9, 10, 0x0), gsSP2Triangles( 5, 11, 3, 0x0, 2, 10, 0, 0x0), gsSP2Triangles(11, 8, 3, 0x0, 1, 4, 3, 0x0), - gsSPLight(&yoshi_seg5_light_0501D9C8, 1), - gsSPLight(&yoshi_seg5_light_0501D9C0, 2), + gsSPLight(&yoshi_seg5_lights_0501D9C0.l, 1), + gsSPLight(&yoshi_seg5_lights_0501D9C0.a, 2), gsSPVertex(yoshi_seg5_vertex_050211D0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 7, 6, 0x0), diff --git a/asm/non_matchings/func_8031784C.s b/asm/non_matchings/patch_audio_bank.s similarity index 99% rename from asm/non_matchings/func_8031784C.s rename to asm/non_matchings/patch_audio_bank.s index f80300d..87850f1 100644 --- a/asm/non_matchings/func_8031784C.s +++ b/asm/non_matchings/patch_audio_bank.s @@ -1,4 +1,4 @@ -glabel func_8031784C +glabel patch_audio_bank /* 0D284C 8031784C 27ADFFF0 */ addiu $t5, $sp, -0x10 /* 0D2850 80317850 ADA60018 */ sw $a2, 0x18($t5) /* 0D2854 80317854 8C820000 */ lw $v0, ($a0) diff --git a/asm/non_matchings/process_level_music_dynamics.s b/asm/non_matchings/process_level_music_dynamics.s index cd6f9de..7defac8 100644 --- a/asm/non_matchings/process_level_music_dynamics.s +++ b/asm/non_matchings/process_level_music_dynamics.s @@ -30,8 +30,8 @@ glabel process_level_music_dynamics # US: 803208EC /* 0DAA8C 8031FA8C 10000005 */ b .L8031FAA4 /* 0DAA90 8031FA90 A06E0000 */ sb $t6, ($v1) .L8031FA94: -/* 0DAA94 8031FA94 3C0F8033 */ lui $t7, %hi(gPlayer0CurSeqId) # $t7, 0x8033 -/* 0DAA98 8031FA98 91EF209C */ lbu $t7, %lo(gPlayer0CurSeqId)($t7) +/* 0DAA94 8031FA94 3C0F8033 */ lui $t7, %hi(sPlayer0CurSeqId) # $t7, 0x8033 +/* 0DAA98 8031FA98 91EF209C */ lbu $t7, %lo(sPlayer0CurSeqId)($t7) /* 0DAA9C 8031FA9C 3C018033 */ lui $at, %hi(sBackgroundMusicForDynamics) # $at, 0x8033 /* 0DAAA0 8031FAA0 A02F1EB0 */ sb $t7, %lo(sBackgroundMusicForDynamics)($at) .L8031FAA4: diff --git a/asm/non_matchings/seq_channel_layer_process_script_jp.s b/asm/non_matchings/seq_channel_layer_process_script_jp.s index 3c4f267..48aeb63 100644 --- a/asm/non_matchings/seq_channel_layer_process_script_jp.s +++ b/asm/non_matchings/seq_channel_layer_process_script_jp.s @@ -1013,7 +1013,7 @@ glabel L8031BBF4 /* 0D6E50 8031BE50 02002825 */ move $a1, $s0 /* 0D6E54 8031BE54 17200004 */ bnez $t9, .L8031BE68 /* 0D6E58 8031BE58 00000000 */ nop -/* 0D6E5C 8031BE5C 0C0C6459 */ jal func_80319164 +/* 0D6E5C 8031BE5C 0C0C6459 */ jal init_synthetic_wave /* 0D6E60 8031BE60 A3A8003D */ sb $t0, 0x3d($sp) /* 0D6E64 8031BE64 93A8003D */ lbu $t0, 0x3d($sp) .L8031BE68: diff --git a/asm/non_matchings/seq_channel_layer_process_script_us.s b/asm/non_matchings/seq_channel_layer_process_script_us.s index 02db872..32e57b6 100644 --- a/asm/non_matchings/seq_channel_layer_process_script_us.s +++ b/asm/non_matchings/seq_channel_layer_process_script_us.s @@ -972,7 +972,7 @@ glabel L_U_8031CBEC /* 0D7DF4 8031CDF4 02002825 */ move $a1, $s0 /* 0D7DF8 8031CDF8 17200004 */ bnez $t9, .L8031CE0C /* 0D7DFC 8031CDFC 00000000 */ nop -/* 0D7E00 8031CE00 0C0C6874 */ jal func_80319164 +/* 0D7E00 8031CE00 0C0C6874 */ jal init_synthetic_wave /* 0D7E04 8031CE04 A3A8003D */ sb $t0, 0x3d($sp) /* 0D7E08 8031CE08 93A8003D */ lbu $t0, 0x3d($sp) .L8031CE0C: diff --git a/asm/non_matchings/process_notes_jp.s b/asm/non_matchings/synthesis_process_notes_jp.s similarity index 99% rename from asm/non_matchings/process_notes_jp.s rename to asm/non_matchings/synthesis_process_notes_jp.s index ff4ce4b..9416430 100644 --- a/asm/non_matchings/process_notes_jp.s +++ b/asm/non_matchings/synthesis_process_notes_jp.s @@ -9,7 +9,7 @@ glabel D_80337BC8 .word 0x407FFEDA, 0 .text -glabel process_notes +glabel synthesis_process_notes /* 0CF480 80314480 27BDFE88 */ addiu $sp, $sp, -0x178 /* 0CF484 80314484 3C0E8022 */ lui $t6, %hi(gMaxSimultaneousNotes) # $t6, 0x8022 /* 0CF488 80314488 8DCE6D70 */ lw $t6, %lo(gMaxSimultaneousNotes)($t6) diff --git a/asm/non_matchings/process_notes_us.s b/asm/non_matchings/synthesis_process_notes_us.s similarity index 99% rename from asm/non_matchings/process_notes_us.s rename to asm/non_matchings/synthesis_process_notes_us.s index 3311b1f..6e6638c 100644 --- a/asm/non_matchings/process_notes_us.s +++ b/asm/non_matchings/synthesis_process_notes_us.s @@ -5,7 +5,7 @@ glabel D_80337BB8 .word 0x407FFEDA, 0x407FFEDA .text -glabel process_notes +glabel synthesis_process_notes /* 0D0590 80315590 27BDFE90 */ addiu $sp, $sp, -0x170 /* 0D0594 80315594 3C0E8022 */ lui $t6, %hi(gMaxSimultaneousNotes) # $t6, 0x8022 /* 0D0598 80315598 8DCE6B70 */ lw $t6, %lo(gMaxSimultaneousNotes)($t6) diff --git a/bin/debug_level_select.c b/bin/debug_level_select.c index 959e455..bc79a0b 100644 --- a/bin/debug_level_select.c +++ b/bin/debug_level_select.c @@ -3,15 +3,11 @@ #include "make_const_nonconst.h" -// 0x07000000 - 0x07000008 -static const Ambient debug_level_select_light_07000000 = { - {{0x7f, 0x00, 0x00}, 0, {0x7f, 0x00, 0x00}, 0} -}; - -// 0x07000008 - 0x07000018 -static const Light debug_level_select_light_07000008 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x00, 0x00, 0x50}, 0} -}; +// 0x07000000 - 0x07000018 +static const Lights1 debug_level_select_lights_07000000 = gdSPDefLights1( + 0x7f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 +); // 0x07000018 - 0x07000108 static const Vtx debug_level_select_vertex_07000018[] = { @@ -184,9 +180,7 @@ static const Vtx debug_level_select_vertex_07000798[] = { // 0x07000858 - 0x07000A28 const Gfx debug_level_select_dl_07000858[] = { gsDPPipeSync(), - gsSPNumLights(NUMLIGHTS_1), // I cannot tell if they meant to put 0 or 1 here. - gsSPLight(&debug_level_select_light_07000008, 1), - gsSPLight(&debug_level_select_light_07000000, 2), + gsSPSetLights1(debug_level_select_lights_07000000), gsSPVertex(debug_level_select_vertex_07000018, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -225,15 +219,11 @@ const Gfx debug_level_select_dl_07000858[] = { gsSPEndDisplayList(), }; -// 0x07000A28 - 0x07000A30 -static const Ambient debug_level_select_light_07000A28 = { - {{0x00, 0x00, 0x7f}, 0, {0x00, 0x00, 0x7f}, 0} -}; - -// 0x07000A30 - 0x07000A40 -static const Light debug_level_select_light_07000A30 = { - {{0x00, 0x00, 0xff}, 0, {0x00, 0x00, 0xff}, 0, {0x00, 0x00, 0x50}, 0} -}; +// 0x07000A28 - 0x07000A40 +static const Lights1 debug_level_select_lights_07000A28 = gdSPDefLights1( + 0x00, 0x00, 0x7f, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 +); // 0x07000A40 - 0x07000B30 static const Vtx debug_level_select_vertex_07000A40[] = { @@ -378,9 +368,7 @@ static const Vtx debug_level_select_vertex_070010D0[] = { // 0x07001100 - 0x07001288 const Gfx debug_level_select_dl_07001100[] = { gsDPPipeSync(), - gsSPNumLights(NUMLIGHTS_1), // I cannot tell if they meant to put 0 or 1 here. - gsSPLight(&debug_level_select_light_07000A30, 1), - gsSPLight(&debug_level_select_light_07000A28, 2), + gsSPSetLights1(debug_level_select_lights_07000A28), gsSPVertex(debug_level_select_vertex_07000A40, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -414,15 +402,11 @@ const Gfx debug_level_select_dl_07001100[] = { gsSPEndDisplayList(), }; -// 0x07001288 - 0x07001290 -static const Ambient debug_level_select_light_07001288 = { - {{0x00, 0x56, 0x00}, 0, {0x00, 0x56, 0x00}, 0} -}; - -// 0x07001290 - 0x070012A0 -static const Light debug_level_select_light_07001290 = { - {{0x00, 0xad, 0x00}, 0, {0x00, 0xad, 0x00}, 0, {0x00, 0x00, 0x50}, 0} -}; +// 0x07001288 - 0x070012A0 +static const Lights1 debug_level_select_lights_07001288 = gdSPDefLights1( + 0x00, 0x56, 0x00, + 0x00, 0xad, 0x00, 0x00, 0x00, 0x50 +); // 0x070012A0 - 0x07001390 static const Vtx debug_level_select_vertex_070012A0[] = { @@ -611,9 +595,7 @@ static const Vtx debug_level_select_vertex_07001B10[] = { // 0x07001BA0 - 0x07001D98 const Gfx debug_level_select_dl_07001BA0[] = { gsDPPipeSync(), - gsSPNumLights(NUMLIGHTS_1), // I cannot tell if they meant to put 0 or 1 here. - gsSPLight(&debug_level_select_light_07001290, 1), - gsSPLight(&debug_level_select_light_07001288, 2), + gsSPSetLights1(debug_level_select_lights_07001288), gsSPVertex(debug_level_select_vertex_070012A0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -656,15 +638,11 @@ const Gfx debug_level_select_dl_07001BA0[] = { gsSPEndDisplayList(), }; -// 0x07001D98 - 0x07001DA0 -static const Ambient debug_level_select_light_07001D98 = { - {{0x7f, 0x00, 0x00}, 0, {0x7f, 0x00, 0x00}, 0} -}; - -// 0x07001DA0 - 0x07001DB0 -static const Light debug_level_select_light_07001DA0 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x00, 0x00, 0x50}, 0} -}; +// 0x07001D98 - 0x07001DB0 +static const Lights1 debug_level_select_lights_07001D98 = gdSPDefLights1( + 0x7f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 +); // 0x07001DB0 - 0x07001EA0 static const Vtx debug_level_select_vertex_07001DB0[] = { @@ -837,9 +815,7 @@ static const Vtx debug_level_select_vertex_07002530[] = { // 0x070025F0 - 0x070027C0 const Gfx debug_level_select_dl_070025F0[] = { gsDPPipeSync(), - gsSPNumLights(NUMLIGHTS_1), // I cannot tell if they meant to put 0 or 1 here. - gsSPLight(&debug_level_select_light_07001DA0, 1), - gsSPLight(&debug_level_select_light_07001D98, 2), + gsSPSetLights1(debug_level_select_lights_07001D98), gsSPVertex(debug_level_select_vertex_07001DB0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -878,15 +854,11 @@ const Gfx debug_level_select_dl_070025F0[] = { gsSPEndDisplayList(), }; -// 0x070027C0 - 0x070027C8 -static const Ambient debug_level_select_light_070027C0 = { - {{0x00, 0x00, 0x7f}, 0, {0x00, 0x00, 0x7f}, 0} -}; - -// 0x070027C8 - 0x070027D8 -static const Light debug_level_select_light_070027C8 = { - {{0x00, 0x00, 0xff}, 0, {0x00, 0x00, 0xff}, 0, {0x00, 0x00, 0x50}, 0} -}; +// 0x070027C0 - 0x070027D8 +static const Lights1 debug_level_select_lights_070027C0 = gdSPDefLights1( + 0x00, 0x00, 0x7f, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 +); // 0x070027D8 - 0x070028C8 static const Vtx debug_level_select_vertex_070027D8[] = { @@ -1107,9 +1079,7 @@ static const Vtx debug_level_select_vertex_07003228[] = { // 0x07003258 - 0x070034A0 const Gfx debug_level_select_dl_07003258[] = { gsDPPipeSync(), - gsSPNumLights(NUMLIGHTS_1), // I cannot tell if they meant to put 0 or 1 here. - gsSPLight(&debug_level_select_light_070027C8, 1), - gsSPLight(&debug_level_select_light_070027C0, 2), + gsSPSetLights1(debug_level_select_lights_070027C0), gsSPVertex(debug_level_select_vertex_070027D8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -1159,15 +1129,11 @@ const Gfx debug_level_select_dl_07003258[] = { gsSPEndDisplayList(), }; -// 0x070034A0 - 0x070034A8 -static const Ambient debug_level_select_light_070034A0 = { - {{0x7f, 0x00, 0x00}, 0, {0x7f, 0x00, 0x00}, 0} -}; - -// 0x070034A8 - 0x070034B8 -static const Light debug_level_select_light_070034A8 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x00, 0x00, 0x50}, 0} -}; +// 0x070034A0 - 0x070034B8 +static const Lights1 debug_level_select_lights_070034A0 = gdSPDefLights1( + 0x7f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 +); // 0x070034B8 - 0x070035A8 static const Vtx debug_level_select_vertex_070034B8[] = { @@ -1356,9 +1322,7 @@ static const Vtx debug_level_select_vertex_07003D28[] = { // 0x07003DB8 - 0x07003FB0 const Gfx debug_level_select_dl_07003DB8[] = { gsDPPipeSync(), - gsSPNumLights(NUMLIGHTS_1), // I cannot tell if they meant to put 0 or 1 here. - gsSPLight(&debug_level_select_light_070034A8, 1), - gsSPLight(&debug_level_select_light_070034A0, 2), + gsSPSetLights1(debug_level_select_lights_070034A0), gsSPVertex(debug_level_select_vertex_070034B8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -1401,15 +1365,11 @@ const Gfx debug_level_select_dl_07003DB8[] = { gsSPEndDisplayList(), }; -// 0x07003FB0 - 0x07003FB8 -static const Ambient debug_level_select_light_07003FB0 = { - {{0x00, 0x00, 0x7f}, 0, {0x00, 0x00, 0x7f}, 0} -}; - -// 0x07003FB8 - 0x07003FC8 -static const Light debug_level_select_light_07003FB8 = { - {{0x00, 0x00, 0xff}, 0, {0x00, 0x00, 0xff}, 0, {0x00, 0x00, 0x50}, 0} -}; +// 0x07003FB0 - 0x07003FC8 +static const Lights1 debug_level_select_lights_07003FB0 = gdSPDefLights1( + 0x00, 0x00, 0x7f, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 +); // 0x07003FC8 - 0x070040B8 static const Vtx debug_level_select_vertex_07003FC8[] = { @@ -1598,9 +1558,7 @@ static const Vtx debug_level_select_vertex_07004838[] = { // 0x070048C8 - 0x07004AC0 const Gfx debug_level_select_dl_070048C8[] = { gsDPPipeSync(), - gsSPNumLights(NUMLIGHTS_1), // I cannot tell if they meant to put 0 or 1 here. - gsSPLight(&debug_level_select_light_07003FB8, 1), - gsSPLight(&debug_level_select_light_07003FB0, 2), + gsSPSetLights1(debug_level_select_lights_07003FB0), gsSPVertex(debug_level_select_vertex_07003FC8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -1643,15 +1601,11 @@ const Gfx debug_level_select_dl_070048C8[] = { gsSPEndDisplayList(), }; -// 0x07004AC0 - 0x07004AC8 -static const Ambient debug_level_select_light_07004AC0 = { - {{0x00, 0x59, 0x00}, 0, {0x00, 0x59, 0x00}, 0} -}; - -// 0x07004AC8 - 0x07004AD8 -static const Light debug_level_select_light_07004AC8 = { - {{0x00, 0xb2, 0x00}, 0, {0x00, 0xb2, 0x00}, 0, {0x00, 0x00, 0x50}, 0} -}; +// 0x07004AC0 - 0x07004AD8 +static const Lights1 debug_level_select_lights_07004AC0 = gdSPDefLights1( + 0x00, 0x59, 0x00, + 0x00, 0xb2, 0x00, 0x00, 0x00, 0x50 +); // 0x07004AD8 - 0x07004BC8 static const Vtx debug_level_select_vertex_07004AD8[] = { @@ -1872,9 +1826,7 @@ static const Vtx debug_level_select_vertex_07005528[] = { // 0x07005558 - 0x070057A0 const Gfx debug_level_select_dl_07005558[] = { gsDPPipeSync(), - gsSPNumLights(NUMLIGHTS_1), // I cannot tell if they meant to put 0 or 1 here. - gsSPLight(&debug_level_select_light_07004AC8, 1), - gsSPLight(&debug_level_select_light_07004AC0, 2), + gsSPSetLights1(debug_level_select_lights_07004AC0), gsSPVertex(debug_level_select_vertex_07004AD8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -1924,15 +1876,11 @@ const Gfx debug_level_select_dl_07005558[] = { gsSPEndDisplayList(), }; -// 0x070057A0 - 0x070057A8 -static const Ambient debug_level_select_light_070057A0 = { - {{0x7f, 0x00, 0x00}, 0, {0x7f, 0x00, 0x00}, 0} -}; - -// 0x070057A8 - 0x070057B8 -static const Light debug_level_select_light_070057A8 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x00, 0x00, 0x50}, 0} -}; +// 0x070057A0 - 0x070057B8 +static const Lights1 debug_level_select_lights_070057A0 = gdSPDefLights1( + 0x7f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x50 +); // 0x070057B8 - 0x070058A8 static const Vtx debug_level_select_vertex_070057B8[] = { @@ -1985,9 +1933,7 @@ static const Vtx debug_level_select_vertex_07005998[] = { // 0x070059F8 - 0x07005A98 const Gfx debug_level_select_dl_070059F8[] = { gsDPPipeSync(), - gsSPNumLights(NUMLIGHTS_1), // I cannot tell if they meant to put 0 or 1 here. - gsSPLight(&debug_level_select_light_070057A8, 1), - gsSPLight(&debug_level_select_light_070057A0, 2), + gsSPSetLights1(debug_level_select_lights_070057A0), gsSPVertex(debug_level_select_vertex_070057B8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -2001,15 +1947,11 @@ const Gfx debug_level_select_dl_070059F8[] = { gsSPEndDisplayList(), }; -// 0x07005A98 - 0x07005AA0 -static const Ambient debug_level_select_light_07005A98 = { - {{0x00, 0x00, 0x7f}, 0, {0x00, 0x00, 0x7f}, 0} -}; - -// 0x07005AA0 - 0x07005AB0 -static const Light debug_level_select_light_07005AA0 = { - {{0x00, 0x00, 0xff}, 0, {0x00, 0x00, 0xff}, 0, {0x00, 0x00, 0x50}, 0} -}; +// 0x07005A98 - 0x07005AB0 +static const Lights1 debug_level_select_lights_07005A98 = gdSPDefLights1( + 0x00, 0x00, 0x7f, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x50 +); // 0x07005AB0 - 0x07005BA0 static const Vtx debug_level_select_vertex_07005AB0[] = { @@ -2198,9 +2140,7 @@ static const Vtx debug_level_select_vertex_07006320[] = { // 0x070063B0 - 0x070065A8 const Gfx debug_level_select_dl_070063B0[] = { gsDPPipeSync(), - gsSPNumLights(NUMLIGHTS_1), // I cannot tell if they meant to put 0 or 1 here. - gsSPLight(&debug_level_select_light_07005AA0, 1), - gsSPLight(&debug_level_select_light_07005A98, 2), + gsSPSetLights1(debug_level_select_lights_07005A98), gsSPVertex(debug_level_select_vertex_07005AB0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/bin/eu/translation_de.c b/bin/eu/translation_de.c index 9d3de6b..6be959e 100644 --- a/bin/eu/translation_de.c +++ b/bin/eu/translation_de.c @@ -4,6 +4,10 @@ #include "make_const_nonconst.h" -#include "text/de/dialog.inc.c" -#include "text/de/level.inc.c" -#include "text/de/star.inc.c" +// Include text/define_text.inc.c, preprocessed with -I text/de/ to get the +// right translation strings, with symbols renamed as below. +#define seg2_course_name_table course_name_table_eu_de +#define seg2_act_name_table act_name_table_eu_de +#define seg2_dialog_table dialog_table_eu_de + +#include "text/de/define_text.inc.c" diff --git a/bin/eu/translation_en.c b/bin/eu/translation_en.c index 1bd8b1b..e6f2cac 100644 --- a/bin/eu/translation_en.c +++ b/bin/eu/translation_en.c @@ -4,6 +4,10 @@ #include "make_const_nonconst.h" -#include "text/en/dialog.inc.c" -#include "text/en/level.inc.c" -#include "text/en/star.inc.c" +// Include text/define_text.inc.c, preprocessed with -I text/us/ to get the +// right translation strings, with symbols renamed as below. +#define seg2_course_name_table course_name_table_eu_en +#define seg2_act_name_table act_name_table_eu_en +#define seg2_dialog_table dialog_table_eu_en + +#include "text/us/define_text.inc.c" diff --git a/bin/eu/translation_fr.c b/bin/eu/translation_fr.c index f4f49bb..ed0d057 100644 --- a/bin/eu/translation_fr.c +++ b/bin/eu/translation_fr.c @@ -4,6 +4,10 @@ #include "make_const_nonconst.h" -#include "text/fr/dialog.inc.c" -#include "text/fr/level.inc.c" -#include "text/fr/star.inc.c" +// Include text/define_text.inc.c, preprocessed with -I text/fr/ to get the +// right translation strings, with symbols renamed as below. +#define seg2_course_name_table course_name_table_eu_fr +#define seg2_act_name_table act_name_table_eu_fr +#define seg2_dialog_table dialog_table_eu_fr + +#include "text/fr/define_text.inc.c" diff --git a/bin/segment2.c b/bin/segment2.c index 522b485..5bcd359 100644 --- a/bin/segment2.c +++ b/bin/segment2.c @@ -2075,11 +2075,13 @@ const u8 *const main_hud_camera_lut[] = { texture_hud_char_arrow_up, texture_hud_char_arrow_down, }; -#ifndef VERSION_EU -#include "text/debug.inc.c" -#include "text/dialog.inc.c" -#include "text/level.inc.c" -#include "text/star.inc.c" +// If you change the language here, the following Makefile rule also needs to +// change, to generate the right version of define_text.inc.c: +// $(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/$(VERSION)/define_text.inc.c +#ifdef VERSION_JP +#include "text/jp/define_text.inc.c" +#elif defined(VERSION_US) +#include "text/us/define_text.inc.c" #endif UNUSED static const u64 segment2_unused_0 = 0; @@ -2489,16 +2491,11 @@ ALIGNED8 const u8 texture_waterbox_lava[] = { #include "textures/segment2/segment2.13C58.rgba16.inc.c" }; - -// Unreferenced light -UNUSED static const Ambient segment2_light_1 = { - {{0x40, 0x40, 0x40}, 0, {0x40, 0x40, 0x40}, 0} -}; - -// Unreferenced light -UNUSED static const Light segment2_light_2 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +static const Lights1 segment2_lights_unused = gdSPDefLights1( + 0x40, 0x40, 0x40, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x02014470 - 0x020144B0 static const Mtx matrix_identity = { @@ -2724,22 +2721,18 @@ const Gfx dl_ia8_up_arrow_end[] = { }; // 0x02014958 - 0x02014960 -static const Ambient seg2_light_02014958 = { - {{0x50, 0x50, 0x50}, 0, {0x50, 0x50, 0x50}, 0} -}; - -// 0x02014960 - 0x02014970 -static const Light seg2_light_02014960 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x32, 0x32, 0x32}, 0} -}; +static const Lights1 seg2_lights_02014958 = gdSPDefLights1( + 0x50, 0x50, 0x50, + 0xff, 0xff, 0xff, 0x32, 0x32, 0x32 +); // 0x02014970 - 0x020149A8 const Gfx dl_paintings_rippling_begin[] = { gsDPPipeSync(), gsSPSetGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA), - gsSPLight(&seg2_light_02014960, 1), - gsSPLight(&seg2_light_02014958, 2), + gsSPLight(&seg2_lights_02014958.l, 1), + gsSPLight(&seg2_lights_02014958.a, 2), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsSPEndDisplayList(), }; @@ -2757,8 +2750,8 @@ const Gfx dl_paintings_env_mapped_begin[] = { gsDPPipeSync(), gsSPSetGeometryMode(G_LIGHTING | G_TEXTURE_GEN), gsDPSetCombineMode(G_CC_DECALRGB, G_CC_DECALRGB), - gsSPLight(&seg2_light_02014960, 1), - gsSPLight(&seg2_light_02014958, 2), + gsSPLight(&seg2_lights_02014958.l, 1), + gsSPLight(&seg2_lights_02014958.a, 2), gsSPTexture(0x4000, 0x4000, 0, G_TX_RENDERTILE, G_ON), gsSPEndDisplayList(), }; diff --git a/data/behavior_data.c b/data/behavior_data.c index 7c2de5a..d0b5571 100644 --- a/data/behavior_data.c +++ b/data/behavior_data.c @@ -216,12 +216,12 @@ BC_B(0x2F), \ BC_PTR(type) -#define GRAVITY(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) \ +#define OBJ_PHYSICS(wallHitboxRadius, gravity, bounciness, drag, friction, buoyancy, unused1, unused2) \ BC_B(0x30), \ - BC_HH(arg1, arg2), \ - BC_HH(arg3, arg4), \ - BC_HH(arg5, arg6), \ - BC_HH(arg7, arg8) + BC_HH(wallHitboxRadius, gravity), \ + BC_HH(bounciness, drag), \ + BC_HH(friction, buoyancy), \ + BC_HH(unused1, unused2) #define SCALE(percent) \ BC_B0H(0x32, percent) @@ -243,9 +243,9 @@ // 0000 const BehaviorScript bhvStarDoor[] = { BEGIN(OBJ_LIST_SURFACE), - OBJ_SET_INT(oInteractType, 4), + OBJ_SET_INT(oInteractType, INTERACT_DOOR), COLLISION_DATA(inside_castle_seg7_collision_star_door), - OBJ_SET_INT(oInteractionSubtype, 32), + OBJ_SET_INT(oInteractionSubtype, INT_SUBTYPE_STAR_DOOR), OBJ_OR_INT(oFlags, (OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), SET_HITBOX(80, 100), OBJ_SET_POS(), @@ -291,8 +291,8 @@ const BehaviorScript bhvMrIParticle[] = { OBJ_SET_INT(oIntangibleTimer, 0), SET_HITBOX(50, 50), OBJ_SET_INT(oDamageOrCoinValue, 1), - OBJ_SET_INT(oInteractType, 8), - GRAVITY(0x001E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000), + OBJ_SET_INT(oInteractType, INTERACT_DAMAGE), + OBJ_PHYSICS(0x001E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000), CALLNATIVE(bhv_init_room), BEGIN_LOOP(), CALLNATIVE(bhv_mr_i_particle_loop), @@ -314,7 +314,7 @@ const BehaviorScript bhvPurpleParticle[] = { const BehaviorScript bhvGiantPole[] = { BEGIN(OBJ_LIST_POLELIKE), OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), - OBJ_SET_INT(oInteractType, 0x40), + OBJ_SET_INT(oInteractType, INTERACT_POLE), SET_HITBOX(0x0050, 0x0834), OBJ_SET_POS(), OBJ_SET_INT(oIntangibleTimer, 0), @@ -327,7 +327,7 @@ const BehaviorScript bhvGiantPole[] = { const BehaviorScript bhvPoleGrabbing[] = { BEGIN(OBJ_LIST_POLELIKE), OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), - OBJ_SET_INT(oInteractType, 0x40), + OBJ_SET_INT(oInteractType, INTERACT_POLE), SET_HITBOX(0x0050, 0x05DC), CALLNATIVE(bhv_pole_init), OBJ_SET_INT(oIntangibleTimer, 0), @@ -381,9 +381,9 @@ const BehaviorScript bhvKingBobomb[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_ANIMS(oAnimations, king_bobomb_seg5_anims_0500FE30), - OBJ_SET_INT(oInteractType, 0x02), + OBJ_SET_INT(oInteractType, INTERACT_GRABBABLE), SET_HITBOX(0x0064, 0x0064), - GRAVITY(0x001E, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), OBJ_SET_INT(oIntangibleTimer, 0), DROP_FLOOR(), OBJ_SET_POS(), @@ -565,7 +565,7 @@ const BehaviorScript bhvCannon[] = { BEGIN(OBJ_LIST_LEVEL), OBJ_OR_INT(oFlags, (OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_CHILD(MODEL_CANNON_BARREL, bhvCannonBarrel), - OBJ_SET_INT(oInteractType, 0x4000), + OBJ_SET_INT(oInteractType, INTERACT_CANNON_BASE), OBJ_ADD_FLOAT(oPosY, -340), OBJ_SET_POS(), SET_HITBOX(0x0096, 0x0096), @@ -604,9 +604,9 @@ const BehaviorScript bhvChuckya[] = { OBJ_OR_INT(oFlags, (OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_ANIMS(oAnimations, chuckya_seg8_anims_0800C070), ANIMATE(0x05), - OBJ_SET_INT(oInteractType, 0x02), + OBJ_SET_INT(oInteractType, INTERACT_GRABBABLE), SET_HITBOX(0x0096, 0x0064), - GRAVITY(0x001E, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), OBJ_SPAWN(MODEL_NONE, bhvChuckyaAnchorMario), OBJ_SET_INT(oNumLootCoins, 5), OBJ_SET_INT(oIntangibleTimer, 0), @@ -747,7 +747,7 @@ const BehaviorScript bhvKoopaShellUnderwater[] = { const BehaviorScript bhvExitPodiumWarp[] = { BEGIN(OBJ_LIST_SURFACE), OBJ_OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), - OBJ_SET_INT(oInteractType, 0x2000), + OBJ_SET_INT(oInteractType, INTERACT_WARP), DROP_FLOOR(), OBJ_SET_FLOAT(oCollisionDistance, 0x1F40), COLLISION_DATA(ttm_seg7_collision_podium_warp), @@ -762,9 +762,9 @@ const BehaviorScript bhvExitPodiumWarp[] = { // 075C const BehaviorScript bhvFadingWarp[] = { BEGIN(OBJ_LIST_LEVEL), - OBJ_SET_INT(oInteractionSubtype, 0x0001), + OBJ_SET_INT(oInteractionSubtype, INT_SUBTYPE_FADING_WARP), OBJ_OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), - OBJ_SET_INT(oInteractType, 0x2000), + OBJ_SET_INT(oInteractType, INTERACT_WARP), OBJ_SET_INT(oIntangibleTimer, 0), BEGIN_LOOP(), CALLNATIVE(BehFadingWarpLoop), @@ -775,7 +775,7 @@ const BehaviorScript bhvFadingWarp[] = { const BehaviorScript bhvWarp[] = { BEGIN(OBJ_LIST_LEVEL), OBJ_OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), - OBJ_SET_INT(oInteractType, 0x2000), + OBJ_SET_INT(oInteractType, INTERACT_WARP), OBJ_SET_INT(oIntangibleTimer, 0), BEGIN_LOOP(), CALLNATIVE(bhv_warp_loop), @@ -786,7 +786,7 @@ const BehaviorScript bhvWarp[] = { const BehaviorScript bhvWarpPipe[] = { BEGIN(OBJ_LIST_SURFACE), OBJ_OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), - OBJ_SET_INT(oInteractType, 0x2000), + OBJ_SET_INT(oInteractType, INTERACT_WARP), COLLISION_DATA(warp_pipe_seg3_collision_03009AC8), OBJ_SET_FLOAT(oDrawingDistance, 0x3E80), OBJ_SET_INT(oIntangibleTimer, 0), @@ -830,13 +830,13 @@ const BehaviorScript bhvUnused080C[] = { // 0830 const BehaviorScript bhvMrIBlueCoin[] = { BEGIN(OBJ_LIST_LEVEL), - OBJ_SET_INT(oInteractType, 0x10), + OBJ_SET_INT(oInteractType, INTERACT_COIN), OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), BILLBOARD(), OBJ_SET_INT(oIntangibleTimer, 0), OBJ_SET_FLOAT(oMrIUnk110, 0x0014), OBJ_SET_INT(oAnimState, -1), - GRAVITY(0x001E, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), CALLNATIVE(bhv_coin_init), OBJ_SET_INT(oDamageOrCoinValue, 0x0005), SET_HITBOX(0x0078, 0x0040), @@ -850,9 +850,9 @@ const BehaviorScript bhvMrIBlueCoin[] = { const BehaviorScript bhvCoinInsideBoo[] = { BEGIN(OBJ_LIST_LEVEL), SET_HITBOX(0x0064, 0x0040), - OBJ_SET_INT(oInteractType, 0x10), + OBJ_SET_INT(oInteractType, INTERACT_COIN), OBJ_OR_INT(oFlags, (OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), - GRAVITY(0x001E, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), BILLBOARD(), CALLNATIVE(bhv_init_room), BEGIN_LOOP(), @@ -937,7 +937,7 @@ const BehaviorScript bhvSingleCoinGetsSpawned[] = { OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), BILLBOARD(), CALLNATIVE(bhv_coin_init), - GRAVITY(0x001E, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_coin_loop), OBJ_ADD_INT(oAnimState, 1), @@ -1039,14 +1039,14 @@ const BehaviorScript bhvPunchTinyTriangleSpawn[] = { // 0AFC const BehaviorScript bhvDoorWarp[] = { BEGIN(OBJ_LIST_SURFACE), - OBJ_SET_INT(oInteractType, 0x800), + OBJ_SET_INT(oInteractType, INTERACT_WARP_DOOR), GOTO(bhvDoor + 1 + 1), }; // 0B0C const BehaviorScript bhvDoor[] = { BEGIN(OBJ_LIST_SURFACE), - OBJ_SET_INT(oInteractType, 0x04), + OBJ_SET_INT(oInteractType, INTERACT_DOOR), // .L13000B14: OBJ_OR_INT(oFlags, (OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_ANIMS(oAnimations, door_seg3_anims_030156C0), @@ -1332,7 +1332,7 @@ const BehaviorScript bhvEndPeach[] = { const BehaviorScript bhvUnusedParticleSpawn[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), - GRAVITY(0x001E, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), OBJ_SET_INT(oIntangibleTimer, 0), SET_HITBOX(0x0028, 0x0028), BEGIN_LOOP(), @@ -1375,7 +1375,7 @@ const BehaviorScript bhvUkikiCage[] = { OBJ_CHILD(MODEL_STAR, bhvUkikiCageStar), OBJ_CHILD(MODEL_NONE, bhvUkikiCageChild), OBJ_SET_FLOAT(oCollisionDistance, 0x4E20), - GRAVITY(0x001E, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_ukiki_cage_loop), END_LOOP(), @@ -1410,7 +1410,7 @@ const BehaviorScript bhvBitfsSinkingCagePlatform[] = { const BehaviorScript bhvDddMovingPole[] = { BEGIN(OBJ_LIST_POLELIKE), OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), - OBJ_SET_INT(oInteractType, 0x40), + OBJ_SET_INT(oInteractType, INTERACT_POLE), SET_HITBOX(0x0050, 0x02C6), OBJ_SET_INT(oIntangibleTimer, 0), BEGIN_LOOP(), @@ -1420,14 +1420,14 @@ const BehaviorScript bhvDddMovingPole[] = { }; // 1030 -const BehaviorScript bhvBitfsTiltingSquarePlatform[] = { +const BehaviorScript bhvBitfsTiltingInvertedPyramid[] = { BEGIN(OBJ_LIST_SURFACE), OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), COLLISION_DATA(bitfs_seg7_collision_inverted_pyramid), OBJ_SET_POS(), - CALLNATIVE(bhv_tilting_platform_init), + CALLNATIVE(bhv_platform_normals_init), BEGIN_LOOP(), - CALLNATIVE(bhv_tilting_platform_loop), + CALLNATIVE(bhv_tilting_inverted_pyramid_loop), CALLNATIVE(load_object_collision_model), END_LOOP(), }; @@ -1438,7 +1438,7 @@ const BehaviorScript bhvSquishablePlatform[] = { OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), COLLISION_DATA(bitfs_seg7_collision_squishable_platform), OBJ_SET_FLOAT(oCollisionDistance, 0x2710), - CALLNATIVE(bhv_tilting_platform_init), + CALLNATIVE(bhv_platform_normals_init), BEGIN_LOOP(), CALLNATIVE(bhv_squishable_platform_loop), CALLNATIVE(load_object_collision_model), @@ -1527,7 +1527,7 @@ const BehaviorScript bhvBouncingFireballFlame[] = { INTERACT_TYPE(INTERACT_FLAME), OBJ_SET_FLOAT(oGraphYOffset, 30), COLLISION_SPHERE(0x0032, 0x0019, 0x0019), - GRAVITY(0x001E, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), BILLBOARD(), BEGIN_LOOP(), CALLNATIVE(bhv_bouncing_fireball_flame_loop), @@ -1614,9 +1614,9 @@ const BehaviorScript bhvSpindrift[] = { OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_ANIMS(oAnimations, spindrift_seg5_anims_05002D68), ANIMATE(0x00), - GRAVITY(0x001E, 0xFE70, 0x0000, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0x0000, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), OBJ_SET_POS(), - OBJ_SET_INT(oInteractionSubtype, 0x0080), + OBJ_SET_INT(oInteractionSubtype, INT_SUBTYPE_TWIRL_BOUNCE), BEGIN_LOOP(), CALLNATIVE(bhv_spindrift_loop), END_LOOP(), @@ -1700,9 +1700,9 @@ const BehaviorScript bhvAnotherTiltingPlatform[] = { BEGIN(OBJ_LIST_SURFACE), OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_POS(), - CALLNATIVE(bhv_tilting_platform_init), + CALLNATIVE(bhv_platform_normals_init), BEGIN_LOOP(), - CALLNATIVE(bhv_tilting_platform_loop), + CALLNATIVE(bhv_tilting_inverted_pyramid_loop), CALLNATIVE(load_object_collision_model), END_LOOP(), }; @@ -1815,10 +1815,10 @@ const BehaviorScript bhvHeaveHo[] = { OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_ANIMS(oAnimations, heave_ho_seg5_anims_0501534C), ANIMATE(0x00), - GRAVITY(0x00C8, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x0258, 0x0000, 0x0000), + OBJ_PHYSICS(0x00C8, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x0258, 0x0000, 0x0000), OBJ_SPAWN(MODEL_NONE, bhvHeaveHoThrowMario), - OBJ_SET_INT(oInteractType, 0x02), - OBJ_SET_INT(oInteractionSubtype, 0x0204), + OBJ_SET_INT(oInteractType, INTERACT_GRABBABLE), + OBJ_SET_INT(oInteractionSubtype, INT_SUBTYPE_NOT_GRABBABLE | INT_SUBTYPE_GRABS_MARIO), SET_HITBOX(0x0078, 0x0064), OBJ_SET_POS(), OBJ_SET_INT(oIntangibleTimer, 0), @@ -1885,7 +1885,7 @@ const BehaviorScript bhvBetaTrampolineSpring[] = { const BehaviorScript bhvJumpingBox[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, (OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), - GRAVITY(0x001E, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x0258, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x0258, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_jumping_box_loop), END_LOOP(), @@ -1896,7 +1896,7 @@ const BehaviorScript bhvBooCage[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_FLOAT(oGraphYOffset, 0x000A), - GRAVITY(0x001E, 0xFE70, 0xFFCE, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFCE, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_boo_cage_loop), END_LOOP(), @@ -1927,7 +1927,7 @@ const BehaviorScript bhvBowserKey[] = { BEGIN(OBJ_LIST_LEVEL), OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), OBJ_SET_POS(), - GRAVITY(0x001E, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_bowser_key_loop), END_LOOP(), @@ -1938,7 +1938,7 @@ const BehaviorScript bhvGrandStar[] = { BEGIN(OBJ_LIST_LEVEL), OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), INTERACT_TYPE(INTERACT_STAR_OR_KEY), - OBJ_SET_INT(oInteractionSubtype, 0x0800), + OBJ_SET_INT(oInteractionSubtype, INT_SUBTYPE_GRAND_STAR), SET_HITBOX(0x00A0, 0x0064), OBJ_SET_POS(), BEGIN_LOOP(), @@ -1951,7 +1951,7 @@ const BehaviorScript bhvBetaBooKey[] = { BEGIN(OBJ_LIST_LEVEL), OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), SET_HITBOX(0x0020, 0x0040), - GRAVITY(0x001E, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_beta_boo_key_loop), END_LOOP(), @@ -1978,7 +1978,7 @@ const BehaviorScript bhvBulletBill[] = { OBJ_SET_INT(oDamageOrCoinValue, 3), SCALE(40), OBJ_SET_INT(oIntangibleTimer, 0), - GRAVITY(0x001E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000), CALLNATIVE(bhv_bullet_bill_init), BEGIN_LOOP(), CALLNATIVE(bhv_bullet_bill_loop), @@ -2020,7 +2020,7 @@ const BehaviorScript bhvBowserTailAnchor[] = { const BehaviorScript bhvBowser[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_HOLDABLE | OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), - OBJ_SET_INT(oInteractType, 0x02), + OBJ_SET_INT(oInteractType, INTERACT_GRABBABLE), SET_HITBOX(0x0190, 0x0190), DROP_FLOOR(), OBJ_SET_POS(), @@ -2029,7 +2029,7 @@ const BehaviorScript bhvBowser[] = { OBJ_CHILD(MODEL_BOWSER_BOMB_CHILD_OBJ, bhvBowserFlameSpawn), OBJ_SPAWN(MODEL_NONE, bhvBowserTailAnchor), OBJ_SET_INT(oNumLootCoins, 0x0032), - GRAVITY(0x0000, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0000, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), OBJ_SET_POS(), CALLNATIVE(bhv_bowser_init), BEGIN_LOOP(), @@ -2043,7 +2043,7 @@ const BehaviorScript bhvBowserBodyAnchor[] = { OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), SET_HITBOX(0x0064, 0x012C), INTERACT_TYPE(INTERACT_DAMAGE), - OBJ_SET_INT(oInteractionSubtype, 0x0008), + OBJ_SET_INT(oInteractionSubtype, INT_SUBTYPE_BIG_KNOCKBACK), GRAPH_CLEAR(), OBJ_SET_INT(oDamageOrCoinValue, 2), OBJ_SET_INT(oIntangibleTimer, 0), @@ -2096,7 +2096,7 @@ const BehaviorScript bhvBlueBowserFlame[] = { OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), INTERACT_TYPE(INTERACT_FLAME), BILLBOARD(), - GRAVITY(0x0000, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0000, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), CALLNATIVE(bhv_blue_bowser_flame_init), BEGIN_LOOP(), CALLNATIVE(bhv_blue_bowser_flame_loop), @@ -2110,7 +2110,7 @@ const BehaviorScript bhvFlameFloatingLanding[] = { OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), INTERACT_TYPE(INTERACT_FLAME), BILLBOARD(), - GRAVITY(0x0000, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0000, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), CALLNATIVE(bhv_flame_floating_landing_init), BEGIN_LOOP(), CALLNATIVE(bhv_flame_floating_landing_loop), @@ -2136,7 +2136,7 @@ const BehaviorScript bhvFlameBouncing[] = { INTERACT_TYPE(INTERACT_FLAME), BILLBOARD(), CALLNATIVE(bhv_flame_bouncing_init), - GRAVITY(0x0000, 0xFE70, 0xFFBA, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0000, 0xFE70, 0xFFBA, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_flame_bouncing_loop), TEXT_ANIM_RATE(oAnimState, 0x0002), @@ -2163,7 +2163,7 @@ const BehaviorScript bhvFlameBowser[] = { INTERACT_TYPE(INTERACT_FLAME), BILLBOARD(), CALLNATIVE(bhv_flame_bowser_init), - GRAVITY(0x0000, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0000, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_flame_bowser_loop), TEXT_ANIM_RATE(oAnimState, 0x0002), @@ -2177,7 +2177,7 @@ const BehaviorScript bhvFlameLargeBurningOut[] = { INTERACT_TYPE(INTERACT_FLAME), BILLBOARD(), CALLNATIVE(bhv_flame_large_burning_out_init), - GRAVITY(0x0000, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0000, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_flame_bowser_loop), TEXT_ANIM_RATE(oAnimState, 0x0002), @@ -2312,14 +2312,14 @@ const BehaviorScript bhvMacroUkiki[] = { BEGIN(OBJ_LIST_GENACTOR), // ukikiData: OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), - OBJ_SET_INT(oInteractType, 0x02), - OBJ_SET_INT(oInteractionSubtype, 0x0010), + OBJ_SET_INT(oInteractType, INTERACT_GRABBABLE), + OBJ_SET_INT(oInteractionSubtype, INT_SUBTYPE_HOLDABLE_NPC), SET_HITBOX(0x0028, 0x0028), OBJ_SET_INT(oIntangibleTimer, 0), DROP_FLOOR(), OBJ_SET_ANIMS(oAnimations, ukiki_seg5_anims_05015784), ANIMATE(0x00), - GRAVITY(0x001E, 0xFE70, 0xFFCE, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFCE, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), OBJ_SET_POS(), CALLNATIVE(bhv_ukiki_init), BEGIN_LOOP(), @@ -2479,15 +2479,15 @@ const BehaviorScript bhvLllSinkingSquarePlatforms[] = { }; // 1EF8 -const BehaviorScript bhvLllTiltingSquarePlatform[] = { +const BehaviorScript bhvLllTiltingInvertedPyramid[] = { BEGIN(OBJ_LIST_SURFACE), OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), COLLISION_DATA(lll_seg7_collision_inverted_pyramid), OBJ_ADD_FLOAT(oPosY, 5), OBJ_SET_POS(), - CALLNATIVE(bhv_tilting_platform_init), + CALLNATIVE(bhv_platform_normals_init), BEGIN_LOOP(), - CALLNATIVE(bhv_tilting_platform_loop), + CALLNATIVE(bhv_tilting_inverted_pyramid_loop), CALLNATIVE(load_object_collision_model), END_LOOP(), }; @@ -2503,7 +2503,7 @@ const BehaviorScript bhvUnused1F30[] = { const BehaviorScript bhvKoopaShell[] = { BEGIN(OBJ_LIST_LEVEL), OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), - GRAVITY(0x001E, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_koopa_shell_loop), END_LOOP(), @@ -2594,7 +2594,7 @@ const BehaviorScript bhvTuxiesMother[] = { OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_ANIMS(oAnimations, penguin_seg5_anims_05008B74), ANIMATE(0x03), - GRAVITY(0x001E, 0xFE70, 0xFFCE, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFCE, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000), OBJ_SET_POS(), INTERACT_TYPE(INTERACT_TEXT), SET_HITBOX(0x00C8, 0x012C), @@ -2623,9 +2623,9 @@ const BehaviorScript bhvSmallPenguin[] = { DROP_FLOOR(), OBJ_SET_ANIMS(oAnimations, penguin_seg5_anims_05008B74), ANIMATE(0x00), - GRAVITY(0x001E, 0xFE70, 0xFFCE, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), - OBJ_SET_INT(oInteractType, 0x02), - OBJ_SET_INT(oInteractionSubtype, 0x0010), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFCE, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), + OBJ_SET_INT(oInteractType, INTERACT_GRABBABLE), + OBJ_SET_INT(oInteractionSubtype, INT_SUBTYPE_HOLDABLE_NPC), OBJ_SET_INT(oIntangibleTimer, 0), SET_HITBOX(0x0028, 0x0028), OBJ_SET_POS(), @@ -2975,7 +2975,7 @@ const BehaviorScript bhvBlueCoinSwitch[] = { // 2588 const BehaviorScript bhvHiddenBlueCoin[] = { BEGIN(OBJ_LIST_LEVEL), - OBJ_SET_INT(oInteractType, 0x10), + OBJ_SET_INT(oInteractType, INTERACT_COIN), OBJ_OR_INT(oFlags, (OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), BILLBOARD(), SET_HITBOX(0x0064, 0x0040), @@ -3041,7 +3041,7 @@ const BehaviorScript bhvTornadoSandParticle[] = { const BehaviorScript bhvTornado[] = { BEGIN(OBJ_LIST_POLELIKE), OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), - GRAVITY(0x001E, 0xFE70, 0x0000, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0x0000, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), DROP_FLOOR(), OBJ_SET_POS(), BEGIN_LOOP(), @@ -3062,7 +3062,7 @@ const BehaviorScript bhvMerryGoRoundBooManager[] = { const BehaviorScript bhvAnimatedTexture[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), - GRAVITY(0x001E, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFBA, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), BILLBOARD(), BEGIN_LOOP(), CALLNATIVE(bhv_animated_texture_loop), @@ -3077,7 +3077,7 @@ const BehaviorScript bhvBooInCastle[] = { OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_POS(), OBJ_SET_FLOAT(oGraphYOffset, 0x003C), - GRAVITY(0x001E, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), CALLNATIVE(bhv_init_room), BEGIN_LOOP(), CALLNATIVE(bhv_boo_in_castle_loop), @@ -3093,7 +3093,7 @@ const BehaviorScript bhvBooWithCage[] = { OBJ_SET_FLOAT2(0x0050, 0x0078), SET_HITBOX(0x00B4, 0x008C), OBJ_SET_FLOAT(oGraphYOffset, 0x003C), - GRAVITY(0x001E, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), CALLNATIVE(bhv_boo_with_cage_init), CALLNATIVE(bhv_init_room), BEGIN_LOOP(), @@ -3124,7 +3124,7 @@ const BehaviorScript bhvGhostHuntBigBoo[] = { // common_big_boo_bhv: OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_POS(), - GRAVITY(0x001E, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), CALLNATIVE(bhv_init_room), CALLNATIVE(bhv_boo_init), BEGIN_LOOP(), @@ -3167,7 +3167,7 @@ const BehaviorScript bhvGhostHuntBoo[] = { OBJ_SET_FLOAT(oGraphYOffset, 30), CALLNATIVE(bhv_init_room), OBJ_CHILD(MODEL_YELLOW_COIN, bhvCoinInsideBoo), - GRAVITY(0x001E, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), CALLNATIVE(bhv_boo_init), BEGIN_LOOP(), CALLNATIVE(bhv_boo_loop), @@ -3362,7 +3362,7 @@ const BehaviorScript bhvTree[] = { BEGIN(OBJ_LIST_POLELIKE), BILLBOARD(), OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), - OBJ_SET_INT(oInteractType, 0x40), + OBJ_SET_INT(oInteractType, INTERACT_POLE), SET_HITBOX(0x0050, 0x01F4), OBJ_SET_INT(oIntangibleTimer, 0), BEGIN_LOOP(), @@ -3418,7 +3418,7 @@ const BehaviorScript bhvScuttlebug[] = { OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_ANIMS(oAnimations, scuttlebug_seg6_anims_06015064), ANIMATE(0x00), - GRAVITY(0x0050, 0xFE70, 0xFFCE, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0050, 0xFE70, 0xFFCE, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), OBJ_SET_POS(), CALLNATIVE(bhv_init_room), BEGIN_LOOP(), @@ -3452,7 +3452,7 @@ const BehaviorScript bhvSmallWhomp[] = { OBJ_SET_ANIMS(oAnimations, whomp_seg6_anims_06020A04), COLLISION_DATA(whomp_seg6_collision_06020A0C), ANIMATE(0x00), - GRAVITY(0x0000, 0xFE70, 0xFFCE, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0000, 0xFE70, 0xFFCE, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), OBJ_SET_POS(), BEGIN_LOOP(), CALLNATIVE(bhv_whomp_loop), @@ -3666,7 +3666,7 @@ const BehaviorScript bhvWalkingPenguin[] = { COLLISION_DATA(penguin_seg5_collision_05008B88), OBJ_SET_ANIMS(oAnimations, penguin_seg5_anims_05008B74), ANIMATE(0x00), - GRAVITY(0x0000, 0xFE70, 0xFFCE, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0000, 0xFE70, 0xFFCE, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), SCALE(600), OBJ_SET_POS(), BEGIN_LOOP(), @@ -3866,7 +3866,7 @@ const BehaviorScript bhvMovingYellowCoin[] = { OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), BILLBOARD(), SET_HITBOX(0x0064, 0x0040), - OBJ_SET_INT(oInteractType, 0x10), + OBJ_SET_INT(oInteractType, INTERACT_COIN), OBJ_SET_INT(oIntangibleTimer, 0), OBJ_SET_INT(oAnimState, -1), CALLNATIVE(bhv_moving_yellow_coin_init), @@ -4043,7 +4043,7 @@ const BehaviorScript bhvMessagePanel[] = { OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), COLLISION_DATA(wooden_signpost_seg3_collision_0302DD80), INTERACT_TYPE(INTERACT_TEXT), - OBJ_SET_INT(oInteractionSubtype, 0x1000), + OBJ_SET_INT(oInteractionSubtype, INT_SUBTYPE_SIGN), DROP_FLOOR(), SET_HITBOX(0x0096, 0x0050), OBJ_SET_INT(oWoodenPostTotalMarioAngle, 0), @@ -4059,7 +4059,7 @@ const BehaviorScript bhvSignOnWall[] = { BEGIN(OBJ_LIST_SURFACE), OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), INTERACT_TYPE(INTERACT_TEXT), - OBJ_SET_INT(oInteractionSubtype, 0x1000), + OBJ_SET_INT(oInteractionSubtype, INT_SUBTYPE_SIGN), SET_HITBOX(0x0096, 0x0050), OBJ_SET_INT(oWoodenPostTotalMarioAngle, 0), BEGIN_LOOP(), @@ -4114,7 +4114,7 @@ const BehaviorScript bhvHoot[] = { BEGIN(OBJ_LIST_POLELIKE), OBJ_OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_ANIMS(oAnimations, hoot_seg5_anims_05005768), - OBJ_SET_INT(oInteractType, 0x01), + OBJ_SET_INT(oInteractType, INTERACT_HOOT), SET_HITBOX(0x004B, 0x004B), CALLNATIVE(bhv_hoot_init), BEGIN_LOOP(), @@ -4126,7 +4126,7 @@ const BehaviorScript bhvHoot[] = { const BehaviorScript bhvBetaHoldableObject[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, (OBJ_FLAG_HOLDABLE | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), - OBJ_SET_INT(oInteractType, 0x02), // INTERACT_GRABBABLE + OBJ_SET_INT(oInteractType, INTERACT_GRABBABLE), DROP_FLOOR(), SET_HITBOX(0x0028, 0x0032), CALLNATIVE(bhv_beta_holdable_object_init), @@ -5383,7 +5383,7 @@ const BehaviorScript bhvMips[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, (OBJ_FLAG_HOLDABLE | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_ANIMS(oAnimations, mips_seg6_anims_06015634), - OBJ_SET_INT(oInteractType, 0x02), + OBJ_SET_INT(oInteractType, INTERACT_GRABBABLE), DROP_FLOOR(), SET_HITBOX(0x0032, 0x004B), OBJ_SET_INT(oIntangibleTimer, 0), @@ -5418,7 +5418,7 @@ const BehaviorScript bhvKoopa[] = { OBJ_SET_ANIMS(oAnimations, koopa_seg6_anims_06011364), ANIMATE(0x09), OBJ_SET_POS(), - GRAVITY(0x0032, 0xFE70, 0x0000, 0x0000, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0032, 0xFE70, 0x0000, 0x0000, 0x03E8, 0x00C8, 0x0000, 0x0000), SCALE(150), OBJ_SET_FLOAT(oKoopaAgility, 1), CALLNATIVE(bhv_koopa_init), @@ -5459,7 +5459,7 @@ const BehaviorScript bhvPokey[] = { OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), DROP_FLOOR(), OBJ_SET_POS(), - GRAVITY(0x003C, 0xFE70, 0x0000, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x003C, 0xFE70, 0x0000, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_pokey_update), END_LOOP(), @@ -5469,7 +5469,7 @@ const BehaviorScript bhvPokey[] = { const BehaviorScript bhvPokeyBodyPart[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), - GRAVITY(0x003C, 0xFE70, 0x0000, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x003C, 0xFE70, 0x0000, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), BILLBOARD(), BEGIN_LOOP(), CALLNATIVE(bhv_pokey_body_part_update), @@ -5482,7 +5482,7 @@ const BehaviorScript bhvSwoop[] = { OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_ANIMS(oAnimations, swoop_seg6_anims_060070D0), OBJ_SET_POS(), - GRAVITY(0x0032, 0x0000, 0xFFCE, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000), + OBJ_PHYSICS(0x0032, 0x0000, 0xFFCE, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000), CALLNATIVE(bhv_init_room), SCALE(0), BEGIN_LOOP(), @@ -5497,9 +5497,9 @@ const BehaviorScript bhvFlyGuy[] = { OBJ_SET_ANIMS(oAnimations, flyguy_seg8_anims_08011A64), ANIMATE(0x00), OBJ_SET_POS(), - GRAVITY(0x0032, 0x0000, 0x0000, 0x0000, 0x03E8, 0x0258, 0x0000, 0x0000), + OBJ_PHYSICS(0x0032, 0x0000, 0x0000, 0x0000, 0x03E8, 0x0258, 0x0000, 0x0000), CALLNATIVE(bhv_init_room), - OBJ_SET_INT(oInteractionSubtype, 0x0080), + OBJ_SET_INT(oInteractionSubtype, INT_SUBTYPE_TWIRL_BOUNCE), OBJ_SET_FLOAT(oGraphYOffset, 30), SCALE(150), BEGIN_LOOP(), @@ -5514,7 +5514,7 @@ const BehaviorScript bhvGoomba[] = { DROP_FLOOR(), OBJ_SET_ANIMS(oAnimations, goomba_seg8_anims_0801DA4C), OBJ_SET_POS(), - GRAVITY(0x0028, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x0000, 0x0000, 0x0000), + OBJ_PHYSICS(0x0028, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x0000, 0x0000, 0x0000), CALLNATIVE(bhv_goomba_init), BEGIN_LOOP(), CALLNATIVE(bhv_goomba_update), @@ -5538,7 +5538,7 @@ const BehaviorScript bhvChainChomp[] = { DROP_FLOOR(), OBJ_SET_ANIMS(oAnimations, chain_chomp_seg6_anims_06025178), ANIMATE(0x00), - GRAVITY(0x0000, 0xFE70, 0xFFCE, 0x0000, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0000, 0xFE70, 0xFFCE, 0x0000, 0x03E8, 0x00C8, 0x0000, 0x0000), UNHIDE(), OBJ_SET_POS(), OBJ_SET_FLOAT(oGraphYOffset, 0x00F0), @@ -5554,7 +5554,7 @@ const BehaviorScript bhvChainChompChainPart[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), BILLBOARD(), - GRAVITY(0x0000, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0000, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), OBJ_SET_FLOAT(oGraphYOffset, 0x0028), SCALE(200), BEGIN_LOOP(), @@ -5567,7 +5567,7 @@ const BehaviorScript bhvWoodenPost[] = { BEGIN(OBJ_LIST_SURFACE), COLLISION_DATA(poundable_pole_collision_06002490), OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), - GRAVITY(0x0000, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0000, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), OBJ_SET_INT(oNumLootCoins, 5), DROP_FLOOR(), OBJ_SET_POS(), @@ -5597,7 +5597,7 @@ const BehaviorScript bhvWigglerHead[] = { DROP_FLOOR(), OBJ_SET_ANIMS(oAnimations, wiggler_seg5_anims_0500EC8C), OBJ_SET_POS(), - GRAVITY(0x003C, 0xFE70, 0x0000, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x003C, 0xFE70, 0x0000, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), UNHIDE(), SCALE(400), OBJ_SET_FLOAT(oWigglerFallThroughFloorsHeight, 5000), @@ -5611,7 +5611,7 @@ const BehaviorScript bhvWigglerBody[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), OBJ_SET_ANIMS(oAnimations, wiggler_seg5_anims_0500C874), - GRAVITY(0x0000, 0xFE70, 0x0000, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0000, 0xFE70, 0x0000, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), SCALE(400), BEGIN_LOOP(), CALLNATIVE(bhv_wiggler_body_part_update), @@ -5625,7 +5625,7 @@ const BehaviorScript bhvEnemyLakitu[] = { OBJ_SET_ANIMS(oAnimations, lakitu_enemy_seg5_anims_050144D4), ANIMATE(0x00), OBJ_SET_POS(), - GRAVITY(0x0028, 0x0000, 0xFFCE, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0028, 0x0000, 0xFFCE, 0x0000, 0x0000, 0x00C8, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_enemy_lakitu_update), END_LOOP(), @@ -5672,7 +5672,7 @@ const BehaviorScript bhvSpiny[] = { OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_ANIMS(oAnimations, spiny_seg5_anims_05016EAC), ANIMATE(0x00), - GRAVITY(0x0028, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0028, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_spiny_update), END_LOOP(), @@ -5685,7 +5685,7 @@ const BehaviorScript bhvMontyMole[] = { DROP_FLOOR(), OBJ_SET_ANIMS(oAnimations, monty_mole_seg5_anims_05007248), ANIMATE(0x03), - GRAVITY(0x001E, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), UNHIDE(), OBJ_SET_INT(oIntangibleTimer, -1), OBJ_SET_FLOAT(oGraphYOffset, 0xFFC4), @@ -5713,7 +5713,7 @@ const BehaviorScript bhvMontyMoleRock[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), BILLBOARD(), - GRAVITY(0x001E, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), OBJ_SET_FLOAT(oGraphYOffset, 0x000A), SCALE(200), BEGIN_LOOP(), @@ -5725,7 +5725,7 @@ const BehaviorScript bhvMontyMoleRock[] = { const BehaviorScript bhvPlatformOnTrack[] = { BEGIN(OBJ_LIST_SURFACE), OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), - GRAVITY(0x0032, 0xFF9C, 0xFFCE, 0x0064, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0032, 0xFF9C, 0xFFCE, 0x0064, 0x03E8, 0x00C8, 0x0000, 0x0000), CALLNATIVE(bhv_init_room), CALLNATIVE(bhv_platform_on_track_init), BEGIN_LOOP(), @@ -5793,7 +5793,7 @@ const BehaviorScript bhvWaterBombSpawner[] = { const BehaviorScript bhvWaterBomb[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), - GRAVITY(0x0078, 0xFE70, 0x0000, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0078, 0xFE70, 0x0000, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_water_bomb_update), END_LOOP(), @@ -5937,7 +5937,7 @@ const BehaviorScript bhvMrBlizzard[] = { OBJ_SET_ANIMS(oAnimations, snowman_seg5_anims_0500D118), ANIMATE(0x00), OBJ_SET_POS(), - GRAVITY(0x001E, 0xFE70, 0x0000, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFE70, 0x0000, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), CALLNATIVE(bhv_mr_blizzard_init), OBJ_SET_FLOAT(oMrBlizzardUnkF4, 1), BEGIN_LOOP(), @@ -5950,7 +5950,7 @@ const BehaviorScript bhvMrBlizzardSnowball[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), BILLBOARD(), - GRAVITY(0x001E, 0xFED4, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0xFED4, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), SCALE(200), OBJ_ADD_INT(oMoveAngleYaw, -0x5B58), OBJ_SET_FLOAT(oForwardVel, 5), @@ -6082,7 +6082,7 @@ const BehaviorScript bhvHauntedChair[] = { DROP_FLOOR(), OBJ_SET_ANIMS(oAnimations, chair_seg5_anims_05005784), ANIMATE(0x00), - GRAVITY(0x0028, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0028, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), OBJ_SET_POS(), CALLNATIVE(bhv_init_room), CALLNATIVE(bhv_haunted_chair_init), @@ -6097,7 +6097,7 @@ const BehaviorScript bhvMadPiano[] = { OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), DROP_FLOOR(), OBJ_SET_ANIMS(oAnimations, mad_piano_seg5_anims_05009B14), - GRAVITY(0x0028, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0028, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), OBJ_SET_POS(), OBJ_ADD_INT(oMoveAngleYaw, 0x4000), CALLNATIVE(bhv_init_room), @@ -6112,7 +6112,7 @@ const BehaviorScript bhvFlyingBookend[] = { OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_ANIMS(oAnimations, bookend_seg5_anims_05002540), ANIMATE(0x00), - GRAVITY(0x003C, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x003C, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), OBJ_SET_INT(oMoveFlags, 0), SCALE(70), CALLNATIVE(bhv_init_room), @@ -6174,7 +6174,7 @@ const BehaviorScript bhvSmallPiranhaFlame[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), BILLBOARD(), - GRAVITY(0x001E, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_small_piranha_flame_loop), OBJ_ADD_INT(oAnimState, 1), @@ -6197,7 +6197,7 @@ const BehaviorScript bhvFlyguyFlame[] = { BEGIN(OBJ_LIST_UNIMPORTANT), OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), BILLBOARD(), - GRAVITY(0x0000, 0x00C8, 0x0000, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0000, 0x00C8, 0x0000, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_fly_guy_flame_loop), OBJ_ADD_INT(oAnimState, 1), @@ -6209,7 +6209,7 @@ const BehaviorScript bhvSnufit[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_POS(), - GRAVITY(0x001E, 0x0000, 0xFFCE, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000), + OBJ_PHYSICS(0x001E, 0x0000, 0xFFCE, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000), CALLNATIVE(bhv_init_room), BEGIN_LOOP(), OBJ_SET_INT(oSnufitUnkF4, 0), @@ -6222,7 +6222,7 @@ const BehaviorScript bhvSnufitBalls[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), BILLBOARD(), - GRAVITY(0x000A, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x000A, 0x0000, 0xFFCE, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), CALLNATIVE(bhv_init_room), OBJ_SET_FLOAT(oGraphYOffset, 0x000A), SCALE(10), @@ -6238,7 +6238,7 @@ const BehaviorScript bhvHorizontalGrindel[] = { OBJ_OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), DROP_FLOOR(), OBJ_SET_POS(), - GRAVITY(0x0028, 0xFE70, 0x0000, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0028, 0xFE70, 0x0000, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), SCALE(90), CALLNATIVE(bhv_horizontal_grindel_init), BEGIN_LOOP(), @@ -6264,7 +6264,7 @@ const BehaviorScript bhvEyerokHand[] = { OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_ANIMS(oAnimations, eyerok_seg5_anims_050116E4), ANIMATE(0x06), - GRAVITY(0x0096, 0x0000, 0x0000, 0x0000, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0096, 0x0000, 0x0000, 0x0000, 0x03E8, 0x00C8, 0x0000, 0x0000), OBJ_SET_POS(), OBJ_SET_INT(oAnimState, 3), BEGIN_LOOP(), @@ -6278,7 +6278,7 @@ const BehaviorScript bhvKlepto[] = { OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_ANIMS(oAnimations, klepto_seg5_anims_05008CFC), ANIMATE(0x00), - GRAVITY(0x0064, 0x0000, 0xFFEC, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0064, 0x0000, 0xFFEC, 0x03E8, 0x03E8, 0x00C8, 0x0000, 0x0000), OBJ_SET_POS(), CALLNATIVE(bhv_klepto_init), BEGIN_LOOP(), @@ -6305,7 +6305,7 @@ const BehaviorScript bhvRacingPenguin[] = { OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_ANIMS(oAnimations, penguin_seg5_anims_05008B74), ANIMATE(0x03), - GRAVITY(0x012C, 0xFCE0, 0xFFFB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000), + OBJ_PHYSICS(0x012C, 0xFCE0, 0xFFFB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000), SCALE(400), CALLNATIVE(bhv_racing_penguin_init), BEGIN_LOOP(), @@ -6371,7 +6371,7 @@ const BehaviorScript bhvSkeeter[] = { OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_ANIMS(oAnimations, skeeter_seg6_anims_06007DE0), OBJ_SET_POS(), - GRAVITY(0x00B4, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x04B0, 0x0000, 0x0000), + OBJ_PHYSICS(0x00B4, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x04B0, 0x0000, 0x0000), BEGIN_LOOP(), CALLNATIVE(bhv_skeeter_update), END_LOOP(), @@ -6457,7 +6457,7 @@ const BehaviorScript bhvTripletButterfly[] = { ANIMATE(0x00), UNHIDE(), OBJ_SET_POS(), - GRAVITY(0x0000, 0x0000, 0x0000, 0x0000, 0x03E8, 0x00C8, 0x0000, 0x0000), + OBJ_PHYSICS(0x0000, 0x0000, 0x0000, 0x0000, 0x03E8, 0x00C8, 0x0000, 0x0000), OBJ_SET_FLOAT(oTripletButterflyScale, 1), BEGIN_LOOP(), CALLNATIVE(bhv_triplet_butterfly_update), @@ -6469,7 +6469,7 @@ const BehaviorScript bhvBubba[] = { BEGIN(OBJ_LIST_GENACTOR), OBJ_OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OBJ_SET_POS(), - GRAVITY(0x00C8, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x0000, 0x0000, 0x0000), + OBJ_PHYSICS(0x00C8, 0xFE70, 0xFFCE, 0x03E8, 0x03E8, 0x0000, 0x0000, 0x0000), SCALE(50), BEGIN_LOOP(), CALLNATIVE(bhv_bubba_loop), diff --git a/diff-settings.sh b/diff-settings.sh deleted file mode 100644 index 72be4dc..0000000 --- a/diff-settings.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env bash - -LANG=us - -POSITIONAL=() -while [[ $# -gt 0 ]]; do -case "$1" in - -j) - LANG=jp - shift - ;; - -u) - LANG=us - shift - ;; - -e) - LANG=eu - shift - ;; - -a) - # Use an alternate dump file as the base. - shift - ALT_DUMP="$1" - shift - ;; - *) - POSITIONAL+=("$1") - shift - ;; -esac -done -set -- "${POSITIONAL[@]}" - -BASEROM=baserom.$LANG -MAPFILE="build/$LANG/sm64.$LANG.map" -MYDUMP=sm64.$LANG.dump -MYIMG=build/$LANG/sm64.$LANG.z64 -BASEDUMP="${ALT_DUMP:-${BASEROM}.dump}" -BASEIMG=$BASEROM.z64 -MAKEFLAGS="-j VERSION=$LANG" diff --git a/diff.py b/diff.py new file mode 100644 index 0000000..d97ad36 --- /dev/null +++ b/diff.py @@ -0,0 +1,737 @@ +#!/usr/bin/env python3 +import sys +import re +import os +import ast +import argparse +import subprocess +import difflib +import string +import itertools +import threading +import queue +import time + +def fail(msg): + print(msg, file=sys.stderr) + sys.exit(1) + +try: + import attr + from colorama import Fore, Style, Back + import ansiwrap + import watchdog +except ModuleNotFoundError as e: + fail(f"Missing prerequisite python module {e.name}. " + "Run `python3 -m pip install --user colorama ansiwrap attrs watchdog` to install prerequisites.") + +# Prefer to use diff_settings.py from the current working directory +sys.path.insert(0, '.') +try: + import diff_settings +except ModuleNotFoundError: + fail("Unable to find diff_settings.py in the same directory.") + +# ==== CONFIG ==== + +parser = argparse.ArgumentParser( + description="Diff MIPS assembly.") +parser.add_argument('start', + help="Function name or address to start diffing from.") +parser.add_argument('end', nargs='?', + help="Address to end diff at.") +parser.add_argument('-o', dest='diff_obj', action='store_true', + help="Diff .o files rather than a whole binary. This makes it possible to see symbol names. (Recommended)") +parser.add_argument('--base-asm', dest='base_asm', metavar='FILE', + help="Read assembly from given file instead of configured base img.") +parser.add_argument('--write-asm', dest='write_asm', metavar='FILE', + help="Write the current assembly output to file, e.g. for use with --base-asm.") +parser.add_argument('-m', '--make', dest='make', action='store_true', + help="Automatically run 'make' on the .o file or binary before diffing.") +parser.add_argument('-l', '--skip-lines', dest='skip_lines', type=int, default=0, + help="Skip the first N lines of output.") +parser.add_argument('-s', '--stop-jr-ra', dest='stop_jrra', action='store_true', + help="Stop disassembling at the first 'jr ra'. Some functions have multiple return points, so use with care!") +parser.add_argument('-i', '--ignore-large-imms', dest='ignore_large_imms', action='store_true', + help="Pretend all large enough immediates are the same.") +parser.add_argument('-B', '--no-show-branches', dest='show_branches', action='store_false', + help="Don't visualize branches/branch targets.") +parser.add_argument('-S', '--base-shift', dest='base_shift', type=str, default='0', + help="Diff position X in our img against position X + shift in the base img. " + "Arithmetic is allowed, so e.g. |-S \"0x1234 - 0x4321\"| is a reasonable " + "flag to pass if it is known that position 0x1234 in the base img syncs " + "up with position 0x4321 in our img. Not supported together with -o.") +parser.add_argument('-w', '--watch', dest='watch', action='store_true', + help="Automatically update when source/object files change. " + "Recommended in combination with -m.") +parser.add_argument('--width', dest='column_width', type=int, default=50, + help="Sets the width of the left and right view column.") + +# Project-specific flags, e.g. different versions/make arguments. +if hasattr(diff_settings, "add_custom_arguments"): + diff_settings.add_custom_arguments(parser) + +args = parser.parse_args() + +# Set imgs, map file and make flags in a project-specific manner. +config = {} +diff_settings.apply(config, args) + +baseimg = config.get('baseimg', None) +myimg = config.get('myimg', None) +mapfile = config.get('mapfile', None) +makeflags = config.get('makeflags', []) +source_directories = config.get('source_directories', None) + +MAX_FUNCTION_SIZE_LINES = 1024 +MAX_FUNCTION_SIZE_BYTES = 1024 * 4 + +COLOR_ROTATION = [ + Fore.MAGENTA, + Fore.CYAN, + Fore.GREEN, + Fore.RED, + Fore.LIGHTYELLOW_EX, + Fore.LIGHTMAGENTA_EX, + Fore.LIGHTCYAN_EX, + Fore.LIGHTGREEN_EX, + Fore.LIGHTBLACK_EX, +] + +BUFFER_CMD = ["tail", "-c", str(10**9)] +LESS_CMD = ["less", "-Ric"] + +DEBOUNCE_DELAY = 0.1 +FS_WATCH_EXTENSIONS = ['.c', '.h'] + +# ==== LOGIC ==== + +binutils_prefix = None + +for binutils_cand in ['mips-linux-gnu-', 'mips64-elf-']: + try: + subprocess.check_call([binutils_cand + "objdump", "--version"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) + binutils_prefix = binutils_cand + break + except subprocess.CalledProcessError: + pass + except FileNotFoundError: + pass + +if not binutils_prefix: + fail("Missing binutils; please ensure mips-linux-gnu-objdump or mips64-elf-objdump exist.") + +def eval_int(expr, emsg=None): + try: + ret = ast.literal_eval(expr) + if not isinstance(ret, int): + raise Exception("not an integer") + return ret + except Exception: + if emsg is not None: + fail(emsg) + return None + +def run_make(target, capture_output=False): + if capture_output: + return subprocess.run(["make"] + makeflags + [target], stderr=subprocess.PIPE, stdout=subprocess.PIPE) + else: + subprocess.check_call(["make"] + makeflags + [target]) + +def restrict_to_function(dump, fn_name): + out = [] + search = f'<{fn_name}>:' + found = False + for line in dump.split('\n'): + if found: + if len(out) >= MAX_FUNCTION_SIZE_LINES: + break + out.append(line) + elif search in line: + found = True + return '\n'.join(out) + +def run_objdump(cmd): + flags, target, restrict = cmd + out = subprocess.check_output([binutils_prefix + "objdump"] + flags + [target], universal_newlines=True) + if restrict is not None: + return restrict_to_function(out, restrict) + return out + +base_shift = eval_int(args.base_shift, "Failed to parse --base-shift (-S) argument as an integer.") + +def search_map_file(fn_name): + if not mapfile: + fail(f"No map file configured; cannot find function {fn_name}.") + + try: + with open(mapfile) as f: + lines = f.read().split('\n') + except Exception: + fail(f"Failed to open map file {mapfile} for reading.") + + try: + cur_objfile = None + ram_to_rom = None + cands = [] + last_line = '' + for line in lines: + if line.startswith(' .text'): + cur_objfile = line.split()[3] + if 'load address' in line: + tokens = last_line.split() + line.split() + ram = int(tokens[1], 0) + rom = int(tokens[5], 0) + ram_to_rom = rom - ram + if line.endswith(' ' + fn_name): + ram = int(line.split()[0], 0) + if cur_objfile is not None and ram_to_rom is not None: + cands.append((cur_objfile, ram + ram_to_rom)) + last_line = line + except Exception as e: + import traceback + traceback.print_exc() + fail(f"Internal error while parsing map file") + + if len(cands) > 1: + fail(f"Found multiple occurrences of function {fn_name} in map file.") + if len(cands) == 1: + return cands[0] + return None, None + +def dump_objfile(): + if base_shift: + fail("--base-shift not compatible with -o") + if args.end is not None: + fail("end address not supported together with -o") + if args.start.startswith('0'): + fail("numerical start address not supported with -o; pass a function name") + + objfile, _ = search_map_file(args.start) + if not objfile: + fail("Not able to find .o file for function.") + + if args.make: + run_make(objfile) + + if not os.path.isfile(objfile): + fail("Not able to find .o file for function.") + + refobjfile = "expected/" + objfile + if not os.path.isfile(refobjfile): + fail(f'Please ensure an OK .o file exists at "{refobjfile}".') + + objdump_flags = ["-drz"] + return ( + objfile, + (objdump_flags, refobjfile, args.start), + (objdump_flags, objfile, args.start) + ) + +def dump_binary(): + if not baseimg or not myimg: + fail("Missing myimg/baseimg in config.") + if args.make: + run_make(myimg) + start_addr = eval_int(args.start) + if start_addr is None: + _, start_addr = search_map_file(args.start) + if start_addr is None: + fail("Not able to find function in map file.") + if args.end is not None: + end_addr = eval_int(args.end, "End address must be an integer expression.") + else: + end_addr = start_addr + MAX_FUNCTION_SIZE_BYTES + objdump_flags = ['-Dz', '-bbinary', '-mmips', '-EB'] + flags1 = [f"--start-address={start_addr + base_shift}", f"--stop-address={end_addr + base_shift}"] + flags2 = [f"--start-address={start_addr}", f"--stop-address={end_addr}"] + return ( + myimg, + (objdump_flags + flags1, baseimg, None), + (objdump_flags + flags2, myimg, None) + ) + +# Alignment with ANSI colors is broken, let's fix it. +def ansi_ljust(s, width): + needed = width - ansiwrap.ansilen(s) + if needed > 0: + return s + ' ' * needed + else: + return s + +re_int = re.compile(r'[0-9]+') +re_comments = re.compile(r'<.*?>') +re_regs = re.compile(r'\b(a[0-3]|t[0-9]|s[0-7]|at|v[01]|f[12]?[0-9]|f3[01]|fp)\b') +re_sprel = re.compile(r',([1-9][0-9]*|0x[1-9a-f][0-9a-f]*)\(sp\)') +re_large_imm = re.compile(r'-?[1-9][0-9]{2,}|-?0x[0-9a-f]{3,}') +forbidden = set(string.ascii_letters + '_') +branch_likely_instructions = set([ + 'beql', 'bnel', 'beqzl', 'bnezl', 'bgezl', 'bgtzl', 'blezl', 'bltzl', + 'bc1tl', 'bc1fl' +]) +branch_instructions = set([ + 'b', 'beq', 'bne', 'beqz', 'bnez', 'bgez', 'bgtz', 'blez', 'bltz', + 'bc1t', 'bc1f' +] + list(branch_likely_instructions)) + +def hexify_int(row, pat): + full = pat.group(0) + if len(full) <= 1: + # leave one-digit ints alone + return full + start, end = pat.span() + if start and row[start - 1] in forbidden: + return full + if end < len(row) and row[end] in forbidden: + return full + return hex(int(full)) + +def parse_relocated_line(line): + try: + ind2 = line.rindex(',') + except ValueError: + ind2 = line.rindex('\t') + before = line[:ind2+1] + after = line[ind2+1:] + ind2 = after.find('(') + if ind2 == -1: + imm, after = after, '' + else: + imm, after = after[:ind2], after[ind2:] + if imm == '0x0': + imm = '0' + return before, imm, after + +def process_reloc(row, prev): + before, imm, after = parse_relocated_line(prev) + repl = row.split()[-1] + if imm != '0': + if before.strip() == 'jal' and not imm.startswith('0x'): + imm = '0x' + imm + repl += '+' + imm if int(imm,0) > 0 else imm + if 'R_MIPS_LO16' in row: + repl = f'%lo({repl})' + elif 'R_MIPS_HI16' in row: + # Ideally we'd pair up R_MIPS_LO16 and R_MIPS_HI16 to generate a + # correct addend for each, but objdump doesn't give us the order of + # the relocations, so we can't find the right LO16. :( + repl = f'%hi({repl})' + else: + assert 'R_MIPS_26' in row, f"unknown relocation type '{row}'" + return before + repl + after + +def process(lines): + mnemonics = [] + diff_rows = [] + skip_next = False + originals = [] + line_nums = [] + branch_targets = [] + if not args.diff_obj: + lines = lines[7:] + if lines and not lines[-1]: + lines.pop() + + for row in lines: + if args.diff_obj and ('>:' in row or not row): + continue + + if 'R_MIPS_' in row: + if diff_rows[-1] != '': + diff_rows[-1] = process_reloc(row, diff_rows[-1]) + originals[-1] = process_reloc(row, originals[-1]) + continue + + row = re.sub(re_comments, '', row) + row = row.rstrip() + tabs = row.split('\t') + row = '\t'.join(tabs[2:]) + line_num = tabs[0].strip() + row_parts = row.split('\t', 1) + mnemonic = row_parts[0].strip() + if mnemonic not in branch_instructions: + row = re.sub(re_int, lambda s: hexify_int(row, s), row) + original = row + if skip_next: + skip_next = False + row = '' + mnemonic = '' + if mnemonic in branch_likely_instructions: + skip_next = True + row = re.sub(re_regs, '', row) + row = re.sub(re_sprel, ',addr(sp)', row) + if args.ignore_large_imms: + row = re.sub(re_large_imm, '', row) + + # Replace tabs with spaces + mnemonics.append(mnemonic) + diff_rows.append(row) + originals.append(original) + line_nums.append(line_num) + if mnemonic in branch_instructions: + target = row_parts[1].strip().split(',')[-1] + if mnemonic in branch_likely_instructions: + target = hex(int(target, 16) - 4)[2:] + branch_targets.append(target) + else: + branch_targets.append(None) + if args.stop_jrra and mnemonic == 'jr' and row_parts[1].strip() == 'ra': + break + + # Cleanup whitespace + originals = [original.strip() for original in originals] + originals = [''.join(f'{o:<8s}' for o in original.split('\t')) for original in originals] + # return diff_rows, diff_rows, line_nums + return mnemonics, diff_rows, originals, line_nums, branch_targets + +def format_single_line_diff(line1, line2, column_width): + return f"{ansi_ljust(line1,column_width)}{ansi_ljust(line2,column_width)}" + +class SymbolColorer: + def __init__(self, base_index): + self.color_index = base_index + self.symbol_colors = {} + + def color_symbol(self, s, t=None): + try: + color = self.symbol_colors[s] + except: + color = COLOR_ROTATION[self.color_index % len(COLOR_ROTATION)] + self.color_index += 1 + self.symbol_colors[s] = color + t = t or s + return f'{color}{t}{Fore.RESET}' + +def normalize_large_imms(row): + if args.ignore_large_imms: + row = re.sub(re_large_imm, '', row) + return row + +def do_diff(basedump, mydump): + asm_lines1 = basedump.split('\n') + asm_lines2 = mydump.split('\n') + + output = [] + + # TODO: status line? + # output.append(sha1sum(mydump)) + + mnemonics1, asm_lines1, originals1, line_nums1, branch_targets1 = process(asm_lines1) + mnemonics2, asm_lines2, originals2, line_nums2, branch_targets2 = process(asm_lines2) + + sc1 = SymbolColorer(0) + sc2 = SymbolColorer(0) + sc3 = SymbolColorer(4) + sc4 = SymbolColorer(4) + sc5 = SymbolColorer(0) + sc6 = SymbolColorer(0) + bts1 = set() + bts2 = set() + + if args.show_branches: + for (bts, btset, sc) in [(branch_targets1, bts1, sc5), (branch_targets2, bts2, sc6)]: + for bt in bts: + if bt is not None: + btset.add(bt + ":") + sc.color_symbol(bt + ":") + + differ: difflib.SequenceMatcher = difflib.SequenceMatcher(a=mnemonics1, b=mnemonics2, autojunk=False) + for (tag, i1, i2, j1, j2) in differ.get_opcodes(): + lines1 = asm_lines1[i1:i2] + lines2 = asm_lines2[j1:j2] + + for k, (line1, line2) in enumerate(itertools.zip_longest(lines1, lines2)): + if tag == 'replace': + if line1 is None: + tag = 'insert' + elif line2 is None: + tag = 'delete' + + try: + original1 = originals1[i1+k] + line_num1 = line_nums1[i1+k] + except: + original1 = '' + line_num1 = '' + try: + original2 = originals2[j1+k] + line_num2 = line_nums2[j1+k] + except: + original2 = '' + line_num2 = '' + + line_color = Fore.RESET + line_prefix = ' ' + if line1 == line2: + if normalize_large_imms(original1) == normalize_large_imms(original2): + out1 = f'{original1}' + out2 = f'{original2}' + elif line1 == '': + out1 = f'{Style.DIM}{original1}' + out2 = f'{Style.DIM}{original2}' + else: + line_color = Fore.YELLOW + line_prefix = 'r' + out1 = f'{Fore.YELLOW}{original1}{Style.RESET_ALL}' + out2 = f'{Fore.YELLOW}{original2}{Style.RESET_ALL}' + out1 = re.sub(re_regs, lambda s: sc1.color_symbol(s.group()), out1) + out2 = re.sub(re_regs, lambda s: sc2.color_symbol(s.group()), out2) + out1 = re.sub(re_sprel, lambda s: sc3.color_symbol(s.group()), out1) + out2 = re.sub(re_sprel, lambda s: sc4.color_symbol(s.group()), out2) + elif tag in ['replace', 'equal']: + line_prefix = '|' + line_color = Fore.BLUE + out1 = f"{Fore.BLUE}{original1}{Style.RESET_ALL}" + out2 = f"{Fore.BLUE}{original2}{Style.RESET_ALL}" + elif tag == 'delete': + line_prefix = '<' + line_color = Fore.RED + out1 = f"{Fore.RED}{original1}{Style.RESET_ALL}" + out2 = '' + elif tag == 'insert': + line_prefix = '>' + line_color = Fore.GREEN + out1 = '' + out2 = f"{Fore.GREEN}{original2}{Style.RESET_ALL}" + + in_arrow1 = ' ' + in_arrow2 = ' ' + out_arrow1 = '' + out_arrow2 = '' + line_num1 = line_num1 if out1 else '' + line_num2 = line_num2 if out2 else '' + + if args.show_branches and out1: + if line_num1 in bts1: + in_arrow1 = sc5.color_symbol(line_num1, '~>') + if branch_targets1[i1+k] is not None: + out_arrow1 = ' ' + sc5.color_symbol(branch_targets1[i1+k] + ":", '~>') + if args.show_branches and out2: + if line_num2 in bts2: + in_arrow2 = sc6.color_symbol(line_num2, '~>') + if branch_targets2[j1+k] is not None: + out_arrow2 = ' ' + sc6.color_symbol(branch_targets2[j1+k] + ":", '~>') + + out1 = f"{line_color}{line_num1} {in_arrow1} {out1}{Style.RESET_ALL}{out_arrow1}" + out2 = f"{line_color}{line_prefix} {line_num2} {in_arrow2} {out2}{Style.RESET_ALL}{out_arrow2}" + output.append(format_single_line_diff(out1, out2, args.column_width)) + + return output[args.skip_lines:] + + +def debounced_fs_watch(targets, outq, debounce_delay): + import watchdog.events + import watchdog.observers + + class WatchEventHandler(watchdog.events.FileSystemEventHandler): + def __init__(self, queue, file_targets): + self.queue = queue + self.file_targets = file_targets + + def on_modified(self, ev): + if isinstance(ev, watchdog.events.FileModifiedEvent): + self.changed(ev.src_path) + + def on_moved(self, ev): + if isinstance(ev, watchdog.events.FileMovedEvent): + self.changed(ev.dest_path) + + def should_notify(self, path): + for target in self.file_targets: + if path == target: + return True + if args.make and any(path.endswith(suffix) for suffix in FS_WATCH_EXTENSIONS): + return True + return False + + def changed(self, path): + if self.should_notify(path): + self.queue.put(time.time()) + + def debounce_thread(): + listenq = queue.Queue() + file_targets = [] + event_handler = WatchEventHandler(listenq, file_targets) + observer = watchdog.observers.Observer() + observed = set() + for target in targets: + if os.path.isdir(target): + observer.schedule(event_handler, target, recursive=True) + else: + file_targets.append(target) + target = os.path.dirname(target) + if target not in observed: + observed.add(target) + observer.schedule(event_handler, target) + observer.start() + while True: + t = listenq.get() + more = True + while more: + delay = t + debounce_delay - time.time() + if delay > 0: + time.sleep(delay) + # consume entire queue + more = False + try: + while True: + t = listenq.get(block=False) + more = True + except queue.Empty: + pass + outq.put(t) + th = threading.Thread(target=debounce_thread, daemon=True) + th.start() + + +class Display(): + def __init__(self, basedump, mydump): + self.basedump = basedump + self.mydump = mydump + self.emsg = None + + def run_less(self): + if self.emsg is not None: + output = self.emsg + else: + output = '\n'.join(do_diff(self.basedump, self.mydump)) + + # Pipe the output through 'tail' and only then to less, to ensure the + # write call doesn't block. ('tail' has to buffer all its input before + # it starts writing.) This also means we don't have to deal with pipe + # closure errors. + buffer_proc = subprocess.Popen(BUFFER_CMD, stdin=subprocess.PIPE, + stdout=subprocess.PIPE) + less_proc = subprocess.Popen(LESS_CMD, stdin=buffer_proc.stdout) + buffer_proc.stdin.write(output.encode()) + buffer_proc.stdin.close() + buffer_proc.stdout.close() + return (buffer_proc, less_proc) + + def run_sync(self): + proca, procb = self.run_less() + procb.wait() + proca.wait() + + def run_async(self, watch_queue): + self.watch_queue = watch_queue + self.ready_queue = queue.Queue() + self.pending_update = None + dthread = threading.Thread(target=self.display_thread) + dthread.start() + self.ready_queue.get() + + def display_thread(self): + proca, procb = self.run_less() + self.less_proc = procb + self.ready_queue.put(0) + while True: + ret = procb.wait() + proca.wait() + self.less_proc = None + if ret != 0: + # fix the terminal + os.system("tput reset") + if ret != 0 and self.pending_update is not None: + # killed by program with the intent to refresh + msg, error = self.pending_update + self.pending_update = None + if not error: + self.mydump = msg + self.emsg = None + else: + self.emsg = msg + proca, procb = self.run_less() + self.less_proc = procb + self.ready_queue.put(0) + else: + # terminated by user, or killed + self.watch_queue.put(None) + self.ready_queue.put(0) + break + + def progress(self, msg): + # Write message to top-left corner + sys.stdout.write("\x1b7\x1b[1;1f{}\x1b8".format(msg + " ")) + sys.stdout.flush() + + def update(self, text, error): + if not error and not self.emsg and text == self.mydump: + self.progress("Unchanged. ") + return + self.pending_update = (text, error) + if not self.less_proc: + return + self.less_proc.kill() + self.ready_queue.get() + + def terminate(self): + if not self.less_proc: + return + self.less_proc.kill() + self.ready_queue.get() + + +def main(): + if args.diff_obj: + make_target, basecmd, mycmd = dump_objfile() + else: + make_target, basecmd, mycmd = dump_binary() + + if args.write_asm is not None: + mydump = run_objdump(mycmd) + with open(args.write_asm) as f: + f.write(mydump) + print(f"Wrote assembly to {args.write_asm}.") + sys.exit(0) + + if args.base_asm is not None: + with open(args.base_asm) as f: + basedump = f.read() + else: + basedump = run_objdump(basecmd) + + mydump = run_objdump(mycmd) + + display = Display(basedump, mydump) + + if not args.watch: + display.run_sync() + else: + if not args.make: + yn = input("Warning: watch-mode (-w) enabled without auto-make (-m). You will have to run make manually. Ok? (Y/n) ") + if yn.lower() == 'n': + return + if args.make: + watch_sources = None + if hasattr(diff_settings, "watch_sources_for_target"): + watch_sources = diff_settings.watch_sources_for_target(make_target) + watch_sources = watch_sources or source_directories + if not watch_sources: + fail("Missing source_directories config, don't know what to watch.") + else: + watch_sources = [make_target] + q = queue.Queue() + debounced_fs_watch(watch_sources, q, DEBOUNCE_DELAY) + display.run_async(q) + last_build = 0 + try: + while True: + t = q.get() + if t is None: + break + if t < last_build: + continue + last_build = time.time() + if args.make: + display.progress("Building...") + ret = run_make(make_target, capture_output=True) + if ret.returncode != 0: + display.update(ret.stderr.decode() or ret.stdout.decode(), error=True) + continue + mydump = run_objdump(mycmd) + display.update(mydump, error=False) + except KeyboardInterrupt: + display.terminate() + +main() diff --git a/diff.sh b/diff.sh deleted file mode 100755 index 2c1ade3..0000000 --- a/diff.sh +++ /dev/null @@ -1,456 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# ==== CONFIG ==== - -DIFF_OBJ=0 -MAKE=0 -BASE_SHIFT=0 -DIFF_ARGS="-l" - -if type mips-linux-gnu-ld >/dev/null 2>/dev/null; then - CROSS=mips-linux-gnu- -else - CROSS=mips64-elf- -fi - -POSITIONAL=() -while [[ $# -gt 0 ]]; do -case "$1" in - -o) - # Diff .o files rather than a whole binary. This makes it possible to - # see relocations, which is helpful for navigating in the diff. - DIFF_OBJ=1 - shift - ;; - -m) - # Run "make" on the .o file or binary before diffing. - MAKE=1 - shift - ;; - -s) - # Stop disassembling at the first "jr ra". - DIFF_ARGS+=" --stop-jr-ra" - shift - ;; - -i) - # Treat all large immediates the same for diffing purposes. - DIFF_ARGS+=" --ignore-large-imms" - shift - ;; - -S) - # Diff position X in our ROM against position X + shift in the base ROM. - # Arithmetic is allowed, so e.g. |-S "0x1234 - 0x4321"| is a reasonable - # flag to pass if it is known that position 0x1234 in the base ROM syncs - # up with position 0x4321 in our. - # Not supported together with -o. - shift - BASE_SHIFT="$1" - shift - ;; - *) - POSITIONAL+=("$1") - shift - ;; -esac -done -set -- "${POSITIONAL[@]}" - -# Set $BASEIMG, $BASEDUMP, $MYIMG, $MYDUMP, $MAPFILE, $MAKEFLAGS in a project-specific manner. -. diff-settings.sh - -# ==== LOGIC ==== - -if [[ $# -lt 1 ]]; then - echo "Usage: ./diff.sh [flags] (function|rom addr) [end rom addr]" >&2 - exit 1 -fi - -PYTHON_VERSION=$(python3 --version | cut -d'.' -f2) -if [[ $PYTHON_VERSION -lt 6 ]]; then - echo "$0 requires at least Python 3.6" >&2 - exit 1 -fi - -START="$1" -BASE=0 - -if [ $DIFF_OBJ != 1 ] && [ $MAKE = 1 ]; then - make $MAKEFLAGS "$MYIMG" -fi - -set +e - -if [ -n "$MAPFILE" ] && [ "${START:0:2}" != "0x" ]; then - LINE=$(grep "$1$" $MAPFILE) - if [ -n "$LINE" ]; then - START=$(echo $LINE | cut -d' ' -f1) - if [[ $DIFF_OBJ = 1 ]]; then - LINE2=$(grep "$1$\|^ .text" $MAPFILE | grep "$1$" -B1 | head -n1) - OBJFILE=$(echo $LINE2 | cut -d' ' -f4) - else - LINE2=$(grep "$1$\|load address" $MAPFILE | grep "$1$" -B1 | head -n1) - RAM=$(echo $LINE2 | cut -d' ' -f2) - ROM=$(echo $LINE2 | cut -d' ' -f6) - BASE="$RAM - $ROM" - fi - fi -fi - -if ! [[ "$START" =~ ^[0-9] ]]; then - echo "Function $1 not found in map file." >&2 - exit 1 -fi - -set -e - -if [[ $DIFF_OBJ = 1 ]]; then - if [[ $MAKE = 1 ]]; then - make $MAKEFLAGS "$OBJFILE" - fi - if [[ ! -f "$OBJFILE" ]]; then - echo Not able to find .o file for function. - exit 1 - fi - REFOBJFILE="expected/$OBJFILE" - if [[ ! -f "$REFOBJFILE" ]]; then - echo Please ensure an OK .o file exists at "$REFOBJFILE". - exit 1 - fi - - OBJDUMP="${CROSS}objdump -drz" - if [[ -z "$ALT_DUMP" ]]; then - $OBJDUMP $REFOBJFILE | grep "<$1>:" -A1000 > $BASEDUMP - fi - $OBJDUMP $OBJFILE | grep "<$1>:" -A1000 > $MYDUMP - DIFF_ARGS+=" -o" -else - END="$START + 0x1000" - if [[ $# -ge 2 ]]; then - END="$2" - fi - - OBJDUMP="${CROSS}objdump -D -z -bbinary -mmips -EB" - OPTIONS1="--start-address=$(($START - ($BASE) + ($BASE_SHIFT))) --stop-address=$(($END - ($BASE) + ($BASE_SHIFT)))" - OPTIONS2="--start-address=$(($START - ($BASE))) --stop-address=$(($END - ($BASE)))" - if [[ -z "$ALT_DUMP" ]]; then - $OBJDUMP $OPTIONS1 $BASEIMG > $BASEDUMP - fi - $OBJDUMP $OPTIONS2 $MYIMG > $MYDUMP -fi - -set +e - -# sed -i "1s;^;$(sha1sum $MYDUMP)\n;" $MYDUMP - -read -r -d '' DIFF_SCRIPT << EOM -try: - import argparse - import attr - from difflib import SequenceMatcher - from pathlib import Path - import itertools - from colorama import Fore, Style, Back - import ansiwrap - import re - import string - from signal import signal, SIGPIPE, SIG_DFL -except ModuleNotFoundError as e: - # Exit nicely and print to stdout, because less will be sad otherwise. - print("Missing prerequisite python module " + e.name + - ". Run \`python3 -m pip install --user colorama ansiwrap attrs\` to install prerequisites.") - exit(0) - -# Fixes pipe error -signal(SIGPIPE,SIG_DFL) - -# Alignment with ANSI colors is just broken, let's fix it. -def ansi_ljust(s, width): - needed = width - ansiwrap.ansilen(s) - if needed > 0: - return s + ' ' * needed - else: - return s - -@attr.s -class Options: - file1: str = attr.ib() - file2: str = attr.ib() - diff_obj: bool = attr.ib() - line_nums: bool = attr.ib() - reg_diff: bool = attr.ib() - column_width: int = attr.ib() - stop_jrra: bool = attr.ib() - ignore_large_imms: bool = attr.ib() - skip_bl_delay: bool = attr.ib() - -r = re.compile(r'[0-9]+') -comments = re.compile(r'<.*?>') -regs = re.compile(r'\b(a[0-3]|t[0-9]|s[0-7]|at|v[01]|f[12]?[0-9]|f3[01]|fp)\b') -sprel = re.compile(r',([1-9][0-9]*|0x[1-9a-f][0-9a-f]*)\(sp\)') -large_imm = re.compile(r'-?[1-9][0-9]{2,}|-?0x[0-9a-f]{3,}') -forbidden = set(string.ascii_letters + '_') -branch_likely_instructions = [ - 'beql', 'bnel', 'beqzl', 'bnezl', 'bgezl', 'bgtzl', 'blezl', 'bltzl', - 'bc1tl', 'bc1fl' -] -branch_instructions = [ - 'b', 'beq', 'bne', 'beqz', 'bnez', 'bgez', 'bgtz', 'blez', 'bltz', - 'bc1t', 'bc1f' -] + branch_likely_instructions - -def fn(row, pat): - full = pat.group(0) - if len(full) <= 1: - return full - start, end = pat.span() - if start and row[start - 1] in forbidden: - return full - if end < len(row) and row[end] in forbidden: - return full - return hex(int(full)) - -def parse_relocated_line(line): - try: - ind2 = line.rindex(',') - except ValueError: - ind2 = line.rindex('\t') - before = line[:ind2+1] - after = line[ind2+1:] - ind2 = after.find('(') - if ind2 == -1: - imm, after = after, '' - else: - imm, after = after[:ind2], after[ind2:] - if imm == '0x0': - imm = '0' - return before, imm, after - -def process_reloc(row, prev): - before, imm, after = parse_relocated_line(prev) - repl = row.split()[-1] - if imm != '0': - if before.strip() == 'jal' and not imm.startswith('0x'): - imm = '0x' + imm - repl += '+' + imm if int(imm,0) > 0 else imm - if 'R_MIPS_LO16' in row: - repl = f'%lo({repl})' - elif 'R_MIPS_HI16' in row: - # Ideally we'd pair up R_MIPS_LO16 and R_MIPS_HI16 to generate a - # correct addend for each, but objdump doesn't give us the order of - # the relocations, so we can't find the right LO16. :( - repl = f'%hi({repl})' - else: - assert 'R_MIPS_26' in row, f"unknown relocation type '{row}'" - return before + repl + after - -def process(lines, options): - diff_rows = [] - skip_next = False - originals = [] - line_nums = [] - skip_lines = 1 if options.diff_obj else 7 - - for index, row in enumerate(lines): - if index < skip_lines: - continue - - if options.diff_obj and ('>:' in row or not row): - continue - - if 'R_MIPS_' in row: - if diff_rows[-1] == '': - continue - - diff_rows[-1] = process_reloc(row, diff_rows[-1]) - originals[-1] = process_reloc(row, originals[-1]) - continue - - row = re.sub(comments, '', row) - row = row.rstrip() - tabs = row.split('\t') - row = '\t'.join(tabs[2:]) # [20:] - line_num = tabs[0].strip() - original = row - mnemonic = row.split('\t')[0].strip() - if mnemonic not in branch_instructions: - row = re.sub(r, lambda s: fn(row, s), row) - if skip_next: - skip_next = False - row = '' - if mnemonic in branch_likely_instructions and options.skip_bl_delay: - skip_next = True - if options.reg_diff: - row = re.sub(regs, '', row) - row = re.sub(sprel, ',addr(sp)', row) - if options.ignore_large_imms: - row = re.sub(large_imm, '', row) - - # Replace tabs with spaces - diff_rows.append(row) - originals.append(original) - line_nums.append(line_num) - if options.stop_jrra and mnemonic == 'jr' and row.split('\t')[1].strip() == 'ra': - break - - # Cleanup whitespace - originals = [original.strip() for original in originals] - originals = [''.join(f'{o:<8s}' for o in original.split('\t')) for original in originals] - # return diff_rows, diff_rows, line_nums - return diff_rows, originals, line_nums - -regs_after = re.compile(r'') -def print_single_line_diff(line1, line2, column_width): - print(f"{ansi_ljust(line1,column_width)}{ansi_ljust(line2,column_width)}") - -color_rotation = [ - Fore.MAGENTA, - Fore.CYAN, - Fore.GREEN, - Fore.RED, - Fore.LIGHTYELLOW_EX, - Fore.LIGHTMAGENTA_EX, - Fore.LIGHTCYAN_EX, - Fore.LIGHTGREEN_EX, - #Fore.LIGHTRED_EX, (This is hard to distinguish (I'm not even colorblind)) - Fore.LIGHTBLACK_EX, -] -color_index = [0, 0] -symbol_colors = [{}, {}] - -def color_symbol(s, i): - global color_rotation - global color_index - global symbol_colors - s = s.group() - try: - color = symbol_colors[i][s] - except: - color = color_rotation[color_index[i]] - color_index[i] = (color_index[i] + 1) % len(color_rotation) - symbol_colors[i][s] = color - - return f'{color}{s}{Fore.RESET}' - -def norm(row): - if options.ignore_large_imms: - row = re.sub(large_imm, '', row) - return row - -def main(options): - asm1: str = Path(options.file1).read_text() - asm2: str = Path(options.file2).read_text() - asm1_lines = asm1.split('\n') - asm2_lines = asm2.split('\n') - - asm1_lines, originals1, line_nums1 = process(asm1_lines, options) - asm2_lines, originals2, line_nums2 = process(asm2_lines, options) - - differ: SequenceMatcher = SequenceMatcher(a=asm1_lines, b=asm2_lines, autojunk=True) - for (tag, i1, i2, j1, j2) in differ.get_opcodes(): - lines1 = asm1_lines[i1:i2] - lines2 = asm2_lines[j1:j2] - - for k, (line1, line2) in enumerate(itertools.zip_longest(lines1, lines2)): - if tag == 'replace': - if line1 == None: - tag = 'insert' - elif line2 == None: - tag = 'delete' - - try: - original1 = originals1[i1+k] - line_num1 = line_nums1[i1+k] - except: - original1 = '' - line_num1 = '' - try: - original2 = originals2[j1+k] - line_num2 = line_nums2[j1+k] - except: - original2 = '' - line_num2 = '' - - line_color = Fore.RESET - line_prefix = ' ' - if tag == 'equal' or line1 == line2: - if (line1 == ''): - pass - elif norm(original1) != norm(original2) and options.reg_diff: - line_color = Fore.YELLOW - line_prefix = 'r' - line1 = f'{Fore.YELLOW}{original1}{Style.RESET_ALL}' - line2 = f'{Fore.YELLOW}{original2}{Style.RESET_ALL}' - line1 = re.sub(regs, lambda s: color_symbol(s, 0), line1) - line2 = re.sub(regs, lambda s: color_symbol(s, 1), line2) - line1 = re.sub(sprel, lambda s: color_symbol(s, 0), line1) - line2 = re.sub(sprel, lambda s: color_symbol(s, 1), line2) - else: - line1 = f'{original1}' - line2 = f'{original2}' - elif tag == 'replace': - line_prefix = '|' - line_color = Fore.BLUE - line1 = f"{Fore.BLUE}{original1}{Style.RESET_ALL}" - line2 = f"{Fore.BLUE}{original2}{Style.RESET_ALL}" - elif tag == 'delete': - line_prefix = '<' - line_color = Fore.RED - line1 = f"{Fore.RED}{original1}{Style.RESET_ALL}" - elif tag == 'insert': - line_prefix = '>' - line_color = Fore.GREEN - line2 = f"{Fore.GREEN}{original2}{Style.RESET_ALL}" - - line1 = line1 or '' - line2 = line2 or '' - - line_num1 = line_num1 if line1 else '' - line_num2 = line_num2 if line2 else '' - - if not options.line_nums: - line_num1 = '' - line_num2 = '' - - line1 = f"{line_color}{line_num1} {line1}{Style.RESET_ALL}" - line2 = f"{line_color}{line_prefix} {line_num2} {line2}{Style.RESET_ALL}" - print_single_line_diff(line1, line2, options.column_width) - - -if __name__ == "__main__": - parser = argparse.ArgumentParser( - description="Diff mips data") - parser.add_argument('file1', - help="The base file to compare") - parser.add_argument('file2', - help="The modified version to compare to") - parser.add_argument('-o', dest='diff_obj', action='store_true', - help="Perform an object file diff") - parser.add_argument('-l', dest='line_nums', action='store_true', - help="Show line numbers") - parser.add_argument('--stop-jr-ra', dest='stop_jrra', action='store_true', - help="Stop at the first 'jr ra'") - parser.add_argument('--ignore-large-imms', dest='ignore_large_imms', action='store_true', - help="Pretend all 'large' immediates are the same") - parser.add_argument('--column', dest='column_width', type=int, default=50, - help="Sets the width of the left and right view column") - args = parser.parse_args() - - options = Options( - file1 = args.file1, - file2 = args.file2, - reg_diff = True, - line_nums = args.line_nums, - diff_obj = args.diff_obj, - column_width = args.column_width, - stop_jrra = args.stop_jrra, - ignore_large_imms = args.ignore_large_imms, - skip_bl_delay = True - ) - main(options) -EOM - -set -e - -python3 -c "$DIFF_SCRIPT" "$BASEDUMP" "$MYDUMP" $DIFF_ARGS | less -Ric diff --git a/diff_settings.py b/diff_settings.py new file mode 100644 index 0000000..dffcf03 --- /dev/null +++ b/diff_settings.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python3 + +def add_custom_arguments(parser): + group = parser.add_mutually_exclusive_group(required=False) + group.add_argument('-j', dest='lang', action='store_const', const='jp', + help="Set version to JP.") + group.add_argument('-u', dest='lang', action='store_const', const='us', + help="Set version to US.") + group.add_argument('-e', dest='lang', action='store_const', const='eu', + help="Set version to EU.") + +def apply(config, args): + lang = args.lang or 'us' + config['mapfile'] = f'build/{lang}/sm64.{lang}.map' + config['myimg'] = f'build/{lang}/sm64.{lang}.z64' + config['baseimg'] = f'baserom.{lang}.z64' + config['makeflags'] = [f'VERSION={lang}'] + config['source_directories'] = ['src', 'include'] diff --git a/enhancements/ique_support/README.md b/enhancements/ique_support/README.md new file mode 100644 index 0000000..f22f0c0 --- /dev/null +++ b/enhancements/ique_support/README.md @@ -0,0 +1,46 @@ +# iQue Player Support Enhancement + +This enhancement allows the same ROM to work on both the N64 and the iQue Player. + +## Instructions + +### Fix video corruption + +In `lib/src/__osViSwapContext.c`, change the line +```c +HW_REG(VI_CONTROL_REG, u32) = s1->features; +``` +to +```c +HW_REG(VI_CONTROL_REG, u32) = s1->features & ~(1 << 13); +``` +This has no effect on the N64, but prevents video corruption on iQue. Games will be unplayable on iQue unless you do this modification. + +### Add console detection + +Copy `enhancements/ique_support/skGetId.s` into `lib/asm/`. +Copy `enhancements/ique_support/consoleType.c` into `lib/src/`. +Copy `enhancements/ique_support/console_type.h` into `include/PR/`. + +Add the line `#include ` to the bottom of the block of `#include`s in `include/ultra64.h`. +Add the line `gConsoleType = get_console_type();` as the first line of code in `osInitialize()` in `lib/src/osInitialize.c` (i.e. right before the line `D_80365CD0 = TRUE;`) + +### Patch libultra EEPROM functions + +Console detection needs to be added for this modification. + +In `lib/src/osEepromRead.c`, `lib/src/osEepromWrite.c`, and `lib/src/osEepromProbe.c`: + +Add +```c +if (gConsoleType == CONSOLE_N64) { +``` +directly after the `__osSiGetAccess` call. + +Add +```c +} else if (gConsoleType == CONSOLE_IQUE) { +#include "../../enhancements/ique_support/FILENAME.inc.c" +} +``` +directly before the `__osSiRelAccess` call; replace `FILENAME` with the filename, i.e. if `lib/src/osEepromRead.c` put `#include "../../enhancements/ique_support/osEepromRead.inc.c"`. diff --git a/enhancements/ique_support/consoleType.c b/enhancements/ique_support/consoleType.c new file mode 100644 index 0000000..630cf2a --- /dev/null +++ b/enhancements/ique_support/consoleType.c @@ -0,0 +1,11 @@ +#include "libultra_internal.h" + +enum ConsoleType gConsoleType; + +void skGetId(u32 *out); + +enum ConsoleType get_console_type(void) { + u32 id = 0; + skGetId(&id); + return (id == 0) ? CONSOLE_N64 : CONSOLE_IQUE; +} diff --git a/enhancements/ique_support/console_type.h b/enhancements/ique_support/console_type.h new file mode 100644 index 0000000..e60550a --- /dev/null +++ b/enhancements/ique_support/console_type.h @@ -0,0 +1,7 @@ +enum ConsoleType { + CONSOLE_N64, + CONSOLE_IQUE +}; + +extern enum ConsoleType gConsoleType; +extern enum ConsoleType get_console_type(void); diff --git a/enhancements/ique_support/osEepromProbe.inc.c b/enhancements/ique_support/osEepromProbe.inc.c new file mode 100644 index 0000000..5858f90 --- /dev/null +++ b/enhancements/ique_support/osEepromProbe.inc.c @@ -0,0 +1,9 @@ +s32 __osBbEepromSize = * (s32*) 0x80000360; + +if (__osBbEepromSize == 0x200) { + status = 1; +} + +if (__osBbEepromSize == 0x800) { + status = 2; +} diff --git a/enhancements/ique_support/osEepromRead.inc.c b/enhancements/ique_support/osEepromRead.inc.c new file mode 100644 index 0000000..2da0f1d --- /dev/null +++ b/enhancements/ique_support/osEepromRead.inc.c @@ -0,0 +1,8 @@ +u8 *__osBbEepromAddress = * (u8**) 0x8000035C; +s32 i; + +for (i = 0; i < 8; i++) { + buffer[i] = __osBbEepromAddress[(address << 3) + i]; +} + +sp34 = 0; diff --git a/enhancements/ique_support/osEepromWrite.inc.c b/enhancements/ique_support/osEepromWrite.inc.c new file mode 100644 index 0000000..fdf0fda --- /dev/null +++ b/enhancements/ique_support/osEepromWrite.inc.c @@ -0,0 +1,8 @@ +u8 *__osBbEepromAddress = * (u8**) 0x8000035C; +s32 i; + +for (i = 0; i < 8; i++) { + __osBbEepromAddress[(address << 3) + i] = buffer[i]; +} + +sp34 = 0; diff --git a/enhancements/ique_support/skGetId.s b/enhancements/ique_support/skGetId.s new file mode 100644 index 0000000..8fb4c44 --- /dev/null +++ b/enhancements/ique_support/skGetId.s @@ -0,0 +1,18 @@ +# Code by stuckpixel + +.set noreorder +.set gp=64 + +.include "macros.inc" + +glabel skGetId + li $v0, 0 + li $t0, 0xA4300014 + lw $t1, 0x00($t0) + nop + jr $ra + nop + nop + nop + nop + nop diff --git a/first-diff.py b/first-diff.py index 8336eb5..4201dae 100755 --- a/first-diff.py +++ b/first-diff.py @@ -21,7 +21,9 @@ if lang is None: best = 0 for path in ['build/us/sm64.us.z64', 'build/jp/sm64.jp.z64', 'build/eu/sm64.eu.z64']: try: - if os.path.getmtime(path) > best: + mtime = os.path.getmtime(path) + if mtime > best: + best = mtime lang = path.split('/')[1] except Exception: pass diff --git a/include/PR/abi.h b/include/PR/abi.h index 036e8e5..8545be3 100644 --- a/include/PR/abi.h +++ b/include/PR/abi.h @@ -217,7 +217,7 @@ typedef struct { typedef union { Awords words; -#if !defined(__x86_64__) && !defined(__i386__) +#if IS_BIG_ENDIAN && !IS_64_BIT Aadpcm adpcm; Apolef polef; Aclearbuff clearbuff; diff --git a/include/PR/gbi.h b/include/PR/gbi.h index bc7386a..e459bd3 100644 --- a/include/PR/gbi.h +++ b/include/PR/gbi.h @@ -297,19 +297,19 @@ * G_MTX: parameter flags */ #ifdef F3DEX_GBI_2 -# define G_MTX_MODELVIEW 0x00 /* matrix types */ -# define G_MTX_PROJECTION 0x04 -# define G_MTX_MUL 0x00 /* concat or load */ -# define G_MTX_LOAD 0x02 -# define G_MTX_NOPUSH 0x00 /* push or not */ -# define G_MTX_PUSH 0x01 +# define G_MTX_MODELVIEW 0x00 /* matrix types */ +# define G_MTX_PROJECTION 0x04 +# define G_MTX_MUL 0x00 /* concat or load */ +# define G_MTX_LOAD 0x02 +# define G_MTX_NOPUSH 0x00 /* push or not */ +# define G_MTX_PUSH 0x01 #else /* F3DEX_GBI_2 */ -# define G_MTX_MODELVIEW 0x00 /* matrix types */ -# define G_MTX_PROJECTION 0x01 -# define G_MTX_MUL 0x00 /* concat or load */ -# define G_MTX_LOAD 0x02 -# define G_MTX_NOPUSH 0x00 /* push or not */ -# define G_MTX_PUSH 0x04 +# define G_MTX_MODELVIEW 0x00 /* matrix types */ +# define G_MTX_PROJECTION 0x01 +# define G_MTX_MUL 0x00 /* concat or load */ +# define G_MTX_LOAD 0x02 +# define G_MTX_NOPUSH 0x00 /* push or not */ +# define G_MTX_PUSH 0x04 #endif /* F3DEX_GBI_2 */ /* @@ -1719,7 +1719,7 @@ typedef struct { */ typedef union { Gwords words; -#if !defined(F3D_OLD) && !defined(__x86_64__) && !defined(__i386__) +#if !defined(F3D_OLD) && IS_BIG_ENDIAN && !IS_64_BIT Gdma dma; Gtri tri; Gline3D line; @@ -1738,7 +1738,7 @@ typedef union { Gsettilesize settilesize; Gloadtlut loadtlut; #endif - long long int force_structure_alignment; + long long int force_structure_alignment; } Gfx; /* diff --git a/include/PR/mbi.h b/include/PR/mbi.h index fed3510..6b3cebf 100644 --- a/include/PR/mbi.h +++ b/include/PR/mbi.h @@ -1,6 +1,8 @@ #ifndef _MBI_H_ #define _MBI_H_ +#include "platform_info.h" + /************************************************************************** * * * Copyright (C) 1994, Silicon Graphics, Inc. * diff --git a/include/PR/ultratypes.h b/include/PR/ultratypes.h index ab9ebc1..1f0d3e0 100644 --- a/include/PR/ultratypes.h +++ b/include/PR/ultratypes.h @@ -29,18 +29,14 @@ typedef volatile s64 vs64; typedef float f32; typedef double f64; -#ifdef __x86_64__ -typedef u64 size_t; -typedef s64 ssize_t; -typedef u64 uintptr_t; -typedef s64 intptr_t; -typedef s64 ptrdiff_t; -#else +#ifdef TARGET_N64 typedef u32 size_t; typedef s32 ssize_t; typedef u32 uintptr_t; typedef s32 intptr_t; typedef s32 ptrdiff_t; +#else +#include #endif #endif diff --git a/include/audio_defines.h b/include/audio_defines.h index ee240af..2dcb8a1 100644 --- a/include/audio_defines.h +++ b/include/audio_defines.h @@ -1,5 +1,5 @@ -#ifndef _AUDIODEFINES_H -#define _AUDIODEFINES_H +#ifndef AUDIO_DEFINES_H +#define AUDIO_DEFINES_H // Sound Magic Definition: // First Byte (Upper Nibble): Sound Bank (not the same as audio bank!) @@ -262,19 +262,19 @@ /* not verified */ #define SOUND_GENERAL_UNKNOWN3_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x37, 0x00, 8) /* not verified */ #define SOUND_GENERAL_UNKNOWN3 SOUND_ARG_LOAD(3, 0, 0x37, 0x80, 8) /* not verified */ #define SOUND_GENERAL_UNKNOWN3_2 SOUND_ARG_LOAD(3, 8, 0x37, 0x80, 8) -/* not verified */ #define SOUND_GENERAL_SWITCH1 SOUND_ARG_LOAD(3, 0, 0x38, 0x00, 8) +#define SOUND_GENERAL_PENDULUM_SWING SOUND_ARG_LOAD(3, 0, 0x38, 0x00, 8) /* not verified */ #define SOUND_GENERAL_CHAIN_CHOMP1 SOUND_ARG_LOAD(3, 0, 0x39, 0x00, 8) /* not verified */ #define SOUND_GENERAL_CHAIN_CHOMP2 SOUND_ARG_LOAD(3, 0, 0x3A, 0x00, 8) -/* not verified */ #define SOUND_GENERAL_SWITCH2 SOUND_ARG_LOAD(3, 0, 0x3B, 0x00, 8) +#define SOUND_GENERAL_DOOR_TURN_KEY SOUND_ARG_LOAD(3, 0, 0x3B, 0x00, 8) /* not verified */ #define SOUND_GENERAL_MOVING_IN_SAND SOUND_ARG_LOAD(3, 0, 0x3C, 0x00, 8) /* not verified */ #define SOUND_GENERAL_UNKNOWN4_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x3D, 0x00, 8) /* not verified */ #define SOUND_GENERAL_UNKNOWN4 SOUND_ARG_LOAD(3, 0, 0x3D, 0x80, 8) -/* not verified */ #define SOUND_GENERAL_SWITCH3 SOUND_ARG_LOAD(3, 0, 0x3E, 0x00, 8) +#define SOUND_GENERAL_MOVING_PLATFORM_SWITCH SOUND_ARG_LOAD(3, 0, 0x3E, 0x00, 8) /* not verified */ #define SOUND_GENERAL_CAGE_OPEN SOUND_ARG_LOAD(3, 0, 0x3F, 0xA0, 8) /* not verified */ #define SOUND_GENERAL_QUIET_POUND1_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x40, 0x00, 8) /* not verified */ #define SOUND_GENERAL_QUIET_POUND1 SOUND_ARG_LOAD(3, 0, 0x40, 0x40, 8) /* not verified */ #define SOUND_GENERAL_BREAK_BOX SOUND_ARG_LOAD(3, 0, 0x41, 0xC0, 8) -/* not verified */ #define SOUND_GENERAL_SWITCH4 SOUND_ARG_LOAD(3, 0, 0x42, 0x00, 8) +#define SOUND_GENERAL_DOOR_INSERT_KEY SOUND_ARG_LOAD(3, 0, 0x42, 0x00, 8) /* not verified */ #define SOUND_GENERAL_QUIET_POUND2 SOUND_ARG_LOAD(3, 0, 0x43, 0x00, 8) /* not verified */ #define SOUND_GENERAL_BIG_POUND SOUND_ARG_LOAD(3, 0, 0x44, 0x00, 8) /* not verified */ #define SOUND_GENERAL_UNK45 SOUND_ARG_LOAD(3, 0, 0x45, 0x00, 8) @@ -556,4 +556,4 @@ #define SOUND_OBJ2_BOSS_DIALOG_GRUNT SOUND_ARG_LOAD(9, 0, 0x69, 0x40, 8) #define SOUND_OBJ2_MRI_SPINNING SOUND_ARG_LOAD(9, 0, 0x6B, 0x00, 8) -#endif /* _AUDIODEFINES_H */ +#endif /* AUDIO_DEFINES_H */ diff --git a/include/behavior_data.h b/include/behavior_data.h index f5137d6..132e3ff 100644 --- a/include/behavior_data.h +++ b/include/behavior_data.h @@ -102,7 +102,7 @@ extern const BehaviorScript bhvUkikiCage[]; extern const BehaviorScript bhvBitfsSinkingPlatforms[]; extern const BehaviorScript bhvBitfsSinkingCagePlatform[]; extern const BehaviorScript bhvDddMovingPole[]; -extern const BehaviorScript bhvBitfsTiltingSquarePlatform[]; +extern const BehaviorScript bhvBitfsTiltingInvertedPyramid[]; extern const BehaviorScript bhvSquishablePlatform[]; extern const BehaviorScript bhvCutOutObject[]; extern const BehaviorScript bhvBetaMovingFlamesSpawn[]; @@ -194,7 +194,7 @@ extern const BehaviorScript bhvVolcanoFlames[]; extern const BehaviorScript bhvLllRotatingHexagonalRing[]; extern const BehaviorScript bhvLllSinkingRectangularPlatform[]; extern const BehaviorScript bhvLllSinkingSquarePlatforms[]; -extern const BehaviorScript bhvLllTiltingSquarePlatform[]; +extern const BehaviorScript bhvLllTiltingInvertedPyramid[]; extern const BehaviorScript bhvUnused1F30[]; extern const BehaviorScript bhvKoopaShell[]; extern const BehaviorScript bhvKoopaShellFlame[]; diff --git a/include/config.h b/include/config.h index d22d0bd..795bed9 100644 --- a/include/config.h +++ b/include/config.h @@ -8,16 +8,6 @@ */ // Bug Fixes -// --| Categories -/// Turn on bug fixes for really bad, C standard breaking code. This is -/// enabled automatically when building with non-IDO compilers, or if -/// NON_MATCHING is set. -#if !defined(__sgi) || defined(NON_MATCHING) -#define BUGFIXES_CRITICAL 1 -#else -#define BUGFIXES_CRITICAL 0 -#endif - // --| US Version Nintendo Bug Fixes /// Fixes bug where obtaining over 999 coins sets the number of lives to 999 (or -25) #define BUGFIX_MAX_LIVES (0 || VERSION_US || VERSION_EU) @@ -33,13 +23,6 @@ /// Fixes bug where it shows a star when you grab a key in bowser battle stages #define BUGFIX_STAR_BOWSER_KEY (0 || VERSION_US || VERSION_EU) -// --| Goddard / Mario Head Bug Fixes -/// Goddard left out important and necessary return statements; this puts them back in -#define BUGFIX_GODDARD_MISSING_RETURN (0 || BUGFIXES_CRITICAL) -/// It seems that Goddard only declared, not prototyped some functions. This lead to -/// incorrect promotion of floats to doubles. -#define BUGFIX_GODDARD_BAD_DECLARATIONS (0 || BUGFIXES_CRITICAL) - // Screen Size Defines #define SCREEN_WIDTH 320 #define SCREEN_HEIGHT 240 diff --git a/include/course_table.h b/include/course_table.h new file mode 100644 index 0000000..c39775f --- /dev/null +++ b/include/course_table.h @@ -0,0 +1,33 @@ +#ifndef _COURSE_TABLE_H +#define _COURSE_TABLE_H + +// Start of the 3 cap courses in a row. +#define COURSE_CAP_COURSES COURSE_COTMC + +#define DEFINE_COURSE(courseenum, _1, _2, _3, _4) courseenum, +#define DEFINE_COURSES_END() \ + COURSE_BONUS_STAGES, \ + COURSE_STAGES_MAX = COURSE_BONUS_STAGES - 1, \ + COURSE_STAGES_COUNT = COURSE_STAGES_MAX, + +#define DEFINE_BONUS_COURSE(courseenum, _1, _2, _3, _4) courseenum, + +enum CourseNum +{ + COURSE_NONE, // (0) Overworld (Castle Grounds, etc) + #include "levels/course_defines.h" + COURSE_END, // To mark end + 1 for marking max and count. + // Todo: clean this up. This is still bad. Which + // one is clearer? Need to get rid of one of these. + COURSE_MAX = COURSE_END - 1, + COURSE_COUNT = COURSE_MAX, + COURSE_MIN = COURSE_NONE + 1 +}; + +#undef DEFINE_COURSE +#undef DEFINE_COURSES_END +#undef DEFINE_BONUS_COURSE + +#define COURSE_IS_MAIN_COURSE(cmd) (cmd >= COURSE_MIN && cmd <= COURSE_STAGES_MAX) + +#endif // _COURSE_TABLE_H diff --git a/include/dialog_ids.h b/include/dialog_ids.h new file mode 100644 index 0000000..bc92c20 --- /dev/null +++ b/include/dialog_ids.h @@ -0,0 +1,178 @@ +#ifndef DIALOG_IDS +#define DIALOG_IDS + +enum DialogId { + DIALOG_000, + DIALOG_001, + DIALOG_002, + DIALOG_003, + DIALOG_004, + DIALOG_005, + DIALOG_006, + DIALOG_007, + DIALOG_008, + DIALOG_009, + DIALOG_010, + DIALOG_011, + DIALOG_012, + DIALOG_013, + DIALOG_014, + DIALOG_015, + DIALOG_016, + DIALOG_017, + DIALOG_018, + DIALOG_019, + DIALOG_020, + DIALOG_021, + DIALOG_022, + DIALOG_023, + DIALOG_024, + DIALOG_025, + DIALOG_026, + DIALOG_027, + DIALOG_028, + DIALOG_029, + DIALOG_030, + DIALOG_031, + DIALOG_032, + DIALOG_033, + DIALOG_034, + DIALOG_035, + DIALOG_036, + DIALOG_037, + DIALOG_038, + DIALOG_039, + DIALOG_040, + DIALOG_041, + DIALOG_042, + DIALOG_043, + DIALOG_044, + DIALOG_045, + DIALOG_046, + DIALOG_047, + DIALOG_048, + DIALOG_049, + DIALOG_050, + DIALOG_051, + DIALOG_052, + DIALOG_053, + DIALOG_054, + DIALOG_055, + DIALOG_056, + DIALOG_057, + DIALOG_058, + DIALOG_059, + DIALOG_060, + DIALOG_061, + DIALOG_062, + DIALOG_063, + DIALOG_064, + DIALOG_065, + DIALOG_066, + DIALOG_067, + DIALOG_068, + DIALOG_069, + DIALOG_070, + DIALOG_071, + DIALOG_072, + DIALOG_073, + DIALOG_074, + DIALOG_075, + DIALOG_076, + DIALOG_077, + DIALOG_078, + DIALOG_079, + DIALOG_080, + DIALOG_081, + DIALOG_082, + DIALOG_083, + DIALOG_084, + DIALOG_085, + DIALOG_086, + DIALOG_087, + DIALOG_088, + DIALOG_089, + DIALOG_090, + DIALOG_091, + DIALOG_092, + DIALOG_093, + DIALOG_094, + DIALOG_095, + DIALOG_096, + DIALOG_097, + DIALOG_098, + DIALOG_099, + DIALOG_100, + DIALOG_101, + DIALOG_102, + DIALOG_103, + DIALOG_104, + DIALOG_105, + DIALOG_106, + DIALOG_107, + DIALOG_108, + DIALOG_109, + DIALOG_110, + DIALOG_111, + DIALOG_112, + DIALOG_113, + DIALOG_114, + DIALOG_115, + DIALOG_116, + DIALOG_117, + DIALOG_118, + DIALOG_119, + DIALOG_120, + DIALOG_121, + DIALOG_122, + DIALOG_123, + DIALOG_124, + DIALOG_125, + DIALOG_126, + DIALOG_127, + DIALOG_128, + DIALOG_129, + DIALOG_130, + DIALOG_131, + DIALOG_132, + DIALOG_133, + DIALOG_134, + DIALOG_135, + DIALOG_136, + DIALOG_137, + DIALOG_138, + DIALOG_139, + DIALOG_140, + DIALOG_141, + DIALOG_142, + DIALOG_143, + DIALOG_144, + DIALOG_145, + DIALOG_146, + DIALOG_147, + DIALOG_148, + DIALOG_149, + DIALOG_150, + DIALOG_151, + DIALOG_152, + DIALOG_153, + DIALOG_154, + DIALOG_155, + DIALOG_156, + DIALOG_157, + DIALOG_158, + DIALOG_159, + DIALOG_160, + DIALOG_161, + DIALOG_162, + DIALOG_163, + DIALOG_164, + DIALOG_165, + DIALOG_166, + DIALOG_167, + DIALOG_168, + DIALOG_169, + DIALOG_COUNT +}; + +#endif diff --git a/include/level_commands.h b/include/level_commands.h index 1f88fac..2ce2192 100644 --- a/include/level_commands.h +++ b/include/level_commands.h @@ -3,6 +3,8 @@ #include "command_macros_base.h" +#include "level_table.h" + #define OP_AND 0 #define OP_NAND 1 #define OP_EQ 2 diff --git a/include/level_table.h b/include/level_table.h new file mode 100644 index 0000000..9b7401b --- /dev/null +++ b/include/level_table.h @@ -0,0 +1,22 @@ +#ifndef _LEVEL_TABLE_H +#define _LEVEL_TABLE_H + +// For LEVEL_NAME defines, see level_defines.h. +// Please include this file if you want to use them. + +#define STUB_LEVEL(_0, levelenum, _2, _3, _4, _5, _6, _7, _8) levelenum, +#define DEFINE_LEVEL(_0, levelenum, _2, _3, _4, _5, _6, _7, _8, _9, _10) levelenum, + +enum LevelNum +{ + LEVEL_NONE, +#include "levels/level_defines.h" + LEVEL_COUNT, + LEVEL_MAX = LEVEL_COUNT - 1, + LEVEL_MIN = LEVEL_NONE + 1 +}; + +#undef STUB_LEVEL +#undef DEFINE_LEVEL + +#endif // _LEVEL_TABLE_H diff --git a/include/macros.h b/include/macros.h index 79738d7..87daedd 100644 --- a/include/macros.h +++ b/include/macros.h @@ -3,6 +3,12 @@ #include "platform_info.h" +#if !defined(__sgi) && (!defined(NON_MATCHING) || !defined(AVOID_UB)) +// asm-process isn't supported outside of IDO, and undefined behavior causes +// crashes. +#error Matching build is only possible on IDO; please build with NON_MATCHING=1. +#endif + #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) #define GLUE(a, b) a ## b diff --git a/include/object_fields.h b/include/object_fields.h index d04b729..e9faf2d 100644 --- a/include/object_fields.h +++ b/include/object_fields.h @@ -956,13 +956,13 @@ #define /*0x0F4*/ oThwompUnkF4 OBJECT_FIELD_S32(0x1B) /* Tilting Platform */ -#define /*0x0F4*/ oTiltingPlatformUnkF4 OBJECT_FIELD_F32(0x1B) -#define /*0x0F8*/ oTiltingPlatformUnkF8 OBJECT_FIELD_F32(0x1C) -#define /*0x0FC*/ oTiltingPlatformUnkFC OBJECT_FIELD_F32(0x1D) -#define /*0x10C*/ oTiltingPlatformUnk10C OBJECT_FIELD_S32(0x21) +#define /*0x0F4*/ oTiltingPyramidNormalX OBJECT_FIELD_F32(0x1B) +#define /*0x0F8*/ oTiltingPyramidNormalY OBJECT_FIELD_F32(0x1C) +#define /*0x0FC*/ oTiltingPyramidNormalZ OBJECT_FIELD_F32(0x1D) +#define /*0x10C*/ oTiltingPyramidMarioOnPlatform OBJECT_FIELD_S32(0x21) /* Toad Message */ -#define /*0x108*/ oToadMessageDialogNum OBJECT_FIELD_U32(0x20) +#define /*0x108*/ oToadMessageDialogId OBJECT_FIELD_U32(0x20) #define /*0x10C*/ oToadMessageRecentlyTalked OBJECT_FIELD_S32(0x21) #define /*0x110*/ oToadMessageState OBJECT_FIELD_S32(0x22) diff --git a/include/platform_info.h b/include/platform_info.h index 0cb7920..ee35d4f 100644 --- a/include/platform_info.h +++ b/include/platform_info.h @@ -1,7 +1,7 @@ #ifndef PLATFORM_INFO_H #define PLATFORM_INFO_H -#if defined(__sgi) || defined(TARGET_N64) +#ifdef TARGET_N64 #define IS_64_BIT 0 #define IS_BIG_ENDIAN 1 #else diff --git a/include/segment_symbols.h b/include/segment_symbols.h index a64f9d2..20d53b7 100644 --- a/include/segment_symbols.h +++ b/include/segment_symbols.h @@ -42,37 +42,14 @@ extern u8 _goddardSegmentStart[]; DECLARE_LEVEL_SEGMENT(menu) DECLARE_LEVEL_SEGMENT(intro) DECLARE_LEVEL_SEGMENT(ending) -DECLARE_LEVEL_SEGMENT(bbh) -DECLARE_LEVEL_SEGMENT(ccm) -DECLARE_LEVEL_SEGMENT(castle_inside) -DECLARE_LEVEL_SEGMENT(hmc) -DECLARE_LEVEL_SEGMENT(ssl) -DECLARE_LEVEL_SEGMENT(bob) -DECLARE_LEVEL_SEGMENT(sl) -DECLARE_LEVEL_SEGMENT(wdw) -DECLARE_LEVEL_SEGMENT(jrb) -DECLARE_LEVEL_SEGMENT(thi) -DECLARE_LEVEL_SEGMENT(ttc) -DECLARE_LEVEL_SEGMENT(rr) -DECLARE_LEVEL_SEGMENT(castle_grounds) -DECLARE_LEVEL_SEGMENT(bitdw) -DECLARE_LEVEL_SEGMENT(vcutm) -DECLARE_LEVEL_SEGMENT(bitfs) -DECLARE_LEVEL_SEGMENT(sa) -DECLARE_LEVEL_SEGMENT(bits) -DECLARE_LEVEL_SEGMENT(lll) -DECLARE_LEVEL_SEGMENT(ddd) -DECLARE_LEVEL_SEGMENT(wf) -DECLARE_LEVEL_SEGMENT(ending) -DECLARE_LEVEL_SEGMENT(castle_courtyard) -DECLARE_LEVEL_SEGMENT(pss) -DECLARE_LEVEL_SEGMENT(cotmc) -DECLARE_LEVEL_SEGMENT(totwc) -DECLARE_LEVEL_SEGMENT(bowser_1) -DECLARE_LEVEL_SEGMENT(wmotr) -DECLARE_LEVEL_SEGMENT(bowser_2) -DECLARE_LEVEL_SEGMENT(bowser_3) -DECLARE_LEVEL_SEGMENT(ttm) + +#define STUB_LEVEL(_0, _1, _2, _3, _4, _5, _6, _7, _8) +#define DEFINE_LEVEL(_0, _1, _2, folder, _4, _5, _6, _7, _8, _9, _10) DECLARE_LEVEL_SEGMENT(folder) + +#include "levels/level_defines.h" + +#undef STUB_LEVEL +#undef DEFINE_LEVEL DECLARE_SEGMENT(water_skybox_mio0) DECLARE_SEGMENT(ccm_skybox_mio0) diff --git a/include/sm64.h b/include/sm64.h index 54524b9..b607fff 100644 --- a/include/sm64.h +++ b/include/sm64.h @@ -21,22 +21,22 @@ #define DEBUG_ASSERT(exp) #endif -// Use these macros in places where aliasing is used to split a variable into -// smaller parts -#if ENDIAN_IND +// Pointer casting is technically UB, and avoiding it gets rid of endian issues +// as well as a nice side effect. +#ifdef AVOID_UB #define GET_HIGH_U16_OF_32(var) ((u16)((var) >> 16)) #define GET_HIGH_S16_OF_32(var) ((s16)((var) >> 16)) #define GET_LOW_U16_OF_32(var) ((u16)((var) & 0xFFFF)) #define GET_LOW_S16_OF_32(var) ((s16)((var) & 0xFFFF)) -#define SET_HIGH_U16_OF_32(var, val) ((var) = ((var) & 0xFFFF) | ((val) << 16)) -#define SET_HIGH_S16_OF_32(var, val) ((var) = ((var) & 0xFFFF) | ((val) << 16)) +#define SET_HIGH_U16_OF_32(var, x) ((var) = ((var) & 0xFFFF) | ((x) << 16)) +#define SET_HIGH_S16_OF_32(var, x) ((var) = ((var) & 0xFFFF) | ((x) << 16)) #else #define GET_HIGH_U16_OF_32(var) (((u16 *)&(var))[0]) #define GET_HIGH_S16_OF_32(var) (((s16 *)&(var))[0]) #define GET_LOW_U16_OF_32(var) (((u16 *)&(var))[1]) #define GET_LOW_S16_OF_32(var) (((s16 *)&(var))[1]) -#define SET_HIGH_U16_OF_32(var, val) ((((u16 *)&(var))[0]) = (val)) -#define SET_HIGH_S16_OF_32(var, val) ((((s16 *)&(var))[0]) = (val)) +#define SET_HIGH_U16_OF_32(var, x) ((((u16 *)&(var))[0]) = (x)) +#define SET_HIGH_S16_OF_32(var, x) ((((s16 *)&(var))[0]) = (x)) #endif // Layers @@ -176,9 +176,9 @@ #define ACT_SLEEPING 0x0C000203 // (0x003 | ACT_FLAG_STATIONARY | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) #define ACT_WAKING_UP 0x0C000204 // (0x004 | ACT_FLAG_STATIONARY | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) #define ACT_PANTING 0x0C400205 // (0x005 | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) -#define ACT_UNKNOWN_006 0x08000206 // (0x006 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT) -#define ACT_UNKNOWN_007 0x08000207 // (0x007 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT) -#define ACT_UNKNOWN_008 0x08000208 // (0x008 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT) +#define ACT_HOLD_PANTING_UNUSED 0x08000206 // (0x006 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT) +#define ACT_HOLD_IDLE 0x08000207 // (0x007 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT) +#define ACT_HOLD_HEAVY_IDLE 0x08000208 // (0x008 | ACT_FLAG_STATIONARY | ACT_FLAG_PAUSE_EXIT) #define ACT_STANDING_AGAINST_WALL 0x0C400209 // (0x009 | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) #define ACT_COUGHING 0x0C40020A // (0x00A | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) #define ACT_SHIVERING 0x0C40020B // (0x00B | ACT_FLAG_STATIONARY | ACT_FLAG_IDLE | ACT_FLAG_ALLOW_FIRST_PERSON | ACT_FLAG_PAUSE_EXIT) diff --git a/include/special_presets.h b/include/special_presets.h index 258d3c9..3256430 100644 --- a/include/special_presets.h +++ b/include/special_presets.h @@ -41,7 +41,7 @@ static struct SpecialPreset SpecialObjectPresets[] = {0x0D, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_LLL_ROTATING_HEXAGONAL_RING , bhvLllRotatingHexagonalRing}, {0x0E, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LLL_SINKING_RECTANGULAR_PLATFORM, bhvLllSinkingRectangularPlatform}, {0x0F, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_LLL_SINKING_SQUARE_PLATFORMS, bhvLllSinkingSquarePlatforms}, - {0x10, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_LLL_TILTING_SQUARE_PLATFORM, bhvLllTiltingSquarePlatform}, + {0x10, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_LLL_TILTING_SQUARE_PLATFORM, bhvLllTiltingInvertedPyramid}, {0x11, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvLllBowserPuzzle}, {0x12, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvMrI}, {0x13, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_BULLY, bhvSmallBully}, diff --git a/include/trig_tables.inc.c b/include/trig_tables.inc.c index 64cd8ac..b374ac1 100644 --- a/include/trig_tables.inc.c +++ b/include/trig_tables.inc.c @@ -255,7 +255,7 @@ f32 gSineTable[] = { 0.999830604f, 0.999857664f, 0.999882340f, 0.999904692f, 0.999924719f, 0.999942362f, 0.999957621f, 0.999970615f, 0.999981165f, 0.999989390f, 0.999995291f, 0.999998808f, -#if !BUGFIXES_CRITICAL +#ifndef AVOID_UB }; f32 gCosineTable[0x1000] = { diff --git a/levels/bbh/areas/1/1/model.inc.c b/levels/bbh/areas/1/1/model.inc.c index 1cceb6e..f504896 100644 --- a/levels/bbh/areas/1/1/model.inc.c +++ b/levels/bbh/areas/1/1/model.inc.c @@ -1,22 +1,14 @@ -// 0x07004800 - 0x07004808 -static const Ambient bbh_seg7_light_07004800 = { - {{0x20, 0x20, 0x20}, 0, {0x20, 0x20, 0x20}, 0} -}; +// 0x07004800 - 0x07004818 +static const Lights1 bbh_seg7_lights_07004800 = gdSPDefLights1( + 0x20, 0x20, 0x20, + 0x50, 0x50, 0x50, 0x28, 0x28, 0x28 +); -// 0x07004808 - 0x07004818 -static const Light bbh_seg7_light_07004808 = { - {{0x50, 0x50, 0x50}, 0, {0x50, 0x50, 0x50}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07004818 - 0x07004820 -static const Ambient bbh_seg7_light_07004818 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07004820 - 0x07004830 -static const Light bbh_seg7_light_07004820 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07004818 - 0x07004830 +static const Lights1 bbh_seg7_lights_07004818 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07004830 - 0x07004920 static const Vtx bbh_seg7_vertex_07004830[] = { @@ -739,8 +731,8 @@ static const Gfx bbh_seg7_dl_07006AF0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_07004808, 1), - gsSPLight(&bbh_seg7_light_07004800, 2), + gsSPLight(&bbh_seg7_lights_07004800.l, 1), + gsSPLight(&bbh_seg7_lights_07004800.a, 2), gsSPVertex(bbh_seg7_vertex_07004830, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -750,8 +742,8 @@ static const Gfx bbh_seg7_dl_07006AF0[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), gsSP1Triangle( 0, 10, 1, 0x0), - gsSPLight(&bbh_seg7_light_07004820, 1), - gsSPLight(&bbh_seg7_light_07004818, 2), + gsSPLight(&bbh_seg7_lights_07004818.l, 1), + gsSPLight(&bbh_seg7_lights_07004818.a, 2), gsSPVertex(bbh_seg7_vertex_070049D0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), gsSP2Triangles( 2, 4, 0, 0x0, 4, 3, 5, 0x0), diff --git a/levels/bbh/areas/1/12/model.inc.c b/levels/bbh/areas/1/12/model.inc.c index 7315bce..5474a87 100644 --- a/levels/bbh/areas/1/12/model.inc.c +++ b/levels/bbh/areas/1/12/model.inc.c @@ -1,22 +1,14 @@ -// 0x0700BC68 - 0x0700BC70 -static const Ambient bbh_seg7_light_0700BC68 = { - {{0x20, 0x20, 0x20}, 0, {0x20, 0x20, 0x20}, 0} -}; +// 0x0700BC68 - 0x0700BC80 +static const Lights1 bbh_seg7_lights_0700BC68 = gdSPDefLights1( + 0x20, 0x20, 0x20, + 0x50, 0x50, 0x50, 0x28, 0x28, 0x28 +); -// 0x0700BC70 - 0x0700BC80 -static const Light bbh_seg7_light_0700BC70 = { - {{0x50, 0x50, 0x50}, 0, {0x50, 0x50, 0x50}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700BC80 - 0x0700BC88 -static const Ambient bbh_seg7_light_0700BC80 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700BC88 - 0x0700BC98 -static const Light bbh_seg7_light_0700BC88 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700BC80 - 0x0700BC98 +static const Lights1 bbh_seg7_lights_0700BC80 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700BC98 - 0x0700BD18 static const Vtx bbh_seg7_vertex_0700BC98[] = { @@ -331,13 +323,13 @@ static const Gfx bbh_seg7_dl_0700CB58[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0700BC70, 1), - gsSPLight(&bbh_seg7_light_0700BC68, 2), + gsSPLight(&bbh_seg7_lights_0700BC68.l, 1), + gsSPLight(&bbh_seg7_lights_0700BC68.a, 2), gsSPVertex(bbh_seg7_vertex_0700BC98, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&bbh_seg7_light_0700BC88, 1), - gsSPLight(&bbh_seg7_light_0700BC80, 2), + gsSPLight(&bbh_seg7_lights_0700BC80.l, 1), + gsSPLight(&bbh_seg7_lights_0700BC80.a, 2), gsSPVertex(bbh_seg7_vertex_0700BD18, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), gsSP2Triangles( 2, 5, 3, 0x0, 6, 7, 8, 0x0), diff --git a/levels/bbh/areas/1/14/model.inc.c b/levels/bbh/areas/1/14/model.inc.c index 5c40b66..d93eb54 100644 --- a/levels/bbh/areas/1/14/model.inc.c +++ b/levels/bbh/areas/1/14/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700D350 - 0x0700D358 -static const Ambient bbh_seg7_light_0700D350 = { - {{0x3f, 0x51, 0x66}, 0, {0x3f, 0x51, 0x66}, 0} -}; - -// 0x0700D358 - 0x0700D368 -static const Light bbh_seg7_light_0700D358 = { - {{0x9e, 0xcc, 0xff}, 0, {0x9e, 0xcc, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700D350 - 0x0700D368 +static const Lights1 bbh_seg7_lights_0700D350 = gdSPDefLights1( + 0x3f, 0x51, 0x66, + 0x9e, 0xcc, 0xff, 0x28, 0x28, 0x28 +); // 0x0700D368 - 0x0700D428 static const Vtx bbh_seg7_vertex_0700D368[] = { @@ -29,8 +25,8 @@ static const Gfx bbh_seg7_dl_0700D428[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09006000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0700D358, 1), - gsSPLight(&bbh_seg7_light_0700D350, 2), + gsSPLight(&bbh_seg7_lights_0700D350.l, 1), + gsSPLight(&bbh_seg7_lights_0700D350.a, 2), gsSPVertex(bbh_seg7_vertex_0700D368, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/levels/bbh/areas/1/16/model.inc.c b/levels/bbh/areas/1/16/model.inc.c index af0c198..0b1c055 100644 --- a/levels/bbh/areas/1/16/model.inc.c +++ b/levels/bbh/areas/1/16/model.inc.c @@ -1,32 +1,20 @@ -// 0x0700D850 - 0x0700D858 -static const Ambient bbh_seg7_light_0700D850 = { - {{0x20, 0x20, 0x20}, 0, {0x20, 0x20, 0x20}, 0} -}; +// 0x0700D850 - 0x0700D868 +static const Lights1 bbh_seg7_lights_0700D850 = gdSPDefLights1( + 0x20, 0x20, 0x20, + 0x50, 0x50, 0x50, 0x28, 0x28, 0x28 +); -// 0x0700D858 - 0x0700D868 -static const Light bbh_seg7_light_0700D858 = { - {{0x50, 0x50, 0x50}, 0, {0x50, 0x50, 0x50}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700D868 - 0x0700D880 +static const Lights1 bbh_seg7_lights_0700D868 = gdSPDefLights1( + 0x3c, 0x3c, 0x3c, + 0x96, 0x96, 0x96, 0x28, 0x28, 0x28 +); -// 0x0700D868 - 0x0700D870 -static const Ambient bbh_seg7_light_0700D868 = { - {{0x3c, 0x3c, 0x3c}, 0, {0x3c, 0x3c, 0x3c}, 0} -}; - -// 0x0700D870 - 0x0700D880 -static const Light bbh_seg7_light_0700D870 = { - {{0x96, 0x96, 0x96}, 0, {0x96, 0x96, 0x96}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700D880 - 0x0700D888 -static const Ambient bbh_seg7_light_0700D880 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700D888 - 0x0700D898 -static const Light bbh_seg7_light_0700D888 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700D880 - 0x0700D898 +static const Lights1 bbh_seg7_lights_0700D880 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700D898 - 0x0700D918 static const Vtx bbh_seg7_vertex_0700D898[] = { @@ -485,19 +473,19 @@ static const Gfx bbh_seg7_dl_0700EE98[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0700D858, 1), - gsSPLight(&bbh_seg7_light_0700D850, 2), + gsSPLight(&bbh_seg7_lights_0700D850.l, 1), + gsSPLight(&bbh_seg7_lights_0700D850.a, 2), gsSPVertex(bbh_seg7_vertex_0700D898, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&bbh_seg7_light_0700D870, 1), - gsSPLight(&bbh_seg7_light_0700D868, 2), + gsSPLight(&bbh_seg7_lights_0700D868.l, 1), + gsSPLight(&bbh_seg7_lights_0700D868.a, 2), gsSPVertex(bbh_seg7_vertex_0700D918, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 5, 3, 0x0, 0, 2, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), - gsSPLight(&bbh_seg7_light_0700D888, 1), - gsSPLight(&bbh_seg7_light_0700D880, 2), + gsSPLight(&bbh_seg7_lights_0700D880.l, 1), + gsSPLight(&bbh_seg7_lights_0700D880.a, 2), gsSPVertex(bbh_seg7_vertex_0700D9B8, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 4, 5, 0, 0x0, 0, 2, 3, 0x0), diff --git a/levels/bbh/areas/1/18/model.inc.c b/levels/bbh/areas/1/18/model.inc.c index 1f4ec99..dd7b78e 100644 --- a/levels/bbh/areas/1/18/model.inc.c +++ b/levels/bbh/areas/1/18/model.inc.c @@ -1,42 +1,26 @@ -// 0x0700F8B8 - 0x0700F8C0 -static const Ambient bbh_seg7_light_0700F8B8 = { - {{0x65, 0x65, 0x38}, 0, {0x65, 0x65, 0x38}, 0} -}; +// 0x0700F8B8 - 0x0700F8D0 +static const Lights1 bbh_seg7_lights_0700F8B8 = gdSPDefLights1( + 0x65, 0x65, 0x38, + 0xfe, 0xfe, 0x8c, 0x28, 0x28, 0x28 +); -// 0x0700F8C0 - 0x0700F8D0 -static const Light bbh_seg7_light_0700F8C0 = { - {{0xfe, 0xfe, 0x8c}, 0, {0xfe, 0xfe, 0x8c}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700F8D0 - 0x0700F8E8 +static const Lights1 bbh_seg7_lights_0700F8D0 = gdSPDefLights1( + 0x20, 0x20, 0x20, + 0x50, 0x50, 0x50, 0x28, 0x28, 0x28 +); -// 0x0700F8D0 - 0x0700F8D8 -static const Ambient bbh_seg7_light_0700F8D0 = { - {{0x20, 0x20, 0x20}, 0, {0x20, 0x20, 0x20}, 0} -}; +// 0x0700F8E8 - 0x0700F900 +static const Lights1 bbh_seg7_lights_0700F8E8 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700F8D8 - 0x0700F8E8 -static const Light bbh_seg7_light_0700F8D8 = { - {{0x50, 0x50, 0x50}, 0, {0x50, 0x50, 0x50}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700F8E8 - 0x0700F8F0 -static const Ambient bbh_seg7_light_0700F8E8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700F8F0 - 0x0700F900 -static const Light bbh_seg7_light_0700F8F0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700F900 - 0x0700F908 -static const Ambient bbh_seg7_light_0700F900 = { - {{0x33, 0x2c, 0x20}, 0, {0x33, 0x2c, 0x20}, 0} -}; - -// 0x0700F908 - 0x0700F918 -static const Light bbh_seg7_light_0700F908 = { - {{0x80, 0x70, 0x52}, 0, {0x80, 0x70, 0x52}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700F900 - 0x0700F918 +static const Lights1 bbh_seg7_lights_0700F900 = gdSPDefLights1( + 0x33, 0x2c, 0x20, + 0x80, 0x70, 0x52, 0x28, 0x28, 0x28 +); // 0x0700F918 - 0x0700F9F8 static const Vtx bbh_seg7_vertex_0700F918[] = { @@ -410,8 +394,8 @@ static const Gfx bbh_seg7_dl_07010A48[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0700F8C0, 1), - gsSPLight(&bbh_seg7_light_0700F8B8, 2), + gsSPLight(&bbh_seg7_lights_0700F8B8.l, 1), + gsSPLight(&bbh_seg7_lights_0700F8B8.a, 2), gsSPVertex(bbh_seg7_vertex_0700F918, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 3, 0x0, 5, 7, 8, 0x0), @@ -420,13 +404,13 @@ static const Gfx bbh_seg7_dl_07010A48[] = { gsSPVertex(bbh_seg7_vertex_0700F9F8, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 0, 6, 1, 0x0), - gsSPLight(&bbh_seg7_light_0700F8D8, 1), - gsSPLight(&bbh_seg7_light_0700F8D0, 2), + gsSPLight(&bbh_seg7_lights_0700F8D0.l, 1), + gsSPLight(&bbh_seg7_lights_0700F8D0.a, 2), gsSPVertex(bbh_seg7_vertex_0700FA68, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&bbh_seg7_light_0700F8F0, 1), - gsSPLight(&bbh_seg7_light_0700F8E8, 2), + gsSPLight(&bbh_seg7_lights_0700F8E8.l, 1), + gsSPLight(&bbh_seg7_lights_0700F8E8.a, 2), gsSPVertex(bbh_seg7_vertex_0700FAE8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -439,18 +423,18 @@ static const Gfx bbh_seg7_dl_07010B58[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0700F8C0, 1), - gsSPLight(&bbh_seg7_light_0700F8B8, 2), + gsSPLight(&bbh_seg7_lights_0700F8B8.l, 1), + gsSPLight(&bbh_seg7_lights_0700F8B8.a, 2), gsSPVertex(bbh_seg7_vertex_0700FBA8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&bbh_seg7_light_0700F8F0, 1), - gsSPLight(&bbh_seg7_light_0700F8E8, 2), + gsSPLight(&bbh_seg7_lights_0700F8E8.l, 1), + gsSPLight(&bbh_seg7_lights_0700F8E8.a, 2), gsSPVertex(bbh_seg7_vertex_0700FBE8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 8, 10, 11, 0x0), - gsSPLight(&bbh_seg7_light_0700F908, 1), - gsSPLight(&bbh_seg7_light_0700F900, 2), + gsSPLight(&bbh_seg7_lights_0700F900.l, 1), + gsSPLight(&bbh_seg7_lights_0700F900.a, 2), gsSPVertex(bbh_seg7_vertex_0700FCA8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -463,14 +447,14 @@ static const Gfx bbh_seg7_dl_07010C30[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bbh_seg7_texture_07000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0700F8C0, 1), - gsSPLight(&bbh_seg7_light_0700F8B8, 2), + gsSPLight(&bbh_seg7_lights_0700F8B8.l, 1), + gsSPLight(&bbh_seg7_lights_0700F8B8.a, 2), gsSPVertex(bbh_seg7_vertex_0700FD68, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 8, 10, 11, 0x0), - gsSPLight(&bbh_seg7_light_0700F8F0, 1), - gsSPLight(&bbh_seg7_light_0700F8E8, 2), + gsSPLight(&bbh_seg7_lights_0700F8E8.l, 1), + gsSPLight(&bbh_seg7_lights_0700F8E8.a, 2), gsSPVertex(bbh_seg7_vertex_0700FE28, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 5, 3, 0x0, 0, 4, 1, 0x0), diff --git a/levels/bbh/areas/1/19/model.inc.c b/levels/bbh/areas/1/19/model.inc.c index 47597c2..577f533 100644 --- a/levels/bbh/areas/1/19/model.inc.c +++ b/levels/bbh/areas/1/19/model.inc.c @@ -1,12 +1,8 @@ -// 0x07011228 - 0x07011230 -static const Ambient bbh_seg7_light_07011228 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07011230 - 0x07011240 -static const Light bbh_seg7_light_07011230 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07011228 - 0x07011240 +static const Lights1 bbh_seg7_lights_07011228 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07011240 - 0x070112C0 static const Vtx bbh_seg7_vertex_07011240[] = { @@ -256,8 +252,8 @@ static const Gfx bbh_seg7_dl_07011DF0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_0900A000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_07011230, 1), - gsSPLight(&bbh_seg7_light_07011228, 2), + gsSPLight(&bbh_seg7_lights_07011228.l, 1), + gsSPLight(&bbh_seg7_lights_07011228.a, 2), gsSPVertex(bbh_seg7_vertex_07011240, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/levels/bbh/areas/1/20/model.inc.c b/levels/bbh/areas/1/20/model.inc.c index 49dc40b..be26cd0 100644 --- a/levels/bbh/areas/1/20/model.inc.c +++ b/levels/bbh/areas/1/20/model.inc.c @@ -1,12 +1,8 @@ -// 0x07012318 - 0x07012320 -static const Ambient bbh_seg7_light_07012318 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07012320 - 0x07012330 -static const Light bbh_seg7_light_07012320 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07012318 - 0x07012330 +static const Lights1 bbh_seg7_lights_07012318 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07012330 - 0x07012430 static const Vtx bbh_seg7_vertex_07012330[] = { @@ -41,8 +37,8 @@ static const Gfx bbh_seg7_dl_07012470[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bbh_seg7_texture_07000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_07012320, 1), - gsSPLight(&bbh_seg7_light_07012318, 2), + gsSPLight(&bbh_seg7_lights_07012318.l, 1), + gsSPLight(&bbh_seg7_lights_07012318.a, 2), gsSPVertex(bbh_seg7_vertex_07012330, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 3, 6, 2, 0x0), diff --git a/levels/bbh/areas/1/22/model.inc.c b/levels/bbh/areas/1/22/model.inc.c index e0dff62..f20a687 100644 --- a/levels/bbh/areas/1/22/model.inc.c +++ b/levels/bbh/areas/1/22/model.inc.c @@ -1,22 +1,14 @@ -// 0x07012758 - 0x07012760 -static const Ambient bbh_seg7_light_07012758 = { - {{0x3c, 0x3c, 0x3c}, 0, {0x3c, 0x3c, 0x3c}, 0} -}; +// 0x07012758 - 0x07012770 +static const Lights1 bbh_seg7_lights_07012758 = gdSPDefLights1( + 0x3c, 0x3c, 0x3c, + 0x96, 0x96, 0x96, 0x28, 0x28, 0x28 +); -// 0x07012760 - 0x07012770 -static const Light bbh_seg7_light_07012760 = { - {{0x96, 0x96, 0x96}, 0, {0x96, 0x96, 0x96}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07012770 - 0x07012778 -static const Ambient bbh_seg7_light_07012770 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07012778 - 0x07012788 -static const Light bbh_seg7_light_07012778 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07012770 - 0x07012788 +static const Lights1 bbh_seg7_lights_07012770 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07012788 - 0x070127C8 static const Vtx bbh_seg7_vertex_07012788[] = { @@ -311,8 +303,8 @@ static const Gfx bbh_seg7_dl_07013508[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_0900A000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_07012760, 1), - gsSPLight(&bbh_seg7_light_07012758, 2), + gsSPLight(&bbh_seg7_lights_07012758.l, 1), + gsSPLight(&bbh_seg7_lights_07012758.a, 2), gsSPVertex(bbh_seg7_vertex_07012788, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -323,8 +315,8 @@ static const Gfx bbh_seg7_dl_07013550[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_07012778, 1), - gsSPLight(&bbh_seg7_light_07012770, 2), + gsSPLight(&bbh_seg7_lights_07012770.l, 1), + gsSPLight(&bbh_seg7_lights_07012770.a, 2), gsSPVertex(bbh_seg7_vertex_070127C8, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/levels/bbh/areas/1/24/model.inc.c b/levels/bbh/areas/1/24/model.inc.c index ee5b659..4692f50 100644 --- a/levels/bbh/areas/1/24/model.inc.c +++ b/levels/bbh/areas/1/24/model.inc.c @@ -1,22 +1,14 @@ -// 0x07013C58 - 0x07013C60 -static const Ambient bbh_seg7_light_07013C58 = { - {{0x20, 0x20, 0x20}, 0, {0x20, 0x20, 0x20}, 0} -}; +// 0x07013C58 - 0x07013C70 +static const Lights1 bbh_seg7_lights_07013C58 = gdSPDefLights1( + 0x20, 0x20, 0x20, + 0x50, 0x50, 0x50, 0x28, 0x28, 0x28 +); -// 0x07013C60 - 0x07013C70 -static const Light bbh_seg7_light_07013C60 = { - {{0x50, 0x50, 0x50}, 0, {0x50, 0x50, 0x50}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07013C70 - 0x07013C78 -static const Ambient bbh_seg7_light_07013C70 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07013C78 - 0x07013C88 -static const Light bbh_seg7_light_07013C78 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07013C70 - 0x07013C88 +static const Lights1 bbh_seg7_lights_07013C70 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07013C88 - 0x07013D08 static const Vtx bbh_seg7_vertex_07013C88[] = { @@ -329,13 +321,13 @@ static const Gfx bbh_seg7_dl_07014B28[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_07013C60, 1), - gsSPLight(&bbh_seg7_light_07013C58, 2), + gsSPLight(&bbh_seg7_lights_07013C58.l, 1), + gsSPLight(&bbh_seg7_lights_07013C58.a, 2), gsSPVertex(bbh_seg7_vertex_07013C88, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&bbh_seg7_light_07013C78, 1), - gsSPLight(&bbh_seg7_light_07013C70, 2), + gsSPLight(&bbh_seg7_lights_07013C70.l, 1), + gsSPLight(&bbh_seg7_lights_07013C70.a, 2), gsSPVertex(bbh_seg7_vertex_07013D08, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -348,8 +340,8 @@ static const Gfx bbh_seg7_dl_07014BC8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_0900A000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_07013C60, 1), - gsSPLight(&bbh_seg7_light_07013C58, 2), + gsSPLight(&bbh_seg7_lights_07013C58.l, 1), + gsSPLight(&bbh_seg7_lights_07013C58.a, 2), gsSPVertex(bbh_seg7_vertex_07013DC8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -360,8 +352,8 @@ static const Gfx bbh_seg7_dl_07014C10[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_07013C78, 1), - gsSPLight(&bbh_seg7_light_07013C70, 2), + gsSPLight(&bbh_seg7_lights_07013C70.l, 1), + gsSPLight(&bbh_seg7_lights_07013C70.a, 2), gsSPVertex(bbh_seg7_vertex_07013E08, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/bbh/areas/1/28/model.inc.c b/levels/bbh/areas/1/28/model.inc.c index b19686a..437165e 100644 --- a/levels/bbh/areas/1/28/model.inc.c +++ b/levels/bbh/areas/1/28/model.inc.c @@ -1,12 +1,8 @@ -// 0x07015A90 - 0x07015A98 -static const Ambient bbh_seg7_light_07015A90 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07015A98 - 0x07015AA8 -static const Light bbh_seg7_light_07015A98 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07015A90 - 0x07015AA8 +static const Lights1 bbh_seg7_lights_07015A90 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07015AA8 - 0x07015B98 static const Vtx bbh_seg7_vertex_07015AA8[] = { @@ -398,8 +394,8 @@ static const Gfx bbh_seg7_dl_07016D38[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_07015A98, 1), - gsSPLight(&bbh_seg7_light_07015A90, 2), + gsSPLight(&bbh_seg7_lights_07015A90.l, 1), + gsSPLight(&bbh_seg7_lights_07015A90.a, 2), gsSPVertex(bbh_seg7_vertex_07015AA8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/bbh/areas/1/29/model.inc.c b/levels/bbh/areas/1/29/model.inc.c index 601cb87..f76f7fc 100644 --- a/levels/bbh/areas/1/29/model.inc.c +++ b/levels/bbh/areas/1/29/model.inc.c @@ -1,12 +1,8 @@ -// 0x07017480 - 0x07017488 -static const Ambient bbh_seg7_light_07017480 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07017488 - 0x07017498 -static const Light bbh_seg7_light_07017488 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07017480 - 0x07017498 +static const Lights1 bbh_seg7_lights_07017480 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07017498 - 0x07017518 static const Vtx bbh_seg7_vertex_07017498[] = { @@ -25,8 +21,8 @@ static const Gfx bbh_seg7_dl_07017518[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09006000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_07017488, 1), - gsSPLight(&bbh_seg7_light_07017480, 2), + gsSPLight(&bbh_seg7_lights_07017480.l, 1), + gsSPLight(&bbh_seg7_lights_07017480.a, 2), gsSPVertex(bbh_seg7_vertex_07017498, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/bbh/areas/1/3/model.inc.c b/levels/bbh/areas/1/3/model.inc.c index 462412a..7bcc13f 100644 --- a/levels/bbh/areas/1/3/model.inc.c +++ b/levels/bbh/areas/1/3/model.inc.c @@ -1,22 +1,14 @@ -// 0x070079B0 - 0x070079B8 -static const Ambient bbh_seg7_light_070079B0 = { - {{0x3f, 0x51, 0x66}, 0, {0x3f, 0x51, 0x66}, 0} -}; +// 0x070079B0 - 0x070079C8 +static const Lights1 bbh_seg7_lights_070079B0 = gdSPDefLights1( + 0x3f, 0x51, 0x66, + 0x9e, 0xcc, 0xff, 0x28, 0x28, 0x28 +); -// 0x070079B8 - 0x070079C8 -static const Light bbh_seg7_light_070079B8 = { - {{0x9e, 0xcc, 0xff}, 0, {0x9e, 0xcc, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070079C8 - 0x070079D0 -static const Ambient bbh_seg7_light_070079C8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x070079D0 - 0x070079E0 -static const Light bbh_seg7_light_070079D0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070079C8 - 0x070079E0 +static const Lights1 bbh_seg7_lights_070079C8 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070079E0 - 0x07007AA0 static const Vtx bbh_seg7_vertex_070079E0[] = { @@ -47,8 +39,8 @@ static const Gfx bbh_seg7_dl_07007AE0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09006000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_070079B8, 1), - gsSPLight(&bbh_seg7_light_070079B0, 2), + gsSPLight(&bbh_seg7_lights_070079B0.l, 1), + gsSPLight(&bbh_seg7_lights_070079B0.a, 2), gsSPVertex(bbh_seg7_vertex_070079E0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -61,8 +53,8 @@ static const Gfx bbh_seg7_dl_07007B48[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bbh_seg7_texture_07001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_070079D0, 1), - gsSPLight(&bbh_seg7_light_070079C8, 2), + gsSPLight(&bbh_seg7_lights_070079C8.l, 1), + gsSPLight(&bbh_seg7_lights_070079C8.a, 2), gsSPVertex(bbh_seg7_vertex_07007AA0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/bbh/areas/1/31/model.inc.c b/levels/bbh/areas/1/31/model.inc.c index dfe70aa..fb295fd 100644 --- a/levels/bbh/areas/1/31/model.inc.c +++ b/levels/bbh/areas/1/31/model.inc.c @@ -1,22 +1,14 @@ -// 0x070177F8 - 0x07017800 -static const Ambient bbh_seg7_light_070177F8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; +// 0x070177F8 - 0x07017810 +static const Lights1 bbh_seg7_lights_070177F8 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07017800 - 0x07017810 -static const Light bbh_seg7_light_07017800 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07017810 - 0x07017818 -static const Ambient bbh_seg7_light_07017810 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x07017818 - 0x07017828 -static const Light bbh_seg7_light_07017818 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07017810 - 0x07017828 +static const Lights1 bbh_seg7_lights_07017810 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x07017828 - 0x07017918 static const Vtx bbh_seg7_vertex_07017828[] = { @@ -631,8 +623,8 @@ static const Gfx bbh_seg7_dl_070195A8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_0900A000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_07017800, 1), - gsSPLight(&bbh_seg7_light_070177F8, 2), + gsSPLight(&bbh_seg7_lights_070177F8.l, 1), + gsSPLight(&bbh_seg7_lights_070177F8.a, 2), gsSPVertex(bbh_seg7_vertex_07017828, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -844,8 +836,8 @@ static const Gfx bbh_seg7_dl_07019E60[] = { // 0x07019EA8 - 0x07019EF8 static const Gfx bbh_seg7_dl_07019EA8[] = { - gsSPLight(&bbh_seg7_light_07017818, 1), - gsSPLight(&bbh_seg7_light_07017810, 2), + gsSPLight(&bbh_seg7_lights_07017810.l, 1), + gsSPLight(&bbh_seg7_lights_07017810.a, 2), gsSPVertex(bbh_seg7_vertex_07019508, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 1, 5, 0x0, 6, 7, 2, 0x0), diff --git a/levels/bbh/areas/1/33/model.inc.c b/levels/bbh/areas/1/33/model.inc.c index a3851a4..1330cb5 100644 --- a/levels/bbh/areas/1/33/model.inc.c +++ b/levels/bbh/areas/1/33/model.inc.c @@ -1,22 +1,14 @@ -// 0x0701A0F0 - 0x0701A0F8 -static const Ambient bbh_seg7_light_0701A0F0 = { - {{0x20, 0x20, 0x20}, 0, {0x20, 0x20, 0x20}, 0} -}; +// 0x0701A0F0 - 0x0701A108 +static const Lights1 bbh_seg7_lights_0701A0F0 = gdSPDefLights1( + 0x20, 0x20, 0x20, + 0x50, 0x50, 0x50, 0x28, 0x28, 0x28 +); -// 0x0701A0F8 - 0x0701A108 -static const Light bbh_seg7_light_0701A0F8 = { - {{0x50, 0x50, 0x50}, 0, {0x50, 0x50, 0x50}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701A108 - 0x0701A110 -static const Ambient bbh_seg7_light_0701A108 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0701A110 - 0x0701A120 -static const Light bbh_seg7_light_0701A110 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701A108 - 0x0701A120 +static const Lights1 bbh_seg7_lights_0701A108 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701A120 - 0x0701A160 static const Vtx bbh_seg7_vertex_0701A120[] = { @@ -127,8 +119,8 @@ static const Gfx bbh_seg7_dl_0701A620[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_0900A000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701A0F8, 1), - gsSPLight(&bbh_seg7_light_0701A0F0, 2), + gsSPLight(&bbh_seg7_lights_0701A0F0.l, 1), + gsSPLight(&bbh_seg7_lights_0701A0F0.a, 2), gsSPVertex(bbh_seg7_vertex_0701A120, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -139,8 +131,8 @@ static const Gfx bbh_seg7_dl_0701A668[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701A110, 1), - gsSPLight(&bbh_seg7_light_0701A108, 2), + gsSPLight(&bbh_seg7_lights_0701A108.l, 1), + gsSPLight(&bbh_seg7_lights_0701A108.a, 2), gsSPVertex(bbh_seg7_vertex_0701A160, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/bbh/areas/1/34/model.inc.c b/levels/bbh/areas/1/34/model.inc.c index 236be35..d4e7e57 100644 --- a/levels/bbh/areas/1/34/model.inc.c +++ b/levels/bbh/areas/1/34/model.inc.c @@ -1,32 +1,20 @@ -// 0x0701A920 - 0x0701A928 -static const Ambient bbh_seg7_light_0701A920 = { - {{0x10, 0x11, 0x16}, 0, {0x10, 0x11, 0x16}, 0} -}; +// 0x0701A920 - 0x0701A938 +static const Lights1 bbh_seg7_lights_0701A920 = gdSPDefLights1( + 0x10, 0x11, 0x16, + 0x2a, 0x2c, 0x37, 0x28, 0x28, 0x28 +); -// 0x0701A928 - 0x0701A938 -static const Light bbh_seg7_light_0701A928 = { - {{0x2a, 0x2c, 0x37}, 0, {0x2a, 0x2c, 0x37}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701A938 - 0x0701A950 +static const Lights1 bbh_seg7_lights_0701A938 = gdSPDefLights1( + 0x3c, 0x3c, 0x3c, + 0x96, 0x96, 0x96, 0x28, 0x28, 0x28 +); -// 0x0701A938 - 0x0701A940 -static const Ambient bbh_seg7_light_0701A938 = { - {{0x3c, 0x3c, 0x3c}, 0, {0x3c, 0x3c, 0x3c}, 0} -}; - -// 0x0701A940 - 0x0701A950 -static const Light bbh_seg7_light_0701A940 = { - {{0x96, 0x96, 0x96}, 0, {0x96, 0x96, 0x96}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701A950 - 0x0701A958 -static const Ambient bbh_seg7_light_0701A950 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0701A958 - 0x0701A968 -static const Light bbh_seg7_light_0701A958 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701A950 - 0x0701A968 +static const Lights1 bbh_seg7_lights_0701A950 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701A968 - 0x0701A9C8 static const Vtx bbh_seg7_vertex_0701A968[] = { @@ -241,8 +229,8 @@ static const Gfx bbh_seg7_dl_0701B328[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701A928, 1), - gsSPLight(&bbh_seg7_light_0701A920, 2), + gsSPLight(&bbh_seg7_lights_0701A920.l, 1), + gsSPLight(&bbh_seg7_lights_0701A920.a, 2), gsSPVertex(bbh_seg7_vertex_0701A968, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 1, 4, 5, 0x0, 1, 5, 2, 0x0), @@ -254,12 +242,12 @@ static const Gfx bbh_seg7_dl_0701B380[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701A940, 1), - gsSPLight(&bbh_seg7_light_0701A938, 2), + gsSPLight(&bbh_seg7_lights_0701A938.l, 1), + gsSPLight(&bbh_seg7_lights_0701A938.a, 2), gsSPVertex(bbh_seg7_vertex_0701A9C8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&bbh_seg7_light_0701A958, 1), - gsSPLight(&bbh_seg7_light_0701A950, 2), + gsSPLight(&bbh_seg7_lights_0701A950.l, 1), + gsSPLight(&bbh_seg7_lights_0701A950.a, 2), gsSPVertex(bbh_seg7_vertex_0701AA08, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/bbh/areas/1/35/model.inc.c b/levels/bbh/areas/1/35/model.inc.c index 08296cf..a139416 100644 --- a/levels/bbh/areas/1/35/model.inc.c +++ b/levels/bbh/areas/1/35/model.inc.c @@ -1,72 +1,44 @@ -// 0x0701B7A8 - 0x0701B7B0 -static const Ambient bbh_seg7_light_0701B7A8 = { - {{0x24, 0x11, 0x0b}, 0, {0x24, 0x11, 0x0b}, 0} -}; +// 0x0701B7A8 - 0x0701B7C0 +static const Lights1 bbh_seg7_lights_0701B7A8 = gdSPDefLights1( + 0x24, 0x11, 0x0b, + 0x5a, 0x2c, 0x1d, 0x28, 0x28, 0x28 +); -// 0x0701B7B0 - 0x0701B7C0 -static const Light bbh_seg7_light_0701B7B0 = { - {{0x5a, 0x2c, 0x1d}, 0, {0x5a, 0x2c, 0x1d}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701B7C0 - 0x0701B7D8 +static const Lights1 bbh_seg7_lights_0701B7C0 = gdSPDefLights1( + 0x20, 0x20, 0x20, + 0x50, 0x50, 0x50, 0x28, 0x28, 0x28 +); -// 0x0701B7C0 - 0x0701B7C8 -static const Ambient bbh_seg7_light_0701B7C0 = { - {{0x20, 0x20, 0x20}, 0, {0x20, 0x20, 0x20}, 0} -}; +// 0x0701B7D8 - 0x0701B7F0 +static const Lights1 bbh_seg7_lights_0701B7D8 = gdSPDefLights1( + 0x3c, 0x3c, 0x3c, + 0x96, 0x96, 0x96, 0x28, 0x28, 0x28 +); -// 0x0701B7C8 - 0x0701B7D8 -static const Light bbh_seg7_light_0701B7C8 = { - {{0x50, 0x50, 0x50}, 0, {0x50, 0x50, 0x50}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701B7F0 - 0x0701B808 +static const Lights1 bbh_seg7_lights_0701B7F0 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0701B7D8 - 0x0701B7E0 -static const Ambient bbh_seg7_light_0701B7D8 = { - {{0x3c, 0x3c, 0x3c}, 0, {0x3c, 0x3c, 0x3c}, 0} -}; +// 0x0701B808 - 0x0701B820 +static const Lights1 bbh_seg7_lights_0701B808 = gdSPDefLights1( + 0x24, 0x07, 0x00, + 0x5a, 0x13, 0x00, 0x28, 0x28, 0x28 +); -// 0x0701B7E0 - 0x0701B7F0 -static const Light bbh_seg7_light_0701B7E0 = { - {{0x96, 0x96, 0x96}, 0, {0x96, 0x96, 0x96}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701B820 - 0x0701B838 +static const Lights1 bbh_seg7_lights_0701B820 = gdSPDefLights1( + 0x44, 0x1c, 0x0c, + 0xaa, 0x46, 0x1e, 0x28, 0x28, 0x28 +); -// 0x0701B7F0 - 0x0701B7F8 -static const Ambient bbh_seg7_light_0701B7F0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0701B7F8 - 0x0701B808 -static const Light bbh_seg7_light_0701B7F8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701B808 - 0x0701B810 -static const Ambient bbh_seg7_light_0701B808 = { - {{0x24, 0x07, 0x00}, 0, {0x24, 0x07, 0x00}, 0} -}; - -// 0x0701B810 - 0x0701B820 -static const Light bbh_seg7_light_0701B810 = { - {{0x5a, 0x13, 0x00}, 0, {0x5a, 0x13, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701B820 - 0x0701B828 -static const Ambient bbh_seg7_light_0701B820 = { - {{0x44, 0x1c, 0x0c}, 0, {0x44, 0x1c, 0x0c}, 0} -}; - -// 0x0701B828 - 0x0701B838 -static const Light bbh_seg7_light_0701B828 = { - {{0xaa, 0x46, 0x1e}, 0, {0xaa, 0x46, 0x1e}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701B838 - 0x0701B840 -static const Ambient bbh_seg7_light_0701B838 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x0701B840 - 0x0701B850 -static const Light bbh_seg7_light_0701B840 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701B838 - 0x0701B850 +static const Lights1 bbh_seg7_lights_0701B838 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x0701B850 - 0x0701B940 static const Vtx bbh_seg7_vertex_0701B850[] = { @@ -764,8 +736,8 @@ static const Gfx bbh_seg7_dl_0701D9C0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701B7B0, 1), - gsSPLight(&bbh_seg7_light_0701B7A8, 2), + gsSPLight(&bbh_seg7_lights_0701B7A8.l, 1), + gsSPLight(&bbh_seg7_lights_0701B7A8.a, 2), gsSPVertex(bbh_seg7_vertex_0701B850, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -782,8 +754,8 @@ static const Gfx bbh_seg7_dl_0701DA50[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_0900A000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701B7C8, 1), - gsSPLight(&bbh_seg7_light_0701B7C0, 2), + gsSPLight(&bbh_seg7_lights_0701B7C0.l, 1), + gsSPLight(&bbh_seg7_lights_0701B7C0.a, 2), gsSPVertex(bbh_seg7_vertex_0701B9B0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 7, 0x0, 4, 8, 9, 0x0), @@ -803,15 +775,15 @@ static const Gfx bbh_seg7_dl_0701DB20[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701B7E0, 1), - gsSPLight(&bbh_seg7_light_0701B7D8, 2), + gsSPLight(&bbh_seg7_lights_0701B7D8.l, 1), + gsSPLight(&bbh_seg7_lights_0701B7D8.a, 2), gsSPVertex(bbh_seg7_vertex_0701BAF0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 9, 10, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(11, 13, 14, 0x0, 0, 15, 1, 0x0), - gsSPLight(&bbh_seg7_light_0701B7F8, 1), - gsSPLight(&bbh_seg7_light_0701B7F0, 2), + gsSPLight(&bbh_seg7_lights_0701B7F0.l, 1), + gsSPLight(&bbh_seg7_lights_0701B7F0.a, 2), gsSPVertex(bbh_seg7_vertex_0701BBF0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -825,15 +797,15 @@ static const Gfx bbh_seg7_dl_0701DBF0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701B7B0, 1), - gsSPLight(&bbh_seg7_light_0701B7A8, 2), + gsSPLight(&bbh_seg7_lights_0701B7A8.l, 1), + gsSPLight(&bbh_seg7_lights_0701B7A8.a, 2), gsSPVertex(bbh_seg7_vertex_0701BCF0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 9, 10, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(12, 14, 13, 0x0, 0, 15, 1, 0x0), - gsSPLight(&bbh_seg7_light_0701B810, 1), - gsSPLight(&bbh_seg7_light_0701B808, 2), + gsSPLight(&bbh_seg7_lights_0701B808.l, 1), + gsSPLight(&bbh_seg7_lights_0701B808.a, 2), gsSPVertex(bbh_seg7_vertex_0701BDF0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -879,8 +851,8 @@ static const Gfx bbh_seg7_dl_0701DBF0[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles(10, 11, 12, 0x0, 10, 12, 13, 0x0), - gsSPLight(&bbh_seg7_light_0701B7F8, 1), - gsSPLight(&bbh_seg7_light_0701B7F0, 2), + gsSPLight(&bbh_seg7_lights_0701B7F0.l, 1), + gsSPLight(&bbh_seg7_lights_0701B7F0.a, 2), gsSPVertex(bbh_seg7_vertex_0701C730, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -890,8 +862,8 @@ static const Gfx bbh_seg7_dl_0701DBF0[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), gsSP1Triangle( 0, 2, 10, 0x0), - gsSPLight(&bbh_seg7_light_0701B828, 1), - gsSPLight(&bbh_seg7_light_0701B820, 2), + gsSPLight(&bbh_seg7_lights_0701B820.l, 1), + gsSPLight(&bbh_seg7_lights_0701B820.a, 2), gsSPVertex(bbh_seg7_vertex_0701C8D0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -904,8 +876,8 @@ static const Gfx bbh_seg7_dl_0701DFA0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701B7C8, 1), - gsSPLight(&bbh_seg7_light_0701B7C0, 2), + gsSPLight(&bbh_seg7_lights_0701B7C0.l, 1), + gsSPLight(&bbh_seg7_lights_0701B7C0.a, 2), gsSPVertex(bbh_seg7_vertex_0701C990, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -948,8 +920,8 @@ static const Gfx bbh_seg7_dl_0701E188[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bbh_seg7_texture_07000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701B7F8, 1), - gsSPLight(&bbh_seg7_light_0701B7F0, 2), + gsSPLight(&bbh_seg7_lights_0701B7F0.l, 1), + gsSPLight(&bbh_seg7_lights_0701B7F0.a, 2), gsSPVertex(bbh_seg7_vertex_0701D030, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 3, 8, 0x0), @@ -964,13 +936,13 @@ static const Gfx bbh_seg7_dl_0701E210[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701B7E0, 1), - gsSPLight(&bbh_seg7_light_0701B7D8, 2), + gsSPLight(&bbh_seg7_lights_0701B7D8.l, 1), + gsSPLight(&bbh_seg7_lights_0701B7D8.a, 2), gsSPVertex(bbh_seg7_vertex_0701D130, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&bbh_seg7_light_0701B7F8, 1), - gsSPLight(&bbh_seg7_light_0701B7F0, 2), + gsSPLight(&bbh_seg7_lights_0701B7F0.l, 1), + gsSPLight(&bbh_seg7_lights_0701B7F0.a, 2), gsSPVertex(bbh_seg7_vertex_0701D1B0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 3, 9, 4, 0x0), @@ -1024,8 +996,8 @@ static const Gfx bbh_seg7_dl_0701E430[] = { // 0x0701E4B0 - 0x0701E4E0 static const Gfx bbh_seg7_dl_0701E4B0[] = { - gsSPLight(&bbh_seg7_light_0701B840, 1), - gsSPLight(&bbh_seg7_light_0701B838, 2), + gsSPLight(&bbh_seg7_lights_0701B838.l, 1), + gsSPLight(&bbh_seg7_lights_0701B838.a, 2), gsSPVertex(bbh_seg7_vertex_0701D980, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/bbh/areas/1/36/model.inc.c b/levels/bbh/areas/1/36/model.inc.c index b4610ba..d6501ea 100644 --- a/levels/bbh/areas/1/36/model.inc.c +++ b/levels/bbh/areas/1/36/model.inc.c @@ -1,12 +1,8 @@ -// 0x0701E5D8 - 0x0701E5E0 -static const Ambient bbh_seg7_light_0701E5D8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0701E5E0 - 0x0701E5F0 -static const Light bbh_seg7_light_0701E5E0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701E5D8 - 0x0701E5F0 +static const Lights1 bbh_seg7_lights_0701E5D8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701E5F0 - 0x0701E6E0 static const Vtx bbh_seg7_vertex_0701E5F0[] = { @@ -59,8 +55,8 @@ static const Gfx bbh_seg7_dl_0701E810[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bbh_seg7_texture_07001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701E5E0, 1), - gsSPLight(&bbh_seg7_light_0701E5D8, 2), + gsSPLight(&bbh_seg7_lights_0701E5D8.l, 1), + gsSPLight(&bbh_seg7_lights_0701E5D8.a, 2), gsSPVertex(bbh_seg7_vertex_0701E5F0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/bbh/areas/1/37/model.inc.c b/levels/bbh/areas/1/37/model.inc.c index 41a66b5..3810ed4 100644 --- a/levels/bbh/areas/1/37/model.inc.c +++ b/levels/bbh/areas/1/37/model.inc.c @@ -1,22 +1,14 @@ -// 0x0701E948 - 0x0701E950 -static const Ambient bbh_seg7_light_0701E948 = { - {{0x24, 0x11, 0x0b}, 0, {0x24, 0x11, 0x0b}, 0} -}; +// 0x0701E948 - 0x0701E960 +static const Lights1 bbh_seg7_lights_0701E948 = gdSPDefLights1( + 0x24, 0x11, 0x0b, + 0x5a, 0x2c, 0x1d, 0x28, 0x28, 0x28 +); -// 0x0701E950 - 0x0701E960 -static const Light bbh_seg7_light_0701E950 = { - {{0x5a, 0x2c, 0x1d}, 0, {0x5a, 0x2c, 0x1d}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701E960 - 0x0701E968 -static const Ambient bbh_seg7_light_0701E960 = { - {{0x3c, 0x3c, 0x3c}, 0, {0x3c, 0x3c, 0x3c}, 0} -}; - -// 0x0701E968 - 0x0701E978 -static const Light bbh_seg7_light_0701E968 = { - {{0x96, 0x96, 0x96}, 0, {0x96, 0x96, 0x96}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701E960 - 0x0701E978 +static const Lights1 bbh_seg7_lights_0701E960 = gdSPDefLights1( + 0x3c, 0x3c, 0x3c, + 0x96, 0x96, 0x96, 0x28, 0x28, 0x28 +); // 0x0701E978 - 0x0701E9F8 static const Vtx bbh_seg7_vertex_0701E978[] = { @@ -81,13 +73,13 @@ static const Gfx bbh_seg7_dl_0701EC18[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09006000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701E950, 1), - gsSPLight(&bbh_seg7_light_0701E948, 2), + gsSPLight(&bbh_seg7_lights_0701E948.l, 1), + gsSPLight(&bbh_seg7_lights_0701E948.a, 2), gsSPVertex(bbh_seg7_vertex_0701E978, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&bbh_seg7_light_0701E968, 1), - gsSPLight(&bbh_seg7_light_0701E960, 2), + gsSPLight(&bbh_seg7_lights_0701E960.l, 1), + gsSPLight(&bbh_seg7_lights_0701E960.a, 2), gsSPVertex(bbh_seg7_vertex_0701E9F8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/bbh/areas/1/7/model.inc.c b/levels/bbh/areas/1/7/model.inc.c index 7745539..af6faf5 100644 --- a/levels/bbh/areas/1/7/model.inc.c +++ b/levels/bbh/areas/1/7/model.inc.c @@ -1,32 +1,20 @@ -// 0x07008F18 - 0x07008F20 -static const Ambient bbh_seg7_light_07008F18 = { - {{0x20, 0x20, 0x20}, 0, {0x20, 0x20, 0x20}, 0} -}; +// 0x07008F18 - 0x07008F30 +static const Lights1 bbh_seg7_lights_07008F18 = gdSPDefLights1( + 0x20, 0x20, 0x20, + 0x50, 0x50, 0x50, 0x28, 0x28, 0x28 +); -// 0x07008F20 - 0x07008F30 -static const Light bbh_seg7_light_07008F20 = { - {{0x50, 0x50, 0x50}, 0, {0x50, 0x50, 0x50}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07008F30 - 0x07008F48 +static const Lights1 bbh_seg7_lights_07008F30 = gdSPDefLights1( + 0x3c, 0x3c, 0x3c, + 0x96, 0x96, 0x96, 0x28, 0x28, 0x28 +); -// 0x07008F30 - 0x07008F38 -static const Ambient bbh_seg7_light_07008F30 = { - {{0x3c, 0x3c, 0x3c}, 0, {0x3c, 0x3c, 0x3c}, 0} -}; - -// 0x07008F38 - 0x07008F48 -static const Light bbh_seg7_light_07008F38 = { - {{0x96, 0x96, 0x96}, 0, {0x96, 0x96, 0x96}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07008F48 - 0x07008F50 -static const Ambient bbh_seg7_light_07008F48 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07008F50 - 0x07008F60 -static const Light bbh_seg7_light_07008F50 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07008F48 - 0x07008F60 +static const Lights1 bbh_seg7_lights_07008F48 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07008F60 - 0x07008FE0 static const Vtx bbh_seg7_vertex_07008F60[] = { @@ -543,21 +531,21 @@ static const Gfx bbh_seg7_dl_0700A800[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_07008F20, 1), - gsSPLight(&bbh_seg7_light_07008F18, 2), + gsSPLight(&bbh_seg7_lights_07008F18.l, 1), + gsSPLight(&bbh_seg7_lights_07008F18.a, 2), gsSPVertex(bbh_seg7_vertex_07008F60, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&bbh_seg7_light_07008F38, 1), - gsSPLight(&bbh_seg7_light_07008F30, 2), + gsSPLight(&bbh_seg7_lights_07008F30.l, 1), + gsSPLight(&bbh_seg7_lights_07008F30.a, 2), gsSPVertex(bbh_seg7_vertex_07008FE0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 4, 0x0), gsSP2Triangles( 9, 10, 8, 0x0, 10, 0, 8, 0x0), gsSP2Triangles( 0, 2, 11, 0x0, 12, 5, 13, 0x0), gsSP2Triangles( 7, 14, 8, 0x0, 12, 13, 15, 0x0), - gsSPLight(&bbh_seg7_light_07008F50, 1), - gsSPLight(&bbh_seg7_light_07008F48, 2), + gsSPLight(&bbh_seg7_lights_07008F48.l, 1), + gsSPLight(&bbh_seg7_lights_07008F48.a, 2), gsSPVertex(bbh_seg7_vertex_070090E0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/bbh/areas/1/8/model.inc.c b/levels/bbh/areas/1/8/model.inc.c index 8eed309..abc5a6a 100644 --- a/levels/bbh/areas/1/8/model.inc.c +++ b/levels/bbh/areas/1/8/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700B0D8 - 0x0700B0E0 -static const Ambient bbh_seg7_light_0700B0D8 = { - {{0x3f, 0x51, 0x66}, 0, {0x3f, 0x51, 0x66}, 0} -}; - -// 0x0700B0E0 - 0x0700B0F0 -static const Light bbh_seg7_light_0700B0E0 = { - {{0x9e, 0xcc, 0xff}, 0, {0x9e, 0xcc, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700B0D8 - 0x0700B0F0 +static const Lights1 bbh_seg7_lights_0700B0D8 = gdSPDefLights1( + 0x3f, 0x51, 0x66, + 0x9e, 0xcc, 0xff, 0x28, 0x28, 0x28 +); // 0x0700B0F0 - 0x0700B170 static const Vtx bbh_seg7_vertex_0700B0F0[] = { @@ -25,8 +21,8 @@ static const Gfx bbh_seg7_dl_0700B170[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09006000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0700B0E0, 1), - gsSPLight(&bbh_seg7_light_0700B0D8, 2), + gsSPLight(&bbh_seg7_lights_0700B0D8.l, 1), + gsSPLight(&bbh_seg7_lights_0700B0D8.a, 2), gsSPVertex(bbh_seg7_vertex_0700B0F0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/bbh/areas/1/macro.inc.c b/levels/bbh/areas/1/macro.inc.c index 634e64b..acc59b6 100644 --- a/levels/bbh/areas/1/macro.inc.c +++ b/levels/bbh/areas/1/macro.inc.c @@ -1,8 +1,8 @@ // 0x070268C4 - 0x07026A1A const MacroObject bbh_seg7_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_haunted_chair, /*yaw*/ 90, /*pos*/ -1960, -20, 340), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -800, -204, 2915, /*behParam*/ 63), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 400, -204, 3057, /*behParam*/ 85), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -800, -204, 2915, /*behParam*/ DIALOG_063), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 400, -204, 3057, /*behParam*/ DIALOG_085), MACRO_OBJECT(/*preset*/ macro_haunted_chair, /*yaw*/ 270, /*pos*/ -1080, 20, 160), MACRO_OBJECT(/*preset*/ macro_box_vanish_cap, /*yaw*/ 0, /*pos*/ 1268, 1050, 1860), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ -1164, 0, 2325), @@ -19,12 +19,12 @@ const MacroObject bbh_seg7_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_hidden_blue_coin, /*yaw*/ 0, /*pos*/ 1700, 1840, 1100), MACRO_OBJECT(/*preset*/ macro_hidden_blue_coin, /*yaw*/ 0, /*pos*/ 0, 1840, 1100), MACRO_OBJECT(/*preset*/ macro_hidden_blue_coin, /*yaw*/ 0, /*pos*/ -400, 1840, 1100), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 2026, -204, 2966, /*behParam*/ 102), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 2026, -204, 2966, /*behParam*/ DIALOG_102), MACRO_OBJECT(/*preset*/ macro_mr_i, /*yaw*/ 0, /*pos*/ 480, 10, -653), MACRO_OBJECT(/*preset*/ macro_scuttlebug, /*yaw*/ 0, /*pos*/ -346, -204, -2813), MACRO_OBJECT(/*preset*/ macro_scuttlebug, /*yaw*/ 0, /*pos*/ 1146, -203, -2280), MACRO_OBJECT(/*preset*/ macro_mr_i, /*yaw*/ 0, /*pos*/ -2369, -204, 5184), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 135, /*pos*/ -1546, -204, 4813, /*behParam*/ 86), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 135, /*pos*/ -1546, -204, 4813, /*behParam*/ DIALOG_086), MACRO_OBJECT(/*preset*/ macro_scuttlebug, /*yaw*/ 0, /*pos*/ 3466, -204, 5106), MACRO_OBJECT(/*preset*/ macro_mr_i, /*yaw*/ 0, /*pos*/ 1640, 840, -733), MACRO_OBJECT(/*preset*/ macro_box_vanish_cap, /*yaw*/ 0, /*pos*/ -1960, 300, -120), diff --git a/levels/bbh/coffin/model.inc.c b/levels/bbh/coffin/model.inc.c index 52fbc03..147b833 100644 --- a/levels/bbh/coffin/model.inc.c +++ b/levels/bbh/coffin/model.inc.c @@ -1,12 +1,8 @@ -// 0x07020368 - 0x07020370 -static const Ambient bbh_seg7_light_07020368 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07020370 - 0x07020380 -static const Light bbh_seg7_light_07020370 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07020368 - 0x07020380 +static const Lights1 bbh_seg7_lights_07020368 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07020380 - 0x07020480 static const Vtx bbh_seg7_vertex_07020380[] = { @@ -65,8 +61,8 @@ static const Gfx bbh_seg7_dl_070205C0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bbh_seg7_texture_07004400), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 16 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_07020370, 1), - gsSPLight(&bbh_seg7_light_07020368, 2), + gsSPLight(&bbh_seg7_lights_07020368.l, 1), + gsSPLight(&bbh_seg7_lights_07020368.a, 2), gsSPVertex(bbh_seg7_vertex_07020380, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/bbh/leveldata.c b/levels/bbh/leveldata.c index f799f94..74440b9 100644 --- a/levels/bbh/leveldata.c +++ b/levels/bbh/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/bbh/texture.inc.c" diff --git a/levels/bbh/merry_go_round/model.inc.c b/levels/bbh/merry_go_round/model.inc.c index 1f8c211..0647bec 100644 --- a/levels/bbh/merry_go_round/model.inc.c +++ b/levels/bbh/merry_go_round/model.inc.c @@ -1,12 +1,8 @@ -// 0x07020058 - 0x07020060 -static const Ambient bbh_seg7_light_07020058 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07020060 - 0x07020070 -static const Light bbh_seg7_light_07020060 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07020058 - 0x07020070 +static const Lights1 bbh_seg7_lights_07020058 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07020070 - 0x07020130 static const Vtx bbh_seg7_vertex_07020070[] = { @@ -49,8 +45,8 @@ static const Gfx bbh_seg7_dl_07020230[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_07020060, 1), - gsSPLight(&bbh_seg7_light_07020058, 2), + gsSPLight(&bbh_seg7_lights_07020058.l, 1), + gsSPLight(&bbh_seg7_lights_07020058.a, 2), gsSPVertex(bbh_seg7_vertex_07020070, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/levels/bbh/moving_bookshelf/model.inc.c b/levels/bbh/moving_bookshelf/model.inc.c index 590980c..f20df1e 100644 --- a/levels/bbh/moving_bookshelf/model.inc.c +++ b/levels/bbh/moving_bookshelf/model.inc.c @@ -1,12 +1,8 @@ -// 0x0701FB20 - 0x0701FB28 -static const Ambient bbh_seg7_light_0701FB20 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0701FB28 - 0x0701FB38 -static const Light bbh_seg7_light_0701FB28 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701FB20 - 0x0701FB38 +static const Lights1 bbh_seg7_lights_0701FB20 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701FB38 - 0x0701FB78 static const Vtx bbh_seg7_vertex_0701FB38[] = { @@ -41,8 +37,8 @@ static const Gfx bbh_seg7_dl_0701FC78[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701FB28, 1), - gsSPLight(&bbh_seg7_light_0701FB20, 2), + gsSPLight(&bbh_seg7_lights_0701FB20.l, 1), + gsSPLight(&bbh_seg7_lights_0701FB20.a, 2), gsSPVertex(bbh_seg7_vertex_0701FB38, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/bbh/script.c b/levels/bbh/script.c index e53596a..6895663 100644 --- a/levels/bbh/script.c +++ b/levels/bbh/script.c @@ -3,6 +3,7 @@ #include "behavior_data.h" #include "model_ids.h" #include "seq_ids.h" +#include "dialog_ids.h" #include "segment_symbols.h" #include "level_commands.h" @@ -107,13 +108,13 @@ const LevelScript level_bbh_entry[] = { JUMP_LINK(script_func_local_3), JUMP_LINK(script_func_local_4), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 666, 796, 5350, /*angle*/ 0, 180, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps74), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x04, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x1A, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x1A, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_BBH, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE_COURTYARD, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE_COURTYARD, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), TERRAIN(/*terrainData*/ bbh_seg7_collision_level), MACRO_OBJECTS(/*objList*/ bbh_seg7_macro_objs), ROOMS(/*surfaceRooms*/ bbh_seg7_rooms), - SHOW_DIALOG(/*index*/ 0x00, /*dialogid*/ 0x62), + SHOW_DIALOG(/*index*/ 0x00, DIALOG_098), SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0006, /*seq*/ SEQ_LEVEL_SPOOKY), TERRAIN_TYPE(/*terrainType*/ TERRAIN_SPOOKY), END_AREA(), diff --git a/levels/bbh/staircase_step/model.inc.c b/levels/bbh/staircase_step/model.inc.c index bb6067f..9b0a917 100644 --- a/levels/bbh/staircase_step/model.inc.c +++ b/levels/bbh/staircase_step/model.inc.c @@ -1,12 +1,8 @@ -// 0x0701F0E0 - 0x0701F0E8 -static const Ambient bbh_seg7_light_0701F0E0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0701F0E8 - 0x0701F0F8 -static const Light bbh_seg7_light_0701F0E8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701F0E0 - 0x0701F0F8 +static const Lights1 bbh_seg7_lights_0701F0E0 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701F0F8 - 0x0701F138 static const Vtx bbh_seg7_vertex_0701F0F8[] = { @@ -41,8 +37,8 @@ static const Gfx bbh_seg7_dl_0701F238[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_0900A000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701F0E8, 1), - gsSPLight(&bbh_seg7_light_0701F0E0, 2), + gsSPLight(&bbh_seg7_lights_0701F0E0.l, 1), + gsSPLight(&bbh_seg7_lights_0701F0E0.a, 2), gsSPVertex(bbh_seg7_vertex_0701F0F8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/bbh/tilting_trap_platform/model.inc.c b/levels/bbh/tilting_trap_platform/model.inc.c index f9268cd..5d07d91 100644 --- a/levels/bbh/tilting_trap_platform/model.inc.c +++ b/levels/bbh/tilting_trap_platform/model.inc.c @@ -1,12 +1,8 @@ -// 0x0701F378 - 0x0701F380 -static const Ambient bbh_seg7_light_0701F378 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0701F380 - 0x0701F390 -static const Light bbh_seg7_light_0701F380 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701F378 - 0x0701F390 +static const Lights1 bbh_seg7_lights_0701F378 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701F390 - 0x0701F3D0 static const Vtx bbh_seg7_vertex_0701F390[] = { @@ -49,8 +45,8 @@ static const Gfx bbh_seg7_dl_0701F510[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701F380, 1), - gsSPLight(&bbh_seg7_light_0701F378, 2), + gsSPLight(&bbh_seg7_lights_0701F378.l, 1), + gsSPLight(&bbh_seg7_lights_0701F378.a, 2), gsSPVertex(bbh_seg7_vertex_0701F390, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/bbh/tumbling_platform_far/model.inc.c b/levels/bbh/tumbling_platform_far/model.inc.c index e5c098d..9e523ee 100644 --- a/levels/bbh/tumbling_platform_far/model.inc.c +++ b/levels/bbh/tumbling_platform_far/model.inc.c @@ -1,12 +1,8 @@ -// 0x0701F6A8 - 0x0701F6B0 -static const Ambient bbh_seg7_light_0701F6A8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0701F6B0 - 0x0701F6C0 -static const Light bbh_seg7_light_0701F6B0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701F6A8 - 0x0701F6C0 +static const Lights1 bbh_seg7_lights_0701F6A8 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701F6C0 - 0x0701F780 static const Vtx bbh_seg7_vertex_0701F6C0[] = { @@ -29,8 +25,8 @@ static const Gfx bbh_seg7_dl_0701F780[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701F6B0, 1), - gsSPLight(&bbh_seg7_light_0701F6A8, 2), + gsSPLight(&bbh_seg7_lights_0701F6A8.l, 1), + gsSPLight(&bbh_seg7_lights_0701F6A8.a, 2), gsSPVertex(bbh_seg7_vertex_0701F6C0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/bbh/tumbling_platform_near/model.inc.c b/levels/bbh/tumbling_platform_near/model.inc.c index e045bee..f5ab8dc 100644 --- a/levels/bbh/tumbling_platform_near/model.inc.c +++ b/levels/bbh/tumbling_platform_near/model.inc.c @@ -1,12 +1,8 @@ -// 0x0701F858 - 0x0701F860 -static const Ambient bbh_seg7_light_0701F858 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0701F860 - 0x0701F870 -static const Light bbh_seg7_light_0701F860 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701F858 - 0x0701F870 +static const Lights1 bbh_seg7_lights_0701F858 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701F870 - 0x0701F960 static const Vtx bbh_seg7_vertex_0701F870[] = { @@ -47,8 +43,8 @@ static const Gfx bbh_seg7_dl_0701FA10[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, spooky_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bbh_seg7_light_0701F860, 1), - gsSPLight(&bbh_seg7_light_0701F858, 2), + gsSPLight(&bbh_seg7_lights_0701F858.l, 1), + gsSPLight(&bbh_seg7_lights_0701F858.a, 2), gsSPVertex(bbh_seg7_vertex_0701F870, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/bitdw/areas/1/macro.inc.c b/levels/bitdw/areas/1/macro.inc.c index 9232ded..cf1783a 100644 --- a/levels/bitdw/areas/1/macro.inc.c +++ b/levels/bitdw/areas/1/macro.inc.c @@ -46,7 +46,7 @@ const MacroObject bitdw_seg7_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ -6475, 125, 890), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ -7810, -3100, 4900), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 1500, 1066, -166), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 5940, 2765, -280, /*behParam*/ 66), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 5940, 2765, -280, /*behParam*/ DIALOG_066), MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -2357, 1400, -2454), MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -170, 1070, 500), MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 1450, 1400, 500), diff --git a/levels/bitdw/ferris_wheel_axle/model.inc.c b/levels/bitdw/ferris_wheel_axle/model.inc.c index 49d0999..9370404 100644 --- a/levels/bitdw/ferris_wheel_axle/model.inc.c +++ b/levels/bitdw/ferris_wheel_axle/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700B4F0 - 0x0700B4F8 -static const Ambient bitdw_seg7_light_0700B4F0 = { - {{0x39, 0x6f, 0x5d}, 0, {0x39, 0x6f, 0x5d}, 0} -}; - -// 0x0700B4F8 - 0x0700B508 -static const Light bitdw_seg7_light_0700B4F8 = { - {{0x79, 0xeb, 0xc5}, 0, {0x79, 0xeb, 0xc5}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700B4F0 - 0x0700B508 +static const Lights1 bitdw_seg7_lights_0700B4F0 = gdSPDefLights1( + 0x39, 0x6f, 0x5d, + 0x79, 0xeb, 0xc5, 0x28, 0x28, 0x28 +); // 0x0700B508 - 0x0700B5F8 static const Vtx bitdw_seg7_vertex_0700B508[] = { @@ -77,8 +73,8 @@ static const Gfx bitdw_seg7_dl_0700B808[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, sky_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bitdw_seg7_light_0700B4F8, 1), - gsSPLight(&bitdw_seg7_light_0700B4F0, 2), + gsSPLight(&bitdw_seg7_lights_0700B4F0.l, 1), + gsSPLight(&bitdw_seg7_lights_0700B4F0.a, 2), gsSPVertex(bitdw_seg7_vertex_0700B508, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/levels/bitdw/leveldata.c b/levels/bitdw/leveldata.c index 09e01f5..de889e2 100644 --- a/levels/bitdw/leveldata.c +++ b/levels/bitdw/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/bitdw/texture.inc.c" diff --git a/levels/bitdw/script.c b/levels/bitdw/script.c index 7d29845..2b3855f 100644 --- a/levels/bitdw/script.c +++ b/levels/bitdw/script.c @@ -3,6 +3,7 @@ #include "behavior_data.h" #include "model_ids.h" #include "seq_ids.h" +#include "dialog_ids.h" #include "segment_symbols.h" #include "level_commands.h" @@ -89,16 +90,16 @@ const LevelScript level_bitdw_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ -7443, -2153, 3886, /*angle*/ 0, 90, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps64), OBJECT(/*model*/ MODEL_BITDW_WARP_PIPE, /*pos*/ 6816, 2860, -7, /*angle*/ 0, 0, 0, /*behParam*/ 0x000B0000, /*beh*/ bhvWarpPipe), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 5910, 3500, -7, /*angle*/ 0, 90, 0, /*behParam*/ 0x000C0000, /*beh*/ bhvWarps70), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x11, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x1E, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0C, /*destLevel*/ 0x11, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x25, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_BITDW, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_BOWSER_1, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_BITDW, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x25, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), JUMP_LINK(script_func_local_3), TERRAIN(/*terrainData*/ bitdw_seg7_collision_level), MACRO_OBJECTS(/*objList*/ bitdw_seg7_macro_objs), - SHOW_DIALOG(/*index*/ 0x00, /*dialogid*/ 0x5A), + SHOW_DIALOG(/*index*/ 0x00, DIALOG_090), SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0000, /*seq*/ SEQ_LEVEL_KOOPA_ROAD), TERRAIN_TYPE(/*terrainType*/ TERRAIN_STONE), END_AREA(), diff --git a/levels/bitfs/areas/1/18/model.inc.c b/levels/bitfs/areas/1/18/model.inc.c index a167814..44b913d 100644 --- a/levels/bitfs/areas/1/18/model.inc.c +++ b/levels/bitfs/areas/1/18/model.inc.c @@ -1,62 +1,38 @@ -// 0x0700C430 - 0x0700C438 -static const Ambient bitfs_seg7_light_0700C430 = { - {{0x46, 0x46, 0x46}, 0, {0x46, 0x46, 0x46}, 0} -}; +// 0x0700C430 - 0x0700C448 +static const Lights1 bitfs_seg7_lights_0700C430 = gdSPDefLights1( + 0x46, 0x46, 0x46, + 0x8c, 0x8c, 0x8c, 0x28, 0x28, 0x28 +); -// 0x0700C438 - 0x0700C448 -static const Light bitfs_seg7_light_0700C438 = { - {{0x8c, 0x8c, 0x8c}, 0, {0x8c, 0x8c, 0x8c}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700C448 - 0x0700C460 +static const Lights1 bitfs_seg7_lights_0700C448 = gdSPDefLights1( + 0x64, 0x64, 0x64, + 0xc8, 0xc8, 0xc8, 0x28, 0x28, 0x28 +); -// 0x0700C448 - 0x0700C450 -static const Ambient bitfs_seg7_light_0700C448 = { - {{0x64, 0x64, 0x64}, 0, {0x64, 0x64, 0x64}, 0} -}; +// 0x0700C460 - 0x0700C478 +static const Lights1 bitfs_seg7_lights_0700C460 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700C450 - 0x0700C460 -static const Light bitfs_seg7_light_0700C450 = { - {{0xc8, 0xc8, 0xc8}, 0, {0xc8, 0xc8, 0xc8}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700C478 - 0x0700C490 +static const Lights1 bitfs_seg7_lights_0700C478 = gdSPDefLights1( + 0x32, 0x32, 0x32, + 0x64, 0x64, 0x64, 0x28, 0x28, 0x28 +); -// 0x0700C460 - 0x0700C468 -static const Ambient bitfs_seg7_light_0700C460 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700C490 - 0x0700C4A8 +static const Lights1 bitfs_seg7_lights_0700C490 = gdSPDefLights1( + 0x62, 0x7f, 0x7f, + 0xc4, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700C468 - 0x0700C478 -static const Light bitfs_seg7_light_0700C468 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700C478 - 0x0700C480 -static const Ambient bitfs_seg7_light_0700C478 = { - {{0x32, 0x32, 0x32}, 0, {0x32, 0x32, 0x32}, 0} -}; - -// 0x0700C480 - 0x0700C490 -static const Light bitfs_seg7_light_0700C480 = { - {{0x64, 0x64, 0x64}, 0, {0x64, 0x64, 0x64}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700C490 - 0x0700C498 -static const Ambient bitfs_seg7_light_0700C490 = { - {{0x62, 0x7f, 0x7f}, 0, {0x62, 0x7f, 0x7f}, 0} -}; - -// 0x0700C498 - 0x0700C4A8 -static const Light bitfs_seg7_light_0700C498 = { - {{0xc4, 0xff, 0xff}, 0, {0xc4, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700C4A8 - 0x0700C4B0 -static const Ambient bitfs_seg7_light_0700C4A8 = { - {{0x32, 0x7f, 0x59}, 0, {0x32, 0x7f, 0x59}, 0} -}; - -// 0x0700C4B0 - 0x0700C4C0 -static const Light bitfs_seg7_light_0700C4B0 = { - {{0x65, 0xff, 0xb2}, 0, {0x65, 0xff, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700C4A8 - 0x0700C4C0 +static const Lights1 bitfs_seg7_lights_0700C4A8 = gdSPDefLights1( + 0x32, 0x7f, 0x59, + 0x65, 0xff, 0xb2, 0x28, 0x28, 0x28 +); // 0x0700C4C0 - 0x0700C540 static const Vtx bitfs_seg7_vertex_0700C4C0[] = { @@ -717,21 +693,21 @@ static const Gfx bitfs_seg7_dl_0700E460[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, sky_09001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bitfs_seg7_light_0700C438, 1), - gsSPLight(&bitfs_seg7_light_0700C430, 2), + gsSPLight(&bitfs_seg7_lights_0700C430.l, 1), + gsSPLight(&bitfs_seg7_lights_0700C430.a, 2), gsSPVertex(bitfs_seg7_vertex_0700C4C0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&bitfs_seg7_light_0700C450, 1), - gsSPLight(&bitfs_seg7_light_0700C448, 2), + gsSPLight(&bitfs_seg7_lights_0700C448.l, 1), + gsSPLight(&bitfs_seg7_lights_0700C448.a, 2), gsSPVertex(bitfs_seg7_vertex_0700C540, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&bitfs_seg7_light_0700C468, 1), - gsSPLight(&bitfs_seg7_light_0700C460, 2), + gsSPLight(&bitfs_seg7_lights_0700C460.l, 1), + gsSPLight(&bitfs_seg7_lights_0700C460.a, 2), gsSPVertex(bitfs_seg7_vertex_0700C580, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&bitfs_seg7_light_0700C480, 1), - gsSPLight(&bitfs_seg7_light_0700C478, 2), + gsSPLight(&bitfs_seg7_lights_0700C478.l, 1), + gsSPLight(&bitfs_seg7_lights_0700C478.a, 2), gsSPVertex(bitfs_seg7_vertex_0700C5C0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -742,8 +718,8 @@ static const Gfx bitfs_seg7_dl_0700E530[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, sky_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bitfs_seg7_light_0700C498, 1), - gsSPLight(&bitfs_seg7_light_0700C490, 2), + gsSPLight(&bitfs_seg7_lights_0700C490.l, 1), + gsSPLight(&bitfs_seg7_lights_0700C490.a, 2), gsSPVertex(bitfs_seg7_vertex_0700C600, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), @@ -842,8 +818,8 @@ static const Gfx bitfs_seg7_dl_0700E530[] = { gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), gsSP2Triangles( 9, 12, 10, 0x0, 6, 13, 7, 0x0), gsSP1Triangle( 3, 14, 4, 0x0), - gsSPLight(&bitfs_seg7_light_0700C4B0, 1), - gsSPLight(&bitfs_seg7_light_0700C4A8, 2), + gsSPLight(&bitfs_seg7_lights_0700C4A8.l, 1), + gsSPLight(&bitfs_seg7_lights_0700C4A8.a, 2), gsSPVertex(bitfs_seg7_vertex_0700DCE0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 0, 2, 9, 0x0), diff --git a/levels/bitfs/script.c b/levels/bitfs/script.c index add6c4c..119e381 100644 --- a/levels/bitfs/script.c +++ b/levels/bitfs/script.c @@ -17,8 +17,8 @@ static const LevelScript script_func_local_1[] = { OBJECT(/*model*/ MODEL_BITFS_PLATFORM_ON_TRACK, /*pos*/ -5733, -3071, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x07330000, /*beh*/ bhvPlatformOnTrack), - OBJECT(/*model*/ MODEL_BITFS_TILTING_SQUARE_PLATFORM, /*pos*/ -1945, -3225, -715, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBitfsTiltingSquarePlatform), - OBJECT(/*model*/ MODEL_BITFS_TILTING_SQUARE_PLATFORM, /*pos*/ -2866, -3225, -715, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBitfsTiltingSquarePlatform), + OBJECT(/*model*/ MODEL_BITFS_TILTING_SQUARE_PLATFORM, /*pos*/ -1945, -3225, -715, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBitfsTiltingInvertedPyramid), + OBJECT(/*model*/ MODEL_BITFS_TILTING_SQUARE_PLATFORM, /*pos*/ -2866, -3225, -715, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBitfsTiltingInvertedPyramid), OBJECT(/*model*/ MODEL_BITFS_SINKING_PLATFORMS, /*pos*/ -1381, 3487, 96, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBitfsSinkingPlatforms), OBJECT(/*model*/ MODEL_BITFS_SINKING_PLATFORMS, /*pos*/ 1126, -3065, 307, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBitfsSinkingPlatforms), OBJECT(/*model*/ MODEL_BITFS_SINKING_PLATFORMS, /*pos*/ -3225, 3487, 96, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBitfsSinkingPlatforms), @@ -103,10 +103,10 @@ const LevelScript level_bitfs_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ -7577, -1764, 0, /*angle*/ 0, 90, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps64), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 6735, 3681, 99, /*angle*/ 0, 0, 0, /*behParam*/ 0x140B0000, /*beh*/ bhvWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 5886, 5000, 99, /*angle*/ 0, 90, 0, /*behParam*/ 0x000C0000, /*beh*/ bhvWarps70), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x13, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x21, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0C, /*destLevel*/ 0x13, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x68, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_BITFS, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_BOWSER_2, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_BITFS, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x68, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), JUMP_LINK(script_func_local_3), diff --git a/levels/bits/areas/1/22/model.inc.c b/levels/bits/areas/1/22/model.inc.c index 0421629..9d0b896 100644 --- a/levels/bits/areas/1/22/model.inc.c +++ b/levels/bits/areas/1/22/model.inc.c @@ -1,32 +1,20 @@ -// 0x07012DB0 - 0x07012DB8 -static const Ambient bits_seg7_light_07012DB0 = { - {{0x58, 0x5f, 0x7d}, 0, {0x58, 0x5f, 0x7d}, 0} -}; +// 0x07012DB0 - 0x07012DC8 +static const Lights1 bits_seg7_lights_07012DB0 = gdSPDefLights1( + 0x58, 0x5f, 0x7d, + 0xb1, 0xbf, 0xfa, 0x28, 0x28, 0x28 +); -// 0x07012DB8 - 0x07012DC8 -static const Light bits_seg7_light_07012DB8 = { - {{0xb1, 0xbf, 0xfa}, 0, {0xb1, 0xbf, 0xfa}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07012DC8 - 0x07012DE0 +static const Lights1 bits_seg7_lights_07012DC8 = gdSPDefLights1( + 0x4c, 0x46, 0x6c, + 0x98, 0x8c, 0xd8, 0x28, 0x28, 0x28 +); -// 0x07012DC8 - 0x07012DD0 -static const Ambient bits_seg7_light_07012DC8 = { - {{0x4c, 0x46, 0x6c}, 0, {0x4c, 0x46, 0x6c}, 0} -}; - -// 0x07012DD0 - 0x07012DE0 -static const Light bits_seg7_light_07012DD0 = { - {{0x98, 0x8c, 0xd8}, 0, {0x98, 0x8c, 0xd8}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07012DE0 - 0x07012DE8 -static const Ambient bits_seg7_light_07012DE0 = { - {{0x59, 0x32, 0x7f}, 0, {0x59, 0x32, 0x7f}, 0} -}; - -// 0x07012DE8 - 0x07012DF8 -static const Light bits_seg7_light_07012DE8 = { - {{0xb2, 0x65, 0xff}, 0, {0xb2, 0x65, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07012DE0 - 0x07012DF8 +static const Lights1 bits_seg7_lights_07012DE0 = gdSPDefLights1( + 0x59, 0x32, 0x7f, + 0xb2, 0x65, 0xff, 0x28, 0x28, 0x28 +); // 0x07012DF8 - 0x07012E78 static const Vtx bits_seg7_vertex_07012DF8[] = { @@ -153,14 +141,14 @@ static const Gfx bits_seg7_dl_070133B8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, sky_09001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bits_seg7_light_07012DB8, 1), - gsSPLight(&bits_seg7_light_07012DB0, 2), + gsSPLight(&bits_seg7_lights_07012DB0.l, 1), + gsSPLight(&bits_seg7_lights_07012DB0.a, 2), gsSPVertex(bits_seg7_vertex_07012DF8, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 0, 3, 4, 0x0, 0, 5, 6, 0x0), gsSP2Triangles( 0, 7, 1, 0x0, 0, 4, 5, 0x0), - gsSPLight(&bits_seg7_light_07012DD0, 1), - gsSPLight(&bits_seg7_light_07012DC8, 2), + gsSPLight(&bits_seg7_lights_07012DC8.l, 1), + gsSPLight(&bits_seg7_lights_07012DC8.a, 2), gsSPVertex(bits_seg7_vertex_07012E78, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 3, 5, 9, 0x0), @@ -172,8 +160,8 @@ static const Gfx bits_seg7_dl_070133B8[] = { gsSPVertex(bits_seg7_vertex_07013058, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), - gsSPLight(&bits_seg7_light_07012DE8, 1), - gsSPLight(&bits_seg7_light_07012DE0, 2), + gsSPLight(&bits_seg7_lights_07012DE0.l, 1), + gsSPLight(&bits_seg7_lights_07012DE0.a, 2), gsSPVertex(bits_seg7_vertex_070130F8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 7, 8, 9, 0x0), diff --git a/levels/bits/areas/1/24/model.inc.c b/levels/bits/areas/1/24/model.inc.c index c482c95..0e0d2ac 100644 --- a/levels/bits/areas/1/24/model.inc.c +++ b/levels/bits/areas/1/24/model.inc.c @@ -1,12 +1,8 @@ -// 0x07013890 - 0x07013898 -static const Ambient bits_seg7_light_07013890 = { - {{0x14, 0x2f, 0x29}, 0, {0x14, 0x2f, 0x29}, 0} -}; - -// 0x07013898 - 0x070138A8 -static const Light bits_seg7_light_07013898 = { - {{0x50, 0xbf, 0xa7}, 0, {0x50, 0xbf, 0xa7}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07013890 - 0x070138A8 +static const Lights1 bits_seg7_lights_07013890 = gdSPDefLights1( + 0x14, 0x2f, 0x29, + 0x50, 0xbf, 0xa7, 0x28, 0x28, 0x28 +); // 0x070138A8 - 0x07013998 static const Vtx bits_seg7_vertex_070138A8[] = { @@ -77,8 +73,8 @@ static const Gfx bits_seg7_dl_07013BA8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, sky_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bits_seg7_light_07013898, 1), - gsSPLight(&bits_seg7_light_07013890, 2), + gsSPLight(&bits_seg7_lights_07013890.l, 1), + gsSPLight(&bits_seg7_lights_07013890.a, 2), gsSPVertex(bits_seg7_vertex_070138A8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/levels/bits/script.c b/levels/bits/script.c index ba9b94f..e1eb66b 100644 --- a/levels/bits/script.c +++ b/levels/bits/script.c @@ -93,10 +93,10 @@ const LevelScript level_bits_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ -7039, -3812, 4, /*angle*/ 0, 90, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps64), OBJECT(/*model*/ MODEL_BITS_WARP_PIPE, /*pos*/ 351, 6652, -6030, /*angle*/ 0, 0, 0, /*behParam*/ 0x000B0000, /*beh*/ bhvWarpPipe), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 351, 6800, -3900, /*angle*/ 0, 180, 0, /*behParam*/ 0x000C0000, /*beh*/ bhvWarps70), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x15, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x22, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0C, /*destLevel*/ 0x15, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x6B, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_BITS, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_BOWSER_3, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_BITS, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x6B, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), TERRAIN(/*terrainData*/ bits_seg7_collision_level), diff --git a/levels/bob/areas/1/1/model.inc.c b/levels/bob/areas/1/1/model.inc.c index b8cdd4f..9780741 100644 --- a/levels/bob/areas/1/1/model.inc.c +++ b/levels/bob/areas/1/1/model.inc.c @@ -1,12 +1,8 @@ -// 0x07002800 - 0x07002808 -static const Ambient bob_seg7_light_07002800 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07002808 - 0x07002818 -static const Light bob_seg7_light_07002808 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07002800 - 0x07002818 +static const Lights1 bob_seg7_lights_07002800 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07002818 - 0x07002908 static const Vtx bob_seg7_vertex_07002818[] = { @@ -434,8 +430,8 @@ static const Gfx bob_seg7_dl_07003CA8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09005800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bob_seg7_light_07002808, 1), - gsSPLight(&bob_seg7_light_07002800, 2), + gsSPLight(&bob_seg7_lights_07002800.l, 1), + gsSPLight(&bob_seg7_lights_07002800.a, 2), gsSPVertex(bob_seg7_vertex_07002818, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), gsSP2Triangles( 3, 0, 2, 0x0, 2, 1, 4, 0x0), diff --git a/levels/bob/areas/1/2/model.inc.c b/levels/bob/areas/1/2/model.inc.c index b9705ab..ac0ed4b 100644 --- a/levels/bob/areas/1/2/model.inc.c +++ b/levels/bob/areas/1/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x07004478 - 0x07004480 -static const Ambient bob_seg7_light_07004478 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07004480 - 0x07004490 -static const Light bob_seg7_light_07004480 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07004478 - 0x07004490 +static const Lights1 bob_seg7_lights_07004478 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07004490 - 0x07004590 static const Vtx bob_seg7_vertex_07004490[] = { @@ -1455,8 +1451,8 @@ static const Gfx bob_seg7_dl_07008AF0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bob_seg7_light_07004480, 1), - gsSPLight(&bob_seg7_light_07004478, 2), + gsSPLight(&bob_seg7_lights_07004478.l, 1), + gsSPLight(&bob_seg7_lights_07004478.a, 2), gsSPVertex(bob_seg7_vertex_07004490, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 7, 8, 9, 0x0), diff --git a/levels/bob/areas/1/5/model.inc.c b/levels/bob/areas/1/5/model.inc.c index 3cdbf0a..48a9dcd 100644 --- a/levels/bob/areas/1/5/model.inc.c +++ b/levels/bob/areas/1/5/model.inc.c @@ -1,22 +1,14 @@ -// 0x0700A9E0 - 0x0700A9E8 -static const Ambient bob_seg7_light_0700A9E0 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0} -}; +// 0x0700A9E0 - 0x0700A9F8 +static const Lights1 bob_seg7_lights_0700A9E0 = gdSPDefLights1( + 0x33, 0x33, 0x33, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700A9E8 - 0x0700A9F8 -static const Light bob_seg7_light_0700A9E8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700A9F8 - 0x0700AA00 -static const Ambient bob_seg7_light_0700A9F8 = { - {{0x14, 0x14, 0x14}, 0, {0x14, 0x14, 0x14}, 0} -}; - -// 0x0700AA00 - 0x0700AA10 -static const Light bob_seg7_light_0700AA00 = { - {{0x64, 0x64, 0x64}, 0, {0x64, 0x64, 0x64}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700A9F8 - 0x0700AA10 +static const Lights1 bob_seg7_lights_0700A9F8 = gdSPDefLights1( + 0x14, 0x14, 0x14, + 0x64, 0x64, 0x64, 0x28, 0x28, 0x28 +); // 0x0700AA10 - 0x0700AAF0 static const Vtx bob_seg7_vertex_0700AA10[] = { @@ -798,8 +790,8 @@ static const Gfx bob_seg7_dl_0700CFC0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09009000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bob_seg7_light_0700A9E8, 1), - gsSPLight(&bob_seg7_light_0700A9E0, 2), + gsSPLight(&bob_seg7_lights_0700A9E0.l, 1), + gsSPLight(&bob_seg7_lights_0700A9E0.a, 2), gsSPVertex(bob_seg7_vertex_0700AA10, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 0, 4, 1, 0x0, 1, 5, 2, 0x0), @@ -933,8 +925,8 @@ static const Gfx bob_seg7_dl_0700CFC0[] = { gsSPVertex(bob_seg7_vertex_0700BF30, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 0, 3, 0x0, 4, 3, 5, 0x0), - gsSPLight(&bob_seg7_light_0700AA00, 1), - gsSPLight(&bob_seg7_light_0700A9F8, 2), + gsSPLight(&bob_seg7_lights_0700A9F8.l, 1), + gsSPLight(&bob_seg7_lights_0700A9F8.a, 2), gsSPVertex(bob_seg7_vertex_0700BF90, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -953,8 +945,8 @@ static const Gfx bob_seg7_dl_0700D7D8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09005800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bob_seg7_light_0700A9E8, 1), - gsSPLight(&bob_seg7_light_0700A9E0, 2), + gsSPLight(&bob_seg7_lights_0700A9E0.l, 1), + gsSPLight(&bob_seg7_lights_0700A9E0.a, 2), gsSPVertex(bob_seg7_vertex_0700C170, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 0, 3, 4, 0x0, 5, 6, 3, 0x0), diff --git a/levels/bob/areas/1/6/model.inc.c b/levels/bob/areas/1/6/model.inc.c index c9f733d..ca18c57 100644 --- a/levels/bob/areas/1/6/model.inc.c +++ b/levels/bob/areas/1/6/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700DE30 - 0x0700DE38 -static const Ambient bob_seg7_light_0700DE30 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0} -}; - -// 0x0700DE38 - 0x0700DE48 -static const Light bob_seg7_light_0700DE38 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700DE30 - 0x0700DE48 +static const Lights1 bob_seg7_lights_0700DE30 = gdSPDefLights1( + 0x33, 0x33, 0x33, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700DE48 - 0x0700DF38 static const Vtx bob_seg7_vertex_0700DE48[] = { @@ -87,8 +83,8 @@ static const Gfx bob_seg7_dl_0700E1E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09009000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bob_seg7_light_0700DE38, 1), - gsSPLight(&bob_seg7_light_0700DE30, 2), + gsSPLight(&bob_seg7_lights_0700DE30.l, 1), + gsSPLight(&bob_seg7_lights_0700DE30.a, 2), gsSPVertex(bob_seg7_vertex_0700DE48, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 5, 4, 7, 0x0), diff --git a/levels/bob/areas/1/geo.inc.c b/levels/bob/areas/1/geo.inc.c index daa6613..4fa24ec 100644 --- a/levels/bob/areas/1/geo.inc.c +++ b/levels/bob/areas/1/geo.inc.c @@ -28,7 +28,7 @@ const GeoLayout bob_geo_000488[] = { GEO_CLOSE_NODE(), GEO_ZBUFFER(0), GEO_OPEN_NODE(), - GEO_ASM(0, Geo18_802CD1E8), + GEO_ASM(0, geo_cannon_circle_base), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/levels/bob/areas/1/macro.inc.c b/levels/bob/areas/1/macro.inc.c index 784304f..e7127c5 100644 --- a/levels/bob/areas/1/macro.inc.c +++ b/levels/bob/areas/1/macro.inc.c @@ -12,8 +12,8 @@ const MacroObject bob_seg7_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_wooden_post, /*yaw*/ 0, /*pos*/ -5500, 768, 1800), MACRO_OBJECT(/*preset*/ macro_wooden_post, /*yaw*/ 0, /*pos*/ -6500, 768, 3000), MACRO_OBJECT(/*preset*/ macro_wooden_post, /*yaw*/ 0, /*pos*/ -5500, 768, 3000), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -4000, 0, 6050, /*behParam*/ 15), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 1230, 768, 3258, /*behParam*/ 8), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -4000, 0, 6050, /*behParam*/ DIALOG_015), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 1230, 768, 3258, /*behParam*/ DIALOG_008), MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_cannon_closed, /*yaw*/ 0, /*pos*/ -5018, 1332, -3533, /*behParam*/ 0x00), MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_cannon_closed, /*yaw*/ 0, /*pos*/ 6349, 2080, -7066, /*behParam*/ 0xC0), MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_cannon_closed, /*yaw*/ 0, /*pos*/ 4243, 3071, -2451, /*behParam*/ 0xC0), @@ -39,7 +39,7 @@ const MacroObject bob_seg7_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 4100, 3672, 1629), MACRO_OBJECT(/*preset*/ macro_box_wing_cap, /*yaw*/ 0, /*pos*/ -6710, 1300, -2170), MACRO_OBJECT(/*preset*/ macro_breakable_box_small, /*yaw*/ 0, /*pos*/ -3740, 0, 6180), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -4000, 0, 6300, /*behParam*/ 95), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -4000, 0, 6300, /*behParam*/ DIALOG_095), MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_hidden_1up, /*yaw*/ 0, /*pos*/ -6060, 1060, -5340, /*behParam*/ 4), MACRO_OBJECT(/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ -5760, 1060, -5340), MACRO_OBJECT(/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ -6360, 1060, -5340), @@ -57,11 +57,11 @@ const MacroObject bob_seg7_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_goomba_triplet_spawner, /*yaw*/ 0, /*pos*/ 6060, 877, 2000), MACRO_OBJECT(/*preset*/ macro_goomba_triplet_spawner, /*yaw*/ 0, /*pos*/ -6050, 768, 1250), MACRO_OBJECT(/*preset*/ macro_box_wing_cap, /*yaw*/ 0, /*pos*/ 400, 350, 6500), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ 66, 0, 6977, /*behParam*/ 113), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 3394, 3072, 1846, /*behParam*/ 64), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -3110, 104, 5064, /*behParam*/ 35), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 6860, 2041, -6640, /*behParam*/ 74), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -6020, 768, 2957, /*behParam*/ 104), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ 66, 0, 6977, /*behParam*/ DIALOG_113), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 3394, 3072, 1846, /*behParam*/ DIALOG_064), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -3110, 104, 5064, /*behParam*/ DIALOG_035), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 6860, 2041, -6640, /*behParam*/ DIALOG_074), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -6020, 768, 2957, /*behParam*/ DIALOG_104), MACRO_OBJECT(/*preset*/ macro_coin_ring_vertical, /*yaw*/ 90, /*pos*/ -1506, 5317, 1250), MACRO_OBJECT(/*preset*/ macro_hidden_star_trigger, /*yaw*/ 0, /*pos*/ -1506, 5517, 1250), MACRO_OBJECT(/*preset*/ macro_breakable_box_no_coins, /*yaw*/ 0, /*pos*/ 7157, 2027, -6714), @@ -73,16 +73,16 @@ const MacroObject bob_seg7_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_hidden_star_trigger, /*yaw*/ 0, /*pos*/ 3000, 3600, 1250), MACRO_OBJECT(/*preset*/ macro_bobomb_still, /*yaw*/ 0, /*pos*/ 1127, 2897, -2495), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 120, /*pos*/ 4836, 3079, -2707), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 45, /*pos*/ -3530, 1415, 430, /*behParam*/ 50), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 5053, 3073, 2180, /*behParam*/ 53), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 45, /*pos*/ -3530, 1415, 430, /*behParam*/ DIALOG_050), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 5053, 3073, 2180, /*behParam*/ DIALOG_053), MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -1506, 5517, 1250), MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 1000, 3600, 1250), MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 2000, 3600, 1250), MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 3000, 3600, 1250), MACRO_OBJECT(/*preset*/ macro_hidden_star_trigger, /*yaw*/ 0, /*pos*/ -300, 4200, 1250), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -2224, 990, -4359, /*behParam*/ 39), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 60, /*pos*/ 3911, 3529, -7081, /*behParam*/ 112), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -7000, 1024, -2099, /*behParam*/ 32), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -2224, 990, -4359, /*behParam*/ DIALOG_039), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 60, /*pos*/ 3911, 3529, -7081, /*behParam*/ DIALOG_112), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -7000, 1024, -2099, /*behParam*/ DIALOG_032), MACRO_OBJECT(/*preset*/ macro_breakable_box_three_coins, /*yaw*/ 0, /*pos*/ -3979, 0, 6627), MACRO_OBJECT(/*preset*/ macro_box_star_3, /*yaw*/ 0, /*pos*/ 5540, 3350, 1200), MACRO_OBJECT(/*preset*/ macro_coin_ring_vertical, /*yaw*/ 90, /*pos*/ -300, 4000, 1250), diff --git a/levels/bob/leveldata.c b/levels/bob/leveldata.c index b924eda..3c0befd 100644 --- a/levels/bob/leveldata.c +++ b/levels/bob/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/bob/texture.inc.c" diff --git a/levels/bob/script.c b/levels/bob/script.c index 2a1efd2..fac6daf 100644 --- a/levels/bob/script.c +++ b/levels/bob/script.c @@ -3,6 +3,7 @@ #include "behavior_data.h" #include "model_ids.h" #include "seq_ids.h" +#include "dialog_ids.h" #include "segment_symbols.h" #include "level_commands.h" @@ -29,26 +30,26 @@ static const LevelScript script_func_local_2[] = { OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 1535, 3840, -5561, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTtmBowlingBallSpawner, /*acts*/ ACT_3 | ACT_4 | ACT_5 | ACT_6), OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 524, 2825, -5400, /*angle*/ 0, 0, 0, /*behParam*/ 0x00020000, /*beh*/ bhvBobBowlingBallSpawner, /*acts*/ ACT_1 | ACT_2), OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 524, 2825, -5400, /*angle*/ 0, 0, 0, /*behParam*/ 0x00020000, /*beh*/ bhvTtmBowlingBallSpawner, /*acts*/ ACT_3 | ACT_4 | ACT_5 | ACT_6), - OBJECT(/*model*/ MODEL_BOWLING_BALL, /*pos*/ -993, 886, -3565, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvPitBowlingBall), - OBJECT(/*model*/ MODEL_BOWLING_BALL, /*pos*/ -785, 886, -4301, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvPitBowlingBall), - OBJECT_WITH_ACTS(/*model*/ MODEL_BOWLING_BALL, /*pos*/ -93, 886, -3414, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvPitBowlingBall, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6), - OBJECT_WITH_ACTS(/*model*/ MODEL_BOBOMB_BUDDY, /*pos*/ -5723, 140, 6017, /*angle*/ 0, 0, 0, /*behParam*/ 0x00020000, /*beh*/ bhvBobombBuddy, /*acts*/ ACT_1), - OBJECT_WITH_ACTS(/*model*/ MODEL_BOBOMB_BUDDY, /*pos*/ -6250, 0, 6680, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvBobombBuddy, /*acts*/ ACT_1), - OBJECT_WITH_ACTS(/*model*/ MODEL_BOBOMB_BUDDY, /*pos*/ -5723, 140, 6017, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBobombBuddyOpensCannon, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6), - OBJECT_WITH_ACTS(/*model*/ MODEL_BOBOMB_BUDDY, /*pos*/ -6250, 0, 6680, /*angle*/ 0, 0, 0, /*behParam*/ 0x00030000, /*beh*/ bhvBobombBuddy, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6), - OBJECT_WITH_ACTS(/*model*/ MODEL_CANNON_BASE, /*pos*/ -5694, 128, 5600, /*angle*/ 0, 135, 0, /*behParam*/ 0x00010000, /*beh*/ bhvWaterBombCannon, /*acts*/ ACT_1), - OBJECT_WITH_ACTS(/*model*/ MODEL_DL_CANNON_LID, /*pos*/ -5694, 128, 5600, /*angle*/ 0, 180, 0, /*behParam*/ 0x00000000, /*beh*/ bhvCannonClosed, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6), - OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 3304, 4242, -4603, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvKoopaRaceEndpoint, /*acts*/ ACT_2), - OBJECT_WITH_ACTS(/*model*/ MODEL_KOOPA_WITH_SHELL, /*pos*/ 3400, 770, 6500, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvKoopa, /*acts*/ ACT_3 | ACT_4 | ACT_5 | ACT_6), + OBJECT (/*model*/ MODEL_BOWLING_BALL, /*pos*/ -993, 886, -3565, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvPitBowlingBall), + OBJECT (/*model*/ MODEL_BOWLING_BALL, /*pos*/ -785, 886, -4301, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvPitBowlingBall), + OBJECT_WITH_ACTS(/*model*/ MODEL_BOWLING_BALL, /*pos*/ -93, 886, -3414, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvPitBowlingBall, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6), + OBJECT_WITH_ACTS(/*model*/ MODEL_BOBOMB_BUDDY, /*pos*/ -5723, 140, 6017, /*angle*/ 0, 0, 0, /*behParam*/ DIALOG_002 << 16, /*beh*/ bhvBobombBuddy, /*acts*/ ACT_1), + OBJECT_WITH_ACTS(/*model*/ MODEL_BOBOMB_BUDDY, /*pos*/ -6250, 0, 6680, /*angle*/ 0, 0, 0, /*behParam*/ DIALOG_001 << 16, /*beh*/ bhvBobombBuddy, /*acts*/ ACT_1), + OBJECT_WITH_ACTS(/*model*/ MODEL_BOBOMB_BUDDY, /*pos*/ -5723, 140, 6017, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBobombBuddyOpensCannon, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6), + OBJECT_WITH_ACTS(/*model*/ MODEL_BOBOMB_BUDDY, /*pos*/ -6250, 0, 6680, /*angle*/ 0, 0, 0, /*behParam*/ DIALOG_003 << 16, /*beh*/ bhvBobombBuddy, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6), + OBJECT_WITH_ACTS(/*model*/ MODEL_CANNON_BASE, /*pos*/ -5694, 128, 5600, /*angle*/ 0, 135, 0, /*behParam*/ 0x00010000, /*beh*/ bhvWaterBombCannon, /*acts*/ ACT_1), + OBJECT_WITH_ACTS(/*model*/ MODEL_DL_CANNON_LID, /*pos*/ -5694, 128, 5600, /*angle*/ 0, 180, 0, /*behParam*/ 0x00000000, /*beh*/ bhvCannonClosed, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6), + OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 3304, 4242, -4603, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvKoopaRaceEndpoint, /*acts*/ ACT_2), + OBJECT_WITH_ACTS(/*model*/ MODEL_KOOPA_WITH_SHELL, /*pos*/ 3400, 770, 6500, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvKoopa, /*acts*/ ACT_3 | ACT_4 | ACT_5 | ACT_6), RETURN(), }; static const LevelScript script_func_local_3[] = { - OBJECT_WITH_ACTS(/*model*/ MODEL_KING_BOBOMB, /*pos*/ 1636, 4242, -5567, /*angle*/ 0, -147, 0, /*behParam*/ 0x00000000, /*beh*/ bhvKingBobomb, /*acts*/ ACT_1), - OBJECT_WITH_ACTS(/*model*/ MODEL_KOOPA_WITH_SHELL, /*pos*/ -4004, 0, 5221, /*angle*/ 0, 0, 0, /*behParam*/ 0x01020000, /*beh*/ bhvKoopa, /*acts*/ ACT_2), + OBJECT_WITH_ACTS(/*model*/ MODEL_KING_BOBOMB, /*pos*/ 1636, 4242, -5567, /*angle*/ 0, -147, 0, /*behParam*/ 0x00000000, /*beh*/ bhvKingBobomb, /*acts*/ ACT_1), + OBJECT_WITH_ACTS(/*model*/ MODEL_KOOPA_WITH_SHELL, /*pos*/ -4004, 0, 5221, /*angle*/ 0, 0, 0, /*behParam*/ 0x01020000, /*beh*/ bhvKoopa, /*acts*/ ACT_2), OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ -6000, 1000, 2400, /*angle*/ 0, 0, 0, /*behParam*/ 0x03000000, /*beh*/ bhvHiddenRedCoinStar, /*acts*/ ALL_ACTS), - OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ -6600, 1000, 1250, /*angle*/ 0, 0, 0, /*behParam*/ 0x04040000, /*beh*/ bhvHiddenStar, /*acts*/ ALL_ACTS), - OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ 1550, 1200, 300, /*angle*/ 0, 0, 0, /*behParam*/ 0x05000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS), + OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ -6600, 1000, 1250, /*angle*/ 0, 0, 0, /*behParam*/ 0x04040000, /*beh*/ bhvHiddenStar, /*acts*/ ALL_ACTS), + OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ 1550, 1200, 300, /*angle*/ 0, 0, 0, /*behParam*/ 0x05000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS), RETURN(), }; @@ -82,16 +83,16 @@ const LevelScript level_bob_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1680, 3835, -5523, /*angle*/ 0, -153, 0, /*behParam*/ 0x000C0000, /*beh*/ bhvFadingWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -6612, 1024, -3351, /*angle*/ 0, 107, 0, /*behParam*/ 0x000D0000, /*beh*/ bhvFadingWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1980, 768, 6618, /*angle*/ 0, -151, 0, /*behParam*/ 0x000E0000, /*beh*/ bhvFadingWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x09, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x09, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0C, /*destLevel*/ 0x09, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0D, /*destLevel*/ 0x09, /*destArea*/ 0x01, /*destNode*/ 0x0E, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0E, /*destLevel*/ 0x09, /*destArea*/ 0x01, /*destNode*/ 0x0D, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_BOB, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_BOB, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_BOB, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0D, /*destLevel*/ LEVEL_BOB, /*destArea*/ 0x01, /*destNode*/ 0x0E, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0E, /*destLevel*/ LEVEL_BOB, /*destArea*/ 0x01, /*destNode*/ 0x0D, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT), TERRAIN(/*terrainData*/ bob_seg7_collision_level), MACRO_OBJECTS(/*objList*/ bob_seg7_macro_objs), - SHOW_DIALOG(/*index*/ 0x00, /*dialogid*/ 0x00), + SHOW_DIALOG(/*index*/ 0x00, DIALOG_000), SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0000, /*seq*/ SEQ_LEVEL_GRASS), TERRAIN_TYPE(/*terrainType*/ TERRAIN_GRASS), END_AREA(), diff --git a/levels/bob/seesaw_platform/model.inc.c b/levels/bob/seesaw_platform/model.inc.c index 732def5..0271ad4 100644 --- a/levels/bob/seesaw_platform/model.inc.c +++ b/levels/bob/seesaw_platform/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700E510 - 0x0700E518 -static const Ambient bob_seg7_light_0700E510 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0700E518 - 0x0700E528 -static const Light bob_seg7_light_0700E518 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700E510 - 0x0700E528 +static const Lights1 bob_seg7_lights_0700E510 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700E528 - 0x0700E628 static const Vtx bob_seg7_vertex_0700E528[] = { @@ -47,8 +43,8 @@ static const Gfx bob_seg7_dl_0700E6C8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09006000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bob_seg7_light_0700E518, 1), - gsSPLight(&bob_seg7_light_0700E510, 2), + gsSPLight(&bob_seg7_lights_0700E510.l, 1), + gsSPLight(&bob_seg7_lights_0700E510.a, 2), gsSPVertex(bob_seg7_vertex_0700E528, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 7, 0, 2, 0x0), diff --git a/levels/bowser_1/areas/1/1/model.inc.c b/levels/bowser_1/areas/1/1/model.inc.c index b09a6cc..a5a85e2 100644 --- a/levels/bowser_1/areas/1/1/model.inc.c +++ b/levels/bowser_1/areas/1/1/model.inc.c @@ -1,12 +1,8 @@ -// 0x07002000 - 0x07002008 -static const Ambient bowser_1_seg7_light_07002000 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07002008 - 0x07002018 -static const Light bowser_1_seg7_light_07002008 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07002000 - 0x07002018 +static const Lights1 bowser_1_seg7_lights_07002000 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07002018 - 0x07002108 static const Vtx bowser_1_seg7_vertex_07002018[] = { @@ -131,8 +127,8 @@ static const Gfx bowser_1_seg7_dl_07002578[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_1_seg7_texture_07001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_1_seg7_light_07002008, 1), - gsSPLight(&bowser_1_seg7_light_07002000, 2), + gsSPLight(&bowser_1_seg7_lights_07002000.l, 1), + gsSPLight(&bowser_1_seg7_lights_07002000.a, 2), gsSPVertex(bowser_1_seg7_vertex_07002018, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), gsSP2Triangles( 5, 1, 6, 0x0, 7, 1, 8, 0x0), diff --git a/levels/bowser_1/script.c b/levels/bowser_1/script.c index 8e003f5..bb20119 100644 --- a/levels/bowser_1/script.c +++ b/levels/bowser_1/script.c @@ -29,9 +29,9 @@ const LevelScript level_bowser_1_entry[] = { AREA(/*index*/ 1, bowser_1_geo_0000D0), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 1307, 0, /*angle*/ 0, 180, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps6C), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x1E, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x24, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x11, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_BOWSER_1, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x24, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_BITDW, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), TERRAIN(/*terrainData*/ bowser_1_seg7_collision_level), SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0002, /*seq*/ SEQ_LEVEL_BOSS_KOOPA), TERRAIN_TYPE(/*terrainType*/ TERRAIN_STONE), diff --git a/levels/bowser_2/script.c b/levels/bowser_2/script.c index e97d7c9..f72b70d 100644 --- a/levels/bowser_2/script.c +++ b/levels/bowser_2/script.c @@ -39,9 +39,9 @@ const LevelScript level_bowser_2_entry[] = { AREA(/*index*/ 1, bowser_2_geo_000188), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 2229, 0, /*angle*/ 0, 180, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps6C), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x21, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x36, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x13, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_BOWSER_2, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x36, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_BITFS, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), TERRAIN(/*terrainData*/ bowser_2_seg7_collision_lava), SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0002, /*seq*/ SEQ_LEVEL_BOSS_KOOPA), diff --git a/levels/bowser_3/areas/1/1/model.inc.c b/levels/bowser_3/areas/1/1/model.inc.c index 13f16f2..1947ba5 100644 --- a/levels/bowser_3/areas/1/1/model.inc.c +++ b/levels/bowser_3/areas/1/1/model.inc.c @@ -1,22 +1,14 @@ -// 0x07004030 - 0x07004038 -static const Ambient bowser_3_seg7_light_07004030 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0} -}; +// 0x07004030 - 0x07004048 +static const Lights1 bowser_3_seg7_lights_07004030 = gdSPDefLights1( + 0x22, 0x22, 0x22, + 0x89, 0x89, 0x8a, 0x28, 0x28, 0x28 +); -// 0x07004038 - 0x07004048 -static const Light bowser_3_seg7_light_07004038 = { - {{0x89, 0x89, 0x8a}, 0, {0x89, 0x89, 0x8a}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07004048 - 0x07004050 -static const Ambient bowser_3_seg7_light_07004048 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07004050 - 0x07004060 -static const Light bowser_3_seg7_light_07004050 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07004048 - 0x07004060 +static const Lights1 bowser_3_seg7_lights_07004048 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07004060 - 0x07004160 static const Vtx bowser_3_seg7_vertex_07004060[] = { @@ -121,16 +113,16 @@ static const Gfx bowser_3_seg7_dl_07004500[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_3_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_3_seg7_light_07004038, 1), - gsSPLight(&bowser_3_seg7_light_07004030, 2), + gsSPLight(&bowser_3_seg7_lights_07004030.l, 1), + gsSPLight(&bowser_3_seg7_lights_07004030.a, 2), gsSPVertex(bowser_3_seg7_vertex_07004060, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), gsSP2Triangles( 6, 8, 12, 0x0, 13, 14, 15, 0x0), gsSPVertex(bowser_3_seg7_vertex_07004160, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&bowser_3_seg7_light_07004050, 1), - gsSPLight(&bowser_3_seg7_light_07004048, 2), + gsSPLight(&bowser_3_seg7_lights_07004048.l, 1), + gsSPLight(&bowser_3_seg7_lights_07004048.a, 2), gsSPVertex(bowser_3_seg7_vertex_070041C0, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 1, 4, 3, 0x0, 2, 3, 5, 0x0), diff --git a/levels/bowser_3/areas/1/bomb_stand/model.inc.c b/levels/bowser_3/areas/1/bomb_stand/model.inc.c index 994219b..ca9e8a6 100644 --- a/levels/bowser_3/areas/1/bomb_stand/model.inc.c +++ b/levels/bowser_3/areas/1/bomb_stand/model.inc.c @@ -1,12 +1,8 @@ -// 0x07004740 - 0x07004748 -static const Ambient bowser_3_seg7_light_07004740 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07004748 - 0x07004758 -static const Light bowser_3_seg7_light_07004748 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07004740 - 0x07004758 +static const Lights1 bowser_3_seg7_lights_07004740 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07004758 - 0x07004848 static const Vtx bowser_3_seg7_vertex_07004758[] = { @@ -45,8 +41,8 @@ static const Gfx bowser_3_seg7_dl_070048D8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_3_seg7_texture_07000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_3_seg7_light_07004748, 1), - gsSPLight(&bowser_3_seg7_light_07004740, 2), + gsSPLight(&bowser_3_seg7_lights_07004740.l, 1), + gsSPLight(&bowser_3_seg7_lights_07004740.a, 2), gsSPVertex(bowser_3_seg7_vertex_07004758, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/levels/bowser_3/falling_platform_1/model.inc.c b/levels/bowser_3/falling_platform_1/model.inc.c index e9dedc2..10fe587 100644 --- a/levels/bowser_3/falling_platform_1/model.inc.c +++ b/levels/bowser_3/falling_platform_1/model.inc.c @@ -1,22 +1,14 @@ -// 0x07002000 - 0x07002008 -static const Ambient bowser_3_seg7_light_07002000 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0} -}; +// 0x07002000 - 0x07002018 +static const Lights1 bowser_3_seg7_lights_07002000 = gdSPDefLights1( + 0x22, 0x22, 0x22, + 0x89, 0x89, 0x8a, 0x28, 0x28, 0x28 +); -// 0x07002008 - 0x07002018 -static const Light bowser_3_seg7_light_07002008 = { - {{0x89, 0x89, 0x8a}, 0, {0x89, 0x89, 0x8a}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07002018 - 0x07002020 -static const Ambient bowser_3_seg7_light_07002018 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07002020 - 0x07002030 -static const Light bowser_3_seg7_light_07002020 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07002018 - 0x07002030 +static const Lights1 bowser_3_seg7_lights_07002018 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07002030 - 0x07002090 static const Vtx bowser_3_seg7_vertex_07002030[] = { @@ -61,12 +53,12 @@ static const Gfx bowser_3_seg7_dl_070021D0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_3_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_3_seg7_light_07002008, 1), - gsSPLight(&bowser_3_seg7_light_07002000, 2), + gsSPLight(&bowser_3_seg7_lights_07002000.l, 1), + gsSPLight(&bowser_3_seg7_lights_07002000.a, 2), gsSPVertex(bowser_3_seg7_vertex_07002030, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&bowser_3_seg7_light_07002020, 1), - gsSPLight(&bowser_3_seg7_light_07002018, 2), + gsSPLight(&bowser_3_seg7_lights_07002018.l, 1), + gsSPLight(&bowser_3_seg7_lights_07002018.a, 2), gsSPVertex(bowser_3_seg7_vertex_07002090, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/bowser_3/falling_platform_10/model.inc.c b/levels/bowser_3/falling_platform_10/model.inc.c index c3acd4d..9d0ebe1 100644 --- a/levels/bowser_3/falling_platform_10/model.inc.c +++ b/levels/bowser_3/falling_platform_10/model.inc.c @@ -1,22 +1,14 @@ -// 0x07003CF8 - 0x07003D00 -static const Ambient bowser_3_seg7_light_07003CF8 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0} -}; +// 0x07003CF8 - 0x07003D10 +static const Lights1 bowser_3_seg7_lights_07003CF8 = gdSPDefLights1( + 0x22, 0x22, 0x22, + 0x89, 0x89, 0x8a, 0x28, 0x28, 0x28 +); -// 0x07003D00 - 0x07003D10 -static const Light bowser_3_seg7_light_07003D00 = { - {{0x89, 0x89, 0x8a}, 0, {0x89, 0x89, 0x8a}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07003D10 - 0x07003D18 -static const Ambient bowser_3_seg7_light_07003D10 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07003D18 - 0x07003D28 -static const Light bowser_3_seg7_light_07003D18 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07003D10 - 0x07003D28 +static const Lights1 bowser_3_seg7_lights_07003D10 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07003D28 - 0x07003D88 static const Vtx bowser_3_seg7_vertex_07003D28[] = { @@ -61,12 +53,12 @@ static const Gfx bowser_3_seg7_dl_07003EC8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_3_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_3_seg7_light_07003D00, 1), - gsSPLight(&bowser_3_seg7_light_07003CF8, 2), + gsSPLight(&bowser_3_seg7_lights_07003CF8.l, 1), + gsSPLight(&bowser_3_seg7_lights_07003CF8.a, 2), gsSPVertex(bowser_3_seg7_vertex_07003D28, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&bowser_3_seg7_light_07003D18, 1), - gsSPLight(&bowser_3_seg7_light_07003D10, 2), + gsSPLight(&bowser_3_seg7_lights_07003D10.l, 1), + gsSPLight(&bowser_3_seg7_lights_07003D10.a, 2), gsSPVertex(bowser_3_seg7_vertex_07003D88, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/bowser_3/falling_platform_2/model.inc.c b/levels/bowser_3/falling_platform_2/model.inc.c index 2a75d2e..70a4f91 100644 --- a/levels/bowser_3/falling_platform_2/model.inc.c +++ b/levels/bowser_3/falling_platform_2/model.inc.c @@ -1,22 +1,14 @@ -// 0x07002338 - 0x07002340 -static const Ambient bowser_3_seg7_light_07002338 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0} -}; +// 0x07002338 - 0x07002350 +static const Lights1 bowser_3_seg7_lights_07002338 = gdSPDefLights1( + 0x22, 0x22, 0x22, + 0x89, 0x89, 0x8a, 0x28, 0x28, 0x28 +); -// 0x07002340 - 0x07002350 -static const Light bowser_3_seg7_light_07002340 = { - {{0x89, 0x89, 0x8a}, 0, {0x89, 0x89, 0x8a}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07002350 - 0x07002358 -static const Ambient bowser_3_seg7_light_07002350 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07002358 - 0x07002368 -static const Light bowser_3_seg7_light_07002358 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07002350 - 0x07002368 +static const Lights1 bowser_3_seg7_lights_07002350 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07002368 - 0x070023C8 static const Vtx bowser_3_seg7_vertex_07002368[] = { @@ -61,12 +53,12 @@ static const Gfx bowser_3_seg7_dl_07002508[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_3_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_3_seg7_light_07002340, 1), - gsSPLight(&bowser_3_seg7_light_07002338, 2), + gsSPLight(&bowser_3_seg7_lights_07002338.l, 1), + gsSPLight(&bowser_3_seg7_lights_07002338.a, 2), gsSPVertex(bowser_3_seg7_vertex_07002368, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&bowser_3_seg7_light_07002358, 1), - gsSPLight(&bowser_3_seg7_light_07002350, 2), + gsSPLight(&bowser_3_seg7_lights_07002350.l, 1), + gsSPLight(&bowser_3_seg7_lights_07002350.a, 2), gsSPVertex(bowser_3_seg7_vertex_070023C8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/bowser_3/falling_platform_3/model.inc.c b/levels/bowser_3/falling_platform_3/model.inc.c index bf553b9..bd14560 100644 --- a/levels/bowser_3/falling_platform_3/model.inc.c +++ b/levels/bowser_3/falling_platform_3/model.inc.c @@ -1,22 +1,14 @@ -// 0x07002670 - 0x07002678 -static const Ambient bowser_3_seg7_light_07002670 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0} -}; +// 0x07002670 - 0x07002688 +static const Lights1 bowser_3_seg7_lights_07002670 = gdSPDefLights1( + 0x22, 0x22, 0x22, + 0x89, 0x89, 0x8a, 0x28, 0x28, 0x28 +); -// 0x07002678 - 0x07002688 -static const Light bowser_3_seg7_light_07002678 = { - {{0x89, 0x89, 0x8a}, 0, {0x89, 0x89, 0x8a}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07002688 - 0x07002690 -static const Ambient bowser_3_seg7_light_07002688 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07002690 - 0x070026A0 -static const Light bowser_3_seg7_light_07002690 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07002688 - 0x070026A0 +static const Lights1 bowser_3_seg7_lights_07002688 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070026A0 - 0x07002700 static const Vtx bowser_3_seg7_vertex_070026A0[] = { @@ -61,12 +53,12 @@ static const Gfx bowser_3_seg7_dl_07002840[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_3_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_3_seg7_light_07002678, 1), - gsSPLight(&bowser_3_seg7_light_07002670, 2), + gsSPLight(&bowser_3_seg7_lights_07002670.l, 1), + gsSPLight(&bowser_3_seg7_lights_07002670.a, 2), gsSPVertex(bowser_3_seg7_vertex_070026A0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&bowser_3_seg7_light_07002690, 1), - gsSPLight(&bowser_3_seg7_light_07002688, 2), + gsSPLight(&bowser_3_seg7_lights_07002688.l, 1), + gsSPLight(&bowser_3_seg7_lights_07002688.a, 2), gsSPVertex(bowser_3_seg7_vertex_07002700, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/bowser_3/falling_platform_4/model.inc.c b/levels/bowser_3/falling_platform_4/model.inc.c index 0d68dc6..fad8f63 100644 --- a/levels/bowser_3/falling_platform_4/model.inc.c +++ b/levels/bowser_3/falling_platform_4/model.inc.c @@ -1,22 +1,14 @@ -// 0x070029A8 - 0x070029B0 -static const Ambient bowser_3_seg7_light_070029A8 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0} -}; +// 0x070029A8 - 0x070029C0 +static const Lights1 bowser_3_seg7_lights_070029A8 = gdSPDefLights1( + 0x22, 0x22, 0x22, + 0x89, 0x89, 0x8a, 0x28, 0x28, 0x28 +); -// 0x070029B0 - 0x070029C0 -static const Light bowser_3_seg7_light_070029B0 = { - {{0x89, 0x89, 0x8a}, 0, {0x89, 0x89, 0x8a}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070029C0 - 0x070029C8 -static const Ambient bowser_3_seg7_light_070029C0 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x070029C8 - 0x070029D8 -static const Light bowser_3_seg7_light_070029C8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070029C0 - 0x070029D8 +static const Lights1 bowser_3_seg7_lights_070029C0 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070029D8 - 0x07002A38 static const Vtx bowser_3_seg7_vertex_070029D8[] = { @@ -61,12 +53,12 @@ static const Gfx bowser_3_seg7_dl_07002B78[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_3_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_3_seg7_light_070029B0, 1), - gsSPLight(&bowser_3_seg7_light_070029A8, 2), + gsSPLight(&bowser_3_seg7_lights_070029A8.l, 1), + gsSPLight(&bowser_3_seg7_lights_070029A8.a, 2), gsSPVertex(bowser_3_seg7_vertex_070029D8, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&bowser_3_seg7_light_070029C8, 1), - gsSPLight(&bowser_3_seg7_light_070029C0, 2), + gsSPLight(&bowser_3_seg7_lights_070029C0.l, 1), + gsSPLight(&bowser_3_seg7_lights_070029C0.a, 2), gsSPVertex(bowser_3_seg7_vertex_07002A38, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/bowser_3/falling_platform_5/model.inc.c b/levels/bowser_3/falling_platform_5/model.inc.c index c0c4725..c4b3490 100644 --- a/levels/bowser_3/falling_platform_5/model.inc.c +++ b/levels/bowser_3/falling_platform_5/model.inc.c @@ -1,22 +1,14 @@ -// 0x07002CE0 - 0x07002CE8 -static const Ambient bowser_3_seg7_light_07002CE0 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0} -}; +// 0x07002CE0 - 0x07002CF8 +static const Lights1 bowser_3_seg7_lights_07002CE0 = gdSPDefLights1( + 0x22, 0x22, 0x22, + 0x89, 0x89, 0x8a, 0x28, 0x28, 0x28 +); -// 0x07002CE8 - 0x07002CF8 -static const Light bowser_3_seg7_light_07002CE8 = { - {{0x89, 0x89, 0x8a}, 0, {0x89, 0x89, 0x8a}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07002CF8 - 0x07002D00 -static const Ambient bowser_3_seg7_light_07002CF8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07002D00 - 0x07002D10 -static const Light bowser_3_seg7_light_07002D00 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07002CF8 - 0x07002D10 +static const Lights1 bowser_3_seg7_lights_07002CF8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07002D10 - 0x07002D70 static const Vtx bowser_3_seg7_vertex_07002D10[] = { @@ -61,12 +53,12 @@ static const Gfx bowser_3_seg7_dl_07002EB0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_3_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_3_seg7_light_07002CE8, 1), - gsSPLight(&bowser_3_seg7_light_07002CE0, 2), + gsSPLight(&bowser_3_seg7_lights_07002CE0.l, 1), + gsSPLight(&bowser_3_seg7_lights_07002CE0.a, 2), gsSPVertex(bowser_3_seg7_vertex_07002D10, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&bowser_3_seg7_light_07002D00, 1), - gsSPLight(&bowser_3_seg7_light_07002CF8, 2), + gsSPLight(&bowser_3_seg7_lights_07002CF8.l, 1), + gsSPLight(&bowser_3_seg7_lights_07002CF8.a, 2), gsSPVertex(bowser_3_seg7_vertex_07002D70, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/bowser_3/falling_platform_6/model.inc.c b/levels/bowser_3/falling_platform_6/model.inc.c index 7669c8c..4238aae 100644 --- a/levels/bowser_3/falling_platform_6/model.inc.c +++ b/levels/bowser_3/falling_platform_6/model.inc.c @@ -1,22 +1,14 @@ -// 0x07003018 - 0x07003020 -static const Ambient bowser_3_seg7_light_07003018 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0} -}; +// 0x07003018 - 0x07003030 +static const Lights1 bowser_3_seg7_lights_07003018 = gdSPDefLights1( + 0x22, 0x22, 0x22, + 0x89, 0x89, 0x8a, 0x28, 0x28, 0x28 +); -// 0x07003020 - 0x07003030 -static const Light bowser_3_seg7_light_07003020 = { - {{0x89, 0x89, 0x8a}, 0, {0x89, 0x89, 0x8a}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07003030 - 0x07003038 -static const Ambient bowser_3_seg7_light_07003030 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07003038 - 0x07003048 -static const Light bowser_3_seg7_light_07003038 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07003030 - 0x07003048 +static const Lights1 bowser_3_seg7_lights_07003030 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07003048 - 0x070030A8 static const Vtx bowser_3_seg7_vertex_07003048[] = { @@ -61,12 +53,12 @@ static const Gfx bowser_3_seg7_dl_070031E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_3_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_3_seg7_light_07003020, 1), - gsSPLight(&bowser_3_seg7_light_07003018, 2), + gsSPLight(&bowser_3_seg7_lights_07003018.l, 1), + gsSPLight(&bowser_3_seg7_lights_07003018.a, 2), gsSPVertex(bowser_3_seg7_vertex_07003048, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&bowser_3_seg7_light_07003038, 1), - gsSPLight(&bowser_3_seg7_light_07003030, 2), + gsSPLight(&bowser_3_seg7_lights_07003030.l, 1), + gsSPLight(&bowser_3_seg7_lights_07003030.a, 2), gsSPVertex(bowser_3_seg7_vertex_070030A8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/bowser_3/falling_platform_7/model.inc.c b/levels/bowser_3/falling_platform_7/model.inc.c index 581df2b..fd2802a 100644 --- a/levels/bowser_3/falling_platform_7/model.inc.c +++ b/levels/bowser_3/falling_platform_7/model.inc.c @@ -1,22 +1,14 @@ -// 0x07003350 - 0x07003358 -static const Ambient bowser_3_seg7_light_07003350 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0} -}; +// 0x07003350 - 0x07003368 +static const Lights1 bowser_3_seg7_lights_07003350 = gdSPDefLights1( + 0x22, 0x22, 0x22, + 0x89, 0x89, 0x8a, 0x28, 0x28, 0x28 +); -// 0x07003358 - 0x07003368 -static const Light bowser_3_seg7_light_07003358 = { - {{0x89, 0x89, 0x8a}, 0, {0x89, 0x89, 0x8a}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07003368 - 0x07003370 -static const Ambient bowser_3_seg7_light_07003368 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07003370 - 0x07003380 -static const Light bowser_3_seg7_light_07003370 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07003368 - 0x07003380 +static const Lights1 bowser_3_seg7_lights_07003368 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07003380 - 0x070033E0 static const Vtx bowser_3_seg7_vertex_07003380[] = { @@ -61,12 +53,12 @@ static const Gfx bowser_3_seg7_dl_07003520[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_3_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_3_seg7_light_07003358, 1), - gsSPLight(&bowser_3_seg7_light_07003350, 2), + gsSPLight(&bowser_3_seg7_lights_07003350.l, 1), + gsSPLight(&bowser_3_seg7_lights_07003350.a, 2), gsSPVertex(bowser_3_seg7_vertex_07003380, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&bowser_3_seg7_light_07003370, 1), - gsSPLight(&bowser_3_seg7_light_07003368, 2), + gsSPLight(&bowser_3_seg7_lights_07003368.l, 1), + gsSPLight(&bowser_3_seg7_lights_07003368.a, 2), gsSPVertex(bowser_3_seg7_vertex_070033E0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/bowser_3/falling_platform_8/model.inc.c b/levels/bowser_3/falling_platform_8/model.inc.c index 081fb52..7d4364b 100644 --- a/levels/bowser_3/falling_platform_8/model.inc.c +++ b/levels/bowser_3/falling_platform_8/model.inc.c @@ -1,22 +1,14 @@ -// 0x07003688 - 0x07003690 -static const Ambient bowser_3_seg7_light_07003688 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0} -}; +// 0x07003688 - 0x070036A0 +static const Lights1 bowser_3_seg7_lights_07003688 = gdSPDefLights1( + 0x22, 0x22, 0x22, + 0x89, 0x89, 0x8a, 0x28, 0x28, 0x28 +); -// 0x07003690 - 0x070036A0 -static const Light bowser_3_seg7_light_07003690 = { - {{0x89, 0x89, 0x8a}, 0, {0x89, 0x89, 0x8a}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070036A0 - 0x070036A8 -static const Ambient bowser_3_seg7_light_070036A0 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x070036A8 - 0x070036B8 -static const Light bowser_3_seg7_light_070036A8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070036A0 - 0x070036B8 +static const Lights1 bowser_3_seg7_lights_070036A0 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070036B8 - 0x07003718 static const Vtx bowser_3_seg7_vertex_070036B8[] = { @@ -61,12 +53,12 @@ static const Gfx bowser_3_seg7_dl_07003858[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_3_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_3_seg7_light_07003690, 1), - gsSPLight(&bowser_3_seg7_light_07003688, 2), + gsSPLight(&bowser_3_seg7_lights_07003688.l, 1), + gsSPLight(&bowser_3_seg7_lights_07003688.a, 2), gsSPVertex(bowser_3_seg7_vertex_070036B8, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&bowser_3_seg7_light_070036A8, 1), - gsSPLight(&bowser_3_seg7_light_070036A0, 2), + gsSPLight(&bowser_3_seg7_lights_070036A0.l, 1), + gsSPLight(&bowser_3_seg7_lights_070036A0.a, 2), gsSPVertex(bowser_3_seg7_vertex_07003718, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/bowser_3/falling_platform_9/model.inc.c b/levels/bowser_3/falling_platform_9/model.inc.c index 0bbe66d..e64104f 100644 --- a/levels/bowser_3/falling_platform_9/model.inc.c +++ b/levels/bowser_3/falling_platform_9/model.inc.c @@ -1,22 +1,14 @@ -// 0x070039C0 - 0x070039C8 -static const Ambient bowser_3_seg7_light_070039C0 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0} -}; +// 0x070039C0 - 0x070039D8 +static const Lights1 bowser_3_seg7_lights_070039C0 = gdSPDefLights1( + 0x22, 0x22, 0x22, + 0x89, 0x89, 0x8a, 0x28, 0x28, 0x28 +); -// 0x070039C8 - 0x070039D8 -static const Light bowser_3_seg7_light_070039C8 = { - {{0x89, 0x89, 0x8a}, 0, {0x89, 0x89, 0x8a}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070039D8 - 0x070039E0 -static const Ambient bowser_3_seg7_light_070039D8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x070039E0 - 0x070039F0 -static const Light bowser_3_seg7_light_070039E0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070039D8 - 0x070039F0 +static const Lights1 bowser_3_seg7_lights_070039D8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070039F0 - 0x07003A50 static const Vtx bowser_3_seg7_vertex_070039F0[] = { @@ -61,12 +53,12 @@ static const Gfx bowser_3_seg7_dl_07003B90[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_3_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&bowser_3_seg7_light_070039C8, 1), - gsSPLight(&bowser_3_seg7_light_070039C0, 2), + gsSPLight(&bowser_3_seg7_lights_070039C0.l, 1), + gsSPLight(&bowser_3_seg7_lights_070039C0.a, 2), gsSPVertex(bowser_3_seg7_vertex_070039F0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&bowser_3_seg7_light_070039E0, 1), - gsSPLight(&bowser_3_seg7_light_070039D8, 2), + gsSPLight(&bowser_3_seg7_lights_070039D8.l, 1), + gsSPLight(&bowser_3_seg7_lights_070039D8.a, 2), gsSPVertex(bowser_3_seg7_vertex_07003A50, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/bowser_3/script.c b/levels/bowser_3/script.c index 7f2b840..18bb87d 100644 --- a/levels/bowser_3/script.c +++ b/levels/bowser_3/script.c @@ -57,9 +57,9 @@ const LevelScript level_bowser_3_entry[] = { AREA(/*index*/ 1, bowser_3_geo_000398), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 1307, 0, /*angle*/ 0, 183, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps6C), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x22, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_BOWSER_3, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x15, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_BITS, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), TERRAIN(/*terrainData*/ bowser_3_seg7_collision_level), SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0002, /*seq*/ SEQ_LEVEL_BOSS_KOOPA_FINAL), TERRAIN_TYPE(/*terrainType*/ TERRAIN_STONE), diff --git a/levels/castle_courtyard/areas/1/macro.inc.c b/levels/castle_courtyard/areas/1/macro.inc.c index 32744da..0f88dfd 100644 --- a/levels/castle_courtyard/areas/1/macro.inc.c +++ b/levels/castle_courtyard/areas/1/macro.inc.c @@ -1,8 +1,8 @@ // 0x07006E20 - 0x07006E4A const MacroObject castle_courtyard_seg7_macro_objs[] = { - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 225, /*pos*/ 3180, 20, 330, /*behParam*/ 158), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 135, /*pos*/ -3180, 20, 330, /*behParam*/ 159), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 300, 0, -3600, /*behParam*/ 102), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -300, 0, -3600, /*behParam*/ 160), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 225, /*pos*/ 3180, 20, 330, /*behParam*/ DIALOG_158), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 135, /*pos*/ -3180, 20, 330, /*behParam*/ DIALOG_159), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 300, 0, -3600, /*behParam*/ DIALOG_102), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -300, 0, -3600, /*behParam*/ DIALOG_160), MACRO_OBJECT_END(), }; diff --git a/levels/castle_courtyard/leveldata.c b/levels/castle_courtyard/leveldata.c index da0d328..6d14ac5 100644 --- a/levels/castle_courtyard/leveldata.c +++ b/levels/castle_courtyard/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/castle_courtyard/texture.inc.c" diff --git a/levels/castle_courtyard/script.c b/levels/castle_courtyard/script.c index d454ae5..05e7f99 100644 --- a/levels/castle_courtyard/script.c +++ b/levels/castle_courtyard/script.c @@ -50,11 +50,11 @@ const LevelScript level_castle_courtyard_entry[] = { OBJECT(/*model*/ MODEL_BOO, /*pos*/ -2360, -100, -2712, /*angle*/ 0, 0, 0, /*behParam*/ 0x01050000, /*beh*/ bhvBooWithCage), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 51, -1000, /*angle*/ 0, 180, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps8C), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 51, -1000, /*angle*/ 0, 180, 0, /*behParam*/ 0x000B0000, /*beh*/ bhvWarps90), - WARP_NODE(/*id*/ 0x05, /*destLevel*/ 0x04, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x1A, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x1A, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x01, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x02, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x03, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x05, /*destLevel*/ LEVEL_BBH, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_CASTLE_COURTYARD, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_CASTLE_COURTYARD, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x01, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x02, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x03, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), TERRAIN(/*terrainData*/ castle_courtyard_seg7_collision), diff --git a/levels/castle_grounds/areas/1/11/model.inc.c b/levels/castle_grounds/areas/1/11/model.inc.c index f57d6ef..a1b3a81 100644 --- a/levels/castle_grounds/areas/1/11/model.inc.c +++ b/levels/castle_grounds/areas/1/11/model.inc.c @@ -1,25 +1,17 @@ // TODO: what is this? 0700C4C0-0700C4C8 [8,8] UNUSED static const u64 castle_grounds_unused_0 = 0; -// 0x0700C4C8 - 0x0700C4D0 -static const Ambient castle_grounds_seg7_light_0700C4C8 = { - {{0x66, 0x00, 0x00}, 0, {0x66, 0x00, 0x00}, 0} -}; +// 0x0700C4C8 - 0x0700C4E0 +static const Lights1 castle_grounds_seg7_lights_0700C4C8 = gdSPDefLights1( + 0x66, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x0700C4D0 - 0x0700C4E0 -static const Light castle_grounds_seg7_light_0700C4D0 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700C4E0 - 0x0700C4E8 -static const Ambient castle_grounds_seg7_light_0700C4E0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700C4E8 - 0x0700C4F8 -static const Light castle_grounds_seg7_light_0700C4E8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700C4E0 - 0x0700C4F8 +static const Lights1 castle_grounds_seg7_lights_0700C4E0 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // TODO: what is this? 0700C4F8-0700C500 [8,8] UNUSED static const u64 castle_grounds_unused_1 = 0; @@ -74,8 +66,8 @@ static const Vtx castle_grounds_seg7_vertex_0700C640[] = { // 0x0700C670 - 0x0700C6A8 const Gfx castle_grounds_seg7_dl_0700C670[] = { gsSPClearGeometryMode(G_CULL_BACK), - gsSPLight(&castle_grounds_seg7_light_0700C4D0, 1), - gsSPLight(&castle_grounds_seg7_light_0700C4C8, 2), + gsSPLight(&castle_grounds_seg7_lights_0700C4C8.l, 1), + gsSPLight(&castle_grounds_seg7_lights_0700C4C8.a, 2), gsSPVertex(castle_grounds_seg7_vertex_0700C500, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), gsSPSetGeometryMode(G_CULL_BACK), @@ -85,8 +77,8 @@ const Gfx castle_grounds_seg7_dl_0700C670[] = { // 0x0700C6A8 - 0x0700C6E8 const Gfx castle_grounds_seg7_dl_0700C6A8[] = { gsSPClearGeometryMode(G_CULL_BACK), - gsSPLight(&castle_grounds_seg7_light_0700C4D0, 1), - gsSPLight(&castle_grounds_seg7_light_0700C4C8, 2), + gsSPLight(&castle_grounds_seg7_lights_0700C4C8.l, 1), + gsSPLight(&castle_grounds_seg7_lights_0700C4C8.a, 2), gsSPVertex(castle_grounds_seg7_vertex_0700C530, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPSetGeometryMode(G_CULL_BACK), @@ -96,8 +88,8 @@ const Gfx castle_grounds_seg7_dl_0700C6A8[] = { // 0x0700C6E8 - 0x0700C728 const Gfx castle_grounds_seg7_dl_0700C6E8[] = { gsSPClearGeometryMode(G_CULL_BACK), - gsSPLight(&castle_grounds_seg7_light_0700C4D0, 1), - gsSPLight(&castle_grounds_seg7_light_0700C4C8, 2), + gsSPLight(&castle_grounds_seg7_lights_0700C4C8.l, 1), + gsSPLight(&castle_grounds_seg7_lights_0700C4C8.a, 2), gsSPVertex(castle_grounds_seg7_vertex_0700C570, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPSetGeometryMode(G_CULL_BACK), @@ -107,8 +99,8 @@ const Gfx castle_grounds_seg7_dl_0700C6E8[] = { // 0x0700C728 - 0x0700C768 const Gfx castle_grounds_seg7_dl_0700C728[] = { gsSPClearGeometryMode(G_CULL_BACK), - gsSPLight(&castle_grounds_seg7_light_0700C4D0, 1), - gsSPLight(&castle_grounds_seg7_light_0700C4C8, 2), + gsSPLight(&castle_grounds_seg7_lights_0700C4C8.l, 1), + gsSPLight(&castle_grounds_seg7_lights_0700C4C8.a, 2), gsSPVertex(castle_grounds_seg7_vertex_0700C5B0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPSetGeometryMode(G_CULL_BACK), @@ -118,12 +110,12 @@ const Gfx castle_grounds_seg7_dl_0700C728[] = { // 0x0700C768 - 0x0700C7C8 const Gfx castle_grounds_seg7_dl_0700C768[] = { gsSPClearGeometryMode(G_CULL_BACK), - gsSPLight(&castle_grounds_seg7_light_0700C4E8, 1), - gsSPLight(&castle_grounds_seg7_light_0700C4E0, 2), + gsSPLight(&castle_grounds_seg7_lights_0700C4E0.l, 1), + gsSPLight(&castle_grounds_seg7_lights_0700C4E0.a, 2), gsSPVertex(castle_grounds_seg7_vertex_0700C5F0, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), - gsSPLight(&castle_grounds_seg7_light_0700C4D0, 1), - gsSPLight(&castle_grounds_seg7_light_0700C4C8, 2), + gsSPLight(&castle_grounds_seg7_lights_0700C4C8.l, 1), + gsSPLight(&castle_grounds_seg7_lights_0700C4C8.a, 2), gsSPVertex(castle_grounds_seg7_vertex_0700C640, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), gsSPSetGeometryMode(G_CULL_BACK), diff --git a/levels/castle_grounds/areas/1/2/model.inc.c b/levels/castle_grounds/areas/1/2/model.inc.c index 1470278..d778edd 100644 --- a/levels/castle_grounds/areas/1/2/model.inc.c +++ b/levels/castle_grounds/areas/1/2/model.inc.c @@ -1,82 +1,50 @@ -// 0x07006ED8 - 0x07006EE0 -static const Ambient castle_grounds_seg7_light_07006ED8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; +// 0x07006ED8 - 0x07006EF0 +static const Lights1 castle_grounds_seg7_lights_07006ED8 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07006EE0 - 0x07006EF0 -static const Light castle_grounds_seg7_light_07006EE0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07006EF0 - 0x07006F08 +static const Lights1 castle_grounds_seg7_lights_07006EF0 = gdSPDefLights1( + 0x4e, 0x4e, 0x53, + 0xc4, 0xc4, 0xd0, 0x28, 0x28, 0x28 +); -// 0x07006EF0 - 0x07006EF8 -static const Ambient castle_grounds_seg7_light_07006EF0 = { - {{0x4e, 0x4e, 0x53}, 0, {0x4e, 0x4e, 0x53}, 0} -}; +// 0x07006F08 - 0x07006F20 +static const Lights1 castle_grounds_seg7_lights_07006F08 = gdSPDefLights1( + 0x36, 0x36, 0x37, + 0x89, 0x89, 0x8a, 0x28, 0x28, 0x28 +); -// 0x07006EF8 - 0x07006F08 -static const Light castle_grounds_seg7_light_07006EF8 = { - {{0xc4, 0xc4, 0xd0}, 0, {0xc4, 0xc4, 0xd0}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07006F20 - 0x07006F38 +static const Lights1 castle_grounds_seg7_lights_07006F20 = gdSPDefLights1( + 0x2d, 0x2d, 0x38, + 0x72, 0x72, 0x8c, 0x28, 0x28, 0x28 +); -// 0x07006F08 - 0x07006F10 -static const Ambient castle_grounds_seg7_light_07006F08 = { - {{0x36, 0x36, 0x37}, 0, {0x36, 0x36, 0x37}, 0} -}; +// 0x07006F38 - 0x07006F50 +static const Lights1 castle_grounds_seg7_lights_07006F38 = gdSPDefLights1( + 0x29, 0x29, 0x2a, + 0x67, 0x67, 0x69, 0x28, 0x28, 0x28 +); -// 0x07006F10 - 0x07006F20 -static const Light castle_grounds_seg7_light_07006F10 = { - {{0x89, 0x89, 0x8a}, 0, {0x89, 0x89, 0x8a}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07006F50 - 0x07006F68 +static const Lights1 castle_grounds_seg7_lights_07006F50 = gdSPDefLights1( + 0x56, 0x56, 0x56, + 0xd8, 0xd8, 0xd8, 0x28, 0x28, 0x28 +); -// 0x07006F20 - 0x07006F28 -static const Ambient castle_grounds_seg7_light_07006F20 = { - {{0x2d, 0x2d, 0x38}, 0, {0x2d, 0x2d, 0x38}, 0} -}; +// 0x07006F68 - 0x07006F80 +static const Lights1 castle_grounds_seg7_lights_07006F68 = gdSPDefLights1( + 0x23, 0x23, 0x27, + 0x58, 0x58, 0x62, 0x28, 0x28, 0x28 +); -// 0x07006F28 - 0x07006F38 -static const Light castle_grounds_seg7_light_07006F28 = { - {{0x72, 0x72, 0x8c}, 0, {0x72, 0x72, 0x8c}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07006F38 - 0x07006F40 -static const Ambient castle_grounds_seg7_light_07006F38 = { - {{0x29, 0x29, 0x2a}, 0, {0x29, 0x29, 0x2a}, 0} -}; - -// 0x07006F40 - 0x07006F50 -static const Light castle_grounds_seg7_light_07006F40 = { - {{0x67, 0x67, 0x69}, 0, {0x67, 0x67, 0x69}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07006F50 - 0x07006F58 -static const Ambient castle_grounds_seg7_light_07006F50 = { - {{0x56, 0x56, 0x56}, 0, {0x56, 0x56, 0x56}, 0} -}; - -// 0x07006F58 - 0x07006F68 -static const Light castle_grounds_seg7_light_07006F58 = { - {{0xd8, 0xd8, 0xd8}, 0, {0xd8, 0xd8, 0xd8}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07006F68 - 0x07006F70 -static const Ambient castle_grounds_seg7_light_07006F68 = { - {{0x23, 0x23, 0x27}, 0, {0x23, 0x23, 0x27}, 0} -}; - -// 0x07006F70 - 0x07006F80 -static const Light castle_grounds_seg7_light_07006F70 = { - {{0x58, 0x58, 0x62}, 0, {0x58, 0x58, 0x62}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07006F80 - 0x07006F88 -static const Ambient castle_grounds_seg7_light_07006F80 = { - {{0x13, 0x57, 0x00}, 0, {0x13, 0x57, 0x00}, 0} -}; - -// 0x07006F88 - 0x07006F98 -static const Light castle_grounds_seg7_light_07006F88 = { - {{0x30, 0xdb, 0x02}, 0, {0x30, 0xdb, 0x02}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07006F80 - 0x07006F98 +static const Lights1 castle_grounds_seg7_lights_07006F80 = gdSPDefLights1( + 0x13, 0x57, 0x00, + 0x30, 0xdb, 0x02, 0x28, 0x28, 0x28 +); // 0x07006F98 - 0x07006FD8 static const Vtx castle_grounds_seg7_vertex_07006F98[] = { @@ -657,12 +625,12 @@ static const Gfx castle_grounds_seg7_dl_070089F8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, outside_0900B000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 16 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&castle_grounds_seg7_light_07006EE0, 1), - gsSPLight(&castle_grounds_seg7_light_07006ED8, 2), + gsSPLight(&castle_grounds_seg7_lights_07006ED8.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006ED8.a, 2), gsSPVertex(castle_grounds_seg7_vertex_07006F98, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), - gsSPLight(&castle_grounds_seg7_light_07006EF8, 1), - gsSPLight(&castle_grounds_seg7_light_07006EF0, 2), + gsSPLight(&castle_grounds_seg7_lights_07006EF0.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006EF0.a, 2), gsSPVertex(castle_grounds_seg7_vertex_07006FD8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), gsSPEndDisplayList(), @@ -673,8 +641,8 @@ static const Gfx castle_grounds_seg7_dl_07008A68[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, outside_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&castle_grounds_seg7_light_07006EE0, 1), - gsSPLight(&castle_grounds_seg7_light_07006ED8, 2), + gsSPLight(&castle_grounds_seg7_lights_07006ED8.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006ED8.a, 2), gsSPVertex(castle_grounds_seg7_vertex_07007018, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 6, 0x0), @@ -741,8 +709,8 @@ static const Gfx castle_grounds_seg7_dl_07008D70[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, outside_09009000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&castle_grounds_seg7_light_07006F10, 1), - gsSPLight(&castle_grounds_seg7_light_07006F08, 2), + gsSPLight(&castle_grounds_seg7_lights_07006F08.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006F08.a, 2), gsSPVertex(castle_grounds_seg7_vertex_070077B8, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 3, 4, 2, 0x0, 5, 0, 2, 0x0), @@ -756,8 +724,8 @@ static const Gfx castle_grounds_seg7_dl_07008DE8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, outside_09009800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&castle_grounds_seg7_light_07006EE0, 1), - gsSPLight(&castle_grounds_seg7_light_07006ED8, 2), + gsSPLight(&castle_grounds_seg7_lights_07006ED8.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006ED8.a, 2), gsSPVertex(castle_grounds_seg7_vertex_07007858, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 1, 3, 5, 0x0), @@ -766,12 +734,12 @@ static const Gfx castle_grounds_seg7_dl_07008DE8[] = { gsSP2Triangles( 8, 9, 10, 0x0, 10, 11, 3, 0x0), gsSP2Triangles( 3, 8, 10, 0x0, 8, 3, 0, 0x0), gsSP1Triangle( 4, 7, 12, 0x0), - gsSPLight(&castle_grounds_seg7_light_07006F10, 1), - gsSPLight(&castle_grounds_seg7_light_07006F08, 2), + gsSPLight(&castle_grounds_seg7_lights_07006F08.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006F08.a, 2), gsSPVertex(castle_grounds_seg7_vertex_07007928, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&castle_grounds_seg7_light_07006EE0, 1), - gsSPLight(&castle_grounds_seg7_light_07006ED8, 2), + gsSPLight(&castle_grounds_seg7_lights_07006ED8.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006ED8.a, 2), gsSPVertex(castle_grounds_seg7_vertex_07007968, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 3, 1, 4, 0x0, 3, 4, 5, 0x0), @@ -785,8 +753,8 @@ static const Gfx castle_grounds_seg7_dl_07008EE8[] = { gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPVertex(castle_grounds_seg7_vertex_070079C8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), - gsSPLight(&castle_grounds_seg7_light_07006F28, 1), - gsSPLight(&castle_grounds_seg7_light_07006F20, 2), + gsSPLight(&castle_grounds_seg7_lights_07006F20.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006F20.a, 2), gsSPVertex(castle_grounds_seg7_vertex_07007A08, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSPEndDisplayList(), @@ -797,8 +765,8 @@ static const Gfx castle_grounds_seg7_dl_07008F48[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, outside_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&castle_grounds_seg7_light_07006EE0, 1), - gsSPLight(&castle_grounds_seg7_light_07006ED8, 2), + gsSPLight(&castle_grounds_seg7_lights_07006ED8.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006ED8.a, 2), gsSPVertex(castle_grounds_seg7_vertex_07007A48, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 1, 4, 2, 0x0, 4, 5, 2, 0x0), @@ -823,19 +791,19 @@ static const Gfx castle_grounds_seg7_dl_07009010[] = { gsSP2Triangles( 4, 5, 6, 0x0, 5, 4, 7, 0x0), gsSP2Triangles( 8, 5, 7, 0x0, 9, 10, 11, 0x0), gsSP1Triangle(10, 12, 11, 0x0), - gsSPLight(&castle_grounds_seg7_light_07006F40, 1), - gsSPLight(&castle_grounds_seg7_light_07006F38, 2), + gsSPLight(&castle_grounds_seg7_lights_07006F38.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006F38.a, 2), gsSPVertex(castle_grounds_seg7_vertex_07007C98, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 2, 3, 4, 0x0, 5, 6, 7, 0x0), gsSP2Triangles( 5, 7, 8, 0x0, 7, 9, 8, 0x0), gsSP2Triangles( 3, 10, 4, 0x0, 8, 9, 11, 0x0), - gsSPLight(&castle_grounds_seg7_light_07006F58, 1), - gsSPLight(&castle_grounds_seg7_light_07006F50, 2), + gsSPLight(&castle_grounds_seg7_lights_07006F50.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006F50.a, 2), gsSPVertex(castle_grounds_seg7_vertex_07007D58, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), - gsSPLight(&castle_grounds_seg7_light_07006EE0, 1), - gsSPLight(&castle_grounds_seg7_light_07006ED8, 2), + gsSPLight(&castle_grounds_seg7_lights_07006ED8.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006ED8.a, 2), gsSPVertex(castle_grounds_seg7_vertex_07007D98, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 4, 3, 0x0, 4, 7, 5, 0x0), @@ -867,18 +835,18 @@ static const Gfx castle_grounds_seg7_dl_07009010[] = { gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 10, 8, 0x0, 11, 12, 13, 0x0), gsSP2Triangles( 8, 14, 13, 0x0, 12, 8, 13, 0x0), - gsSPLight(&castle_grounds_seg7_light_07006F70, 1), - gsSPLight(&castle_grounds_seg7_light_07006F68, 2), + gsSPLight(&castle_grounds_seg7_lights_07006F68.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006F68.a, 2), gsSPVertex(castle_grounds_seg7_vertex_07008268, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 2, 4, 3, 0x0, 3, 4, 5, 0x0), - gsSPLight(&castle_grounds_seg7_light_07006F10, 1), - gsSPLight(&castle_grounds_seg7_light_07006F08, 2), + gsSPLight(&castle_grounds_seg7_lights_07006F08.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006F08.a, 2), gsSPVertex(castle_grounds_seg7_vertex_070082C8, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 5, 4, 6, 0x0), - gsSPLight(&castle_grounds_seg7_light_07006EE0, 1), - gsSPLight(&castle_grounds_seg7_light_07006ED8, 2), + gsSPLight(&castle_grounds_seg7_lights_07006ED8.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006ED8.a, 2), gsSPVertex(castle_grounds_seg7_vertex_07008338, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), gsSPEndDisplayList(), @@ -889,8 +857,8 @@ static const Gfx castle_grounds_seg7_dl_07009330[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, outside_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&castle_grounds_seg7_light_07006F88, 1), - gsSPLight(&castle_grounds_seg7_light_07006F80, 2), + gsSPLight(&castle_grounds_seg7_lights_07006F80.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006F80.a, 2), gsSPVertex(castle_grounds_seg7_vertex_07008368, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 3, 7, 4, 0x0), @@ -936,14 +904,14 @@ static const Gfx castle_grounds_seg7_dl_07009568[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, outside_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&castle_grounds_seg7_light_07006F40, 1), - gsSPLight(&castle_grounds_seg7_light_07006F38, 2), + gsSPLight(&castle_grounds_seg7_lights_07006F38.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006F38.a, 2), gsSPVertex(castle_grounds_seg7_vertex_07008908, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP1Triangle( 0, 2, 10, 0x0), - gsSPLight(&castle_grounds_seg7_light_07006F10, 1), - gsSPLight(&castle_grounds_seg7_light_07006F08, 2), + gsSPLight(&castle_grounds_seg7_lights_07006F08.l, 1), + gsSPLight(&castle_grounds_seg7_lights_07006F08.a, 2), gsSPVertex(castle_grounds_seg7_vertex_070089B8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/castle_grounds/areas/1/9/model.inc.c b/levels/castle_grounds/areas/1/9/model.inc.c index 961a64a..7a70ade 100644 --- a/levels/castle_grounds/areas/1/9/model.inc.c +++ b/levels/castle_grounds/areas/1/9/model.inc.c @@ -1,52 +1,32 @@ // 0x0700BCD8 - 0x0700BCE0 -static const Ambient castle_grounds_seg7_light_0700BCD8 = { - {{0x3d, 0x3d, 0x44}, 0, {0x3d, 0x3d, 0x44}, 0} -}; +static const Lights1 castle_grounds_seg7_lights_0700BCD8 = gdSPDefLights1( + 0x3d, 0x3d, 0x44, + 0x99, 0x99, 0xac, 0x28, 0x28, 0x28 +); -// 0x0700BCE0 - 0x0700BCF0 -static const Light castle_grounds_seg7_light_0700BCE0 = { - {{0x99, 0x99, 0xac}, 0, {0x99, 0x99, 0xac}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700BCF0 - 0x0700BD08 +static const Lights1 castle_grounds_seg7_lights_0700BCF0 = gdSPDefLights1( + 0x58, 0x58, 0x5a, + 0xdc, 0xdc, 0xe3, 0x28, 0x28, 0x28 +); -// 0x0700BCF0 - 0x0700BCF8 -static const Ambient castle_grounds_seg7_light_0700BCF0 = { - {{0x58, 0x58, 0x5a}, 0, {0x58, 0x58, 0x5a}, 0} -}; +// 0x0700BD08 - 0x0700BD20 +static const Lights1 castle_grounds_seg7_lights_0700BD08 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700BCF8 - 0x0700BD08 -static const Light castle_grounds_seg7_light_0700BCF8 = { - {{0xdc, 0xdc, 0xe3}, 0, {0xdc, 0xdc, 0xe3}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700BD20 - 0x0700BD38 +static const Lights1 castle_grounds_seg7_lights_0700BD20 = gdSPDefLights1( + 0x4e, 0x4e, 0x53, + 0xc4, 0xc4, 0xd0, 0x28, 0x28, 0x28 +); -// 0x0700BD08 - 0x0700BD10 -static const Ambient castle_grounds_seg7_light_0700BD08 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700BD10 - 0x0700BD20 -static const Light castle_grounds_seg7_light_0700BD10 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700BD20 - 0x0700BD28 -static const Ambient castle_grounds_seg7_light_0700BD20 = { - {{0x4e, 0x4e, 0x53}, 0, {0x4e, 0x4e, 0x53}, 0} -}; - -// 0x0700BD28 - 0x0700BD38 -static const Light castle_grounds_seg7_light_0700BD28 = { - {{0xc4, 0xc4, 0xd0}, 0, {0xc4, 0xc4, 0xd0}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700BD38 - 0x0700BD40 -static const Ambient castle_grounds_seg7_light_0700BD38 = { - {{0x45, 0x45, 0x4b}, 0, {0x45, 0x45, 0x4b}, 0} -}; - -// 0x0700BD40 - 0x0700BD50 -static const Light castle_grounds_seg7_light_0700BD40 = { - {{0xad, 0xad, 0xbc}, 0, {0xad, 0xad, 0xbc}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700BD38 - 0x0700BD50 +static const Lights1 castle_grounds_seg7_lights_0700BD38 = gdSPDefLights1( + 0x45, 0x45, 0x4b, + 0xad, 0xad, 0xbc, 0x28, 0x28, 0x28 +); // 0x0700BD50 - 0x0700BE10 static const Vtx castle_grounds_seg7_vertex_0700BD50[] = { @@ -127,14 +107,14 @@ static const Gfx castle_grounds_seg7_dl_0700C070[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, outside_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&castle_grounds_seg7_light_0700BCE0, 1), - gsSPLight(&castle_grounds_seg7_light_0700BCD8, 2), + gsSPLight(&castle_grounds_seg7_lights_0700BCD8.l, 1), + gsSPLight(&castle_grounds_seg7_lights_0700BCD8.a, 2), gsSPVertex(castle_grounds_seg7_vertex_0700BD50, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 8, 11, 9, 0x0), - gsSPLight(&castle_grounds_seg7_light_0700BCF8, 1), - gsSPLight(&castle_grounds_seg7_light_0700BCF0, 2), + gsSPLight(&castle_grounds_seg7_lights_0700BCF0.l, 1), + gsSPLight(&castle_grounds_seg7_lights_0700BCF0.a, 2), gsSPVertex(castle_grounds_seg7_vertex_0700BE10, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -146,24 +126,24 @@ static const Gfx castle_grounds_seg7_dl_0700C110[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, outside_09001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&castle_grounds_seg7_light_0700BD10, 1), - gsSPLight(&castle_grounds_seg7_light_0700BD08, 2), + gsSPLight(&castle_grounds_seg7_lights_0700BD08.l, 1), + gsSPLight(&castle_grounds_seg7_lights_0700BD08.a, 2), gsSPVertex(castle_grounds_seg7_vertex_0700BE90, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 0, 4, 3, 0x0, 0, 2, 5, 0x0), gsSP2Triangles( 6, 4, 7, 0x0, 6, 3, 4, 0x0), gsSP2Triangles( 2, 6, 7, 0x0, 5, 2, 7, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 9, 11, 10, 0x0), - gsSPLight(&castle_grounds_seg7_light_0700BD28, 1), - gsSPLight(&castle_grounds_seg7_light_0700BD20, 2), + gsSPLight(&castle_grounds_seg7_lights_0700BD20.l, 1), + gsSPLight(&castle_grounds_seg7_lights_0700BD20.a, 2), gsSPVertex(castle_grounds_seg7_vertex_0700BF50, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&castle_grounds_seg7_light_0700BD40, 1), - gsSPLight(&castle_grounds_seg7_light_0700BD38, 2), + gsSPLight(&castle_grounds_seg7_lights_0700BD38.l, 1), + gsSPLight(&castle_grounds_seg7_lights_0700BD38.a, 2), gsSPVertex(castle_grounds_seg7_vertex_0700BFB0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&castle_grounds_seg7_light_0700BCF8, 1), - gsSPLight(&castle_grounds_seg7_light_0700BCF0, 2), + gsSPLight(&castle_grounds_seg7_lights_0700BCF0.l, 1), + gsSPLight(&castle_grounds_seg7_lights_0700BCF0.a, 2), gsSPVertex(castle_grounds_seg7_vertex_0700C010, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), diff --git a/levels/castle_grounds/areas/1/geo.inc.c b/levels/castle_grounds/areas/1/geo.inc.c index e245cf2..4ccd2d1 100644 --- a/levels/castle_grounds/areas/1/geo.inc.c +++ b/levels/castle_grounds/areas/1/geo.inc.c @@ -32,7 +32,7 @@ const GeoLayout castle_grounds_geo_00073C[] = { GEO_CLOSE_NODE(), GEO_ZBUFFER(0), GEO_OPEN_NODE(), - GEO_ASM(0, Geo18_802CD1E8), + GEO_ASM(0, geo_cannon_circle_base), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/levels/castle_grounds/areas/1/macro.inc.c b/levels/castle_grounds/areas/1/macro.inc.c index 00232bc..94ea233 100644 --- a/levels/castle_grounds/areas/1/macro.inc.c +++ b/levels/castle_grounds/areas/1/macro.inc.c @@ -1,9 +1,9 @@ // 0x07010D08 - 0x07010DB4 const MacroObject castle_grounds_seg7_macro_objs[] = { - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 262, /*pos*/ 5288, 722, -800, /*behParam*/ 50), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 1740, 35, 2500, /*behParam*/ 65), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -1566, 260, 3503, /*behParam*/ 167), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 82, /*pos*/ -4666, 260, 922, /*behParam*/ 51), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 262, /*pos*/ 5288, 722, -800, /*behParam*/ DIALOG_050), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 1740, 35, 2500, /*behParam*/ DIALOG_065), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -1566, 260, 3503, /*behParam*/ DIALOG_167), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 82, /*pos*/ -4666, 260, 922, /*behParam*/ DIALOG_051), MACRO_OBJECT(/*preset*/ macro_hidden_1up_in_pole, /*yaw*/ 0, /*pos*/ -6270, 975, -2145), MACRO_OBJECT(/*preset*/ macro_1up, /*yaw*/ 0, /*pos*/ -440, 3180, -5000), MACRO_OBJECT(/*preset*/ macro_1up, /*yaw*/ 0, /*pos*/ 0, 3180, -5200), diff --git a/levels/castle_grounds/leveldata.c b/levels/castle_grounds/leveldata.c index 768260b..1263f06 100644 --- a/levels/castle_grounds/leveldata.c +++ b/levels/castle_grounds/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/castle_grounds/texture.inc.c" diff --git a/levels/castle_grounds/script.c b/levels/castle_grounds/script.c index 4c207cb..e51d6a0 100644 --- a/levels/castle_grounds/script.c +++ b/levels/castle_grounds/script.c @@ -16,27 +16,27 @@ #include "levels/castle_grounds/header.h" static const LevelScript script_func_local_1[] = { - WARP_NODE(/*id*/ 0x00, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x00, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x01, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x01, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x02, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x02, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x00, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x00, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x01, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x01, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x02, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x02, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 900, -1710, /*angle*/ 0, 180, 0, /*behParam*/ 0x00030000, /*beh*/ bhvWarps70), - WARP_NODE(/*id*/ 0x03, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x03, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x03, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x03, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1328, 260, 4664, /*angle*/ 0, 180, 0, /*behParam*/ 0x00040000, /*beh*/ bhvWarps6C), - WARP_NODE(/*id*/ 0x04, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x04, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x04, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x04, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3379, -815, -2025, /*angle*/ 0, 0, 0, /*behParam*/ 0x3C050000, /*beh*/ bhvWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3379, -500, -2025, /*angle*/ 0, 180, 0, /*behParam*/ 0x00060000, /*beh*/ bhvWarps90), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3799, -1199, -5816, /*angle*/ 0, 0, 0, /*behParam*/ 0x00070000, /*beh*/ bhvWarps94), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3379, -500, -2025, /*angle*/ 0, 180, 0, /*behParam*/ 0x00080000, /*beh*/ bhvWarps8C), - WARP_NODE(/*id*/ 0x05, /*destLevel*/ 0x12, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x06, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x06, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x07, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x07, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x08, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x08, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x05, /*destLevel*/ LEVEL_VCUTM, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x06, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x06, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x07, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x07, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x08, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x08, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 5408, 4500, 3637, /*angle*/ 0, 225, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps64), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -6901, 2376, -6509, /*angle*/ 0, 230, 0, /*behParam*/ 0x00140000, /*beh*/ bhvWarps64), - WARP_NODE(/*id*/ 0x14, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x14, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x14, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x14, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 4997, -1250, 2258, /*angle*/ 0, 210, 0, /*behParam*/ 0x001E0000, /*beh*/ bhvWarps94), - WARP_NODE(/*id*/ 0x1E, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x1E, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x1E, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x1E, /*flags*/ WARP_NO_CHECKPOINT), RETURN(), }; @@ -118,7 +118,7 @@ const LevelScript level_castle_grounds_entry[] = { LOAD_MODEL_FROM_GEO(MODEL_CASTLE_GROUNDS_CANNON_GRILL, castle_grounds_geo_000724), AREA(/*index*/ 1, castle_grounds_geo_00073C), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x03, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x03, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), JUMP_LINK(script_func_local_3), diff --git a/levels/castle_inside/areas/1/10/model.inc.c b/levels/castle_inside/areas/1/10/model.inc.c index 75cda79..8087745 100644 --- a/levels/castle_inside/areas/1/10/model.inc.c +++ b/levels/castle_inside/areas/1/10/model.inc.c @@ -1,12 +1,8 @@ -// 0x0702FDD8 - 0x0702FDE0 -static const Ambient inside_castle_seg7_light_0702FDD8 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x0702FDE0 - 0x0702FDF0 -static const Light inside_castle_seg7_light_0702FDE0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0702FDD8 - 0x0702FDF0 +static const Lights1 inside_castle_seg7_lights_0702FDD8 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0702FDF0 - 0x0702FE70 static const Vtx inside_castle_seg7_vertex_0702FDF0[] = { @@ -700,8 +696,8 @@ static const Gfx inside_castle_seg7_dl_07031070[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0702FDE0, 1), - gsSPLight(&inside_castle_seg7_light_0702FDD8, 2), + gsSPLight(&inside_castle_seg7_lights_0702FDD8.l, 1), + gsSPLight(&inside_castle_seg7_lights_0702FDD8.a, 2), gsSPVertex(inside_castle_seg7_vertex_0702FDF0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 5, 1, 0x0, 0, 6, 5, 0x0), @@ -711,8 +707,8 @@ static const Gfx inside_castle_seg7_dl_07031070[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0702FDE0, 1), - gsSPLight(&inside_castle_seg7_light_0702FDD8, 2), + gsSPLight(&inside_castle_seg7_lights_0702FDD8.l, 1), + gsSPLight(&inside_castle_seg7_lights_0702FDD8.a, 2), gsSPVertex(inside_castle_seg7_vertex_0702FDF0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 5, 3, 0x0, 0, 2, 6, 0x0), diff --git a/levels/castle_inside/areas/1/12/model.inc.c b/levels/castle_inside/areas/1/12/model.inc.c index c2d827d..0dbcfe0 100644 --- a/levels/castle_inside/areas/1/12/model.inc.c +++ b/levels/castle_inside/areas/1/12/model.inc.c @@ -1,12 +1,8 @@ -// 0x07031790 - 0x07031798 -static const Ambient inside_castle_seg7_light_07031790 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x07031798 - 0x070317A8 -static const Light inside_castle_seg7_light_07031798 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07031790 - 0x070317A8 +static const Lights1 inside_castle_seg7_lights_07031790 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070317A8 - 0x070317E8 static const Vtx inside_castle_seg7_vertex_070317A8[] = { @@ -21,8 +17,8 @@ static const Gfx inside_castle_seg7_dl_070317E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07031798, 1), - gsSPLight(&inside_castle_seg7_light_07031790, 2), + gsSPLight(&inside_castle_seg7_lights_07031790.l, 1), + gsSPLight(&inside_castle_seg7_lights_07031790.a, 2), gsSPVertex(inside_castle_seg7_vertex_070317A8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/castle_inside/areas/1/13/model.inc.c b/levels/castle_inside/areas/1/13/model.inc.c index 9c89e0d..334d0f5 100644 --- a/levels/castle_inside/areas/1/13/model.inc.c +++ b/levels/castle_inside/areas/1/13/model.inc.c @@ -1,22 +1,14 @@ -// 0x070318A0 - 0x070318A8 -static const Ambient inside_castle_seg7_light_070318A0 = { - {{0x52, 0x52, 0x52}, 0, {0x52, 0x52, 0x52}, 0} -}; +// 0x070318A0 - 0x070318B8 +static const Lights1 inside_castle_seg7_lights_070318A0 = gdSPDefLights1( + 0x52, 0x52, 0x52, + 0xdd, 0xdd, 0xdd, 0x28, 0x28, 0x28 +); -// 0x070318A8 - 0x070318B8 -static const Light inside_castle_seg7_light_070318A8 = { - {{0xdd, 0xdd, 0xdd}, 0, {0xdd, 0xdd, 0xdd}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070318B8 - 0x070318C0 -static const Ambient inside_castle_seg7_light_070318B8 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x070318C0 - 0x070318D0 -static const Light inside_castle_seg7_light_070318C0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070318B8 - 0x070318D0 +static const Lights1 inside_castle_seg7_lights_070318B8 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070318D0 - 0x070319D0 static const Vtx inside_castle_seg7_vertex_070318D0[] = { @@ -378,15 +370,15 @@ static const Gfx inside_castle_seg7_dl_07032A00[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_070318A8, 1), - gsSPLight(&inside_castle_seg7_light_070318A0, 2), + gsSPLight(&inside_castle_seg7_lights_070318A0.l, 1), + gsSPLight(&inside_castle_seg7_lights_070318A0.a, 2), gsSPVertex(inside_castle_seg7_vertex_070318D0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 10, 8, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(11, 13, 14, 0x0, 0, 2, 15, 0x0), - gsSPLight(&inside_castle_seg7_light_070318C0, 1), - gsSPLight(&inside_castle_seg7_light_070318B8, 2), + gsSPLight(&inside_castle_seg7_lights_070318B8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070318B8.a, 2), gsSPVertex(inside_castle_seg7_vertex_070319D0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 3, 2, 4, 0x0, 5, 3, 4, 0x0), diff --git a/levels/castle_inside/areas/1/14/model.inc.c b/levels/castle_inside/areas/1/14/model.inc.c index bc47a8b..1401bd7 100644 --- a/levels/castle_inside/areas/1/14/model.inc.c +++ b/levels/castle_inside/areas/1/14/model.inc.c @@ -1,12 +1,8 @@ -// 0x07033068 - 0x07033070 -static const Ambient inside_castle_seg7_light_07033068 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x07033070 - 0x07033080 -static const Light inside_castle_seg7_light_07033070 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07033068 - 0x07033080 +static const Lights1 inside_castle_seg7_lights_07033068 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07033080 - 0x07033100 static const Vtx inside_castle_seg7_vertex_07033080[] = { @@ -25,8 +21,8 @@ static const Gfx inside_castle_seg7_dl_07033100[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07033070, 1), - gsSPLight(&inside_castle_seg7_light_07033068, 2), + gsSPLight(&inside_castle_seg7_lights_07033068.l, 1), + gsSPLight(&inside_castle_seg7_lights_07033068.a, 2), gsSPVertex(inside_castle_seg7_vertex_07033080, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/castle_inside/areas/1/15/model.inc.c b/levels/castle_inside/areas/1/15/model.inc.c index 6bfa746..34e1085 100644 --- a/levels/castle_inside/areas/1/15/model.inc.c +++ b/levels/castle_inside/areas/1/15/model.inc.c @@ -1,22 +1,14 @@ -// 0x070331C8 - 0x070331D0 -static const Ambient inside_castle_seg7_light_070331C8 = { - {{0x52, 0x52, 0x52}, 0, {0x52, 0x52, 0x52}, 0} -}; +// 0x070331C8 - 0x070331E0 +static const Lights1 inside_castle_seg7_lights_070331C8 = gdSPDefLights1( + 0x52, 0x52, 0x52, + 0xdd, 0xdd, 0xdd, 0x28, 0x28, 0x28 +); -// 0x070331D0 - 0x070331E0 -static const Light inside_castle_seg7_light_070331D0 = { - {{0xdd, 0xdd, 0xdd}, 0, {0xdd, 0xdd, 0xdd}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070331E0 - 0x070331E8 -static const Ambient inside_castle_seg7_light_070331E0 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x070331E8 - 0x070331F8 -static const Light inside_castle_seg7_light_070331E8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070331E0 - 0x070331F8 +static const Lights1 inside_castle_seg7_lights_070331E0 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070331F8 - 0x070332F8 static const Vtx inside_castle_seg7_vertex_070331F8[] = { @@ -448,15 +440,15 @@ static const Gfx inside_castle_seg7_dl_07034688[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_070331D0, 1), - gsSPLight(&inside_castle_seg7_light_070331C8, 2), + gsSPLight(&inside_castle_seg7_lights_070331C8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070331C8.a, 2), gsSPVertex(inside_castle_seg7_vertex_070331F8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 10, 8, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(11, 14, 12, 0x0, 0, 2, 15, 0x0), - gsSPLight(&inside_castle_seg7_light_070331E8, 1), - gsSPLight(&inside_castle_seg7_light_070331E0, 2), + gsSPLight(&inside_castle_seg7_lights_070331E0.l, 1), + gsSPLight(&inside_castle_seg7_lights_070331E0.a, 2), gsSPVertex(inside_castle_seg7_vertex_070332F8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/castle_inside/areas/1/17/model.inc.c b/levels/castle_inside/areas/1/17/model.inc.c index a1679ac..7a280e5 100644 --- a/levels/castle_inside/areas/1/17/model.inc.c +++ b/levels/castle_inside/areas/1/17/model.inc.c @@ -1,12 +1,8 @@ -// 0x070351E8 - 0x070351F0 -static const Ambient inside_castle_seg7_light_070351E8 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x070351F0 - 0x07035200 -static const Light inside_castle_seg7_light_070351F0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070351E8 - 0x07035200 +static const Lights1 inside_castle_seg7_lights_070351E8 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07035200 - 0x07035240 static const Vtx inside_castle_seg7_vertex_07035200[] = { @@ -21,8 +17,8 @@ static const Gfx inside_castle_seg7_dl_07035240[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_070351F0, 1), - gsSPLight(&inside_castle_seg7_light_070351E8, 2), + gsSPLight(&inside_castle_seg7_lights_070351E8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070351E8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07035200, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/castle_inside/areas/1/18/model.inc.c b/levels/castle_inside/areas/1/18/model.inc.c index df88e50..ebddea0 100644 --- a/levels/castle_inside/areas/1/18/model.inc.c +++ b/levels/castle_inside/areas/1/18/model.inc.c @@ -1,42 +1,26 @@ -// 0x070352F8 - 0x07035300 -static const Ambient inside_castle_seg7_light_070352F8 = { - {{0x19, 0x19, 0x19}, 0, {0x19, 0x19, 0x19}, 0} -}; +// 0x070352F8 - 0x07035310 +static const Lights1 inside_castle_seg7_lights_070352F8 = gdSPDefLights1( + 0x19, 0x19, 0x19, + 0x44, 0x44, 0x44, 0x28, 0x28, 0x28 +); -// 0x07035300 - 0x07035310 -static const Light inside_castle_seg7_light_07035300 = { - {{0x44, 0x44, 0x44}, 0, {0x44, 0x44, 0x44}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07035310 - 0x07035328 +static const Lights1 inside_castle_seg7_lights_07035310 = gdSPDefLights1( + 0x26, 0x26, 0x26, + 0x66, 0x66, 0x66, 0x28, 0x28, 0x28 +); -// 0x07035310 - 0x07035318 -static const Ambient inside_castle_seg7_light_07035310 = { - {{0x26, 0x26, 0x26}, 0, {0x26, 0x26, 0x26}, 0} -}; +// 0x07035328 - 0x07035340 +static const Lights1 inside_castle_seg7_lights_07035328 = gdSPDefLights1( + 0x1f, 0x1f, 0x1f, + 0x55, 0x55, 0x55, 0x28, 0x28, 0x28 +); -// 0x07035318 - 0x07035328 -static const Light inside_castle_seg7_light_07035318 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07035328 - 0x07035330 -static const Ambient inside_castle_seg7_light_07035328 = { - {{0x1f, 0x1f, 0x1f}, 0, {0x1f, 0x1f, 0x1f}, 0} -}; - -// 0x07035330 - 0x07035340 -static const Light inside_castle_seg7_light_07035330 = { - {{0x55, 0x55, 0x55}, 0, {0x55, 0x55, 0x55}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07035340 - 0x07035348 -static const Ambient inside_castle_seg7_light_07035340 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x07035348 - 0x07035358 -static const Light inside_castle_seg7_light_07035348 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07035340 - 0x07035358 +static const Lights1 inside_castle_seg7_lights_07035340 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x07035358 - 0x07035458 static const Vtx inside_castle_seg7_vertex_07035358[] = { @@ -443,15 +427,15 @@ static const Gfx inside_castle_seg7_dl_07036698[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07035300, 1), - gsSPLight(&inside_castle_seg7_light_070352F8, 2), + gsSPLight(&inside_castle_seg7_lights_070352F8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070352F8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07035358, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 9, 10, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(11, 13, 14, 0x0, 0, 2, 15, 0x0), - gsSPLight(&inside_castle_seg7_light_07035318, 1), - gsSPLight(&inside_castle_seg7_light_07035310, 2), + gsSPLight(&inside_castle_seg7_lights_07035310.l, 1), + gsSPLight(&inside_castle_seg7_lights_07035310.a, 2), gsSPVertex(inside_castle_seg7_vertex_07035458, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -468,8 +452,8 @@ static const Gfx inside_castle_seg7_dl_07036780[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07035330, 1), - gsSPLight(&inside_castle_seg7_light_07035328, 2), + gsSPLight(&inside_castle_seg7_lights_07035328.l, 1), + gsSPLight(&inside_castle_seg7_lights_07035328.a, 2), gsSPVertex(inside_castle_seg7_vertex_070355B8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -480,8 +464,8 @@ static const Gfx inside_castle_seg7_dl_070367C8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07035318, 1), - gsSPLight(&inside_castle_seg7_light_07035310, 2), + gsSPLight(&inside_castle_seg7_lights_07035310.l, 1), + gsSPLight(&inside_castle_seg7_lights_07035310.a, 2), gsSPVertex(inside_castle_seg7_vertex_070355F8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 4, 3, 2, 0x0, 5, 4, 2, 0x0), @@ -528,14 +512,14 @@ static const Gfx inside_castle_seg7_dl_070369B8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07035330, 1), - gsSPLight(&inside_castle_seg7_light_07035328, 2), + gsSPLight(&inside_castle_seg7_lights_07035328.l, 1), + gsSPLight(&inside_castle_seg7_lights_07035328.a, 2), gsSPVertex(inside_castle_seg7_vertex_07035AF8, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 2, 3, 0x0, 5, 6, 7, 0x0), gsSP2Triangles( 5, 8, 6, 0x0, 5, 7, 9, 0x0), - gsSPLight(&inside_castle_seg7_light_07035318, 1), - gsSPLight(&inside_castle_seg7_light_07035310, 2), + gsSPLight(&inside_castle_seg7_lights_07035310.l, 1), + gsSPLight(&inside_castle_seg7_lights_07035310.a, 2), gsSPVertex(inside_castle_seg7_vertex_07035B98, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -588,8 +572,8 @@ static const Gfx inside_castle_seg7_dl_070369B8[] = { // 0x07036CB8 - 0x07036D88 static const Gfx inside_castle_seg7_dl_07036CB8[] = { - gsSPLight(&inside_castle_seg7_light_07035348, 1), - gsSPLight(&inside_castle_seg7_light_07035340, 2), + gsSPLight(&inside_castle_seg7_lights_07035340.l, 1), + gsSPLight(&inside_castle_seg7_lights_07035340.a, 2), gsSPVertex(inside_castle_seg7_vertex_070363D8, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/castle_inside/areas/1/19/model.inc.c b/levels/castle_inside/areas/1/19/model.inc.c index 254e8b3..73e6bcc 100644 --- a/levels/castle_inside/areas/1/19/model.inc.c +++ b/levels/castle_inside/areas/1/19/model.inc.c @@ -1,12 +1,8 @@ -// 0x07036E68 - 0x07036E70 -static const Ambient inside_castle_seg7_light_07036E68 = { - {{0xcc, 0xcc, 0xcc}, 0, {0xcc, 0xcc, 0xcc}, 0} -}; - -// 0x07036E70 - 0x07036E80 -static const Light inside_castle_seg7_light_07036E70 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07036E68 - 0x07036E80 +static const Lights1 inside_castle_seg7_lights_07036E68 = gdSPDefLights1( + 0xcc, 0xcc, 0xcc, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07036E80 - 0x07036F70 static const Vtx inside_castle_seg7_vertex_07036E80[] = { @@ -186,8 +182,8 @@ static const Gfx inside_castle_seg7_dl_07037710[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07036E70, 1), - gsSPLight(&inside_castle_seg7_light_07036E68, 2), + gsSPLight(&inside_castle_seg7_lights_07036E68.l, 1), + gsSPLight(&inside_castle_seg7_lights_07036E68.a, 2), gsSPVertex(inside_castle_seg7_vertex_07036E80, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/castle_inside/areas/1/2/model.inc.c b/levels/castle_inside/areas/1/2/model.inc.c index 1da897c..3c52d6d 100644 --- a/levels/castle_inside/areas/1/2/model.inc.c +++ b/levels/castle_inside/areas/1/2/model.inc.c @@ -1,32 +1,20 @@ -// 0x07023FE0 - 0x07023FE8 -static const Ambient inside_castle_seg7_light_07023FE0 = { - {{0x52, 0x52, 0x52}, 0, {0x52, 0x52, 0x52}, 0} -}; +// 0x07023FE0 - 0x07023FF8 +static const Lights1 inside_castle_seg7_lights_07023FE0 = gdSPDefLights1( + 0x52, 0x52, 0x52, + 0xdd, 0xdd, 0xdd, 0x28, 0x28, 0x28 +); -// 0x07023FE8 - 0x07023FF8 -static const Light inside_castle_seg7_light_07023FE8 = { - {{0xdd, 0xdd, 0xdd}, 0, {0xdd, 0xdd, 0xdd}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07023FF8 - 0x07024010 +static const Lights1 inside_castle_seg7_lights_07023FF8 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07023FF8 - 0x07024000 -static const Ambient inside_castle_seg7_light_07023FF8 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x07024000 - 0x07024010 -static const Light inside_castle_seg7_light_07024000 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07024010 - 0x07024018 -static const Ambient inside_castle_seg7_light_07024010 = { - {{0x2c, 0x2c, 0x2c}, 0, {0x2c, 0x2c, 0x2c}, 0} -}; - -// 0x07024018 - 0x07024028 -static const Light inside_castle_seg7_light_07024018 = { - {{0x77, 0x77, 0x77}, 0, {0x77, 0x77, 0x77}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07024010 - 0x07024028 +static const Lights1 inside_castle_seg7_lights_07024010 = gdSPDefLights1( + 0x2c, 0x2c, 0x2c, + 0x77, 0x77, 0x77, 0x28, 0x28, 0x28 +); // 0x07024028 - 0x07024118 static const Vtx inside_castle_seg7_vertex_07024028[] = { @@ -1297,8 +1285,8 @@ static const Gfx inside_castle_seg7_dl_07027DE8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07023FE8, 1), - gsSPLight(&inside_castle_seg7_light_07023FE0, 2), + gsSPLight(&inside_castle_seg7_lights_07023FE0.l, 1), + gsSPLight(&inside_castle_seg7_lights_07023FE0.a, 2), gsSPVertex(inside_castle_seg7_vertex_07024028, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1351,8 +1339,8 @@ static const Gfx inside_castle_seg7_dl_07027DE8[] = { gsSP1Triangle( 0, 14, 1, 0x0), gsSPVertex(inside_castle_seg7_vertex_07024988, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&inside_castle_seg7_light_07024000, 1), - gsSPLight(&inside_castle_seg7_light_07023FF8, 2), + gsSPLight(&inside_castle_seg7_lights_07023FF8.l, 1), + gsSPLight(&inside_castle_seg7_lights_07023FF8.a, 2), gsSPVertex(inside_castle_seg7_vertex_070249C8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1505,13 +1493,13 @@ static const Gfx inside_castle_seg7_dl_070287C0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07024018, 1), - gsSPLight(&inside_castle_seg7_light_07024010, 2), + gsSPLight(&inside_castle_seg7_lights_07024010.l, 1), + gsSPLight(&inside_castle_seg7_lights_07024010.a, 2), gsSPVertex(inside_castle_seg7_vertex_07026108, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&inside_castle_seg7_light_07024000, 1), - gsSPLight(&inside_castle_seg7_light_07023FF8, 2), + gsSPLight(&inside_castle_seg7_lights_07023FF8.l, 1), + gsSPLight(&inside_castle_seg7_lights_07023FF8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07026188, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1560,14 +1548,14 @@ static const Gfx inside_castle_seg7_dl_07028A38[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07024018, 1), - gsSPLight(&inside_castle_seg7_light_07024010, 2), + gsSPLight(&inside_castle_seg7_lights_07024010.l, 1), + gsSPLight(&inside_castle_seg7_lights_07024010.a, 2), gsSPVertex(inside_castle_seg7_vertex_070269E8, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 0, 4, 1, 0x0, 5, 6, 7, 0x0), gsSP2Triangles( 5, 8, 9, 0x0, 5, 9, 6, 0x0), - gsSPLight(&inside_castle_seg7_light_07024000, 1), - gsSPLight(&inside_castle_seg7_light_07023FF8, 2), + gsSPLight(&inside_castle_seg7_lights_07023FF8.l, 1), + gsSPLight(&inside_castle_seg7_lights_07023FF8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07026A88, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/castle_inside/areas/1/20/model.inc.c b/levels/castle_inside/areas/1/20/model.inc.c index 3e55475..a55d223 100644 --- a/levels/castle_inside/areas/1/20/model.inc.c +++ b/levels/castle_inside/areas/1/20/model.inc.c @@ -1,12 +1,8 @@ -// 0x070379F8 - 0x07037A00 -static const Ambient inside_castle_seg7_light_070379F8 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x07037A00 - 0x07037A10 -static const Light inside_castle_seg7_light_07037A00 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070379F8 - 0x07037A10 +static const Lights1 inside_castle_seg7_lights_070379F8 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07037A10 - 0x07037B10 static const Vtx inside_castle_seg7_vertex_07037A10[] = { @@ -33,8 +29,8 @@ static const Gfx inside_castle_seg7_dl_07037B10[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07037A00, 1), - gsSPLight(&inside_castle_seg7_light_070379F8, 2), + gsSPLight(&inside_castle_seg7_lights_070379F8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070379F8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07037A10, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 4, 3, 0x0, 6, 7, 4, 0x0), diff --git a/levels/castle_inside/areas/1/21/model.inc.c b/levels/castle_inside/areas/1/21/model.inc.c index 6d1dc64..3346e8c 100644 --- a/levels/castle_inside/areas/1/21/model.inc.c +++ b/levels/castle_inside/areas/1/21/model.inc.c @@ -1,12 +1,8 @@ -// 0x07037C58 - 0x07037C60 -static const Ambient inside_castle_seg7_light_07037C58 = { - {{0x37, 0x37, 0x37}, 0, {0x37, 0x37, 0x37}, 0} -}; - -// 0x07037C60 - 0x07037C70 -static const Light inside_castle_seg7_light_07037C60 = { - {{0xdd, 0xdd, 0xdd}, 0, {0xdd, 0xdd, 0xdd}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07037C58 - 0x07037C70 +static const Lights1 inside_castle_seg7_lights_07037C58 = gdSPDefLights1( + 0x37, 0x37, 0x37, + 0xdd, 0xdd, 0xdd, 0x28, 0x28, 0x28 +); // 0x07037C70 - 0x07037D70 static const Vtx inside_castle_seg7_vertex_07037C70[] = { @@ -33,8 +29,8 @@ static const Gfx inside_castle_seg7_dl_07037D70[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_0900B000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07037C60, 1), - gsSPLight(&inside_castle_seg7_light_07037C58, 2), + gsSPLight(&inside_castle_seg7_lights_07037C58.l, 1), + gsSPLight(&inside_castle_seg7_lights_07037C58.a, 2), gsSPVertex(inside_castle_seg7_vertex_07037C70, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 7, 8, 9, 0x0), diff --git a/levels/castle_inside/areas/1/23/model.inc.c b/levels/castle_inside/areas/1/23/model.inc.c index 346432e..692d775 100644 --- a/levels/castle_inside/areas/1/23/model.inc.c +++ b/levels/castle_inside/areas/1/23/model.inc.c @@ -1,12 +1,8 @@ -// 0x070382B0 - 0x070382B8 -static const Ambient inside_castle_seg7_light_070382B0 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x070382B8 - 0x070382C8 -static const Light inside_castle_seg7_light_070382B8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070382B0 - 0x070382C8 +static const Lights1 inside_castle_seg7_lights_070382B0 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070382C8 - 0x07038308 static const Vtx inside_castle_seg7_vertex_070382C8[] = { @@ -21,8 +17,8 @@ static const Gfx inside_castle_seg7_dl_07038308[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_070382B8, 1), - gsSPLight(&inside_castle_seg7_light_070382B0, 2), + gsSPLight(&inside_castle_seg7_lights_070382B0.l, 1), + gsSPLight(&inside_castle_seg7_lights_070382B0.a, 2), gsSPVertex(inside_castle_seg7_vertex_070382C8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSPEndDisplayList(), diff --git a/levels/castle_inside/areas/1/24/model.inc.c b/levels/castle_inside/areas/1/24/model.inc.c index 8be0d1c..e6ffdb1 100644 --- a/levels/castle_inside/areas/1/24/model.inc.c +++ b/levels/castle_inside/areas/1/24/model.inc.c @@ -1,32 +1,20 @@ -// 0x070383C0 - 0x070383C8 -static const Ambient inside_castle_seg7_light_070383C0 = { - {{0x52, 0x52, 0x52}, 0, {0x52, 0x52, 0x52}, 0} -}; +// 0x070383C0 - 0x070383D8 +static const Lights1 inside_castle_seg7_lights_070383C0 = gdSPDefLights1( + 0x52, 0x52, 0x52, + 0xdd, 0xdd, 0xdd, 0x28, 0x28, 0x28 +); -// 0x070383C8 - 0x070383D8 -static const Light inside_castle_seg7_light_070383C8 = { - {{0xdd, 0xdd, 0xdd}, 0, {0xdd, 0xdd, 0xdd}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070383D8 - 0x070383F0 +static const Lights1 inside_castle_seg7_lights_070383D8 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x070383D8 - 0x070383E0 -static const Ambient inside_castle_seg7_light_070383D8 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x070383E0 - 0x070383F0 -static const Light inside_castle_seg7_light_070383E0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070383F0 - 0x070383F8 -static const Ambient inside_castle_seg7_light_070383F0 = { - {{0x46, 0x46, 0x46}, 0, {0x46, 0x46, 0x46}, 0} -}; - -// 0x070383F8 - 0x07038408 -static const Light inside_castle_seg7_light_070383F8 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070383F0 - 0x07038408 +static const Lights1 inside_castle_seg7_lights_070383F0 = gdSPDefLights1( + 0x46, 0x46, 0x46, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); // 0x07038408 - 0x070384F8 static const Vtx inside_castle_seg7_vertex_07038408[] = { @@ -581,8 +569,8 @@ static const Gfx inside_castle_seg7_dl_07039EC8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_070383C8, 1), - gsSPLight(&inside_castle_seg7_light_070383C0, 2), + gsSPLight(&inside_castle_seg7_lights_070383C0.l, 1), + gsSPLight(&inside_castle_seg7_lights_070383C0.a, 2), gsSPVertex(inside_castle_seg7_vertex_07038408, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -595,8 +583,8 @@ static const Gfx inside_castle_seg7_dl_07039EC8[] = { gsSP1Triangle( 0, 14, 1, 0x0), gsSPVertex(inside_castle_seg7_vertex_070385E8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&inside_castle_seg7_light_070383E0, 1), - gsSPLight(&inside_castle_seg7_light_070383D8, 2), + gsSPLight(&inside_castle_seg7_lights_070383D8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070383D8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07038628, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -723,8 +711,8 @@ static const Gfx inside_castle_seg7_dl_0703A540[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_0900A000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_070383F8, 1), - gsSPLight(&inside_castle_seg7_light_070383F0, 2), + gsSPLight(&inside_castle_seg7_lights_070383F0.l, 1), + gsSPLight(&inside_castle_seg7_lights_070383F0.a, 2), gsSPVertex(inside_castle_seg7_vertex_070399F8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 3, 8, 0x0), diff --git a/levels/castle_inside/areas/1/25/model.inc.c b/levels/castle_inside/areas/1/25/model.inc.c index f27ea03..1fc3b94 100644 --- a/levels/castle_inside/areas/1/25/model.inc.c +++ b/levels/castle_inside/areas/1/25/model.inc.c @@ -1,12 +1,8 @@ -// 0x0703A768 - 0x0703A770 -static const Ambient inside_castle_seg7_light_0703A768 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x0703A770 - 0x0703A780 -static const Light inside_castle_seg7_light_0703A770 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0703A768 - 0x0703A780 +static const Lights1 inside_castle_seg7_lights_0703A768 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0703A780 - 0x0703A7C0 static const Vtx inside_castle_seg7_vertex_0703A780[] = { @@ -21,8 +17,8 @@ static const Gfx inside_castle_seg7_dl_0703A7C0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0703A770, 1), - gsSPLight(&inside_castle_seg7_light_0703A768, 2), + gsSPLight(&inside_castle_seg7_lights_0703A768.l, 1), + gsSPLight(&inside_castle_seg7_lights_0703A768.a, 2), gsSPVertex(inside_castle_seg7_vertex_0703A780, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/castle_inside/areas/1/26/model.inc.c b/levels/castle_inside/areas/1/26/model.inc.c index 839bf72..2785f00 100644 --- a/levels/castle_inside/areas/1/26/model.inc.c +++ b/levels/castle_inside/areas/1/26/model.inc.c @@ -1,22 +1,14 @@ -// 0x0703A878 - 0x0703A880 -static const Ambient inside_castle_seg7_light_0703A878 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; +// 0x0703A878 - 0x0703A890 +static const Lights1 inside_castle_seg7_lights_0703A878 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xcc, 0xcc, 0xcc, 0x28, 0x28, 0x28 +); -// 0x0703A880 - 0x0703A890 -static const Light inside_castle_seg7_light_0703A880 = { - {{0xcc, 0xcc, 0xcc}, 0, {0xcc, 0xcc, 0xcc}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0703A890 - 0x0703A898 -static const Ambient inside_castle_seg7_light_0703A890 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x0703A898 - 0x0703A8A8 -static const Light inside_castle_seg7_light_0703A898 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0703A890 - 0x0703A8A8 +static const Lights1 inside_castle_seg7_lights_0703A890 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0703A8A8 - 0x0703A998 static const Vtx inside_castle_seg7_vertex_0703A8A8[] = { @@ -292,8 +284,8 @@ static const Gfx inside_castle_seg7_dl_0703B5B8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_0900B000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0703A880, 1), - gsSPLight(&inside_castle_seg7_light_0703A878, 2), + gsSPLight(&inside_castle_seg7_lights_0703A878.l, 1), + gsSPLight(&inside_castle_seg7_lights_0703A878.a, 2), gsSPVertex(inside_castle_seg7_vertex_0703A8A8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -308,8 +300,8 @@ static const Gfx inside_castle_seg7_dl_0703B5B8[] = { gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 9, 10, 0x0, 11, 12, 13, 0x0), gsSP1Triangle(11, 13, 14, 0x0), - gsSPLight(&inside_castle_seg7_light_0703A898, 1), - gsSPLight(&inside_castle_seg7_light_0703A890, 2), + gsSPLight(&inside_castle_seg7_lights_0703A890.l, 1), + gsSPLight(&inside_castle_seg7_lights_0703A890.a, 2), gsSPVertex(inside_castle_seg7_vertex_0703AB88, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/castle_inside/areas/1/4/model.inc.c b/levels/castle_inside/areas/1/4/model.inc.c index d45fe38..c0cbb99 100644 --- a/levels/castle_inside/areas/1/4/model.inc.c +++ b/levels/castle_inside/areas/1/4/model.inc.c @@ -1,62 +1,38 @@ -// 0x070295E8 - 0x070295F0 -static const Ambient inside_castle_seg7_light_070295E8 = { - {{0x26, 0x26, 0x26}, 0, {0x26, 0x26, 0x26}, 0} -}; +// 0x070295E8 - 0x07029600 +static const Lights1 inside_castle_seg7_lights_070295E8 = gdSPDefLights1( + 0x26, 0x26, 0x26, + 0x66, 0x66, 0x66, 0x28, 0x28, 0x28 +); -// 0x070295F0 - 0x07029600 -static const Light inside_castle_seg7_light_070295F0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07029600 - 0x07029618 +static const Lights1 inside_castle_seg7_lights_07029600 = gdSPDefLights1( + 0x33, 0x33, 0x33, + 0x88, 0x88, 0x88, 0x28, 0x28, 0x28 +); -// 0x07029600 - 0x07029608 -static const Ambient inside_castle_seg7_light_07029600 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0} -}; +// 0x07029618 - 0x07029630 +static const Lights1 inside_castle_seg7_lights_07029618 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07029608 - 0x07029618 -static const Light inside_castle_seg7_light_07029608 = { - {{0x88, 0x88, 0x88}, 0, {0x88, 0x88, 0x88}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07029630 - 0x07029648 +static const Lights1 inside_castle_seg7_lights_07029630 = gdSPDefLights1( + 0x1f, 0x1f, 0x1f, + 0x55, 0x55, 0x55, 0x28, 0x28, 0x28 +); -// 0x07029618 - 0x07029620 -static const Ambient inside_castle_seg7_light_07029618 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; +// 0x07029648 - 0x07029660 +static const Lights1 inside_castle_seg7_lights_07029648 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xaa, 0xaa, 0xaa, 0x28, 0x28, 0x28 +); -// 0x07029620 - 0x07029630 -static const Light inside_castle_seg7_light_07029620 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07029630 - 0x07029638 -static const Ambient inside_castle_seg7_light_07029630 = { - {{0x1f, 0x1f, 0x1f}, 0, {0x1f, 0x1f, 0x1f}, 0} -}; - -// 0x07029638 - 0x07029648 -static const Light inside_castle_seg7_light_07029638 = { - {{0x55, 0x55, 0x55}, 0, {0x55, 0x55, 0x55}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07029648 - 0x07029650 -static const Ambient inside_castle_seg7_light_07029648 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07029650 - 0x07029660 -static const Light inside_castle_seg7_light_07029650 = { - {{0xaa, 0xaa, 0xaa}, 0, {0xaa, 0xaa, 0xaa}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07029660 - 0x07029668 -static const Ambient inside_castle_seg7_light_07029660 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x07029668 - 0x07029678 -static const Light inside_castle_seg7_light_07029668 = { - {{0xcc, 0xcc, 0xcc}, 0, {0xcc, 0xcc, 0xcc}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07029660 - 0x07029678 +static const Lights1 inside_castle_seg7_lights_07029660 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xcc, 0xcc, 0xcc, 0x28, 0x28, 0x28 +); // 0x07029678 - 0x070296D8 static const Vtx inside_castle_seg7_vertex_07029678[] = { @@ -312,16 +288,16 @@ static const Gfx inside_castle_seg7_dl_0702A188[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_070295F0, 1), - gsSPLight(&inside_castle_seg7_light_070295E8, 2), + gsSPLight(&inside_castle_seg7_lights_070295E8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070295E8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07029678, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&inside_castle_seg7_light_07029608, 1), - gsSPLight(&inside_castle_seg7_light_07029600, 2), + gsSPLight(&inside_castle_seg7_lights_07029600.l, 1), + gsSPLight(&inside_castle_seg7_lights_07029600.a, 2), gsSPVertex(inside_castle_seg7_vertex_070296D8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&inside_castle_seg7_light_07029620, 1), - gsSPLight(&inside_castle_seg7_light_07029618, 2), + gsSPLight(&inside_castle_seg7_lights_07029618.l, 1), + gsSPLight(&inside_castle_seg7_lights_07029618.a, 2), gsSPVertex(inside_castle_seg7_vertex_07029718, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 3, 7, 6, 0x0), @@ -348,28 +324,28 @@ static const Gfx inside_castle_seg7_dl_0702A300[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07029638, 1), - gsSPLight(&inside_castle_seg7_light_07029630, 2), + gsSPLight(&inside_castle_seg7_lights_07029630.l, 1), + gsSPLight(&inside_castle_seg7_lights_07029630.a, 2), gsSPVertex(inside_castle_seg7_vertex_07029938, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&inside_castle_seg7_light_070295F0, 1), - gsSPLight(&inside_castle_seg7_light_070295E8, 2), + gsSPLight(&inside_castle_seg7_lights_070295E8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070295E8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07029978, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&inside_castle_seg7_light_07029608, 1), - gsSPLight(&inside_castle_seg7_light_07029600, 2), + gsSPLight(&inside_castle_seg7_lights_07029600.l, 1), + gsSPLight(&inside_castle_seg7_lights_07029600.a, 2), gsSPVertex(inside_castle_seg7_vertex_070299B8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&inside_castle_seg7_light_07029650, 1), - gsSPLight(&inside_castle_seg7_light_07029648, 2), + gsSPLight(&inside_castle_seg7_lights_07029648.l, 1), + gsSPLight(&inside_castle_seg7_lights_07029648.a, 2), gsSPVertex(inside_castle_seg7_vertex_070299F8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&inside_castle_seg7_light_07029668, 1), - gsSPLight(&inside_castle_seg7_light_07029660, 2), + gsSPLight(&inside_castle_seg7_lights_07029660.l, 1), + gsSPLight(&inside_castle_seg7_lights_07029660.a, 2), gsSPVertex(inside_castle_seg7_vertex_07029A38, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&inside_castle_seg7_light_07029620, 1), - gsSPLight(&inside_castle_seg7_light_07029618, 2), + gsSPLight(&inside_castle_seg7_lights_07029618.l, 1), + gsSPLight(&inside_castle_seg7_lights_07029618.a, 2), gsSPVertex(inside_castle_seg7_vertex_07029A78, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 0, 2, 0x0, 4, 2, 5, 0x0), diff --git a/levels/castle_inside/areas/1/6/model.inc.c b/levels/castle_inside/areas/1/6/model.inc.c index b90df6f..1f4c7b9 100644 --- a/levels/castle_inside/areas/1/6/model.inc.c +++ b/levels/castle_inside/areas/1/6/model.inc.c @@ -1,12 +1,8 @@ -// 0x0702A8F0 - 0x0702A8F8 -static const Ambient inside_castle_seg7_light_0702A8F0 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x0702A8F8 - 0x0702A908 -static const Light inside_castle_seg7_light_0702A8F8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0702A8F0 - 0x0702A908 +static const Lights1 inside_castle_seg7_lights_0702A8F0 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0702A908 - 0x0702A998 static const Vtx inside_castle_seg7_vertex_0702A908[] = { @@ -26,8 +22,8 @@ static const Gfx inside_castle_seg7_dl_0702A998[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0702A8F8, 1), - gsSPLight(&inside_castle_seg7_light_0702A8F0, 2), + gsSPLight(&inside_castle_seg7_lights_0702A8F0.l, 1), + gsSPLight(&inside_castle_seg7_lights_0702A8F0.a, 2), gsSPVertex(inside_castle_seg7_vertex_0702A908, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 3, 6, 0x0), diff --git a/levels/castle_inside/areas/1/7/model.inc.c b/levels/castle_inside/areas/1/7/model.inc.c index b433f59..c1730b3 100644 --- a/levels/castle_inside/areas/1/7/model.inc.c +++ b/levels/castle_inside/areas/1/7/model.inc.c @@ -1,12 +1,8 @@ -// 0x0702AA80 - 0x0702AA88 -static const Ambient inside_castle_seg7_light_0702AA80 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x0702AA88 - 0x0702AA98 -static const Light inside_castle_seg7_light_0702AA88 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0702AA80 - 0x0702AA98 +static const Lights1 inside_castle_seg7_lights_0702AA80 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0702AA98 - 0x0702AAD8 static const Vtx inside_castle_seg7_vertex_0702AA98[] = { @@ -21,8 +17,8 @@ static const Gfx inside_castle_seg7_dl_0702AAD8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07002000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0702AA88, 1), - gsSPLight(&inside_castle_seg7_light_0702AA80, 2), + gsSPLight(&inside_castle_seg7_lights_0702AA80.l, 1), + gsSPLight(&inside_castle_seg7_lights_0702AA80.a, 2), gsSPVertex(inside_castle_seg7_vertex_0702AA98, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/castle_inside/areas/1/8/model.inc.c b/levels/castle_inside/areas/1/8/model.inc.c index bbde584..04021e8 100644 --- a/levels/castle_inside/areas/1/8/model.inc.c +++ b/levels/castle_inside/areas/1/8/model.inc.c @@ -1,22 +1,14 @@ -// 0x0702AB90 - 0x0702AB98 -static const Ambient inside_castle_seg7_light_0702AB90 = { - {{0x46, 0x46, 0x46}, 0, {0x46, 0x46, 0x46}, 0} -}; +// 0x0702AB90 - 0x0702ABA8 +static const Lights1 inside_castle_seg7_lights_0702AB90 = gdSPDefLights1( + 0x46, 0x46, 0x46, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); -// 0x0702AB98 - 0x0702ABA8 -static const Light inside_castle_seg7_light_0702AB98 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0702ABA8 - 0x0702ABB0 -static const Ambient inside_castle_seg7_light_0702ABA8 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x0702ABB0 - 0x0702ABC0 -static const Light inside_castle_seg7_light_0702ABB0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0702ABA8 - 0x0702ABC0 +static const Lights1 inside_castle_seg7_lights_0702ABA8 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0702ABC0 - 0x0702ACB0 static const Vtx inside_castle_seg7_vertex_0702ABC0[] = { @@ -914,8 +906,8 @@ static const Gfx inside_castle_seg7_dl_0702D770[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0702AB98, 1), - gsSPLight(&inside_castle_seg7_light_0702AB90, 2), + gsSPLight(&inside_castle_seg7_lights_0702AB90.l, 1), + gsSPLight(&inside_castle_seg7_lights_0702AB90.a, 2), gsSPVertex(inside_castle_seg7_vertex_0702ABC0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -970,8 +962,8 @@ static const Gfx inside_castle_seg7_dl_0702D770[] = { gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 8, 11, 9, 0x0), - gsSPLight(&inside_castle_seg7_light_0702ABB0, 1), - gsSPLight(&inside_castle_seg7_light_0702ABA8, 2), + gsSPLight(&inside_castle_seg7_lights_0702ABA8.l, 1), + gsSPLight(&inside_castle_seg7_lights_0702ABA8.a, 2), gsSPVertex(inside_castle_seg7_vertex_0702B5E0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/castle_inside/areas/1/9/model.inc.c b/levels/castle_inside/areas/1/9/model.inc.c index 7277114..a83ef7c 100644 --- a/levels/castle_inside/areas/1/9/model.inc.c +++ b/levels/castle_inside/areas/1/9/model.inc.c @@ -1,52 +1,32 @@ -// 0x0702E490 - 0x0702E498 -static const Ambient inside_castle_seg7_light_0702E490 = { - {{0x52, 0x52, 0x52}, 0, {0x52, 0x52, 0x52}, 0} -}; +// 0x0702E490 - 0x0702E4A8 +static const Lights1 inside_castle_seg7_lights_0702E490 = gdSPDefLights1( + 0x52, 0x52, 0x52, + 0xdd, 0xdd, 0xdd, 0x28, 0x28, 0x28 +); -// 0x0702E498 - 0x0702E4A8 -static const Light inside_castle_seg7_light_0702E498 = { - {{0xdd, 0xdd, 0xdd}, 0, {0xdd, 0xdd, 0xdd}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0702E4A8 - 0x0702E4C0 +static const Lights1 inside_castle_seg7_lights_0702E4A8 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0702E4A8 - 0x0702E4B0 -static const Ambient inside_castle_seg7_light_0702E4A8 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; +// 0x0702E4C0 - 0x0702E4D8 +static const Lights1 inside_castle_seg7_lights_0702E4C0 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x0702E4B0 - 0x0702E4C0 -static const Light inside_castle_seg7_light_0702E4B0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0702E4D8 - 0x0702E4F0 +static const Lights1 inside_castle_seg7_lights_0702E4D8 = gdSPDefLights1( + 0x07, 0x07, 0x07, + 0x13, 0x13, 0x13, 0x28, 0x28, 0x28 +); -// 0x0702E4C0 - 0x0702E4C8 -static const Ambient inside_castle_seg7_light_0702E4C0 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x0702E4C8 - 0x0702E4D8 -static const Light inside_castle_seg7_light_0702E4C8 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0702E4D8 - 0x0702E4E0 -static const Ambient inside_castle_seg7_light_0702E4D8 = { - {{0x07, 0x07, 0x07}, 0, {0x07, 0x07, 0x07}, 0} -}; - -// 0x0702E4E0 - 0x0702E4F0 -static const Light inside_castle_seg7_light_0702E4E0 = { - {{0x13, 0x13, 0x13}, 0, {0x13, 0x13, 0x13}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0702E4F0 - 0x0702E4F8 -static const Ambient inside_castle_seg7_light_0702E4F0 = { - {{0x0f, 0x0f, 0x0f}, 0, {0x0f, 0x0f, 0x0f}, 0} -}; - -// 0x0702E4F8 - 0x0702E508 -static const Light inside_castle_seg7_light_0702E4F8 = { - {{0x29, 0x29, 0x29}, 0, {0x29, 0x29, 0x29}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0702E4F0 - 0x0702E508 +static const Lights1 inside_castle_seg7_lights_0702E4F0 = gdSPDefLights1( + 0x0f, 0x0f, 0x0f, + 0x29, 0x29, 0x29, 0x28, 0x28, 0x28 +); // 0x0702E508 - 0x0702E608 static const Vtx inside_castle_seg7_vertex_0702E508[] = { @@ -432,8 +412,8 @@ static const Gfx inside_castle_seg7_dl_0702F738[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0702E498, 1), - gsSPLight(&inside_castle_seg7_light_0702E490, 2), + gsSPLight(&inside_castle_seg7_lights_0702E490.l, 1), + gsSPLight(&inside_castle_seg7_lights_0702E490.a, 2), gsSPVertex(inside_castle_seg7_vertex_0702E508, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -444,8 +424,8 @@ static const Gfx inside_castle_seg7_dl_0702F738[] = { gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(10, 9, 14, 0x0, 15, 12, 11, 0x0), - gsSPLight(&inside_castle_seg7_light_0702E4B0, 1), - gsSPLight(&inside_castle_seg7_light_0702E4A8, 2), + gsSPLight(&inside_castle_seg7_lights_0702E4A8.l, 1), + gsSPLight(&inside_castle_seg7_lights_0702E4A8.a, 2), gsSPVertex(inside_castle_seg7_vertex_0702E708, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 7, 8, 9, 0x0), @@ -556,17 +536,17 @@ static const Gfx inside_castle_seg7_dl_0702FA80[] = { // 0x0702FC90 - 0x0702FD30 static const Gfx inside_castle_seg7_dl_0702FC90[] = { - gsSPLight(&inside_castle_seg7_light_0702E4C8, 1), - gsSPLight(&inside_castle_seg7_light_0702E4C0, 2), + gsSPLight(&inside_castle_seg7_lights_0702E4C0.l, 1), + gsSPLight(&inside_castle_seg7_lights_0702E4C0.a, 2), gsSPVertex(inside_castle_seg7_vertex_0702F5F8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&inside_castle_seg7_light_0702E4E0, 1), - gsSPLight(&inside_castle_seg7_light_0702E4D8, 2), + gsSPLight(&inside_castle_seg7_lights_0702E4D8.l, 1), + gsSPLight(&inside_castle_seg7_lights_0702E4D8.a, 2), gsSPVertex(inside_castle_seg7_vertex_0702F638, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&inside_castle_seg7_light_0702E4F8, 1), - gsSPLight(&inside_castle_seg7_light_0702E4F0, 2), + gsSPLight(&inside_castle_seg7_lights_0702E4F0.l, 1), + gsSPLight(&inside_castle_seg7_lights_0702E4F0.a, 2), gsSPVertex(inside_castle_seg7_vertex_0702F6B8, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/castle_inside/areas/1/macro.inc.c b/levels/castle_inside/areas/1/macro.inc.c index 8895e80..cf28d23 100644 --- a/levels/castle_inside/areas/1/macro.inc.c +++ b/levels/castle_inside/areas/1/macro.inc.c @@ -1,11 +1,11 @@ // 0x07077764 - 0x070777DE const MacroObject inside_castle_seg7_area_1_macro_objs[] = { - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_sign_on_wall, /*yaw*/ 90, /*pos*/ 1178, 614, -2434, /*behParam*/ 75), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_sign_on_wall, /*yaw*/ 270, /*pos*/ -3185, 205, -410, /*behParam*/ 46), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_sign_on_wall, /*yaw*/ 270, /*pos*/ -3185, 205, -51, /*behParam*/ 70), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_sign_on_wall, /*yaw*/ 180, /*pos*/ 435, 0, -1137, /*behParam*/ 69), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_sign_on_wall, /*yaw*/ 45, /*pos*/ 1670, 307, -1144, /*behParam*/ 147), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_sign_on_wall, /*yaw*/ 180, /*pos*/ -2278, -410, -3002, /*behParam*/ 52), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_sign_on_wall, /*yaw*/ 90, /*pos*/ 1178, 614, -2434, /*behParam*/ DIALOG_075), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_sign_on_wall, /*yaw*/ 270, /*pos*/ -3185, 205, -410, /*behParam*/ DIALOG_046), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_sign_on_wall, /*yaw*/ 270, /*pos*/ -3185, 205, -51, /*behParam*/ DIALOG_070), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_sign_on_wall, /*yaw*/ 180, /*pos*/ 435, 0, -1137, /*behParam*/ DIALOG_069), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_sign_on_wall, /*yaw*/ 45, /*pos*/ 1670, 307, -1144, /*behParam*/ DIALOG_147), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_sign_on_wall, /*yaw*/ 180, /*pos*/ -2278, -410, -3002, /*behParam*/ DIALOG_052), MACRO_OBJECT(/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ -618, 388, -324), MACRO_OBJECT(/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ -1430, 388, -324), MACRO_OBJECT(/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ -724, 388, -324), diff --git a/levels/castle_inside/areas/2/1/model.inc.c b/levels/castle_inside/areas/2/1/model.inc.c index f30ed20..00f456d 100644 --- a/levels/castle_inside/areas/2/1/model.inc.c +++ b/levels/castle_inside/areas/2/1/model.inc.c @@ -1,22 +1,14 @@ -// 0x0703C040 - 0x0703C048 -static const Ambient inside_castle_seg7_light_0703C040 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; +// 0x0703C040 - 0x0703C058 +static const Lights1 inside_castle_seg7_lights_0703C040 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xcc, 0xcc, 0xcc, 0x28, 0x28, 0x28 +); -// 0x0703C048 - 0x0703C058 -static const Light inside_castle_seg7_light_0703C048 = { - {{0xcc, 0xcc, 0xcc}, 0, {0xcc, 0xcc, 0xcc}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0703C058 - 0x0703C060 -static const Ambient inside_castle_seg7_light_0703C058 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x0703C060 - 0x0703C070 -static const Light inside_castle_seg7_light_0703C060 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0703C058 - 0x0703C070 +static const Lights1 inside_castle_seg7_lights_0703C058 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0703C070 - 0x0703C160 static const Vtx inside_castle_seg7_vertex_0703C070[] = { @@ -632,8 +624,8 @@ static const Gfx inside_castle_seg7_dl_0703DE40[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_0900B000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0703C048, 1), - gsSPLight(&inside_castle_seg7_light_0703C040, 2), + gsSPLight(&inside_castle_seg7_lights_0703C040.l, 1), + gsSPLight(&inside_castle_seg7_lights_0703C040.a, 2), gsSPVertex(inside_castle_seg7_vertex_0703C070, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 0, 6, 1, 0x0, 3, 5, 7, 0x0), @@ -648,8 +640,8 @@ static const Gfx inside_castle_seg7_dl_0703DE40[] = { gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 9, 10, 0x0, 11, 12, 13, 0x0), gsSP1Triangle(11, 13, 14, 0x0), - gsSPLight(&inside_castle_seg7_light_0703C060, 1), - gsSPLight(&inside_castle_seg7_light_0703C058, 2), + gsSPLight(&inside_castle_seg7_lights_0703C058.l, 1), + gsSPLight(&inside_castle_seg7_lights_0703C058.a, 2), gsSPVertex(inside_castle_seg7_vertex_0703C350, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 4, 3, 2, 0x0, 4, 5, 3, 0x0), diff --git a/levels/castle_inside/areas/2/12/model.inc.c b/levels/castle_inside/areas/2/12/model.inc.c index b48c4d4..04346e1 100644 --- a/levels/castle_inside/areas/2/12/model.inc.c +++ b/levels/castle_inside/areas/2/12/model.inc.c @@ -1,12 +1,8 @@ -// 0x07051A38 - 0x07051A40 -static const Ambient inside_castle_seg7_light_07051A38 = { - {{0x47, 0x3f, 0x17}, 0, {0x47, 0x3f, 0x17}, 0} -}; - -// 0x07051A40 - 0x07051A50 -static const Light inside_castle_seg7_light_07051A40 = { - {{0xbf, 0xaa, 0x3f}, 0, {0xbf, 0xaa, 0x3f}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07051A38 - 0x07051A50 +static const Lights1 inside_castle_seg7_lights_07051A38 = gdSPDefLights1( + 0x47, 0x3f, 0x17, + 0xbf, 0xaa, 0x3f, 0x28, 0x28, 0x28 +); // 0x07051A50 - 0x07051B10 static const Vtx inside_castle_seg7_vertex_07051A50[] = { @@ -26,8 +22,8 @@ static const Vtx inside_castle_seg7_vertex_07051A50[] = { // 0x07051B10 - 0x07051B60 static const Gfx inside_castle_seg7_dl_07051B10[] = { - gsSPLight(&inside_castle_seg7_light_07051A40, 1), - gsSPLight(&inside_castle_seg7_light_07051A38, 2), + gsSPLight(&inside_castle_seg7_lights_07051A38.l, 1), + gsSPLight(&inside_castle_seg7_lights_07051A38.a, 2), gsSPVertex(inside_castle_seg7_vertex_07051A50, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/levels/castle_inside/areas/2/13/model.inc.c b/levels/castle_inside/areas/2/13/model.inc.c index 45eac38..e8eac08 100644 --- a/levels/castle_inside/areas/2/13/model.inc.c +++ b/levels/castle_inside/areas/2/13/model.inc.c @@ -1,32 +1,20 @@ -// 0x07051B88 - 0x07051B90 -static const Ambient inside_castle_seg7_light_07051B88 = { - {{0x51, 0x34, 0x42}, 0, {0x51, 0x34, 0x42}, 0} -}; +// 0x07051B88 - 0x07051BA0 +static const Lights1 inside_castle_seg7_lights_07051B88 = gdSPDefLights1( + 0x51, 0x34, 0x42, + 0xd8, 0x8c, 0xb2, 0x28, 0x28, 0x28 +); -// 0x07051B90 - 0x07051BA0 -static const Light inside_castle_seg7_light_07051B90 = { - {{0xd8, 0x8c, 0xb2}, 0, {0xd8, 0x8c, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07051BA0 - 0x07051BB8 +static const Lights1 inside_castle_seg7_lights_07051BA0 = gdSPDefLights1( + 0x40, 0x1e, 0x2f, + 0xac, 0x52, 0x7f, 0x28, 0x28, 0x28 +); -// 0x07051BA0 - 0x07051BA8 -static const Ambient inside_castle_seg7_light_07051BA0 = { - {{0x40, 0x1e, 0x2f}, 0, {0x40, 0x1e, 0x2f}, 0} -}; - -// 0x07051BA8 - 0x07051BB8 -static const Light inside_castle_seg7_light_07051BA8 = { - {{0xac, 0x52, 0x7f}, 0, {0xac, 0x52, 0x7f}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07051BB8 - 0x07051BC0 -static const Ambient inside_castle_seg7_light_07051BB8 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x07051BC0 - 0x07051BD0 -static const Light inside_castle_seg7_light_07051BC0 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07051BB8 - 0x07051BD0 +static const Lights1 inside_castle_seg7_lights_07051BB8 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x07051BD0 - 0x07051C70 static const Vtx inside_castle_seg7_vertex_07051BD0[] = { @@ -999,8 +987,8 @@ static const Gfx inside_castle_seg7_dl_07054AF0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07051B90, 1), - gsSPLight(&inside_castle_seg7_light_07051B88, 2), + gsSPLight(&inside_castle_seg7_lights_07051B88.l, 1), + gsSPLight(&inside_castle_seg7_lights_07051B88.a, 2), gsSPVertex(inside_castle_seg7_vertex_07051BD0, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 5, 2, 1, 0x0), @@ -1117,8 +1105,8 @@ static const Gfx inside_castle_seg7_dl_07054B78[] = { gsSP1Triangle( 0, 14, 1, 0x0), gsSPVertex(inside_castle_seg7_vertex_07052F30, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&inside_castle_seg7_light_07051BA8, 1), - gsSPLight(&inside_castle_seg7_light_07051BA0, 2), + gsSPLight(&inside_castle_seg7_lights_07051BA0.l, 1), + gsSPLight(&inside_castle_seg7_lights_07051BA0.a, 2), gsSPVertex(inside_castle_seg7_vertex_07052F70, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1230,8 +1218,8 @@ static const Gfx inside_castle_seg7_dl_070555E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07051B90, 1), - gsSPLight(&inside_castle_seg7_light_07051B88, 2), + gsSPLight(&inside_castle_seg7_lights_07051B88.l, 1), + gsSPLight(&inside_castle_seg7_lights_07051B88.a, 2), gsSPVertex(inside_castle_seg7_vertex_070542B0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -1289,8 +1277,8 @@ static const Gfx inside_castle_seg7_dl_070557A8[] = { // 0x070558A0 - 0x070558D0 static const Gfx inside_castle_seg7_dl_070558A0[] = { - gsSPLight(&inside_castle_seg7_light_07051BC0, 1), - gsSPLight(&inside_castle_seg7_light_07051BB8, 2), + gsSPLight(&inside_castle_seg7_lights_07051BB8.l, 1), + gsSPLight(&inside_castle_seg7_lights_07051BB8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07054AB0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/castle_inside/areas/2/14/model.inc.c b/levels/castle_inside/areas/2/14/model.inc.c index b1dc1bf..57e95f8 100644 --- a/levels/castle_inside/areas/2/14/model.inc.c +++ b/levels/castle_inside/areas/2/14/model.inc.c @@ -1,22 +1,14 @@ -// 0x070559C0 - 0x070559C8 -static const Ambient inside_castle_seg7_light_070559C0 = { - {{0x40, 0x24, 0x1e}, 0, {0x40, 0x24, 0x1e}, 0} -}; +// 0x070559C0 - 0x070559D8 +static const Lights1 inside_castle_seg7_lights_070559C0 = gdSPDefLights1( + 0x40, 0x24, 0x1e, + 0xac, 0x61, 0x52, 0x28, 0x28, 0x28 +); -// 0x070559C8 - 0x070559D8 -static const Light inside_castle_seg7_light_070559C8 = { - {{0xac, 0x61, 0x52}, 0, {0xac, 0x61, 0x52}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070559D8 - 0x070559E0 -static const Ambient inside_castle_seg7_light_070559D8 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x070559E0 - 0x070559F0 -static const Light inside_castle_seg7_light_070559E0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070559D8 - 0x070559F0 +static const Lights1 inside_castle_seg7_lights_070559D8 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070559F0 - 0x07055AE0 static const Vtx inside_castle_seg7_vertex_070559F0[] = { @@ -423,8 +415,8 @@ static const Gfx inside_castle_seg7_dl_07056BF0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_070559C8, 1), - gsSPLight(&inside_castle_seg7_light_070559C0, 2), + gsSPLight(&inside_castle_seg7_lights_070559C0.l, 1), + gsSPLight(&inside_castle_seg7_lights_070559C0.a, 2), gsSPVertex(inside_castle_seg7_vertex_070559F0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -437,8 +429,8 @@ static const Gfx inside_castle_seg7_dl_07056BF0[] = { gsSP1Triangle( 0, 2, 14, 0x0), gsSPVertex(inside_castle_seg7_vertex_07055BD0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&inside_castle_seg7_light_070559E0, 1), - gsSPLight(&inside_castle_seg7_light_070559D8, 2), + gsSPLight(&inside_castle_seg7_lights_070559D8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070559D8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07055C10, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -449,8 +441,8 @@ static const Gfx inside_castle_seg7_dl_07056CE0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_070559C8, 1), - gsSPLight(&inside_castle_seg7_light_070559C0, 2), + gsSPLight(&inside_castle_seg7_lights_070559C0.l, 1), + gsSPLight(&inside_castle_seg7_lights_070559C0.a, 2), gsSPVertex(inside_castle_seg7_vertex_07055C50, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -463,8 +455,8 @@ static const Gfx inside_castle_seg7_dl_07056CE0[] = { gsSP1Triangle( 0, 2, 14, 0x0), gsSPVertex(inside_castle_seg7_vertex_07055E30, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&inside_castle_seg7_light_070559E0, 1), - gsSPLight(&inside_castle_seg7_light_070559D8, 2), + gsSPLight(&inside_castle_seg7_lights_070559D8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070559D8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07055E70, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -475,8 +467,8 @@ static const Gfx inside_castle_seg7_dl_07056DD0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07009000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_070559C8, 1), - gsSPLight(&inside_castle_seg7_light_070559C0, 2), + gsSPLight(&inside_castle_seg7_lights_070559C0.l, 1), + gsSPLight(&inside_castle_seg7_lights_070559C0.a, 2), gsSPVertex(inside_castle_seg7_vertex_07055EB0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -489,8 +481,8 @@ static const Gfx inside_castle_seg7_dl_07056DD0[] = { gsSP1Triangle( 0, 2, 14, 0x0), gsSPVertex(inside_castle_seg7_vertex_07056090, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&inside_castle_seg7_light_070559E0, 1), - gsSPLight(&inside_castle_seg7_light_070559D8, 2), + gsSPLight(&inside_castle_seg7_lights_070559D8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070559D8.a, 2), gsSPVertex(inside_castle_seg7_vertex_070560D0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -501,8 +493,8 @@ static const Gfx inside_castle_seg7_dl_07056EC0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07009800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_070559C8, 1), - gsSPLight(&inside_castle_seg7_light_070559C0, 2), + gsSPLight(&inside_castle_seg7_lights_070559C0.l, 1), + gsSPLight(&inside_castle_seg7_lights_070559C0.a, 2), gsSPVertex(inside_castle_seg7_vertex_07056110, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -515,8 +507,8 @@ static const Gfx inside_castle_seg7_dl_07056EC0[] = { gsSP1Triangle( 0, 2, 14, 0x0), gsSPVertex(inside_castle_seg7_vertex_070562F0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&inside_castle_seg7_light_070559E0, 1), - gsSPLight(&inside_castle_seg7_light_070559D8, 2), + gsSPLight(&inside_castle_seg7_lights_070559D8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070559D8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07056330, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -527,8 +519,8 @@ static const Gfx inside_castle_seg7_dl_07056FB0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07006000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_070559C8, 1), - gsSPLight(&inside_castle_seg7_light_070559C0, 2), + gsSPLight(&inside_castle_seg7_lights_070559C0.l, 1), + gsSPLight(&inside_castle_seg7_lights_070559C0.a, 2), gsSPVertex(inside_castle_seg7_vertex_07056370, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/castle_inside/areas/2/15/model.inc.c b/levels/castle_inside/areas/2/15/model.inc.c index d661637..6798a28 100644 --- a/levels/castle_inside/areas/2/15/model.inc.c +++ b/levels/castle_inside/areas/2/15/model.inc.c @@ -1,22 +1,14 @@ -// 0x07057380 - 0x07057388 -static const Ambient inside_castle_seg7_light_07057380 = { - {{0x51, 0x34, 0x42}, 0, {0x51, 0x34, 0x42}, 0} -}; +// 0x07057380 - 0x07057398 +static const Lights1 inside_castle_seg7_lights_07057380 = gdSPDefLights1( + 0x51, 0x34, 0x42, + 0xd8, 0x8c, 0xb2, 0x28, 0x28, 0x28 +); -// 0x07057388 - 0x07057398 -static const Light inside_castle_seg7_light_07057388 = { - {{0xd8, 0x8c, 0xb2}, 0, {0xd8, 0x8c, 0xb2}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07057398 - 0x070573A0 -static const Ambient inside_castle_seg7_light_07057398 = { - {{0x40, 0x24, 0x1e}, 0, {0x40, 0x24, 0x1e}, 0} -}; - -// 0x070573A0 - 0x070573B0 -static const Light inside_castle_seg7_light_070573A0 = { - {{0xac, 0x61, 0x52}, 0, {0xac, 0x61, 0x52}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07057398 - 0x070573B0 +static const Lights1 inside_castle_seg7_lights_07057398 = gdSPDefLights1( + 0x40, 0x24, 0x1e, + 0xac, 0x61, 0x52, 0x28, 0x28, 0x28 +); // 0x070573B0 - 0x070573F0 static const Vtx inside_castle_seg7_vertex_070573B0[] = { @@ -195,8 +187,8 @@ static const Gfx inside_castle_seg7_dl_07057B70[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_0900B000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07057388, 1), - gsSPLight(&inside_castle_seg7_light_07057380, 2), + gsSPLight(&inside_castle_seg7_lights_07057380.l, 1), + gsSPLight(&inside_castle_seg7_lights_07057380.a, 2), gsSPVertex(inside_castle_seg7_vertex_070573B0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -246,8 +238,8 @@ static const Gfx inside_castle_seg7_dl_07057D30[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_070573A0, 1), - gsSPLight(&inside_castle_seg7_light_07057398, 2), + gsSPLight(&inside_castle_seg7_lights_07057398.l, 1), + gsSPLight(&inside_castle_seg7_lights_07057398.a, 2), gsSPVertex(inside_castle_seg7_vertex_070577D0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -292,8 +284,8 @@ static const Gfx inside_castle_seg7_dl_07057E60[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07057388, 1), - gsSPLight(&inside_castle_seg7_light_07057380, 2), + gsSPLight(&inside_castle_seg7_lights_07057380.l, 1), + gsSPLight(&inside_castle_seg7_lights_07057380.a, 2), gsSPVertex(inside_castle_seg7_vertex_070579D0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), diff --git a/levels/castle_inside/areas/2/2/model.inc.c b/levels/castle_inside/areas/2/2/model.inc.c index d5e9858..57fffda 100644 --- a/levels/castle_inside/areas/2/2/model.inc.c +++ b/levels/castle_inside/areas/2/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x0703E798 - 0x0703E7A0 -static const Ambient inside_castle_seg7_light_0703E798 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x0703E7A0 - 0x0703E7B0 -static const Light inside_castle_seg7_light_0703E7A0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0703E798 - 0x0703E7B0 +static const Lights1 inside_castle_seg7_lights_0703E798 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0703E7B0 - 0x0703E8A0 static const Vtx inside_castle_seg7_vertex_0703E7B0[] = { @@ -1141,8 +1137,8 @@ static const Gfx inside_castle_seg7_dl_07041F30[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_0900B000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0703E7A0, 1), - gsSPLight(&inside_castle_seg7_light_0703E798, 2), + gsSPLight(&inside_castle_seg7_lights_0703E798.l, 1), + gsSPLight(&inside_castle_seg7_lights_0703E798.a, 2), gsSPVertex(inside_castle_seg7_vertex_0703E7B0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/castle_inside/areas/2/3/model.inc.c b/levels/castle_inside/areas/2/3/model.inc.c index e4c1d75..bbcc3e6 100644 --- a/levels/castle_inside/areas/2/3/model.inc.c +++ b/levels/castle_inside/areas/2/3/model.inc.c @@ -1,22 +1,14 @@ -// 0x070430F8 - 0x07043100 -static const Ambient inside_castle_seg7_light_070430F8 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; +// 0x070430F8 - 0x07043110 +static const Lights1 inside_castle_seg7_lights_070430F8 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07043100 - 0x07043110 -static const Light inside_castle_seg7_light_07043100 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07043110 - 0x07043118 -static const Ambient inside_castle_seg7_light_07043110 = { - {{0x40, 0x3a, 0x1e}, 0, {0x40, 0x3a, 0x1e}, 0} -}; - -// 0x07043118 - 0x07043128 -static const Light inside_castle_seg7_light_07043118 = { - {{0xac, 0x9d, 0x52}, 0, {0xac, 0x9d, 0x52}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07043110 - 0x07043128 +static const Lights1 inside_castle_seg7_lights_07043110 = gdSPDefLights1( + 0x40, 0x3a, 0x1e, + 0xac, 0x9d, 0x52, 0x28, 0x28, 0x28 +); // 0x07043128 - 0x070431A8 static const Vtx inside_castle_seg7_vertex_07043128[] = { @@ -185,8 +177,8 @@ static const Gfx inside_castle_seg7_dl_070437C8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07043100, 1), - gsSPLight(&inside_castle_seg7_light_070430F8, 2), + gsSPLight(&inside_castle_seg7_lights_070430F8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070430F8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07043128, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 4, 6, 0x0), @@ -198,8 +190,8 @@ static const Gfx inside_castle_seg7_dl_07043820[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07043118, 1), - gsSPLight(&inside_castle_seg7_light_07043110, 2), + gsSPLight(&inside_castle_seg7_lights_07043110.l, 1), + gsSPLight(&inside_castle_seg7_lights_07043110.a, 2), gsSPVertex(inside_castle_seg7_vertex_070431A8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -225,8 +217,8 @@ static const Gfx inside_castle_seg7_dl_07043930[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09002000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07043100, 1), - gsSPLight(&inside_castle_seg7_light_070430F8, 2), + gsSPLight(&inside_castle_seg7_lights_070430F8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070430F8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07043568, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 3, 0, 0x0, 4, 5, 3, 0x0), diff --git a/levels/castle_inside/areas/2/4/model.inc.c b/levels/castle_inside/areas/2/4/model.inc.c index 27ad67b..c4e958c 100644 --- a/levels/castle_inside/areas/2/4/model.inc.c +++ b/levels/castle_inside/areas/2/4/model.inc.c @@ -1,12 +1,8 @@ -// 0x07043C38 - 0x07043C40 -static const Ambient inside_castle_seg7_light_07043C38 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x07043C40 - 0x07043C50 -static const Light inside_castle_seg7_light_07043C40 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07043C38 - 0x07043C50 +static const Lights1 inside_castle_seg7_lights_07043C38 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07043C50 - 0x07043C90 static const Vtx inside_castle_seg7_vertex_07043C50[] = { @@ -21,8 +17,8 @@ static const Gfx inside_castle_seg7_dl_07043C90[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07043C40, 1), - gsSPLight(&inside_castle_seg7_light_07043C38, 2), + gsSPLight(&inside_castle_seg7_lights_07043C38.l, 1), + gsSPLight(&inside_castle_seg7_lights_07043C38.a, 2), gsSPVertex(inside_castle_seg7_vertex_07043C50, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/castle_inside/areas/2/6/model.inc.c b/levels/castle_inside/areas/2/6/model.inc.c index 79f2f2d..556333c 100644 --- a/levels/castle_inside/areas/2/6/model.inc.c +++ b/levels/castle_inside/areas/2/6/model.inc.c @@ -1,12 +1,8 @@ -// 0x0704A1B8 - 0x0704A1C0 -static const Ambient inside_castle_seg7_light_0704A1B8 = { - {{0x3d, 0x3d, 0x3f}, 0, {0x3d, 0x3d, 0x3f}, 0} -}; - -// 0x0704A1C0 - 0x0704A1D0 -static const Light inside_castle_seg7_light_0704A1C0 = { - {{0xf5, 0xf5, 0xff}, 0, {0xf5, 0xf5, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0704A1B8 - 0x0704A1D0 +static const Lights1 inside_castle_seg7_lights_0704A1B8 = gdSPDefLights1( + 0x3d, 0x3d, 0x3f, + 0xf5, 0xf5, 0xff, 0x28, 0x28, 0x28 +); // 0x0704A1D0 - 0x0704A290 static const Vtx inside_castle_seg7_vertex_0704A1D0[] = { @@ -26,8 +22,8 @@ static const Vtx inside_castle_seg7_vertex_0704A1D0[] = { // 0x0704A290 - 0x0704A2E0 static const Gfx inside_castle_seg7_dl_0704A290[] = { - gsSPLight(&inside_castle_seg7_light_0704A1C0, 1), - gsSPLight(&inside_castle_seg7_light_0704A1B8, 2), + gsSPLight(&inside_castle_seg7_lights_0704A1B8.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704A1B8.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704A1D0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/castle_inside/areas/2/8/model.inc.c b/levels/castle_inside/areas/2/8/model.inc.c index ccf9af1..d84a05e 100644 --- a/levels/castle_inside/areas/2/8/model.inc.c +++ b/levels/castle_inside/areas/2/8/model.inc.c @@ -1,32 +1,20 @@ -// 0x0704AB80 - 0x0704AB88 -static const Ambient inside_castle_seg7_light_0704AB80 = { - {{0x38, 0x3c, 0x4c}, 0, {0x38, 0x3c, 0x4c}, 0} -}; +// 0x0704AB80 - 0x0704AB98 +static const Lights1 inside_castle_seg7_lights_0704AB80 = gdSPDefLights1( + 0x38, 0x3c, 0x4c, + 0x97, 0xa0, 0xcd, 0x28, 0x28, 0x28 +); -// 0x0704AB88 - 0x0704AB98 -static const Light inside_castle_seg7_light_0704AB88 = { - {{0x97, 0xa0, 0xcd}, 0, {0x97, 0xa0, 0xcd}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0704AB98 - 0x0704ABB0 +static const Lights1 inside_castle_seg7_lights_0704AB98 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0704AB98 - 0x0704ABA0 -static const Ambient inside_castle_seg7_light_0704AB98 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x0704ABA0 - 0x0704ABB0 -static const Light inside_castle_seg7_light_0704ABA0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0704ABB0 - 0x0704ABB8 -static const Ambient inside_castle_seg7_light_0704ABB0 = { - {{0x52, 0x52, 0x52}, 0, {0x52, 0x52, 0x52}, 0} -}; - -// 0x0704ABB8 - 0x0704ABC8 -static const Light inside_castle_seg7_light_0704ABB8 = { - {{0xdd, 0xdd, 0xdd}, 0, {0xdd, 0xdd, 0xdd}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0704ABB0 - 0x0704ABC8 +static const Lights1 inside_castle_seg7_lights_0704ABB0 = gdSPDefLights1( + 0x52, 0x52, 0x52, + 0xdd, 0xdd, 0xdd, 0x28, 0x28, 0x28 +); // 0x0704ABC8 - 0x0704ACA8 static const Vtx inside_castle_seg7_vertex_0704ABC8[] = { @@ -468,8 +456,8 @@ static const Gfx inside_castle_seg7_dl_0704C078[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0704AB88, 1), - gsSPLight(&inside_castle_seg7_light_0704AB80, 2), + gsSPLight(&inside_castle_seg7_lights_0704AB80.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704AB80.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704ABC8, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 5, 0, 2, 0x0, 0, 5, 4, 0x0), @@ -492,8 +480,8 @@ static const Gfx inside_castle_seg7_dl_0704C078[] = { gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 8, 10, 11, 0x0), gsSP2Triangles(12, 13, 14, 0x0, 12, 14, 15, 0x0), - gsSPLight(&inside_castle_seg7_light_0704ABA0, 1), - gsSPLight(&inside_castle_seg7_light_0704AB98, 2), + gsSPLight(&inside_castle_seg7_lights_0704AB98.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704AB98.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704AF88, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 4, 7, 8, 0x0), @@ -532,8 +520,8 @@ static const Gfx inside_castle_seg7_dl_0704C378[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0704ABB8, 1), - gsSPLight(&inside_castle_seg7_light_0704ABB0, 2), + gsSPLight(&inside_castle_seg7_lights_0704ABB0.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704ABB0.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704B498, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -543,8 +531,8 @@ static const Gfx inside_castle_seg7_dl_0704C378[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), gsSP1Triangle( 0, 10, 1, 0x0), - gsSPLight(&inside_castle_seg7_light_0704ABA0, 1), - gsSPLight(&inside_castle_seg7_light_0704AB98, 2), + gsSPLight(&inside_castle_seg7_lights_0704AB98.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704AB98.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704B638, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 2, 1, 4, 0x0, 1, 5, 4, 0x0), diff --git a/levels/castle_inside/areas/2/9/model.inc.c b/levels/castle_inside/areas/2/9/model.inc.c index 1fe7495..455aba0 100644 --- a/levels/castle_inside/areas/2/9/model.inc.c +++ b/levels/castle_inside/areas/2/9/model.inc.c @@ -1,112 +1,68 @@ -// 0x0704C8B0 - 0x0704C8B8 -static const Ambient inside_castle_seg7_light_0704C8B0 = { - {{0x2d, 0x3b, 0x58}, 0, {0x2d, 0x3b, 0x58}, 0} -}; +// 0x0704C8B0 - 0x0704C8C8 +static const Lights1 inside_castle_seg7_lights_0704C8B0 = gdSPDefLights1( + 0x2d, 0x3b, 0x58, + 0x79, 0x9f, 0xeb, 0x28, 0x28, 0x28 +); -// 0x0704C8B8 - 0x0704C8C8 -static const Light inside_castle_seg7_light_0704C8B8 = { - {{0x79, 0x9f, 0xeb}, 0, {0x79, 0x9f, 0xeb}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0704C8C8 - 0x0704C8E0 +static const Lights1 inside_castle_seg7_lights_0704C8C8 = gdSPDefLights1( + 0x25, 0x39, 0x5f, + 0x65, 0x98, 0xff, 0x28, 0x28, 0x28 +); -// 0x0704C8C8 - 0x0704C8D0 -static const Ambient inside_castle_seg7_light_0704C8C8 = { - {{0x25, 0x39, 0x5f}, 0, {0x25, 0x39, 0x5f}, 0} -}; +// 0x0704C8E0 - 0x0704C8F8 +static const Lights1 inside_castle_seg7_lights_0704C8E0 = gdSPDefLights1( + 0x1e, 0x2a, 0x40, + 0x52, 0x70, 0xac, 0x28, 0x28, 0x28 +); -// 0x0704C8D0 - 0x0704C8E0 -static const Light inside_castle_seg7_light_0704C8D0 = { - {{0x65, 0x98, 0xff}, 0, {0x65, 0x98, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0704C8F8 - 0x0704C910 +static const Lights1 inside_castle_seg7_lights_0704C8F8 = gdSPDefLights1( + 0x17, 0x27, 0x47, + 0x3f, 0x6a, 0xbf, 0x28, 0x28, 0x28 +); -// 0x0704C8E0 - 0x0704C8E8 -static const Ambient inside_castle_seg7_light_0704C8E0 = { - {{0x1e, 0x2a, 0x40}, 0, {0x1e, 0x2a, 0x40}, 0} -}; +// 0x0704C910 - 0x0704C928 +static const Lights1 inside_castle_seg7_lights_0704C910 = gdSPDefLights1( + 0x0b, 0x23, 0x53, + 0x1f, 0x5f, 0xdf, 0x28, 0x28, 0x28 +); -// 0x0704C8E8 - 0x0704C8F8 -static const Light inside_castle_seg7_light_0704C8E8 = { - {{0x52, 0x70, 0xac}, 0, {0x52, 0x70, 0xac}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0704C928 - 0x0704C940 +static const Lights1 inside_castle_seg7_lights_0704C928 = gdSPDefLights1( + 0x00, 0x1f, 0x5f, + 0x00, 0x55, 0xff, 0x28, 0x28, 0x28 +); -// 0x0704C8F8 - 0x0704C900 -static const Ambient inside_castle_seg7_light_0704C8F8 = { - {{0x17, 0x27, 0x47}, 0, {0x17, 0x27, 0x47}, 0} -}; +// 0x0704C940 - 0x0704C958 +static const Lights1 inside_castle_seg7_lights_0704C940 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0704C900 - 0x0704C910 -static const Light inside_castle_seg7_light_0704C900 = { - {{0x3f, 0x6a, 0xbf}, 0, {0x3f, 0x6a, 0xbf}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0704C958 - 0x0704C970 +static const Lights1 inside_castle_seg7_lights_0704C958 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xcc, 0xcc, 0xcc, 0x28, 0x28, 0x28 +); -// 0x0704C910 - 0x0704C918 -static const Ambient inside_castle_seg7_light_0704C910 = { - {{0x0b, 0x23, 0x53}, 0, {0x0b, 0x23, 0x53}, 0} -}; +// 0x0704C970 - 0x0704C988 +static const Lights1 inside_castle_seg7_lights_0704C970 = gdSPDefLights1( + 0x13, 0x09, 0x00, + 0x35, 0x1a, 0x00, 0x28, 0x28, 0x28 +); -// 0x0704C918 - 0x0704C928 -static const Light inside_castle_seg7_light_0704C918 = { - {{0x1f, 0x5f, 0xdf}, 0, {0x1f, 0x5f, 0xdf}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0704C988 - 0x0704C9A0 +static const Lights1 inside_castle_seg7_lights_0704C988 = gdSPDefLights1( + 0x19, 0x0c, 0x00, + 0x43, 0x21, 0x00, 0x28, 0x28, 0x28 +); -// 0x0704C928 - 0x0704C930 -static const Ambient inside_castle_seg7_light_0704C928 = { - {{0x00, 0x1f, 0x5f}, 0, {0x00, 0x1f, 0x5f}, 0} -}; - -// 0x0704C930 - 0x0704C940 -static const Light inside_castle_seg7_light_0704C930 = { - {{0x00, 0x55, 0xff}, 0, {0x00, 0x55, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0704C940 - 0x0704C948 -static const Ambient inside_castle_seg7_light_0704C940 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x0704C948 - 0x0704C958 -static const Light inside_castle_seg7_light_0704C948 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0704C958 - 0x0704C960 -static const Ambient inside_castle_seg7_light_0704C958 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0704C960 - 0x0704C970 -static const Light inside_castle_seg7_light_0704C960 = { - {{0xcc, 0xcc, 0xcc}, 0, {0xcc, 0xcc, 0xcc}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0704C970 - 0x0704C978 -static const Ambient inside_castle_seg7_light_0704C970 = { - {{0x13, 0x09, 0x00}, 0, {0x13, 0x09, 0x00}, 0} -}; - -// 0x0704C978 - 0x0704C988 -static const Light inside_castle_seg7_light_0704C978 = { - {{0x35, 0x1a, 0x00}, 0, {0x35, 0x1a, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0704C988 - 0x0704C990 -static const Ambient inside_castle_seg7_light_0704C988 = { - {{0x19, 0x0c, 0x00}, 0, {0x19, 0x0c, 0x00}, 0} -}; - -// 0x0704C990 - 0x0704C9A0 -static const Light inside_castle_seg7_light_0704C990 = { - {{0x43, 0x21, 0x00}, 0, {0x43, 0x21, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0704C9A0 - 0x0704C9A8 -static const Ambient inside_castle_seg7_light_0704C9A0 = { - {{0x2d, 0x16, 0x00}, 0, {0x2d, 0x16, 0x00}, 0} -}; - -// 0x0704C9A8 - 0x0704C9B8 -static const Light inside_castle_seg7_light_0704C9A8 = { - {{0x78, 0x3c, 0x00}, 0, {0x78, 0x3c, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0704C9A0 - 0x0704C9B8 +static const Lights1 inside_castle_seg7_lights_0704C9A0 = gdSPDefLights1( + 0x2d, 0x16, 0x00, + 0x78, 0x3c, 0x00, 0x28, 0x28, 0x28 +); // 0x0704C9B8 - 0x0704CA98 static const Vtx inside_castle_seg7_vertex_0704C9B8[] = { @@ -1104,39 +1060,39 @@ static const Gfx inside_castle_seg7_dl_0704F928[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0704C8B8, 1), - gsSPLight(&inside_castle_seg7_light_0704C8B0, 2), + gsSPLight(&inside_castle_seg7_lights_0704C8B0.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704C8B0.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704C9B8, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 5, 6, 7, 0x0), gsSP2Triangles( 5, 8, 6, 0x0, 5, 9, 8, 0x0), gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0), - gsSPLight(&inside_castle_seg7_light_0704C8D0, 1), - gsSPLight(&inside_castle_seg7_light_0704C8C8, 2), + gsSPLight(&inside_castle_seg7_lights_0704C8C8.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704C8C8.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704CA98, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&inside_castle_seg7_light_0704C8E8, 1), - gsSPLight(&inside_castle_seg7_light_0704C8E0, 2), + gsSPLight(&inside_castle_seg7_lights_0704C8E0.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704C8E0.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704CB18, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&inside_castle_seg7_light_0704C900, 1), - gsSPLight(&inside_castle_seg7_light_0704C8F8, 2), + gsSPLight(&inside_castle_seg7_lights_0704C8F8.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704C8F8.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704CB98, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&inside_castle_seg7_light_0704C918, 1), - gsSPLight(&inside_castle_seg7_light_0704C910, 2), + gsSPLight(&inside_castle_seg7_lights_0704C910.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704C910.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704CC18, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&inside_castle_seg7_light_0704C930, 1), - gsSPLight(&inside_castle_seg7_light_0704C928, 2), + gsSPLight(&inside_castle_seg7_lights_0704C928.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704C928.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704CC98, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&inside_castle_seg7_light_0704C948, 1), - gsSPLight(&inside_castle_seg7_light_0704C940, 2), + gsSPLight(&inside_castle_seg7_lights_0704C940.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704C940.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704CCD8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 3, 7, 6, 0x0), @@ -1161,8 +1117,8 @@ static const Gfx inside_castle_seg7_dl_0704FB98[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0704C960, 1), - gsSPLight(&inside_castle_seg7_light_0704C958, 2), + gsSPLight(&inside_castle_seg7_lights_0704C958.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704C958.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704CEC8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1177,8 +1133,8 @@ static const Gfx inside_castle_seg7_dl_0704FB98[] = { gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 8, 11, 9, 0x0), - gsSPLight(&inside_castle_seg7_light_0704C948, 1), - gsSPLight(&inside_castle_seg7_light_0704C940, 2), + gsSPLight(&inside_castle_seg7_lights_0704C940.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704C940.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704D168, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -1379,19 +1335,19 @@ static const Gfx inside_castle_seg7_dl_07050308[] = { gsSPVertex(inside_castle_seg7_vertex_0704E848, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&inside_castle_seg7_light_0704C978, 1), - gsSPLight(&inside_castle_seg7_light_0704C970, 2), + gsSPLight(&inside_castle_seg7_lights_0704C970.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704C970.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704E8C8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 8, 10, 11, 0x0), - gsSPLight(&inside_castle_seg7_light_0704C990, 1), - gsSPLight(&inside_castle_seg7_light_0704C988, 2), + gsSPLight(&inside_castle_seg7_lights_0704C988.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704C988.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704E988, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), gsSP2Triangles( 0, 2, 3, 0x0, 3, 5, 4, 0x0), - gsSPLight(&inside_castle_seg7_light_0704C9A8, 1), - gsSPLight(&inside_castle_seg7_light_0704C9A0, 2), + gsSPLight(&inside_castle_seg7_lights_0704C9A0.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704C9A0.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704E9E8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1417,8 +1373,8 @@ static const Gfx inside_castle_seg7_dl_070505D0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09002000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0704C948, 1), - gsSPLight(&inside_castle_seg7_light_0704C940, 2), + gsSPLight(&inside_castle_seg7_lights_0704C940.l, 1), + gsSPLight(&inside_castle_seg7_lights_0704C940.a, 2), gsSPVertex(inside_castle_seg7_vertex_0704ED28, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/castle_inside/areas/2/macro.inc.c b/levels/castle_inside/areas/2/macro.inc.c index 416ed8c..5ae3bd1 100644 --- a/levels/castle_inside/areas/2/macro.inc.c +++ b/levels/castle_inside/areas/2/macro.inc.c @@ -1,5 +1,5 @@ // 0x070777E0 - 0x070777EC const MacroObject inside_castle_seg7_area_2_macro_objs[] = { - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_sign_on_wall, /*yaw*/ 90, /*pos*/ 164, 1203, 2278, /*behParam*/ 19), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_sign_on_wall, /*yaw*/ 90, /*pos*/ 164, 1203, 2278, /*behParam*/ DIALOG_019), MACRO_OBJECT_END(), }; diff --git a/levels/castle_inside/areas/2/pendulum/model.inc.c b/levels/castle_inside/areas/2/pendulum/model.inc.c index 77442cd..6bcaf0b 100644 --- a/levels/castle_inside/areas/2/pendulum/model.inc.c +++ b/levels/castle_inside/areas/2/pendulum/model.inc.c @@ -1,22 +1,14 @@ -// 0x07050A78 - 0x07050A80 -static const Ambient inside_castle_seg7_light_07050A78 = { - {{0x40, 0x2f, 0x1e}, 0, {0x40, 0x2f, 0x1e}, 0} -}; +// 0x07050A78 - 0x07050A90 +static const Lights1 inside_castle_seg7_lights_07050A78 = gdSPDefLights1( + 0x40, 0x2f, 0x1e, + 0xac, 0x7f, 0x52, 0x28, 0x28, 0x28 +); -// 0x07050A80 - 0x07050A90 -static const Light inside_castle_seg7_light_07050A80 = { - {{0xac, 0x7f, 0x52}, 0, {0xac, 0x7f, 0x52}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07050A90 - 0x07050A98 -static const Ambient inside_castle_seg7_light_07050A90 = { - {{0x40, 0x3a, 0x1e}, 0, {0x40, 0x3a, 0x1e}, 0} -}; - -// 0x07050A98 - 0x07050AA8 -static const Light inside_castle_seg7_light_07050A98 = { - {{0xac, 0x9d, 0x52}, 0, {0xac, 0x9d, 0x52}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07050A90 - 0x07050AA8 +static const Lights1 inside_castle_seg7_lights_07050A90 = gdSPDefLights1( + 0x40, 0x3a, 0x1e, + 0xac, 0x9d, 0x52, 0x28, 0x28, 0x28 +); // 0x07050AA8 - 0x07050B68 static const Vtx inside_castle_seg7_vertex_07050AA8[] = { @@ -153,8 +145,8 @@ static const Gfx inside_castle_seg7_dl_07051108[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07050A80, 1), - gsSPLight(&inside_castle_seg7_light_07050A78, 2), + gsSPLight(&inside_castle_seg7_lights_07050A78.l, 1), + gsSPLight(&inside_castle_seg7_lights_07050A78.a, 2), gsSPVertex(inside_castle_seg7_vertex_07050AA8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -164,8 +156,8 @@ static const Gfx inside_castle_seg7_dl_07051108[] = { // 0x07051170 - 0x070512F8 static const Gfx inside_castle_seg7_dl_07051170[] = { - gsSPLight(&inside_castle_seg7_light_07050A98, 1), - gsSPLight(&inside_castle_seg7_light_07050A90, 2), + gsSPLight(&inside_castle_seg7_lights_07050A90.l, 1), + gsSPLight(&inside_castle_seg7_lights_07050A90.a, 2), gsSPVertex(inside_castle_seg7_vertex_07050B68, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 0, 6, 7, 0x0, 0, 2, 8, 0x0), diff --git a/levels/castle_inside/areas/3/1/model.inc.c b/levels/castle_inside/areas/3/1/model.inc.c index 65862b5..2210f40 100644 --- a/levels/castle_inside/areas/3/1/model.inc.c +++ b/levels/castle_inside/areas/3/1/model.inc.c @@ -1,82 +1,50 @@ -// 0x07059200 - 0x07059208 -static const Ambient inside_castle_seg7_light_07059200 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0} -}; +// 0x07059200 - 0x07059218 +static const Lights1 inside_castle_seg7_lights_07059200 = gdSPDefLights1( + 0x33, 0x33, 0x33, + 0x88, 0x88, 0x88, 0x28, 0x28, 0x28 +); -// 0x07059208 - 0x07059218 -static const Light inside_castle_seg7_light_07059208 = { - {{0x88, 0x88, 0x88}, 0, {0x88, 0x88, 0x88}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07059218 - 0x07059230 +static const Lights1 inside_castle_seg7_lights_07059218 = gdSPDefLights1( + 0x39, 0x39, 0x39, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x07059218 - 0x07059220 -static const Ambient inside_castle_seg7_light_07059218 = { - {{0x39, 0x39, 0x39}, 0, {0x39, 0x39, 0x39}, 0} -}; +// 0x07059230 - 0x07059248 +static const Lights1 inside_castle_seg7_lights_07059230 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xaa, 0xaa, 0xaa, 0x28, 0x28, 0x28 +); -// 0x07059220 - 0x07059230 -static const Light inside_castle_seg7_light_07059220 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07059248 - 0x07059260 +static const Lights1 inside_castle_seg7_lights_07059248 = gdSPDefLights1( + 0x46, 0x46, 0x46, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); -// 0x07059230 - 0x07059238 -static const Ambient inside_castle_seg7_light_07059230 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; +// 0x07059260 - 0x07059278 +static const Lights1 inside_castle_seg7_lights_07059260 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0xcc, 0xcc, 0xcc, 0x28, 0x28, 0x28 +); -// 0x07059238 - 0x07059248 -static const Light inside_castle_seg7_light_07059238 = { - {{0xaa, 0xaa, 0xaa}, 0, {0xaa, 0xaa, 0xaa}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07059278 - 0x07059290 +static const Lights1 inside_castle_seg7_lights_07059278 = gdSPDefLights1( + 0x52, 0x52, 0x52, + 0xdd, 0xdd, 0xdd, 0x28, 0x28, 0x28 +); -// 0x07059248 - 0x07059250 -static const Ambient inside_castle_seg7_light_07059248 = { - {{0x46, 0x46, 0x46}, 0, {0x46, 0x46, 0x46}, 0} -}; +// 0x07059290 - 0x070592A8 +static const Lights1 inside_castle_seg7_lights_07059290 = gdSPDefLights1( + 0x59, 0x59, 0x59, + 0xee, 0xee, 0xee, 0x28, 0x28, 0x28 +); -// 0x07059250 - 0x07059260 -static const Light inside_castle_seg7_light_07059250 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07059260 - 0x07059268 -static const Ambient inside_castle_seg7_light_07059260 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x07059268 - 0x07059278 -static const Light inside_castle_seg7_light_07059268 = { - {{0xcc, 0xcc, 0xcc}, 0, {0xcc, 0xcc, 0xcc}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07059278 - 0x07059280 -static const Ambient inside_castle_seg7_light_07059278 = { - {{0x52, 0x52, 0x52}, 0, {0x52, 0x52, 0x52}, 0} -}; - -// 0x07059280 - 0x07059290 -static const Light inside_castle_seg7_light_07059280 = { - {{0xdd, 0xdd, 0xdd}, 0, {0xdd, 0xdd, 0xdd}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07059290 - 0x07059298 -static const Ambient inside_castle_seg7_light_07059290 = { - {{0x59, 0x59, 0x59}, 0, {0x59, 0x59, 0x59}, 0} -}; - -// 0x07059298 - 0x070592A8 -static const Light inside_castle_seg7_light_07059298 = { - {{0xee, 0xee, 0xee}, 0, {0xee, 0xee, 0xee}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070592A8 - 0x070592B0 -static const Ambient inside_castle_seg7_light_070592A8 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x070592B0 - 0x070592C0 -static const Light inside_castle_seg7_light_070592B0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070592A8 - 0x070592C0 +static const Lights1 inside_castle_seg7_lights_070592A8 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070592C0 - 0x07059340 static const Vtx inside_castle_seg7_vertex_070592C0[] = { @@ -1325,37 +1293,37 @@ static const Gfx inside_castle_seg7_dl_0705CEA0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_0900B000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07059208, 1), - gsSPLight(&inside_castle_seg7_light_07059200, 2), + gsSPLight(&inside_castle_seg7_lights_07059200.l, 1), + gsSPLight(&inside_castle_seg7_lights_07059200.a, 2), gsSPVertex(inside_castle_seg7_vertex_070592C0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&inside_castle_seg7_light_07059220, 1), - gsSPLight(&inside_castle_seg7_light_07059218, 2), + gsSPLight(&inside_castle_seg7_lights_07059218.l, 1), + gsSPLight(&inside_castle_seg7_lights_07059218.a, 2), gsSPVertex(inside_castle_seg7_vertex_07059340, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&inside_castle_seg7_light_07059238, 1), - gsSPLight(&inside_castle_seg7_light_07059230, 2), + gsSPLight(&inside_castle_seg7_lights_07059230.l, 1), + gsSPLight(&inside_castle_seg7_lights_07059230.a, 2), gsSPVertex(inside_castle_seg7_vertex_07059380, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&inside_castle_seg7_light_07059250, 1), - gsSPLight(&inside_castle_seg7_light_07059248, 2), + gsSPLight(&inside_castle_seg7_lights_07059248.l, 1), + gsSPLight(&inside_castle_seg7_lights_07059248.a, 2), gsSPVertex(inside_castle_seg7_vertex_070593C0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&inside_castle_seg7_light_07059268, 1), - gsSPLight(&inside_castle_seg7_light_07059260, 2), + gsSPLight(&inside_castle_seg7_lights_07059260.l, 1), + gsSPLight(&inside_castle_seg7_lights_07059260.a, 2), gsSPVertex(inside_castle_seg7_vertex_07059400, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&inside_castle_seg7_light_07059280, 1), - gsSPLight(&inside_castle_seg7_light_07059278, 2), + gsSPLight(&inside_castle_seg7_lights_07059278.l, 1), + gsSPLight(&inside_castle_seg7_lights_07059278.a, 2), gsSPVertex(inside_castle_seg7_vertex_07059440, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&inside_castle_seg7_light_07059298, 1), - gsSPLight(&inside_castle_seg7_light_07059290, 2), + gsSPLight(&inside_castle_seg7_lights_07059290.l, 1), + gsSPLight(&inside_castle_seg7_lights_07059290.a, 2), gsSPVertex(inside_castle_seg7_vertex_07059480, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&inside_castle_seg7_light_070592B0, 1), - gsSPLight(&inside_castle_seg7_light_070592A8, 2), + gsSPLight(&inside_castle_seg7_lights_070592A8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070592A8.a, 2), gsSPVertex(inside_castle_seg7_vertex_070594C0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -1376,8 +1344,8 @@ static const Gfx inside_castle_seg7_dl_0705D098[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07059250, 1), - gsSPLight(&inside_castle_seg7_light_07059248, 2), + gsSPLight(&inside_castle_seg7_lights_07059248.l, 1), + gsSPLight(&inside_castle_seg7_lights_07059248.a, 2), gsSPVertex(inside_castle_seg7_vertex_070596F0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1416,8 +1384,8 @@ static const Gfx inside_castle_seg7_dl_0705D098[] = { gsSPVertex(inside_castle_seg7_vertex_07059D80, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 0, 6, 1, 0x0), - gsSPLight(&inside_castle_seg7_light_070592B0, 1), - gsSPLight(&inside_castle_seg7_light_070592A8, 2), + gsSPLight(&inside_castle_seg7_lights_070592A8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070592A8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07059DF0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/castle_inside/areas/3/10/model.inc.c b/levels/castle_inside/areas/3/10/model.inc.c index 2c8a0b7..c8baf2e 100644 --- a/levels/castle_inside/areas/3/10/model.inc.c +++ b/levels/castle_inside/areas/3/10/model.inc.c @@ -1,12 +1,8 @@ -// 0x07066F00 - 0x07066F08 -static const Ambient inside_castle_seg7_light_07066F00 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x07066F08 - 0x07066F18 -static const Light inside_castle_seg7_light_07066F08 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07066F00 - 0x07066F18 +static const Lights1 inside_castle_seg7_lights_07066F00 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07066F18 - 0x07066F58 static const Vtx inside_castle_seg7_vertex_07066F18[] = { @@ -21,8 +17,8 @@ static const Gfx inside_castle_seg7_dl_07066F58[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07066F08, 1), - gsSPLight(&inside_castle_seg7_light_07066F00, 2), + gsSPLight(&inside_castle_seg7_lights_07066F00.l, 1), + gsSPLight(&inside_castle_seg7_lights_07066F00.a, 2), gsSPVertex(inside_castle_seg7_vertex_07066F18, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/castle_inside/areas/3/11/model.inc.c b/levels/castle_inside/areas/3/11/model.inc.c index 2f34ff6..7404b60 100644 --- a/levels/castle_inside/areas/3/11/model.inc.c +++ b/levels/castle_inside/areas/3/11/model.inc.c @@ -1,42 +1,26 @@ -// 0x07067010 - 0x07067018 -static const Ambient inside_castle_seg7_light_07067010 = { - {{0x39, 0x39, 0x39}, 0, {0x39, 0x39, 0x39}, 0} -}; +// 0x07067010 - 0x07067028 +static const Lights1 inside_castle_seg7_lights_07067010 = gdSPDefLights1( + 0x39, 0x39, 0x39, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x07067018 - 0x07067028 -static const Light inside_castle_seg7_light_07067018 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07067028 - 0x07067040 +static const Lights1 inside_castle_seg7_lights_07067028 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07067028 - 0x07067030 -static const Ambient inside_castle_seg7_light_07067028 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; +// 0x07067040 - 0x07067058 +static const Lights1 inside_castle_seg7_lights_07067040 = gdSPDefLights1( + 0x4c, 0x42, 0x38, + 0xcd, 0xb2, 0x97, 0x28, 0x28, 0x28 +); -// 0x07067030 - 0x07067040 -static const Light inside_castle_seg7_light_07067030 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07067040 - 0x07067048 -static const Ambient inside_castle_seg7_light_07067040 = { - {{0x4c, 0x42, 0x38}, 0, {0x4c, 0x42, 0x38}, 0} -}; - -// 0x07067048 - 0x07067058 -static const Light inside_castle_seg7_light_07067048 = { - {{0xcd, 0xb2, 0x97}, 0, {0xcd, 0xb2, 0x97}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07067058 - 0x07067060 -static const Ambient inside_castle_seg7_light_07067058 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x07067060 - 0x07067070 -static const Light inside_castle_seg7_light_07067060 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07067058 - 0x07067070 +static const Lights1 inside_castle_seg7_lights_07067058 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x07067070 - 0x070670F0 static const Vtx inside_castle_seg7_vertex_07067070[] = { @@ -409,8 +393,8 @@ static const Gfx inside_castle_seg7_dl_07068210[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_0900B000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07067018, 1), - gsSPLight(&inside_castle_seg7_light_07067010, 2), + gsSPLight(&inside_castle_seg7_lights_07067010.l, 1), + gsSPLight(&inside_castle_seg7_lights_07067010.a, 2), gsSPVertex(inside_castle_seg7_vertex_07067070, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), gsSP2Triangles( 2, 1, 3, 0x0, 0, 5, 1, 0x0), @@ -424,8 +408,8 @@ static const Gfx inside_castle_seg7_dl_07068288[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07067030, 1), - gsSPLight(&inside_castle_seg7_light_07067028, 2), + gsSPLight(&inside_castle_seg7_lights_07067028.l, 1), + gsSPLight(&inside_castle_seg7_lights_07067028.a, 2), gsSPVertex(inside_castle_seg7_vertex_070670F0, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 8, 0x0), @@ -487,8 +471,8 @@ static const Gfx inside_castle_seg7_dl_070684E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07067048, 1), - gsSPLight(&inside_castle_seg7_light_07067040, 2), + gsSPLight(&inside_castle_seg7_lights_07067040.l, 1), + gsSPLight(&inside_castle_seg7_lights_07067040.a, 2), gsSPVertex(inside_castle_seg7_vertex_070677B0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -544,8 +528,8 @@ static const Gfx inside_castle_seg7_dl_070687A8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09009000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07067030, 1), - gsSPLight(&inside_castle_seg7_light_07067028, 2), + gsSPLight(&inside_castle_seg7_lights_07067028.l, 1), + gsSPLight(&inside_castle_seg7_lights_07067028.a, 2), gsSPVertex(inside_castle_seg7_vertex_070680D0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -556,8 +540,8 @@ static const Gfx inside_castle_seg7_dl_070687A8[] = { // 0x07068820 - 0x07068850 static const Gfx inside_castle_seg7_dl_07068820[] = { - gsSPLight(&inside_castle_seg7_light_07067060, 1), - gsSPLight(&inside_castle_seg7_light_07067058, 2), + gsSPLight(&inside_castle_seg7_lights_07067058.l, 1), + gsSPLight(&inside_castle_seg7_lights_07067058.a, 2), gsSPVertex(inside_castle_seg7_vertex_070681D0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/castle_inside/areas/3/3/model.inc.c b/levels/castle_inside/areas/3/3/model.inc.c index de25e17..9461fca 100644 --- a/levels/castle_inside/areas/3/3/model.inc.c +++ b/levels/castle_inside/areas/3/3/model.inc.c @@ -1,12 +1,8 @@ -// 0x0705E310 - 0x0705E318 -static const Ambient inside_castle_seg7_light_0705E310 = { - {{0x00, 0x5f, 0x5f}, 0, {0x00, 0x5f, 0x5f}, 0} -}; - -// 0x0705E318 - 0x0705E328 -static const Light inside_castle_seg7_light_0705E318 = { - {{0x00, 0xff, 0xff}, 0, {0x00, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0705E310 - 0x0705E328 +static const Lights1 inside_castle_seg7_lights_0705E310 = gdSPDefLights1( + 0x00, 0x5f, 0x5f, + 0x00, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0705E328 - 0x0705E3E8 static const Vtx inside_castle_seg7_vertex_0705E328[] = { @@ -29,8 +25,8 @@ static const Gfx inside_castle_seg7_dl_0705E3E8[] = { gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, texture_castle_light), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0705E318, 1), - gsSPLight(&inside_castle_seg7_light_0705E310, 2), + gsSPLight(&inside_castle_seg7_lights_0705E310.l, 1), + gsSPLight(&inside_castle_seg7_lights_0705E310.a, 2), gsSPVertex(inside_castle_seg7_vertex_0705E328, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/levels/castle_inside/areas/3/4/model.inc.c b/levels/castle_inside/areas/3/4/model.inc.c index 3227994..8dc3f3e 100644 --- a/levels/castle_inside/areas/3/4/model.inc.c +++ b/levels/castle_inside/areas/3/4/model.inc.c @@ -1,52 +1,32 @@ -// 0x0705E4C0 - 0x0705E4C8 -static const Ambient inside_castle_seg7_light_0705E4C0 = { - {{0x1e, 0x35, 0x40}, 0, {0x1e, 0x35, 0x40}, 0} -}; +// 0x0705E4C0 - 0x0705E4D8 +static const Lights1 inside_castle_seg7_lights_0705E4C0 = gdSPDefLights1( + 0x1e, 0x35, 0x40, + 0x52, 0x8e, 0xac, 0x28, 0x28, 0x28 +); -// 0x0705E4C8 - 0x0705E4D8 -static const Light inside_castle_seg7_light_0705E4C8 = { - {{0x52, 0x8e, 0xac}, 0, {0x52, 0x8e, 0xac}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0705E4D8 - 0x0705E4F0 +static const Lights1 inside_castle_seg7_lights_0705E4D8 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0705E4D8 - 0x0705E4E0 -static const Ambient inside_castle_seg7_light_0705E4D8 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; +// 0x0705E4F0 - 0x0705E508 +static const Lights1 inside_castle_seg7_lights_0705E4F0 = gdSPDefLights1( + 0x26, 0x26, 0x26, + 0x66, 0x66, 0x66, 0x28, 0x28, 0x28 +); -// 0x0705E4E0 - 0x0705E4F0 -static const Light inside_castle_seg7_light_0705E4E0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0705E508 - 0x0705E520 +static const Lights1 inside_castle_seg7_lights_0705E508 = gdSPDefLights1( + 0x33, 0x33, 0x33, + 0x88, 0x88, 0x88, 0x28, 0x28, 0x28 +); -// 0x0705E4F0 - 0x0705E4F8 -static const Ambient inside_castle_seg7_light_0705E4F0 = { - {{0x26, 0x26, 0x26}, 0, {0x26, 0x26, 0x26}, 0} -}; - -// 0x0705E4F8 - 0x0705E508 -static const Light inside_castle_seg7_light_0705E4F8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0705E508 - 0x0705E510 -static const Ambient inside_castle_seg7_light_0705E508 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0} -}; - -// 0x0705E510 - 0x0705E520 -static const Light inside_castle_seg7_light_0705E510 = { - {{0x88, 0x88, 0x88}, 0, {0x88, 0x88, 0x88}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0705E520 - 0x0705E528 -static const Ambient inside_castle_seg7_light_0705E520 = { - {{0x38, 0x4c, 0x3c}, 0, {0x38, 0x4c, 0x3c}, 0} -}; - -// 0x0705E528 - 0x0705E538 -static const Light inside_castle_seg7_light_0705E528 = { - {{0x97, 0xcd, 0xa0}, 0, {0x97, 0xcd, 0xa0}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0705E520 - 0x0705E538 +static const Lights1 inside_castle_seg7_lights_0705E520 = gdSPDefLights1( + 0x38, 0x4c, 0x3c, + 0x97, 0xcd, 0xa0, 0x28, 0x28, 0x28 +); // 0x0705E538 - 0x0705E628 static const Vtx inside_castle_seg7_vertex_0705E538[] = { @@ -835,8 +815,8 @@ static const Gfx inside_castle_seg7_dl_07060B58[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0705E4C8, 1), - gsSPLight(&inside_castle_seg7_light_0705E4C0, 2), + gsSPLight(&inside_castle_seg7_lights_0705E4C0.l, 1), + gsSPLight(&inside_castle_seg7_lights_0705E4C0.a, 2), gsSPVertex(inside_castle_seg7_vertex_0705E538, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -849,8 +829,8 @@ static const Gfx inside_castle_seg7_dl_07060B58[] = { gsSPVertex(inside_castle_seg7_vertex_0705E728, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 6, 7, 8, 0x0), - gsSPLight(&inside_castle_seg7_light_0705E4E0, 1), - gsSPLight(&inside_castle_seg7_light_0705E4D8, 2), + gsSPLight(&inside_castle_seg7_lights_0705E4D8.l, 1), + gsSPLight(&inside_castle_seg7_lights_0705E4D8.a, 2), gsSPVertex(inside_castle_seg7_vertex_0705E7B8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -863,12 +843,12 @@ static const Gfx inside_castle_seg7_dl_07060C68[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_0900B000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0705E4F8, 1), - gsSPLight(&inside_castle_seg7_light_0705E4F0, 2), + gsSPLight(&inside_castle_seg7_lights_0705E4F0.l, 1), + gsSPLight(&inside_castle_seg7_lights_0705E4F0.a, 2), gsSPVertex(inside_castle_seg7_vertex_0705E878, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&inside_castle_seg7_light_0705E510, 1), - gsSPLight(&inside_castle_seg7_light_0705E508, 2), + gsSPLight(&inside_castle_seg7_lights_0705E508.l, 1), + gsSPLight(&inside_castle_seg7_lights_0705E508.a, 2), gsSPVertex(inside_castle_seg7_vertex_0705E8B8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -908,8 +888,8 @@ static const Gfx inside_castle_seg7_dl_07060E70[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0705E4E0, 1), - gsSPLight(&inside_castle_seg7_light_0705E4D8, 2), + gsSPLight(&inside_castle_seg7_lights_0705E4D8.l, 1), + gsSPLight(&inside_castle_seg7_lights_0705E4D8.a, 2), gsSPVertex(inside_castle_seg7_vertex_0705EE68, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -924,8 +904,8 @@ static const Gfx inside_castle_seg7_dl_07060EF8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0705E528, 1), - gsSPLight(&inside_castle_seg7_light_0705E520, 2), + gsSPLight(&inside_castle_seg7_lights_0705E520.l, 1), + gsSPLight(&inside_castle_seg7_lights_0705E520.a, 2), gsSPVertex(inside_castle_seg7_vertex_0705EF68, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -979,12 +959,12 @@ static const Gfx inside_castle_seg7_dl_07061188[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09009000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0705E510, 1), - gsSPLight(&inside_castle_seg7_light_0705E508, 2), + gsSPLight(&inside_castle_seg7_lights_0705E508.l, 1), + gsSPLight(&inside_castle_seg7_lights_0705E508.a, 2), gsSPVertex(inside_castle_seg7_vertex_0705F888, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&inside_castle_seg7_light_0705E4E0, 1), - gsSPLight(&inside_castle_seg7_light_0705E4D8, 2), + gsSPLight(&inside_castle_seg7_lights_0705E4D8.l, 1), + gsSPLight(&inside_castle_seg7_lights_0705E4D8.a, 2), gsSPVertex(inside_castle_seg7_vertex_0705F8C8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/levels/castle_inside/areas/3/6/model.inc.c b/levels/castle_inside/areas/3/6/model.inc.c index 7cc8041..469f5fc 100644 --- a/levels/castle_inside/areas/3/6/model.inc.c +++ b/levels/castle_inside/areas/3/6/model.inc.c @@ -1,32 +1,20 @@ -// 0x07061C90 - 0x07061C98 -static const Ambient inside_castle_seg7_light_07061C90 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; +// 0x07061C90 - 0x07061CA8 +static const Lights1 inside_castle_seg7_lights_07061C90 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07061C98 - 0x07061CA8 -static const Light inside_castle_seg7_light_07061C98 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07061CA8 - 0x07061CC0 +static const Lights1 inside_castle_seg7_lights_07061CA8 = gdSPDefLights1( + 0x52, 0x52, 0x52, + 0xdd, 0xdd, 0xdd, 0x28, 0x28, 0x28 +); -// 0x07061CA8 - 0x07061CB0 -static const Ambient inside_castle_seg7_light_07061CA8 = { - {{0x52, 0x52, 0x52}, 0, {0x52, 0x52, 0x52}, 0} -}; - -// 0x07061CB0 - 0x07061CC0 -static const Light inside_castle_seg7_light_07061CB0 = { - {{0xdd, 0xdd, 0xdd}, 0, {0xdd, 0xdd, 0xdd}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07061CC0 - 0x07061CC8 -static const Ambient inside_castle_seg7_light_07061CC0 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x07061CC8 - 0x07061CD8 -static const Light inside_castle_seg7_light_07061CC8 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07061CC0 - 0x07061CD8 +static const Lights1 inside_castle_seg7_lights_07061CC0 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x07061CD8 - 0x07061DC8 static const Vtx inside_castle_seg7_vertex_07061CD8[] = { @@ -767,8 +755,8 @@ static const Gfx inside_castle_seg7_dl_07064078[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07061C98, 1), - gsSPLight(&inside_castle_seg7_light_07061C90, 2), + gsSPLight(&inside_castle_seg7_lights_07061C90.l, 1), + gsSPLight(&inside_castle_seg7_lights_07061C90.a, 2), gsSPVertex(inside_castle_seg7_vertex_07061CD8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -885,8 +873,8 @@ static const Gfx inside_castle_seg7_dl_07064618[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07061CB0, 1), - gsSPLight(&inside_castle_seg7_light_07061CA8, 2), + gsSPLight(&inside_castle_seg7_lights_07061CA8.l, 1), + gsSPLight(&inside_castle_seg7_lights_07061CA8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07062ED8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -899,8 +887,8 @@ static const Gfx inside_castle_seg7_dl_07064618[] = { gsSP1Triangle( 0, 14, 1, 0x0), gsSPVertex(inside_castle_seg7_vertex_070630B8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&inside_castle_seg7_light_07061C98, 1), - gsSPLight(&inside_castle_seg7_light_07061C90, 2), + gsSPLight(&inside_castle_seg7_lights_07061C90.l, 1), + gsSPLight(&inside_castle_seg7_lights_07061C90.a, 2), gsSPVertex(inside_castle_seg7_vertex_070630F8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -998,8 +986,8 @@ static const Gfx inside_castle_seg7_dl_07064A88[] = { // 0x07064B28 - 0x07064B78 static const Gfx inside_castle_seg7_dl_07064B28[] = { - gsSPLight(&inside_castle_seg7_light_07061CC8, 1), - gsSPLight(&inside_castle_seg7_light_07061CC0, 2), + gsSPLight(&inside_castle_seg7_lights_07061CC0.l, 1), + gsSPLight(&inside_castle_seg7_lights_07061CC0.a, 2), gsSPVertex(inside_castle_seg7_vertex_07063FF8, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 5, 3, 0x0, 0, 4, 6, 0x0), diff --git a/levels/castle_inside/areas/3/8/model.inc.c b/levels/castle_inside/areas/3/8/model.inc.c index f1eb52b..e74bc5d 100644 --- a/levels/castle_inside/areas/3/8/model.inc.c +++ b/levels/castle_inside/areas/3/8/model.inc.c @@ -1,12 +1,8 @@ -// 0x07064DC8 - 0x07064DD0 -static const Ambient inside_castle_seg7_light_07064DC8 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x07064DD0 - 0x07064DE0 -static const Light inside_castle_seg7_light_07064DD0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07064DC8 - 0x07064DE0 +static const Lights1 inside_castle_seg7_lights_07064DC8 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07064DE0 - 0x07064EE0 static const Vtx inside_castle_seg7_vertex_07064DE0[] = { @@ -493,8 +489,8 @@ static const Gfx inside_castle_seg7_dl_07066560[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_0900B000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07064DD0, 1), - gsSPLight(&inside_castle_seg7_light_07064DC8, 2), + gsSPLight(&inside_castle_seg7_lights_07064DC8.l, 1), + gsSPLight(&inside_castle_seg7_lights_07064DC8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07064DE0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 5, 4, 0x0), diff --git a/levels/castle_inside/areas/3/macro.inc.c b/levels/castle_inside/areas/3/macro.inc.c index 5a3e828..ab8212f 100644 --- a/levels/castle_inside/areas/3/macro.inc.c +++ b/levels/castle_inside/areas/3/macro.inc.c @@ -1,6 +1,6 @@ // 0x070777EC - 0x0707782A const MacroObject inside_castle_seg7_area_3_macro_objs[] = { - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_sign_on_wall, /*yaw*/ 0, /*pos*/ 6400, -1178, -1270, /*behParam*/ 77), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_sign_on_wall, /*yaw*/ 0, /*pos*/ 6400, -1178, -1270, /*behParam*/ DIALOG_077), MACRO_OBJECT(/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ 2130, -2508, -946), MACRO_OBJECT(/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ 2130, -2508, -92), MACRO_OBJECT(/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ 3515, -2508, -946), diff --git a/levels/castle_inside/clock_hour_hand/model.inc.c b/levels/castle_inside/clock_hour_hand/model.inc.c index adf51e3..d812d9b 100644 --- a/levels/castle_inside/clock_hour_hand/model.inc.c +++ b/levels/castle_inside/clock_hour_hand/model.inc.c @@ -1,22 +1,14 @@ -// 0x070589C0 - 0x070589C8 -static const Ambient inside_castle_seg7_light_070589C0 = { - {{0x3f, 0x33, 0x19}, 0, {0x3f, 0x33, 0x19}, 0} -}; +// 0x070589C0 - 0x070589D8 +static const Lights1 inside_castle_seg7_lights_070589C0 = gdSPDefLights1( + 0x3f, 0x33, 0x19, + 0xff, 0xcc, 0x65, 0x28, 0x28, 0x28 +); -// 0x070589C8 - 0x070589D8 -static const Light inside_castle_seg7_light_070589C8 = { - {{0xff, 0xcc, 0x65}, 0, {0xff, 0xcc, 0x65}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070589D8 - 0x070589E0 -static const Ambient inside_castle_seg7_light_070589D8 = { - {{0x3f, 0x00, 0x00}, 0, {0x3f, 0x00, 0x00}, 0} -}; - -// 0x070589E0 - 0x070589F0 -static const Light inside_castle_seg7_light_070589E0 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070589D8 - 0x070589F0 +static const Lights1 inside_castle_seg7_lights_070589D8 = gdSPDefLights1( + 0x3f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x070589F0 - 0x07058AF0 static const Vtx inside_castle_seg7_vertex_070589F0[] = { @@ -144,8 +136,8 @@ static const Gfx inside_castle_seg7_dl_07058FC0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_070589C8, 1), - gsSPLight(&inside_castle_seg7_light_070589C0, 2), + gsSPLight(&inside_castle_seg7_lights_070589C0.l, 1), + gsSPLight(&inside_castle_seg7_lights_070589C0.a, 2), gsSPVertex(inside_castle_seg7_vertex_070589F0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 5, 4, 6, 0x0), @@ -167,8 +159,8 @@ static const Gfx inside_castle_seg7_dl_07058FC0[] = { gsSPVertex(inside_castle_seg7_vertex_07058DB0, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 0, 6, 1, 0x0, 7, 8, 9, 0x0), - gsSPLight(&inside_castle_seg7_light_070589E0, 1), - gsSPLight(&inside_castle_seg7_light_070589D8, 2), + gsSPLight(&inside_castle_seg7_lights_070589D8.l, 1), + gsSPLight(&inside_castle_seg7_lights_070589D8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07058E50, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 3, 0x0, 3, 7, 4, 0x0), diff --git a/levels/castle_inside/clock_minute_hand/model.inc.c b/levels/castle_inside/clock_minute_hand/model.inc.c index 5523ec7..b9cb7ee 100644 --- a/levels/castle_inside/clock_minute_hand/model.inc.c +++ b/levels/castle_inside/clock_minute_hand/model.inc.c @@ -1,22 +1,14 @@ -// 0x07057FD8 - 0x07057FE0 -static const Ambient inside_castle_seg7_light_07057FD8 = { - {{0x3f, 0x33, 0x19}, 0, {0x3f, 0x33, 0x19}, 0} -}; +// 0x07057FD8 - 0x07057FF0 +static const Lights1 inside_castle_seg7_lights_07057FD8 = gdSPDefLights1( + 0x3f, 0x33, 0x19, + 0xff, 0xcc, 0x65, 0x28, 0x28, 0x28 +); -// 0x07057FE0 - 0x07057FF0 -static const Light inside_castle_seg7_light_07057FE0 = { - {{0xff, 0xcc, 0x65}, 0, {0xff, 0xcc, 0x65}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07057FF0 - 0x07057FF8 -static const Ambient inside_castle_seg7_light_07057FF0 = { - {{0x3f, 0x00, 0x00}, 0, {0x3f, 0x00, 0x00}, 0} -}; - -// 0x07057FF8 - 0x07058008 -static const Light inside_castle_seg7_light_07057FF8 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07057FF0 - 0x07058008 +static const Lights1 inside_castle_seg7_lights_07057FF0 = gdSPDefLights1( + 0x3f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x07058008 - 0x07058108 static const Vtx inside_castle_seg7_vertex_07058008[] = { @@ -168,8 +160,8 @@ static const Gfx inside_castle_seg7_dl_07058718[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07057FE0, 1), - gsSPLight(&inside_castle_seg7_light_07057FD8, 2), + gsSPLight(&inside_castle_seg7_lights_07057FD8.l, 1), + gsSPLight(&inside_castle_seg7_lights_07057FD8.a, 2), gsSPVertex(inside_castle_seg7_vertex_07058008, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 4, 0x0, 6, 4, 3, 0x0), @@ -199,8 +191,8 @@ static const Gfx inside_castle_seg7_dl_07058718[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 0, 10, 1, 0x0, 7, 11, 8, 0x0), - gsSPLight(&inside_castle_seg7_light_07057FF8, 1), - gsSPLight(&inside_castle_seg7_light_07057FF0, 2), + gsSPLight(&inside_castle_seg7_lights_07057FF0.l, 1), + gsSPLight(&inside_castle_seg7_lights_07057FF0.a, 2), gsSPVertex(inside_castle_seg7_vertex_070585A8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/castle_inside/header.h b/levels/castle_inside/header.h index 83b45b5..7ad2a7b 100644 --- a/levels/castle_inside/header.h +++ b/levels/castle_inside/header.h @@ -151,6 +151,6 @@ extern const struct MovtexQuadCollection inside_castle_movtex_green_room_water[] extern const struct MovtexQuadCollection inside_castle_movtex_moat_water[]; // script -extern const LevelScript level_castle_entry[]; +extern const LevelScript level_castle_inside_entry[]; #endif diff --git a/levels/castle_inside/leveldata.c b/levels/castle_inside/leveldata.c index e6a0b91..7052031 100644 --- a/levels/castle_inside/leveldata.c +++ b/levels/castle_inside/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/castle_inside/texture.inc.c" diff --git a/levels/castle_inside/painting.inc.c b/levels/castle_inside/painting.inc.c index 0925189..94209ae 100644 --- a/levels/castle_inside/painting.inc.c +++ b/levels/castle_inside/painting.inc.c @@ -1,14 +1,10 @@ #include "game/paintings.h" -// 0x07021800 - 0x07021808 -static const Ambient inside_castle_seg7_light_07021800 = { - {{0x50, 0x50, 0x50}, 0, {0x50, 0x50, 0x50}, 0} -}; - -// 0x07021808 - 0x07021818 -static const Light inside_castle_seg7_light_07021808 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x32, 0x32, 0x32}, 0} -}; +// 0x07021800 - 0x07021818 +static const Lights1 inside_castle_seg7_lights_07021800 = gdSPDefLights1( + 0x50, 0x50, 0x50, + 0xff, 0xff, 0xff, 0x32, 0x32, 0x32 +); // 0x07021818 - 0x07021898 static const Vtx inside_castle_seg7_vertex_07021818[] = { @@ -75,8 +71,8 @@ static const Gfx inside_castle_seg7_dl_07021A48[] = { gsDPPipeSync(), gsSPSetGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB), - gsSPLight(&inside_castle_seg7_light_07021808, 1), - gsSPLight(&inside_castle_seg7_light_07021800, 2), + gsSPLight(&inside_castle_seg7_lights_07021800.l, 1), + gsSPLight(&inside_castle_seg7_lights_07021800.a, 2), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 6, G_TX_NOLOD), @@ -562,24 +558,17 @@ static const PaintingData *const inside_castle_seg7_painting_data_07022518[] = { UNUSED static const u64 castle_inside_unused_0 = 0x0; -// 0x07022528 - 0x07022530 -static const Ambient inside_castle_seg7_light_07022528 = { - {{0x50, 0x50, 0x50}, 0, {0x50, 0x50, 0x50}, 0} -}; +// 0x07022528 - 0x07022540 +static const Lights1 inside_castle_seg7_lights_07022528 = gdSPDefLights1( + 0x50, 0x50, 0x50, + 0xff, 0xff, 0xff, 0x32, 0x32, 0x32 +); -// 0x07022530 - 0x07022540 -static const Light inside_castle_seg7_light_07022530 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x32, 0x32, 0x32}, 0} -}; - -// 0x07022540 - 0x07022548 -static const Ambient inside_castle_seg7_light_07022540 = { - {{0x40, 0x40, 0x80}, 0, {0x40, 0x40, 0x80}, 0} -}; - -// 0x07022548 - 0x07022558 -static const Light inside_castle_seg7_light_07022548 = { - {{0x64, 0x64, 0xff}, 0, {0x64, 0x64, 0xfa}, 0, {0x28, 0x28, 0x28}, 0} +// 0x07022540 - 0x07022558 +// No gdSPDefLights1 macro defined because of odd different light value (0xff and 0xfa) +static const Lights1 inside_castle_seg7_lights_07022540 = { + {{ {0x40, 0x40, 0x80}, 0, {0x40, 0x40, 0x80}, 0} }, + {{{ {0x64, 0x64, 0xff}, 0, {0x64, 0x64, 0xfa}, 0, {0x28, 0x28, 0x28},0} }} }; // 0x07022558 - 0x07022598 @@ -603,8 +592,8 @@ static const Vtx inside_castle_seg7_vertex_07022598[] = { const Gfx inside_castle_seg7_dl_070225D8[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB), - gsSPLight(&inside_castle_seg7_light_07022530, 1), - gsSPLight(&inside_castle_seg7_light_07022528, 2), + gsSPLight(&inside_castle_seg7_lights_07022528.l, 1), + gsSPLight(&inside_castle_seg7_lights_07022528.a, 2), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsSPVertex(inside_castle_seg7_vertex_07022558, 4, 0), gsSPEndDisplayList(), @@ -1288,8 +1277,8 @@ const Gfx inside_castle_seg7_dl_07023520[] = { // 0x07023580 - 0x070235B8 static const Gfx inside_castle_seg7_painting_dl_07023580[] = { gsDPPipeSync(), - gsSPLight(&inside_castle_seg7_light_07022548, 1), - gsSPLight(&inside_castle_seg7_light_07022540, 2), + gsSPLight(&inside_castle_seg7_lights_07022540.l, 1), + gsSPLight(&inside_castle_seg7_lights_07022540.a, 2), gsSPVertex(inside_castle_seg7_vertex_07022598, 4, 0), gsSP1Triangle( 0, 1, 2, 0x0), gsSP1Triangle( 0, 2, 3, 0x0), diff --git a/levels/castle_inside/script.c b/levels/castle_inside/script.c index 7d9ad5f..8a493f8 100644 --- a/levels/castle_inside/script.c +++ b/levels/castle_inside/script.c @@ -3,6 +3,7 @@ #include "behavior_data.h" #include "model_ids.h" #include "seq_ids.h" +#include "dialog_ids.h" #include "segment_symbols.h" #include "level_commands.h" @@ -16,38 +17,38 @@ #include "levels/castle_inside/header.h" static const LevelScript script_func_local_1[] = { - WARP_NODE(/*id*/ 0x00, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x00, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x01, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x01, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x02, /*destLevel*/ 0x1A, /*destArea*/ 0x01, /*destNode*/ 0x01, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x00, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x00, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x01, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x01, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x02, /*destLevel*/ LEVEL_CASTLE_COURTYARD, /*destArea*/ 0x01, /*destNode*/ 0x01, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_CASTLE_STAR_DOOR_8_STARS, /*pos*/ -2706, 512, -1409, /*angle*/ 0, 45, 0, /*behParam*/ 0x08000000, /*beh*/ bhvStarDoor), OBJECT(/*model*/ MODEL_CASTLE_STAR_DOOR_8_STARS, /*pos*/ -2598, 512, -1517, /*angle*/ 0, 225, 0, /*behParam*/ 0x08000000, /*beh*/ bhvStarDoor), OBJECT(/*model*/ MODEL_CASTLE_KEY_DOOR, /*pos*/ -1100, 512, -1074, /*angle*/ 0, 0, 0, /*behParam*/ 0x01030000, /*beh*/ bhvDoorWarp), OBJECT(/*model*/ MODEL_CASTLE_KEY_DOOR, /*pos*/ -946, 512, -1074, /*angle*/ 0, 180, 0, /*behParam*/ 0x01040000, /*beh*/ bhvDoorWarp), OBJECT(/*model*/ MODEL_CASTLE_KEY_DOOR, /*pos*/ -1100, -1074, 922, /*angle*/ 0, 0, 0, /*behParam*/ 0x02050000, /*beh*/ bhvDoorWarp), OBJECT(/*model*/ MODEL_CASTLE_KEY_DOOR, /*pos*/ -946, -1074, 922, /*angle*/ 0, 180, 0, /*behParam*/ 0x02060000, /*beh*/ bhvDoorWarp), - WARP_NODE(/*id*/ 0x03, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x00, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x04, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x01, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x05, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x00, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x06, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x01, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x00, /*destLevel*/ 0x09, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x01, /*destLevel*/ 0x09, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x02, /*destLevel*/ 0x09, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x03, /*destLevel*/ 0x05, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x04, /*destLevel*/ 0x05, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x05, /*destLevel*/ 0x05, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x06, /*destLevel*/ 0x18, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x07, /*destLevel*/ 0x18, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x08, /*destLevel*/ 0x18, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x09, /*destLevel*/ 0x0C, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x0C, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x0C, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x03, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x00, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x04, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x01, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x05, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x00, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x06, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x01, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x00, /*destLevel*/ LEVEL_BOB, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x01, /*destLevel*/ LEVEL_BOB, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x02, /*destLevel*/ LEVEL_BOB, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x03, /*destLevel*/ LEVEL_CCM, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x04, /*destLevel*/ LEVEL_CCM, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x05, /*destLevel*/ LEVEL_CCM, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x06, /*destLevel*/ LEVEL_WF, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x07, /*destLevel*/ LEVEL_WF, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x08, /*destLevel*/ LEVEL_WF, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x09, /*destLevel*/ LEVEL_JRB, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_JRB, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_JRB, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2013, 768, -2014, /*angle*/ 0, 0, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x1B, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_PSS, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -5513, 512, -4324, /*angle*/ 0, 0, 0, /*behParam*/ 0x300B0000, /*beh*/ bhvWarp), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x11, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_BITDW, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1963, 819, 1280, /*angle*/ 0, 0, 0, /*behParam*/ 0x050C0000, /*beh*/ bhvWarp), - WARP_NODE(/*id*/ 0x0C, /*destLevel*/ 0x14, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF2, /*destLevel*/ 0x1D, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_SA, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF2, /*destLevel*/ LEVEL_TOTWC, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1024, 512, -650, /*angle*/ 0, 0, 0, /*behParam*/ 0x001E0000, /*beh*/ bhvWarps60), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1024, -50, 717, /*angle*/ 0, 180, 0, /*behParam*/ 0x001F0000, /*beh*/ bhvWarps60), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1024, 900, 717, /*angle*/ 0, 180, 0, /*behParam*/ 0x00200000, /*beh*/ bhvWarps64), @@ -59,68 +60,68 @@ static const LevelScript script_func_local_1[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1024, 900, 717, /*angle*/ 0, 0, 0, /*behParam*/ 0x00260000, /*beh*/ bhvWarps88), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2816, 1200, -256, /*angle*/ 0, 90, 0, /*behParam*/ 0x00270000, /*beh*/ bhvWarps88), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2816, 1200, -256, /*angle*/ 0, 270, 0, /*behParam*/ 0x00280000, /*beh*/ bhvWarps70), - WARP_NODE(/*id*/ 0x1E, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x1E, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x1F, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x1F, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x20, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x20, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x21, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x21, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x22, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x22, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x23, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x23, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x24, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x24, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x25, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x25, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x26, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x26, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x27, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x27, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x28, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x28, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x1E, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x1E, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x1F, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x1F, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x20, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x20, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x21, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x21, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x22, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x22, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x23, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x23, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x24, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x24, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x25, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x25, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x26, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x26, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x27, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x27, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x28, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x28, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -5422, 717, -461, /*angle*/ 0, 270, 0, /*behParam*/ 0x00320000, /*beh*/ bhvWarps7C), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2304, 0, -4552, /*angle*/ 0, 180, 0, /*behParam*/ 0x00330000, /*beh*/ bhvWarps7C), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 256, 102, -4706, /*angle*/ 0, 180, 0, /*behParam*/ 0x00340000, /*beh*/ bhvWarps7C), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 4501, 717, -230, /*angle*/ 0, 90, 0, /*behParam*/ 0x00350000, /*beh*/ bhvWarps7C), - WARP_NODE(/*id*/ 0x32, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x33, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x34, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x35, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x32, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x33, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x34, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x35, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -5422, 717, -461, /*angle*/ 0, 270, 0, /*behParam*/ 0x00640000, /*beh*/ bhvWarps80), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2304, 0, -4552, /*angle*/ 0, 180, 0, /*behParam*/ 0x00650000, /*beh*/ bhvWarps80), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 256, 102, -4706, /*angle*/ 0, 180, 0, /*behParam*/ 0x00660000, /*beh*/ bhvWarps80), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 4501, 717, -230, /*angle*/ 0, 90, 0, /*behParam*/ 0x00670000, /*beh*/ bhvWarps80), - WARP_NODE(/*id*/ 0x64, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x65, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x66, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x67, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x64, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x65, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x66, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x67, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT), RETURN(), }; static const LevelScript script_func_local_2[] = { OBJECT(/*model*/ MODEL_CASTLE_KEY_DOOR, /*pos*/ -1100, 512, 3021, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvDoorWarp), OBJECT(/*model*/ MODEL_CASTLE_KEY_DOOR, /*pos*/ -946, 512, 3021, /*angle*/ 0, 180, 0, /*behParam*/ 0x00010000, /*beh*/ bhvDoorWarp), - WARP_NODE(/*id*/ 0x00, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x03, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x01, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x04, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x00, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x03, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x01, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x04, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_CASTLE_STAR_DOOR_50_STARS, /*pos*/ -281, 2253, 4762, /*angle*/ 0, 0, 0, /*behParam*/ 0x32000000, /*beh*/ bhvStarDoor), OBJECT(/*model*/ MODEL_CASTLE_STAR_DOOR_50_STARS, /*pos*/ -127, 2253, 4762, /*angle*/ 0, 180, 0, /*behParam*/ 0x32000000, /*beh*/ bhvStarDoor), OBJECT(/*model*/ MODEL_CASTLE_STAR_DOOR_70_STARS, /*pos*/ -281, 3174, 3772, /*angle*/ 0, 0, 0, /*behParam*/ 0x46000000, /*beh*/ bhvStarDoor), OBJECT(/*model*/ MODEL_CASTLE_STAR_DOOR_70_STARS, /*pos*/ -127, 3174, 3772, /*angle*/ 0, 180, 0, /*behParam*/ 0x46000000, /*beh*/ bhvStarDoor), - PAINTING_WARP_NODE(/*id*/ 0x18, /*destLevel*/ 0x0B, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x19, /*destLevel*/ 0x0B, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x1A, /*destLevel*/ 0x0B, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x1B, /*destLevel*/ 0x0D, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x1C, /*destLevel*/ 0x0D, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x1D, /*destLevel*/ 0x0D, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x1E, /*destLevel*/ 0x24, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x1F, /*destLevel*/ 0x24, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x20, /*destLevel*/ 0x24, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x21, /*destLevel*/ 0x0E, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x22, /*destLevel*/ 0x0E, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x23, /*destLevel*/ 0x0E, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x24, /*destLevel*/ 0x0A, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x25, /*destLevel*/ 0x0A, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x26, /*destLevel*/ 0x0A, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x27, /*destLevel*/ 0x0D, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x28, /*destLevel*/ 0x0D, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x29, /*destLevel*/ 0x0D, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x2A, /*destLevel*/ 0x0F, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x18, /*destLevel*/ LEVEL_WDW, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x19, /*destLevel*/ LEVEL_WDW, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x1A, /*destLevel*/ LEVEL_WDW, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x1B, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x1C, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x1D, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x1E, /*destLevel*/ LEVEL_TTM, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x1F, /*destLevel*/ LEVEL_TTM, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x20, /*destLevel*/ LEVEL_TTM, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x21, /*destLevel*/ LEVEL_TTC, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x22, /*destLevel*/ LEVEL_TTC, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x23, /*destLevel*/ LEVEL_TTC, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x24, /*destLevel*/ LEVEL_SL, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x25, /*destLevel*/ LEVEL_SL, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x26, /*destLevel*/ LEVEL_SL, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x27, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x28, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x29, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x2A, /*destLevel*/ LEVEL_RR, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 3002, 2816, 5886, /*angle*/ 0, 0, 0, /*behParam*/ 0x0F0A0000, /*beh*/ bhvWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x1F, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_WMOTR, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -230, 4813, -3352, /*angle*/ 0, 0, 0, /*behParam*/ 0x0F0B0000, /*beh*/ bhvWarp), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x15, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_BITS, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -659, 1613, -350, /*angle*/ 0, 180, 0, /*behParam*/ 0x00320000, /*beh*/ bhvWarps7C), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -4693, 2157, 1828, /*angle*/ 0, 270, 0, /*behParam*/ 0x00330000, /*beh*/ bhvWarps88), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -675, 1400, 3870, /*angle*/ 0, 0, 0, /*behParam*/ 0x00340000, /*beh*/ bhvWarps7C), @@ -129,14 +130,14 @@ static const LevelScript script_func_local_2[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ -4693, 2157, 1828, /*angle*/ 0, 270, 0, /*behParam*/ 0x00370000, /*beh*/ bhvWarps88), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 3002, 2816, 5886, /*angle*/ 0, 90, 0, /*behParam*/ 0x00380000, /*beh*/ bhvWarps8C), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3412, 2816, 5886, /*angle*/ 0, 270, 0, /*behParam*/ 0x003A0000, /*beh*/ bhvWarps8C), - WARP_NODE(/*id*/ 0x32, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x33, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x34, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x35, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x36, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x36, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x37, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x37, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x38, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x38, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x3A, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x3A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x32, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x33, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x34, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x35, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x36, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x36, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x37, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x37, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x38, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x38, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x3A, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x3A, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -659, 1613, -350, /*angle*/ 0, 180, 0, /*behParam*/ 0x00640000, /*beh*/ bhvWarps80), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -4693, 2157, 1828, /*angle*/ 0, 270, 0, /*behParam*/ 0x00650000, /*beh*/ bhvWarps70), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -675, 1400, 3870, /*angle*/ 0, 0, 0, /*behParam*/ 0x00660000, /*beh*/ bhvWarps80), @@ -146,58 +147,58 @@ static const LevelScript script_func_local_2[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ -230, 4813, -3352, /*angle*/ 0, 180, 0, /*behParam*/ 0x006B0000, /*beh*/ bhvWarps90), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3412, 2816, 5886, /*angle*/ 0, 270, 0, /*behParam*/ 0x006C0000, /*beh*/ bhvWarps90), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 3002, 2816, 5886, /*angle*/ 0, 90, 0, /*behParam*/ 0x006D0000, /*beh*/ bhvWarps90), - WARP_NODE(/*id*/ 0x64, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x65, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x66, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x67, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x68, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x68, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x69, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x69, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x6B, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x6B, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x6C, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x6C, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x6D, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x6D, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x64, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x65, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x66, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x67, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x68, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x68, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x69, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x69, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x6B, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x6B, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x6C, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x6C, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x6D, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x6D, /*flags*/ WARP_NO_CHECKPOINT), RETURN(), }; static const LevelScript script_func_local_3[] = { OBJECT(/*model*/ MODEL_CASTLE_KEY_DOOR, /*pos*/ -1100, -1074, 922, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvDoorWarp), OBJECT(/*model*/ MODEL_CASTLE_KEY_DOOR, /*pos*/ -946, -1074, 922, /*angle*/ 0, 180, 0, /*behParam*/ 0x00010000, /*beh*/ bhvDoorWarp), - WARP_NODE(/*id*/ 0x00, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x05, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x01, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x06, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x02, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x02, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x00, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x05, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x01, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x06, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x02, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x02, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_CASTLE_STAR_DOOR_30_STARS, /*pos*/ 307, -1074, 2074, /*angle*/ 0, 90, 0, /*behParam*/ 0x1E000000, /*beh*/ bhvStarDoor), OBJECT(/*model*/ MODEL_CASTLE_STAR_DOOR_30_STARS, /*pos*/ 307, -1074, 1920, /*angle*/ 0, 270, 0, /*behParam*/ 0x1E000000, /*beh*/ bhvStarDoor), - PAINTING_WARP_NODE(/*id*/ 0x0C, /*destLevel*/ 0x16, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x0D, /*destLevel*/ 0x16, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x0E, /*destLevel*/ 0x16, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x0F, /*destLevel*/ 0x08, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x10, /*destLevel*/ 0x08, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x11, /*destLevel*/ 0x08, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x2A, /*destLevel*/ 0x07, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x15, /*destLevel*/ 0x17, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x16, /*destLevel*/ 0x17, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x17, /*destLevel*/ 0x17, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_LLL, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x0D, /*destLevel*/ LEVEL_LLL, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x0E, /*destLevel*/ LEVEL_LLL, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x0F, /*destLevel*/ LEVEL_SSL, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x10, /*destLevel*/ LEVEL_SSL, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x11, /*destLevel*/ LEVEL_SSL, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x2A, /*destLevel*/ LEVEL_HMC, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x15, /*destLevel*/ LEVEL_DDD, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x16, /*destLevel*/ LEVEL_DDD, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x17, /*destLevel*/ LEVEL_DDD, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 4147, -1280, 1997, /*angle*/ 0, 0, 0, /*behParam*/ 0x0F180000, /*beh*/ bhvWarp), - WARP_NODE(/*id*/ 0x18, /*destLevel*/ 0x13, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x18, /*destLevel*/ LEVEL_BITFS, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1382, -819, -4150, /*angle*/ 0, 180, 0, /*behParam*/ 0x00320000, /*beh*/ bhvWarps7C), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2918, -870, -875, /*angle*/ 0, 0, 0, /*behParam*/ 0x00330000, /*beh*/ bhvWarps7C), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2483, -1688, -2662, /*angle*/ 0, 270, 0, /*behParam*/ 0x00340000, /*beh*/ bhvWarps8C), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2381, -500, 2011, /*angle*/ 0, 90, 0, /*behParam*/ 0x00350000, /*beh*/ bhvWarps88), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 4147, -1100, 1997, /*angle*/ 0, 90, 0, /*behParam*/ 0x00360000, /*beh*/ bhvWarps8C), - WARP_NODE(/*id*/ 0x32, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x33, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x34, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x35, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x36, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x36, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x32, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x33, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x34, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x35, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x36, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x36, /*flags*/ WARP_NO_CHECKPOINT), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1382, -819, -4150, /*angle*/ 0, 180, 0, /*behParam*/ 0x00640000, /*beh*/ bhvWarps80), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2918, -870, -875, /*angle*/ 0, 0, 0, /*behParam*/ 0x00650000, /*beh*/ bhvWarps80), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2483, -1688, -2662, /*angle*/ 0, 270, 0, /*behParam*/ 0x00660000, /*beh*/ bhvWarps90), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2381, -500, 2011, /*angle*/ 0, 90, 0, /*behParam*/ 0x00670000, /*beh*/ bhvWarps70), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 4147, -1100, 1997, /*angle*/ 0, 90, 0, /*behParam*/ 0x00680000, /*beh*/ bhvWarps90), - WARP_NODE(/*id*/ 0x64, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x65, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x66, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x67, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x68, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x68, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x64, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x65, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x66, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x67, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x68, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x68, /*flags*/ WARP_NO_CHECKPOINT), RETURN(), }; @@ -218,7 +219,7 @@ static const LevelScript script_func_local_4[] = { RETURN(), }; -const LevelScript level_castle_entry[] = { +const LevelScript level_castle_inside_entry[] = { INIT_LEVEL(), LOAD_MIO0( /*seg*/ 0x07, _castle_inside_segment_7SegmentRomStart, _castle_inside_segment_7SegmentRomEnd), LOAD_MIO0_TEXTURE(/*seg*/ 0x09, _inside_mio0SegmentRomStart, _inside_mio0SegmentRomEnd), @@ -256,11 +257,11 @@ const LevelScript level_castle_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ 3748, 507, 773, /*angle*/ 0, -45, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTankFishGroup), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2778, 507, 1255, /*angle*/ 0, -90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTankFishGroup), OBJECT(/*model*/ MODEL_BOO_CASTLE, /*pos*/ -1000, 50, -3500, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBooInCastle), - OBJECT(/*model*/ MODEL_TOAD, /*pos*/ -1671, 0, 1313, /*angle*/ 0, 83, 0, /*behParam*/ 0x85000000, /*beh*/ bhvToadMessage), - OBJECT(/*model*/ MODEL_TOAD, /*pos*/ 1524, 307, 458, /*angle*/ 0, 110, 0, /*behParam*/ 0x86000000, /*beh*/ bhvToadMessage), - OBJECT(/*model*/ MODEL_TOAD, /*pos*/ 596, -306, -2637, /*angle*/ 0, 152, 0, /*behParam*/ 0x87000000, /*beh*/ bhvToadMessage), + OBJECT(/*model*/ MODEL_TOAD, /*pos*/ -1671, 0, 1313, /*angle*/ 0, 83, 0, /*behParam*/ DIALOG_133 << 24, /*beh*/ bhvToadMessage), + OBJECT(/*model*/ MODEL_TOAD, /*pos*/ 1524, 307, 458, /*angle*/ 0, 110, 0, /*behParam*/ DIALOG_134 << 24, /*beh*/ bhvToadMessage), + OBJECT(/*model*/ MODEL_TOAD, /*pos*/ 596, -306, -2637, /*angle*/ 0, 152, 0, /*behParam*/ DIALOG_135 << 24, /*beh*/ bhvToadMessage), JUMP_LINK(script_func_local_1), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x03, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x03, /*flags*/ WARP_NO_CHECKPOINT), TERRAIN(/*terrainData*/ inside_castle_seg7_area_1_collision), ROOMS(/*surfaceRooms*/ inside_castle_seg7_area_1_rooms), MACRO_OBJECTS(/*objList*/ inside_castle_seg7_area_1_macro_objs), @@ -273,11 +274,11 @@ const LevelScript level_castle_entry[] = { OBJECT(/*model*/ MODEL_CASTLE_CLOCK_HOUR_HAND, /*pos*/ -205, 2918, 7222, /*angle*/ 0, 180, 0, /*behParam*/ 0x00000000, /*beh*/ bhvClockHourHand), OBJECT(/*model*/ MODEL_CASTLE_CLOCK_PENDULUM, /*pos*/ -205, 2611, 7140, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvDecorativePendulum), OBJECT(/*model*/ MODEL_LAKITU, /*pos*/ 4231, 1408, 1601, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvCameraLakitu), - OBJECT(/*model*/ MODEL_TOAD, /*pos*/ -977, 1203, 2569, /*angle*/ 0, 0, 0, /*behParam*/ 0x4C000000, /*beh*/ bhvToadMessage), - OBJECT(/*model*/ MODEL_TOAD, /*pos*/ -1584, 2253, 7157, /*angle*/ 0, 136, 0, /*behParam*/ 0x53000000, /*beh*/ bhvToadMessage), - OBJECT(/*model*/ MODEL_TOAD, /*pos*/ 837, 1203, 3020, /*angle*/ 0, 180, 0, /*behParam*/ 0x89000000, /*beh*/ bhvToadMessage), + OBJECT(/*model*/ MODEL_TOAD, /*pos*/ -977, 1203, 2569, /*angle*/ 0, 0, 0, /*behParam*/ DIALOG_076 << 24, /*beh*/ bhvToadMessage), + OBJECT(/*model*/ MODEL_TOAD, /*pos*/ -1584, 2253, 7157, /*angle*/ 0, 136, 0, /*behParam*/ DIALOG_083 << 24, /*beh*/ bhvToadMessage), + OBJECT(/*model*/ MODEL_TOAD, /*pos*/ 837, 1203, 3020, /*angle*/ 0, 180, 0, /*behParam*/ DIALOG_137 << 24, /*beh*/ bhvToadMessage), JUMP_LINK(script_func_local_2), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x03, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x03, /*flags*/ WARP_NO_CHECKPOINT), TERRAIN(/*terrainData*/ inside_castle_seg7_area_2_collision), ROOMS(/*surfaceRooms*/ inside_castle_seg7_area_2_rooms), MACRO_OBJECTS(/*objList*/ inside_castle_seg7_area_2_macro_objs), @@ -291,11 +292,11 @@ const LevelScript level_castle_entry[] = { OBJECT(/*model*/ MODEL_CASTLE_WATER_LEVEL_PILLAR, /*pos*/ 7066, -1178, -205, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvWaterLevelPillar), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvDddWarp), OBJECT(/*model*/ MODEL_MIPS, /*pos*/ -1509, -1177, -1564, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvMips), - OBJECT(/*model*/ MODEL_TOAD, /*pos*/ 1787, -1381, -1957, /*angle*/ 0, 126, 0, /*behParam*/ 0x52000000, /*beh*/ bhvToadMessage), - OBJECT(/*model*/ MODEL_TOAD, /*pos*/ -4048, -1381, -1334, /*angle*/ 0, 30, 0, /*behParam*/ 0x88000000, /*beh*/ bhvToadMessage), + OBJECT(/*model*/ MODEL_TOAD, /*pos*/ 1787, -1381, -1957, /*angle*/ 0, 126, 0, /*behParam*/ DIALOG_082 << 24, /*beh*/ bhvToadMessage), + OBJECT(/*model*/ MODEL_TOAD, /*pos*/ -4048, -1381, -1334, /*angle*/ 0, 30, 0, /*behParam*/ DIALOG_136 << 24, /*beh*/ bhvToadMessage), JUMP_LINK(script_func_local_3), JUMP_LINK(script_func_local_4), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x03, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x03, /*flags*/ WARP_NO_CHECKPOINT), TERRAIN(/*terrainData*/ inside_castle_seg7_area_3_collision), ROOMS(/*surfaceRooms*/ inside_castle_seg7_area_3_rooms), MACRO_OBJECTS(/*objList*/ inside_castle_seg7_area_3_macro_objs), diff --git a/levels/castle_inside/star_door/model.inc.c b/levels/castle_inside/star_door/model.inc.c index 9947b70..4a74aad 100644 --- a/levels/castle_inside/star_door/model.inc.c +++ b/levels/castle_inside/star_door/model.inc.c @@ -1,12 +1,8 @@ -// 0x0703BD28 - 0x0703BD30 -static const Ambient inside_castle_seg7_light_0703BD28 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0703BD30 - 0x0703BD40 -static const Light inside_castle_seg7_light_0703BD30 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0703BD28 - 0x0703BD40 +static const Lights1 inside_castle_seg7_lights_0703BD28 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0703BD40 - 0x0703BE40 static const Vtx inside_castle_seg7_vertex_0703BD40[] = { @@ -49,8 +45,8 @@ static const Gfx inside_castle_seg7_dl_0703BEC0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07005800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0703BD30, 1), - gsSPLight(&inside_castle_seg7_light_0703BD28, 2), + gsSPLight(&inside_castle_seg7_lights_0703BD28.l, 1), + gsSPLight(&inside_castle_seg7_lights_0703BD28.a, 2), gsSPVertex(inside_castle_seg7_vertex_0703BD40, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/castle_inside/trap_door/model.inc.c b/levels/castle_inside/trap_door/model.inc.c index 0453d2e..8a6ad8f 100644 --- a/levels/castle_inside/trap_door/model.inc.c +++ b/levels/castle_inside/trap_door/model.inc.c @@ -1,12 +1,8 @@ -// 0x0703BAB0 - 0x0703BAB8 -static const Ambient inside_castle_seg7_light_0703BAB0 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x0703BAB8 - 0x0703BAC8 -static const Light inside_castle_seg7_light_0703BAB8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0703BAB0 - 0x0703BAC8 +static const Lights1 inside_castle_seg7_lights_0703BAB0 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0703BAC8 - 0x0703BBB8 static const Vtx inside_castle_seg7_vertex_0703BAC8[] = { @@ -43,8 +39,8 @@ static const Gfx inside_castle_seg7_dl_0703BC28[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_0703BAB8, 1), - gsSPLight(&inside_castle_seg7_light_0703BAB0, 2), + gsSPLight(&inside_castle_seg7_lights_0703BAB0.l, 1), + gsSPLight(&inside_castle_seg7_lights_0703BAB0.a, 2), gsSPVertex(inside_castle_seg7_vertex_0703BAC8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/castle_inside/water_level_pillar/model.inc.c b/levels/castle_inside/water_level_pillar/model.inc.c index 6b97a2b..3c5203d 100644 --- a/levels/castle_inside/water_level_pillar/model.inc.c +++ b/levels/castle_inside/water_level_pillar/model.inc.c @@ -1,12 +1,8 @@ -// 0x07068908 - 0x07068910 -static const Ambient inside_castle_seg7_light_07068908 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x07068910 - 0x07068920 -static const Light inside_castle_seg7_light_07068910 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07068908 - 0x07068920 +static const Lights1 inside_castle_seg7_lights_07068908 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07068920 - 0x07068960 static const Vtx inside_castle_seg7_vertex_07068920[] = { @@ -41,8 +37,8 @@ static const Gfx inside_castle_seg7_dl_07068A60[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_0900B000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&inside_castle_seg7_light_07068910, 1), - gsSPLight(&inside_castle_seg7_light_07068908, 2), + gsSPLight(&inside_castle_seg7_lights_07068908.l, 1), + gsSPLight(&inside_castle_seg7_lights_07068908.a, 2), gsSPVertex(inside_castle_seg7_vertex_07068920, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/ccm/areas/1/1/model.inc.c b/levels/ccm/areas/1/1/model.inc.c index 869176a..fb83ffc 100644 --- a/levels/ccm/areas/1/1/model.inc.c +++ b/levels/ccm/areas/1/1/model.inc.c @@ -1,42 +1,26 @@ -// 0x07005300 - 0x07005308 -static const Ambient ccm_seg7_light_07005300 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x07005300 - 0x07005318 +static const Lights1 ccm_seg7_lights_07005300 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07005308 - 0x07005318 -static const Light ccm_seg7_light_07005308 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07005318 - 0x07005330 +static const Lights1 ccm_seg7_lights_07005318 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x07005318 - 0x07005320 -static const Ambient ccm_seg7_light_07005318 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; +// 0x07005330 - 0x07005348 +static const Lights1 ccm_seg7_lights_07005330 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); -// 0x07005320 - 0x07005330 -static const Light ccm_seg7_light_07005320 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07005330 - 0x07005338 -static const Ambient ccm_seg7_light_07005330 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x07005338 - 0x07005348 -static const Light ccm_seg7_light_07005338 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07005348 - 0x07005350 -static const Ambient ccm_seg7_light_07005348 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0} -}; - -// 0x07005350 - 0x07005360 -static const Light ccm_seg7_light_07005350 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07005348 - 0x07005360 +static const Lights1 ccm_seg7_lights_07005348 = gdSPDefLights1( + 0x33, 0x33, 0x33, + 0x66, 0x66, 0x66, 0x28, 0x28, 0x28 +); // 0x07005360 - 0x07005460 static const Vtx ccm_seg7_vertex_07005360[] = { @@ -1451,8 +1435,8 @@ static const Gfx ccm_seg7_dl_07009820[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_07005308, 1), - gsSPLight(&ccm_seg7_light_07005300, 2), + gsSPLight(&ccm_seg7_lights_07005300.l, 1), + gsSPLight(&ccm_seg7_lights_07005300.a, 2), gsSPVertex(ccm_seg7_vertex_07005360, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 3, 7, 6, 0x0), @@ -1550,8 +1534,8 @@ static const Gfx ccm_seg7_dl_07009820[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 2, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 6, 5, 8, 0x0), gsSP2Triangles( 4, 5, 7, 0x0, 8, 3, 2, 0x0), - gsSPLight(&ccm_seg7_light_07005320, 1), - gsSPLight(&ccm_seg7_light_07005318, 2), + gsSPLight(&ccm_seg7_lights_07005318.l, 1), + gsSPLight(&ccm_seg7_lights_07005318.a, 2), gsSPVertex(ccm_seg7_vertex_07006250, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 0, 4, 5, 0x0, 0, 3, 4, 0x0), @@ -1563,8 +1547,8 @@ static const Gfx ccm_seg7_dl_07009DD0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09006000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_07005308, 1), - gsSPLight(&ccm_seg7_light_07005300, 2), + gsSPLight(&ccm_seg7_lights_07005300.l, 1), + gsSPLight(&ccm_seg7_lights_07005300.a, 2), gsSPVertex(ccm_seg7_vertex_070062B0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), @@ -1574,8 +1558,8 @@ static const Gfx ccm_seg7_dl_07009DD0[] = { gsSPVertex(ccm_seg7_vertex_070063A0, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 4, 6, 5, 0x0), - gsSPLight(&ccm_seg7_light_07005338, 1), - gsSPLight(&ccm_seg7_light_07005330, 2), + gsSPLight(&ccm_seg7_lights_07005330.l, 1), + gsSPLight(&ccm_seg7_lights_07005330.a, 2), gsSPVertex(ccm_seg7_vertex_07006410, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 0, 3, 0x0, 6, 7, 3, 0x0), @@ -1595,8 +1579,8 @@ static const Gfx ccm_seg7_dl_07009F28[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09002000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_07005308, 1), - gsSPLight(&ccm_seg7_light_07005300, 2), + gsSPLight(&ccm_seg7_lights_07005300.l, 1), + gsSPLight(&ccm_seg7_lights_07005300.a, 2), gsSPVertex(ccm_seg7_vertex_070065B0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), gsSP2Triangles( 4, 5, 0, 0x0, 2, 6, 0, 0x0), @@ -1630,8 +1614,8 @@ static const Gfx ccm_seg7_dl_07009F28[] = { gsSP2Triangles( 3, 5, 6, 0x0, 7, 5, 4, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 11, 8, 10, 0x0), gsSP1Triangle(12, 11, 10, 0x0), - gsSPLight(&ccm_seg7_light_07005320, 1), - gsSPLight(&ccm_seg7_light_07005318, 2), + gsSPLight(&ccm_seg7_lights_07005318.l, 1), + gsSPLight(&ccm_seg7_lights_07005318.a, 2), gsSPVertex(ccm_seg7_vertex_07006B70, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 6, 3, 0x0), @@ -1643,8 +1627,8 @@ static const Gfx ccm_seg7_dl_07009F28[] = { gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), gsSP2Triangles(10, 11, 12, 0x0, 10, 8, 7, 0x0), gsSP2Triangles(10, 7, 11, 0x0, 10, 12, 13, 0x0), - gsSPLight(&ccm_seg7_light_07005338, 1), - gsSPLight(&ccm_seg7_light_07005330, 2), + gsSPLight(&ccm_seg7_lights_07005330.l, 1), + gsSPLight(&ccm_seg7_lights_07005330.a, 2), gsSPVertex(ccm_seg7_vertex_07006D50, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -1661,8 +1645,8 @@ static const Gfx ccm_seg7_dl_0700A248[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_07005308, 1), - gsSPLight(&ccm_seg7_light_07005300, 2), + gsSPLight(&ccm_seg7_lights_07005300.l, 1), + gsSPLight(&ccm_seg7_lights_07005300.a, 2), gsSPVertex(ccm_seg7_vertex_07006F10, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -1768,8 +1752,8 @@ static const Gfx ccm_seg7_dl_0700A248[] = { gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 11, 12, 8, 0x0), gsSP2Triangles(11, 8, 10, 0x0, 13, 14, 15, 0x0), - gsSPLight(&ccm_seg7_light_07005350, 1), - gsSPLight(&ccm_seg7_light_07005348, 2), + gsSPLight(&ccm_seg7_lights_07005348.l, 1), + gsSPLight(&ccm_seg7_lights_07005348.a, 2), gsSPVertex(ccm_seg7_vertex_07008130, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 1, 3, 4, 0x0, 5, 1, 4, 0x0), @@ -1778,8 +1762,8 @@ static const Gfx ccm_seg7_dl_0700A248[] = { gsSP2Triangles(11, 12, 13, 0x0, 14, 7, 15, 0x0), gsSPVertex(ccm_seg7_vertex_07008230, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), - gsSPLight(&ccm_seg7_light_07005320, 1), - gsSPLight(&ccm_seg7_light_07005318, 2), + gsSPLight(&ccm_seg7_lights_07005318.l, 1), + gsSPLight(&ccm_seg7_lights_07005318.a, 2), gsSPVertex(ccm_seg7_vertex_07008260, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 3, 6, 0x0, 7, 5, 8, 0x0), @@ -1806,8 +1790,8 @@ static const Gfx ccm_seg7_dl_0700A248[] = { gsSPVertex(ccm_seg7_vertex_07008630, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 3, 5, 6, 0x0), - gsSPLight(&ccm_seg7_light_07005338, 1), - gsSPLight(&ccm_seg7_light_07005330, 2), + gsSPLight(&ccm_seg7_lights_07005330.l, 1), + gsSPLight(&ccm_seg7_lights_07005330.a, 2), gsSPVertex(ccm_seg7_vertex_070086A0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -1836,22 +1820,22 @@ static const Gfx ccm_seg7_dl_0700AB00[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09002800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_07005308, 1), - gsSPLight(&ccm_seg7_light_07005300, 2), + gsSPLight(&ccm_seg7_lights_07005300.l, 1), + gsSPLight(&ccm_seg7_lights_07005300.a, 2), gsSPVertex(ccm_seg7_vertex_07008A20, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 6, 7, 8, 0x0), gsSP2Triangles( 6, 8, 3, 0x0, 8, 7, 9, 0x0), gsSP2Triangles(10, 0, 2, 0x0, 7, 11, 9, 0x0), gsSP2Triangles( 1, 12, 2, 0x0, 7, 13, 11, 0x0), - gsSPLight(&ccm_seg7_light_07005320, 1), - gsSPLight(&ccm_seg7_light_07005318, 2), + gsSPLight(&ccm_seg7_lights_07005318.l, 1), + gsSPLight(&ccm_seg7_lights_07005318.a, 2), gsSPVertex(ccm_seg7_vertex_07008B00, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 5, 7, 0x0, 0, 6, 7, 0x0), gsSP1Triangle( 0, 2, 6, 0x0), - gsSPLight(&ccm_seg7_light_07005338, 1), - gsSPLight(&ccm_seg7_light_07005330, 2), + gsSPLight(&ccm_seg7_lights_07005330.l, 1), + gsSPLight(&ccm_seg7_lights_07005330.a, 2), gsSPVertex(ccm_seg7_vertex_07008B80, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 2, 6, 0, 0x0), @@ -1863,8 +1847,8 @@ static const Gfx ccm_seg7_dl_0700ABF8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_07005308, 1), - gsSPLight(&ccm_seg7_light_07005300, 2), + gsSPLight(&ccm_seg7_lights_07005300.l, 1), + gsSPLight(&ccm_seg7_lights_07005300.a, 2), gsSPVertex(ccm_seg7_vertex_07008BF0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 2, 4, 3, 0x0), diff --git a/levels/ccm/areas/1/10/1.inc.c b/levels/ccm/areas/1/10/1.inc.c index 5044e6f..c0f5bf6 100644 --- a/levels/ccm/areas/1/10/1.inc.c +++ b/levels/ccm/areas/1/10/1.inc.c @@ -1,32 +1,20 @@ -// 0x0700FD88 - 0x0700FD90 -static const Ambient ccm_seg7_light_0700FD88 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700FD88 - 0x0700FDA0 +static const Lights1 ccm_seg7_lights_0700FD88 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700FD90 - 0x0700FDA0 -static const Light ccm_seg7_light_0700FD90 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700FDA0 - 0x0700FDB8 +static const Lights1 ccm_seg7_lights_0700FDA0 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x0700FDA0 - 0x0700FDA8 -static const Ambient ccm_seg7_light_0700FDA0 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0700FDA8 - 0x0700FDB8 -static const Light ccm_seg7_light_0700FDA8 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700FDB8 - 0x0700FDC0 -static const Ambient ccm_seg7_light_0700FDB8 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x0700FDC0 - 0x0700FDD0 -static const Light ccm_seg7_light_0700FDC0 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700FDB8 - 0x0700FDD0 +static const Lights1 ccm_seg7_lights_0700FDB8 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); // 0x0700FDD0 - 0x0700FE10 static const Vtx ccm_seg7_vertex_0700FDD0[] = { @@ -165,20 +153,20 @@ static const Gfx ccm_seg7_dl_07010390[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0700FD90, 1), - gsSPLight(&ccm_seg7_light_0700FD88, 2), + gsSPLight(&ccm_seg7_lights_0700FD88.l, 1), + gsSPLight(&ccm_seg7_lights_0700FD88.a, 2), gsSPVertex(ccm_seg7_vertex_0700FDD0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&ccm_seg7_light_0700FDA8, 1), - gsSPLight(&ccm_seg7_light_0700FDA0, 2), + gsSPLight(&ccm_seg7_lights_0700FDA0.l, 1), + gsSPLight(&ccm_seg7_lights_0700FDA0.a, 2), gsSPVertex(ccm_seg7_vertex_0700FE10, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 9, 10, 0x0, 11, 10, 2, 0x0), gsSP2Triangles( 2, 10, 0, 0x0, 12, 2, 13, 0x0), gsSP2Triangles(13, 2, 1, 0x0, 12, 11, 2, 0x0), - gsSPLight(&ccm_seg7_light_0700FDC0, 1), - gsSPLight(&ccm_seg7_light_0700FDB8, 2), + gsSPLight(&ccm_seg7_lights_0700FDB8.l, 1), + gsSPLight(&ccm_seg7_lights_0700FDB8.a, 2), gsSPVertex(ccm_seg7_vertex_0700FEF0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 0, 4, 3, 0x0, 3, 1, 0, 0x0), @@ -191,12 +179,12 @@ static const Gfx ccm_seg7_dl_07010480[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09006000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0700FDA8, 1), - gsSPLight(&ccm_seg7_light_0700FDA0, 2), + gsSPLight(&ccm_seg7_lights_0700FDA0.l, 1), + gsSPLight(&ccm_seg7_lights_0700FDA0.a, 2), gsSPVertex(ccm_seg7_vertex_0700FF70, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), - gsSPLight(&ccm_seg7_light_0700FDC0, 1), - gsSPLight(&ccm_seg7_light_0700FDB8, 2), + gsSPLight(&ccm_seg7_lights_0700FDB8.l, 1), + gsSPLight(&ccm_seg7_lights_0700FDB8.a, 2), gsSPVertex(ccm_seg7_vertex_0700FFB0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 4, 7, 0x0), @@ -210,8 +198,8 @@ static const Gfx ccm_seg7_dl_07010518[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09002000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0700FDA8, 1), - gsSPLight(&ccm_seg7_light_0700FDA0, 2), + gsSPLight(&ccm_seg7_lights_0700FDA0.l, 1), + gsSPLight(&ccm_seg7_lights_0700FDA0.a, 2), gsSPVertex(ccm_seg7_vertex_07010070, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 6, 7, 4, 0x0), @@ -219,8 +207,8 @@ static const Gfx ccm_seg7_dl_07010518[] = { gsSP1Triangle(12, 13, 14, 0x0), gsSPVertex(ccm_seg7_vertex_07010160, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), - gsSPLight(&ccm_seg7_light_0700FDC0, 1), - gsSPLight(&ccm_seg7_light_0700FDB8, 2), + gsSPLight(&ccm_seg7_lights_0700FDB8.l, 1), + gsSPLight(&ccm_seg7_lights_0700FDB8.a, 2), gsSPVertex(ccm_seg7_vertex_070101A0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), diff --git a/levels/ccm/areas/1/10/3.inc.c b/levels/ccm/areas/1/10/3.inc.c index 8c94fe5..1b35549 100644 --- a/levels/ccm/areas/1/10/3.inc.c +++ b/levels/ccm/areas/1/10/3.inc.c @@ -1,12 +1,8 @@ -// 0x07010A60 - 0x07010A68 -static const Ambient ccm_seg7_light_07010A60 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07010A68 - 0x07010A78 -static const Light ccm_seg7_light_07010A68 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07010A60 - 0x07010A78 +static const Lights1 ccm_seg7_lights_07010A60 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07010A78 - 0x07010AF8 static const Vtx ccm_seg7_vertex_07010A78[] = { @@ -25,8 +21,8 @@ static const Gfx ccm_seg7_dl_07010AF8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_07010A68, 1), - gsSPLight(&ccm_seg7_light_07010A60, 2), + gsSPLight(&ccm_seg7_lights_07010A60.l, 1), + gsSPLight(&ccm_seg7_lights_07010A60.a, 2), gsSPVertex(ccm_seg7_vertex_07010A78, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/ccm/areas/1/2/model.inc.c b/levels/ccm/areas/1/2/model.inc.c index 33f42c6..f1650ec 100644 --- a/levels/ccm/areas/1/2/model.inc.c +++ b/levels/ccm/areas/1/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700B118 - 0x0700B120 -static const Ambient ccm_seg7_light_0700B118 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0700B120 - 0x0700B130 -static const Light ccm_seg7_light_0700B120 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700B118 - 0x0700B130 +static const Lights1 ccm_seg7_lights_0700B118 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700B130 - 0x0700B190 static const Vtx ccm_seg7_vertex_0700B130[] = { @@ -23,8 +19,8 @@ static const Gfx ccm_seg7_dl_0700B190[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0700B120, 1), - gsSPLight(&ccm_seg7_light_0700B118, 2), + gsSPLight(&ccm_seg7_lights_0700B118.l, 1), + gsSPLight(&ccm_seg7_lights_0700B118.a, 2), gsSPVertex(ccm_seg7_vertex_0700B130, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), diff --git a/levels/ccm/areas/1/3/model.inc.c b/levels/ccm/areas/1/3/model.inc.c index 04bf489..f827b15 100644 --- a/levels/ccm/areas/1/3/model.inc.c +++ b/levels/ccm/areas/1/3/model.inc.c @@ -1,42 +1,26 @@ -// 0x0700B248 - 0x0700B250 -static const Ambient ccm_seg7_light_0700B248 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700B248 - 0x0700B260 +static const Lights1 ccm_seg7_lights_0700B248 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700B250 - 0x0700B260 -static const Light ccm_seg7_light_0700B250 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700B260 - 0x0700B278 +static const Lights1 ccm_seg7_lights_0700B260 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x0700B260 - 0x0700B268 -static const Ambient ccm_seg7_light_0700B260 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; +// 0x0700B278 - 0x0700B290 +static const Lights1 ccm_seg7_lights_0700B278 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); -// 0x0700B268 - 0x0700B278 -static const Light ccm_seg7_light_0700B268 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700B278 - 0x0700B280 -static const Ambient ccm_seg7_light_0700B278 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x0700B280 - 0x0700B290 -static const Light ccm_seg7_light_0700B280 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700B290 - 0x0700B298 -static const Ambient ccm_seg7_light_0700B290 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x0700B298 - 0x0700B2A8 -static const Light ccm_seg7_light_0700B298 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700B290 - 0x0700B2A8 +static const Lights1 ccm_seg7_lights_0700B290 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x0700B2A8 - 0x0700B3A8 static const Vtx ccm_seg7_vertex_0700B2A8[] = { @@ -313,8 +297,8 @@ static const Gfx ccm_seg7_dl_0700BF88[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ccm_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 4 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0700B250, 1), - gsSPLight(&ccm_seg7_light_0700B248, 2), + gsSPLight(&ccm_seg7_lights_0700B248.l, 1), + gsSPLight(&ccm_seg7_lights_0700B248.a, 2), gsSPVertex(ccm_seg7_vertex_0700B2A8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -355,16 +339,16 @@ static const Gfx ccm_seg7_dl_0700C000[] = { gsSPVertex(ccm_seg7_vertex_0700B988, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&ccm_seg7_light_0700B268, 1), - gsSPLight(&ccm_seg7_light_0700B260, 2), + gsSPLight(&ccm_seg7_lights_0700B260.l, 1), + gsSPLight(&ccm_seg7_lights_0700B260.a, 2), gsSPVertex(ccm_seg7_vertex_0700BA08, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 7, 9, 8, 0x0), gsSP2Triangles(10, 11, 12, 0x0, 13, 14, 15, 0x0), gsSPVertex(ccm_seg7_vertex_0700BB08, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), - gsSPLight(&ccm_seg7_light_0700B280, 1), - gsSPLight(&ccm_seg7_light_0700B278, 2), + gsSPLight(&ccm_seg7_lights_0700B278.l, 1), + gsSPLight(&ccm_seg7_lights_0700B278.a, 2), gsSPVertex(ccm_seg7_vertex_0700BB38, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP1Triangle( 0, 4, 3, 0x0), @@ -376,8 +360,8 @@ static const Gfx ccm_seg7_dl_0700C220[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0700B250, 1), - gsSPLight(&ccm_seg7_light_0700B248, 2), + gsSPLight(&ccm_seg7_lights_0700B248.l, 1), + gsSPLight(&ccm_seg7_lights_0700B248.a, 2), gsSPVertex(ccm_seg7_vertex_0700BB88, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -401,8 +385,8 @@ static const Gfx ccm_seg7_dl_0700C220[] = { // 0x0700C330 - 0x0700C380 static const Gfx ccm_seg7_dl_0700C330[] = { - gsSPLight(&ccm_seg7_light_0700B298, 1), - gsSPLight(&ccm_seg7_light_0700B290, 2), + gsSPLight(&ccm_seg7_lights_0700B290.l, 1), + gsSPLight(&ccm_seg7_lights_0700B290.a, 2), gsSPVertex(ccm_seg7_vertex_0700BEC8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/levels/ccm/areas/1/6/1.inc.c b/levels/ccm/areas/1/6/1.inc.c index 3f60965..62a7d62 100644 --- a/levels/ccm/areas/1/6/1.inc.c +++ b/levels/ccm/areas/1/6/1.inc.c @@ -1,42 +1,26 @@ -// 0x0700DE68 - 0x0700DE70 -static const Ambient ccm_seg7_light_0700DE68 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700DE68 - 0x0700DE80 +static const Lights1 ccm_seg7_lights_0700DE68 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700DE70 - 0x0700DE80 -static const Light ccm_seg7_light_0700DE70 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700DE80 - 0x0700DE98 +static const Lights1 ccm_seg7_lights_0700DE80 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x0700DE80 - 0x0700DE88 -static const Ambient ccm_seg7_light_0700DE80 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; +// 0x0700DE98 - 0x0700DEB0 +static const Lights1 ccm_seg7_lights_0700DE98 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); -// 0x0700DE88 - 0x0700DE98 -static const Light ccm_seg7_light_0700DE88 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700DE98 - 0x0700DEA0 -static const Ambient ccm_seg7_light_0700DE98 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x0700DEA0 - 0x0700DEB0 -static const Light ccm_seg7_light_0700DEA0 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700DEB0 - 0x0700DEB8 -static const Ambient ccm_seg7_light_0700DEB0 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x0700DEB8 - 0x0700DEC8 -static const Light ccm_seg7_light_0700DEB8 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700DEB0 - 0x0700DEC8 +static const Lights1 ccm_seg7_lights_0700DEB0 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x0700DEC8 - 0x0700DF88 static const Vtx ccm_seg7_vertex_0700DEC8[] = { @@ -173,8 +157,8 @@ static const Gfx ccm_seg7_dl_0700E4A8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0700DE70, 1), - gsSPLight(&ccm_seg7_light_0700DE68, 2), + gsSPLight(&ccm_seg7_lights_0700DE68.l, 1), + gsSPLight(&ccm_seg7_lights_0700DE68.a, 2), gsSPVertex(ccm_seg7_vertex_0700DEC8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), @@ -193,8 +177,8 @@ static const Gfx ccm_seg7_dl_0700E530[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), gsSP2Triangles(10, 11, 12, 0x0, 11, 13, 12, 0x0), - gsSPLight(&ccm_seg7_light_0700DE88, 1), - gsSPLight(&ccm_seg7_light_0700DE80, 2), + gsSPLight(&ccm_seg7_lights_0700DE80.l, 1), + gsSPLight(&ccm_seg7_lights_0700DE80.a, 2), gsSPVertex(ccm_seg7_vertex_0700E068, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -205,8 +189,8 @@ static const Gfx ccm_seg7_dl_0700E530[] = { gsSP2Triangles(10, 11, 12, 0x0, 13, 14, 15, 0x0), gsSPVertex(ccm_seg7_vertex_0700E268, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&ccm_seg7_light_0700DEA0, 1), - gsSPLight(&ccm_seg7_light_0700DE98, 2), + gsSPLight(&ccm_seg7_lights_0700DE98.l, 1), + gsSPLight(&ccm_seg7_lights_0700DE98.a, 2), gsSPVertex(ccm_seg7_vertex_0700E2C8, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -219,8 +203,8 @@ static const Gfx ccm_seg7_dl_0700E668[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0700DE70, 1), - gsSPLight(&ccm_seg7_light_0700DE68, 2), + gsSPLight(&ccm_seg7_lights_0700DE68.l, 1), + gsSPLight(&ccm_seg7_lights_0700DE68.a, 2), gsSPVertex(ccm_seg7_vertex_0700E3A8, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -231,8 +215,8 @@ static const Gfx ccm_seg7_dl_0700E668[] = { static const Gfx ccm_seg7_dl_0700E6C0[] = { gsSPVertex(ccm_seg7_vertex_0700E428, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), - gsSPLight(&ccm_seg7_light_0700DEB8, 1), - gsSPLight(&ccm_seg7_light_0700DEB0, 2), + gsSPLight(&ccm_seg7_lights_0700DEB0.l, 1), + gsSPLight(&ccm_seg7_lights_0700DEB0.a, 2), gsSPVertex(ccm_seg7_vertex_0700E468, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/ccm/areas/1/7/1.inc.c b/levels/ccm/areas/1/7/1.inc.c index aa3d88c..420bfd0 100644 --- a/levels/ccm/areas/1/7/1.inc.c +++ b/levels/ccm/areas/1/7/1.inc.c @@ -1,32 +1,20 @@ -// 0x0700EA00 - 0x0700EA08 -static const Ambient ccm_seg7_light_0700EA00 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700EA00 - 0x0700EA18 +static const Lights1 ccm_seg7_lights_0700EA00 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700EA08 - 0x0700EA18 -static const Light ccm_seg7_light_0700EA08 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700EA18 - 0x0700EA30 +static const Lights1 ccm_seg7_lights_0700EA18 = gdSPDefLights1( + 0x33, 0x33, 0x33, + 0x66, 0x66, 0x66, 0x28, 0x28, 0x28 +); -// 0x0700EA18 - 0x0700EA20 -static const Ambient ccm_seg7_light_0700EA18 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0} -}; - -// 0x0700EA20 - 0x0700EA30 -static const Light ccm_seg7_light_0700EA20 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700EA30 - 0x0700EA38 -static const Ambient ccm_seg7_light_0700EA30 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x0700EA38 - 0x0700EA48 -static const Light ccm_seg7_light_0700EA38 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700EA30 - 0x0700EA48 +static const Lights1 ccm_seg7_lights_0700EA30 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); // 0x0700EA48 - 0x0700EAE8 static const Vtx ccm_seg7_vertex_0700EA48[] = { @@ -192,8 +180,8 @@ static const Gfx ccm_seg7_dl_0700F1B8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0700EA08, 1), - gsSPLight(&ccm_seg7_light_0700EA00, 2), + gsSPLight(&ccm_seg7_lights_0700EA00.l, 1), + gsSPLight(&ccm_seg7_lights_0700EA00.a, 2), gsSPVertex(ccm_seg7_vertex_0700EA48, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), @@ -222,16 +210,16 @@ static const Gfx ccm_seg7_dl_0700F210[] = { gsSPVertex(ccm_seg7_vertex_0700ED98, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), - gsSPLight(&ccm_seg7_light_0700EA20, 1), - gsSPLight(&ccm_seg7_light_0700EA18, 2), + gsSPLight(&ccm_seg7_lights_0700EA18.l, 1), + gsSPLight(&ccm_seg7_lights_0700EA18.a, 2), gsSPVertex(ccm_seg7_vertex_0700EE38, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 7, 9, 8, 0x0), gsSP2Triangles(10, 11, 12, 0x0, 13, 14, 15, 0x0), gsSPVertex(ccm_seg7_vertex_0700EF38, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&ccm_seg7_light_0700EA38, 1), - gsSPLight(&ccm_seg7_light_0700EA30, 2), + gsSPLight(&ccm_seg7_lights_0700EA30.l, 1), + gsSPLight(&ccm_seg7_lights_0700EA30.a, 2), gsSPVertex(ccm_seg7_vertex_0700EF98, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -243,8 +231,8 @@ static const Gfx ccm_seg7_dl_0700F3B0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0700EA20, 1), - gsSPLight(&ccm_seg7_light_0700EA18, 2), + gsSPLight(&ccm_seg7_lights_0700EA18.l, 1), + gsSPLight(&ccm_seg7_lights_0700EA18.a, 2), gsSPVertex(ccm_seg7_vertex_0700F058, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ccm/areas/1/7/3.inc.c b/levels/ccm/areas/1/7/3.inc.c index 9540e7d..f576166 100644 --- a/levels/ccm/areas/1/7/3.inc.c +++ b/levels/ccm/areas/1/7/3.inc.c @@ -1,12 +1,8 @@ -// 0x0700F6E0 - 0x0700F6E8 -static const Ambient ccm_seg7_light_0700F6E0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0700F6E8 - 0x0700F6F8 -static const Light ccm_seg7_light_0700F6E8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700F6E0 - 0x0700F6F8 +static const Lights1 ccm_seg7_lights_0700F6E0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700F6F8 - 0x0700F738 static const Vtx ccm_seg7_vertex_0700F6F8[] = { @@ -21,8 +17,8 @@ static const Gfx ccm_seg7_dl_0700F738[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0700F6E8, 1), - gsSPLight(&ccm_seg7_light_0700F6E0, 2), + gsSPLight(&ccm_seg7_lights_0700F6E0.l, 1), + gsSPLight(&ccm_seg7_lights_0700F6E0.a, 2), gsSPVertex(ccm_seg7_vertex_0700F6F8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSPEndDisplayList(), diff --git a/levels/ccm/areas/1/8/model.inc.c b/levels/ccm/areas/1/8/model.inc.c index 8a1ef98..6be88a9 100644 --- a/levels/ccm/areas/1/8/model.inc.c +++ b/levels/ccm/areas/1/8/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700F800 - 0x0700F808 -static const Ambient ccm_seg7_light_0700F800 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0700F808 - 0x0700F818 -static const Light ccm_seg7_light_0700F808 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700F800 - 0x0700F818 +static const Lights1 ccm_seg7_lights_0700F800 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700F818 - 0x0700F878 static const Vtx ccm_seg7_vertex_0700F818[] = { @@ -57,8 +53,8 @@ static const Gfx ccm_seg7_dl_0700FA18[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0700F808, 1), - gsSPLight(&ccm_seg7_light_0700F800, 2), + gsSPLight(&ccm_seg7_lights_0700F800.l, 1), + gsSPLight(&ccm_seg7_lights_0700F800.a, 2), gsSPVertex(ccm_seg7_vertex_0700F818, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 0, 4, 5, 0x0), diff --git a/levels/ccm/areas/1/9/model.inc.c b/levels/ccm/areas/1/9/model.inc.c index db2deff..3b7856e 100644 --- a/levels/ccm/areas/1/9/model.inc.c +++ b/levels/ccm/areas/1/9/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700FB78 - 0x0700FB80 -static const Ambient ccm_seg7_light_0700FB78 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0700FB80 - 0x0700FB90 -static const Light ccm_seg7_light_0700FB80 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700FB78 - 0x0700FB90 +static const Lights1 ccm_seg7_lights_0700FB78 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700FB90 - 0x0700FC90 static const Vtx ccm_seg7_vertex_0700FB90[] = { @@ -33,8 +29,8 @@ static const Gfx ccm_seg7_dl_0700FC90[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0700FB80, 1), - gsSPLight(&ccm_seg7_light_0700FB78, 2), + gsSPLight(&ccm_seg7_lights_0700FB78.l, 1), + gsSPLight(&ccm_seg7_lights_0700FB78.a, 2), gsSPVertex(ccm_seg7_vertex_0700FB90, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ccm/areas/1/geo.inc.c b/levels/ccm/areas/1/geo.inc.c index 501f212..a6ea532 100644 --- a/levels/ccm/areas/1/geo.inc.c +++ b/levels/ccm/areas/1/geo.inc.c @@ -29,7 +29,7 @@ const GeoLayout ccm_geo_00051C[] = { GEO_CLOSE_NODE(), GEO_ZBUFFER(0), GEO_OPEN_NODE(), - GEO_ASM(0, Geo18_802CD1E8), + GEO_ASM(0, geo_cannon_circle_base), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/levels/ccm/areas/1/macro.inc.c b/levels/ccm/areas/1/macro.inc.c index b587f35..a49d9c8 100644 --- a/levels/ccm/areas/1/macro.inc.c +++ b/levels/ccm/areas/1/macro.inc.c @@ -1,6 +1,6 @@ // 0x07016284 - 0x070163F8 const MacroObject ccm_seg7_area_1_macro_objs[] = { - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ -2412, 2912, -878, /*behParam*/ 40), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ -2412, 2912, -878, /*behParam*/ DIALOG_040), MACRO_OBJECT(/*preset*/ macro_mr_blizzard, /*yaw*/ 0, /*pos*/ 3054, -2674, 2072), MACRO_OBJECT(/*preset*/ macro_spindrift, /*yaw*/ 0, /*pos*/ 2542, 2622, -1714), MACRO_OBJECT(/*preset*/ macro_spindrift, /*yaw*/ 0, /*pos*/ -6090, -1740, 1936), @@ -11,17 +11,17 @@ const MacroObject ccm_seg7_area_1_macro_objs[] = { MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_cannon_closed, /*yaw*/ 0, /*pos*/ -3615, -4607, 4790, /*behParam*/ 0x00), MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_cannon_closed, /*yaw*/ 0, /*pos*/ -5045, -1740, 4615, /*behParam*/ 0x00), MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_cannon_closed, /*yaw*/ 0, /*pos*/ 1090, -4607, 5729, /*behParam*/ 0x80), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -1060, 2560, -1840, /*behParam*/ 87), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -1060, 2560, -1840, /*behParam*/ DIALOG_087), MACRO_OBJECT(/*preset*/ macro_coin_line_vertical, /*yaw*/ 0, /*pos*/ -180, 3100, -1480), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 0, /*pos*/ 3560, 2100, -280), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 77, /*pos*/ -1942, 1334, 1678), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 90, /*pos*/ -1020, 646, -2706), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 93, /*pos*/ -1460, -888, -3933), MACRO_OBJECT(/*preset*/ macro_coin_arrow, /*yaw*/ 75, /*pos*/ -2586, -4889, -4093), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -4350, -4864, -4813, /*behParam*/ 94), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -1037, -3583, 5872, /*behParam*/ 91), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ -309, -4889, -3690, /*behParam*/ 49), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 1900, -1535, 3500, /*behParam*/ 40), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -4350, -4864, -4813, /*behParam*/ DIALOG_094), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -1037, -3583, 5872, /*behParam*/ DIALOG_091), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ -309, -4889, -3690, /*behParam*/ DIALOG_049), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 1900, -1535, 3500, /*behParam*/ DIALOG_040), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ -488, 3100, -2305), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ -3120, -1200, -2080), MACRO_OBJECT(/*preset*/ macro_hidden_1up_in_pole, /*yaw*/ 0, /*pos*/ -5200, -1345, 2995), diff --git a/levels/ccm/areas/2/1/model.inc.c b/levels/ccm/areas/2/1/model.inc.c index 19d5f90..22aa91d 100644 --- a/levels/ccm/areas/2/1/model.inc.c +++ b/levels/ccm/areas/2/1/model.inc.c @@ -1,12 +1,8 @@ -// 0x07016718 - 0x07016720 -static const Ambient ccm_seg7_light_07016718 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07016720 - 0x07016730 -static const Light ccm_seg7_light_07016720 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07016718 - 0x07016730 +static const Lights1 ccm_seg7_lights_07016718 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07016730 - 0x07016770 static const Vtx ccm_seg7_vertex_07016730[] = { @@ -1504,8 +1500,8 @@ static const Gfx ccm_seg7_dl_0701B0E0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_07016720, 1), - gsSPLight(&ccm_seg7_light_07016718, 2), + gsSPLight(&ccm_seg7_lights_07016718.l, 1), + gsSPLight(&ccm_seg7_lights_07016718.a, 2), gsSPVertex(ccm_seg7_vertex_07016730, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/ccm/areas/2/2/model.inc.c b/levels/ccm/areas/2/2/model.inc.c index e4896b4..5c39f86 100644 --- a/levels/ccm/areas/2/2/model.inc.c +++ b/levels/ccm/areas/2/2/model.inc.c @@ -1,42 +1,26 @@ -// 0x0701CED8 - 0x0701CEE0 -static const Ambient ccm_seg7_light_0701CED8 = { - {{0x15, 0x15, 0x15}, 0, {0x15, 0x15, 0x15}, 0} -}; +// 0x0701CED8 - 0x0701CEF0 +static const Lights1 ccm_seg7_lights_0701CED8 = gdSPDefLights1( + 0x15, 0x15, 0x15, + 0x55, 0x55, 0x55, 0x28, 0x28, 0x28 +); -// 0x0701CEE0 - 0x0701CEF0 -static const Light ccm_seg7_light_0701CEE0 = { - {{0x55, 0x55, 0x55}, 0, {0x55, 0x55, 0x55}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701CEF0 - 0x0701CF08 +static const Lights1 ccm_seg7_lights_0701CEF0 = gdSPDefLights1( + 0x26, 0x26, 0x26, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x0701CEF0 - 0x0701CEF8 -static const Ambient ccm_seg7_light_0701CEF0 = { - {{0x26, 0x26, 0x26}, 0, {0x26, 0x26, 0x26}, 0} -}; +// 0x0701CF08 - 0x0701CF20 +static const Lights1 ccm_seg7_lights_0701CF08 = gdSPDefLights1( + 0x33, 0x33, 0x33, + 0xcc, 0xcc, 0xcc, 0x28, 0x28, 0x28 +); -// 0x0701CEF8 - 0x0701CF08 -static const Light ccm_seg7_light_0701CEF8 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701CF08 - 0x0701CF10 -static const Ambient ccm_seg7_light_0701CF08 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0} -}; - -// 0x0701CF10 - 0x0701CF20 -static const Light ccm_seg7_light_0701CF10 = { - {{0xcc, 0xcc, 0xcc}, 0, {0xcc, 0xcc, 0xcc}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701CF20 - 0x0701CF28 -static const Ambient ccm_seg7_light_0701CF20 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0701CF28 - 0x0701CF38 -static const Light ccm_seg7_light_0701CF28 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701CF20 - 0x0701CF38 +static const Lights1 ccm_seg7_lights_0701CF20 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701CF38 - 0x0701D028 static const Vtx ccm_seg7_vertex_0701CF38[] = { @@ -382,8 +366,8 @@ static const Gfx ccm_seg7_dl_0701DF68[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0701CEE0, 1), - gsSPLight(&ccm_seg7_light_0701CED8, 2), + gsSPLight(&ccm_seg7_lights_0701CED8.l, 1), + gsSPLight(&ccm_seg7_lights_0701CED8.a, 2), gsSPVertex(ccm_seg7_vertex_0701CF38, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -394,8 +378,8 @@ static const Gfx ccm_seg7_dl_0701DF68[] = { gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0), gsSP1Triangle( 0, 2, 14, 0x0), - gsSPLight(&ccm_seg7_light_0701CEF8, 1), - gsSPLight(&ccm_seg7_light_0701CEF0, 2), + gsSPLight(&ccm_seg7_lights_0701CEF0.l, 1), + gsSPLight(&ccm_seg7_lights_0701CEF0.a, 2), gsSPVertex(ccm_seg7_vertex_0701D118, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 8, 0x0), @@ -451,14 +435,14 @@ static const Gfx ccm_seg7_dl_0701DF68[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 7, 9, 8, 0x0), gsSP1Triangle(10, 0, 2, 0x0), - gsSPLight(&ccm_seg7_light_0701CF10, 1), - gsSPLight(&ccm_seg7_light_0701CF08, 2), + gsSPLight(&ccm_seg7_lights_0701CF08.l, 1), + gsSPLight(&ccm_seg7_lights_0701CF08.a, 2), gsSPVertex(ccm_seg7_vertex_0701DA58, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 3, 0x0, 6, 3, 5, 0x0), - gsSPLight(&ccm_seg7_light_0701CF28, 1), - gsSPLight(&ccm_seg7_light_0701CF20, 2), + gsSPLight(&ccm_seg7_lights_0701CF20.l, 1), + gsSPLight(&ccm_seg7_lights_0701CF20.a, 2), gsSPVertex(ccm_seg7_vertex_0701DAD8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -477,14 +461,14 @@ static const Gfx ccm_seg7_dl_0701E3F8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0701CEF8, 1), - gsSPLight(&ccm_seg7_light_0701CEF0, 2), + gsSPLight(&ccm_seg7_lights_0701CEF0.l, 1), + gsSPLight(&ccm_seg7_lights_0701CEF0.a, 2), gsSPVertex(ccm_seg7_vertex_0701DC78, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 8, 10, 11, 0x0), - gsSPLight(&ccm_seg7_light_0701CF28, 1), - gsSPLight(&ccm_seg7_light_0701CF20, 2), + gsSPLight(&ccm_seg7_lights_0701CF20.l, 1), + gsSPLight(&ccm_seg7_lights_0701CF20.a, 2), gsSPVertex(ccm_seg7_vertex_0701DD38, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ccm/areas/2/3/model.inc.c b/levels/ccm/areas/2/3/model.inc.c index dc09ff8..68ae861 100644 --- a/levels/ccm/areas/2/3/model.inc.c +++ b/levels/ccm/areas/2/3/model.inc.c @@ -1,12 +1,8 @@ -// 0x0701E610 - 0x0701E618 -static const Ambient ccm_seg7_light_0701E610 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0701E618 - 0x0701E628 -static const Light ccm_seg7_light_0701E618 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701E610 - 0x0701E628 +static const Lights1 ccm_seg7_lights_0701E610 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701E628 - 0x0701E668 static const Vtx ccm_seg7_vertex_0701E628[] = { @@ -21,8 +17,8 @@ static const Gfx ccm_seg7_dl_0701E668[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ccm_seg7_texture_07004B00), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0701E618, 1), - gsSPLight(&ccm_seg7_light_0701E610, 2), + gsSPLight(&ccm_seg7_lights_0701E610.l, 1), + gsSPLight(&ccm_seg7_lights_0701E610.a, 2), gsSPVertex(ccm_seg7_vertex_0701E628, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/ccm/areas/2/4/model.inc.c b/levels/ccm/areas/2/4/model.inc.c index 79ebccd..17dc6cb 100644 --- a/levels/ccm/areas/2/4/model.inc.c +++ b/levels/ccm/areas/2/4/model.inc.c @@ -1,12 +1,8 @@ -// 0x0701E720 - 0x0701E728 -static const Ambient ccm_seg7_light_0701E720 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0701E728 - 0x0701E738 -static const Light ccm_seg7_light_0701E728 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701E720 - 0x0701E738 +static const Lights1 ccm_seg7_lights_0701E720 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701E738 - 0x0701E828 static const Vtx ccm_seg7_vertex_0701E738[] = { @@ -350,8 +346,8 @@ static const Gfx ccm_seg7_dl_0701F7C8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0701E728, 1), - gsSPLight(&ccm_seg7_light_0701E720, 2), + gsSPLight(&ccm_seg7_lights_0701E720.l, 1), + gsSPLight(&ccm_seg7_lights_0701E720.a, 2), gsSPVertex(ccm_seg7_vertex_0701E738, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 4, 7, 6, 0x0), diff --git a/levels/ccm/areas/2/5/model.inc.c b/levels/ccm/areas/2/5/model.inc.c index b6b04cb..61fda43 100644 --- a/levels/ccm/areas/2/5/model.inc.c +++ b/levels/ccm/areas/2/5/model.inc.c @@ -1,12 +1,8 @@ -// 0x0701FCD8 - 0x0701FCE0 -static const Ambient ccm_seg7_light_0701FCD8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0701FCE0 - 0x0701FCF0 -static const Light ccm_seg7_light_0701FCE0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701FCD8 - 0x0701FCF0 +static const Lights1 ccm_seg7_lights_0701FCD8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701FCF0 - 0x0701FD30 static const Vtx ccm_seg7_vertex_0701FCF0[] = { @@ -21,8 +17,8 @@ static const Gfx ccm_seg7_dl_0701FD30[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0701FCE0, 1), - gsSPLight(&ccm_seg7_light_0701FCD8, 2), + gsSPLight(&ccm_seg7_lights_0701FCD8.l, 1), + gsSPLight(&ccm_seg7_lights_0701FCD8.a, 2), gsSPVertex(ccm_seg7_vertex_0701FCF0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/ccm/areas/2/7/model.inc.c b/levels/ccm/areas/2/7/model.inc.c index b1541bc..432a280 100644 --- a/levels/ccm/areas/2/7/model.inc.c +++ b/levels/ccm/areas/2/7/model.inc.c @@ -1,22 +1,14 @@ -// 0x0701FEE0 - 0x0701FEE8 -static const Ambient ccm_seg7_light_0701FEE0 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; +// 0x0701FEE0 - 0x0701FEF8 +static const Lights1 ccm_seg7_lights_0701FEE0 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x0701FEE8 - 0x0701FEF8 -static const Light ccm_seg7_light_0701FEE8 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701FEF8 - 0x0701FF00 -static const Ambient ccm_seg7_light_0701FEF8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0701FF00 - 0x0701FF10 -static const Light ccm_seg7_light_0701FF00 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701FEF8 - 0x0701FF10 +static const Lights1 ccm_seg7_lights_0701FEF8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701FF10 - 0x0701FF70 static const Vtx ccm_seg7_vertex_0701FF10[] = { @@ -159,8 +151,8 @@ static const Gfx ccm_seg7_dl_07020590[] = { gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, ccm_seg7_texture_07003900), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 16 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0701FEE8, 1), - gsSPLight(&ccm_seg7_light_0701FEE0, 2), + gsSPLight(&ccm_seg7_lights_0701FEE0.l, 1), + gsSPLight(&ccm_seg7_lights_0701FEE0.a, 2), gsSPVertex(ccm_seg7_vertex_0701FF10, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 5, 0, 4, 0x0), @@ -172,8 +164,8 @@ static const Gfx ccm_seg7_dl_070205E8[] = { gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, ccm_seg7_texture_07003B00), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_0701FF00, 1), - gsSPLight(&ccm_seg7_light_0701FEF8, 2), + gsSPLight(&ccm_seg7_lights_0701FEF8.l, 1), + gsSPLight(&ccm_seg7_lights_0701FEF8.a, 2), gsSPVertex(ccm_seg7_vertex_0701FF70, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ccm/areas/2/macro.inc.c b/levels/ccm/areas/2/macro.inc.c index 7f24433..e4e91f2 100644 --- a/levels/ccm/areas/2/macro.inc.c +++ b/levels/ccm/areas/2/macro.inc.c @@ -5,7 +5,7 @@ const MacroObject ccm_seg7_area_2_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 1843, 4486, -433), MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 1603, 4567, -347), MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 1397, 4530, -287), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -5320, 6656, -6540, /*behParam*/ 54), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -5320, 6656, -6540, /*behParam*/ DIALOG_054), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 0, /*pos*/ -4980, 2180, -1980), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 0, /*pos*/ 6640, -60, -800), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 0, /*pos*/ 6640, -1020, 440), diff --git a/levels/ccm/leveldata.c b/levels/ccm/leveldata.c index 5f73b6d..fef53dd 100644 --- a/levels/ccm/leveldata.c +++ b/levels/ccm/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/ccm/texture.inc.c" diff --git a/levels/ccm/ropeway_lift/2.inc.c b/levels/ccm/ropeway_lift/2.inc.c index a760b62..a22ebf0 100644 --- a/levels/ccm/ropeway_lift/2.inc.c +++ b/levels/ccm/ropeway_lift/2.inc.c @@ -1,12 +1,8 @@ -// 0x07010FB8 - 0x07010FC0 -static const Ambient ccm_seg7_light_07010FB8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07010FC0 - 0x07010FD0 -static const Light ccm_seg7_light_07010FC0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07010FB8 - 0x07010FD0 +static const Lights1 ccm_seg7_lights_07010FB8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07010FD0 - 0x070110C0 static const Vtx ccm_seg7_vertex_07010FD0[] = { @@ -150,8 +146,8 @@ static const Gfx ccm_seg7_dl_07011660[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ccm_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 4 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_07010FC0, 1), - gsSPLight(&ccm_seg7_light_07010FB8, 2), + gsSPLight(&ccm_seg7_lights_07010FB8.l, 1), + gsSPLight(&ccm_seg7_lights_07010FB8.a, 2), gsSPVertex(ccm_seg7_vertex_07010FD0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ccm/script.c b/levels/ccm/script.c index c09db2d..5345a00 100644 --- a/levels/ccm/script.c +++ b/levels/ccm/script.c @@ -3,6 +3,7 @@ #include "behavior_data.h" #include "model_ids.h" #include "seq_ids.h" +#include "dialog_ids.h" #include "segment_symbols.h" #include "level_commands.h" @@ -81,29 +82,29 @@ const LevelScript level_ccm_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ -181, 2918, -1486, /*angle*/ 0, 0, 0, /*behParam*/ 0x0F1E0000, /*beh*/ bhvWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1847, 2815, -321, /*angle*/ 0, -158, 0, /*behParam*/ 0x001F0000, /*beh*/ bhvFadingWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 3349, -4694, -183, /*angle*/ 0, -34, 0, /*behParam*/ 0x00200000, /*beh*/ bhvFadingWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x05, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x14, /*destLevel*/ 0x05, /*destArea*/ 0x02, /*destNode*/ 0x14, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x1E, /*destLevel*/ 0x05, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x1F, /*destLevel*/ 0x05, /*destArea*/ 0x01, /*destNode*/ 0x20, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x20, /*destLevel*/ 0x05, /*destArea*/ 0x01, /*destNode*/ 0x1F, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_CCM, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x14, /*destLevel*/ LEVEL_CCM, /*destArea*/ 0x02, /*destNode*/ 0x14, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x1E, /*destLevel*/ LEVEL_CCM, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x1F, /*destLevel*/ LEVEL_CCM, /*destArea*/ 0x01, /*destNode*/ 0x20, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x20, /*destLevel*/ LEVEL_CCM, /*destArea*/ 0x01, /*destNode*/ 0x1F, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), JUMP_LINK(script_func_local_3), TERRAIN(/*terrainData*/ ccm_seg7_area_1_collision), MACRO_OBJECTS(/*objList*/ ccm_seg7_area_1_macro_objs), - SHOW_DIALOG(/*index*/ 0x00, /*dialogid*/ 0x30), + SHOW_DIALOG(/*index*/ 0x00, DIALOG_048), SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0000, /*seq*/ SEQ_LEVEL_SNOW), TERRAIN_TYPE(/*terrainType*/ TERRAIN_SNOW), END_AREA(), AREA(/*index*/ 2, ccm_geo_0005E8), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -5836, 7465, -6143, /*angle*/ 0, 90, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps64), - WARP_NODE(/*id*/ 0x14, /*destLevel*/ 0x05, /*destArea*/ 0x01, /*destNode*/ 0x14, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x05, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x14, /*destLevel*/ LEVEL_CCM, /*destArea*/ 0x01, /*destNode*/ 0x14, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_CCM, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_4), TERRAIN(/*terrainData*/ ccm_seg7_area_2_collision), MACRO_OBJECTS(/*objList*/ ccm_seg7_area_2_macro_objs), diff --git a/levels/ccm/snowman_base/model.inc.c b/levels/ccm/snowman_base/model.inc.c index caa886a..dcc374a 100644 --- a/levels/ccm/snowman_base/model.inc.c +++ b/levels/ccm/snowman_base/model.inc.c @@ -1,12 +1,8 @@ -// 0x07011940 - 0x07011948 -static const Ambient ccm_seg7_light_07011940 = { - {{0xcc, 0xcc, 0xcc}, 0, {0xcc, 0xcc, 0xcc}, 0} -}; - -// 0x07011948 - 0x07011958 -static const Light ccm_seg7_light_07011948 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07011940 - 0x07011958 +static const Lights1 ccm_seg7_lights_07011940 = gdSPDefLights1( + 0xcc, 0xcc, 0xcc, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07011958 - 0x07012158 ALIGNED8 static const u8 ccm_seg7_texture_07011958[] = { @@ -171,8 +167,8 @@ static const Gfx ccm_seg7_dl_070128E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ccm_seg7_texture_07011958), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_07011948, 1), - gsSPLight(&ccm_seg7_light_07011940, 2), + gsSPLight(&ccm_seg7_lights_07011940.l, 1), + gsSPLight(&ccm_seg7_lights_07011940.a, 2), gsSPVertex(ccm_seg7_vertex_07012158, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 4, 7, 6, 0x0), diff --git a/levels/ccm/snowman_head/1.inc.c b/levels/ccm/snowman_head/1.inc.c index e8d753e..e4aec36 100644 --- a/levels/ccm/snowman_head/1.inc.c +++ b/levels/ccm/snowman_head/1.inc.c @@ -1,12 +1,8 @@ -// 0x07012C38 - 0x07012C40 -static const Ambient ccm_seg7_light_07012C38 = { - {{0xcc, 0xcc, 0xcc}, 0, {0xcc, 0xcc, 0xcc}, 0} -}; - -// 0x07012C40 - 0x07012C50 -static const Light ccm_seg7_light_07012C40 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07012C38 - 0x07012C50 +static const Lights1 ccm_seg7_lights_07012C38 = gdSPDefLights1( + 0xcc, 0xcc, 0xcc, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07012C50 - 0x07012D50 static const Vtx ccm_seg7_vertex_07012C50[] = { @@ -166,8 +162,8 @@ static const Gfx ccm_seg7_dl_070133E0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ccm_seg7_texture_07011958), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ccm_seg7_light_07012C40, 1), - gsSPLight(&ccm_seg7_light_07012C38, 2), + gsSPLight(&ccm_seg7_lights_07012C38.l, 1), + gsSPLight(&ccm_seg7_lights_07012C38.a, 2), gsSPVertex(ccm_seg7_vertex_07012C50, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 4, 7, 6, 0x0), diff --git a/levels/cotmc/areas/1/1/model.inc.c b/levels/cotmc/areas/1/1/model.inc.c index 30d59c0..ec10dc0 100644 --- a/levels/cotmc/areas/1/1/model.inc.c +++ b/levels/cotmc/areas/1/1/model.inc.c @@ -1,72 +1,44 @@ -// 0x07003000 - 0x07003008 -static const Ambient cotmc_seg7_light_07003000 = { - {{0x4b, 0x78, 0x70}, 0, {0x4b, 0x78, 0x70}, 0} -}; +// 0x07003000 - 0x07003018 +static const Lights1 cotmc_seg7_lights_07003000 = gdSPDefLights1( + 0x4b, 0x78, 0x70, + 0x96, 0xf0, 0xe1, 0x28, 0x28, 0x28 +); -// 0x07003008 - 0x07003018 -static const Light cotmc_seg7_light_07003008 = { - {{0x96, 0xf0, 0xe1}, 0, {0x96, 0xf0, 0xe1}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07003018 - 0x07003030 +static const Lights1 cotmc_seg7_lights_07003018 = gdSPDefLights1( + 0x44, 0x44, 0x44, + 0x88, 0x88, 0x88, 0x28, 0x28, 0x28 +); -// 0x07003018 - 0x07003020 -static const Ambient cotmc_seg7_light_07003018 = { - {{0x44, 0x44, 0x44}, 0, {0x44, 0x44, 0x44}, 0} -}; +// 0x07003030 - 0x07003048 +static const Lights1 cotmc_seg7_lights_07003030 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07003020 - 0x07003030 -static const Light cotmc_seg7_light_07003020 = { - {{0x88, 0x88, 0x88}, 0, {0x88, 0x88, 0x88}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07003048 - 0x07003060 +static const Lights1 cotmc_seg7_lights_07003048 = gdSPDefLights1( + 0x00, 0x3c, 0x3c, + 0x00, 0x78, 0x78, 0x28, 0x28, 0x28 +); -// 0x07003030 - 0x07003038 -static const Ambient cotmc_seg7_light_07003030 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x07003060 - 0x07003078 +static const Lights1 cotmc_seg7_lights_07003060 = gdSPDefLights1( + 0x3b, 0x3b, 0x3b, + 0x77, 0x77, 0x77, 0x28, 0x28, 0x28 +); -// 0x07003038 - 0x07003048 -static const Light cotmc_seg7_light_07003038 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07003078 - 0x07003090 +static const Lights1 cotmc_seg7_lights_07003078 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x07003048 - 0x07003050 -static const Ambient cotmc_seg7_light_07003048 = { - {{0x00, 0x3c, 0x3c}, 0, {0x00, 0x3c, 0x3c}, 0} -}; - -// 0x07003050 - 0x07003060 -static const Light cotmc_seg7_light_07003050 = { - {{0x00, 0x78, 0x78}, 0, {0x00, 0x78, 0x78}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07003060 - 0x07003068 -static const Ambient cotmc_seg7_light_07003060 = { - {{0x3b, 0x3b, 0x3b}, 0, {0x3b, 0x3b, 0x3b}, 0} -}; - -// 0x07003068 - 0x07003078 -static const Light cotmc_seg7_light_07003068 = { - {{0x77, 0x77, 0x77}, 0, {0x77, 0x77, 0x77}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07003078 - 0x07003080 -static const Ambient cotmc_seg7_light_07003078 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x07003080 - 0x07003090 -static const Light cotmc_seg7_light_07003080 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07003090 - 0x07003098 -static const Ambient cotmc_seg7_light_07003090 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x07003098 - 0x070030A8 -static const Light cotmc_seg7_light_07003098 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07003090 - 0x070030A8 +static const Lights1 cotmc_seg7_lights_07003090 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x070030A8 - 0x070031A8 static const Vtx cotmc_seg7_vertex_070030A8[] = { @@ -1197,8 +1169,8 @@ static const Gfx cotmc_seg7_dl_070066E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cave_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&cotmc_seg7_light_07003008, 1), - gsSPLight(&cotmc_seg7_light_07003000, 2), + gsSPLight(&cotmc_seg7_lights_07003000.l, 1), + gsSPLight(&cotmc_seg7_lights_07003000.a, 2), gsSPVertex(cotmc_seg7_vertex_070030A8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 6, 7, 5, 0x0), @@ -1266,8 +1238,8 @@ static const Gfx cotmc_seg7_dl_070066E8[] = { gsSP2Triangles( 4, 1, 3, 0x0, 5, 6, 7, 0x0), gsSP2Triangles( 5, 8, 6, 0x0, 5, 9, 8, 0x0), gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0), - gsSPLight(&cotmc_seg7_light_07003020, 1), - gsSPLight(&cotmc_seg7_light_07003018, 2), + gsSPLight(&cotmc_seg7_lights_07003018.l, 1), + gsSPLight(&cotmc_seg7_lights_07003018.a, 2), gsSPVertex(cotmc_seg7_vertex_07003A48, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 4, 2, 5, 0x0), @@ -1275,14 +1247,14 @@ static const Gfx cotmc_seg7_dl_070066E8[] = { gsSP2Triangles( 6, 5, 8, 0x0, 6, 8, 9, 0x0), gsSP2Triangles( 8, 10, 11, 0x0, 9, 8, 11, 0x0), gsSP2Triangles(11, 10, 7, 0x0, 11, 7, 3, 0x0), - gsSPLight(&cotmc_seg7_light_07003038, 1), - gsSPLight(&cotmc_seg7_light_07003030, 2), + gsSPLight(&cotmc_seg7_lights_07003030.l, 1), + gsSPLight(&cotmc_seg7_lights_07003030.a, 2), gsSPVertex(cotmc_seg7_vertex_07003B08, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 2, 4, 3, 0x0, 1, 5, 2, 0x0), gsSP2Triangles( 5, 6, 2, 0x0, 2, 6, 4, 0x0), - gsSPLight(&cotmc_seg7_light_07003050, 1), - gsSPLight(&cotmc_seg7_light_07003048, 2), + gsSPLight(&cotmc_seg7_lights_07003048.l, 1), + gsSPLight(&cotmc_seg7_lights_07003048.a, 2), gsSPVertex(cotmc_seg7_vertex_07003B78, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 3, 5, 7, 0x0), @@ -1298,22 +1270,22 @@ static const Gfx cotmc_seg7_dl_07006C18[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cotmc_seg7_texture_07002000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&cotmc_seg7_light_07003068, 1), - gsSPLight(&cotmc_seg7_light_07003060, 2), + gsSPLight(&cotmc_seg7_lights_07003060.l, 1), + gsSPLight(&cotmc_seg7_lights_07003060.a, 2), gsSPVertex(cotmc_seg7_vertex_07003C38, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 0, 3, 0x0, 1, 5, 2, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 7, 4, 9, 0x0), gsSP2Triangles( 7, 9, 8, 0x0, 4, 3, 9, 0x0), - gsSPLight(&cotmc_seg7_light_07003020, 1), - gsSPLight(&cotmc_seg7_light_07003018, 2), + gsSPLight(&cotmc_seg7_lights_07003018.l, 1), + gsSPLight(&cotmc_seg7_lights_07003018.a, 2), gsSPVertex(cotmc_seg7_vertex_07003CD8, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 2, 5, 0x0, 4, 0, 2, 0x0), gsSP2Triangles( 5, 6, 4, 0x0, 7, 4, 6, 0x0), gsSP2Triangles( 7, 8, 4, 0x0, 8, 9, 4, 0x0), - gsSPLight(&cotmc_seg7_light_07003038, 1), - gsSPLight(&cotmc_seg7_light_07003030, 2), + gsSPLight(&cotmc_seg7_lights_07003030.l, 1), + gsSPLight(&cotmc_seg7_lights_07003030.a, 2), gsSPVertex(cotmc_seg7_vertex_07003D78, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -1369,8 +1341,8 @@ static const Gfx cotmc_seg7_dl_07006F88[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cotmc_seg7_texture_07001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&cotmc_seg7_light_07003020, 1), - gsSPLight(&cotmc_seg7_light_07003018, 2), + gsSPLight(&cotmc_seg7_lights_07003018.l, 1), + gsSPLight(&cotmc_seg7_lights_07003018.a, 2), gsSPVertex(cotmc_seg7_vertex_070043E8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 5, 7, 8, 0x0), @@ -1382,8 +1354,8 @@ static const Gfx cotmc_seg7_dl_07006F88[] = { gsSPVertex(cotmc_seg7_vertex_070044E8, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 2, 3, 4, 0x0, 4, 3, 5, 0x0), - gsSPLight(&cotmc_seg7_light_07003038, 1), - gsSPLight(&cotmc_seg7_light_07003030, 2), + gsSPLight(&cotmc_seg7_lights_07003030.l, 1), + gsSPLight(&cotmc_seg7_lights_07003030.a, 2), gsSPVertex(cotmc_seg7_vertex_07004548, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 2, 3, 5, 0x0, 2, 6, 3, 0x0), @@ -1407,8 +1379,8 @@ static const Gfx cotmc_seg7_dl_07006F88[] = { gsSPVertex(cotmc_seg7_vertex_07004838, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 3, 4, 1, 0x0, 5, 6, 7, 0x0), - gsSPLight(&cotmc_seg7_light_07003050, 1), - gsSPLight(&cotmc_seg7_light_07003048, 2), + gsSPLight(&cotmc_seg7_lights_07003048.l, 1), + gsSPLight(&cotmc_seg7_lights_07003048.a, 2), gsSPVertex(cotmc_seg7_vertex_070048B8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 0, 4, 3, 0x0, 0, 5, 4, 0x0), @@ -1426,8 +1398,8 @@ static const Gfx cotmc_seg7_dl_07007248[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cave_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&cotmc_seg7_light_07003038, 1), - gsSPLight(&cotmc_seg7_light_07003030, 2), + gsSPLight(&cotmc_seg7_lights_07003030.l, 1), + gsSPLight(&cotmc_seg7_lights_07003030.a, 2), gsSPVertex(cotmc_seg7_vertex_070049B8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 2, 4, 3, 0x0, 4, 2, 5, 0x0), @@ -1526,8 +1498,8 @@ static const Gfx cotmc_seg7_dl_07007688[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cotmc_seg7_texture_07002800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 16 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&cotmc_seg7_light_07003008, 1), - gsSPLight(&cotmc_seg7_light_07003000, 2), + gsSPLight(&cotmc_seg7_lights_07003000.l, 1), + gsSPLight(&cotmc_seg7_lights_07003000.a, 2), gsSPVertex(cotmc_seg7_vertex_07005668, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1541,8 +1513,8 @@ static const Gfx cotmc_seg7_dl_07007688[] = { gsSPVertex(cotmc_seg7_vertex_07005848, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&cotmc_seg7_light_07003068, 1), - gsSPLight(&cotmc_seg7_light_07003060, 2), + gsSPLight(&cotmc_seg7_lights_07003060.l, 1), + gsSPLight(&cotmc_seg7_lights_07003060.a, 2), gsSPVertex(cotmc_seg7_vertex_070058C8, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 1, 4, 5, 0x0, 1, 3, 4, 0x0), @@ -1563,15 +1535,15 @@ static const Gfx cotmc_seg7_dl_07007688[] = { gsSP2Triangles( 4, 5, 6, 0x0, 6, 7, 8, 0x0), gsSP2Triangles( 6, 5, 7, 0x0, 5, 9, 7, 0x0), gsSP2Triangles(10, 11, 2, 0x0, 3, 10, 2, 0x0), - gsSPLight(&cotmc_seg7_light_07003020, 1), - gsSPLight(&cotmc_seg7_light_07003018, 2), + gsSPLight(&cotmc_seg7_lights_07003018.l, 1), + gsSPLight(&cotmc_seg7_lights_07003018.a, 2), gsSPVertex(cotmc_seg7_vertex_07005C48, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 3, 2, 0x0, 4, 5, 3, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 6, 0x0), gsSP2Triangles( 6, 10, 7, 0x0, 9, 11, 10, 0x0), - gsSPLight(&cotmc_seg7_light_07003080, 1), - gsSPLight(&cotmc_seg7_light_07003078, 2), + gsSPLight(&cotmc_seg7_lights_07003078.l, 1), + gsSPLight(&cotmc_seg7_lights_07003078.a, 2), gsSPVertex(cotmc_seg7_vertex_07005D08, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 2, 3, 4, 0x0, 2, 4, 5, 0x0), @@ -1584,12 +1556,12 @@ static const Gfx cotmc_seg7_dl_07007920[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cotmc_seg7_texture_07000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&cotmc_seg7_light_07003098, 1), - gsSPLight(&cotmc_seg7_light_07003090, 2), + gsSPLight(&cotmc_seg7_lights_07003090.l, 1), + gsSPLight(&cotmc_seg7_lights_07003090.a, 2), gsSPVertex(cotmc_seg7_vertex_07005DA8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&cotmc_seg7_light_07003020, 1), - gsSPLight(&cotmc_seg7_light_07003018, 2), + gsSPLight(&cotmc_seg7_lights_07003018.l, 1), + gsSPLight(&cotmc_seg7_lights_07003018.a, 2), gsSPVertex(cotmc_seg7_vertex_07005DE8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 4, 3, 2, 0x0, 5, 4, 2, 0x0), @@ -1612,8 +1584,8 @@ static const Gfx cotmc_seg7_dl_07007920[] = { gsSP2Triangles(11, 8, 7, 0x0, 9, 12, 10, 0x0), gsSP2Triangles( 7, 13, 11, 0x0, 14, 11, 13, 0x0), gsSP2Triangles(14, 12, 11, 0x0, 12, 14, 10, 0x0), - gsSPLight(&cotmc_seg7_light_07003038, 1), - gsSPLight(&cotmc_seg7_light_07003030, 2), + gsSPLight(&cotmc_seg7_lights_07003030.l, 1), + gsSPLight(&cotmc_seg7_lights_07003030.a, 2), gsSPVertex(cotmc_seg7_vertex_070060C8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 3, 0x0, 4, 3, 7, 0x0), @@ -1634,8 +1606,8 @@ static const Gfx cotmc_seg7_dl_07007920[] = { // 0x07007B90 - 0x07007D48 static const Gfx cotmc_seg7_dl_07007B90[] = { - gsSPLight(&cotmc_seg7_light_07003098, 1), - gsSPLight(&cotmc_seg7_light_07003090, 2), + gsSPLight(&cotmc_seg7_lights_07003090.l, 1), + gsSPLight(&cotmc_seg7_lights_07003090.a, 2), gsSPVertex(cotmc_seg7_vertex_07006358, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 0, 4, 3, 0x0, 0, 2, 5, 0x0), @@ -1663,8 +1635,8 @@ static const Gfx cotmc_seg7_dl_07007B90[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 3, 4, 1, 0x0, 5, 4, 3, 0x0), gsSP1Triangle( 5, 6, 4, 0x0), - gsSPLight(&cotmc_seg7_light_07003038, 1), - gsSPLight(&cotmc_seg7_light_07003030, 2), + gsSPLight(&cotmc_seg7_lights_07003030.l, 1), + gsSPLight(&cotmc_seg7_lights_07003030.a, 2), gsSPVertex(cotmc_seg7_vertex_070066A8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/cotmc/areas/1/2/model.inc.c b/levels/cotmc/areas/1/2/model.inc.c index bf9609d..8583d21 100644 --- a/levels/cotmc/areas/1/2/model.inc.c +++ b/levels/cotmc/areas/1/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x07007E88 - 0x07007E90 -static const Ambient cotmc_seg7_light_07007E88 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07007E90 - 0x07007EA0 -static const Light cotmc_seg7_light_07007E90 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07007E88 - 0x07007EA0 +static const Lights1 cotmc_seg7_lights_07007E88 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07007EA0 - 0x07007F90 static const Vtx cotmc_seg7_vertex_07007EA0[] = { @@ -596,8 +592,8 @@ static const Gfx cotmc_seg7_dl_07009B50[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cotmc_seg7_texture_07001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&cotmc_seg7_light_07007E90, 1), - gsSPLight(&cotmc_seg7_light_07007E88, 2), + gsSPLight(&cotmc_seg7_lights_07007E88.l, 1), + gsSPLight(&cotmc_seg7_lights_07007E88.a, 2), gsSPVertex(cotmc_seg7_vertex_07007EA0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/levels/cotmc/areas/1/macro.inc.c b/levels/cotmc/areas/1/macro.inc.c index f9715f3..0792e63 100644 --- a/levels/cotmc/areas/1/macro.inc.c +++ b/levels/cotmc/areas/1/macro.inc.c @@ -11,7 +11,7 @@ const MacroObject cotmc_seg7_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_1up, /*yaw*/ 0, /*pos*/ 900, 260, -3620), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 0, /*pos*/ 0, -170, -1660), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 0, /*pos*/ -20, -211, -3940), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -71, 20, 720, /*behParam*/ 123), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -71, 20, 720, /*behParam*/ DIALOG_123), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 200, -291, -5600), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 980, 260, -3430), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ -540, -352, -5940), diff --git a/levels/cotmc/leveldata.c b/levels/cotmc/leveldata.c index 4687e35..ae5abbe 100644 --- a/levels/cotmc/leveldata.c +++ b/levels/cotmc/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/cotmc/texture.inc.c" diff --git a/levels/cotmc/script.c b/levels/cotmc/script.c index 0cdc5a9..2cef52f 100644 --- a/levels/cotmc/script.c +++ b/levels/cotmc/script.c @@ -3,6 +3,7 @@ #include "behavior_data.h" #include "model_ids.h" #include "seq_ids.h" +#include "dialog_ids.h" #include "segment_symbols.h" #include "level_commands.h" @@ -45,15 +46,15 @@ const LevelScript level_cotmc_entry[] = { AREA(/*index*/ 1, cotmc_geo_0001A0), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -4185, 1020, -47, /*angle*/ 0, 90, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps64), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x1C, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF3, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x14, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_COTMC, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF3, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x14, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_2), JUMP_LINK(script_func_local_1), TERRAIN(/*terrainData*/ cotmc_seg7_collision_level), MACRO_OBJECTS(/*objList*/ cotmc_seg7_macro_objs), - SHOW_DIALOG(/*index*/ 0x00, /*dialogid*/ 0x82), + SHOW_DIALOG(/*index*/ 0x00, DIALOG_130), SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0004, /*seq*/ SEQ_LEVEL_UNDERGROUND), TERRAIN_TYPE(/*terrainType*/ TERRAIN_STONE), END_AREA(), diff --git a/levels/course_defines.h b/levels/course_defines.h new file mode 100644 index 0000000..ee41e71 --- /dev/null +++ b/levels/course_defines.h @@ -0,0 +1,29 @@ +// Define lists for list of course for macros. Each of the following fields are described: +// Argument 1: Course macro for define. +// Argument 2, 3, 4, 5: Each hex digit is an index into D_8032E8A4 which is for a table of cutscene dance indexes. Defined by course index so we must define these. +DEFINE_COURSE(COURSE_BOB, 0x00, 0x20, 0x22, 0x04) // (1) Bob Omb Battlefield +DEFINE_COURSE(COURSE_WF, 0x00, 0x00, 0x02, 0x04) // (2) Whomp's Fortress +DEFINE_COURSE(COURSE_JRB, 0x22, 0x22, 0x22, 0x04) // (3) Jolly Rodger's Bay +DEFINE_COURSE(COURSE_CCM, 0x00, 0x22, 0x00, 0x04) // (4) Cool Cool Mountain +DEFINE_COURSE(COURSE_BBH, 0x22, 0x22, 0x22, 0x04) // (5) Big Boo's Haunt +DEFINE_COURSE(COURSE_HMC, 0x22, 0x22, 0x22, 0x04) // (6) Hazy Maze Cave +DEFINE_COURSE(COURSE_LLL, 0x12, 0x12, 0x12, 0x04) // (7) Lethal Lava Land +DEFINE_COURSE(COURSE_SSL, 0x02, 0x22, 0x22, 0x04) // (8) Shifting Sand Land +DEFINE_COURSE(COURSE_DDD, 0x22, 0x22, 0x22, 0x04) // (9) Dire Dire Docks +DEFINE_COURSE(COURSE_SL, 0x20, 0x20, 0x20, 0x04) // (10) Snowman's Land +DEFINE_COURSE(COURSE_WDW, 0x22, 0x01, 0x22, 0x04) // (11) Wet Dry World +DEFINE_COURSE(COURSE_TTM, 0x00, 0x00, 0x00, 0x04) // (12) Tall Tall Mountain +DEFINE_COURSE(COURSE_THI, 0x11, 0x11, 0x12, 0x04) // (13) Tiny Huge Island +DEFINE_COURSE(COURSE_TTC, 0x22, 0x22, 0x22, 0x04) // (14) Tick Tock Clock +DEFINE_COURSE(COURSE_RR, 0x00, 0x00, 0x00, 0x04) // (15) Rainbow Ride +DEFINE_COURSES_END() +DEFINE_BONUS_COURSE(COURSE_BITDW, 0x43, 0x44, 0x44, 0x04) // (16) Bowser in the Dark World +DEFINE_BONUS_COURSE(COURSE_BITFS, 0x43, 0x44, 0x44, 0x04) // (17) Bowser in the Fire Sea +DEFINE_BONUS_COURSE(COURSE_BITS, 0x43, 0x44, 0x44, 0x04) // (18) Bowser in the Sky +DEFINE_BONUS_COURSE(COURSE_PSS, 0x42, 0x44, 0x44, 0x04) // (19) Princess's Secret Slide +DEFINE_BONUS_COURSE(COURSE_COTMC, 0x44, 0x44, 0x44, 0x04) // (20) Cavern of the Metal Cap +DEFINE_BONUS_COURSE(COURSE_TOTWC, 0x40, 0x44, 0x44, 0x04) // (21) Tower of the Wing Cap +DEFINE_BONUS_COURSE(COURSE_VCUTM, 0x42, 0x44, 0x44, 0x04) // (22) Vanish Cap Under the Moat +DEFINE_BONUS_COURSE(COURSE_WMOTR, 0x40, 0x44, 0x44, 0x04) // (23) Winged Mario over the Rainbow +DEFINE_BONUS_COURSE(COURSE_SA, 0x42, 0x44, 0x44, 0x04) // (24) Secret Aquarium +DEFINE_BONUS_COURSE(COURSE_CAKE_END, 0x44, 0x44, 0x44, 0x04) // (25) The End (Cake Scene) diff --git a/levels/ddd/areas/1/1/model.inc.c b/levels/ddd/areas/1/1/model.inc.c index 7a30d0f..9fdf2de 100644 --- a/levels/ddd/areas/1/1/model.inc.c +++ b/levels/ddd/areas/1/1/model.inc.c @@ -1,42 +1,26 @@ -// 0x07003800 - 0x07003808 -static const Ambient ddd_seg7_light_07003800 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; +// 0x07003800 - 0x07003818 +static const Lights1 ddd_seg7_lights_07003800 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07003808 - 0x07003818 -static const Light ddd_seg7_light_07003808 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07003818 - 0x07003830 +static const Lights1 ddd_seg7_lights_07003818 = gdSPDefLights1( + 0x1a, 0x1a, 0x3f, + 0x69, 0x69, 0xfe, 0x28, 0x28, 0x28 +); -// 0x07003818 - 0x07003820 -static const Ambient ddd_seg7_light_07003818 = { - {{0x1a, 0x1a, 0x3f}, 0, {0x1a, 0x1a, 0x3f}, 0} -}; +// 0x07003830 - 0x07003848 +static const Lights1 ddd_seg7_lights_07003830 = gdSPDefLights1( + 0x26, 0x26, 0x3f, + 0x9b, 0x9b, 0xff, 0x28, 0x28, 0x28 +); -// 0x07003820 - 0x07003830 -static const Light ddd_seg7_light_07003820 = { - {{0x69, 0x69, 0xfe}, 0, {0x69, 0x69, 0xfe}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07003830 - 0x07003838 -static const Ambient ddd_seg7_light_07003830 = { - {{0x26, 0x26, 0x3f}, 0, {0x26, 0x26, 0x3f}, 0} -}; - -// 0x07003838 - 0x07003848 -static const Light ddd_seg7_light_07003838 = { - {{0x9b, 0x9b, 0xff}, 0, {0x9b, 0x9b, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07003848 - 0x07003850 -static const Ambient ddd_seg7_light_07003848 = { - {{0x32, 0x32, 0x3f}, 0, {0x32, 0x32, 0x3f}, 0} -}; - -// 0x07003850 - 0x07003860 -static const Light ddd_seg7_light_07003850 = { - {{0xc8, 0xc8, 0xff}, 0, {0xc8, 0xc8, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07003848 - 0x07003860 +static const Lights1 ddd_seg7_lights_07003848 = gdSPDefLights1( + 0x32, 0x32, 0x3f, + 0xc8, 0xc8, 0xff, 0x28, 0x28, 0x28 +); // 0x07003860 - 0x07003960 static const Vtx ddd_seg7_vertex_07003860[] = { @@ -345,8 +329,8 @@ static const Gfx ddd_seg7_dl_07004700[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ddd_seg7_light_07003808, 1), - gsSPLight(&ddd_seg7_light_07003800, 2), + gsSPLight(&ddd_seg7_lights_07003800.l, 1), + gsSPLight(&ddd_seg7_lights_07003800.a, 2), gsSPVertex(ddd_seg7_vertex_07003860, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 5, 6, 7, 0x0), @@ -367,12 +351,12 @@ static const Gfx ddd_seg7_dl_07004700[] = { gsSP2Triangles( 2, 3, 4, 0x0, 4, 3, 5, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0), gsSP1Triangle( 5, 8, 7, 0x0), - gsSPLight(&ddd_seg7_light_07003820, 1), - gsSPLight(&ddd_seg7_light_07003818, 2), + gsSPLight(&ddd_seg7_lights_07003818.l, 1), + gsSPLight(&ddd_seg7_lights_07003818.a, 2), gsSPVertex(ddd_seg7_vertex_07003AF0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&ddd_seg7_light_07003838, 1), - gsSPLight(&ddd_seg7_light_07003830, 2), + gsSPLight(&ddd_seg7_lights_07003830.l, 1), + gsSPLight(&ddd_seg7_lights_07003830.a, 2), gsSPVertex(ddd_seg7_vertex_07003B30, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 4, 6, 0x0), @@ -418,8 +402,8 @@ static const Gfx ddd_seg7_dl_07004700[] = { gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 0, 4, 1, 0x0, 5, 6, 3, 0x0), gsSP2Triangles( 5, 7, 6, 0x0, 6, 7, 8, 0x0), - gsSPLight(&ddd_seg7_light_07003850, 1), - gsSPLight(&ddd_seg7_light_07003848, 2), + gsSPLight(&ddd_seg7_lights_07003848.l, 1), + gsSPLight(&ddd_seg7_lights_07003848.a, 2), gsSPVertex(ddd_seg7_vertex_070041C0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 1, 4, 5, 0x0, 4, 1, 6, 0x0), diff --git a/levels/ddd/areas/1/2/model.inc.c b/levels/ddd/areas/1/2/model.inc.c index 103fbbd..2bf152b 100644 --- a/levels/ddd/areas/1/2/model.inc.c +++ b/levels/ddd/areas/1/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x07004DA8 - 0x07004DB0 -static const Ambient ddd_seg7_light_07004DA8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07004DB0 - 0x07004DC0 -static const Light ddd_seg7_light_07004DB0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07004DA8 - 0x07004DC0 +static const Lights1 ddd_seg7_lights_07004DA8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07004DC0 - 0x07004EC0 static const Vtx ddd_seg7_vertex_07004DC0[] = { @@ -172,8 +168,8 @@ static const Gfx ddd_seg7_dl_07005570[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09007800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ddd_seg7_light_07004DB0, 1), - gsSPLight(&ddd_seg7_light_07004DA8, 2), + gsSPLight(&ddd_seg7_lights_07004DA8.l, 1), + gsSPLight(&ddd_seg7_lights_07004DA8.a, 2), gsSPVertex(ddd_seg7_vertex_07004DC0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ddd/areas/1/3/model.inc.c b/levels/ddd/areas/1/3/model.inc.c index 6d335b7..80f180c 100644 --- a/levels/ddd/areas/1/3/model.inc.c +++ b/levels/ddd/areas/1/3/model.inc.c @@ -1,12 +1,8 @@ -// 0x07005850 - 0x07005858 -static const Ambient ddd_seg7_light_07005850 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07005858 - 0x07005868 -static const Light ddd_seg7_light_07005858 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07005850 - 0x07005868 +static const Lights1 ddd_seg7_lights_07005850 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07005868 - 0x07005968 static const Vtx ddd_seg7_vertex_07005868[] = { @@ -66,8 +62,8 @@ static const Gfx ddd_seg7_dl_07005AF8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_0900B800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ddd_seg7_light_07005858, 1), - gsSPLight(&ddd_seg7_light_07005850, 2), + gsSPLight(&ddd_seg7_lights_07005850.l, 1), + gsSPLight(&ddd_seg7_lights_07005850.a, 2), gsSPVertex(ddd_seg7_vertex_07005868, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 5, 4, 6, 0x0), diff --git a/levels/ddd/areas/2/1/model.inc.c b/levels/ddd/areas/2/1/model.inc.c index 7391f21..2c51962 100644 --- a/levels/ddd/areas/2/1/model.inc.c +++ b/levels/ddd/areas/2/1/model.inc.c @@ -1,52 +1,32 @@ -// 0x07005FC8 - 0x07005FD0 -static const Ambient ddd_seg7_light_07005FC8 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; +// 0x07005FC8 - 0x07005FE0 +static const Lights1 ddd_seg7_lights_07005FC8 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x07005FD0 - 0x07005FE0 -static const Light ddd_seg7_light_07005FD0 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07005FE0 - 0x07005FF8 +static const Lights1 ddd_seg7_lights_07005FE0 = gdSPDefLights1( + 0x1b, 0x1b, 0x1b, + 0x44, 0x44, 0x44, 0x28, 0x28, 0x28 +); -// 0x07005FE0 - 0x07005FE8 -static const Ambient ddd_seg7_light_07005FE0 = { - {{0x1b, 0x1b, 0x1b}, 0, {0x1b, 0x1b, 0x1b}, 0} -}; +// 0x07005FF8 - 0x07006010 +static const Lights1 ddd_seg7_lights_07005FF8 = gdSPDefLights1( + 0x2f, 0x2f, 0x2f, + 0x77, 0x77, 0x77, 0x28, 0x28, 0x28 +); -// 0x07005FE8 - 0x07005FF8 -static const Light ddd_seg7_light_07005FE8 = { - {{0x44, 0x44, 0x44}, 0, {0x44, 0x44, 0x44}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07006010 - 0x07006028 +static const Lights1 ddd_seg7_lights_07006010 = gdSPDefLights1( + 0x44, 0x44, 0x44, + 0xaa, 0xaa, 0xaa, 0x28, 0x28, 0x28 +); -// 0x07005FF8 - 0x07006000 -static const Ambient ddd_seg7_light_07005FF8 = { - {{0x2f, 0x2f, 0x2f}, 0, {0x2f, 0x2f, 0x2f}, 0} -}; - -// 0x07006000 - 0x07006010 -static const Light ddd_seg7_light_07006000 = { - {{0x77, 0x77, 0x77}, 0, {0x77, 0x77, 0x77}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07006010 - 0x07006018 -static const Ambient ddd_seg7_light_07006010 = { - {{0x44, 0x44, 0x44}, 0, {0x44, 0x44, 0x44}, 0} -}; - -// 0x07006018 - 0x07006028 -static const Light ddd_seg7_light_07006018 = { - {{0xaa, 0xaa, 0xaa}, 0, {0xaa, 0xaa, 0xaa}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07006028 - 0x07006030 -static const Ambient ddd_seg7_light_07006028 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07006030 - 0x07006040 -static const Light ddd_seg7_light_07006030 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07006028 - 0x07006040 +static const Lights1 ddd_seg7_lights_07006028 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07006040 - 0x07006080 static const Vtx ddd_seg7_vertex_07006040[] = { @@ -363,20 +343,20 @@ static const Gfx ddd_seg7_dl_07006E20[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09007800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ddd_seg7_light_07005FD0, 1), - gsSPLight(&ddd_seg7_light_07005FC8, 2), + gsSPLight(&ddd_seg7_lights_07005FC8.l, 1), + gsSPLight(&ddd_seg7_lights_07005FC8.a, 2), gsSPVertex(ddd_seg7_vertex_07006040, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&ddd_seg7_light_07005FE8, 1), - gsSPLight(&ddd_seg7_light_07005FE0, 2), + gsSPLight(&ddd_seg7_lights_07005FE0.l, 1), + gsSPLight(&ddd_seg7_lights_07005FE0.a, 2), gsSPVertex(ddd_seg7_vertex_07006080, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&ddd_seg7_light_07006000, 1), - gsSPLight(&ddd_seg7_light_07005FF8, 2), + gsSPLight(&ddd_seg7_lights_07005FF8.l, 1), + gsSPLight(&ddd_seg7_lights_07005FF8.a, 2), gsSPVertex(ddd_seg7_vertex_070060C0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&ddd_seg7_light_07006018, 1), - gsSPLight(&ddd_seg7_light_07006010, 2), + gsSPLight(&ddd_seg7_lights_07006010.l, 1), + gsSPLight(&ddd_seg7_lights_07006010.a, 2), gsSPVertex(ddd_seg7_vertex_07006100, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -387,23 +367,23 @@ static const Gfx ddd_seg7_dl_07006EE0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ddd_seg7_light_07005FE8, 1), - gsSPLight(&ddd_seg7_light_07005FE0, 2), + gsSPLight(&ddd_seg7_lights_07005FE0.l, 1), + gsSPLight(&ddd_seg7_lights_07005FE0.a, 2), gsSPVertex(ddd_seg7_vertex_07006140, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&ddd_seg7_light_07006000, 1), - gsSPLight(&ddd_seg7_light_07005FF8, 2), + gsSPLight(&ddd_seg7_lights_07005FF8.l, 1), + gsSPLight(&ddd_seg7_lights_07005FF8.a, 2), gsSPVertex(ddd_seg7_vertex_070061C0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&ddd_seg7_light_07006018, 1), - gsSPLight(&ddd_seg7_light_07006010, 2), + gsSPLight(&ddd_seg7_lights_07006010.l, 1), + gsSPLight(&ddd_seg7_lights_07006010.a, 2), gsSPVertex(ddd_seg7_vertex_07006240, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&ddd_seg7_light_07006030, 1), - gsSPLight(&ddd_seg7_light_07006028, 2), + gsSPLight(&ddd_seg7_lights_07006028.l, 1), + gsSPLight(&ddd_seg7_lights_07006028.a, 2), gsSPVertex(ddd_seg7_vertex_070062C0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 4, 3, 0x0, 3, 5, 7, 0x0), @@ -427,20 +407,20 @@ static const Gfx ddd_seg7_dl_07007080[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ddd_seg7_light_07005FE8, 1), - gsSPLight(&ddd_seg7_light_07005FE0, 2), + gsSPLight(&ddd_seg7_lights_07005FE0.l, 1), + gsSPLight(&ddd_seg7_lights_07005FE0.a, 2), gsSPVertex(ddd_seg7_vertex_07006520, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&ddd_seg7_light_07006000, 1), - gsSPLight(&ddd_seg7_light_07005FF8, 2), + gsSPLight(&ddd_seg7_lights_07005FF8.l, 1), + gsSPLight(&ddd_seg7_lights_07005FF8.a, 2), gsSPVertex(ddd_seg7_vertex_07006560, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&ddd_seg7_light_07006018, 1), - gsSPLight(&ddd_seg7_light_07006010, 2), + gsSPLight(&ddd_seg7_lights_07006010.l, 1), + gsSPLight(&ddd_seg7_lights_07006010.a, 2), gsSPVertex(ddd_seg7_vertex_070065A0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&ddd_seg7_light_07006030, 1), - gsSPLight(&ddd_seg7_light_07006028, 2), + gsSPLight(&ddd_seg7_lights_07006028.l, 1), + gsSPLight(&ddd_seg7_lights_07006028.a, 2), gsSPVertex(ddd_seg7_vertex_070065E0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 6, 8, 0x0), diff --git a/levels/ddd/areas/2/2/model.inc.c b/levels/ddd/areas/2/2/model.inc.c index b954eb6..68fb726 100644 --- a/levels/ddd/areas/2/2/model.inc.c +++ b/levels/ddd/areas/2/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x070074C8 - 0x070074D0 -static const Ambient ddd_seg7_light_070074C8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x070074D0 - 0x070074E0 -static const Light ddd_seg7_light_070074D0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070074C8 - 0x070074E0 +static const Lights1 ddd_seg7_lights_070074C8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070074E0 - 0x070075E0 static const Vtx ddd_seg7_vertex_070074E0[] = { @@ -138,8 +134,8 @@ static const Gfx ddd_seg7_dl_07007AF0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09007800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ddd_seg7_light_070074D0, 1), - gsSPLight(&ddd_seg7_light_070074C8, 2), + gsSPLight(&ddd_seg7_lights_070074C8.l, 1), + gsSPLight(&ddd_seg7_lights_070074C8.a, 2), gsSPVertex(ddd_seg7_vertex_070074E0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ddd/areas/2/3/model.inc.c b/levels/ddd/areas/2/3/model.inc.c index 25ef3da..80af286 100644 --- a/levels/ddd/areas/2/3/model.inc.c +++ b/levels/ddd/areas/2/3/model.inc.c @@ -1,12 +1,8 @@ -// 0x07007D18 - 0x07007D20 -static const Ambient ddd_seg7_light_07007D18 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07007D20 - 0x07007D30 -static const Light ddd_seg7_light_07007D20 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07007D18 - 0x07007D30 +static const Lights1 ddd_seg7_lights_07007D18 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07007D30 - 0x07007E20 static const Vtx ddd_seg7_vertex_07007D30[] = { @@ -253,8 +249,8 @@ static const Gfx ddd_seg7_dl_070088F0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ddd_seg7_texture_07001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ddd_seg7_light_07007D20, 1), - gsSPLight(&ddd_seg7_light_07007D18, 2), + gsSPLight(&ddd_seg7_lights_07007D18.l, 1), + gsSPLight(&ddd_seg7_lights_07007D18.a, 2), gsSPVertex(ddd_seg7_vertex_07007D30, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ddd/areas/2/5/model.inc.c b/levels/ddd/areas/2/5/model.inc.c index 3f50e1b..0db444c 100644 --- a/levels/ddd/areas/2/5/model.inc.c +++ b/levels/ddd/areas/2/5/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700B0D8 - 0x0700B0E0 -static const Ambient ddd_seg7_light_0700B0D8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0700B0E0 - 0x0700B0F0 -static const Light ddd_seg7_light_0700B0E0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700B0D8 - 0x0700B0F0 +static const Lights1 ddd_seg7_lights_0700B0D8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700B0F0 - 0x0700B1D0 static const Vtx ddd_seg7_vertex_0700B0F0[] = { @@ -167,8 +163,8 @@ static const Gfx ddd_seg7_dl_0700B890[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ddd_seg7_texture_07002000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ddd_seg7_light_0700B0E0, 1), - gsSPLight(&ddd_seg7_light_0700B0D8, 2), + gsSPLight(&ddd_seg7_lights_0700B0D8.l, 1), + gsSPLight(&ddd_seg7_lights_0700B0D8.a, 2), gsSPVertex(ddd_seg7_vertex_0700B0F0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 0, 5, 0x0, 6, 7, 8, 0x0), diff --git a/levels/ddd/areas/2/6/model.inc.c b/levels/ddd/areas/2/6/model.inc.c index 8d7d4ca..5fe61e4 100644 --- a/levels/ddd/areas/2/6/model.inc.c +++ b/levels/ddd/areas/2/6/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700BB50 - 0x0700BB58 -static const Ambient ddd_seg7_light_0700BB50 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700BB58 - 0x0700BB68 -static const Light ddd_seg7_light_0700BB58 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700BB50 - 0x0700BB68 +static const Lights1 ddd_seg7_lights_0700BB50 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700BB68 - 0x0700BC58 static const Vtx ddd_seg7_vertex_0700BB68[] = { @@ -312,8 +308,8 @@ static const Gfx ddd_seg7_dl_0700C9D8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_0900A000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ddd_seg7_light_0700BB58, 1), - gsSPLight(&ddd_seg7_light_0700BB50, 2), + gsSPLight(&ddd_seg7_lights_0700BB50.l, 1), + gsSPLight(&ddd_seg7_lights_0700BB50.a, 2), gsSPVertex(ddd_seg7_vertex_0700BB68, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ddd/areas/2/macro.inc.c b/levels/ddd/areas/2/macro.inc.c index 836f2c6..f442f35 100644 --- a/levels/ddd/areas/2/macro.inc.c +++ b/levels/ddd/areas/2/macro.inc.c @@ -23,7 +23,7 @@ const MacroObject ddd_seg7_area_2_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_fish_group, /*yaw*/ 0, /*pos*/ 2061, -3323, 2246), MACRO_OBJECT(/*preset*/ macro_fish_group_2, /*yaw*/ 0, /*pos*/ 5661, -2923, -1415), MACRO_OBJECT(/*preset*/ macro_clam_shell, /*yaw*/ 90, /*pos*/ 1273, -4106, 2320), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ 3086, 110, 6120, /*behParam*/ 53), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ 3086, 110, 6120, /*behParam*/ DIALOG_053), MACRO_OBJECT(/*preset*/ macro_seaweed_bundle, /*yaw*/ 0, /*pos*/ 6420, -4106, -2026), MACRO_OBJECT(/*preset*/ macro_seaweed_bundle, /*yaw*/ 0, /*pos*/ 6340, -4106, -1413), MACRO_OBJECT(/*preset*/ macro_clam_shell, /*yaw*/ 135, /*pos*/ 1966, -4106, 3226), diff --git a/levels/ddd/leveldata.c b/levels/ddd/leveldata.c index 33ce1d5..4b0434c 100644 --- a/levels/ddd/leveldata.c +++ b/levels/ddd/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/ddd/texture.inc.c" diff --git a/levels/ddd/pole/model.inc.c b/levels/ddd/pole/model.inc.c index 49a7226..82c89e9 100644 --- a/levels/ddd/pole/model.inc.c +++ b/levels/ddd/pole/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700CEE0 - 0x0700CEE8 -static const Ambient ddd_seg7_light_0700CEE0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700CEE8 - 0x0700CEF8 -static const Light ddd_seg7_light_0700CEE8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700CEE0 - 0x0700CEF8 +static const Lights1 ddd_seg7_lights_0700CEE0 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700CEF8 - 0x0700CFE8 static const Vtx ddd_seg7_vertex_0700CEF8[] = { @@ -69,8 +65,8 @@ static const Gfx ddd_seg7_dl_0700D1B8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ddd_seg7_texture_07003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ddd_seg7_light_0700CEE8, 1), - gsSPLight(&ddd_seg7_light_0700CEE0, 2), + gsSPLight(&ddd_seg7_lights_0700CEE0.l, 1), + gsSPLight(&ddd_seg7_lights_0700CEE0.a, 2), gsSPVertex(ddd_seg7_vertex_0700CEF8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ddd/script.c b/levels/ddd/script.c index 3e6258e..90a37c3 100644 --- a/levels/ddd/script.c +++ b/levels/ddd/script.c @@ -83,9 +83,9 @@ const LevelScript level_ddd_entry[] = { AREA(/*index*/ 1, ddd_geo_0004C0), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3071, 3000, 0, /*angle*/ 0, 7, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps74), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x17, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_DDD, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT), WHIRLPOOL(/*unk2*/ 0, /*unk3*/ 0, /*pos*/ -3174, -4915, 102, /*strength*/ 20), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), @@ -99,9 +99,9 @@ const LevelScript level_ddd_entry[] = { AREA(/*index*/ 2, ddd_geo_000570), WHIRLPOOL(/*unk2*/ 0, /*unk3*/ 0, /*pos*/ 3355, -3575, -515, /*strength*/ -30), WHIRLPOOL(/*unk2*/ 1, /*unk3*/ 2, /*pos*/ 3917, -2040, -6041, /*strength*/ 50), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF3, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x1E, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF3, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x1E, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_3), JUMP_LINK(script_func_local_4), JUMP_LINK(script_func_local_5), diff --git a/levels/ddd/sub_door/2.inc.c b/levels/ddd/sub_door/2.inc.c index 6f22794..5562b03 100644 --- a/levels/ddd/sub_door/2.inc.c +++ b/levels/ddd/sub_door/2.inc.c @@ -1,12 +1,8 @@ -// 0x07009080 - 0x07009088 -static const Ambient ddd_seg7_light_07009080 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07009088 - 0x07009098 -static const Light ddd_seg7_light_07009088 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07009080 - 0x07009098 +static const Lights1 ddd_seg7_lights_07009080 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07009098 - 0x070090D8 static const Vtx ddd_seg7_vertex_07009098[] = { @@ -21,8 +17,8 @@ static const Gfx ddd_seg7_dl_070090D8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ddd_seg7_texture_07001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ddd_seg7_light_07009088, 1), - gsSPLight(&ddd_seg7_light_07009080, 2), + gsSPLight(&ddd_seg7_lights_07009080.l, 1), + gsSPLight(&ddd_seg7_lights_07009080.a, 2), gsSPVertex(ddd_seg7_vertex_07009098, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/ddd/submarine/1.inc.c b/levels/ddd/submarine/1.inc.c index bb9222e..63c4b4a 100644 --- a/levels/ddd/submarine/1.inc.c +++ b/levels/ddd/submarine/1.inc.c @@ -1,52 +1,32 @@ -// 0x07009288 - 0x07009290 -static const Ambient ddd_seg7_light_07009288 = { - {{0x3f, 0x1f, 0x19}, 0, {0x3f, 0x1f, 0x19}, 0} -}; +// 0x07009288 - 0x070092A0 +static const Lights1 ddd_seg7_lights_07009288 = gdSPDefLights1( + 0x3f, 0x1f, 0x19, + 0xff, 0x7f, 0x65, 0x28, 0x28, 0x28 +); -// 0x07009290 - 0x070092A0 -static const Light ddd_seg7_light_07009290 = { - {{0xff, 0x7f, 0x65}, 0, {0xff, 0x7f, 0x65}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070092A0 - 0x070092B8 +static const Lights1 ddd_seg7_lights_070092A0 = gdSPDefLights1( + 0x2f, 0x1a, 0x0f, + 0xbf, 0x6a, 0x3f, 0x28, 0x28, 0x28 +); -// 0x070092A0 - 0x070092A8 -static const Ambient ddd_seg7_light_070092A0 = { - {{0x2f, 0x1a, 0x0f}, 0, {0x2f, 0x1a, 0x0f}, 0} -}; +// 0x070092B8 - 0x070092D0 +static const Lights1 ddd_seg7_lights_070092B8 = gdSPDefLights1( + 0x0c, 0x0c, 0x0c, + 0x33, 0x33, 0x33, 0x28, 0x28, 0x28 +); -// 0x070092A8 - 0x070092B8 -static const Light ddd_seg7_light_070092A8 = { - {{0xbf, 0x6a, 0x3f}, 0, {0xbf, 0x6a, 0x3f}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070092D0 - 0x070092E8 +static const Lights1 ddd_seg7_lights_070092D0 = gdSPDefLights1( + 0x1d, 0x1d, 0x1d, + 0x77, 0x77, 0x77, 0x28, 0x28, 0x28 +); -// 0x070092B8 - 0x070092C0 -static const Ambient ddd_seg7_light_070092B8 = { - {{0x0c, 0x0c, 0x0c}, 0, {0x0c, 0x0c, 0x0c}, 0} -}; - -// 0x070092C0 - 0x070092D0 -static const Light ddd_seg7_light_070092C0 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070092D0 - 0x070092D8 -static const Ambient ddd_seg7_light_070092D0 = { - {{0x1d, 0x1d, 0x1d}, 0, {0x1d, 0x1d, 0x1d}, 0} -}; - -// 0x070092D8 - 0x070092E8 -static const Light ddd_seg7_light_070092D8 = { - {{0x77, 0x77, 0x77}, 0, {0x77, 0x77, 0x77}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070092E8 - 0x070092F0 -static const Ambient ddd_seg7_light_070092E8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x070092F0 - 0x07009300 -static const Light ddd_seg7_light_070092F0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070092E8 - 0x07009300 +static const Lights1 ddd_seg7_lights_070092E8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07009300 - 0x07009400 static const Vtx ddd_seg7_vertex_07009300[] = { @@ -445,8 +425,8 @@ static const Gfx ddd_seg7_dl_0700A600[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ddd_seg7_texture_07001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ddd_seg7_light_07009290, 1), - gsSPLight(&ddd_seg7_light_07009288, 2), + gsSPLight(&ddd_seg7_lights_07009288.l, 1), + gsSPLight(&ddd_seg7_lights_07009288.a, 2), gsSPVertex(ddd_seg7_vertex_07009300, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 5, 4, 7, 0x0), @@ -461,8 +441,8 @@ static const Gfx ddd_seg7_dl_0700A600[] = { gsSP2Triangles( 1, 3, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 4, 7, 6, 0x0), gsSP1Triangle( 8, 7, 4, 0x0), - gsSPLight(&ddd_seg7_light_070092A8, 1), - gsSPLight(&ddd_seg7_light_070092A0, 2), + gsSPLight(&ddd_seg7_lights_070092A0.l, 1), + gsSPLight(&ddd_seg7_lights_070092A0.a, 2), gsSPVertex(ddd_seg7_vertex_07009490, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 4, 3, 5, 0x0, 5, 3, 0, 0x0), @@ -478,14 +458,14 @@ static const Gfx ddd_seg7_dl_0700A600[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), gsSP2Triangles( 0, 2, 3, 0x0, 4, 1, 0, 0x0), gsSP1Triangle( 2, 1, 3, 0x0), - gsSPLight(&ddd_seg7_light_070092C0, 1), - gsSPLight(&ddd_seg7_light_070092B8, 2), + gsSPLight(&ddd_seg7_lights_070092B8.l, 1), + gsSPLight(&ddd_seg7_lights_070092B8.a, 2), gsSPVertex(ddd_seg7_vertex_070095E0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 5, 3, 0x0, 0, 2, 5, 0x0), gsSP2Triangles( 0, 6, 1, 0x0, 0, 4, 7, 0x0), - gsSPLight(&ddd_seg7_light_070092D8, 1), - gsSPLight(&ddd_seg7_light_070092D0, 2), + gsSPLight(&ddd_seg7_lights_070092D0.l, 1), + gsSPLight(&ddd_seg7_lights_070092D0.a, 2), gsSPVertex(ddd_seg7_vertex_07009660, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 5, 0x0), @@ -498,8 +478,8 @@ static const Gfx ddd_seg7_dl_0700A600[] = { gsSP2Triangles( 6, 7, 2, 0x0, 7, 8, 2, 0x0), gsSP2Triangles( 8, 9, 2, 0x0, 9, 10, 2, 0x0), gsSP1Triangle(10, 0, 2, 0x0), - gsSPLight(&ddd_seg7_light_070092F0, 1), - gsSPLight(&ddd_seg7_light_070092E8, 2), + gsSPLight(&ddd_seg7_lights_070092E8.l, 1), + gsSPLight(&ddd_seg7_lights_070092E8.a, 2), gsSPVertex(ddd_seg7_vertex_07009800, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 1, 4, 2, 0x0, 3, 5, 1, 0x0), diff --git a/levels/ddd/submarine/2.inc.c b/levels/ddd/submarine/2.inc.c index 4bac916..c0d8d71 100644 --- a/levels/ddd/submarine/2.inc.c +++ b/levels/ddd/submarine/2.inc.c @@ -1,12 +1,8 @@ -// 0x0700AF78 - 0x0700AF80 -static const Ambient ddd_seg7_light_0700AF78 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0700AF80 - 0x0700AF90 -static const Light ddd_seg7_light_0700AF80 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700AF78 - 0x0700AF90 +static const Lights1 ddd_seg7_lights_0700AF78 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700AF90 - 0x0700B010 static const Vtx ddd_seg7_vertex_0700AF90[] = { @@ -25,8 +21,8 @@ static const Gfx ddd_seg7_dl_0700B010[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ddd_seg7_texture_07000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ddd_seg7_light_0700AF80, 1), - gsSPLight(&ddd_seg7_light_0700AF78, 2), + gsSPLight(&ddd_seg7_lights_0700AF78.l, 1), + gsSPLight(&ddd_seg7_lights_0700AF78.a, 2), gsSPVertex(ddd_seg7_vertex_0700AF90, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/ending/script.c b/levels/ending/script.c index 51fa378..ad3d738 100644 --- a/levels/ending/script.c +++ b/levels/ending/script.c @@ -6,6 +6,7 @@ #include "segment_symbols.h" #include "level_commands.h" +#include "game/area.h" #include "game/level_update.h" #include "levels/scripts.h" @@ -27,7 +28,7 @@ const LevelScript level_ending_entry[] = { /*9*/ SLEEP(/*frames*/ 60), /*10*/ BLACKOUT(/*active*/ FALSE), /*11*/ LOAD_AREA(/*area*/ 1), - /*12*/ TRANSITION(/*transType*/ 0, /*time*/ 75, /*color*/ 0, 0, 0), + /*12*/ TRANSITION(/*transType*/ WARP_TRANSITION_FADE_FROM_COLOR, /*time*/ 75, /*color*/ 0x00, 0x00, 0x00), /*14*/ SLEEP(/*frames*/ 120), /*15*/ CALL(/*arg*/ 0, /*func*/ lvl_play_the_end_screen_sound), // L1: diff --git a/levels/hmc/areas/1/1/model.inc.c b/levels/hmc/areas/1/1/model.inc.c index c391d83..746fc20 100644 --- a/levels/hmc/areas/1/1/model.inc.c +++ b/levels/hmc/areas/1/1/model.inc.c @@ -1,32 +1,20 @@ -// 0x07005800 - 0x07005808 -static const Ambient hmc_seg7_light_07005800 = { - {{0x48, 0x48, 0x48}, 0, {0x48, 0x48, 0x48}, 0} -}; +// 0x07005800 - 0x07005818 +static const Lights1 hmc_seg7_lights_07005800 = gdSPDefLights1( + 0x48, 0x48, 0x48, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x07005808 - 0x07005818 -static const Light hmc_seg7_light_07005808 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07005818 - 0x07005830 +static const Lights1 hmc_seg7_lights_07005818 = gdSPDefLights1( + 0x79, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x07005818 - 0x07005820 -static const Ambient hmc_seg7_light_07005818 = { - {{0x79, 0x00, 0x00}, 0, {0x79, 0x00, 0x00}, 0} -}; - -// 0x07005820 - 0x07005830 -static const Light hmc_seg7_light_07005820 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07005830 - 0x07005838 -static const Ambient hmc_seg7_light_07005830 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; - -// 0x07005838 - 0x07005848 -static const Light hmc_seg7_light_07005838 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07005830 - 0x07005848 +static const Lights1 hmc_seg7_lights_07005830 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07005848 - 0x070058A8 static const Vtx hmc_seg7_vertex_07005848[] = { @@ -528,13 +516,13 @@ static const Gfx hmc_seg7_dl_07006FF8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cave_09009800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_07005808, 1), - gsSPLight(&hmc_seg7_light_07005800, 2), + gsSPLight(&hmc_seg7_lights_07005800.l, 1), + gsSPLight(&hmc_seg7_lights_07005800.a, 2), gsSPVertex(hmc_seg7_vertex_07005848, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 0, 4, 5, 0x0), - gsSPLight(&hmc_seg7_light_07005820, 1), - gsSPLight(&hmc_seg7_light_07005818, 2), + gsSPLight(&hmc_seg7_lights_07005818.l, 1), + gsSPLight(&hmc_seg7_lights_07005818.a, 2), gsSPVertex(hmc_seg7_vertex_070058A8, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 3, 5, 6, 0x0), @@ -546,8 +534,8 @@ static const Gfx hmc_seg7_dl_07007080[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cave_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_07005838, 1), - gsSPLight(&hmc_seg7_light_07005830, 2), + gsSPLight(&hmc_seg7_lights_07005830.l, 1), + gsSPLight(&hmc_seg7_lights_07005830.a, 2), gsSPVertex(hmc_seg7_vertex_07005918, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/hmc/areas/1/10/model.inc.c b/levels/hmc/areas/1/10/model.inc.c index 22cac3b..3f665c5 100644 --- a/levels/hmc/areas/1/10/model.inc.c +++ b/levels/hmc/areas/1/10/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700FF70 - 0x0700FF78 -static const Ambient hmc_seg7_light_0700FF70 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; - -// 0x0700FF78 - 0x0700FF88 -static const Light hmc_seg7_light_0700FF78 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700FF70 - 0x0700FF88 +static const Lights1 hmc_seg7_lights_0700FF70 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700FF88 - 0x07010008 static const Vtx hmc_seg7_vertex_0700FF88[] = { @@ -25,8 +21,8 @@ static const Gfx hmc_seg7_dl_07010008[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cave_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_0700FF78, 1), - gsSPLight(&hmc_seg7_light_0700FF70, 2), + gsSPLight(&hmc_seg7_lights_0700FF70.l, 1), + gsSPLight(&hmc_seg7_lights_0700FF70.a, 2), gsSPVertex(hmc_seg7_vertex_0700FF88, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 0, 4, 3, 0x0, 0, 5, 4, 0x0), diff --git a/levels/hmc/areas/1/11/model.inc.c b/levels/hmc/areas/1/11/model.inc.c index bb544e7..4982813 100644 --- a/levels/hmc/areas/1/11/model.inc.c +++ b/levels/hmc/areas/1/11/model.inc.c @@ -1,22 +1,14 @@ -// 0x07010118 - 0x07010120 -static const Ambient hmc_seg7_light_07010118 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; +// 0x07010118 - 0x07010130 +static const Lights1 hmc_seg7_lights_07010118 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x07010120 - 0x07010130 -static const Light hmc_seg7_light_07010120 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07010130 - 0x07010138 -static const Ambient hmc_seg7_light_07010130 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; - -// 0x07010138 - 0x07010148 -static const Light hmc_seg7_light_07010138 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07010130 - 0x07010148 +static const Lights1 hmc_seg7_lights_07010130 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07010148 - 0x07010248 static const Vtx hmc_seg7_vertex_07010148[] = { @@ -910,8 +902,8 @@ static const Gfx hmc_seg7_dl_07012C78[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cave_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_07010120, 1), - gsSPLight(&hmc_seg7_light_07010118, 2), + gsSPLight(&hmc_seg7_lights_07010118.l, 1), + gsSPLight(&hmc_seg7_lights_07010118.a, 2), gsSPVertex(hmc_seg7_vertex_07010148, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 3, 6, 0x0), @@ -931,8 +923,8 @@ static const Gfx hmc_seg7_dl_07012C78[] = { gsSP2Triangles(12, 9, 13, 0x0, 11, 10, 14, 0x0), gsSP2Triangles(11, 15, 0, 0x0, 11, 14, 15, 0x0), gsSP1Triangle(12, 10, 9, 0x0), - gsSPLight(&hmc_seg7_light_07010138, 1), - gsSPLight(&hmc_seg7_light_07010130, 2), + gsSPLight(&hmc_seg7_lights_07010130.l, 1), + gsSPLight(&hmc_seg7_lights_07010130.a, 2), gsSPVertex(hmc_seg7_vertex_07010448, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 7, 0x0, 4, 7, 5, 0x0), @@ -1248,8 +1240,8 @@ static const Gfx hmc_seg7_dl_07013BC8[] = { // 0x07013C78 - 0x07013CA8 static const Gfx hmc_seg7_dl_07013C78[] = { - gsSPLight(&hmc_seg7_light_07010120, 1), - gsSPLight(&hmc_seg7_light_07010118, 2), + gsSPLight(&hmc_seg7_lights_07010118.l, 1), + gsSPLight(&hmc_seg7_lights_07010118.a, 2), gsSPVertex(hmc_seg7_vertex_07012C38, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/hmc/areas/1/16/model.inc.c b/levels/hmc/areas/1/16/model.inc.c index c5e3c95..9f0a71e 100644 --- a/levels/hmc/areas/1/16/model.inc.c +++ b/levels/hmc/areas/1/16/model.inc.c @@ -1,12 +1,8 @@ -// 0x07014CB8 - 0x07014CC0 -static const Ambient hmc_seg7_light_07014CB8 = { - {{0x23, 0x2b, 0x14}, 0, {0x23, 0x2b, 0x14}, 0} -}; - -// 0x07014CC0 - 0x07014CD0 -static const Light hmc_seg7_light_07014CC0 = { - {{0x8e, 0xac, 0x52}, 0, {0x8e, 0xac, 0x52}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07014CB8 - 0x07014CD0 +static const Lights1 hmc_seg7_lights_07014CB8 = gdSPDefLights1( + 0x23, 0x2b, 0x14, + 0x8e, 0xac, 0x52, 0x28, 0x28, 0x28 +); // 0x07014CD0 - 0x07014DD0 static const Vtx hmc_seg7_vertex_07014CD0[] = { @@ -33,8 +29,8 @@ static const Gfx hmc_seg7_dl_07014DD0[] = { gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, cave_0900C000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_07014CC0, 1), - gsSPLight(&hmc_seg7_light_07014CB8, 2), + gsSPLight(&hmc_seg7_lights_07014CB8.l, 1), + gsSPLight(&hmc_seg7_lights_07014CB8.a, 2), gsSPVertex(hmc_seg7_vertex_07014CD0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/hmc/areas/1/17/model.inc.c b/levels/hmc/areas/1/17/model.inc.c index 06ee438..c2f3e6a 100644 --- a/levels/hmc/areas/1/17/model.inc.c +++ b/levels/hmc/areas/1/17/model.inc.c @@ -1,22 +1,14 @@ -// 0x07014EB8 - 0x07014EC0 -static const Ambient hmc_seg7_light_07014EB8 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; +// 0x07014EB8 - 0x07014ED0 +static const Lights1 hmc_seg7_lights_07014EB8 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07014EC0 - 0x07014ED0 -static const Light hmc_seg7_light_07014EC0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07014ED0 - 0x07014ED8 -static const Ambient hmc_seg7_light_07014ED0 = { - {{0x79, 0x00, 0x00}, 0, {0x79, 0x00, 0x00}, 0} -}; - -// 0x07014ED8 - 0x07014EE8 -static const Light hmc_seg7_light_07014ED8 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07014ED0 - 0x07014EE8 +static const Lights1 hmc_seg7_lights_07014ED0 = gdSPDefLights1( + 0x79, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x07014EE8 - 0x07014FE8 static const Vtx hmc_seg7_vertex_07014EE8[] = { @@ -562,8 +554,8 @@ static const Gfx hmc_seg7_dl_07016918[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cave_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_07014EC0, 1), - gsSPLight(&hmc_seg7_light_07014EB8, 2), + gsSPLight(&hmc_seg7_lights_07014EB8.l, 1), + gsSPLight(&hmc_seg7_lights_07014EB8.a, 2), gsSPVertex(hmc_seg7_vertex_07014EE8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -609,8 +601,8 @@ static const Gfx hmc_seg7_dl_07016A90[] = { gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), gsSP2Triangles( 4, 8, 9, 0x0, 4, 6, 8, 0x0), - gsSPLight(&hmc_seg7_light_07014ED8, 1), - gsSPLight(&hmc_seg7_light_07014ED0, 2), + gsSPLight(&hmc_seg7_lights_07014ED0.l, 1), + gsSPLight(&hmc_seg7_lights_07014ED0.a, 2), gsSPVertex(hmc_seg7_vertex_07015558, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 0, 2, 6, 0x0), @@ -622,8 +614,8 @@ static const Gfx hmc_seg7_dl_07016BA8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cave_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_07014EC0, 1), - gsSPLight(&hmc_seg7_light_07014EB8, 2), + gsSPLight(&hmc_seg7_lights_07014EB8.l, 1), + gsSPLight(&hmc_seg7_lights_07014EB8.a, 2), gsSPVertex(hmc_seg7_vertex_070155C8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 6, 3, 0x0), diff --git a/levels/hmc/areas/1/22/model.inc.c b/levels/hmc/areas/1/22/model.inc.c index 16394e8..9196839 100644 --- a/levels/hmc/areas/1/22/model.inc.c +++ b/levels/hmc/areas/1/22/model.inc.c @@ -1,12 +1,8 @@ -// 0x07019430 - 0x07019438 -static const Ambient hmc_seg7_light_07019430 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; - -// 0x07019438 - 0x07019448 -static const Light hmc_seg7_light_07019438 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07019430 - 0x07019448 +static const Lights1 hmc_seg7_lights_07019430 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07019448 - 0x07019548 static const Vtx hmc_seg7_vertex_07019448[] = { @@ -198,8 +194,8 @@ static const Gfx hmc_seg7_dl_07019D18[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cave_09009800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_07019438, 1), - gsSPLight(&hmc_seg7_light_07019430, 2), + gsSPLight(&hmc_seg7_lights_07019430.l, 1), + gsSPLight(&hmc_seg7_lights_07019430.a, 2), gsSPVertex(hmc_seg7_vertex_07019448, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/hmc/areas/1/24/model.inc.c b/levels/hmc/areas/1/24/model.inc.c index 22aa9ea..8367dee 100644 --- a/levels/hmc/areas/1/24/model.inc.c +++ b/levels/hmc/areas/1/24/model.inc.c @@ -1,52 +1,32 @@ -// 0x0701A4B8 - 0x0701A4C0 -static const Ambient hmc_seg7_light_0701A4B8 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; +// 0x0701A4B8 - 0x0701A4D0 +static const Lights1 hmc_seg7_lights_0701A4B8 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x0701A4C0 - 0x0701A4D0 -static const Light hmc_seg7_light_0701A4C0 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701A4D0 - 0x0701A4E8 +static const Lights1 hmc_seg7_lights_0701A4D0 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0701A4D0 - 0x0701A4D8 -static const Ambient hmc_seg7_light_0701A4D0 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; +// 0x0701A4E8 - 0x0701A500 +static const Lights1 hmc_seg7_lights_0701A4E8 = gdSPDefLights1( + 0x79, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x0701A4D8 - 0x0701A4E8 -static const Light hmc_seg7_light_0701A4D8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701A500 - 0x0701A518 +static const Lights1 hmc_seg7_lights_0701A500 = gdSPDefLights1( + 0x51, 0x43, 0x26, + 0xac, 0x8e, 0x52, 0x28, 0x28, 0x28 +); -// 0x0701A4E8 - 0x0701A4F0 -static const Ambient hmc_seg7_light_0701A4E8 = { - {{0x79, 0x00, 0x00}, 0, {0x79, 0x00, 0x00}, 0} -}; - -// 0x0701A4F0 - 0x0701A500 -static const Light hmc_seg7_light_0701A4F0 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701A500 - 0x0701A508 -static const Ambient hmc_seg7_light_0701A500 = { - {{0x51, 0x43, 0x26}, 0, {0x51, 0x43, 0x26}, 0} -}; - -// 0x0701A508 - 0x0701A518 -static const Light hmc_seg7_light_0701A508 = { - {{0xac, 0x8e, 0x52}, 0, {0xac, 0x8e, 0x52}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701A518 - 0x0701A520 -static const Ambient hmc_seg7_light_0701A518 = { - {{0x5a, 0x46, 0x1d}, 0, {0x5a, 0x46, 0x1d}, 0} -}; - -// 0x0701A520 - 0x0701A530 -static const Light hmc_seg7_light_0701A520 = { - {{0xbf, 0x94, 0x3f}, 0, {0xbf, 0x94, 0x3f}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701A518 - 0x0701A530 +static const Lights1 hmc_seg7_lights_0701A518 = gdSPDefLights1( + 0x5a, 0x46, 0x1d, + 0xbf, 0x94, 0x3f, 0x28, 0x28, 0x28 +); // 0x0701A530 - 0x0701A610 static const Vtx hmc_seg7_vertex_0701A530[] = { @@ -1048,8 +1028,8 @@ static const Gfx hmc_seg7_dl_0701D5A0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cave_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_0701A4C0, 1), - gsSPLight(&hmc_seg7_light_0701A4B8, 2), + gsSPLight(&hmc_seg7_lights_0701A4B8.l, 1), + gsSPLight(&hmc_seg7_lights_0701A4B8.a, 2), gsSPVertex(hmc_seg7_vertex_0701A530, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 4, 7, 6, 0x0), @@ -1057,8 +1037,8 @@ static const Gfx hmc_seg7_dl_0701D5A0[] = { gsSP2Triangles( 3, 5, 10, 0x0, 8, 3, 10, 0x0), gsSP2Triangles( 8, 10, 9, 0x0, 11, 1, 0, 0x0), gsSP2Triangles(11, 12, 1, 0x0, 0, 2, 13, 0x0), - gsSPLight(&hmc_seg7_light_0701A4D8, 1), - gsSPLight(&hmc_seg7_light_0701A4D0, 2), + gsSPLight(&hmc_seg7_lights_0701A4D0.l, 1), + gsSPLight(&hmc_seg7_lights_0701A4D0.a, 2), gsSPVertex(hmc_seg7_vertex_0701A610, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 3, 4, 5, 0x0, 3, 5, 1, 0x0), @@ -1103,8 +1083,8 @@ static const Gfx hmc_seg7_dl_0701D708[] = { gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 0, 3, 0x0, 4, 3, 5, 0x0), gsSP1Triangle( 6, 4, 5, 0x0), - gsSPLight(&hmc_seg7_light_0701A4F0, 1), - gsSPLight(&hmc_seg7_light_0701A4E8, 2), + gsSPLight(&hmc_seg7_lights_0701A4E8.l, 1), + gsSPLight(&hmc_seg7_lights_0701A4E8.a, 2), gsSPVertex(hmc_seg7_vertex_0701AB50, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1117,8 +1097,8 @@ static const Gfx hmc_seg7_dl_0701D8B0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cave_09000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_0701A508, 1), - gsSPLight(&hmc_seg7_light_0701A500, 2), + gsSPLight(&hmc_seg7_lights_0701A500.l, 1), + gsSPLight(&hmc_seg7_lights_0701A500.a, 2), gsSPVertex(hmc_seg7_vertex_0701AC30, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 0, 2, 5, 0x0, 0, 5, 4, 0x0), @@ -1127,8 +1107,8 @@ static const Gfx hmc_seg7_dl_0701D8B0[] = { gsSP2Triangles( 8, 10, 13, 0x0, 9, 11, 10, 0x0), gsSP2Triangles( 6, 14, 15, 0x0, 6, 15, 7, 0x0), gsSP2Triangles(14, 13, 15, 0x0, 14, 8, 13, 0x0), - gsSPLight(&hmc_seg7_light_0701A520, 1), - gsSPLight(&hmc_seg7_light_0701A518, 2), + gsSPLight(&hmc_seg7_lights_0701A518.l, 1), + gsSPLight(&hmc_seg7_lights_0701A518.a, 2), gsSPVertex(hmc_seg7_vertex_0701AD30, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 4, 3, 5, 0x0, 3, 2, 5, 0x0), @@ -1137,15 +1117,15 @@ static const Gfx hmc_seg7_dl_0701D8B0[] = { gsSPVertex(hmc_seg7_vertex_0701AE10, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 0, 6, 1, 0x0), - gsSPLight(&hmc_seg7_light_0701A4C0, 1), - gsSPLight(&hmc_seg7_light_0701A4B8, 2), + gsSPLight(&hmc_seg7_lights_0701A4B8.l, 1), + gsSPLight(&hmc_seg7_lights_0701A4B8.a, 2), gsSPVertex(hmc_seg7_vertex_0701AE80, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0), gsSP2Triangles( 5, 8, 9, 0x0, 5, 9, 7, 0x0), gsSP2Triangles( 5, 10, 8, 0x0, 10, 11, 8, 0x0), - gsSPLight(&hmc_seg7_light_0701A4D8, 1), - gsSPLight(&hmc_seg7_light_0701A4D0, 2), + gsSPLight(&hmc_seg7_lights_0701A4D0.l, 1), + gsSPLight(&hmc_seg7_lights_0701A4D0.a, 2), gsSPVertex(hmc_seg7_vertex_0701AF40, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 5, 7, 0x0, 5, 4, 7, 0x0), diff --git a/levels/hmc/areas/1/29/model.inc.c b/levels/hmc/areas/1/29/model.inc.c index ffc2590..9a3fb1e 100644 --- a/levels/hmc/areas/1/29/model.inc.c +++ b/levels/hmc/areas/1/29/model.inc.c @@ -1,12 +1,8 @@ -// 0x070200B0 - 0x070200B8 -static const Ambient hmc_seg7_light_070200B0 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; - -// 0x070200B8 - 0x070200C8 -static const Light hmc_seg7_light_070200B8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070200B0 - 0x070200C8 +static const Lights1 hmc_seg7_lights_070200B0 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070200C8 - 0x070201C8 static const Vtx hmc_seg7_vertex_070200C8[] = { @@ -226,8 +222,8 @@ static const Gfx hmc_seg7_dl_07020B18[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cave_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_070200B8, 1), - gsSPLight(&hmc_seg7_light_070200B0, 2), + gsSPLight(&hmc_seg7_lights_070200B0.l, 1), + gsSPLight(&hmc_seg7_lights_070200B0.a, 2), gsSPVertex(hmc_seg7_vertex_070200C8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 5, 7, 3, 0x0), diff --git a/levels/hmc/areas/1/30/model.inc.c b/levels/hmc/areas/1/30/model.inc.c index 38e5539..42fb2e0 100644 --- a/levels/hmc/areas/1/30/model.inc.c +++ b/levels/hmc/areas/1/30/model.inc.c @@ -1,12 +1,8 @@ -// 0x070210E0 - 0x070210E8 -static const Ambient hmc_seg7_light_070210E0 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; - -// 0x070210E8 - 0x070210F8 -static const Light hmc_seg7_light_070210E8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070210E0 - 0x070210F8 +static const Lights1 hmc_seg7_lights_070210E0 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070210F8 - 0x070211F8 static const Vtx hmc_seg7_vertex_070210F8[] = { @@ -109,8 +105,8 @@ static const Gfx hmc_seg7_dl_070215B8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cave_09009800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_070210E8, 1), - gsSPLight(&hmc_seg7_light_070210E0, 2), + gsSPLight(&hmc_seg7_lights_070210E0.l, 1), + gsSPLight(&hmc_seg7_lights_070210E0.a, 2), gsSPVertex(hmc_seg7_vertex_070210F8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/hmc/areas/1/5/model.inc.c b/levels/hmc/areas/1/5/model.inc.c index b313ebe..2348108 100644 --- a/levels/hmc/areas/1/5/model.inc.c +++ b/levels/hmc/areas/1/5/model.inc.c @@ -1,32 +1,20 @@ -// 0x07009460 - 0x07009468 -static const Ambient hmc_seg7_light_07009460 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; +// 0x07009460 - 0x07009478 +static const Lights1 hmc_seg7_lights_07009460 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07009468 - 0x07009478 -static const Light hmc_seg7_light_07009468 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07009478 - 0x07009490 +static const Lights1 hmc_seg7_lights_07009478 = gdSPDefLights1( + 0x79, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x07009478 - 0x07009480 -static const Ambient hmc_seg7_light_07009478 = { - {{0x79, 0x00, 0x00}, 0, {0x79, 0x00, 0x00}, 0} -}; - -// 0x07009480 - 0x07009490 -static const Light hmc_seg7_light_07009480 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07009490 - 0x07009498 -static const Ambient hmc_seg7_light_07009490 = { - {{0x50, 0x50, 0x50}, 0, {0x50, 0x50, 0x50}, 0} -}; - -// 0x07009498 - 0x070094A8 -static const Light hmc_seg7_light_07009498 = { - {{0xaa, 0xaa, 0xaa}, 0, {0xaa, 0xaa, 0xaa}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07009490 - 0x070094A8 +static const Lights1 hmc_seg7_lights_07009490 = gdSPDefLights1( + 0x50, 0x50, 0x50, + 0xaa, 0xaa, 0xaa, 0x28, 0x28, 0x28 +); // 0x070094A8 - 0x07009588 static const Vtx hmc_seg7_vertex_070094A8[] = { @@ -1250,8 +1238,8 @@ static const Gfx hmc_seg7_dl_0700CF78[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cave_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_07009468, 1), - gsSPLight(&hmc_seg7_light_07009460, 2), + gsSPLight(&hmc_seg7_lights_07009460.l, 1), + gsSPLight(&hmc_seg7_lights_07009460.a, 2), gsSPVertex(hmc_seg7_vertex_070094A8, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -1333,8 +1321,8 @@ static const Gfx hmc_seg7_dl_0700D1C8[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 1, 7, 0x0, 6, 7, 8, 0x0), gsSP1Triangle( 0, 7, 1, 0x0), - gsSPLight(&hmc_seg7_light_07009480, 1), - gsSPLight(&hmc_seg7_light_07009478, 2), + gsSPLight(&hmc_seg7_lights_07009478.l, 1), + gsSPLight(&hmc_seg7_lights_07009478.a, 2), gsSPVertex(hmc_seg7_vertex_0700A148, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 3, 5, 6, 0x0), @@ -1346,8 +1334,8 @@ static const Gfx hmc_seg7_dl_0700D3D8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cave_09000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_07009498, 1), - gsSPLight(&hmc_seg7_light_07009490, 2), + gsSPLight(&hmc_seg7_lights_07009490.l, 1), + gsSPLight(&hmc_seg7_lights_07009490.a, 2), gsSPVertex(hmc_seg7_vertex_0700A1B8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 7, 8, 9, 0x0), @@ -1357,8 +1345,8 @@ static const Gfx hmc_seg7_dl_0700D3D8[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), gsSP1Triangle( 0, 10, 1, 0x0), - gsSPLight(&hmc_seg7_light_07009468, 1), - gsSPLight(&hmc_seg7_light_07009460, 2), + gsSPLight(&hmc_seg7_lights_07009460.l, 1), + gsSPLight(&hmc_seg7_lights_07009460.a, 2), gsSPVertex(hmc_seg7_vertex_0700A358, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 7, 0x0, 3, 5, 7, 0x0), diff --git a/levels/hmc/areas/1/macro.inc.c b/levels/hmc/areas/1/macro.inc.c index 00f663c..96a75fb 100644 --- a/levels/hmc/areas/1/macro.inc.c +++ b/levels/hmc/areas/1/macro.inc.c @@ -1,14 +1,14 @@ // 0x0702AA78 - 0x0702ADC2 const MacroObject hmc_seg7_macro_objs[] = { - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 315, /*pos*/ -6060, 2048, 5960, /*behParam*/ 89), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -6770, 1845, 4577, /*behParam*/ 50), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 315, /*pos*/ -6060, 2048, 5960, /*behParam*/ DIALOG_089), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -6770, 1845, 4577, /*behParam*/ DIALOG_050), MACRO_OBJECT(/*preset*/ macro_swoop_2, /*yaw*/ 0, /*pos*/ -439, 220, -2540), MACRO_OBJECT(/*preset*/ macro_swoop, /*yaw*/ 0, /*pos*/ 80, 140, -4660), MACRO_OBJECT(/*preset*/ macro_swoop, /*yaw*/ 0, /*pos*/ 800, 60, -7500), MACRO_OBJECT(/*preset*/ macro_swoop_2, /*yaw*/ 0, /*pos*/ 1880, 100, -7620), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 2500, 217, 50, /*behParam*/ 71), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 2900, 217, 50, /*behParam*/ 62), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ 838, 2052, 3580, /*behParam*/ 88), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 2500, 217, 50, /*behParam*/ DIALOG_071), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 2900, 217, 50, /*behParam*/ DIALOG_062), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ 838, 2052, 3580, /*behParam*/ DIALOG_088), MACRO_OBJECT(/*preset*/ macro_scuttlebug, /*yaw*/ 0, /*pos*/ -6320, 2048, 6740), MACRO_OBJECT(/*preset*/ macro_scuttlebug, /*yaw*/ 0, /*pos*/ -5455, 1536, 521), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 2140, 2048, 6540), @@ -41,15 +41,15 @@ const MacroObject hmc_seg7_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_swoop_2, /*yaw*/ 0, /*pos*/ -5440, 1720, -320), MACRO_OBJECT(/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ -2220, 2048, 4440), MACRO_OBJECT(/*preset*/ macro_recovery_heart, /*yaw*/ 0, /*pos*/ -7511, 1420, -666), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -3359, 1536, 298, /*behParam*/ 122), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -3092, 2033, -7685, /*behParam*/ 138), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 5439, 0, 2785, /*behParam*/ 125), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -3184, 0, 699, /*behParam*/ 126), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ 500, -4300, 3644, /*behParam*/ 127), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -3359, 1536, 298, /*behParam*/ DIALOG_122), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -3092, 2033, -7685, /*behParam*/ DIALOG_138), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 5439, 0, 2785, /*behParam*/ DIALOG_125), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -3184, 0, 699, /*behParam*/ DIALOG_126), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ 500, -4300, 3644, /*behParam*/ DIALOG_127), MACRO_OBJECT(/*preset*/ macro_box_1up, /*yaw*/ 0, /*pos*/ -4960, 2700, 80), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ 2006, 0, 6713, /*behParam*/ 124), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 2510, 0, 2800, /*behParam*/ 140), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 510, 0, 5380, /*behParam*/ 139), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ 2006, 0, 6713, /*behParam*/ DIALOG_124), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 2510, 0, 2800, /*behParam*/ DIALOG_140), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 510, 0, 5380, /*behParam*/ DIALOG_139), MACRO_OBJECT(/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ -2340, 2040, 4560), MACRO_OBJECT(/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ -2460, 2040, 4660), MACRO_OBJECT(/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ -2060, 2040, 4380), @@ -79,7 +79,7 @@ const MacroObject hmc_seg7_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_breakable_box_no_coins, /*yaw*/ 0, /*pos*/ 2960, 1024, 5140), MACRO_OBJECT(/*preset*/ macro_breakable_box_no_coins, /*yaw*/ 0, /*pos*/ 4080, 1024, 5760), MACRO_OBJECT(/*preset*/ macro_breakable_box_no_coins, /*yaw*/ 0, /*pos*/ 6260, 1024, 4960), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 135, /*pos*/ -4370, 2860, -2243, /*behParam*/ 43), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 135, /*pos*/ -4370, 2860, -2243, /*behParam*/ DIALOG_043), MACRO_OBJECT(/*preset*/ macro_flamethrower, /*yaw*/ 0, /*pos*/ -2900, 1620, 4640), MACRO_OBJECT(/*preset*/ macro_fire_spitter, /*yaw*/ 0, /*pos*/ 1420, -380, -7040), MACRO_OBJECT(/*preset*/ macro_fire_spitter, /*yaw*/ 0, /*pos*/ 2500, -380, -7740), diff --git a/levels/hmc/areas/1/painting.inc.c b/levels/hmc/areas/1/painting.inc.c index e7ffe5b..5ab36d2 100644 --- a/levels/hmc/areas/1/painting.inc.c +++ b/levels/hmc/areas/1/painting.inc.c @@ -1,23 +1,16 @@ #include "game/paintings.h" -// 0x070241B8 - 0x070241C0 -static const Ambient hmc_seg7_light_070241B8 = { - {{0x50, 0x50, 0x50}, 0, {0x50, 0x50, 0x50}, 0} -}; +// 0x070241B8 - 0x070241D0 +static const Lights1 hmc_seg7_lights_070241B8 = gdSPDefLights1( + 0x50, 0x50, 0x50, + 0xff, 0xff, 0xff, 0x32, 0x32, 0x32 +); -// 0x070241C0 - 0x070241D0 -static const Light hmc_seg7_light_070241C0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x32, 0x32, 0x32}, 0} -}; - -// 0x070241D0 - 0x070241D8 -static const Ambient hmc_seg7_light_070241D0 = { - {{0x40, 0x40, 0x80}, 0, {0x40, 0x40, 0x80}, 0} -}; - -// 0x070241D8 - 0x070241E8 -static const Light hmc_seg7_light_070241D8 = { - {{0x64, 0x64, 0xff}, 0, {0x64, 0x64, 0xfa}, 0, {0x28, 0x28, 0x28}, 0} +// 0x070241D0 - 0x070241E8 +// No gdSPDefLights1 macro defined because of odd different light value (0xff and 0xfa) +static const Lights1 hmc_seg7_lights_070241D0 = { + {{ {0x40, 0x40, 0x80}, 0, {0x40, 0x40, 0x80}, 0} }, + {{{ {0x64, 0x64, 0xff}, 0, {0x64, 0x64, 0xfa}, 0, {0x28, 0x28, 0x28},0} }} }; // Appears to lock 4 of the sides when shimmering and in use. Unused. @@ -42,8 +35,8 @@ static const Vtx hmc_seg7_vertex_07024228[] = { const Gfx hmc_seg7_dl_07024268[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB), - gsSPLight(&hmc_seg7_light_070241C0, 1), - gsSPLight(&hmc_seg7_light_070241B8, 2), + gsSPLight(&hmc_seg7_lights_070241B8.l, 1), + gsSPLight(&hmc_seg7_lights_070241B8.a, 2), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsSPVertex(hmc_seg7_vertex_070241E8, 4, 0), gsSPEndDisplayList(), @@ -512,8 +505,8 @@ ALIGNED8 static const u8 hmc_seg7_texture_07024CE0[] = { // 0x070254E0 - 0x07025518 static const Gfx hmc_seg7_painting_dl_070254E0[] = { gsDPPipeSync(), - gsSPLight(&hmc_seg7_light_070241D8, 1), - gsSPLight(&hmc_seg7_light_070241D0, 2), + gsSPLight(&hmc_seg7_lights_070241D0.l, 1), + gsSPLight(&hmc_seg7_lights_070241D0.a, 2), gsSPVertex(hmc_seg7_vertex_07024228, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/hmc/arrow_platform/model.inc.c b/levels/hmc/arrow_platform/model.inc.c index 0febffe..1c8ec15 100644 --- a/levels/hmc/arrow_platform/model.inc.c +++ b/levels/hmc/arrow_platform/model.inc.c @@ -1,12 +1,8 @@ -// 0x07022B48 - 0x07022B50 -static const Ambient hmc_seg7_light_07022B48 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; - -// 0x07022B50 - 0x07022B60 -static const Light hmc_seg7_light_07022B50 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07022B48 - 0x07022B60 +static const Lights1 hmc_seg7_lights_07022B48 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07022B60 - 0x07022C60 static const Vtx hmc_seg7_vertex_07022B60[] = { @@ -45,8 +41,8 @@ static const Gfx hmc_seg7_dl_07022CE0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, hmc_seg7_texture_07004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_07022B50, 1), - gsSPLight(&hmc_seg7_light_07022B48, 2), + gsSPLight(&hmc_seg7_lights_07022B48.l, 1), + gsSPLight(&hmc_seg7_lights_07022B48.a, 2), gsSPVertex(hmc_seg7_vertex_07022B60, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/hmc/arrow_platform_button/model.inc.c b/levels/hmc/arrow_platform_button/model.inc.c index 2fb4dd2..f10089d 100644 --- a/levels/hmc/arrow_platform_button/model.inc.c +++ b/levels/hmc/arrow_platform_button/model.inc.c @@ -1,22 +1,14 @@ -// 0x07022E78 - 0x07022E80 -static const Ambient hmc_seg7_light_07022E78 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; +// 0x07022E78 - 0x07022E90 +static const Lights1 hmc_seg7_lights_07022E78 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07022E80 - 0x07022E90 -static const Light hmc_seg7_light_07022E80 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07022E90 - 0x07022E98 -static const Ambient hmc_seg7_light_07022E90 = { - {{0x4f, 0x64, 0x5b}, 0, {0x4f, 0x64, 0x5b}, 0} -}; - -// 0x07022E98 - 0x07022EA8 -static const Light hmc_seg7_light_07022E98 = { - {{0xa8, 0xd3, 0xc0}, 0, {0xa8, 0xd3, 0xc0}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07022E90 - 0x07022EA8 +static const Lights1 hmc_seg7_lights_07022E90 = gdSPDefLights1( + 0x4f, 0x64, 0x5b, + 0xa8, 0xd3, 0xc0, 0x28, 0x28, 0x28 +); // 0x07022EA8 - 0x07022EE8 static const Vtx hmc_seg7_vertex_07022EA8[] = { @@ -51,8 +43,8 @@ static const Gfx hmc_seg7_dl_07022FE8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, hmc_seg7_texture_07003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_07022E80, 1), - gsSPLight(&hmc_seg7_light_07022E78, 2), + gsSPLight(&hmc_seg7_lights_07022E78.l, 1), + gsSPLight(&hmc_seg7_lights_07022E78.a, 2), gsSPVertex(hmc_seg7_vertex_07022EA8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSPEndDisplayList(), @@ -60,8 +52,8 @@ static const Gfx hmc_seg7_dl_07022FE8[] = { // 0x07023030 - 0x07023090 static const Gfx hmc_seg7_dl_07023030[] = { - gsSPLight(&hmc_seg7_light_07022E98, 1), - gsSPLight(&hmc_seg7_light_07022E90, 2), + gsSPLight(&hmc_seg7_lights_07022E90.l, 1), + gsSPLight(&hmc_seg7_lights_07022E90.a, 2), gsSPVertex(hmc_seg7_vertex_07022EE8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), diff --git a/levels/hmc/elevator_platform/model.inc.c b/levels/hmc/elevator_platform/model.inc.c index fe663cc..56c1165 100644 --- a/levels/hmc/elevator_platform/model.inc.c +++ b/levels/hmc/elevator_platform/model.inc.c @@ -1,12 +1,8 @@ -// 0x07022910 - 0x07022918 -static const Ambient hmc_seg7_light_07022910 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; - -// 0x07022918 - 0x07022928 -static const Light hmc_seg7_light_07022918 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07022910 - 0x07022928 +static const Lights1 hmc_seg7_lights_07022910 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07022928 - 0x07022A08 static const Vtx hmc_seg7_vertex_07022928[] = { @@ -31,8 +27,8 @@ static const Gfx hmc_seg7_dl_07022A08[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cave_09002800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_07022918, 1), - gsSPLight(&hmc_seg7_light_07022910, 2), + gsSPLight(&hmc_seg7_lights_07022910.l, 1), + gsSPLight(&hmc_seg7_lights_07022910.a, 2), gsSPVertex(hmc_seg7_vertex_07022928, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 1, 0x0), diff --git a/levels/hmc/leveldata.c b/levels/hmc/leveldata.c index 0f445d8..ec16943 100644 --- a/levels/hmc/leveldata.c +++ b/levels/hmc/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/hmc/texture.inc.c" diff --git a/levels/hmc/rolling_rock/model.inc.c b/levels/hmc/rolling_rock/model.inc.c index ad9a2ee..3d3e204 100644 --- a/levels/hmc/rolling_rock/model.inc.c +++ b/levels/hmc/rolling_rock/model.inc.c @@ -1,12 +1,8 @@ -// 0x07023160 - 0x07023168 -static const Ambient hmc_seg7_light_07023160 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; - -// 0x07023168 - 0x07023178 -static const Light hmc_seg7_light_07023168 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07023160 - 0x07023178 +static const Lights1 hmc_seg7_lights_07023160 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07023178 - 0x07023278 static const Vtx hmc_seg7_vertex_07023178[] = { @@ -163,8 +159,8 @@ static const Gfx hmc_seg7_dl_070238D8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, hmc_seg7_texture_07004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_07023168, 1), - gsSPLight(&hmc_seg7_light_07023160, 2), + gsSPLight(&hmc_seg7_lights_07023160.l, 1), + gsSPLight(&hmc_seg7_lights_07023160.a, 2), gsSPVertex(hmc_seg7_vertex_07023178, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 3, 4, 1, 0x0, 3, 5, 4, 0x0), diff --git a/levels/hmc/rolling_rock_fragment_1/model.inc.c b/levels/hmc/rolling_rock_fragment_1/model.inc.c index 31dfeca..aca8c90 100644 --- a/levels/hmc/rolling_rock_fragment_1/model.inc.c +++ b/levels/hmc/rolling_rock_fragment_1/model.inc.c @@ -1,12 +1,8 @@ -// 0x07023C70 - 0x07023C78 -static const Ambient hmc_seg7_light_07023C70 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; - -// 0x07023C78 - 0x07023C88 -static const Light hmc_seg7_light_07023C78 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07023C70 - 0x07023C88 +static const Lights1 hmc_seg7_lights_07023C70 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07023C88 - 0x07023D48 static const Vtx hmc_seg7_vertex_07023C88[] = { @@ -29,8 +25,8 @@ static const Gfx hmc_seg7_dl_07023D48[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, hmc_seg7_texture_07004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_07023C78, 1), - gsSPLight(&hmc_seg7_light_07023C70, 2), + gsSPLight(&hmc_seg7_lights_07023C70.l, 1), + gsSPLight(&hmc_seg7_lights_07023C70.a, 2), gsSPVertex(hmc_seg7_vertex_07023C88, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 2, 4, 3, 0x0, 5, 6, 4, 0x0), diff --git a/levels/hmc/rolling_rock_fragment_2/model.inc.c b/levels/hmc/rolling_rock_fragment_2/model.inc.c index 1790f04..d06dcd2 100644 --- a/levels/hmc/rolling_rock_fragment_2/model.inc.c +++ b/levels/hmc/rolling_rock_fragment_2/model.inc.c @@ -1,12 +1,8 @@ -// 0x07023EB8 - 0x07023EC0 -static const Ambient hmc_seg7_light_07023EB8 = { - {{0x79, 0x79, 0x79}, 0, {0x79, 0x79, 0x79}, 0} -}; - -// 0x07023EC0 - 0x07023ED0 -static const Light hmc_seg7_light_07023EC0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07023EB8 - 0x07023ED0 +static const Lights1 hmc_seg7_lights_07023EB8 = gdSPDefLights1( + 0x79, 0x79, 0x79, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07023ED0 - 0x07023FD0 static const Vtx hmc_seg7_vertex_07023ED0[] = { @@ -48,8 +44,8 @@ static const Gfx hmc_seg7_dl_07024080[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, hmc_seg7_texture_07004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&hmc_seg7_light_07023EC0, 1), - gsSPLight(&hmc_seg7_light_07023EB8, 2), + gsSPLight(&hmc_seg7_lights_07023EB8.l, 1), + gsSPLight(&hmc_seg7_lights_07023EB8.a, 2), gsSPVertex(hmc_seg7_vertex_07023ED0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/levels/hmc/script.c b/levels/hmc/script.c index eaa8905..901ce57 100644 --- a/levels/hmc/script.c +++ b/levels/hmc/script.c @@ -97,10 +97,10 @@ const LevelScript level_hmc_entry[] = { AREA(/*index*/ 1, hmc_geo_000B90), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -7152, 3161, 7181, /*angle*/ 0, 135, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps74), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 3351, -4690, 4773, /*angle*/ 0, 0, 0, /*behParam*/ 0x340B0000, /*beh*/ bhvWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x07, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x1C, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_HMC, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_COTMC, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), JUMP_LINK(script_func_local_3), diff --git a/levels/intro/script.c b/levels/intro/script.c index e3d7194..3ffd785 100644 --- a/levels/intro/script.c +++ b/levels/intro/script.c @@ -6,6 +6,7 @@ #include "segment_symbols.h" #include "level_commands.h" +#include "game/area.h" #include "game/level_update.h" #include "menu/level_select_menu.h" @@ -31,7 +32,7 @@ const LevelScript level_intro_entry_1[] = { LOAD_AREA(/*area*/ 1), CALL(/*arg*/ 0, /*func*/ LevelProc_8016F508), SLEEP(/*frames*/ 75), - TRANSITION(/*transType*/ 1, /*time*/ 16, /*color*/ 0, 0, 0), + TRANSITION(/*transType*/ WARP_TRANSITION_FADE_INTO_COLOR, /*time*/ 16, /*color*/ 0x00, 0x00, 0x00), SLEEP(/*frames*/ 16), CMD2A(/*unk2*/ 1), CLEAR_LEVEL(), @@ -56,7 +57,7 @@ const LevelScript level_intro_entry_2[] = { BLACKOUT(/*active*/ FALSE), LOAD_AREA(/*area*/ 1), SET_MENU_MUSIC(/*seq*/ 0x0002), - TRANSITION(/*transType*/ 8, /*time*/ 20, /*color*/ 0, 0, 0), + TRANSITION(/*transType*/ WARP_TRANSITION_FADE_FROM_STAR, /*time*/ 20, /*color*/ 0x00, 0x00, 0x00), SLEEP(/*frames*/ 20), CALL_LOOP(/*arg*/ 1, /*func*/ LevelProc_8016F508), JUMP_IF(/*op*/ OP_EQ, /*arg*/ 100, script_intro_L1), @@ -81,7 +82,7 @@ const LevelScript level_intro_entry_3[] = { BLACKOUT(/*active*/ FALSE), LOAD_AREA(/*area*/ 1), SET_MENU_MUSIC(/*seq*/ 0x0082), - TRANSITION(/*transType*/ 8, /*time*/ 20, /*color*/ 0, 0, 0), + TRANSITION(/*transType*/ WARP_TRANSITION_FADE_FROM_STAR, /*time*/ 20, /*color*/ 0x00, 0x00, 0x00), SLEEP(/*frames*/ 20), CALL_LOOP(/*arg*/ 2, /*func*/ LevelProc_8016F508), JUMP_IF(/*op*/ OP_EQ, /*arg*/ 100, script_intro_L1), @@ -103,7 +104,7 @@ const LevelScript level_intro_entry_4[] = { FREE_LEVEL_POOL(), LOAD_AREA(/*area*/ 1), SET_MENU_MUSIC(/*seq*/ 0x0002), - TRANSITION(/*transType*/ 0, /*time*/ 16, /*color*/ -1, -1, -1), + TRANSITION(/*transType*/ WARP_TRANSITION_FADE_FROM_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF), SLEEP(/*frames*/ 16), CALL_LOOP(/*arg*/ 3, /*func*/ LevelProc_8016F508), JUMP_IF(/*op*/ OP_EQ, /*arg*/ -1, script_intro_L5), @@ -114,7 +115,7 @@ const LevelScript level_intro_entry_4[] = { const LevelScript script_intro_L1[] = { STOP_MUSIC(/*fadeOutTime*/ 0x00BE), - TRANSITION(/*transType*/ 1, /*time*/ 16, /*color*/ -1, -1, -1), + TRANSITION(/*transType*/ WARP_TRANSITION_FADE_INTO_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF), SLEEP(/*frames*/ 16), CLEAR_LEVEL(), SLEEP(/*frames*/ 2), @@ -123,7 +124,7 @@ const LevelScript script_intro_L1[] = { }; const LevelScript script_intro_L2[] = { - TRANSITION(/*transType*/ 1, /*time*/ 16, /*color*/ -1, -1, -1), + TRANSITION(/*transType*/ WARP_TRANSITION_FADE_INTO_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF), SLEEP(/*frames*/ 16), CLEAR_LEVEL(), SLEEP(/*frames*/ 2), @@ -132,7 +133,7 @@ const LevelScript script_intro_L2[] = { const LevelScript script_intro_L3[] = { STOP_MUSIC(/*fadeOutTime*/ 0x00BE), - TRANSITION(/*transType*/ 1, /*time*/ 16, /*color*/ -1, -1, -1), + TRANSITION(/*transType*/ WARP_TRANSITION_FADE_INTO_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF), SLEEP(/*frames*/ 16), CLEAR_LEVEL(), SLEEP(/*frames*/ 2), @@ -140,7 +141,7 @@ const LevelScript script_intro_L3[] = { }; const LevelScript script_intro_L4[] = { - TRANSITION(/*transType*/ 1, /*time*/ 16, /*color*/ -1, -1, -1), + TRANSITION(/*transType*/ WARP_TRANSITION_FADE_INTO_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF), SLEEP(/*frames*/ 16), CLEAR_LEVEL(), SLEEP(/*frames*/ 2), @@ -149,7 +150,7 @@ const LevelScript script_intro_L4[] = { const LevelScript script_intro_L5[] = { STOP_MUSIC(/*fadeOutTime*/ 0x00BE), - TRANSITION(/*transType*/ 1, /*time*/ 16, /*color*/ 0, 0, 0), + TRANSITION(/*transType*/ WARP_TRANSITION_FADE_INTO_COLOR, /*time*/ 16, /*color*/ 0x00, 0x00, 0x00), SLEEP(/*frames*/ 16), CLEAR_LEVEL(), SLEEP(/*frames*/ 2), diff --git a/levels/jrb/areas/1/2/model.inc.c b/levels/jrb/areas/1/2/model.inc.c index 96fd1a4..c97e16d 100644 --- a/levels/jrb/areas/1/2/model.inc.c +++ b/levels/jrb/areas/1/2/model.inc.c @@ -1,32 +1,20 @@ -// 0x070030A8 - 0x070030B0 -static const Ambient jrb_seg7_light_070030A8 = { - {{0x10, 0x25, 0x1e}, 0, {0x10, 0x25, 0x1e}, 0} -}; +// 0x070030A8 - 0x070030C0 +static const Lights1 jrb_seg7_lights_070030A8 = gdSPDefLights1( + 0x10, 0x25, 0x1e, + 0x41, 0x96, 0x78, 0x28, 0x28, 0x28 +); -// 0x070030B0 - 0x070030C0 -static const Light jrb_seg7_light_070030B0 = { - {{0x41, 0x96, 0x78}, 0, {0x41, 0x96, 0x78}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070030C0 - 0x070030D8 +static const Lights1 jrb_seg7_lights_070030C0 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x070030C0 - 0x070030C8 -static const Ambient jrb_seg7_light_070030C0 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x070030C8 - 0x070030D8 -static const Light jrb_seg7_light_070030C8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070030D8 - 0x070030E0 -static const Ambient jrb_seg7_light_070030D8 = { - {{0x1e, 0x27, 0x3a}, 0, {0x1e, 0x27, 0x3a}, 0} -}; - -// 0x070030E0 - 0x070030F0 -static const Light jrb_seg7_light_070030E0 = { - {{0x79, 0x9f, 0xeb}, 0, {0x79, 0x9f, 0xeb}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070030D8 - 0x070030F0 +static const Lights1 jrb_seg7_lights_070030D8 = gdSPDefLights1( + 0x1e, 0x27, 0x3a, + 0x79, 0x9f, 0xeb, 0x28, 0x28, 0x28 +); // 0x070030F0 - 0x070031F0 static const Vtx jrb_seg7_vertex_070030F0[] = { @@ -385,8 +373,8 @@ static const Gfx jrb_seg7_dl_070041F0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_070030B0, 1), - gsSPLight(&jrb_seg7_light_070030A8, 2), + gsSPLight(&jrb_seg7_lights_070030A8.l, 1), + gsSPLight(&jrb_seg7_lights_070030A8.a, 2), gsSPVertex(jrb_seg7_vertex_070030F0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), gsSP2Triangles( 5, 3, 2, 0x0, 4, 3, 6, 0x0), @@ -401,8 +389,8 @@ static const Gfx jrb_seg7_dl_070041F0[] = { gsSPVertex(jrb_seg7_vertex_070031F0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 0, 3, 0x0, 4, 3, 5, 0x0), - gsSPLight(&jrb_seg7_light_070030C8, 1), - gsSPLight(&jrb_seg7_light_070030C0, 2), + gsSPLight(&jrb_seg7_lights_070030C0.l, 1), + gsSPLight(&jrb_seg7_lights_070030C0.a, 2), gsSPVertex(jrb_seg7_vertex_07003250, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), gsSP2Triangles( 1, 4, 2, 0x0, 2, 4, 5, 0x0), @@ -444,8 +432,8 @@ static const Gfx jrb_seg7_dl_070044C8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_070030E0, 1), - gsSPLight(&jrb_seg7_light_070030D8, 2), + gsSPLight(&jrb_seg7_lights_070030D8.l, 1), + gsSPLight(&jrb_seg7_lights_070030D8.a, 2), gsSPVertex(jrb_seg7_vertex_07003700, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 5, 4, 0x0), @@ -492,8 +480,8 @@ static const Gfx jrb_seg7_dl_070046C0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_070030C8, 1), - gsSPLight(&jrb_seg7_light_070030C0, 2), + gsSPLight(&jrb_seg7_lights_070030C0.l, 1), + gsSPLight(&jrb_seg7_lights_070030C0.a, 2), gsSPVertex(jrb_seg7_vertex_07003B10, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 4, 0, 3, 0x0, 1, 5, 2, 0x0), diff --git a/levels/jrb/areas/1/3/model.inc.c b/levels/jrb/areas/1/3/model.inc.c index b79f648..5b2878f 100644 --- a/levels/jrb/areas/1/3/model.inc.c +++ b/levels/jrb/areas/1/3/model.inc.c @@ -1,22 +1,14 @@ -// 0x07004A18 - 0x07004A20 -static const Ambient jrb_seg7_light_07004A18 = { - {{0x1e, 0x27, 0x3a}, 0, {0x1e, 0x27, 0x3a}, 0} -}; +// 0x07004A18 - 0x07004A30 +static const Lights1 jrb_seg7_lights_07004A18 = gdSPDefLights1( + 0x1e, 0x27, 0x3a, + 0x79, 0x9f, 0xeb, 0x28, 0x28, 0x28 +); -// 0x07004A20 - 0x07004A30 -static const Light jrb_seg7_light_07004A20 = { - {{0x79, 0x9f, 0xeb}, 0, {0x79, 0x9f, 0xeb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07004A30 - 0x07004A38 -static const Ambient jrb_seg7_light_07004A30 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07004A38 - 0x07004A48 -static const Light jrb_seg7_light_07004A38 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07004A30 - 0x07004A48 +static const Lights1 jrb_seg7_lights_07004A30 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07004A48 - 0x07004AC8 static const Vtx jrb_seg7_vertex_07004A48[] = { @@ -51,8 +43,8 @@ static const Gfx jrb_seg7_dl_07004B88[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_07004A20, 1), - gsSPLight(&jrb_seg7_light_07004A18, 2), + gsSPLight(&jrb_seg7_lights_07004A18.l, 1), + gsSPLight(&jrb_seg7_lights_07004A18.a, 2), gsSPVertex(jrb_seg7_vertex_07004A48, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 2, 1, 4, 0x0, 2, 4, 5, 0x0), @@ -65,8 +57,8 @@ static const Gfx jrb_seg7_dl_07004BF0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_07004A38, 1), - gsSPLight(&jrb_seg7_light_07004A30, 2), + gsSPLight(&jrb_seg7_lights_07004A30.l, 1), + gsSPLight(&jrb_seg7_lights_07004A30.a, 2), gsSPVertex(jrb_seg7_vertex_07004AC8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 6, 7, 4, 0x0), diff --git a/levels/jrb/areas/1/4/model.inc.c b/levels/jrb/areas/1/4/model.inc.c index 0534a38..aba35fa 100644 --- a/levels/jrb/areas/1/4/model.inc.c +++ b/levels/jrb/areas/1/4/model.inc.c @@ -1,22 +1,14 @@ -// 0x07004D40 - 0x07004D48 -static const Ambient jrb_seg7_light_07004D40 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; +// 0x07004D40 - 0x07004D58 +static const Lights1 jrb_seg7_lights_07004D40 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x07004D48 - 0x07004D58 -static const Light jrb_seg7_light_07004D48 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07004D58 - 0x07004D60 -static const Ambient jrb_seg7_light_07004D58 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07004D60 - 0x07004D70 -static const Light jrb_seg7_light_07004D60 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07004D58 - 0x07004D70 +static const Lights1 jrb_seg7_lights_07004D58 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07004D70 - 0x07004DF0 static const Vtx jrb_seg7_vertex_07004D70[] = { @@ -186,14 +178,14 @@ static const Gfx jrb_seg7_dl_07005560[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_07004D48, 1), - gsSPLight(&jrb_seg7_light_07004D40, 2), + gsSPLight(&jrb_seg7_lights_07004D40.l, 1), + gsSPLight(&jrb_seg7_lights_07004D40.a, 2), gsSPVertex(jrb_seg7_vertex_07004D70, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 2, 3, 0x0, 0, 5, 6, 0x0), gsSP2Triangles( 0, 6, 7, 0x0, 0, 4, 5, 0x0), - gsSPLight(&jrb_seg7_light_07004D60, 1), - gsSPLight(&jrb_seg7_light_07004D58, 2), + gsSPLight(&jrb_seg7_lights_07004D58.l, 1), + gsSPLight(&jrb_seg7_lights_07004D58.a, 2), gsSPVertex(jrb_seg7_vertex_07004DF0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), gsSP2Triangles( 2, 1, 3, 0x0, 0, 5, 1, 0x0), diff --git a/levels/jrb/areas/1/5/model.inc.c b/levels/jrb/areas/1/5/model.inc.c index e044bf2..0ad116c 100644 --- a/levels/jrb/areas/1/5/model.inc.c +++ b/levels/jrb/areas/1/5/model.inc.c @@ -1,32 +1,20 @@ -// 0x07005990 - 0x07005998 -static const Ambient jrb_seg7_light_07005990 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; +// 0x07005990 - 0x070059A8 +static const Lights1 jrb_seg7_lights_07005990 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07005998 - 0x070059A8 -static const Light jrb_seg7_light_07005998 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070059A8 - 0x070059C0 +static const Lights1 jrb_seg7_lights_070059A8 = gdSPDefLights1( + 0x26, 0x26, 0x26, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x070059A8 - 0x070059B0 -static const Ambient jrb_seg7_light_070059A8 = { - {{0x26, 0x26, 0x26}, 0, {0x26, 0x26, 0x26}, 0} -}; - -// 0x070059B0 - 0x070059C0 -static const Light jrb_seg7_light_070059B0 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070059C0 - 0x070059C8 -static const Ambient jrb_seg7_light_070059C0 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x070059C8 - 0x070059D8 -static const Light jrb_seg7_light_070059C8 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070059C0 - 0x070059D8 +static const Lights1 jrb_seg7_lights_070059C0 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x070059D8 - 0x07005AC8 static const Vtx jrb_seg7_vertex_070059D8[] = { @@ -268,8 +256,8 @@ static const Gfx jrb_seg7_dl_07006508[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_0900A000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_07005998, 1), - gsSPLight(&jrb_seg7_light_07005990, 2), + gsSPLight(&jrb_seg7_lights_07005990.l, 1), + gsSPLight(&jrb_seg7_lights_07005990.a, 2), gsSPVertex(jrb_seg7_vertex_070059D8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -287,15 +275,15 @@ static const Gfx jrb_seg7_dl_070065A8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_070059B0, 1), - gsSPLight(&jrb_seg7_light_070059A8, 2), + gsSPLight(&jrb_seg7_lights_070059A8.l, 1), + gsSPLight(&jrb_seg7_lights_070059A8.a, 2), gsSPVertex(jrb_seg7_vertex_07005B78, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 2, 3, 4, 0x0, 0, 5, 1, 0x0), gsSP2Triangles( 4, 3, 6, 0x0, 4, 6, 7, 0x0), gsSP2Triangles( 7, 6, 5, 0x0, 7, 5, 0, 0x0), - gsSPLight(&jrb_seg7_light_07005998, 1), - gsSPLight(&jrb_seg7_light_07005990, 2), + gsSPLight(&jrb_seg7_lights_07005990.l, 1), + gsSPLight(&jrb_seg7_lights_07005990.a, 2), gsSPVertex(jrb_seg7_vertex_07005BF8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -368,8 +356,8 @@ static const Gfx jrb_seg7_dl_070067F0[] = { // 0x07006980 - 0x070069B0 static const Gfx jrb_seg7_dl_07006980[] = { - gsSPLight(&jrb_seg7_light_070059C8, 1), - gsSPLight(&jrb_seg7_light_070059C0, 2), + gsSPLight(&jrb_seg7_lights_070059C0.l, 1), + gsSPLight(&jrb_seg7_lights_070059C0.a, 2), gsSPVertex(jrb_seg7_vertex_070064C8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/jrb/areas/1/6/model.inc.c b/levels/jrb/areas/1/6/model.inc.c index 31e16cc..bdf3e04 100644 --- a/levels/jrb/areas/1/6/model.inc.c +++ b/levels/jrb/areas/1/6/model.inc.c @@ -1,12 +1,8 @@ -// 0x07006A98 - 0x07006AA0 -static const Ambient jrb_seg7_light_07006A98 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07006AA0 - 0x07006AB0 -static const Light jrb_seg7_light_07006AA0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07006A98 - 0x07006AB0 +static const Lights1 jrb_seg7_lights_07006A98 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07006AB0 - 0x07006BA0 static const Vtx jrb_seg7_vertex_07006AB0[] = { @@ -176,8 +172,8 @@ static const Gfx jrb_seg7_dl_070072A0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_07006AA0, 1), - gsSPLight(&jrb_seg7_light_07006A98, 2), + gsSPLight(&jrb_seg7_lights_07006A98.l, 1), + gsSPLight(&jrb_seg7_lights_07006A98.a, 2), gsSPVertex(jrb_seg7_vertex_07006AB0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/jrb/areas/1/geo.inc.c b/levels/jrb/areas/1/geo.inc.c index ad28941..0b3d269 100644 --- a/levels/jrb/areas/1/geo.inc.c +++ b/levels/jrb/areas/1/geo.inc.c @@ -32,7 +32,7 @@ const GeoLayout jrb_geo_000A18[] = { GEO_CLOSE_NODE(), GEO_ZBUFFER(0), GEO_OPEN_NODE(), - GEO_ASM(0, Geo18_802CD1E8), + GEO_ASM(0, geo_cannon_circle_base), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/levels/jrb/areas/1/macro.inc.c b/levels/jrb/areas/1/macro.inc.c index 86a31b6..f183a65 100644 --- a/levels/jrb/areas/1/macro.inc.c +++ b/levels/jrb/areas/1/macro.inc.c @@ -1,6 +1,6 @@ // 0x0700C4E8 - 0x0700C756 const MacroObject jrb_seg7_area_1_macro_objs[] = { - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 250, /*pos*/ -6325, 1126, 1730, /*behParam*/ 60), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 250, /*pos*/ -6325, 1126, 1730, /*behParam*/ DIALOG_060), MACRO_OBJECT(/*preset*/ macro_coin_ring_vertical, /*yaw*/ 0, /*pos*/ 5060, -4420, 720), MACRO_OBJECT(/*preset*/ macro_box_metal_cap, /*yaw*/ 0, /*pos*/ 2077, 1832, 7465), MACRO_OBJECT(/*preset*/ macro_coin_ring_horizontal_flying, /*yaw*/ 0, /*pos*/ -1780, -650, 4200), @@ -27,8 +27,8 @@ const MacroObject jrb_seg7_area_1_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 3642, -5103, 3175), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 4400, 2200, 1300), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 5400, 2200, 1300), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ -900, -2966, -2200, /*behParam*/ 73), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 80, /*pos*/ -2552, 1331, 6573, /*behParam*/ 51), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ -900, -2966, -2200, /*behParam*/ DIALOG_073), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 80, /*pos*/ -2552, 1331, 6573, /*behParam*/ DIALOG_051), MACRO_OBJECT(/*preset*/ macro_clam_shell, /*yaw*/ 315, /*pos*/ -1800, -1023, 3500), MACRO_OBJECT(/*preset*/ macro_clam_shell, /*yaw*/ 225, /*pos*/ -480, 512, 5980), MACRO_OBJECT(/*preset*/ macro_clam_shell, /*yaw*/ 270, /*pos*/ 700, -511, 4250), @@ -56,11 +56,11 @@ const MacroObject jrb_seg7_area_1_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 45, /*pos*/ 3280, 1536, 5940), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 45, /*pos*/ 3200, 1536, 6720), MACRO_OBJECT(/*preset*/ macro_box_metal_cap, /*yaw*/ 0, /*pos*/ -7160, 1340, 2580), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ -6910, 1120, 2380, /*behParam*/ 113), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ -6910, 1120, 2380, /*behParam*/ DIALOG_113), MACRO_OBJECT(/*preset*/ macro_box_three_coins, /*yaw*/ 0, /*pos*/ -5800, 1340, -750), MACRO_OBJECT(/*preset*/ macro_1up, /*yaw*/ 0, /*pos*/ 670, 3000, 3315), MACRO_OBJECT(/*preset*/ macro_koopa_shell_underwater, /*yaw*/ 0, /*pos*/ -1480, -1000, 4820), MACRO_OBJECT(/*preset*/ macro_clam_shell, /*yaw*/ 180, /*pos*/ -1480, -1040, 4820), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 5290, -2966, -4740, /*behParam*/ 169), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 5290, -2966, -4740, /*behParam*/ DIALOG_169), MACRO_OBJECT_END(), }; diff --git a/levels/jrb/areas/2/1/model.inc.c b/levels/jrb/areas/2/1/model.inc.c index c91d555..41e60ba 100644 --- a/levels/jrb/areas/2/1/model.inc.c +++ b/levels/jrb/areas/2/1/model.inc.c @@ -1,42 +1,26 @@ -// 0x0700D318 - 0x0700D320 -static const Ambient jrb_seg7_light_0700D318 = { - {{0x14, 0x30, 0x2c}, 0, {0x14, 0x30, 0x2c}, 0} -}; +// 0x0700D318 - 0x0700D330 +static const Lights1 jrb_seg7_lights_0700D318 = gdSPDefLights1( + 0x14, 0x30, 0x2c, + 0x32, 0x78, 0x6e, 0x28, 0x28, 0x28 +); -// 0x0700D320 - 0x0700D330 -static const Light jrb_seg7_light_0700D320 = { - {{0x32, 0x78, 0x6e}, 0, {0x32, 0x78, 0x6e}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700D330 - 0x0700D348 +static const Lights1 jrb_seg7_lights_0700D330 = gdSPDefLights1( + 0x3c, 0x52, 0x4a, + 0x97, 0xcd, 0xbb, 0x28, 0x28, 0x28 +); -// 0x0700D330 - 0x0700D338 -static const Ambient jrb_seg7_light_0700D330 = { - {{0x3c, 0x52, 0x4a}, 0, {0x3c, 0x52, 0x4a}, 0} -}; +// 0x0700D348 - 0x0700D360 +static const Lights1 jrb_seg7_lights_0700D348 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700D338 - 0x0700D348 -static const Light jrb_seg7_light_0700D338 = { - {{0x97, 0xcd, 0xbb}, 0, {0x97, 0xcd, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700D348 - 0x0700D350 -static const Ambient jrb_seg7_light_0700D348 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700D350 - 0x0700D360 -static const Light jrb_seg7_light_0700D350 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700D360 - 0x0700D368 -static const Ambient jrb_seg7_light_0700D360 = { - {{0x50, 0x66, 0x58}, 0, {0x50, 0x66, 0x58}, 0} -}; - -// 0x0700D368 - 0x0700D378 -static const Light jrb_seg7_light_0700D368 = { - {{0xc8, 0xff, 0xdc}, 0, {0xc8, 0xff, 0xdc}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700D360 - 0x0700D378 +static const Lights1 jrb_seg7_lights_0700D360 = gdSPDefLights1( + 0x50, 0x66, 0x58, + 0xc8, 0xff, 0xdc, 0x28, 0x28, 0x28 +); // 0x0700D378 - 0x0700D3F8 static const Vtx jrb_seg7_vertex_0700D378[] = { @@ -450,15 +434,15 @@ static const Gfx jrb_seg7_dl_0700E6E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09005800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_0700D320, 1), - gsSPLight(&jrb_seg7_light_0700D318, 2), + gsSPLight(&jrb_seg7_lights_0700D318.l, 1), + gsSPLight(&jrb_seg7_lights_0700D318.a, 2), gsSPVertex(jrb_seg7_vertex_0700D378, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 3, 2, 4, 0x0, 5, 3, 4, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 7, 6, 1, 0x0), gsSP2Triangles( 7, 5, 6, 0x0, 0, 7, 1, 0x0), - gsSPLight(&jrb_seg7_light_0700D338, 1), - gsSPLight(&jrb_seg7_light_0700D330, 2), + gsSPLight(&jrb_seg7_lights_0700D330.l, 1), + gsSPLight(&jrb_seg7_lights_0700D330.a, 2), gsSPVertex(jrb_seg7_vertex_0700D3F8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 4, 3, 0x0, 4, 7, 5, 0x0), @@ -493,18 +477,18 @@ static const Gfx jrb_seg7_dl_0700E8C8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_0900A000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_0700D320, 1), - gsSPLight(&jrb_seg7_light_0700D318, 2), + gsSPLight(&jrb_seg7_lights_0700D318.l, 1), + gsSPLight(&jrb_seg7_lights_0700D318.a, 2), gsSPVertex(jrb_seg7_vertex_0700D878, 11, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), gsSP1Triangle(10, 0, 2, 0x0), - gsSPLight(&jrb_seg7_light_0700D338, 1), - gsSPLight(&jrb_seg7_light_0700D330, 2), + gsSPLight(&jrb_seg7_lights_0700D330.l, 1), + gsSPLight(&jrb_seg7_lights_0700D330.a, 2), gsSPVertex(jrb_seg7_vertex_0700D928, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), - gsSPLight(&jrb_seg7_light_0700D350, 1), - gsSPLight(&jrb_seg7_light_0700D348, 2), + gsSPLight(&jrb_seg7_lights_0700D348.l, 1), + gsSPLight(&jrb_seg7_lights_0700D348.a, 2), gsSPVertex(jrb_seg7_vertex_0700D968, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -517,8 +501,8 @@ static const Gfx jrb_seg7_dl_0700E998[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_0700D368, 1), - gsSPLight(&jrb_seg7_light_0700D360, 2), + gsSPLight(&jrb_seg7_lights_0700D360.l, 1), + gsSPLight(&jrb_seg7_lights_0700D360.a, 2), gsSPVertex(jrb_seg7_vertex_0700DA28, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), gsSP2Triangles( 1, 4, 5, 0x0, 5, 2, 1, 0x0), @@ -594,16 +578,16 @@ static const Gfx jrb_seg7_dl_0700ECB8[] = { gsSP2Triangles( 4, 5, 6, 0x0, 5, 4, 7, 0x0), gsSP2Triangles( 8, 9, 6, 0x0, 10, 8, 6, 0x0), gsSP2Triangles( 9, 4, 6, 0x0, 11, 5, 7, 0x0), - gsSPLight(&jrb_seg7_light_0700D320, 1), - gsSPLight(&jrb_seg7_light_0700D318, 2), + gsSPLight(&jrb_seg7_lights_0700D318.l, 1), + gsSPLight(&jrb_seg7_lights_0700D318.a, 2), gsSPVertex(jrb_seg7_vertex_0700E458, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 1, 4, 2, 0x0, 2, 4, 5, 0x0), gsSP2Triangles( 2, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles(10, 7, 9, 0x0, 3, 10, 9, 0x0), gsSP2Triangles( 3, 11, 10, 0x0, 0, 11, 3, 0x0), - gsSPLight(&jrb_seg7_light_0700D350, 1), - gsSPLight(&jrb_seg7_light_0700D348, 2), + gsSPLight(&jrb_seg7_lights_0700D348.l, 1), + gsSPLight(&jrb_seg7_lights_0700D348.a, 2), gsSPVertex(jrb_seg7_vertex_0700E518, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -614,8 +598,8 @@ static const Gfx jrb_seg7_dl_0700EE28[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09002800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_0700D368, 1), - gsSPLight(&jrb_seg7_light_0700D360, 2), + gsSPLight(&jrb_seg7_lights_0700D360.l, 1), + gsSPLight(&jrb_seg7_lights_0700D360.a, 2), gsSPVertex(jrb_seg7_vertex_0700E558, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 5, 3, 0x0, 0, 6, 5, 0x0), diff --git a/levels/jrb/areas/2/2/model.inc.c b/levels/jrb/areas/2/2/model.inc.c index d26eb8a..74b2c07 100644 --- a/levels/jrb/areas/2/2/model.inc.c +++ b/levels/jrb/areas/2/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700EF98 - 0x0700EFA0 -static const Ambient jrb_seg7_light_0700EF98 = { - {{0x3c, 0x66, 0x66}, 0, {0x3c, 0x66, 0x66}, 0} -}; - -// 0x0700EFA0 - 0x0700EFB0 -static const Light jrb_seg7_light_0700EFA0 = { - {{0x96, 0xff, 0xff}, 0, {0x96, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700EF98 - 0x0700EFB0 +static const Lights1 jrb_seg7_lights_0700EF98 = gdSPDefLights1( + 0x3c, 0x66, 0x66, + 0x96, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700EFB0 - 0x0700F0B0 static const Vtx jrb_seg7_vertex_0700EFB0[] = { @@ -249,8 +245,8 @@ static const Gfx jrb_seg7_dl_0700FB30[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09006000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_0700EFA0, 1), - gsSPLight(&jrb_seg7_light_0700EF98, 2), + gsSPLight(&jrb_seg7_lights_0700EF98.l, 1), + gsSPLight(&jrb_seg7_lights_0700EF98.a, 2), gsSPVertex(jrb_seg7_vertex_0700EFB0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), diff --git a/levels/jrb/areas/2/3/model.inc.c b/levels/jrb/areas/2/3/model.inc.c index 1d02f67..00c6bfa 100644 --- a/levels/jrb/areas/2/3/model.inc.c +++ b/levels/jrb/areas/2/3/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700FEB8 - 0x0700FEC0 -static const Ambient jrb_seg7_light_0700FEB8 = { - {{0x50, 0x66, 0x58}, 0, {0x50, 0x66, 0x58}, 0} -}; - -// 0x0700FEC0 - 0x0700FED0 -static const Light jrb_seg7_light_0700FEC0 = { - {{0xc8, 0xff, 0xdc}, 0, {0xc8, 0xff, 0xdc}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700FEB8 - 0x0700FED0 +static const Lights1 jrb_seg7_lights_0700FEB8 = gdSPDefLights1( + 0x50, 0x66, 0x58, + 0xc8, 0xff, 0xdc, 0x28, 0x28, 0x28 +); // 0x0700FED0 - 0x0700FFC0 static const Vtx jrb_seg7_vertex_0700FED0[] = { @@ -109,8 +105,8 @@ static const Gfx jrb_seg7_dl_07010390[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_0700FEC0, 1), - gsSPLight(&jrb_seg7_light_0700FEB8, 2), + gsSPLight(&jrb_seg7_lights_0700FEB8.l, 1), + gsSPLight(&jrb_seg7_lights_0700FEB8.a, 2), gsSPVertex(jrb_seg7_vertex_0700FED0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 3, 7, 6, 0x0), diff --git a/levels/jrb/falling_pillar/model.inc.c b/levels/jrb/falling_pillar/model.inc.c index 8bab79e..e84c31d 100644 --- a/levels/jrb/falling_pillar/model.inc.c +++ b/levels/jrb/falling_pillar/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700AD38 - 0x0700AD40 -static const Ambient jrb_seg7_light_0700AD38 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0700AD40 - 0x0700AD50 -static const Light jrb_seg7_light_0700AD40 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700AD38 - 0x0700AD50 +static const Lights1 jrb_seg7_lights_0700AD38 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700AD50 - 0x0700ADD0 static const Vtx jrb_seg7_vertex_0700AD50[] = { @@ -25,8 +21,8 @@ static const Gfx jrb_seg7_dl_0700ADD0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_0700AD40, 1), - gsSPLight(&jrb_seg7_light_0700AD38, 2), + gsSPLight(&jrb_seg7_lights_0700AD38.l, 1), + gsSPLight(&jrb_seg7_lights_0700AD38.a, 2), gsSPVertex(jrb_seg7_vertex_0700AD50, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 6, 4, 7, 0x0), diff --git a/levels/jrb/falling_pillar_base/model.inc.c b/levels/jrb/falling_pillar_base/model.inc.c index 6304493..2d52520 100644 --- a/levels/jrb/falling_pillar_base/model.inc.c +++ b/levels/jrb/falling_pillar_base/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700AEF0 - 0x0700AEF8 -static const Ambient jrb_seg7_light_0700AEF0 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0700AEF8 - 0x0700AF08 -static const Light jrb_seg7_light_0700AEF8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700AEF0 - 0x0700AF08 +static const Lights1 jrb_seg7_lights_0700AEF0 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700AF08 - 0x0700AF58 static const Vtx jrb_seg7_vertex_0700AF08[] = { @@ -22,8 +18,8 @@ static const Gfx jrb_seg7_dl_0700AF58[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_0700AEF8, 1), - gsSPLight(&jrb_seg7_light_0700AEF0, 2), + gsSPLight(&jrb_seg7_lights_0700AEF0.l, 1), + gsSPLight(&jrb_seg7_lights_0700AEF0.a, 2), gsSPVertex(jrb_seg7_vertex_0700AF08, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), gsSP2Triangles( 2, 1, 4, 0x0, 1, 0, 3, 0x0), diff --git a/levels/jrb/floating_platform/model.inc.c b/levels/jrb/floating_platform/model.inc.c index 48ec857..48ef2d5 100644 --- a/levels/jrb/floating_platform/model.inc.c +++ b/levels/jrb/floating_platform/model.inc.c @@ -1,12 +1,8 @@ -// 0x07007B70 - 0x07007B78 -static const Ambient jrb_seg7_light_07007B70 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07007B78 - 0x07007B88 -static const Light jrb_seg7_light_07007B78 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07007B70 - 0x07007B88 +static const Lights1 jrb_seg7_lights_07007B70 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07007B88 - 0x07007C88 static const Vtx jrb_seg7_vertex_07007B88[] = { @@ -45,8 +41,8 @@ static const Gfx jrb_seg7_dl_07007D08[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_0900A000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_07007B78, 1), - gsSPLight(&jrb_seg7_light_07007B70, 2), + gsSPLight(&jrb_seg7_lights_07007B70.l, 1), + gsSPLight(&jrb_seg7_lights_07007B70.a, 2), gsSPVertex(jrb_seg7_vertex_07007B88, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/jrb/leveldata.c b/levels/jrb/leveldata.c index 3f76513..12cc6b7 100644 --- a/levels/jrb/leveldata.c +++ b/levels/jrb/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/jrb/texture.inc.c" diff --git a/levels/jrb/rock/model.inc.c b/levels/jrb/rock/model.inc.c index c4b0207..fb217ac 100644 --- a/levels/jrb/rock/model.inc.c +++ b/levels/jrb/rock/model.inc.c @@ -1,12 +1,8 @@ -// 0x070077F0 - 0x070077F8 -static const Ambient jrb_seg7_light_070077F0 = { - {{0x32, 0x38, 0x3f}, 0, {0x32, 0x38, 0x3f}, 0} -}; - -// 0x070077F8 - 0x07007808 -static const Light jrb_seg7_light_070077F8 = { - {{0xc8, 0xe1, 0xff}, 0, {0xc8, 0xe1, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070077F0 - 0x07007808 +static const Lights1 jrb_seg7_lights_070077F0 = gdSPDefLights1( + 0x32, 0x38, 0x3f, + 0xc8, 0xe1, 0xff, 0x28, 0x28, 0x28 +); // 0x07007808 - 0x07007908 static const Vtx jrb_seg7_vertex_07007808[] = { @@ -51,8 +47,8 @@ static const Gfx jrb_seg7_dl_070079E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_070077F8, 1), - gsSPLight(&jrb_seg7_light_070077F0, 2), + gsSPLight(&jrb_seg7_lights_070077F0.l, 1), + gsSPLight(&jrb_seg7_lights_070077F0.a, 2), gsSPVertex(jrb_seg7_vertex_07007808, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 0, 4, 3, 0x0, 3, 6, 0, 0x0), diff --git a/levels/jrb/script.c b/levels/jrb/script.c index bad4764..c09e177 100644 --- a/levels/jrb/script.c +++ b/levels/jrb/script.c @@ -143,10 +143,10 @@ const LevelScript level_jrb_entry[] = { AREA(/*index*/ 1, jrb_geo_000A18), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -6750, 2126, 1482, /*angle*/ 0, 90, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps74), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x0C, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF3, /*destLevel*/ 0x0C, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_JRB, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF3, /*destLevel*/ LEVEL_JRB, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT), WHIRLPOOL(/*unk2*/ 0, /*unk3*/ 3, /*pos*/ 4979, -5222, 2482, /*strength*/ -30), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), @@ -159,9 +159,9 @@ const LevelScript level_jrb_entry[] = { AREA(/*index*/ 2, jrb_geo_000AFC), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 928, 1050, -1248, /*angle*/ 0, 180, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps94), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x0C, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_JRB, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_4), JUMP_LINK(script_func_local_5), TERRAIN(/*terrainData*/ jrb_seg7_area_2_collision), diff --git a/levels/jrb/sliding_box/model.inc.c b/levels/jrb/sliding_box/model.inc.c index a573d03..afb7fa4 100644 --- a/levels/jrb/sliding_box/model.inc.c +++ b/levels/jrb/sliding_box/model.inc.c @@ -1,12 +1,8 @@ -// 0x07007EA0 - 0x07007EA8 -static const Ambient jrb_seg7_light_07007EA0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07007EA8 - 0x07007EB8 -static const Light jrb_seg7_light_07007EA8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07007EA0 - 0x07007EB8 +static const Lights1 jrb_seg7_lights_07007EA0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07007EB8 - 0x07007FB8 static const Vtx jrb_seg7_vertex_07007EB8[] = { @@ -45,8 +41,8 @@ static const Gfx jrb_seg7_dl_07008038[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, jrb_seg7_texture_07001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_07007EA8, 1), - gsSPLight(&jrb_seg7_light_07007EA0, 2), + gsSPLight(&jrb_seg7_lights_07007EA0.l, 1), + gsSPLight(&jrb_seg7_lights_07007EA0.a, 2), gsSPVertex(jrb_seg7_vertex_07007EB8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/jrb/wooden_ship/model.inc.c b/levels/jrb/wooden_ship/model.inc.c index cded317..b01ee12 100644 --- a/levels/jrb/wooden_ship/model.inc.c +++ b/levels/jrb/wooden_ship/model.inc.c @@ -1,22 +1,14 @@ -// 0x070081A8 - 0x070081B0 -static const Ambient jrb_seg7_light_070081A8 = { - {{0x1e, 0x2c, 0x3a}, 0, {0x1e, 0x2c, 0x3a}, 0} -}; +// 0x070081A8 - 0x070081C0 +static const Lights1 jrb_seg7_lights_070081A8 = gdSPDefLights1( + 0x1e, 0x2c, 0x3a, + 0x79, 0xb2, 0xeb, 0x28, 0x28, 0x28 +); -// 0x070081B0 - 0x070081C0 -static const Light jrb_seg7_light_070081B0 = { - {{0x79, 0xb2, 0xeb}, 0, {0x79, 0xb2, 0xeb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070081C0 - 0x070081C8 -static const Ambient jrb_seg7_light_070081C0 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x070081C8 - 0x070081D8 -static const Light jrb_seg7_light_070081C8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070081C0 - 0x070081D8 +static const Lights1 jrb_seg7_lights_070081C0 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070081D8 - 0x070082C8 static const Vtx jrb_seg7_vertex_070081D8[] = { @@ -226,8 +218,8 @@ static const Gfx jrb_seg7_dl_07008B88[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09005800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_070081B0, 1), - gsSPLight(&jrb_seg7_light_070081A8, 2), + gsSPLight(&jrb_seg7_lights_070081A8.l, 1), + gsSPLight(&jrb_seg7_lights_070081A8.a, 2), gsSPVertex(jrb_seg7_vertex_070081D8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -252,8 +244,8 @@ static const Gfx jrb_seg7_dl_07008C90[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_070081C8, 1), - gsSPLight(&jrb_seg7_light_070081C0, 2), + gsSPLight(&jrb_seg7_lights_070081C0.l, 1), + gsSPLight(&jrb_seg7_lights_070081C0.a, 2), gsSPVertex(jrb_seg7_vertex_07008478, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 2, 4, 3, 0x0, 5, 6, 7, 0x0), @@ -388,35 +380,23 @@ const Gfx jrb_seg7_dl_070090B0[] = { gsSPEndDisplayList(), }; -// 0x07009190 - 0x07009198 -static const Ambient jrb_seg7_light_07009190 = { - {{0x1e, 0x2c, 0x3a}, 0, {0x1e, 0x2c, 0x3a}, 0} -}; +// 0x07009190 - 0x070091A8 +static const Lights1 jrb_seg7_lights_07009190 = gdSPDefLights1( + 0x1e, 0x2c, 0x3a, + 0x79, 0xb2, 0xeb, 0x28, 0x28, 0x28 +); -// 0x07009198 - 0x070091A8 -static const Light jrb_seg7_light_07009198 = { - {{0x79, 0xb2, 0xeb}, 0, {0x79, 0xb2, 0xeb}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070091A8 - 0x070091C0 +static const Lights1 jrb_seg7_lights_070091A8 = gdSPDefLights1( + 0x19, 0x2c, 0x3f, + 0x65, 0xb2, 0xff, 0x28, 0x28, 0x28 +); -// 0x070091A8 - 0x070091B0 -static const Ambient jrb_seg7_light_070091A8 = { - {{0x19, 0x2c, 0x3f}, 0, {0x19, 0x2c, 0x3f}, 0} -}; - -// 0x070091B0 - 0x070091C0 -static const Light jrb_seg7_light_070091B0 = { - {{0x65, 0xb2, 0xff}, 0, {0x65, 0xb2, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070091C0 - 0x070091C8 -static const Ambient jrb_seg7_light_070091C0 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x070091C8 - 0x070091D8 -static const Light jrb_seg7_light_070091C8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070091C0 - 0x070091D8 +static const Lights1 jrb_seg7_lights_070091C0 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070091D8 - 0x07009218 static const Vtx jrb_seg7_vertex_070091D8[] = { @@ -551,12 +531,12 @@ static const Gfx jrb_seg7_dl_07009798[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09005800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_07009198, 1), - gsSPLight(&jrb_seg7_light_07009190, 2), + gsSPLight(&jrb_seg7_lights_07009190.l, 1), + gsSPLight(&jrb_seg7_lights_07009190.a, 2), gsSPVertex(jrb_seg7_vertex_070091D8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&jrb_seg7_light_070091B0, 1), - gsSPLight(&jrb_seg7_light_070091A8, 2), + gsSPLight(&jrb_seg7_lights_070091A8.l, 1), + gsSPLight(&jrb_seg7_lights_070091A8.a, 2), gsSPVertex(jrb_seg7_vertex_07009218, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -567,8 +547,8 @@ static const Gfx jrb_seg7_dl_07009808[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_070091C8, 1), - gsSPLight(&jrb_seg7_light_070091C0, 2), + gsSPLight(&jrb_seg7_lights_070091C0.l, 1), + gsSPLight(&jrb_seg7_lights_070091C0.a, 2), gsSPVertex(jrb_seg7_vertex_07009258, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 7, 0x0, 3, 5, 7, 0x0), @@ -686,35 +666,23 @@ const Gfx jrb_seg7_dl_07009B30[] = { gsSPEndDisplayList(), }; -// 0x07009C10 - 0x07009C18 -static const Ambient jrb_seg7_light_07009C10 = { - {{0x1e, 0x2c, 0x3a}, 0, {0x1e, 0x2c, 0x3a}, 0} -}; +// 0x07009C10 - 0x07009C28 +static const Lights1 jrb_seg7_lights_07009C10 = gdSPDefLights1( + 0x1e, 0x2c, 0x3a, + 0x79, 0xb2, 0xeb, 0x28, 0x28, 0x28 +); -// 0x07009C18 - 0x07009C28 -static const Light jrb_seg7_light_07009C18 = { - {{0x79, 0xb2, 0xeb}, 0, {0x79, 0xb2, 0xeb}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07009C28 - 0x07009C40 +static const Lights1 jrb_seg7_lights_07009C28 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07009C28 - 0x07009C30 -static const Ambient jrb_seg7_light_07009C28 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07009C30 - 0x07009C40 -static const Light jrb_seg7_light_07009C30 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07009C40 - 0x07009C48 -static const Ambient jrb_seg7_light_07009C40 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x07009C48 - 0x07009C58 -static const Light jrb_seg7_light_07009C48 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07009C40 - 0x07009C58 +static const Lights1 jrb_seg7_lights_07009C40 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x07009C58 - 0x07009D48 static const Vtx jrb_seg7_vertex_07009C58[] = { @@ -859,8 +827,8 @@ static const Gfx jrb_seg7_dl_0700A2F8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09005800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_07009C18, 1), - gsSPLight(&jrb_seg7_light_07009C10, 2), + gsSPLight(&jrb_seg7_lights_07009C10.l, 1), + gsSPLight(&jrb_seg7_lights_07009C10.a, 2), gsSPVertex(jrb_seg7_vertex_07009C58, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -879,8 +847,8 @@ static const Gfx jrb_seg7_dl_0700A3A8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_07009C30, 1), - gsSPLight(&jrb_seg7_light_07009C28, 2), + gsSPLight(&jrb_seg7_lights_07009C28.l, 1), + gsSPLight(&jrb_seg7_lights_07009C28.a, 2), gsSPVertex(jrb_seg7_vertex_07009E38, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 6, 5, 7, 0x0), @@ -900,16 +868,16 @@ static const Gfx jrb_seg7_dl_0700A470[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_07009C48, 1), - gsSPLight(&jrb_seg7_light_07009C40, 2), + gsSPLight(&jrb_seg7_lights_07009C40.l, 1), + gsSPLight(&jrb_seg7_lights_07009C40.a, 2), gsSPVertex(jrb_seg7_vertex_07009FC8, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 0, 4, 3, 0x0, 4, 5, 6, 0x0), gsSP2Triangles( 4, 0, 5, 0x0, 7, 1, 3, 0x0), gsSP2Triangles( 7, 2, 1, 0x0, 6, 7, 3, 0x0), gsSP2Triangles( 0, 2, 5, 0x0, 6, 3, 4, 0x0), - gsSPLight(&jrb_seg7_light_07009C30, 1), - gsSPLight(&jrb_seg7_light_07009C28, 2), + gsSPLight(&jrb_seg7_lights_07009C28.l, 1), + gsSPLight(&jrb_seg7_lights_07009C28.a, 2), gsSPVertex(jrb_seg7_vertex_0700A048, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -961,25 +929,17 @@ const Gfx jrb_seg7_dl_0700A608[] = { gsSPEndDisplayList(), }; -// 0x0700A6D8 - 0x0700A6E0 -static const Ambient jrb_seg7_light_0700A6D8 = { - {{0x1e, 0x2c, 0x3a}, 0, {0x1e, 0x2c, 0x3a}, 0} -}; +// 0x0700A6D8 - 0x0700A6F0 +static const Lights1 jrb_seg7_lights_0700A6D8 = gdSPDefLights1( + 0x1e, 0x2c, 0x3a, + 0x79, 0xb2, 0xeb, 0x28, 0x28, 0x28 +); -// 0x0700A6E0 - 0x0700A6F0 -static const Light jrb_seg7_light_0700A6E0 = { - {{0x79, 0xb2, 0xeb}, 0, {0x79, 0xb2, 0xeb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700A6F0 - 0x0700A6F8 -static const Ambient jrb_seg7_light_0700A6F0 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0700A6F8 - 0x0700A708 -static const Light jrb_seg7_light_0700A6F8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700A6F0 - 0x0700A708 +static const Lights1 jrb_seg7_lights_0700A6F0 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700A708 - 0x0700A748 static const Vtx jrb_seg7_vertex_0700A708[] = { @@ -1063,8 +1023,8 @@ static const Gfx jrb_seg7_dl_0700AA98[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09005800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_0700A6E0, 1), - gsSPLight(&jrb_seg7_light_0700A6D8, 2), + gsSPLight(&jrb_seg7_lights_0700A6D8.l, 1), + gsSPLight(&jrb_seg7_lights_0700A6D8.a, 2), gsSPVertex(jrb_seg7_vertex_0700A708, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSPEndDisplayList(), @@ -1075,8 +1035,8 @@ static const Gfx jrb_seg7_dl_0700AAE0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, water_09000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&jrb_seg7_light_0700A6F8, 1), - gsSPLight(&jrb_seg7_light_0700A6F0, 2), + gsSPLight(&jrb_seg7_lights_0700A6F0.l, 1), + gsSPLight(&jrb_seg7_lights_0700A6F0.a, 2), gsSPVertex(jrb_seg7_vertex_0700A748, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 4, 7, 6, 0x0), diff --git a/levels/level_defines.h b/levels/level_defines.h new file mode 100644 index 0000000..3af6444 --- /dev/null +++ b/levels/level_defines.h @@ -0,0 +1,61 @@ +#ifdef VERSION_JP +#define VAL_DIFF 25000 +#else +#define VAL_DIFF 60000 +#endif + +// Define lists for list of level for macros. Each of the following fields are described: +// Argument 1: Internal ROM name of the level. +// Argument 2: Level enumerator for enum used to identify the level ID. +// Argument 3: Course enumerator for enum used to identify the course ID. +// Argument 4: Shorthand name of the level which should be the name of the levels/ folder of the level. +// Argument 5: The shared texture bin used. +// Argument 6: Acoustic reaches for each levels. +// Argument 7, 8, 9: Echo levels for individual areas. +// Argument 10: Specify dynamic music tables for levels, if specified. _ for none. +// Argument 11: Specify level camera table, if specified. _ for none. + +// NOTE: Be sure to edit zoomOutAreaMasks in camera.c, as there isnt a good way to macro those right now. +// TODO: Figure something out for zoomOutAreaMasks? +#ifndef SKIP_FIRST_LAST_STUBS // this is needed for the zoomOutAreaMasks array which has a weird way of doing the bit array packs. +STUB_LEVEL( "", LEVEL_UNKNOWN_1, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +#endif +STUB_LEVEL( "", LEVEL_UNKNOWN_2, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +STUB_LEVEL( "", LEVEL_UNKNOWN_3, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +DEFINE_LEVEL("TERESA OBAKE", LEVEL_BBH, COURSE_BBH, bbh, spooky, 28000, 0x28, 0x28, 0x28, sDynBbh, TableCameraBBH) +DEFINE_LEVEL("YYAMA1 % YSLD1", LEVEL_CCM, COURSE_CCM, ccm, snow, 17000, 0x10, 0x38, 0x38, _, TableCameraCCM) +DEFINE_LEVEL("SELECT ROOM", LEVEL_CASTLE, COURSE_NONE, castle_inside, inside, 20000, 0x20, 0x20, 0x30, _, TableCameraInside) +DEFINE_LEVEL("HORROR DUNGEON", LEVEL_HMC, COURSE_HMC, hmc, cave, 16000, 0x28, 0x28, 0x28, sDynHmc, TableCameraHMC) +DEFINE_LEVEL("SABAKU % PYRMD", LEVEL_SSL, COURSE_SSL, ssl, generic, 15000, 0x08, 0x30, 0x30, _, TableCameraSSL) +DEFINE_LEVEL("BATTLE FIELD", LEVEL_BOB, COURSE_BOB, bob, generic, 15000, 0x08, 0x08, 0x08, _, _) +DEFINE_LEVEL("YUKIYAMA2", LEVEL_SL, COURSE_SL, sl, snow, 14000, 0x10, 0x28, 0x28, _, TableCameraSL) +DEFINE_LEVEL("POOL KAI", LEVEL_WDW, COURSE_WDW, wdw, grass, 17000, 0x10, 0x18, 0x18, sDynWdw, _) +DEFINE_LEVEL("WTDG % TINBOTU", LEVEL_JRB, COURSE_JRB, jrb, water, 20000, 0x10, 0x18, 0x18, sDynJrb, _) +DEFINE_LEVEL("BIG WORLD", LEVEL_THI, COURSE_THI, thi, grass, 20000, 0x0c, 0x0c, 0x20, _, TableCameraTHI) +DEFINE_LEVEL("CLOCK TOWER", LEVEL_TTC, COURSE_TTC, ttc, machine, 18000, 0x18, 0x18, 0x18, _, _) +DEFINE_LEVEL("RAINBOW CRUISE", LEVEL_RR, COURSE_RR, rr, sky, 20000, 0x20, 0x20, 0x20, _, TableCameraRR) +DEFINE_LEVEL("MAIN MAP", LEVEL_CASTLE_GROUNDS, COURSE_NONE, castle_grounds, outside, 25000, 0x08, 0x08, 0x08, _, _) +DEFINE_LEVEL("EXT1 YOKO SCRL", LEVEL_BITDW, COURSE_BITDW, bitdw, sky, 16000, 0x28, 0x28, 0x28, _, _) +DEFINE_LEVEL("EXT7 HORI MINI", LEVEL_VCUTM, COURSE_VCUTM, vcutm, outside, 30000, 0x28, 0x28, 0x28, _, _) +DEFINE_LEVEL("EXT2 TIKA LAVA", LEVEL_BITFS, COURSE_BITFS, bitfs, sky, 16000, 0x28, 0x28, 0x28, _, _) +DEFINE_LEVEL("EXT9 SUISOU", LEVEL_SA, COURSE_SA, sa, inside, 20000, 0x10, 0x10, 0x10, _, _) +DEFINE_LEVEL("EXT3 HEAVEN", LEVEL_BITS, COURSE_BITS, bits, sky, 16000, 0x28, 0x28, 0x28, _, _) +DEFINE_LEVEL("FIREB1 % INVLC", LEVEL_LLL, COURSE_LLL, lll, fire, 22000, 0x08, 0x30, 0x30, _, _) +DEFINE_LEVEL("WATER LAND", LEVEL_DDD, COURSE_DDD, ddd, water, 17000, 0x10, 0x20, 0x20, sDynDdd, _) +DEFINE_LEVEL("MOUNTAIN", LEVEL_WF, COURSE_WF, wf, grass, 13000, 0x08, 0x08, 0x08, _, _) +DEFINE_LEVEL("ENDING", LEVEL_ENDING, COURSE_CAKE_END, ending, generic, 20000, 0x00, 0x00, 0x00, _, _) +DEFINE_LEVEL("URANIWA", LEVEL_CASTLE_COURTYARD, COURSE_NONE, castle_courtyard, outside, 20000, 0x08, 0x08, 0x08, _, _) +DEFINE_LEVEL("EXT4 MINI SLID", LEVEL_PSS, COURSE_PSS, pss, mountain, 20000, 0x28, 0x28, 0x28, _, _) +DEFINE_LEVEL("IN THE FALL", LEVEL_COTMC, COURSE_COTMC, cotmc, cave, 18000, 0x28, 0x28, 0x28, _, TableCameraCotMC) +DEFINE_LEVEL("EXT6 MARIO FLY", LEVEL_TOTWC, COURSE_TOTWC, totwc, sky, 20000, 0x20, 0x20, 0x20, _, _) +DEFINE_LEVEL("KUPPA1", LEVEL_BOWSER_1, COURSE_BITDW, bowser_1, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) +DEFINE_LEVEL("EXT8 BLUE SKY", LEVEL_WMOTR, COURSE_WMOTR, wmotr, generic, 20000, 0x28, 0x28, 0x28, _, _) +STUB_LEVEL( "", LEVEL_UNKNOWN_32, COURSE_NONE, 20000, 0x70, 0x00, 0x00, _, _) +DEFINE_LEVEL("KUPPA2", LEVEL_BOWSER_2, COURSE_BITFS, bowser_2, fire, VAL_DIFF, 0x40, 0x40, 0x40, _, _) +DEFINE_LEVEL("KUPPA3", LEVEL_BOWSER_3, COURSE_BITS, bowser_3, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _) +STUB_LEVEL( "", LEVEL_UNKNOWN_35, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +DEFINE_LEVEL("DONKEY % SLID2", LEVEL_TTM, COURSE_TTM, ttm, mountain, 15000, 0x08, 0x08, 0x08, _, _) +STUB_LEVEL( "", LEVEL_UNKNOWN_37, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _) +#ifndef SKIP_FIRST_LAST_STUBS +STUB_LEVEL( "", LEVEL_UNKNOWN_38, COURSE_NONE, 20000, 0x00, 0x00, 0x00, sDynUnk38, _) +#endif diff --git a/levels/level_headers.h.in b/levels/level_headers.h.in new file mode 100644 index 0000000..038608e --- /dev/null +++ b/levels/level_headers.h.in @@ -0,0 +1,9 @@ +// This file is to be processed by the Makefile to add #include "" before being included in build. + +#define STUB_LEVEL(_0, _1, _2, _3, _4, _5, _6, _7, _8) +#define DEFINE_LEVEL(_0, _1, _2, folder, _4, _5, _6, _7, _8, _9, _10) levels/folder/header.h + +#include "levels/level_defines.h" + +#undef STUB_LEVEL +#undef DEFINE_LEVEL diff --git a/levels/level_rules.mk b/levels/level_rules.mk new file mode 100644 index 0000000..28ef92a --- /dev/null +++ b/levels/level_rules.mk @@ -0,0 +1,7 @@ +#define STUB_LEVEL(_0, _1, _2, _3, _4, _5, _6, _7, _8) +#define DEFINE_LEVEL(_0, _1, _2, folder, texturebin, _5, _6, _7, _8, _9, _10) $(eval $(call level_rules,folder,texturebin)) + +#include "levels/level_defines.h" + +#undef STUB_LEVEL +#undef DEFINE_LEVEL diff --git a/levels/lll/areas/1/1/model.inc.c b/levels/lll/areas/1/1/model.inc.c index 9a1c3b7..9ec904f 100644 --- a/levels/lll/areas/1/1/model.inc.c +++ b/levels/lll/areas/1/1/model.inc.c @@ -895,8 +895,8 @@ static const Gfx lll_seg7_dl_070127D0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_09001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC80, 1), - gsSPLight(&lll_seg7_light_0700FC78, 2), + gsSPLight(&lll_seg7_lights_0700FC78.l, 1), + gsSPLight(&lll_seg7_lights_0700FC78.a, 2), gsSPVertex(lll_seg7_vertex_0700FC90, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/lll/areas/1/10/model.inc.c b/levels/lll/areas/1/10/model.inc.c index a1fbe8d..5bc2cb9 100644 --- a/levels/lll/areas/1/10/model.inc.c +++ b/levels/lll/areas/1/10/model.inc.c @@ -47,8 +47,8 @@ static const Gfx lll_seg7_dl_070164E0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lll_seg7_texture_07005800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_070162E0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 0, 4, 5, 0x0), diff --git a/levels/lll/areas/1/11/model.inc.c b/levels/lll/areas/1/11/model.inc.c index 86fa886..407a1d8 100644 --- a/levels/lll/areas/1/11/model.inc.c +++ b/levels/lll/areas/1/11/model.inc.c @@ -1,12 +1,8 @@ -// 0x07016658 - 0x07016660 -static const Ambient lll_seg7_light_07016658 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07016660 - 0x07016670 -static const Light lll_seg7_light_07016660 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07016658 - 0x07016670 +static const Lights1 lll_seg7_lights_07016658 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07016670 - 0x07016770 static const Vtx lll_seg7_vertex_07016670[] = { @@ -73,8 +69,8 @@ static const Gfx lll_seg7_dl_07016930[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_09003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_07016660, 1), - gsSPLight(&lll_seg7_light_07016658, 2), + gsSPLight(&lll_seg7_lights_07016658.l, 1), + gsSPLight(&lll_seg7_lights_07016658.a, 2), gsSPVertex(lll_seg7_vertex_07016670, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 2, 0x0), gsSP2Triangles( 5, 0, 2, 0x0, 5, 2, 6, 0x0), diff --git a/levels/lll/areas/1/12/model.inc.c b/levels/lll/areas/1/12/model.inc.c index b33a16a..d01eca4 100644 --- a/levels/lll/areas/1/12/model.inc.c +++ b/levels/lll/areas/1/12/model.inc.c @@ -145,8 +145,8 @@ static const Gfx lll_seg7_dl_07017250[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_07016B70, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 4, 1, 0x0, 0, 5, 6, 0x0), diff --git a/levels/lll/areas/1/13/model.inc.c b/levels/lll/areas/1/13/model.inc.c index 7b03d5c..b503aca 100644 --- a/levels/lll/areas/1/13/model.inc.c +++ b/levels/lll/areas/1/13/model.inc.c @@ -1,12 +1,8 @@ -// 0x07017578 - 0x07017580 -static const Ambient lll_seg7_light_07017578 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07017580 - 0x07017590 -static const Light lll_seg7_light_07017580 = { - {{0xfe, 0xff, 0xff}, 0, {0xfe, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07017578 - 0x07017590 +static const Lights1 lll_seg7_lights_07017578 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xfe, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07017590 - 0x07017650 static const Vtx lll_seg7_vertex_07017590[] = { @@ -59,8 +55,8 @@ static const Gfx lll_seg7_dl_070177B0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_0900B800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_07017580, 1), - gsSPLight(&lll_seg7_light_07017578, 2), + gsSPLight(&lll_seg7_lights_07017578.l, 1), + gsSPLight(&lll_seg7_lights_07017578.a, 2), gsSPVertex(lll_seg7_vertex_07017590, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/levels/lll/areas/1/14/model.inc.c b/levels/lll/areas/1/14/model.inc.c index 12df224..e1dfc82 100644 --- a/levels/lll/areas/1/14/model.inc.c +++ b/levels/lll/areas/1/14/model.inc.c @@ -35,8 +35,8 @@ static const Gfx lll_seg7_dl_07017A78[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_07017938, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/levels/lll/areas/1/2/model.inc.c b/levels/lll/areas/1/2/model.inc.c index dc47f81..591b827 100644 --- a/levels/lll/areas/1/2/model.inc.c +++ b/levels/lll/areas/1/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x07013620 - 0x07013628 -static const Ambient lll_seg7_light_07013620 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07013628 - 0x07013638 -static const Light lll_seg7_light_07013628 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07013620 - 0x07013638 +static const Lights1 lll_seg7_lights_07013620 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07013638 - 0x07013738 static const Vtx lll_seg7_vertex_07013638[] = { @@ -33,8 +29,8 @@ static const Gfx lll_seg7_dl_07013738[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_07013628, 1), - gsSPLight(&lll_seg7_light_07013620, 2), + gsSPLight(&lll_seg7_lights_07013620.l, 1), + gsSPLight(&lll_seg7_lights_07013620.a, 2), gsSPVertex(lll_seg7_vertex_07013638, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 8, 0x0), diff --git a/levels/lll/areas/1/4/model.inc.c b/levels/lll/areas/1/4/model.inc.c index 54c7a35..1c4b936 100644 --- a/levels/lll/areas/1/4/model.inc.c +++ b/levels/lll/areas/1/4/model.inc.c @@ -61,8 +61,8 @@ static const Gfx lll_seg7_dl_07013C08[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_0900A800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_07013968, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 0, 5, 6, 0x0), diff --git a/levels/lll/areas/1/5/model.inc.c b/levels/lll/areas/1/5/model.inc.c index a132041..e01df24 100644 --- a/levels/lll/areas/1/5/model.inc.c +++ b/levels/lll/areas/1/5/model.inc.c @@ -151,8 +151,8 @@ static const Gfx lll_seg7_dl_070144F8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_09007800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_07013DB8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/lll/areas/1/6/model.inc.c b/levels/lll/areas/1/6/model.inc.c index d6df6ec..0d2ec80 100644 --- a/levels/lll/areas/1/6/model.inc.c +++ b/levels/lll/areas/1/6/model.inc.c @@ -61,8 +61,8 @@ static const Gfx lll_seg7_dl_07014AB8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_09007800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_07014818, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/lll/areas/1/7/model.inc.c b/levels/lll/areas/1/7/model.inc.c index 4079d80..9523f6e 100644 --- a/levels/lll/areas/1/7/model.inc.c +++ b/levels/lll/areas/1/7/model.inc.c @@ -125,8 +125,8 @@ static const Gfx lll_seg7_dl_07015208[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lll_seg7_texture_07004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_07014C68, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 0, 5, 6, 0x0), diff --git a/levels/lll/areas/1/8/model.inc.c b/levels/lll/areas/1/8/model.inc.c index 4831190..5bf9ac0 100644 --- a/levels/lll/areas/1/8/model.inc.c +++ b/levels/lll/areas/1/8/model.inc.c @@ -133,8 +133,8 @@ static const Gfx lll_seg7_dl_07015B38[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_070154F8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 3, 5, 7, 0x0), @@ -192,8 +192,8 @@ static const Gfx lll_seg7_dl_07015D18[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_07015858, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/lll/areas/1/9/model.inc.c b/levels/lll/areas/1/9/model.inc.c index 786d7a8..632e925 100644 --- a/levels/lll/areas/1/9/model.inc.c +++ b/levels/lll/areas/1/9/model.inc.c @@ -61,8 +61,8 @@ static const Gfx lll_seg7_dl_07016130[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_07015E90, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 0, 4, 1, 0x0, 0, 5, 6, 0x0), diff --git a/levels/lll/areas/1/light.inc.c b/levels/lll/areas/1/light.inc.c index ea4e331..bcd1d0e 100644 --- a/levels/lll/areas/1/light.inc.c +++ b/levels/lll/areas/1/light.inc.c @@ -1,59 +1,35 @@ -// 0x0700FC00 - 0x0700FC08 -static const Ambient lll_seg7_light_0700FC00 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; +// 0x0700FC00 - 0x0700FC18 +static const Lights1 lll_seg7_lights_0700FC00 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700FC08 - 0x0700FC18 -static const Light lll_seg7_light_0700FC08 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 lll_lights_unused1 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient lll_light_1 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; +// Unreferenced light group +UNUSED static const Lights1 lll_lights_unused2 = gdSPDefLights1( + 0x3f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light lll_light_2 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700FC48 - 0x0700FC60 +static const Lights1 lll_seg7_lights_0700FC48 = gdSPDefLights1( + 0x19, 0x19, 0x19, + 0x64, 0x64, 0x64, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Ambient lll_light_3 = { - {{0x3f, 0x00, 0x00}, 0, {0x3f, 0x00, 0x00}, 0} -}; +// 0x0700FC60 - 0x0700FC78 +static const Lights1 lll_seg7_lights_0700FC60 = gdSPDefLights1( + 0x32, 0x32, 0x32, + 0xc8, 0xc8, 0xc8, 0x28, 0x28, 0x28 +); -// Unreferenced light -UNUSED static const Light lll_light_4 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700FC48 - 0x0700FC50 -static const Ambient lll_seg7_light_0700FC48 = { - {{0x19, 0x19, 0x19}, 0, {0x19, 0x19, 0x19}, 0} -}; - -// 0x0700FC50 - 0x0700FC60 -static const Light lll_seg7_light_0700FC50 = { - {{0x64, 0x64, 0x64}, 0, {0x64, 0x64, 0x64}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700FC60 - 0x0700FC68 -static const Ambient lll_seg7_light_0700FC60 = { - {{0x32, 0x32, 0x32}, 0, {0x32, 0x32, 0x32}, 0} -}; - -// 0x0700FC68 - 0x0700FC78 -static const Light lll_seg7_light_0700FC68 = { - {{0xc8, 0xc8, 0xc8}, 0, {0xc8, 0xc8, 0xc8}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700FC78 - 0x0700FC80 -static const Ambient lll_seg7_light_0700FC78 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0700FC80 - 0x0700FC90 -static const Light lll_seg7_light_0700FC80 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700FC78 - 0x0700FC90 +static const Lights1 lll_seg7_lights_0700FC78 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); diff --git a/levels/lll/areas/1/macro.inc.c b/levels/lll/areas/1/macro.inc.c index c72dc8b..f481307 100644 --- a/levels/lll/areas/1/macro.inc.c +++ b/levels/lll/areas/1/macro.inc.c @@ -8,8 +8,8 @@ const MacroObject lll_seg7_area_1_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ -5100, 220, 1750), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ -5800, 220, 1750), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ -5800, 220, 1000), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -3728, 154, 6057, /*behParam*/ 68), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 315, /*pos*/ 1350, 154, 5942, /*behParam*/ 16), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -3728, 154, 6057, /*behParam*/ DIALOG_068), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 315, /*pos*/ 1350, 154, 5942, /*behParam*/ DIALOG_016), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal_flying, /*yaw*/ 0, /*pos*/ -5760, 100, 3040), MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_hidden_1up, /*yaw*/ 0, /*pos*/ -5100, 540, -4070, /*behParam*/ 4), MACRO_OBJECT(/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ -5400, 320, -4070), @@ -44,7 +44,7 @@ const MacroObject lll_seg7_area_1_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ -6806, 188, 4653), MACRO_OBJECT(/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ -6033, 70, 4973), MACRO_OBJECT(/*preset*/ macro_1up, /*yaw*/ 0, /*pos*/ -6780, 275, -6766), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -3980, 154, 6057, /*behParam*/ 86), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -3980, 154, 6057, /*behParam*/ DIALOG_086), MACRO_OBJECT(/*preset*/ macro_jumping_box, /*yaw*/ 0, /*pos*/ 4170, 154, -1940), MACRO_OBJECT(/*preset*/ macro_flamethrower, /*yaw*/ 0, /*pos*/ 1400, -20, 3720), MACRO_OBJECT(/*preset*/ macro_flamethrower, /*yaw*/ 0, /*pos*/ 7100, -20, 3420), diff --git a/levels/lll/areas/2/2/model.inc.c b/levels/lll/areas/2/2/model.inc.c index 0074d4c..cb781ef 100644 --- a/levels/lll/areas/2/2/model.inc.c +++ b/levels/lll/areas/2/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x070236E8 - 0x070236F0 -static const Ambient lll_seg7_light_070236E8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x070236F0 - 0x07023700 -static const Light lll_seg7_light_070236F0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070236E8 - 0x07023700 +static const Lights1 lll_seg7_lights_070236E8 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07023700 - 0x070237E0 static const Vtx lll_seg7_vertex_07023700[] = { @@ -324,8 +320,8 @@ static const Gfx lll_seg7_dl_07024630[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lll_seg7_texture_0700D400), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_070236F0, 1), - gsSPLight(&lll_seg7_light_070236E8, 2), + gsSPLight(&lll_seg7_lights_070236E8.l, 1), + gsSPLight(&lll_seg7_lights_070236E8.a, 2), gsSPVertex(lll_seg7_vertex_07023700, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 0, 4, 5, 0x0), diff --git a/levels/lll/collapsing_wooden_platform/model.inc.c b/levels/lll/collapsing_wooden_platform/model.inc.c index e99f171..fd5753b 100644 --- a/levels/lll/collapsing_wooden_platform/model.inc.c +++ b/levels/lll/collapsing_wooden_platform/model.inc.c @@ -31,8 +31,8 @@ static const Gfx lll_seg7_dl_070190B0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_0900B800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_07018F70, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/lll/drawbridge_part/model.inc.c b/levels/lll/drawbridge_part/model.inc.c index 54c2629..3541a74 100644 --- a/levels/lll/drawbridge_part/model.inc.c +++ b/levels/lll/drawbridge_part/model.inc.c @@ -43,8 +43,8 @@ static const Gfx lll_seg7_dl_07018570[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lll_seg7_texture_07005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_070183F0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/lll/leveldata.c b/levels/lll/leveldata.c index ee113db..1759609 100644 --- a/levels/lll/leveldata.c +++ b/levels/lll/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/lll/texture.inc.c" diff --git a/levels/lll/long_wooden_bridge/model.inc.c b/levels/lll/long_wooden_bridge/model.inc.c index b35bc80..8fb4c82 100644 --- a/levels/lll/long_wooden_bridge/model.inc.c +++ b/levels/lll/long_wooden_bridge/model.inc.c @@ -31,8 +31,8 @@ static const Gfx lll_seg7_dl_07019330[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_0900B800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_070191F0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/lll/moving_octagonal_mesh_platform/model.inc.c b/levels/lll/moving_octagonal_mesh_platform/model.inc.c index 12c0473..839ee42 100644 --- a/levels/lll/moving_octagonal_mesh_platform/model.inc.c +++ b/levels/lll/moving_octagonal_mesh_platform/model.inc.c @@ -60,8 +60,8 @@ static const Gfx lll_seg7_dl_07018280[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_07017FB0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 3, 7, 6, 0x0), diff --git a/levels/lll/puzzle_piece/model.inc.c b/levels/lll/puzzle_piece/model.inc.c index 5ce6520..e8bdc1f 100644 --- a/levels/lll/puzzle_piece/model.inc.c +++ b/levels/lll/puzzle_piece/model.inc.c @@ -29,8 +29,8 @@ static const Gfx lll_seg7_dl_0701A2F0[] = { // 0x0701A338 - 0x0701A388 static const Gfx lll_seg7_dl_0701A338[] = { - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_0701A270, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), diff --git a/levels/lll/rolling_log/model.inc.c b/levels/lll/rolling_log/model.inc.c index 097489b..dd0e83c 100644 --- a/levels/lll/rolling_log/model.inc.c +++ b/levels/lll/rolling_log/model.inc.c @@ -1,12 +1,8 @@ -// 0x0701A8E8 - 0x0701A8F0 -static const Ambient lll_seg7_light_0701A8E8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0701A8F0 - 0x0701A900 -static const Light lll_seg7_light_0701A8F0 = { - {{0xfe, 0xff, 0xff}, 0, {0xfe, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701A8E8 - 0x0701A900 +static const Lights1 lll_seg7_lights_0701A8E8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xfe, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701A900 - 0x0701A9F0 static const Vtx lll_seg7_vertex_0701A900[] = { @@ -79,8 +75,8 @@ static const Gfx lll_seg7_dl_0701AC20[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_0900A800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0701A8F0, 1), - gsSPLight(&lll_seg7_light_0701A8E8, 2), + gsSPLight(&lll_seg7_lights_0701A8E8.l, 1), + gsSPLight(&lll_seg7_lights_0701A8E8.a, 2), gsSPVertex(lll_seg7_vertex_0701A900, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/lll/rotating_block_fire_bars/model.inc.c b/levels/lll/rotating_block_fire_bars/model.inc.c index 81a912d..b02ed04 100644 --- a/levels/lll/rotating_block_fire_bars/model.inc.c +++ b/levels/lll/rotating_block_fire_bars/model.inc.c @@ -53,8 +53,8 @@ static const Gfx lll_seg7_dl_07018968[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lll_seg7_texture_07004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_07018708, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/levels/lll/rotating_hexagonal_ring/model.inc.c b/levels/lll/rotating_hexagonal_ring/model.inc.c index 8e5a084..ede9e12 100644 --- a/levels/lll/rotating_hexagonal_ring/model.inc.c +++ b/levels/lll/rotating_hexagonal_ring/model.inc.c @@ -87,8 +87,8 @@ static const Gfx lll_seg7_dl_07019870[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lll_seg7_texture_07003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_07019470, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), gsSP2Triangles( 3, 1, 0, 0x0, 5, 6, 7, 0x0), diff --git a/levels/lll/script.c b/levels/lll/script.c index 21036e8..468db3e 100644 --- a/levels/lll/script.c +++ b/levels/lll/script.c @@ -3,6 +3,7 @@ #include "behavior_data.h" #include "model_ids.h" #include "seq_ids.h" +#include "dialog_ids.h" #include "segment_symbols.h" #include "level_commands.h" @@ -46,10 +47,10 @@ static const LevelScript script_func_local_2[] = { OBJECT(/*model*/ MODEL_LLL_SINKING_RECTANGULAR_PLATFORM, /*pos*/ 2816, 0, 512, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllSinkingRectangularPlatform), OBJECT(/*model*/ MODEL_LLL_SINKING_RECTANGULAR_PLATFORM, /*pos*/ -1791, 0, -4095, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllSinkingRectangularPlatform), OBJECT(/*model*/ MODEL_LLL_SINKING_SQUARE_PLATFORMS, /*pos*/ 3840, 0, -3199, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllSinkingSquarePlatforms), - OBJECT(/*model*/ MODEL_LLL_TILTING_SQUARE_PLATFORM, /*pos*/ 922, -153, 2150, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllTiltingSquarePlatform), - OBJECT(/*model*/ MODEL_LLL_TILTING_SQUARE_PLATFORM, /*pos*/ 1741, -153, 1741, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllTiltingSquarePlatform), - OBJECT(/*model*/ MODEL_LLL_TILTING_SQUARE_PLATFORM, /*pos*/ 1741, -153, 2560, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllTiltingSquarePlatform), - OBJECT(/*model*/ MODEL_LLL_TILTING_SQUARE_PLATFORM, /*pos*/ 2099, -153, -306, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllTiltingSquarePlatform), + OBJECT(/*model*/ MODEL_LLL_TILTING_SQUARE_PLATFORM, /*pos*/ 922, -153, 2150, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllTiltingInvertedPyramid), + OBJECT(/*model*/ MODEL_LLL_TILTING_SQUARE_PLATFORM, /*pos*/ 1741, -153, 1741, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllTiltingInvertedPyramid), + OBJECT(/*model*/ MODEL_LLL_TILTING_SQUARE_PLATFORM, /*pos*/ 1741, -153, 2560, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllTiltingInvertedPyramid), + OBJECT(/*model*/ MODEL_LLL_TILTING_SQUARE_PLATFORM, /*pos*/ 2099, -153, -306, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllTiltingInvertedPyramid), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -5119, 102, 1024, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllBowserPuzzle), RETURN(), }; @@ -178,12 +179,12 @@ const LevelScript level_lll_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 105, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x190B0000, /*beh*/ bhvWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3200, 11, 3456, /*angle*/ 0, -100, 0, /*behParam*/ 0x000C0000, /*beh*/ bhvFadingWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -5888, 154, 6656, /*angle*/ 0, 100, 0, /*behParam*/ 0x000D0000, /*beh*/ bhvFadingWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x16, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x16, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_CHECKPOINT), - WARP_NODE(/*id*/ 0x0C, /*destLevel*/ 0x16, /*destArea*/ 0x01, /*destNode*/ 0x0D, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0D, /*destLevel*/ 0x16, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_LLL, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_LLL, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_CHECKPOINT), + WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_LLL, /*destArea*/ 0x01, /*destNode*/ 0x0D, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0D, /*destLevel*/ LEVEL_LLL, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), JUMP_LINK(script_func_local_3), @@ -191,16 +192,16 @@ const LevelScript level_lll_entry[] = { JUMP_LINK(script_func_local_5), TERRAIN(/*terrainData*/ lll_seg7_area_1_collision), MACRO_OBJECTS(/*objList*/ lll_seg7_area_1_macro_objs), - SHOW_DIALOG(/*index*/ 0x00, /*dialogid*/ 0x61), + SHOW_DIALOG(/*index*/ 0x00, DIALOG_097), SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0000, /*seq*/ SEQ_LEVEL_HOT), TERRAIN_TYPE(/*terrainType*/ TERRAIN_STONE), END_AREA(), AREA(/*index*/ 2, lll_geo_000EC0), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -955, 1103, -1029, /*angle*/ 0, 118, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps64), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x16, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_LLL, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_6), JUMP_LINK(script_func_local_7), TERRAIN(/*terrainData*/ lll_seg7_area_2_collision), diff --git a/levels/lll/sinking_rectangular_platform/model.inc.c b/levels/lll/sinking_rectangular_platform/model.inc.c index 6b2f8bf..d2d621e 100644 --- a/levels/lll/sinking_rectangular_platform/model.inc.c +++ b/levels/lll/sinking_rectangular_platform/model.inc.c @@ -25,8 +25,8 @@ static const Gfx lll_seg7_dl_07019B78[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_07019A98, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/lll/sinking_rock_block/model.inc.c b/levels/lll/sinking_rock_block/model.inc.c index d844158..5c07ae5 100644 --- a/levels/lll/sinking_rock_block/model.inc.c +++ b/levels/lll/sinking_rock_block/model.inc.c @@ -1,12 +1,8 @@ -// 0x0701A670 - 0x0701A678 -static const Ambient lll_seg7_light_0701A670 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0701A678 - 0x0701A688 -static const Light lll_seg7_light_0701A678 = { - {{0xfe, 0xff, 0xff}, 0, {0xfe, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701A670 - 0x0701A688 +static const Lights1 lll_seg7_lights_0701A670 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xfe, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701A688 - 0x0701A778 static const Vtx lll_seg7_vertex_0701A688[] = { @@ -43,8 +39,8 @@ static const Gfx lll_seg7_dl_0701A7E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_09002000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0701A678, 1), - gsSPLight(&lll_seg7_light_0701A670, 2), + gsSPLight(&lll_seg7_lights_0701A670.l, 1), + gsSPLight(&lll_seg7_lights_0701A670.a, 2), gsSPVertex(lll_seg7_vertex_0701A688, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/lll/sinking_square_platform/model.inc.c b/levels/lll/sinking_square_platform/model.inc.c index 55d6a26..ac18445 100644 --- a/levels/lll/sinking_square_platform/model.inc.c +++ b/levels/lll/sinking_square_platform/model.inc.c @@ -61,21 +61,21 @@ static const Gfx lll_seg7_dl_07019F20[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC50, 1), - gsSPLight(&lll_seg7_light_0700FC48, 2), + gsSPLight(&lll_seg7_lights_0700FC48.l, 1), + gsSPLight(&lll_seg7_lights_0700FC48.a, 2), gsSPVertex(lll_seg7_vertex_07019C80, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 7, 0x0, 2, 8, 9, 0x0), - gsSPLight(&lll_seg7_light_0700FC68, 1), - gsSPLight(&lll_seg7_light_0700FC60, 2), + gsSPLight(&lll_seg7_lights_0700FC60.l, 1), + gsSPLight(&lll_seg7_lights_0700FC60.a, 2), gsSPVertex(lll_seg7_vertex_07019D20, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 5, 7, 0x0, 8, 9, 10, 0x0), gsSP2Triangles( 9, 11, 12, 0x0, 13, 14, 15, 0x0), gsSPVertex(lll_seg7_vertex_07019E20, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_07019E80, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 8, 9, 7, 0x0), diff --git a/levels/lll/tilting_square_platform/model.inc.c b/levels/lll/tilting_square_platform/model.inc.c index 5eef00a..231bcb6 100644 --- a/levels/lll/tilting_square_platform/model.inc.c +++ b/levels/lll/tilting_square_platform/model.inc.c @@ -36,8 +36,8 @@ static const Gfx lll_seg7_dl_0701A1A8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, fire_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_0701A120, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/lll/wooden_float_large/model.inc.c b/levels/lll/wooden_float_large/model.inc.c index 8c5969b..516c867 100644 --- a/levels/lll/wooden_float_large/model.inc.c +++ b/levels/lll/wooden_float_large/model.inc.c @@ -31,8 +31,8 @@ static const Gfx lll_seg7_dl_07018E48[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lll_seg7_texture_07000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_07018D08, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/lll/wooden_float_small/model.inc.c b/levels/lll/wooden_float_small/model.inc.c index 7f13cf2..28fbf6b 100644 --- a/levels/lll/wooden_float_small/model.inc.c +++ b/levels/lll/wooden_float_small/model.inc.c @@ -31,8 +31,8 @@ static const Gfx lll_seg7_dl_07018BE0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lll_seg7_texture_07000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&lll_seg7_light_0700FC08, 1), - gsSPLight(&lll_seg7_light_0700FC00, 2), + gsSPLight(&lll_seg7_lights_0700FC00.l, 1), + gsSPLight(&lll_seg7_lights_0700FC00.a, 2), gsSPVertex(lll_seg7_vertex_07018AA0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/menu/leveldata.c b/levels/menu/leveldata.c index 7e3693f..e529278 100644 --- a/levels/menu/leveldata.c +++ b/levels/menu/leveldata.c @@ -9,15 +9,11 @@ #include "make_const_nonconst.h" -// 0x07000000 - 0x07000008 -static const Ambient ambient_light_menu_1 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07000008 - 0x07000018 -static const Light diffuse_light_menu_1 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07000000 - 0x07000018 +static const Lights1 lights_menu_save_button = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07000018 - 0x07000818 ALIGNED8 static const u8 texture_menu_stone[] = { @@ -82,8 +78,8 @@ static const Gfx dl_tex_block_menu_save_button_base[] = { // 0x070031A0 - 0x07003218 static const Gfx dl_vertex_menu_save_button_borders[] = { - gsSPLight(&diffuse_light_menu_1, 1), - gsSPLight(&ambient_light_menu_1, 2), + gsSPLight(&lights_menu_save_button.l, 1), + gsSPLight(&lights_menu_save_button.a, 2), gsSPVertex(vertex_menu_save_button_borders, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), @@ -129,8 +125,8 @@ static const Gfx dl_tex_block_menu_save_button_back[] = { // 0x070032E0 - 0x07003330 static const Gfx dl_vertex_menu_save_button_back[] = { - gsSPLight(&diffuse_light_menu_1, 1), - gsSPLight(&ambient_light_menu_1, 2), + gsSPLight(&lights_menu_save_button.l, 1), + gsSPLight(&lights_menu_save_button.a, 2), gsSPVertex(vertex_menu_save_button_back, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), @@ -182,8 +178,8 @@ const Gfx dl_menu_save_button_back[] = { const Gfx dl_menu_save_button_fade_back[] = { gsDPPipeSync(), gsSPClearGeometryMode(G_SHADING_SMOOTH), - gsSPLight(&diffuse_light_menu_1, 1), - gsSPLight(&ambient_light_menu_1, 2), + gsSPLight(&lights_menu_save_button.l, 1), + gsSPLight(&lights_menu_save_button.a, 2), gsSPVertex(vertex_menu_save_button_back, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsDPPipeSync(), @@ -191,15 +187,11 @@ const Gfx dl_menu_save_button_fade_back[] = { gsSPEndDisplayList(), }; -// 0x07003450 - 0x07003458 -static const Ambient ambient_light_menu_2 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07003458 - 0x07003468 -static const Light diffuse_light_menu_2 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07003450 - 0x07003468 +static const Lights1 lights_menu_main_button = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07003468 - 0x07003468 ALIGNED8 static const u8 texture_menu_erase[] = { @@ -305,8 +297,8 @@ static const Vtx vertex_menu_main_button_group4[] = { // 0x07006038 - 0x07006150 static const Gfx dl_vertex_menu_main_button[] = { - gsSPLight(&diffuse_light_menu_2, 1), - gsSPLight(&ambient_light_menu_2, 2), + gsSPLight(&lights_menu_main_button.l, 1), + gsSPLight(&lights_menu_main_button.a, 2), gsSPVertex(vertex_menu_main_button_group1, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), diff --git a/levels/menu/script.c b/levels/menu/script.c index 5874ff7..a447975 100644 --- a/levels/menu/script.c +++ b/levels/menu/script.c @@ -6,6 +6,7 @@ #include "segment_symbols.h" #include "level_commands.h" +#include "game/area.h" #include "game/level_update.h" #include "menu/file_select.h" #include "menu/star_select.h" @@ -43,16 +44,16 @@ const LevelScript level_main_menu_entry_1[] = { FREE_LEVEL_POOL(), LOAD_AREA(/*area*/ 1), SET_MENU_MUSIC(/*seq*/ 0x0021), - TRANSITION(/*transType*/ 0, /*time*/ 16, /*color*/ -1, -1, -1), + TRANSITION(/*transType*/ WARP_TRANSITION_FADE_FROM_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF), CALL(/*arg*/ 0, /*func*/ lvl_init_menu_values_and_cursor_pos), CALL_LOOP(/*arg*/ 0, /*func*/ lvl_update_obj_and_load_file_selected), GET_OR_SET(/*op*/ OP_SET, /*var*/ VAR_CURR_SAVE_FILE_NUM), STOP_MUSIC(/*fadeOutTime*/ 0x00BE), - TRANSITION(/*transType*/ 1, /*time*/ 16, /*color*/ -1, -1, -1), + TRANSITION(/*transType*/ WARP_TRANSITION_FADE_INTO_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF), SLEEP(/*frames*/ 16), CLEAR_LEVEL(), SLEEP_BEFORE_EXIT(/*frames*/ 1), - SET_REG(/*value*/ 16), + SET_REG(/*value*/ LEVEL_CASTLE_GROUNDS), EXIT_AND_EXECUTE(/*seg*/ 0x15, _scriptsSegmentRomStart, _scriptsSegmentRomEnd, level_main_scripts_entry), }; @@ -71,14 +72,14 @@ const LevelScript level_main_menu_entry_2[] = { /*25*/ FREE_LEVEL_POOL(), /*26*/ LOAD_AREA(/*area*/ 2), - /*27*/ TRANSITION(/*transType*/ 0, /*time*/ 16, /*color*/ -1, -1, -1), + /*27*/ TRANSITION(/*transType*/ WARP_TRANSITION_FADE_FROM_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF), /*29*/ SLEEP(/*frames*/ 16), /*30*/ SET_MENU_MUSIC(/*seq*/ 0x000D), /*31*/ CALL(/*arg*/ 0, /*func*/ lvl_init_act_selector_values_and_stars), /*33*/ CALL_LOOP(/*arg*/ 0, /*func*/ lvl_update_obj_and_load_act_button_actions), /*35*/ GET_OR_SET(/*op*/ OP_SET, /*var*/ VAR_CURR_ACT_NUM), /*36*/ STOP_MUSIC(/*fadeOutTime*/ 0x00BE), - /*37*/ TRANSITION(/*transType*/ 1, /*time*/ 16, /*color*/ -1, -1, -1), + /*37*/ TRANSITION(/*transType*/ WARP_TRANSITION_FADE_INTO_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF), /*39*/ SLEEP(/*frames*/ 16), /*40*/ CLEAR_LEVEL(), /*41*/ SLEEP_BEFORE_EXIT(/*frames*/ 1), diff --git a/levels/pss/areas/1/1/model.inc.c b/levels/pss/areas/1/1/model.inc.c index 06a5942..f75d716 100644 --- a/levels/pss/areas/1/1/model.inc.c +++ b/levels/pss/areas/1/1/model.inc.c @@ -1,22 +1,14 @@ -// 0x07001800 - 0x07001808 -static const Ambient pss_seg7_light_07001800 = { - {{0x23, 0x23, 0x23}, 0, {0x23, 0x23, 0x23}, 0} -}; +// 0x07001800 - 0x07001818 +static const Lights1 pss_seg7_lights_07001800 = gdSPDefLights1( + 0x23, 0x23, 0x23, + 0x8c, 0x8c, 0x8c, 0x28, 0x28, 0x28 +); -// 0x07001808 - 0x07001818 -static const Light pss_seg7_light_07001808 = { - {{0x8c, 0x8c, 0x8c}, 0, {0x8c, 0x8c, 0x8c}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07001818 - 0x07001820 -static const Ambient pss_seg7_light_07001818 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07001820 - 0x07001830 -static const Light pss_seg7_light_07001820 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07001818 - 0x07001830 +static const Lights1 pss_seg7_lights_07001818 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07001830 - 0x07001930 static const Vtx pss_seg7_vertex_07001830[] = { @@ -2207,8 +2199,8 @@ static const Gfx pss_seg7_dl_070083B0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_0900C000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&pss_seg7_light_07001808, 1), - gsSPLight(&pss_seg7_light_07001800, 2), + gsSPLight(&pss_seg7_lights_07001800.l, 1), + gsSPLight(&pss_seg7_lights_07001800.a, 2), gsSPVertex(pss_seg7_vertex_07001830, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -2226,8 +2218,8 @@ static const Gfx pss_seg7_dl_070083B0[] = { gsSPVertex(pss_seg7_vertex_07001A30, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP1Triangle( 2, 3, 4, 0x0), - gsSPLight(&pss_seg7_light_07001820, 1), - gsSPLight(&pss_seg7_light_07001818, 2), + gsSPLight(&pss_seg7_lights_07001818.l, 1), + gsSPLight(&pss_seg7_lights_07001818.a, 2), gsSPVertex(pss_seg7_vertex_07001A80, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 4, 0, 6, 0x0), diff --git a/levels/pss/areas/1/7/model.inc.c b/levels/pss/areas/1/7/model.inc.c index 374aa2c..0eee0cc 100644 --- a/levels/pss/areas/1/7/model.inc.c +++ b/levels/pss/areas/1/7/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700E348 - 0x0700E350 -static const Ambient pss_seg7_light_0700E348 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0700E350 - 0x0700E360 -static const Light pss_seg7_light_0700E350 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700E348 - 0x0700E360 +static const Lights1 pss_seg7_lights_0700E348 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700E360 - 0x0700E3A0 static const Vtx pss_seg7_vertex_0700E360[] = { @@ -21,8 +17,8 @@ static const Gfx pss_seg7_dl_0700E3A0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, pss_seg7_texture_07001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&pss_seg7_light_0700E350, 1), - gsSPLight(&pss_seg7_light_0700E348, 2), + gsSPLight(&pss_seg7_lights_0700E348.l, 1), + gsSPLight(&pss_seg7_lights_0700E348.a, 2), gsSPVertex(pss_seg7_vertex_0700E360, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSPEndDisplayList(), diff --git a/levels/pss/areas/1/macro.inc.c b/levels/pss/areas/1/macro.inc.c index d902f06..f45eab3 100644 --- a/levels/pss/areas/1/macro.inc.c +++ b/levels/pss/areas/1/macro.inc.c @@ -16,7 +16,7 @@ const MacroObject pss_seg7_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ -2565, -3268, -3525), MACRO_OBJECT(/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ -4909, -3633, -4218), MACRO_OBJECT(/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ -6290, -3937, -2545), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 3580, 6140, -5180, /*behParam*/ 149), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 3580, 6140, -5180, /*behParam*/ DIALOG_149), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 90, /*pos*/ 3000, 6180, -5640), MACRO_OBJECT(/*preset*/ macro_blue_coin_switch, /*yaw*/ 0, /*pos*/ 5423, 6140, -6540), MACRO_OBJECT(/*preset*/ macro_hidden_blue_coin, /*yaw*/ 0, /*pos*/ 780, 5613, -5600), diff --git a/levels/pss/leveldata.c b/levels/pss/leveldata.c index 3564c94..8f98eff 100644 --- a/levels/pss/leveldata.c +++ b/levels/pss/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/pss/texture.inc.c" diff --git a/levels/pss/script.c b/levels/pss/script.c index 4778a01..c07d36d 100644 --- a/levels/pss/script.c +++ b/levels/pss/script.c @@ -30,10 +30,10 @@ const LevelScript level_pss_entry[] = { AREA(/*index*/ 1, pss_geo_000100), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 5632, 6751, -5631, /*angle*/ 0, 270, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps64), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x1B, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF3, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x20, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x26, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x23, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_PSS, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF3, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x20, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x26, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x23, /*flags*/ WARP_NO_CHECKPOINT), TERRAIN(/*terrainData*/ pss_seg7_collision), MACRO_OBJECTS(/*objList*/ pss_seg7_macro_objs), TERRAIN_TYPE(/*terrainType*/ TERRAIN_SLIDE), diff --git a/levels/rr/areas/1/geo.inc.c b/levels/rr/areas/1/geo.inc.c index 455df70..cd7f015 100644 --- a/levels/rr/areas/1/geo.inc.c +++ b/levels/rr/areas/1/geo.inc.c @@ -24,7 +24,7 @@ const GeoLayout rr_geo_0009D0[] = { GEO_CLOSE_NODE(), GEO_ZBUFFER(0), GEO_OPEN_NODE(), - GEO_ASM(0, Geo18_802CD1E8), + GEO_ASM(0, geo_cannon_circle_base), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/levels/rr/flying_carpet/model.inc.c b/levels/rr/flying_carpet/model.inc.c index 8465a54..4229113 100644 --- a/levels/rr/flying_carpet/model.inc.c +++ b/levels/rr/flying_carpet/model.inc.c @@ -1,19 +1,14 @@ // Not a traditional model file. The vertexes are generated in src/geo_misc.c. -// 0x07019230 - 0x07019238 -static const Ambient rr_seg7_light_07019230 = { - {{0x5f, 0x5f, 0x5f}, 0, {0x5f, 0x5f, 0x5f}, 0} -}; - -// 0x07019238 - 0x07019248 -static const Light rr_seg7_light_07019238 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - +// 0x07019230 - 0x07019248 +static const Lights1 rr_seg7_lights_07019230 = gdSPDefLights1( + 0x5f, 0x5f, 0x5f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07019248 - 0x070192F0 const s16 flying_carpet_static_vertex_data[] = { - // X Z tx ty +// x z tx ty -306, 205, 0, 0, -306, 0, 992, 0, -306, -204, 0, 0, @@ -50,8 +45,8 @@ const Gfx dl_flying_carpet_begin[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_quarter_flying_carpet), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&rr_seg7_light_07019238, 1), - gsSPLight(&rr_seg7_light_07019230, 2), + gsSPLight(&rr_seg7_lights_07019230.l, 1), + gsSPLight(&rr_seg7_lights_07019230.a, 2), gsSPEndDisplayList(), }; diff --git a/levels/rr/octagonal_platform/model.inc.c b/levels/rr/octagonal_platform/model.inc.c index 0ac0594..b32a939 100644 --- a/levels/rr/octagonal_platform/model.inc.c +++ b/levels/rr/octagonal_platform/model.inc.c @@ -1,12 +1,8 @@ -// 0x0701A6F0 - 0x0701A6F8 -static const Ambient rr_seg7_light_0701A6F0 = { - {{0x55, 0x5f, 0x53}, 0, {0x55, 0x5f, 0x53}, 0} -}; - -// 0x0701A6F8 - 0x0701A708 -static const Light rr_seg7_light_0701A6F8 = { - {{0xe3, 0xfe, 0xdf}, 0, {0xe3, 0xfe, 0xdf}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701A6F0 - 0x0701A708 +static const Lights1 rr_seg7_lights_0701A6F0 = gdSPDefLights1( + 0x55, 0x5f, 0x53, + 0xe3, 0xfe, 0xdf, 0x28, 0x28, 0x28 +); // 0x0701A708 - 0x0701A7F8 static const Vtx rr_seg7_vertex_0701A708[] = { @@ -81,8 +77,8 @@ static const Gfx rr_seg7_dl_0701AA48[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, sky_09001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&rr_seg7_light_0701A6F8, 1), - gsSPLight(&rr_seg7_light_0701A6F0, 2), + gsSPLight(&rr_seg7_lights_0701A6F0.l, 1), + gsSPLight(&rr_seg7_lights_0701A6F0.a, 2), gsSPVertex(rr_seg7_vertex_0701A708, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/rr/rotating_bridge_platform/model.inc.c b/levels/rr/rotating_bridge_platform/model.inc.c index a22e0ab..ff53998 100644 --- a/levels/rr/rotating_bridge_platform/model.inc.c +++ b/levels/rr/rotating_bridge_platform/model.inc.c @@ -1,52 +1,32 @@ -// 0x07019B68 - 0x07019B70 -static const Ambient rr_seg7_light_07019B68 = { - {{0x32, 0x32, 0x32}, 0, {0x32, 0x32, 0x32}, 0} -}; +// 0x07019B68 - 0x07019B80 +static const Lights1 rr_seg7_lights_07019B68 = gdSPDefLights1( + 0x32, 0x32, 0x32, + 0xc8, 0xc8, 0xc8, 0x28, 0x28, 0x28 +); -// 0x07019B70 - 0x07019B80 -static const Light rr_seg7_light_07019B70 = { - {{0xc8, 0xc8, 0xc8}, 0, {0xc8, 0xc8, 0xc8}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07019B80 - 0x07019B98 +static const Lights1 rr_seg7_lights_07019B80 = gdSPDefLights1( + 0x23, 0x2b, 0x14, + 0x8e, 0xac, 0x52, 0x28, 0x28, 0x28 +); -// 0x07019B80 - 0x07019B88 -static const Ambient rr_seg7_light_07019B80 = { - {{0x23, 0x2b, 0x14}, 0, {0x23, 0x2b, 0x14}, 0} -}; +// 0x07019B98 - 0x07019BB0 +static const Lights1 rr_seg7_lights_07019B98 = gdSPDefLights1( + 0x1f, 0x2b, 0x14, + 0x7f, 0xac, 0x52, 0x28, 0x28, 0x28 +); -// 0x07019B88 - 0x07019B98 -static const Light rr_seg7_light_07019B88 = { - {{0x8e, 0xac, 0x52}, 0, {0x8e, 0xac, 0x52}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07019BB0 - 0x07019BC8 +static const Lights1 rr_seg7_lights_07019BB0 = gdSPDefLights1( + 0x2f, 0x2a, 0x0f, + 0xbf, 0xaa, 0x3f, 0x28, 0x28, 0x28 +); -// 0x07019B98 - 0x07019BA0 -static const Ambient rr_seg7_light_07019B98 = { - {{0x1f, 0x2b, 0x14}, 0, {0x1f, 0x2b, 0x14}, 0} -}; - -// 0x07019BA0 - 0x07019BB0 -static const Light rr_seg7_light_07019BA0 = { - {{0x7f, 0xac, 0x52}, 0, {0x7f, 0xac, 0x52}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07019BB0 - 0x07019BB8 -static const Ambient rr_seg7_light_07019BB0 = { - {{0x2f, 0x2a, 0x0f}, 0, {0x2f, 0x2a, 0x0f}, 0} -}; - -// 0x07019BB8 - 0x07019BC8 -static const Light rr_seg7_light_07019BB8 = { - {{0xbf, 0xaa, 0x3f}, 0, {0xbf, 0xaa, 0x3f}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07019BC8 - 0x07019BD0 -static const Ambient rr_seg7_light_07019BC8 = { - {{0x14, 0x23, 0x2b}, 0, {0x14, 0x23, 0x2b}, 0} -}; - -// 0x07019BD0 - 0x07019BE0 -static const Light rr_seg7_light_07019BD0 = { - {{0x52, 0x8e, 0xac}, 0, {0x52, 0x8e, 0xac}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07019BC8 - 0x07019BE0 +static const Lights1 rr_seg7_lights_07019BC8 = gdSPDefLights1( + 0x14, 0x23, 0x2b, + 0x52, 0x8e, 0xac, 0x28, 0x28, 0x28 +); // 0x07019BE0 - 0x07019CD0 static const Vtx rr_seg7_vertex_07019BE0[] = { @@ -199,8 +179,8 @@ static const Gfx rr_seg7_dl_0701A2C0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, sky_09001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&rr_seg7_light_07019B70, 1), - gsSPLight(&rr_seg7_light_07019B68, 2), + gsSPLight(&rr_seg7_lights_07019B68.l, 1), + gsSPLight(&rr_seg7_lights_07019B68.a, 2), gsSPVertex(rr_seg7_vertex_07019BE0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -233,20 +213,20 @@ static const Gfx rr_seg7_dl_0701A3E0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, sky_09003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&rr_seg7_light_07019B88, 1), - gsSPLight(&rr_seg7_light_07019B80, 2), + gsSPLight(&rr_seg7_lights_07019B80.l, 1), + gsSPLight(&rr_seg7_lights_07019B80.a, 2), gsSPVertex(rr_seg7_vertex_07019EC0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&rr_seg7_light_07019BA0, 1), - gsSPLight(&rr_seg7_light_07019B98, 2), + gsSPLight(&rr_seg7_lights_07019B98.l, 1), + gsSPLight(&rr_seg7_lights_07019B98.a, 2), gsSPVertex(rr_seg7_vertex_07019F40, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 9, 10, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(11, 13, 14, 0x0, 0, 2, 15, 0x0), - gsSPLight(&rr_seg7_light_07019BB8, 1), - gsSPLight(&rr_seg7_light_07019BB0, 2), + gsSPLight(&rr_seg7_lights_07019BB0.l, 1), + gsSPLight(&rr_seg7_lights_07019BB0.a, 2), gsSPVertex(rr_seg7_vertex_0701A040, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -260,8 +240,8 @@ static const Gfx rr_seg7_dl_0701A4E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, sky_09002000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&rr_seg7_light_07019BD0, 1), - gsSPLight(&rr_seg7_light_07019BC8, 2), + gsSPLight(&rr_seg7_lights_07019BC8.l, 1), + gsSPLight(&rr_seg7_lights_07019BC8.a, 2), gsSPVertex(rr_seg7_vertex_0701A140, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/levels/rr/script.c b/levels/rr/script.c index 29f2ce0..fea2baa 100644 --- a/levels/rr/script.c +++ b/levels/rr/script.c @@ -122,11 +122,11 @@ const LevelScript level_rr_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2599, -833, 2071, /*angle*/ 0, 90, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps74), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -7092, 2364, -63, /*angle*/ 0, 90, 0, /*behParam*/ 0x000B0000, /*beh*/ bhvFadingWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -4213, 3379, -2815, /*angle*/ 0, 180, 0, /*behParam*/ 0x000C0000, /*beh*/ bhvFadingWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x0F, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x0F, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0C, /*destLevel*/ 0x0F, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x3A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x6C, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_RR, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_RR, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_RR, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x3A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x6C, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), JUMP_LINK(script_func_local_3), diff --git a/levels/sa/areas/1/1/model.inc.c b/levels/sa/areas/1/1/model.inc.c index 97791ff..e095828 100644 --- a/levels/sa/areas/1/1/model.inc.c +++ b/levels/sa/areas/1/1/model.inc.c @@ -1,12 +1,8 @@ -// 0x07000000 - 0x07000008 -static const Ambient sa_light_07000000 = { - {{0x00, 0x7f, 0x99}, 0, {0x00, 0x7f, 0x99}, 0} -}; - -// 0x07000008 - 0x07000018 -static const Light sa_light_07000008 = { - {{0x00, 0xd4, 0xff}, 0, {0x00, 0xd4, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07000000 - 0x07000018 +static const Lights1 sa_lights = gdSPDefLights1( + 0x00, 0x7f, 0x99, + 0x00, 0xd4, 0xff, 0x28, 0x28, 0x28 +); // 0x07000018 - 0x070000D8 static const Vtx sa_vertex_07000018[] = { @@ -738,8 +734,8 @@ static const Gfx sa_dl_070023E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_0900B000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sa_light_07000008, 1), - gsSPLight(&sa_light_07000000, 2), + gsSPLight(&sa_lights.l, 1), + gsSPLight(&sa_lights.a, 2), gsSPVertex(sa_vertex_07000018, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 0, 4, 5, 0x0, 0, 5, 1, 0x0), diff --git a/levels/sa/script.c b/levels/sa/script.c index b29e83e..720f5ee 100644 --- a/levels/sa/script.c +++ b/levels/sa/script.c @@ -43,9 +43,9 @@ const LevelScript level_sa_entry[] = { AREA(/*index*/ 1, sa_geo_000170), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, -1535, 0, /*angle*/ 0, 90, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps94), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x14, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x27, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x28, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_SA, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x27, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x28, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), TERRAIN(/*terrainData*/ sa_seg7_collision), diff --git a/levels/scripts.c b/levels/scripts.c index c8782f8..9ab97aa 100644 --- a/levels/scripts.c +++ b/levels/scripts.c @@ -2,6 +2,7 @@ #include "sm64.h" #include "game/level_update.h" #include "level_commands.h" +#include "game/area.h" #include "segment_symbols.h" @@ -28,76 +29,32 @@ #include "levels/menu/header.h" #include "levels/intro/header.h" -#include "levels/bbh/header.h" -#include "levels/ccm/header.h" -#include "levels/castle_inside/header.h" -#include "levels/hmc/header.h" -#include "levels/ssl/header.h" -#include "levels/bob/header.h" -#include "levels/sl/header.h" -#include "levels/wdw/header.h" -#include "levels/jrb/header.h" -#include "levels/thi/header.h" -#include "levels/ttc/header.h" -#include "levels/rr/header.h" -#include "levels/castle_grounds/header.h" -#include "levels/bitdw/header.h" -#include "levels/vcutm/header.h" -#include "levels/bitfs/header.h" -#include "levels/sa/header.h" -#include "levels/bits/header.h" -#include "levels/lll/header.h" -#include "levels/ddd/header.h" -#include "levels/wf/header.h" -#include "levels/ending/header.h" -#include "levels/castle_courtyard/header.h" -#include "levels/pss/header.h" -#include "levels/cotmc/header.h" -#include "levels/totwc/header.h" -#include "levels/bowser_1/header.h" -#include "levels/wmotr/header.h" -#include "levels/bowser_2/header.h" -#include "levels/bowser_3/header.h" -#include "levels/ttm/header.h" -static const LevelScript script_func_local_1[1 + 31 * 3 + 1]; +#include "level_headers.h" + +#include "level_table.h" + +#define STUB_LEVEL(_0, _1, _2, _3, _4, _5, _6, _7, _8) +#define DEFINE_LEVEL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) + 3 +static const LevelScript script_exec_level_table[2 + #include "level_defines.h" +]; +#undef DEFINE_LEVEL +#undef STUB_LEVEL + static const LevelScript script_L1[4]; static const LevelScript script_L2[4]; static const LevelScript script_L3[4]; static const LevelScript script_L4[4]; static const LevelScript script_L5[4]; -static const LevelScript script_L6[4 + 1]; -static const LevelScript script_L7[4 + 1]; -static const LevelScript script_L8[4 + 1]; -static const LevelScript script_L9[4 + 1]; -static const LevelScript script_L10[4 + 1]; -static const LevelScript script_L11[4 + 1]; -static const LevelScript script_L12[4 + 1]; -static const LevelScript script_L13[4 + 1]; -static const LevelScript script_L14[4 + 1]; -static const LevelScript script_L15[4 + 1]; -static const LevelScript script_L16[4 + 1]; -static const LevelScript script_L17[4 + 1]; -static const LevelScript script_L18[4 + 1]; -static const LevelScript script_L19[4 + 1]; -static const LevelScript script_L20[4 + 1]; -static const LevelScript script_L21[4 + 1]; -static const LevelScript script_L22[4 + 1]; -static const LevelScript script_L23[4 + 1]; -static const LevelScript script_L24[4 + 1]; -static const LevelScript script_L25[4 + 1]; -static const LevelScript script_L26[4 + 1]; -static const LevelScript script_L27[4 + 1]; -static const LevelScript script_L28[4 + 1]; -static const LevelScript script_L29[4 + 1]; -static const LevelScript script_L30[4 + 1]; -static const LevelScript script_L31[4 + 1]; -static const LevelScript script_L32[4 + 1]; -static const LevelScript script_L33[4 + 1]; -static const LevelScript script_L34[4 + 1]; -static const LevelScript script_L35[4 + 1]; -static const LevelScript script_L36[4 + 1]; +#define STUB_LEVEL(_0, _1, _2, _3, _4, _5, _6, _7, _8) +#define DEFINE_LEVEL(_0, _1, _2, folder, _4, _5, _6, _7, _8, _9, _10) static const LevelScript script_exec_ ## folder [4 + 1]; + +#include "level_defines.h" + +#undef DEFINE_LEVEL +#undef STUB_LEVEL const LevelScript level_main_scripts_entry[] = { LOAD_MIO0(/*seg*/ 0x04, _group0_mio0SegmentRomStart, _group0_mio0SegmentRomEnd), @@ -157,7 +114,7 @@ const LevelScript level_main_scripts_entry[] = { CALL(/*arg*/ 0, /*func*/ lvl_init_from_save_file), LOOP_BEGIN(), EXECUTE(/*seg*/ 0x14, _menuSegmentRomStart, _menuSegmentRomEnd, level_main_menu_entry_2), - JUMP_LINK(script_func_local_1), + JUMP_LINK(script_exec_level_table), SLEEP(/*frames*/ 1), LOOP_UNTIL(/*op*/ OP_LT, /*arg*/ 0), JUMP_IF(/*op*/ OP_EQ, /*arg*/ -1, script_L2), @@ -187,196 +144,28 @@ static const LevelScript script_L5[] = { EXIT_AND_EXECUTE(/*seg*/ 0x14, _introSegmentRomStart, _introSegmentRomEnd, level_intro_entry_4), }; -static const LevelScript script_func_local_1[] = { +// Include the level jumptable. + +#define STUB_LEVEL(_0, _1, _2, _3, _4, _5, _6, _7, _8) + +#define DEFINE_LEVEL(_0, levelenum, _2, folder, _4, _5, _6, _7, _8, _9, _10) JUMP_IF(OP_EQ, levelenum, script_exec_ ## folder), + +static const LevelScript script_exec_level_table[] = { GET_OR_SET(/*op*/ OP_GET, /*var*/ VAR_CURR_LEVEL_NUM), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 4, script_L6), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 5, script_L7), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 6, script_L8), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 7, script_L9), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 8, script_L10), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 9, script_L11), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 10, script_L12), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 11, script_L13), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 12, script_L14), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 13, script_L15), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 14, script_L16), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 15, script_L17), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 16, script_L18), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 17, script_L19), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 18, script_L20), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 19, script_L21), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 20, script_L22), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 21, script_L23), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 22, script_L24), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 23, script_L25), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 24, script_L26), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 25, script_L27), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 26, script_L28), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 27, script_L29), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 28, script_L30), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 29, script_L31), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 30, script_L32), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 31, script_L33), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 33, script_L34), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 34, script_L35), - JUMP_IF(/*op*/ OP_EQ, /*arg*/ 36, script_L36), + #include "levels/level_defines.h" EXIT(), }; +#undef DEFINE_LEVEL -static const LevelScript script_L6[] = { - EXECUTE(/*seg*/ 0x0E, _bbhSegmentRomStart, _bbhSegmentRomEnd, level_bbh_entry), - RETURN(), +#define DEFINE_LEVEL(_0, _1, _2, folder, _4, _5, _6, _7, _8, _9, _10) \ +static const LevelScript script_exec_ ## folder [] = { \ + EXECUTE(0x0E, _ ## folder ## SegmentRomStart, _ ## folder ## SegmentRomEnd, level_ ## folder ## _entry), \ + RETURN(), \ }; -static const LevelScript script_L7[] = { - EXECUTE(/*seg*/ 0x0E, _ccmSegmentRomStart, _ccmSegmentRomEnd, level_ccm_entry), - RETURN(), -}; - -static const LevelScript script_L8[] = { - EXECUTE(/*seg*/ 0x0E, _castle_insideSegmentRomStart, _castle_insideSegmentRomEnd, level_castle_entry), - RETURN(), -}; - -static const LevelScript script_L9[] = { - EXECUTE(/*seg*/ 0x0E, _hmcSegmentRomStart, _hmcSegmentRomEnd, level_hmc_entry), - RETURN(), -}; - -static const LevelScript script_L10[] = { - EXECUTE(/*seg*/ 0x0E, _sslSegmentRomStart, _sslSegmentRomEnd, level_ssl_entry), - RETURN(), -}; - -static const LevelScript script_L11[] = { - EXECUTE(/*seg*/ 0x0E, _bobSegmentRomStart, _bobSegmentRomEnd, level_bob_entry), - RETURN(), -}; - -static const LevelScript script_L12[] = { - EXECUTE(/*seg*/ 0x0E, _slSegmentRomStart, _slSegmentRomEnd, level_sl_entry), - RETURN(), -}; - -static const LevelScript script_L13[] = { - EXECUTE(/*seg*/ 0x0E, _wdwSegmentRomStart, _wdwSegmentRomEnd, level_wdw_entry), - RETURN(), -}; - -static const LevelScript script_L14[] = { - EXECUTE(/*seg*/ 0x0E, _jrbSegmentRomStart, _jrbSegmentRomEnd, level_jrb_entry), - RETURN(), -}; - -static const LevelScript script_L15[] = { - EXECUTE(/*seg*/ 0x0E, _thiSegmentRomStart, _thiSegmentRomEnd, level_thi_entry), - RETURN(), -}; - -static const LevelScript script_L16[] = { - EXECUTE(/*seg*/ 0x0E, _ttcSegmentRomStart, _ttcSegmentRomEnd, level_ttc_entry), - RETURN(), -}; - -static const LevelScript script_L17[] = { - EXECUTE(/*seg*/ 0x0E, _rrSegmentRomStart, _rrSegmentRomEnd, level_rr_entry), - RETURN(), -}; - -static const LevelScript script_L18[] = { - EXECUTE(/*seg*/ 0x0E, _castle_groundsSegmentRomStart, _castle_groundsSegmentRomEnd, level_castle_grounds_entry), - RETURN(), -}; - -static const LevelScript script_L19[] = { - EXECUTE(/*seg*/ 0x0E, _bitdwSegmentRomStart, _bitdwSegmentRomEnd, level_bitdw_entry), - RETURN(), -}; - -static const LevelScript script_L20[] = { - EXECUTE(/*seg*/ 0x0E, _vcutmSegmentRomStart, _vcutmSegmentRomEnd, level_vcutm_entry), - RETURN(), -}; - -static const LevelScript script_L21[] = { - EXECUTE(/*seg*/ 0x0E, _bitfsSegmentRomStart, _bitfsSegmentRomEnd, level_bitfs_entry), - RETURN(), -}; - -static const LevelScript script_L22[] = { - EXECUTE(/*seg*/ 0x0E, _saSegmentRomStart, _saSegmentRomEnd, level_sa_entry), - RETURN(), -}; - -static const LevelScript script_L23[] = { - EXECUTE(/*seg*/ 0x0E, _bitsSegmentRomStart, _bitsSegmentRomEnd, level_bits_entry), - RETURN(), -}; - -static const LevelScript script_L24[] = { - EXECUTE(/*seg*/ 0x0E, _lllSegmentRomStart, _lllSegmentRomEnd, level_lll_entry), - RETURN(), -}; - -static const LevelScript script_L25[] = { - EXECUTE(/*seg*/ 0x0E, _dddSegmentRomStart, _dddSegmentRomEnd, level_ddd_entry), - RETURN(), -}; - -static const LevelScript script_L26[] = { - EXECUTE(/*seg*/ 0x0E, _wfSegmentRomStart, _wfSegmentRomEnd, level_wf_entry), - RETURN(), -}; - -static const LevelScript script_L27[] = { - EXECUTE(/*seg*/ 0x0E, _endingSegmentRomStart, _endingSegmentRomEnd, level_ending_entry), - RETURN(), -}; - -static const LevelScript script_L28[] = { - EXECUTE(/*seg*/ 0x0E, _castle_courtyardSegmentRomStart, _castle_courtyardSegmentRomEnd, level_castle_courtyard_entry), - RETURN(), -}; - -static const LevelScript script_L29[] = { - EXECUTE(/*seg*/ 0x0E, _pssSegmentRomStart, _pssSegmentRomEnd, level_pss_entry), - RETURN(), -}; - -static const LevelScript script_L30[] = { - EXECUTE(/*seg*/ 0x0E, _cotmcSegmentRomStart, _cotmcSegmentRomEnd, level_cotmc_entry), - RETURN(), -}; - -static const LevelScript script_L31[] = { - EXECUTE(/*seg*/ 0x0E, _totwcSegmentRomStart, _totwcSegmentRomEnd, level_totwc_entry), - RETURN(), -}; - -static const LevelScript script_L32[] = { - EXECUTE(/*seg*/ 0x0E, _bowser_1SegmentRomStart, _bowser_1SegmentRomEnd, level_bowser_1_entry), - RETURN(), -}; - -static const LevelScript script_L33[] = { - EXECUTE(/*seg*/ 0x0E, _wmotrSegmentRomStart, _wmotrSegmentRomEnd, level_wmotr_entry), - RETURN(), -}; - -static const LevelScript script_L34[] = { - EXECUTE(/*seg*/ 0x0E, _bowser_2SegmentRomStart, _bowser_2SegmentRomEnd, level_bowser_2_entry), - RETURN(), -}; - -static const LevelScript script_L35[] = { - EXECUTE(/*seg*/ 0x0E, _bowser_3SegmentRomStart, _bowser_3SegmentRomEnd, level_bowser_3_entry), - RETURN(), -}; - -static const LevelScript script_L36[] = { - EXECUTE(/*seg*/ 0x0E, _ttmSegmentRomStart, _ttmSegmentRomEnd, level_ttm_entry), - RETURN(), -}; +#include "levels/level_defines.h" +#undef STUB_LEVEL +#undef DEFINE_LEVEL const LevelScript script_func_global_1[] = { LOAD_MODEL_FROM_GEO(MODEL_BLUE_COIN_SWITCH, blue_coin_switch_geo), diff --git a/levels/sl/areas/1/1/model.inc.c b/levels/sl/areas/1/1/model.inc.c index 1fe9656..76e7404 100644 --- a/levels/sl/areas/1/1/model.inc.c +++ b/levels/sl/areas/1/1/model.inc.c @@ -1,22 +1,14 @@ -// 0x07002800 - 0x07002808 -static const Ambient sl_seg7_light_07002800 = { - {{0x59, 0x59, 0x59}, 0, {0x59, 0x59, 0x59}, 0} -}; +// 0x07002800 - 0x07002818 +static const Lights1 sl_seg7_lights_07002800 = gdSPDefLights1( + 0x59, 0x59, 0x59, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07002808 - 0x07002818 -static const Light sl_seg7_light_07002808 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07002818 - 0x07002820 -static const Ambient sl_seg7_light_07002818 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x07002820 - 0x07002830 -static const Light sl_seg7_light_07002820 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07002818 - 0x07002830 +static const Lights1 sl_seg7_lights_07002818 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x07002830 - 0x07002910 static const Vtx sl_seg7_vertex_07002830[] = { @@ -679,8 +671,8 @@ static const Gfx sl_seg7_dl_07004830[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sl_seg7_light_07002808, 1), - gsSPLight(&sl_seg7_light_07002800, 2), + gsSPLight(&sl_seg7_lights_07002800.l, 1), + gsSPLight(&sl_seg7_lights_07002800.a, 2), gsSPVertex(sl_seg7_vertex_07002830, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 3, 8, 0x0), @@ -881,8 +873,8 @@ static const Gfx sl_seg7_dl_07004830[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 5, 4, 7, 0x0), gsSP1Triangle( 4, 8, 7, 0x0), - gsSPLight(&sl_seg7_light_07002820, 1), - gsSPLight(&sl_seg7_light_07002818, 2), + gsSPLight(&sl_seg7_lights_07002818.l, 1), + gsSPLight(&sl_seg7_lights_07002818.a, 2), gsSPVertex(sl_seg7_vertex_07004620, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP1Triangle( 3, 4, 0, 0x0), @@ -894,8 +886,8 @@ static const Gfx sl_seg7_dl_07005370[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, sl_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sl_seg7_light_07002808, 1), - gsSPLight(&sl_seg7_light_07002800, 2), + gsSPLight(&sl_seg7_lights_07002800.l, 1), + gsSPLight(&sl_seg7_lights_07002800.a, 2), gsSPVertex(sl_seg7_vertex_07004670, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/sl/areas/1/2/model.inc.c b/levels/sl/areas/1/2/model.inc.c index 268fba6..66e19e5 100644 --- a/levels/sl/areas/1/2/model.inc.c +++ b/levels/sl/areas/1/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x07005520 - 0x07005528 -static const Ambient sl_seg7_light_07005520 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07005528 - 0x07005538 -static const Light sl_seg7_light_07005528 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07005520 - 0x07005538 +static const Lights1 sl_seg7_lights_07005520 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07005538 - 0x07005638 static const Vtx sl_seg7_vertex_07005538[] = { @@ -33,8 +29,8 @@ static const Gfx sl_seg7_dl_07005638[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sl_seg7_light_07005528, 1), - gsSPLight(&sl_seg7_light_07005520, 2), + gsSPLight(&sl_seg7_lights_07005520.l, 1), + gsSPLight(&sl_seg7_lights_07005520.a, 2), gsSPVertex(sl_seg7_vertex_07005538, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/sl/areas/1/3/model.inc.c b/levels/sl/areas/1/3/model.inc.c index 500b768..c44cdd4 100644 --- a/levels/sl/areas/1/3/model.inc.c +++ b/levels/sl/areas/1/3/model.inc.c @@ -1,22 +1,14 @@ -// 0x07005730 - 0x07005738 -static const Ambient sl_seg7_light_07005730 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x07005730 - 0x07005748 +static const Lights1 sl_seg7_lights_07005730 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07005738 - 0x07005748 -static const Light sl_seg7_light_07005738 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07005748 - 0x07005750 -static const Ambient sl_seg7_light_07005748 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x07005750 - 0x07005760 -static const Light sl_seg7_light_07005750 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07005748 - 0x07005760 +static const Lights1 sl_seg7_lights_07005748 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x07005760 - 0x070057D0 static const Vtx sl_seg7_vertex_07005760[] = { @@ -484,13 +476,13 @@ static const Gfx sl_seg7_dl_07006D70[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sl_seg7_light_07005738, 1), - gsSPLight(&sl_seg7_light_07005730, 2), + gsSPLight(&sl_seg7_lights_07005730.l, 1), + gsSPLight(&sl_seg7_lights_07005730.a, 2), gsSPVertex(sl_seg7_vertex_07005760, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 3, 6, 4, 0x0), - gsSPLight(&sl_seg7_light_07005750, 1), - gsSPLight(&sl_seg7_light_07005748, 2), + gsSPLight(&sl_seg7_lights_07005748.l, 1), + gsSPLight(&sl_seg7_lights_07005748.a, 2), gsSPVertex(sl_seg7_vertex_070057D0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -501,8 +493,8 @@ static const Gfx sl_seg7_dl_07006DE8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sl_seg7_light_07005738, 1), - gsSPLight(&sl_seg7_light_07005730, 2), + gsSPLight(&sl_seg7_lights_07005730.l, 1), + gsSPLight(&sl_seg7_lights_07005730.a, 2), gsSPVertex(sl_seg7_vertex_07005810, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/sl/areas/1/5/model.inc.c b/levels/sl/areas/1/5/model.inc.c index 022d8b6..3ddc86d 100644 --- a/levels/sl/areas/1/5/model.inc.c +++ b/levels/sl/areas/1/5/model.inc.c @@ -1,12 +1,8 @@ -// 0x07007910 - 0x07007918 -static const Ambient sl_seg7_light_07007910 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07007918 - 0x07007928 -static const Light sl_seg7_light_07007918 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07007910 - 0x07007928 +static const Lights1 sl_seg7_lights_07007910 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07007928 - 0x07007A18 static const Vtx sl_seg7_vertex_07007928[] = { @@ -257,8 +253,8 @@ static const Gfx sl_seg7_dl_07008528[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sl_seg7_light_07007918, 1), - gsSPLight(&sl_seg7_light_07007910, 2), + gsSPLight(&sl_seg7_lights_07007910.l, 1), + gsSPLight(&sl_seg7_lights_07007910.a, 2), gsSPVertex(sl_seg7_vertex_07007928, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/sl/areas/1/6/model.inc.c b/levels/sl/areas/1/6/model.inc.c index 37d9317..05d87a6 100644 --- a/levels/sl/areas/1/6/model.inc.c +++ b/levels/sl/areas/1/6/model.inc.c @@ -1,22 +1,14 @@ -// 0x07008930 - 0x07008938 -static const Ambient sl_seg7_light_07008930 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x07008930 - 0x07008948 +static const Lights1 sl_seg7_lights_07008930 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07008938 - 0x07008948 -static const Light sl_seg7_light_07008938 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07008948 - 0x07008950 -static const Ambient sl_seg7_light_07008948 = { - {{0x22, 0x17, 0x00}, 0, {0x22, 0x17, 0x00}, 0} -}; - -// 0x07008950 - 0x07008960 -static const Light sl_seg7_light_07008950 = { - {{0x44, 0x2f, 0x00}, 0, {0x44, 0x2f, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07008948 - 0x07008960 +static const Lights1 sl_seg7_lights_07008948 = gdSPDefLights1( + 0x22, 0x17, 0x00, + 0x44, 0x2f, 0x00, 0x28, 0x28, 0x28 +); // 0x07008960 - 0x07008A60 static const Vtx sl_seg7_vertex_07008960[] = { @@ -84,8 +76,8 @@ static const Gfx sl_seg7_dl_07008C30[] = { gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, snow_09009800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sl_seg7_light_07008938, 1), - gsSPLight(&sl_seg7_light_07008930, 2), + gsSPLight(&sl_seg7_lights_07008930.l, 1), + gsSPLight(&sl_seg7_lights_07008930.a, 2), gsSPVertex(sl_seg7_vertex_07008960, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 3, 6, 7, 0x0), @@ -107,8 +99,8 @@ static const Gfx sl_seg7_dl_07008D10[] = { gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, snow_09009000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sl_seg7_light_07008950, 1), - gsSPLight(&sl_seg7_light_07008948, 2), + gsSPLight(&sl_seg7_lights_07008948.l, 1), + gsSPLight(&sl_seg7_lights_07008948.a, 2), gsSPVertex(sl_seg7_vertex_07008BF0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/sl/areas/1/7/model.inc.c b/levels/sl/areas/1/7/model.inc.c index 7f9f9ab..3f27960 100644 --- a/levels/sl/areas/1/7/model.inc.c +++ b/levels/sl/areas/1/7/model.inc.c @@ -1,12 +1,8 @@ -// 0x07008DE8 - 0x07008DF0 -static const Ambient sl_seg7_light_07008DE8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07008DF0 - 0x07008E00 -static const Light sl_seg7_light_07008DF0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07008DE8 - 0x07008E00 +static const Lights1 sl_seg7_lights_07008DE8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07008E00 - 0x07008F00 static const Vtx sl_seg7_vertex_07008E00[] = { @@ -368,8 +364,8 @@ static const Gfx sl_seg7_dl_07009F30[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sl_seg7_light_07008DF0, 1), - gsSPLight(&sl_seg7_light_07008DE8, 2), + gsSPLight(&sl_seg7_lights_07008DE8.l, 1), + gsSPLight(&sl_seg7_lights_07008DE8.a, 2), gsSPVertex(sl_seg7_vertex_07008E00, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0), gsSP2Triangles( 1, 4, 5, 0x0, 6, 1, 5, 0x0), diff --git a/levels/sl/areas/1/geo.inc.c b/levels/sl/areas/1/geo.inc.c index b23aa4a..1cb0e24 100644 --- a/levels/sl/areas/1/geo.inc.c +++ b/levels/sl/areas/1/geo.inc.c @@ -31,7 +31,7 @@ const GeoLayout sl_geo_0003A8[] = { GEO_CLOSE_NODE(), GEO_ZBUFFER(0), GEO_OPEN_NODE(), - GEO_ASM(0, Geo18_802CD1E8), + GEO_ASM(0, geo_cannon_circle_base), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/levels/sl/areas/1/macro.inc.c b/levels/sl/areas/1/macro.inc.c index f4421e2..d75dac1 100644 --- a/levels/sl/areas/1/macro.inc.c +++ b/levels/sl/areas/1/macro.inc.c @@ -1,6 +1,6 @@ // 0x0700ED94 - 0x0700EF6C const MacroObject sl_seg7_area_1_macro_objs[] = { - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 4086, 1024, 400, /*behParam*/ 86), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 4086, 1024, 400, /*behParam*/ DIALOG_086), MACRO_OBJECT(/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ 1285, 2210, 385), MACRO_OBJECT(/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ 1728, 2560, -671), MACRO_OBJECT(/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ 1371, 2188, -500), @@ -36,10 +36,10 @@ const MacroObject sl_seg7_area_1_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -1520, 1040, 940), MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -1340, 1280, 1020), MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -1180, 1520, 1120), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 295, /*pos*/ -835, 1125, -3856, /*behParam*/ 61), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ -5050, 1020, 6026, /*behParam*/ 16), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 295, /*pos*/ -835, 1125, -3856, /*behParam*/ DIALOG_061), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ -5050, 1020, 6026, /*behParam*/ DIALOG_016), MACRO_OBJECT(/*preset*/ macro_fly_guy, /*yaw*/ 0, /*pos*/ 2766, 1522, -3633), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 135, /*pos*/ -3600, 1024, -800, /*behParam*/ 148), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 135, /*pos*/ -3600, 1024, -800, /*behParam*/ DIALOG_148), MACRO_OBJECT(/*preset*/ macro_moneybag, /*yaw*/ 0, /*pos*/ 2440, 1024, 4840), MACRO_OBJECT(/*preset*/ macro_moneybag, /*yaw*/ 0, /*pos*/ -2400, 1177, -4200), MACRO_OBJECT(/*preset*/ macro_box_1up_running_away, /*yaw*/ 0, /*pos*/ -3380, 1360, -4140), diff --git a/levels/sl/areas/2/1/model.inc.c b/levels/sl/areas/2/1/model.inc.c index cd1a687..0e8936b 100644 --- a/levels/sl/areas/2/1/model.inc.c +++ b/levels/sl/areas/2/1/model.inc.c @@ -1,22 +1,14 @@ -// 0x0700A9B0 - 0x0700A9B8 -static const Ambient sl_seg7_light_0700A9B0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700A9B0 - 0x0700A9C8 +static const Lights1 sl_seg7_lights_0700A9B0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700A9B8 - 0x0700A9C8 -static const Light sl_seg7_light_0700A9B8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700A9C8 - 0x0700A9D0 -static const Ambient sl_seg7_light_0700A9C8 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x0700A9D0 - 0x0700A9E0 -static const Light sl_seg7_light_0700A9D0 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700A9C8 - 0x0700A9E0 +static const Lights1 sl_seg7_lights_0700A9C8 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x0700A9E0 - 0x0700AAE0 static const Vtx sl_seg7_vertex_0700A9E0[] = { @@ -289,8 +281,8 @@ static const Gfx sl_seg7_dl_0700B6C0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sl_seg7_light_0700A9B8, 1), - gsSPLight(&sl_seg7_light_0700A9B0, 2), + gsSPLight(&sl_seg7_lights_0700A9B0.l, 1), + gsSPLight(&sl_seg7_lights_0700A9B0.a, 2), gsSPVertex(sl_seg7_vertex_0700A9E0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -354,8 +346,8 @@ static const Gfx sl_seg7_dl_0700B6C0[] = { gsSP2Triangles( 3, 6, 7, 0x0, 3, 7, 8, 0x0), gsSP2Triangles( 0, 9, 10, 0x0, 0, 11, 9, 0x0), gsSP1Triangle( 0, 2, 11, 0x0), - gsSPLight(&sl_seg7_light_0700A9D0, 1), - gsSPLight(&sl_seg7_light_0700A9C8, 2), + gsSPLight(&sl_seg7_lights_0700A9C8.l, 1), + gsSPLight(&sl_seg7_lights_0700A9C8.a, 2), gsSPVertex(sl_seg7_vertex_0700B5D0, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP1Triangle( 0, 4, 1, 0x0), @@ -367,8 +359,8 @@ static const Gfx sl_seg7_dl_0700BA70[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sl_seg7_light_0700A9B8, 1), - gsSPLight(&sl_seg7_light_0700A9B0, 2), + gsSPLight(&sl_seg7_lights_0700A9B0.l, 1), + gsSPLight(&sl_seg7_lights_0700A9B0.a, 2), gsSPVertex(sl_seg7_vertex_0700B620, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 2, 1, 0x0, 4, 1, 5, 0x0), diff --git a/levels/sl/areas/2/2/model.inc.c b/levels/sl/areas/2/2/model.inc.c index c062a68..cf76e3a 100644 --- a/levels/sl/areas/2/2/model.inc.c +++ b/levels/sl/areas/2/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700BB68 - 0x0700BB70 -static const Ambient sl_seg7_light_0700BB68 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0700BB70 - 0x0700BB80 -static const Light sl_seg7_light_0700BB70 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700BB68 - 0x0700BB80 +static const Lights1 sl_seg7_lights_0700BB68 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700BB80 - 0x0700BC80 static const Vtx sl_seg7_vertex_0700BB80[] = { @@ -33,8 +29,8 @@ static const Gfx sl_seg7_dl_0700BC80[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sl_seg7_light_0700BB70, 1), - gsSPLight(&sl_seg7_light_0700BB68, 2), + gsSPLight(&sl_seg7_lights_0700BB68.l, 1), + gsSPLight(&sl_seg7_lights_0700BB68.a, 2), gsSPVertex(sl_seg7_vertex_0700BB80, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/levels/sl/areas/2/3/model.inc.c b/levels/sl/areas/2/3/model.inc.c index 4a8eb15..780216d 100644 --- a/levels/sl/areas/2/3/model.inc.c +++ b/levels/sl/areas/2/3/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700BD68 - 0x0700BD70 -static const Ambient sl_seg7_light_0700BD68 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0700BD70 - 0x0700BD80 -static const Light sl_seg7_light_0700BD70 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700BD68 - 0x0700BD80 +static const Lights1 sl_seg7_lights_0700BD68 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700BD80 - 0x0700BE70 static const Vtx sl_seg7_vertex_0700BD80[] = { @@ -211,8 +207,8 @@ static const Gfx sl_seg7_dl_0700C720[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sl_seg7_light_0700BD70, 1), - gsSPLight(&sl_seg7_light_0700BD68, 2), + gsSPLight(&sl_seg7_lights_0700BD68.l, 1), + gsSPLight(&sl_seg7_lights_0700BD68.a, 2), gsSPVertex(sl_seg7_vertex_0700BD80, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/sl/areas/2/4/model.inc.c b/levels/sl/areas/2/4/model.inc.c index df702ae..b465141 100644 --- a/levels/sl/areas/2/4/model.inc.c +++ b/levels/sl/areas/2/4/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700CA68 - 0x0700CA70 -static const Ambient sl_seg7_light_0700CA68 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0700CA70 - 0x0700CA80 -static const Light sl_seg7_light_0700CA70 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700CA68 - 0x0700CA80 +static const Lights1 sl_seg7_lights_0700CA68 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700CA80 - 0x0700CB00 static const Vtx sl_seg7_vertex_0700CA80[] = { @@ -25,8 +21,8 @@ static const Gfx sl_seg7_dl_0700CB00[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sl_seg7_light_0700CA70, 1), - gsSPLight(&sl_seg7_light_0700CA68, 2), + gsSPLight(&sl_seg7_lights_0700CA68.l, 1), + gsSPLight(&sl_seg7_lights_0700CA68.a, 2), gsSPVertex(sl_seg7_vertex_0700CA80, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/sl/leveldata.c b/levels/sl/leveldata.c index 94080fb..c7132a5 100644 --- a/levels/sl/leveldata.c +++ b/levels/sl/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/sl/texture.inc.c" diff --git a/levels/sl/script.c b/levels/sl/script.c index ef4060a..dc4bc57 100644 --- a/levels/sl/script.c +++ b/levels/sl/script.c @@ -69,16 +69,16 @@ const LevelScript level_sl_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ 569, 2150, 1336, /*angle*/ 0, 0, 0, /*behParam*/ 0x060C0000, /*beh*/ bhvWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 5468, 1056, -5400, /*angle*/ 0, -20, 0, /*behParam*/ 0x000D0000, /*beh*/ bhvFadingWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3698, 1024, -1237, /*angle*/ 0, 6, 0, /*behParam*/ 0x000E0000, /*beh*/ bhvFadingWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x0A, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x0A, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0C, /*destLevel*/ 0x0A, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0D, /*destLevel*/ 0x0A, /*destArea*/ 0x01, /*destNode*/ 0x0E, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0E, /*destLevel*/ 0x0A, /*destArea*/ 0x01, /*destNode*/ 0x0D, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_SL, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_SL, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_SL, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0D, /*destLevel*/ LEVEL_SL, /*destArea*/ 0x01, /*destNode*/ 0x0E, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0E, /*destLevel*/ LEVEL_SL, /*destArea*/ 0x01, /*destNode*/ 0x0D, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), JUMP_LINK(script_func_local_3), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x36, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x68, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x36, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x68, /*flags*/ WARP_NO_CHECKPOINT), TERRAIN(/*terrainData*/ sl_seg7_area_1_collision), MACRO_OBJECTS(/*objList*/ sl_seg7_area_1_macro_objs), SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0000, /*seq*/ SEQ_LEVEL_SNOW), @@ -88,11 +88,11 @@ const LevelScript level_sl_entry[] = { AREA(/*index*/ 2, sl_geo_000484), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 0, 2867, /*angle*/ 0, 180, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps60), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 0, 3277, /*angle*/ 0, 0, 0, /*behParam*/ 0x140B0000, /*beh*/ bhvWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x0A, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x0A, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_SL, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_SL, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_4), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x36, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x68, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x36, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x68, /*flags*/ WARP_NO_CHECKPOINT), TERRAIN(/*terrainData*/ sl_seg7_area_2_collision), MACRO_OBJECTS(/*objList*/ sl_seg7_area_2_macro_objs), SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0004, /*seq*/ SEQ_LEVEL_UNDERGROUND), diff --git a/levels/sl/snow_mound/model.inc.c b/levels/sl/snow_mound/model.inc.c index 8c653f8..e8ae22a 100644 --- a/levels/sl/snow_mound/model.inc.c +++ b/levels/sl/snow_mound/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700A620 - 0x0700A628 -static const Ambient sl_seg7_light_0700A620 = { - {{0x73, 0x73, 0x73}, 0, {0x73, 0x73, 0x73}, 0} -}; - -// 0x0700A628 - 0x0700A638 -static const Light sl_seg7_light_0700A628 = { - {{0xe6, 0xe6, 0xe6}, 0, {0xe6, 0xe6, 0xe6}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700A620 - 0x0700A638 +static const Lights1 sl_seg7_lights_0700A620 = gdSPDefLights1( + 0x73, 0x73, 0x73, + 0xe6, 0xe6, 0xe6, 0x28, 0x28, 0x28 +); // 0x0700A638 - 0x0700A718 static const Vtx sl_seg7_vertex_0700A638[] = { @@ -31,8 +27,8 @@ static const Gfx sl_seg7_dl_0700A718[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, snow_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sl_seg7_light_0700A628, 1), - gsSPLight(&sl_seg7_light_0700A620, 2), + gsSPLight(&sl_seg7_lights_0700A620.l, 1), + gsSPLight(&sl_seg7_lights_0700A620.a, 2), gsSPVertex(sl_seg7_vertex_0700A638, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/sl/unused_cracked_ice/model.inc.c b/levels/sl/unused_cracked_ice/model.inc.c index 71d74c1..a63b654 100644 --- a/levels/sl/unused_cracked_ice/model.inc.c +++ b/levels/sl/unused_cracked_ice/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700A7F0 - 0x0700A7F8 -static const Ambient sl_seg7_light_0700A7F0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0700A7F8 - 0x0700A808 -static const Light sl_seg7_light_0700A7F8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700A7F0 - 0x0700A808 +static const Lights1 sl_seg7_lights_0700A7F0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700A808 - 0x0700A848 static const Vtx sl_seg7_vertex_0700A808[] = { @@ -21,8 +17,8 @@ static const Gfx sl_seg7_dl_0700A848[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, sl_seg7_texture_07001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&sl_seg7_light_0700A7F8, 1), - gsSPLight(&sl_seg7_light_0700A7F0, 2), + gsSPLight(&sl_seg7_lights_0700A7F0.l, 1), + gsSPLight(&sl_seg7_lights_0700A7F0.a, 2), gsSPVertex(sl_seg7_vertex_0700A808, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSPEndDisplayList(), diff --git a/levels/sl/unused_ice_shard/model.inc.c b/levels/sl/unused_ice_shard/model.inc.c index ec5a331..ea45f50 100644 --- a/levels/sl/unused_ice_shard/model.inc.c +++ b/levels/sl/unused_ice_shard/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700A910 - 0x0700A918 -static const Ambient sl_seg7_light_0700A910 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0700A918 - 0x0700A928 -static const Light sl_seg7_light_0700A918 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700A910 - 0x0700A928 +static const Lights1 sl_seg7_lights_0700A910 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700A928 - 0x0700A958 static const Vtx sl_seg7_vertex_0700A928[] = { @@ -17,8 +13,8 @@ static const Vtx sl_seg7_vertex_0700A928[] = { // 0x0700A958 - 0x0700A980 static const Gfx sl_seg7_dl_0700A958[] = { - gsSPLight(&sl_seg7_light_0700A918, 1), - gsSPLight(&sl_seg7_light_0700A910, 2), + gsSPLight(&sl_seg7_lights_0700A910.l, 1), + gsSPLight(&sl_seg7_lights_0700A910.a, 2), gsSPVertex(sl_seg7_vertex_0700A928, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), gsSPEndDisplayList(), diff --git a/levels/ssl/areas/1/1/model.inc.c b/levels/ssl/areas/1/1/model.inc.c index 8acc5ee..34af24f 100644 --- a/levels/ssl/areas/1/1/model.inc.c +++ b/levels/ssl/areas/1/1/model.inc.c @@ -1,42 +1,26 @@ -// 0x07004BE0 - 0x07004BE8 -static const Ambient ssl_seg7_light_07004BE0 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; +// 0x07004BE0 - 0x07004BF8 +static const Lights1 ssl_seg7_lights_07004BE0 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x07004BE8 - 0x07004BF8 -static const Light ssl_seg7_light_07004BE8 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07004BF8 - 0x07004C10 +static const Lights1 ssl_seg7_lights_07004BF8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07004BF8 - 0x07004C00 -static const Ambient ssl_seg7_light_07004BF8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; +// 0x07004C10 - 0x07004C28 +static const Lights1 ssl_seg7_lights_07004C10 = gdSPDefLights1( + 0x0c, 0x0c, 0x0c, + 0x32, 0x32, 0x32, 0x28, 0x28, 0x28 +); -// 0x07004C00 - 0x07004C10 -static const Light ssl_seg7_light_07004C00 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07004C10 - 0x07004C18 -static const Ambient ssl_seg7_light_07004C10 = { - {{0x0c, 0x0c, 0x0c}, 0, {0x0c, 0x0c, 0x0c}, 0} -}; - -// 0x07004C18 - 0x07004C28 -static const Light ssl_seg7_light_07004C18 = { - {{0x32, 0x32, 0x32}, 0, {0x32, 0x32, 0x32}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07004C28 - 0x07004C30 -static const Ambient ssl_seg7_light_07004C28 = { - {{0x19, 0x19, 0x19}, 0, {0x19, 0x19, 0x19}, 0} -}; - -// 0x07004C30 - 0x07004C40 -static const Light ssl_seg7_light_07004C30 = { - {{0x64, 0x64, 0x64}, 0, {0x64, 0x64, 0x64}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07004C28 - 0x07004C40 +static const Lights1 ssl_seg7_lights_07004C28 = gdSPDefLights1( + 0x19, 0x19, 0x19, + 0x64, 0x64, 0x64, 0x28, 0x28, 0x28 +); // 0x07004C40 - 0x07004C80 static const Vtx ssl_seg7_vertex_07004C40[] = { @@ -1359,12 +1343,12 @@ static const Gfx ssl_seg7_dl_07008C40[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_0900A800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_07004BE8, 1), - gsSPLight(&ssl_seg7_light_07004BE0, 2), + gsSPLight(&ssl_seg7_lights_07004BE0.l, 1), + gsSPLight(&ssl_seg7_lights_07004BE0.a, 2), gsSPVertex(ssl_seg7_vertex_07004C40, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&ssl_seg7_light_07004C00, 1), - gsSPLight(&ssl_seg7_light_07004BF8, 2), + gsSPLight(&ssl_seg7_lights_07004BF8.l, 1), + gsSPLight(&ssl_seg7_lights_07004BF8.a, 2), gsSPVertex(ssl_seg7_vertex_07004C80, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -1383,12 +1367,12 @@ static const Gfx ssl_seg7_dl_07008C40[] = { gsSP2Triangles(10, 9, 3, 0x0, 10, 7, 9, 0x0), gsSP2Triangles(10, 11, 5, 0x0, 7, 10, 5, 0x0), gsSP2Triangles(12, 13, 14, 0x0, 12, 14, 15, 0x0), - gsSPLight(&ssl_seg7_light_07004C18, 1), - gsSPLight(&ssl_seg7_light_07004C10, 2), + gsSPLight(&ssl_seg7_lights_07004C10.l, 1), + gsSPLight(&ssl_seg7_lights_07004C10.a, 2), gsSPVertex(ssl_seg7_vertex_07004F60, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&ssl_seg7_light_07004C30, 1), - gsSPLight(&ssl_seg7_light_07004C28, 2), + gsSPLight(&ssl_seg7_lights_07004C28.l, 1), + gsSPLight(&ssl_seg7_lights_07004C28.a, 2), gsSPVertex(ssl_seg7_vertex_07004FA0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -1399,8 +1383,8 @@ static const Gfx ssl_seg7_dl_07008DE0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_07004C00, 1), - gsSPLight(&ssl_seg7_light_07004BF8, 2), + gsSPLight(&ssl_seg7_lights_07004BF8.l, 1), + gsSPLight(&ssl_seg7_lights_07004BF8.a, 2), gsSPVertex(ssl_seg7_vertex_07004FE0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1516,8 +1500,8 @@ static const Gfx ssl_seg7_dl_07009170[] = { gsSPVertex(ssl_seg7_vertex_070063F0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&ssl_seg7_light_07004C18, 1), - gsSPLight(&ssl_seg7_light_07004C10, 2), + gsSPLight(&ssl_seg7_lights_07004C10.l, 1), + gsSPLight(&ssl_seg7_lights_07004C10.a, 2), gsSPVertex(ssl_seg7_vertex_07006470, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -1534,8 +1518,8 @@ static const Gfx ssl_seg7_dl_07009410[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_07004C00, 1), - gsSPLight(&ssl_seg7_light_07004BF8, 2), + gsSPLight(&ssl_seg7_lights_07004BF8.l, 1), + gsSPLight(&ssl_seg7_lights_07004BF8.a, 2), gsSPVertex(ssl_seg7_vertex_070065D0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ssl/areas/1/2/model.inc.c b/levels/ssl/areas/1/2/model.inc.c index f7eaeee..a24d414 100644 --- a/levels/ssl/areas/1/2/model.inc.c +++ b/levels/ssl/areas/1/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700A020 - 0x0700A028 -static const Ambient ssl_seg7_light_0700A020 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0700A028 - 0x0700A038 -static const Light ssl_seg7_light_0700A028 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700A020 - 0x0700A038 +static const Lights1 ssl_seg7_lights_0700A020 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700A038 - 0x0700A138 static const Vtx ssl_seg7_vertex_0700A038[] = { @@ -392,8 +388,8 @@ static const Gfx ssl_seg7_dl_0700B2E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_0700A028, 1), - gsSPLight(&ssl_seg7_light_0700A020, 2), + gsSPLight(&ssl_seg7_lights_0700A020.l, 1), + gsSPLight(&ssl_seg7_lights_0700A020.a, 2), gsSPVertex(ssl_seg7_vertex_0700A038, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 0, 5, 3, 0x0), diff --git a/levels/ssl/areas/1/3/model.inc.c b/levels/ssl/areas/1/3/model.inc.c index 14820a8..92b831d 100644 --- a/levels/ssl/areas/1/3/model.inc.c +++ b/levels/ssl/areas/1/3/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700BAD8 - 0x0700BAE0 -static const Ambient ssl_seg7_light_0700BAD8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0700BAE0 - 0x0700BAF0 -static const Light ssl_seg7_light_0700BAE0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700BAD8 - 0x0700BAF0 +static const Lights1 ssl_seg7_lights_0700BAD8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700BAF0 - 0x0700BBB0 static const Vtx ssl_seg7_vertex_0700BAF0[] = { @@ -29,8 +25,8 @@ static const Gfx ssl_seg7_dl_0700BBB0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_0700BAE0, 1), - gsSPLight(&ssl_seg7_light_0700BAD8, 2), + gsSPLight(&ssl_seg7_lights_0700BAD8.l, 1), + gsSPLight(&ssl_seg7_lights_0700BAD8.a, 2), gsSPVertex(ssl_seg7_vertex_0700BAF0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/ssl/areas/1/geo.inc.c b/levels/ssl/areas/1/geo.inc.c index 4485c69..dee32a8 100644 --- a/levels/ssl/areas/1/geo.inc.c +++ b/levels/ssl/areas/1/geo.inc.c @@ -33,7 +33,7 @@ const GeoLayout ssl_geo_000648[] = { GEO_CLOSE_NODE(), GEO_ZBUFFER(0), GEO_OPEN_NODE(), - GEO_ASM(0, Geo18_802CD1E8), + GEO_ASM(0, geo_cannon_circle_base), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/levels/ssl/areas/1/macro.inc.c b/levels/ssl/areas/1/macro.inc.c index 58ac8f2..79def1e 100644 --- a/levels/ssl/areas/1/macro.inc.c +++ b/levels/ssl/areas/1/macro.inc.c @@ -28,8 +28,8 @@ const MacroObject ssl_seg7_area_1_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 5900, 70, 2311), MACRO_OBJECT(/*preset*/ macro_box_koopa_shell, /*yaw*/ 0, /*pos*/ 5840, 940, 2500), MACRO_OBJECT(/*preset*/ macro_box_wing_cap, /*yaw*/ 0, /*pos*/ 5860, 940, 4180), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 5702, 614, 2974, /*behParam*/ 16), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -3260, 256, 800, /*behParam*/ 32), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 5702, 614, 2974, /*behParam*/ DIALOG_016), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -3260, 256, 800, /*behParam*/ DIALOG_032), MACRO_OBJECT(/*preset*/ macro_hidden_1up_in_pole, /*yaw*/ 0, /*pos*/ -6000, 600, -4800), MACRO_OBJECT(/*preset*/ macro_1up, /*yaw*/ 0, /*pos*/ -250, 0, 4200), MACRO_OBJECT(/*preset*/ macro_fly_guy, /*yaw*/ 0, /*pos*/ 3500, 149, 5600), @@ -45,6 +45,6 @@ const MacroObject ssl_seg7_area_1_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_1up, /*yaw*/ 0, /*pos*/ 5757, 230, 5761), MACRO_OBJECT(/*preset*/ macro_jumping_box, /*yaw*/ 0, /*pos*/ -5200, 0, 1700), MACRO_OBJECT(/*preset*/ macro_box_1up_running_away, /*yaw*/ 0, /*pos*/ -1200, 500, 800), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 5130, 26, -370, /*behParam*/ 157), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 5130, 26, -370, /*behParam*/ DIALOG_157), MACRO_OBJECT_END(), }; diff --git a/levels/ssl/areas/2/1/model.inc.c b/levels/ssl/areas/2/1/model.inc.c index 3a62ccb..5db0c6a 100644 --- a/levels/ssl/areas/2/1/model.inc.c +++ b/levels/ssl/areas/2/1/model.inc.c @@ -1,52 +1,32 @@ -// 0x07012BD0 - 0x07012BD8 -static const Ambient ssl_seg7_light_07012BD0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x07012BD0 - 0x07012BE8 +static const Lights1 ssl_seg7_lights_07012BD0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07012BD8 - 0x07012BE8 -static const Light ssl_seg7_light_07012BD8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07012BE8 - 0x07012C00 +static const Lights1 ssl_seg7_lights_07012BE8 = gdSPDefLights1( + 0x46, 0x46, 0x46, + 0x8c, 0x8c, 0x8c, 0x28, 0x28, 0x28 +); -// 0x07012BE8 - 0x07012BF0 -static const Ambient ssl_seg7_light_07012BE8 = { - {{0x46, 0x46, 0x46}, 0, {0x46, 0x46, 0x46}, 0} -}; +// 0x07012C00 - 0x07012C18 +static const Lights1 ssl_seg7_lights_07012C00 = gdSPDefLights1( + 0x33, 0x33, 0x33, + 0x66, 0x66, 0x66, 0x28, 0x28, 0x28 +); -// 0x07012BF0 - 0x07012C00 -static const Light ssl_seg7_light_07012BF0 = { - {{0x8c, 0x8c, 0x8c}, 0, {0x8c, 0x8c, 0x8c}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07012C18 - 0x07012C30 +static const Lights1 ssl_seg7_lights_07012C18 = gdSPDefLights1( + 0x4b, 0x4b, 0x4b, + 0x96, 0x96, 0x96, 0x28, 0x28, 0x28 +); -// 0x07012C00 - 0x07012C08 -static const Ambient ssl_seg7_light_07012C00 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0} -}; - -// 0x07012C08 - 0x07012C18 -static const Light ssl_seg7_light_07012C08 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07012C18 - 0x07012C20 -static const Ambient ssl_seg7_light_07012C18 = { - {{0x4b, 0x4b, 0x4b}, 0, {0x4b, 0x4b, 0x4b}, 0} -}; - -// 0x07012C20 - 0x07012C30 -static const Light ssl_seg7_light_07012C20 = { - {{0x96, 0x96, 0x96}, 0, {0x96, 0x96, 0x96}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07012C30 - 0x07012C38 -static const Ambient ssl_seg7_light_07012C30 = { - {{0x64, 0x64, 0x64}, 0, {0x64, 0x64, 0x64}, 0} -}; - -// 0x07012C38 - 0x07012C48 -static const Light ssl_seg7_light_07012C38 = { - {{0xc8, 0xc8, 0xc8}, 0, {0xc8, 0xc8, 0xc8}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07012C30 - 0x07012C48 +static const Lights1 ssl_seg7_lights_07012C30 = gdSPDefLights1( + 0x64, 0x64, 0x64, + 0xc8, 0xc8, 0xc8, 0x28, 0x28, 0x28 +); // 0x07012C48 - 0x07012CC8 static const Vtx ssl_seg7_vertex_07012C48[] = { @@ -3094,20 +3074,20 @@ static const Gfx ssl_seg7_dl_0701C198[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_0900A800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_07012BD8, 1), - gsSPLight(&ssl_seg7_light_07012BD0, 2), + gsSPLight(&ssl_seg7_lights_07012BD0.l, 1), + gsSPLight(&ssl_seg7_lights_07012BD0.a, 2), gsSPVertex(ssl_seg7_vertex_07012C48, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&ssl_seg7_light_07012BF0, 1), - gsSPLight(&ssl_seg7_light_07012BE8, 2), + gsSPLight(&ssl_seg7_lights_07012BE8.l, 1), + gsSPLight(&ssl_seg7_lights_07012BE8.a, 2), gsSPVertex(ssl_seg7_vertex_07012CC8, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 0, 3, 1, 0x0, 1, 5, 2, 0x0), gsSP2Triangles( 1, 6, 5, 0x0, 3, 4, 7, 0x0), gsSP2Triangles( 5, 7, 4, 0x0, 5, 6, 7, 0x0), - gsSPLight(&ssl_seg7_light_07012BD8, 1), - gsSPLight(&ssl_seg7_light_07012BD0, 2), + gsSPLight(&ssl_seg7_lights_07012BD0.l, 1), + gsSPLight(&ssl_seg7_lights_07012BD0.a, 2), gsSPVertex(ssl_seg7_vertex_07012D48, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 3, 4, 0, 0x0, 3, 5, 4, 0x0), @@ -3117,8 +3097,8 @@ static const Gfx ssl_seg7_dl_0701C198[] = { gsSP2Triangles(12, 13, 14, 0x0, 12, 15, 13, 0x0), gsSPVertex(ssl_seg7_vertex_07012E48, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), - gsSPLight(&ssl_seg7_light_07012C08, 1), - gsSPLight(&ssl_seg7_light_07012C00, 2), + gsSPLight(&ssl_seg7_lights_07012C00.l, 1), + gsSPLight(&ssl_seg7_lights_07012C00.a, 2), gsSPVertex(ssl_seg7_vertex_07012E78, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -3132,8 +3112,8 @@ static const Gfx ssl_seg7_dl_0701C198[] = { gsSP2Triangles(11, 10, 9, 0x0, 11, 4, 10, 0x0), gsSP2Triangles( 0, 2, 12, 0x0, 13, 14, 15, 0x0), gsSP2Triangles(12, 2, 14, 0x0, 13, 12, 14, 0x0), - gsSPLight(&ssl_seg7_light_07012C20, 1), - gsSPLight(&ssl_seg7_light_07012C18, 2), + gsSPLight(&ssl_seg7_lights_07012C18.l, 1), + gsSPLight(&ssl_seg7_lights_07012C18.a, 2), gsSPVertex(ssl_seg7_vertex_07013068, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 4, 7, 8, 0x0), @@ -3231,8 +3211,8 @@ static const Gfx ssl_seg7_dl_0701C198[] = { gsSP2Triangles( 2, 5, 0, 0x0, 6, 1, 4, 0x0), gsSP2Triangles( 6, 4, 7, 0x0, 8, 9, 10, 0x0), gsSP2Triangles( 8, 11, 9, 0x0, 12, 11, 8, 0x0), - gsSPLight(&ssl_seg7_light_07012BD8, 1), - gsSPLight(&ssl_seg7_light_07012BD0, 2), + gsSPLight(&ssl_seg7_lights_07012BD0.l, 1), + gsSPLight(&ssl_seg7_lights_07012BD0.a, 2), gsSPVertex(ssl_seg7_vertex_07014098, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -3391,21 +3371,21 @@ static const Gfx ssl_seg7_dl_0701D060[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_07012C08, 1), - gsSPLight(&ssl_seg7_light_07012C00, 2), + gsSPLight(&ssl_seg7_lights_07012C00.l, 1), + gsSPLight(&ssl_seg7_lights_07012C00.a, 2), gsSPVertex(ssl_seg7_vertex_07015B48, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 3, 4, 1, 0x0, 3, 5, 4, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), - gsSPLight(&ssl_seg7_light_07012C38, 1), - gsSPLight(&ssl_seg7_light_07012C30, 2), + gsSPLight(&ssl_seg7_lights_07012C30.l, 1), + gsSPLight(&ssl_seg7_lights_07012C30.a, 2), gsSPVertex(ssl_seg7_vertex_07015BE8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 10, 8, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(11, 14, 12, 0x0, 1, 15, 2, 0x0), - gsSPLight(&ssl_seg7_light_07012C20, 1), - gsSPLight(&ssl_seg7_light_07012C18, 2), + gsSPLight(&ssl_seg7_lights_07012C18.l, 1), + gsSPLight(&ssl_seg7_lights_07012C18.a, 2), gsSPVertex(ssl_seg7_vertex_07015CE8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -3507,8 +3487,8 @@ static const Gfx ssl_seg7_dl_0701D060[] = { gsSP1Triangle( 0, 2, 14, 0x0), gsSPVertex(ssl_seg7_vertex_07016FB8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&ssl_seg7_light_07012BD8, 1), - gsSPLight(&ssl_seg7_light_07012BD0, 2), + gsSPLight(&ssl_seg7_lights_07012BD0.l, 1), + gsSPLight(&ssl_seg7_lights_07012BD0.a, 2), gsSPVertex(ssl_seg7_vertex_07016FF8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ssl/areas/2/4/model.inc.c b/levels/ssl/areas/2/4/model.inc.c index b844dfb..bc58a62 100644 --- a/levels/ssl/areas/2/4/model.inc.c +++ b/levels/ssl/areas/2/4/model.inc.c @@ -1,14 +1,10 @@ // Quicksand Pit -// 0x07004000 - 0x07004008 -static const Ambient ssl_amb_light_quicksand_pit = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07004008 - 0x07004018 -static const Light ssl_diff_light_quicksand_pit = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07004000 - 0x07004018 +static const Lights1 ssl_lights_quicksand_pit = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07004018 - 0x07004818 ALIGNED8 const u8 ssl_quicksand[] = { @@ -19,8 +15,8 @@ ALIGNED8 const u8 ssl_quicksand[] = { const Gfx ssl_dl_quicksand_pit_begin[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB), - gsSPLight(&ssl_diff_light_quicksand_pit, 1), - gsSPLight(&ssl_amb_light_quicksand_pit, 2), + gsSPLight(&ssl_lights_quicksand_pit.l, 1), + gsSPLight(&ssl_lights_quicksand_pit.a, 2), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD), @@ -46,8 +42,8 @@ const Gfx ssl_dl_pyramid_quicksand_pit_begin[] = { gsSPFogFactor(0x0E49, 0xF2B7), // This isn't gsSPFogPosition since there is no valid min/max pair that corresponds to 0x0E49F2B7 gsSPSetGeometryMode(G_FOG), gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_PASS2), - gsSPLight(&ssl_diff_light_quicksand_pit, 1), - gsSPLight(&ssl_amb_light_quicksand_pit, 2), + gsSPLight(&ssl_lights_quicksand_pit.l, 1), + gsSPLight(&ssl_lights_quicksand_pit.a, 2), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD), @@ -123,8 +119,8 @@ const Gfx ssl_dl_pyramid_quicksand_pit_static[] = { gsSPFogFactor(0x0E49, 0xF2B7), // This isn't gsSPFogPosition since there is no valid min/max pair that corresponds to 0x0E49F2B7 gsSPSetGeometryMode(G_FOG), gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_PASS2), - gsSPLight(&ssl_diff_light_quicksand_pit, 1), - gsSPLight(&ssl_amb_light_quicksand_pit, 2), + gsSPLight(&ssl_lights_quicksand_pit.l, 1), + gsSPLight(&ssl_lights_quicksand_pit.a, 2), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPLoadTextureBlock(ssl_pyramid_sand, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPVertex(ssl_seg7_vertex_07004A70, 7, 0), diff --git a/levels/ssl/areas/2/macro.inc.c b/levels/ssl/areas/2/macro.inc.c index d38d562..86d06d6 100644 --- a/levels/ssl/areas/2/macro.inc.c +++ b/levels/ssl/areas/2/macro.inc.c @@ -1,7 +1,7 @@ // 0x07027CD4 - 0x07027ECA const MacroObject ssl_seg7_area_2_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_goomba, /*yaw*/ 0, /*pos*/ 3263, 778, 3157), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ 2196, 640, -3329, /*behParam*/ 43), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ 2196, 640, -3329, /*behParam*/ DIALOG_043), MACRO_OBJECT(/*preset*/ macro_box_1up, /*yaw*/ 0, /*pos*/ -3536, 252, -3705), MACRO_OBJECT(/*preset*/ macro_goomba, /*yaw*/ 0, /*pos*/ 3389, 0, -1978), MACRO_OBJECT(/*preset*/ macro_goomba, /*yaw*/ 0, /*pos*/ -3638, 0, 1928), @@ -36,7 +36,7 @@ const MacroObject ssl_seg7_area_2_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_hidden_star_trigger, /*yaw*/ 0, /*pos*/ -1940, 1229, -600), MACRO_OBJECT(/*preset*/ macro_hidden_star_trigger, /*yaw*/ 0, /*pos*/ -1940, 1229, 2320), MACRO_OBJECT(/*preset*/ macro_coin_line_vertical, /*yaw*/ 0, /*pos*/ 290, 4479, -940), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -3560, 0, -4065, /*behParam*/ 103), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -3560, 0, -4065, /*behParam*/ DIALOG_103), MACRO_OBJECT(/*preset*/ macro_hidden_star_trigger, /*yaw*/ 0, /*pos*/ 260, 3913, -600), MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -260, 2950, -600), MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 260, 1977, -600), diff --git a/levels/ssl/areas/3/1/model.inc.c b/levels/ssl/areas/3/1/model.inc.c index fe284ef..eaa234c 100644 --- a/levels/ssl/areas/3/1/model.inc.c +++ b/levels/ssl/areas/3/1/model.inc.c @@ -1,22 +1,14 @@ -// 0x0701FD60 - 0x0701FD68 -static const Ambient ssl_seg7_light_0701FD60 = { - {{0x46, 0x46, 0x46}, 0, {0x46, 0x46, 0x46}, 0} -}; +// 0x0701FD60 - 0x0701FD78 +static const Lights1 ssl_seg7_lights_0701FD60 = gdSPDefLights1( + 0x46, 0x46, 0x46, + 0x8c, 0x8c, 0x8c, 0x28, 0x28, 0x28 +); -// 0x0701FD68 - 0x0701FD78 -static const Light ssl_seg7_light_0701FD68 = { - {{0x8c, 0x8c, 0x8c}, 0, {0x8c, 0x8c, 0x8c}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701FD78 - 0x0701FD80 -static const Ambient ssl_seg7_light_0701FD78 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0701FD80 - 0x0701FD90 -static const Light ssl_seg7_light_0701FD80 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701FD78 - 0x0701FD90 +static const Lights1 ssl_seg7_lights_0701FD78 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701FD90 - 0x0701FE50 static const Vtx ssl_seg7_vertex_0701FD90[] = { @@ -459,14 +451,14 @@ static const Gfx ssl_seg7_dl_07021290[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_0701FD68, 1), - gsSPLight(&ssl_seg7_light_0701FD60, 2), + gsSPLight(&ssl_seg7_lights_0701FD60.l, 1), + gsSPLight(&ssl_seg7_lights_0701FD60.a, 2), gsSPVertex(ssl_seg7_vertex_0701FD90, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 8, 11, 9, 0x0), - gsSPLight(&ssl_seg7_light_0701FD80, 1), - gsSPLight(&ssl_seg7_light_0701FD78, 2), + gsSPLight(&ssl_seg7_lights_0701FD78.l, 1), + gsSPLight(&ssl_seg7_lights_0701FD78.a, 2), gsSPVertex(ssl_seg7_vertex_0701FE50, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -513,15 +505,15 @@ static const Gfx ssl_seg7_dl_070214E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_0900A800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_0701FD68, 1), - gsSPLight(&ssl_seg7_light_0701FD60, 2), + gsSPLight(&ssl_seg7_lights_0701FD60.l, 1), + gsSPLight(&ssl_seg7_lights_0701FD60.a, 2), gsSPVertex(ssl_seg7_vertex_07020550, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 0, 3, 1, 0x0, 1, 5, 2, 0x0), gsSP2Triangles( 1, 6, 5, 0x0, 3, 4, 7, 0x0), gsSP2Triangles( 5, 7, 4, 0x0, 5, 6, 7, 0x0), - gsSPLight(&ssl_seg7_light_0701FD80, 1), - gsSPLight(&ssl_seg7_light_0701FD78, 2), + gsSPLight(&ssl_seg7_lights_0701FD78.l, 1), + gsSPLight(&ssl_seg7_lights_0701FD78.a, 2), gsSPVertex(ssl_seg7_vertex_070205D0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -545,8 +537,8 @@ static const Gfx ssl_seg7_dl_07021638[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_0701FD68, 1), - gsSPLight(&ssl_seg7_light_0701FD60, 2), + gsSPLight(&ssl_seg7_lights_0701FD60.l, 1), + gsSPLight(&ssl_seg7_lights_0701FD60.a, 2), gsSPVertex(ssl_seg7_vertex_07020870, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -558,8 +550,8 @@ static const Gfx ssl_seg7_dl_07021638[] = { gsSP2Triangles( 3, 6, 4, 0x0, 6, 7, 4, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 8, 10, 11, 0x0), gsSP1Triangle( 0, 2, 12, 0x0), - gsSPLight(&ssl_seg7_light_0701FD80, 1), - gsSPLight(&ssl_seg7_light_0701FD78, 2), + gsSPLight(&ssl_seg7_lights_0701FD78.l, 1), + gsSPLight(&ssl_seg7_lights_0701FD78.a, 2), gsSPVertex(ssl_seg7_vertex_07020A20, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 4, 7, 8, 0x0), diff --git a/levels/ssl/areas/3/2/model.inc.c b/levels/ssl/areas/3/2/model.inc.c index 6c8a279..e93fb42 100644 --- a/levels/ssl/areas/3/2/model.inc.c +++ b/levels/ssl/areas/3/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x07021AC8 - 0x07021AD0 -static const Ambient ssl_seg7_light_07021AC8 = { - {{0x46, 0x46, 0x46}, 0, {0x46, 0x46, 0x46}, 0} -}; - -// 0x07021AD0 - 0x07021AE0 -static const Light ssl_seg7_light_07021AD0 = { - {{0x8c, 0x8c, 0x8c}, 0, {0x8c, 0x8c, 0x8c}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07021AC8 - 0x07021AE0 +static const Lights1 ssl_seg7_lights_07021AC8 = gdSPDefLights1( + 0x46, 0x46, 0x46, + 0x8c, 0x8c, 0x8c, 0x28, 0x28, 0x28 +); // 0x07021AE0 - 0x07021BA0 static const Vtx ssl_seg7_vertex_07021AE0[] = { @@ -59,8 +55,8 @@ static const Gfx ssl_seg7_dl_07021D00[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_07021AD0, 1), - gsSPLight(&ssl_seg7_light_07021AC8, 2), + gsSPLight(&ssl_seg7_lights_07021AC8.l, 1), + gsSPLight(&ssl_seg7_lights_07021AC8.a, 2), gsSPVertex(ssl_seg7_vertex_07021AE0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/levels/ssl/grindel/model.inc.c b/levels/ssl/grindel/model.inc.c index 6925fd9..f59bead 100644 --- a/levels/ssl/grindel/model.inc.c +++ b/levels/ssl/grindel/model.inc.c @@ -1,12 +1,8 @@ -// 0x07021E50 - 0x07021E58 -static const Ambient ssl_seg7_light_07021E50 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07021E58 - 0x07021E68 -static const Light ssl_seg7_light_07021E58 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07021E50 - 0x07021E68 +static const Lights1 ssl_seg7_lights_07021E50 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07021E68 - 0x07021EE8 static const Vtx ssl_seg7_vertex_07021E68[] = { @@ -45,8 +41,8 @@ static const Gfx ssl_seg7_dl_07021FE8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09002000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_07021E58, 1), - gsSPLight(&ssl_seg7_light_07021E50, 2), + gsSPLight(&ssl_seg7_lights_07021E50.l, 1), + gsSPLight(&ssl_seg7_lights_07021E50.a, 2), gsSPVertex(ssl_seg7_vertex_07021E68, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/ssl/leveldata.c b/levels/ssl/leveldata.c index d402598..9d43275 100644 --- a/levels/ssl/leveldata.c +++ b/levels/ssl/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" // LEVEL DATA diff --git a/levels/ssl/moving_pyramid_wall/model.inc.c b/levels/ssl/moving_pyramid_wall/model.inc.c index 3a7e7e9..385e1fa 100644 --- a/levels/ssl/moving_pyramid_wall/model.inc.c +++ b/levels/ssl/moving_pyramid_wall/model.inc.c @@ -1,12 +1,8 @@ -// 0x07022AA0 - 0x07022AA8 -static const Ambient ssl_seg7_light_07022AA0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07022AA8 - 0x07022AB8 -static const Light ssl_seg7_light_07022AA8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07022AA0 - 0x07022AB8 +static const Lights1 ssl_seg7_lights_07022AA0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07022AB8 - 0x07022BB8 static const Vtx ssl_seg7_vertex_07022AB8[] = { @@ -45,8 +41,8 @@ static const Gfx ssl_seg7_dl_07022C38[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_07022AA8, 1), - gsSPLight(&ssl_seg7_light_07022AA0, 2), + gsSPLight(&ssl_seg7_lights_07022AA0.l, 1), + gsSPLight(&ssl_seg7_lights_07022AA0.a, 2), gsSPVertex(ssl_seg7_vertex_07022AB8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ssl/pyramid_elevator/model.inc.c b/levels/ssl/pyramid_elevator/model.inc.c index 3d61326..89a4049 100644 --- a/levels/ssl/pyramid_elevator/model.inc.c +++ b/levels/ssl/pyramid_elevator/model.inc.c @@ -1,12 +1,8 @@ -// 0x07022DA8 - 0x07022DB0 -static const Ambient ssl_seg7_light_07022DA8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07022DB0 - 0x07022DC0 -static const Light ssl_seg7_light_07022DB0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07022DA8 - 0x07022DC0 +static const Lights1 ssl_seg7_lights_07022DA8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07022DC0 - 0x07022E80 static const Vtx ssl_seg7_vertex_07022DC0[] = { @@ -98,8 +94,8 @@ static const Gfx ssl_seg7_dl_070231D0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_0900A800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_07022DB0, 1), - gsSPLight(&ssl_seg7_light_07022DA8, 2), + gsSPLight(&ssl_seg7_lights_07022DA8.l, 1), + gsSPLight(&ssl_seg7_lights_07022DA8.a, 2), gsSPVertex(ssl_seg7_vertex_07022DC0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 3, 0, 0x0, 1, 3, 5, 0x0), diff --git a/levels/ssl/pyramid_top/model.inc.c b/levels/ssl/pyramid_top/model.inc.c index 898fe66..c2210c6 100644 --- a/levels/ssl/pyramid_top/model.inc.c +++ b/levels/ssl/pyramid_top/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700BD70 - 0x0700BD78 -static const Ambient ssl_seg7_light_0700BD70 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0700BD78 - 0x0700BD88 -static const Light ssl_seg7_light_0700BD78 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700BD70 - 0x0700BD88 +static const Lights1 ssl_seg7_lights_0700BD70 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700BD88 - 0x0700BE48 static const Vtx ssl_seg7_vertex_0700BD88[] = { @@ -37,8 +33,8 @@ static const Gfx ssl_seg7_dl_0700BE88[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_0700BD78, 1), - gsSPLight(&ssl_seg7_light_0700BD70, 2), + gsSPLight(&ssl_seg7_lights_0700BD70.l, 1), + gsSPLight(&ssl_seg7_lights_0700BD70.a, 2), gsSPVertex(ssl_seg7_vertex_0700BD88, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/levels/ssl/script.c b/levels/ssl/script.c index 8125198..4497751 100644 --- a/levels/ssl/script.c +++ b/levels/ssl/script.c @@ -96,13 +96,13 @@ const LevelScript level_ssl_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2048, 768, -1024, /*angle*/ 0, 0, 0, /*behParam*/ 0x0F1E0000, /*beh*/ bhvWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 6930, 0, -4871, /*angle*/ 0, 159, 0, /*behParam*/ 0x001F0000, /*beh*/ bhvFadingWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -5943, 0, -4903, /*angle*/ 0, 49, 0, /*behParam*/ 0x00200000, /*beh*/ bhvFadingWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x08, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x14, /*destLevel*/ 0x08, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_CHECKPOINT), - WARP_NODE(/*id*/ 0x1E, /*destLevel*/ 0x08, /*destArea*/ 0x02, /*destNode*/ 0x14, /*flags*/ WARP_CHECKPOINT), - WARP_NODE(/*id*/ 0x1F, /*destLevel*/ 0x08, /*destArea*/ 0x01, /*destNode*/ 0x20, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x20, /*destLevel*/ 0x08, /*destArea*/ 0x01, /*destNode*/ 0x1F, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_SSL, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x14, /*destLevel*/ LEVEL_SSL, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_CHECKPOINT), + WARP_NODE(/*id*/ 0x1E, /*destLevel*/ LEVEL_SSL, /*destArea*/ 0x02, /*destNode*/ 0x14, /*flags*/ WARP_CHECKPOINT), + WARP_NODE(/*id*/ 0x1F, /*destLevel*/ LEVEL_SSL, /*destArea*/ 0x01, /*destNode*/ 0x20, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x20, /*destLevel*/ LEVEL_SSL, /*destArea*/ 0x01, /*destNode*/ 0x1F, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), JUMP_LINK(script_func_local_3), @@ -117,12 +117,12 @@ const LevelScript level_ssl_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 5500, 256, /*angle*/ 0, 180, 0, /*behParam*/ 0x00140000, /*beh*/ bhvWarps64), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 3070, 1280, 2900, /*angle*/ 0, 180, 0, /*behParam*/ 0x00150000, /*beh*/ bhvFadingWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2546, 1150, -2647, /*angle*/ 0, 78, 0, /*behParam*/ 0x00160000, /*beh*/ bhvFadingWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x08, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x14, /*destLevel*/ 0x08, /*destArea*/ 0x02, /*destNode*/ 0x14, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x15, /*destLevel*/ 0x08, /*destArea*/ 0x02, /*destNode*/ 0x16, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x16, /*destLevel*/ 0x08, /*destArea*/ 0x02, /*destNode*/ 0x15, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_SSL, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x14, /*destLevel*/ LEVEL_SSL, /*destArea*/ 0x02, /*destNode*/ 0x14, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x15, /*destLevel*/ LEVEL_SSL, /*destArea*/ 0x02, /*destNode*/ 0x16, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x16, /*destLevel*/ LEVEL_SSL, /*destArea*/ 0x02, /*destNode*/ 0x15, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_4), JUMP_LINK(script_func_local_5), INSTANT_WARP(/*index*/ 3, /*destArea*/ 3, /*displace*/ 0, 0, 0), @@ -133,8 +133,8 @@ const LevelScript level_ssl_entry[] = { END_AREA(), AREA(/*index*/ 3, ssl_geo_00088C), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x03, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_6), TERRAIN(/*terrainData*/ ssl_seg7_area_3_collision), MACRO_OBJECTS(/*objList*/ ssl_seg7_area_3_macro_objs), diff --git a/levels/ssl/spindel/model.inc.c b/levels/ssl/spindel/model.inc.c index ad0bde7..e08aa15 100644 --- a/levels/ssl/spindel/model.inc.c +++ b/levels/ssl/spindel/model.inc.c @@ -1,12 +1,8 @@ -// 0x070222A0 - 0x070222A8 -static const Ambient ssl_seg7_light_070222A0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x070222A8 - 0x070222B8 -static const Light ssl_seg7_light_070222A8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070222A0 - 0x070222B8 +static const Lights1 ssl_seg7_lights_070222A0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070222B8 - 0x070223B8 static const Vtx ssl_seg7_vertex_070222B8[] = { @@ -108,8 +104,8 @@ static const Gfx ssl_seg7_dl_07022728[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09002000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_070222A8, 1), - gsSPLight(&ssl_seg7_light_070222A0, 2), + gsSPLight(&ssl_seg7_lights_070222A0.l, 1), + gsSPLight(&ssl_seg7_lights_070222A0.a, 2), gsSPVertex(ssl_seg7_vertex_070222B8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 5, 6, 0x0, 0, 7, 8, 0x0), diff --git a/levels/ssl/tox_box/model.inc.c b/levels/ssl/tox_box/model.inc.c index e7a6db3..f5fb66d 100644 --- a/levels/ssl/tox_box/model.inc.c +++ b/levels/ssl/tox_box/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700BF90 - 0x0700BF98 -static const Ambient ssl_seg7_light_0700BF90 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0700BF98 - 0x0700BFA8 -static const Light ssl_seg7_light_0700BF98 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700BF90 - 0x0700BFA8 +static const Lights1 ssl_seg7_lights_0700BF90 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700BFA8 - 0x0700C7A8 ALIGNED8 static const u8 ssl_seg7_texture_0700BFA8[] = { @@ -111,8 +107,8 @@ static const Gfx ssl_seg7_dl_0700FB48[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ssl_seg7_texture_0700BFA8), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ssl_seg7_light_0700BF98, 1), - gsSPLight(&ssl_seg7_light_0700BF90, 2), + gsSPLight(&ssl_seg7_lights_0700BF90.l, 1), + gsSPLight(&ssl_seg7_lights_0700BF90.a, 2), gsSPVertex(ssl_seg7_vertex_0700F7A8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/thi/areas/1/1/model.inc.c b/levels/thi/areas/1/1/model.inc.c index 9a1f61a..1655817 100644 --- a/levels/thi/areas/1/1/model.inc.c +++ b/levels/thi/areas/1/1/model.inc.c @@ -1,42 +1,26 @@ -// 0x07001000 - 0x07001008 -static const Ambient thi_seg7_light_07001000 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x07001000 - 0x07001018 +static const Lights1 thi_seg7_lights_07001000 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07001008 - 0x07001018 -static const Light thi_seg7_light_07001008 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07001018 - 0x07001030 +static const Lights1 thi_seg7_lights_07001018 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x07001018 - 0x07001020 -static const Ambient thi_seg7_light_07001018 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; +// 0x07001030 - 0x07001048 +static const Lights1 thi_seg7_lights_07001030 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); -// 0x07001020 - 0x07001030 -static const Light thi_seg7_light_07001020 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07001030 - 0x07001038 -static const Ambient thi_seg7_light_07001030 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x07001038 - 0x07001048 -static const Light thi_seg7_light_07001038 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07001048 - 0x07001050 -static const Ambient thi_seg7_light_07001048 = { - {{0x7f, 0x7f, 0x3c}, 0, {0x7f, 0x7f, 0x3c}, 0} -}; - -// 0x07001050 - 0x07001060 -static const Light thi_seg7_light_07001050 = { - {{0xff, 0xff, 0x78}, 0, {0xff, 0xff, 0x78}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07001048 - 0x07001060 +static const Lights1 thi_seg7_lights_07001048 = gdSPDefLights1( + 0x7f, 0x7f, 0x3c, + 0xff, 0xff, 0x78, 0x28, 0x28, 0x28 +); // 0x07001060 - 0x07001140 static const Vtx thi_seg7_vertex_07001060[] = { @@ -1060,8 +1044,8 @@ static const Gfx thi_seg7_dl_07004130[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_07001008, 1), - gsSPLight(&thi_seg7_light_07001000, 2), + gsSPLight(&thi_seg7_lights_07001000.l, 1), + gsSPLight(&thi_seg7_lights_07001000.a, 2), gsSPVertex(thi_seg7_vertex_07001060, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -1108,8 +1092,8 @@ static const Gfx thi_seg7_dl_07004130[] = { gsSP2Triangles(11, 14, 12, 0x0, 11, 10, 15, 0x0), gsSPVertex(thi_seg7_vertex_070017D0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&thi_seg7_light_07001020, 1), - gsSPLight(&thi_seg7_light_07001018, 2), + gsSPLight(&thi_seg7_lights_07001018.l, 1), + gsSPLight(&thi_seg7_lights_07001018.a, 2), gsSPVertex(thi_seg7_vertex_07001830, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 0, 4, 1, 0x0, 5, 1, 4, 0x0), @@ -1124,18 +1108,18 @@ static const Gfx thi_seg7_dl_07004440[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_07001008, 1), - gsSPLight(&thi_seg7_light_07001000, 2), + gsSPLight(&thi_seg7_lights_07001000.l, 1), + gsSPLight(&thi_seg7_lights_07001000.a, 2), gsSPVertex(thi_seg7_vertex_07001920, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), - gsSPLight(&thi_seg7_light_07001020, 1), - gsSPLight(&thi_seg7_light_07001018, 2), + gsSPLight(&thi_seg7_lights_07001018.l, 1), + gsSPLight(&thi_seg7_lights_07001018.a, 2), gsSPVertex(thi_seg7_vertex_07001960, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 3, 7, 4, 0x0), gsSP1Triangle( 0, 2, 8, 0x0), - gsSPLight(&thi_seg7_light_07001038, 1), - gsSPLight(&thi_seg7_light_07001030, 2), + gsSPLight(&thi_seg7_lights_07001030.l, 1), + gsSPLight(&thi_seg7_lights_07001030.a, 2), gsSPVertex(thi_seg7_vertex_070019F0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), @@ -1146,8 +1130,8 @@ static const Gfx thi_seg7_dl_070044F0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_07001008, 1), - gsSPLight(&thi_seg7_light_07001000, 2), + gsSPLight(&thi_seg7_lights_07001000.l, 1), + gsSPLight(&thi_seg7_lights_07001000.a, 2), gsSPVertex(thi_seg7_vertex_07001A50, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -1185,13 +1169,13 @@ static const Gfx thi_seg7_dl_070044F0[] = { gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 11, 12, 13, 0x0), gsSP1Triangle( 8, 10, 14, 0x0), - gsSPLight(&thi_seg7_light_07001020, 1), - gsSPLight(&thi_seg7_light_07001018, 2), + gsSPLight(&thi_seg7_lights_07001018.l, 1), + gsSPLight(&thi_seg7_lights_07001018.a, 2), gsSPVertex(thi_seg7_vertex_070021C0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 2, 4, 3, 0x0, 5, 4, 2, 0x0), - gsSPLight(&thi_seg7_light_07001038, 1), - gsSPLight(&thi_seg7_light_07001030, 2), + gsSPLight(&thi_seg7_lights_07001030.l, 1), + gsSPLight(&thi_seg7_lights_07001030.a, 2), gsSPVertex(thi_seg7_vertex_07002220, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSPEndDisplayList(), @@ -1204,8 +1188,8 @@ static const Gfx thi_seg7_dl_07004788[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09005800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_07001008, 1), - gsSPLight(&thi_seg7_light_07001000, 2), + gsSPLight(&thi_seg7_lights_07001000.l, 1), + gsSPLight(&thi_seg7_lights_07001000.a, 2), gsSPVertex(thi_seg7_vertex_07002260, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 4, 6, 0x0), @@ -1280,8 +1264,8 @@ static const Gfx thi_seg7_dl_07004788[] = { gsSP2Triangles(12, 13, 14, 0x0, 13, 15, 14, 0x0), gsSPVertex(thi_seg7_vertex_07002F00, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), - gsSPLight(&thi_seg7_light_07001020, 1), - gsSPLight(&thi_seg7_light_07001018, 2), + gsSPLight(&thi_seg7_lights_07001018.l, 1), + gsSPLight(&thi_seg7_lights_07001018.a, 2), gsSPVertex(thi_seg7_vertex_07002F40, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -1294,8 +1278,8 @@ static const Gfx thi_seg7_dl_07004BF0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09003000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_07001008, 1), - gsSPLight(&thi_seg7_light_07001000, 2), + gsSPLight(&thi_seg7_lights_07001000.l, 1), + gsSPLight(&thi_seg7_lights_07001000.a, 2), gsSPVertex(thi_seg7_vertex_07002F80, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 4, 3, 0x0), @@ -1371,8 +1355,8 @@ static const Gfx thi_seg7_dl_07004BF0[] = { gsSP2Triangles(11, 12, 0, 0x0, 13, 14, 15, 0x0), gsSPVertex(thi_seg7_vertex_07003D00, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&thi_seg7_light_07001020, 1), - gsSPLight(&thi_seg7_light_07001018, 2), + gsSPLight(&thi_seg7_lights_07001018.l, 1), + gsSPLight(&thi_seg7_lights_07001018.a, 2), gsSPVertex(thi_seg7_vertex_07003D60, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1390,8 +1374,8 @@ static const Gfx thi_seg7_dl_070050C0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, thi_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_07001008, 1), - gsSPLight(&thi_seg7_light_07001000, 2), + gsSPLight(&thi_seg7_lights_07001000.l, 1), + gsSPLight(&thi_seg7_lights_07001000.a, 2), gsSPVertex(thi_seg7_vertex_07003EE0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 1, 3, 4, 0x0, 2, 1, 5, 0x0), @@ -1423,8 +1407,8 @@ static const Gfx thi_seg7_dl_070051E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_0900A800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_07001050, 1), - gsSPLight(&thi_seg7_light_07001048, 2), + gsSPLight(&thi_seg7_lights_07001048.l, 1), + gsSPLight(&thi_seg7_lights_07001048.a, 2), gsSPVertex(thi_seg7_vertex_07004090, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0), gsSP2Triangles( 4, 1, 5, 0x0, 3, 5, 1, 0x0), diff --git a/levels/thi/areas/1/2/model.inc.c b/levels/thi/areas/1/2/model.inc.c index 46a8112..e410beb 100644 --- a/levels/thi/areas/1/2/model.inc.c +++ b/levels/thi/areas/1/2/model.inc.c @@ -1,42 +1,26 @@ -// 0x07005330 - 0x07005338 -static const Ambient thi_seg7_light_07005330 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x07005330 - 0x07005348 +static const Lights1 thi_seg7_lights_07005330 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07005338 - 0x07005348 -static const Light thi_seg7_light_07005338 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07005348 - 0x07005360 +static const Lights1 thi_seg7_lights_07005348 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x07005348 - 0x07005350 -static const Ambient thi_seg7_light_07005348 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; +// 0x07005360 - 0x07005378 +static const Lights1 thi_seg7_lights_07005360 = gdSPDefLights1( + 0x33, 0x33, 0x33, + 0x66, 0x66, 0x66, 0x28, 0x28, 0x28 +); -// 0x07005350 - 0x07005360 -static const Light thi_seg7_light_07005350 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07005360 - 0x07005368 -static const Ambient thi_seg7_light_07005360 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0} -}; - -// 0x07005368 - 0x07005378 -static const Light thi_seg7_light_07005368 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07005378 - 0x07005380 -static const Ambient thi_seg7_light_07005378 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x07005380 - 0x07005390 -static const Light thi_seg7_light_07005380 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07005378 - 0x07005390 +static const Lights1 thi_seg7_lights_07005378 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x07005390 - 0x07005470 static const Vtx thi_seg7_vertex_07005390[] = { @@ -378,8 +362,8 @@ static const Gfx thi_seg7_dl_070063C0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_07005338, 1), - gsSPLight(&thi_seg7_light_07005330, 2), + gsSPLight(&thi_seg7_lights_07005330.l, 1), + gsSPLight(&thi_seg7_lights_07005330.a, 2), gsSPVertex(thi_seg7_vertex_07005390, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -391,8 +375,8 @@ static const Gfx thi_seg7_dl_070063C0[] = { gsSPVertex(thi_seg7_vertex_07005550, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&thi_seg7_light_07005350, 1), - gsSPLight(&thi_seg7_light_07005348, 2), + gsSPLight(&thi_seg7_lights_07005348.l, 1), + gsSPLight(&thi_seg7_lights_07005348.a, 2), gsSPVertex(thi_seg7_vertex_070055D0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -435,8 +419,8 @@ static const Gfx thi_seg7_dl_07006660[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_07005338, 1), - gsSPLight(&thi_seg7_light_07005330, 2), + gsSPLight(&thi_seg7_lights_07005330.l, 1), + gsSPLight(&thi_seg7_lights_07005330.a, 2), gsSPVertex(thi_seg7_vertex_07005C30, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 3, 0x0), @@ -447,8 +431,8 @@ static const Gfx thi_seg7_dl_07006660[] = { gsSPVertex(thi_seg7_vertex_07005D30, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 6, 3, 5, 0x0), - gsSPLight(&thi_seg7_light_07005368, 1), - gsSPLight(&thi_seg7_light_07005360, 2), + gsSPLight(&thi_seg7_lights_07005360.l, 1), + gsSPLight(&thi_seg7_lights_07005360.a, 2), gsSPVertex(thi_seg7_vertex_07005DA0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -462,8 +446,8 @@ static const Gfx thi_seg7_dl_07006770[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_07005350, 1), - gsSPLight(&thi_seg7_light_07005348, 2), + gsSPLight(&thi_seg7_lights_07005348.l, 1), + gsSPLight(&thi_seg7_lights_07005348.a, 2), gsSPVertex(thi_seg7_vertex_07005EA0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 0, 6, 1, 0x0, 3, 5, 7, 0x0), @@ -507,8 +491,8 @@ static const Gfx thi_seg7_dl_07006868[] = { // 0x07006908 - 0x07006968 static const Gfx thi_seg7_dl_07006908[] = { - gsSPLight(&thi_seg7_light_07005380, 1), - gsSPLight(&thi_seg7_light_07005378, 2), + gsSPLight(&thi_seg7_lights_07005378.l, 1), + gsSPLight(&thi_seg7_lights_07005378.a, 2), gsSPVertex(thi_seg7_vertex_070062C0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/thi/areas/1/4/model.inc.c b/levels/thi/areas/1/4/model.inc.c index aa1a9bc..2095cf9 100644 --- a/levels/thi/areas/1/4/model.inc.c +++ b/levels/thi/areas/1/4/model.inc.c @@ -1,12 +1,8 @@ -// 0x07007078 - 0x07007080 -static const Ambient thi_seg7_light_07007078 = { - {{0x7f, 0x7f, 0x3c}, 0, {0x7f, 0x7f, 0x3c}, 0} -}; - -// 0x07007080 - 0x07007090 -static const Light thi_seg7_light_07007080 = { - {{0xff, 0xff, 0x78}, 0, {0xff, 0xff, 0x78}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07007078 - 0x07007090 +static const Lights1 thi_seg7_lights_07007078 = gdSPDefLights1( + 0x7f, 0x7f, 0x3c, + 0xff, 0xff, 0x78, 0x28, 0x28, 0x28 +); // 0x07007090 - 0x07007180 static const Vtx thi_seg7_vertex_07007090[] = { @@ -48,8 +44,8 @@ static const Gfx thi_seg7_dl_07007240[] = { gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, grass_0900B800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_07007080, 1), - gsSPLight(&thi_seg7_light_07007078, 2), + gsSPLight(&thi_seg7_lights_07007078.l, 1), + gsSPLight(&thi_seg7_lights_07007078.a, 2), gsSPVertex(thi_seg7_vertex_07007090, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), diff --git a/levels/thi/areas/1/6/model.inc.c b/levels/thi/areas/1/6/model.inc.c index 347c054..b2a7958 100644 --- a/levels/thi/areas/1/6/model.inc.c +++ b/levels/thi/areas/1/6/model.inc.c @@ -1,12 +1,8 @@ -// 0x070075A8 - 0x070075B0 -static const Ambient thi_seg7_light_070075A8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x070075B0 - 0x070075C0 -static const Light thi_seg7_light_070075B0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070075A8 - 0x070075C0 +static const Lights1 thi_seg7_lights_070075A8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070075C0 - 0x07007600 static const Vtx thi_seg7_vertex_070075C0[] = { @@ -21,8 +17,8 @@ static const Gfx thi_seg7_dl_07007600[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, thi_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_070075B0, 1), - gsSPLight(&thi_seg7_light_070075A8, 2), + gsSPLight(&thi_seg7_lights_070075A8.l, 1), + gsSPLight(&thi_seg7_lights_070075A8.a, 2), gsSPVertex(thi_seg7_vertex_070075C0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSPEndDisplayList(), diff --git a/levels/thi/areas/1/7/model.inc.c b/levels/thi/areas/1/7/model.inc.c index 4149d2c..fe60fd5 100644 --- a/levels/thi/areas/1/7/model.inc.c +++ b/levels/thi/areas/1/7/model.inc.c @@ -1,22 +1,14 @@ -// 0x070076A8 - 0x070076B0 -static const Ambient thi_seg7_light_070076A8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x070076A8 - 0x070076C0 +static const Lights1 thi_seg7_lights_070076A8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x070076B0 - 0x070076C0 -static const Light thi_seg7_light_070076B0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070076C0 - 0x070076C8 -static const Ambient thi_seg7_light_070076C0 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x070076C8 - 0x070076D8 -static const Light thi_seg7_light_070076C8 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070076C0 - 0x070076D8 +static const Lights1 thi_seg7_lights_070076C0 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); // 0x070076D8 - 0x07007718 static const Vtx thi_seg7_vertex_070076D8[] = { @@ -56,8 +48,8 @@ static const Gfx thi_seg7_dl_07007828[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09005800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_070076B0, 1), - gsSPLight(&thi_seg7_light_070076A8, 2), + gsSPLight(&thi_seg7_lights_070076A8.l, 1), + gsSPLight(&thi_seg7_lights_070076A8.a, 2), gsSPVertex(thi_seg7_vertex_070076D8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -81,8 +73,8 @@ static const Gfx thi_seg7_dl_070078D8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_070076C8, 1), - gsSPLight(&thi_seg7_light_070076C0, 2), + gsSPLight(&thi_seg7_lights_070076C0.l, 1), + gsSPLight(&thi_seg7_lights_070076C0.a, 2), gsSPVertex(thi_seg7_vertex_070077D8, 5, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 3, 4, 2, 0x0, 4, 0, 2, 0x0), diff --git a/levels/thi/areas/1/geo.inc.c b/levels/thi/areas/1/geo.inc.c index 003875a..8bf493b 100644 --- a/levels/thi/areas/1/geo.inc.c +++ b/levels/thi/areas/1/geo.inc.c @@ -29,7 +29,7 @@ const GeoLayout thi_geo_000608[] = { GEO_CLOSE_NODE(), GEO_ZBUFFER(0), GEO_OPEN_NODE(), - GEO_ASM(0, Geo18_802CD1E8), + GEO_ASM(0, geo_cannon_circle_base), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/levels/thi/areas/1/macro.inc.c b/levels/thi/areas/1/macro.inc.c index 0b7d514..e622e4d 100644 --- a/levels/thi/areas/1/macro.inc.c +++ b/levels/thi/areas/1/macro.inc.c @@ -3,7 +3,7 @@ const MacroObject thi_seg7_area_1_macro_objs[] = { MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_cannon_closed, /*yaw*/ 0, /*pos*/ 6656, -2832, 6964, /*behParam*/ 0x80), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 0, /*pos*/ 870, -502, 2828), MACRO_OBJECT(/*preset*/ macro_hidden_1up_in_pole, /*yaw*/ 0, /*pos*/ 4800, -110, 2250), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 6728, -2559, 1561, /*behParam*/ 91), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 6728, -2559, 1561, /*behParam*/ DIALOG_091), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 90, /*pos*/ -66, -1637, -4944), MACRO_OBJECT(/*preset*/ macro_huge_goomba, /*yaw*/ 0, /*pos*/ 7069, -1535, -4758), MACRO_OBJECT(/*preset*/ macro_huge_goomba, /*yaw*/ 0, /*pos*/ 7177, -1535, -3522), @@ -31,8 +31,8 @@ const MacroObject thi_seg7_area_1_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_box_1up_running_away, /*yaw*/ 0, /*pos*/ -5712, -2190, 1100), MACRO_OBJECT(/*preset*/ macro_box_1up_running_away, /*yaw*/ 0, /*pos*/ 6022, -1722, -633), MACRO_OBJECT(/*preset*/ macro_wooden_post, /*yaw*/ 0, /*pos*/ -5822, -2969, 5822), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ -886, -2559, 6655, /*behParam*/ 165), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -2370, -511, 2320, /*behParam*/ 166), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ -886, -2559, 6655, /*behParam*/ DIALOG_165), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -2370, -511, 2320, /*behParam*/ DIALOG_166), MACRO_OBJECT(/*preset*/ macro_box_star_2, /*yaw*/ 0, /*pos*/ 2600, 3500, -2400), MACRO_OBJECT(/*preset*/ macro_huge_goomba, /*yaw*/ 0, /*pos*/ -3180, -511, 2080), MACRO_OBJECT(/*preset*/ macro_fly_guy, /*yaw*/ 0, /*pos*/ -300, -2340, 3940), diff --git a/levels/thi/areas/3/2/model.inc.c b/levels/thi/areas/3/2/model.inc.c index 32d73af..b4b2dd7 100644 --- a/levels/thi/areas/3/2/model.inc.c +++ b/levels/thi/areas/3/2/model.inc.c @@ -1,52 +1,32 @@ -// 0x07007C90 - 0x07007C98 -static const Ambient thi_seg7_light_07007C90 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; +// 0x07007C90 - 0x07007CA8 +static const Lights1 thi_seg7_lights_07007C90 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x07007C98 - 0x07007CA8 -static const Light thi_seg7_light_07007C98 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07007CA8 - 0x07007CC0 +static const Lights1 thi_seg7_lights_07007CA8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07007CA8 - 0x07007CB0 -static const Ambient thi_seg7_light_07007CA8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x07007CC0 - 0x07007CD8 +static const Lights1 thi_seg7_lights_07007CC0 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x07007CB0 - 0x07007CC0 -static const Light thi_seg7_light_07007CB0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07007CD8 - 0x07007CF0 +static const Lights1 thi_seg7_lights_07007CD8 = gdSPDefLights1( + 0x33, 0x33, 0x33, + 0x66, 0x66, 0x66, 0x28, 0x28, 0x28 +); -// 0x07007CC0 - 0x07007CC8 -static const Ambient thi_seg7_light_07007CC0 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x07007CC8 - 0x07007CD8 -static const Light thi_seg7_light_07007CC8 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07007CD8 - 0x07007CE0 -static const Ambient thi_seg7_light_07007CD8 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0} -}; - -// 0x07007CE0 - 0x07007CF0 -static const Light thi_seg7_light_07007CE0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07007CF0 - 0x07007CF8 -static const Ambient thi_seg7_light_07007CF0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07007CF8 - 0x07007D08 -static const Light thi_seg7_light_07007CF8 = { - {{0xcc, 0xcc, 0xcc}, 0, {0xcc, 0xcc, 0xcc}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07007CF0 - 0x07007D08 +static const Lights1 thi_seg7_lights_07007CF0 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xcc, 0xcc, 0xcc, 0x28, 0x28, 0x28 +); // 0x07007D08 - 0x07007D88 static const Vtx thi_seg7_vertex_07007D08[] = { @@ -446,8 +426,8 @@ static const Gfx thi_seg7_dl_07008F98[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_0900B800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_07007C98, 1), - gsSPLight(&thi_seg7_light_07007C90, 2), + gsSPLight(&thi_seg7_lights_07007C90.l, 1), + gsSPLight(&thi_seg7_lights_07007C90.a, 2), gsSPVertex(thi_seg7_vertex_07007D08, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), gsSP2Triangles( 0, 2, 5, 0x0, 3, 1, 0, 0x0), @@ -461,12 +441,12 @@ static const Gfx thi_seg7_dl_07009010[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09005800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_07007CB0, 1), - gsSPLight(&thi_seg7_light_07007CA8, 2), + gsSPLight(&thi_seg7_lights_07007CA8.l, 1), + gsSPLight(&thi_seg7_lights_07007CA8.a, 2), gsSPVertex(thi_seg7_vertex_07007D88, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&thi_seg7_light_07007CC8, 1), - gsSPLight(&thi_seg7_light_07007CC0, 2), + gsSPLight(&thi_seg7_lights_07007CC0.l, 1), + gsSPLight(&thi_seg7_lights_07007CC0.a, 2), gsSPVertex(thi_seg7_vertex_07007DC8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -477,15 +457,15 @@ static const Gfx thi_seg7_dl_07009080[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_07007CB0, 1), - gsSPLight(&thi_seg7_light_07007CA8, 2), + gsSPLight(&thi_seg7_lights_07007CA8.l, 1), + gsSPLight(&thi_seg7_lights_07007CA8.a, 2), gsSPVertex(thi_seg7_vertex_07007E08, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 3, 7, 6, 0x0), gsSP2Triangles( 8, 6, 7, 0x0, 8, 7, 9, 0x0), gsSP2Triangles( 0, 10, 1, 0x0, 11, 12, 13, 0x0), - gsSPLight(&thi_seg7_light_07007CE0, 1), - gsSPLight(&thi_seg7_light_07007CD8, 2), + gsSPLight(&thi_seg7_lights_07007CD8.l, 1), + gsSPLight(&thi_seg7_lights_07007CD8.a, 2), gsSPVertex(thi_seg7_vertex_07007EE8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -553,8 +533,8 @@ static const Gfx thi_seg7_dl_07009080[] = { gsSP1Triangle(12, 13, 14, 0x0), gsSPVertex(thi_seg7_vertex_07008B18, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&thi_seg7_light_07007CF8, 1), - gsSPLight(&thi_seg7_light_07007CF0, 2), + gsSPLight(&thi_seg7_lights_07007CF0.l, 1), + gsSPLight(&thi_seg7_lights_07007CF0.a, 2), gsSPVertex(thi_seg7_vertex_07008B78, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 0, 4, 5, 0x0), @@ -575,8 +555,8 @@ static const Gfx thi_seg7_dl_07009530[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&thi_seg7_light_07007CC8, 1), - gsSPLight(&thi_seg7_light_07007CC0, 2), + gsSPLight(&thi_seg7_lights_07007CC0.l, 1), + gsSPLight(&thi_seg7_lights_07007CC0.a, 2), gsSPVertex(thi_seg7_vertex_07008D78, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 3, 4, 5, 0x0, 3, 2, 4, 0x0), @@ -600,8 +580,8 @@ static const Gfx thi_seg7_dl_070095A8[] = { // 0x07009610 - 0x07009670 static const Gfx thi_seg7_dl_07009610[] = { - gsSPLight(&thi_seg7_light_07007C98, 1), - gsSPLight(&thi_seg7_light_07007C90, 2), + gsSPLight(&thi_seg7_lights_07007C90.l, 1), + gsSPLight(&thi_seg7_lights_07007C90.a, 2), gsSPVertex(thi_seg7_vertex_07008F18, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 0, 4, 1, 0x0, 0, 3, 5, 0x0), diff --git a/levels/thi/leveldata.c b/levels/thi/leveldata.c index d2ef38d..f00bbf3 100644 --- a/levels/thi/leveldata.c +++ b/levels/thi/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/thi/texture.inc.c" diff --git a/levels/thi/script.c b/levels/thi/script.c index bbf1b1e..3d5bfac 100644 --- a/levels/thi/script.c +++ b/levels/thi/script.c @@ -61,9 +61,9 @@ static const LevelScript script_func_local_7[] = { OBJECT(/*model*/ MODEL_THI_WARP_PIPE, /*pos*/ 6656, -1536, -5632, /*angle*/ 0, 0, 0, /*behParam*/ 0x00320000, /*beh*/ bhvWarpPipe), OBJECT(/*model*/ MODEL_THI_WARP_PIPE, /*pos*/ -5888, -2048, -5888, /*angle*/ 0, 0, 0, /*behParam*/ 0x00330000, /*beh*/ bhvWarpPipe), OBJECT(/*model*/ MODEL_THI_WARP_PIPE, /*pos*/ -3072, 512, -3840, /*angle*/ 0, 0, 0, /*behParam*/ 0x00340000, /*beh*/ bhvWarpPipe), - WARP_NODE(/*id*/ 0x32, /*destLevel*/ 0x0D, /*destArea*/ 0x02, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x33, /*destLevel*/ 0x0D, /*destArea*/ 0x02, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x34, /*destLevel*/ 0x0D, /*destArea*/ 0x02, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x32, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x02, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x33, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x02, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x34, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x02, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), RETURN(), }; @@ -71,9 +71,9 @@ static const LevelScript script_func_local_8[] = { OBJECT(/*model*/ MODEL_THI_WARP_PIPE, /*pos*/ 1997, -461, -1690, /*angle*/ 0, 0, 0, /*behParam*/ 0x00320000, /*beh*/ bhvWarpPipe), OBJECT(/*model*/ MODEL_THI_WARP_PIPE, /*pos*/ -1766, -614, -1766, /*angle*/ 0, 0, 0, /*behParam*/ 0x00330000, /*beh*/ bhvWarpPipe), OBJECT(/*model*/ MODEL_THI_WARP_PIPE, /*pos*/ -922, 154, -1152, /*angle*/ 0, 0, 0, /*behParam*/ 0x00340000, /*beh*/ bhvWarpPipe), - WARP_NODE(/*id*/ 0x32, /*destLevel*/ 0x0D, /*destArea*/ 0x01, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x33, /*destLevel*/ 0x0D, /*destArea*/ 0x01, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x34, /*destLevel*/ 0x0D, /*destArea*/ 0x01, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x32, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x01, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x33, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x01, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x34, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x01, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), RETURN(), }; @@ -104,12 +104,12 @@ const LevelScript level_thi_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ 410, -512, 922, /*angle*/ 0, 0, 0, /*behParam*/ 0x000B0000, /*beh*/ bhvWarps60), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 410, -512, 717, /*angle*/ 0, 0, 0, /*behParam*/ 0x050C0000, /*beh*/ bhvWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 3170, -1570, /*angle*/ 0, 0, 0, /*behParam*/ 0x0A0D0000, /*beh*/ bhvWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x0D, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x0D, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0C, /*destLevel*/ 0x0D, /*destArea*/ 0x03, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0D, /*destLevel*/ 0x0D, /*destArea*/ 0x03, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x37, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x69, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x03, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0D, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x03, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x37, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x69, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_7), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_5), @@ -124,11 +124,11 @@ const LevelScript level_thi_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2211, 110, 2212, /*angle*/ 0, 149, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps74), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 280, -767, -4180, /*angle*/ 0, 0, 0, /*behParam*/ 0x000B0000, /*beh*/ bhvFadingWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1638, 0, -1988, /*angle*/ 0, -126, 0, /*behParam*/ 0x000C0000, /*beh*/ bhvFadingWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x0D, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x0D, /*destArea*/ 0x02, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0C, /*destLevel*/ 0x0D, /*destArea*/ 0x02, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x02, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x02, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x33, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x65, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_8), JUMP_LINK(script_func_local_2), JUMP_LINK(script_func_local_6), @@ -142,11 +142,11 @@ const LevelScript level_thi_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ 512, 1024, 2150, /*angle*/ 0, 180, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps60), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 3277, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x000B0000, /*beh*/ bhvWarps64), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 512, 1024, 2355, /*angle*/ 0, 0, 0, /*behParam*/ 0x050C0000, /*beh*/ bhvWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x0D, /*destArea*/ 0x03, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x0D, /*destArea*/ 0x03, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0C, /*destLevel*/ 0x0D, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x37, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x69, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x03, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x03, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_THI, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x37, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x69, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_3), TERRAIN(/*terrainData*/ thi_seg7_area_3_collision), MACRO_OBJECTS(/*objList*/ thi_seg7_area_3_macro_objs), diff --git a/levels/totwc/script.c b/levels/totwc/script.c index 5da8e32..b747eda 100644 --- a/levels/totwc/script.c +++ b/levels/totwc/script.c @@ -3,6 +3,7 @@ #include "behavior_data.h" #include "model_ids.h" #include "seq_ids.h" +#include "dialog_ids.h" #include "segment_symbols.h" #include "level_commands.h" @@ -42,15 +43,15 @@ const LevelScript level_totwc_entry[] = { AREA(/*index*/ 1, totwc_geo_000188), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -4095, 2935, 0, /*angle*/ 0, 90, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps78), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x1D, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF3, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x20, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x26, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x23, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_TOTWC, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF3, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x20, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x26, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x23, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_2), JUMP_LINK(script_func_local_1), TERRAIN(/*terrainData*/ totwc_seg7_collision), MACRO_OBJECTS(/*objList*/ totwc_seg7_macro_objs), - SHOW_DIALOG(/*index*/ 0x00, /*dialogid*/ 0x83), + SHOW_DIALOG(/*index*/ 0x00, DIALOG_131), SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0000, /*seq*/ SEQ_LEVEL_SLIDE), TERRAIN_TYPE(/*terrainType*/ TERRAIN_STONE), END_AREA(), diff --git a/levels/ttc/areas/1/1/model.inc.c b/levels/ttc/areas/1/1/model.inc.c index 6871e21..d538b8c 100644 --- a/levels/ttc/areas/1/1/model.inc.c +++ b/levels/ttc/areas/1/1/model.inc.c @@ -1,52 +1,32 @@ -// 0x07001000 - 0x07001008 -static const Ambient ttc_seg7_light_07001000 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; +// 0x07001000 - 0x07001018 +static const Lights1 ttc_seg7_lights_07001000 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07001008 - 0x07001018 -static const Light ttc_seg7_light_07001008 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07001018 - 0x07001030 +static const Lights1 ttc_seg7_lights_07001018 = gdSPDefLights1( + 0x19, 0x19, 0x19, + 0x66, 0x66, 0x66, 0x28, 0x28, 0x28 +); -// 0x07001018 - 0x07001020 -static const Ambient ttc_seg7_light_07001018 = { - {{0x19, 0x19, 0x19}, 0, {0x19, 0x19, 0x19}, 0} -}; +// 0x07001030 - 0x07001048 +static const Lights1 ttc_seg7_lights_07001030 = gdSPDefLights1( + 0x26, 0x26, 0x26, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x07001020 - 0x07001030 -static const Light ttc_seg7_light_07001020 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07001048 - 0x07001060 +static const Lights1 ttc_seg7_lights_07001048 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07001030 - 0x07001038 -static const Ambient ttc_seg7_light_07001030 = { - {{0x26, 0x26, 0x26}, 0, {0x26, 0x26, 0x26}, 0} -}; - -// 0x07001038 - 0x07001048 -static const Light ttc_seg7_light_07001038 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07001048 - 0x07001050 -static const Ambient ttc_seg7_light_07001048 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07001050 - 0x07001060 -static const Light ttc_seg7_light_07001050 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07001060 - 0x07001068 -static const Ambient ttc_seg7_light_07001060 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x07001068 - 0x07001078 -static const Light ttc_seg7_light_07001068 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07001060 - 0x07001078 +static const Lights1 ttc_seg7_lights_07001060 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x07001078 - 0x07001168 static const Vtx ttc_seg7_vertex_07001078[] = { @@ -2528,8 +2508,8 @@ static const Gfx ttc_seg7_dl_070089A8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ttc_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 64 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_07001008, 1), - gsSPLight(&ttc_seg7_light_07001000, 2), + gsSPLight(&ttc_seg7_lights_07001000.l, 1), + gsSPLight(&ttc_seg7_lights_07001000.a, 2), gsSPVertex(ttc_seg7_vertex_07001078, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -2622,12 +2602,12 @@ static const Gfx ttc_seg7_dl_07008DD0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, machine_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_07001020, 1), - gsSPLight(&ttc_seg7_light_07001018, 2), + gsSPLight(&ttc_seg7_lights_07001018.l, 1), + gsSPLight(&ttc_seg7_lights_07001018.a, 2), gsSPVertex(ttc_seg7_vertex_07001E38, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&ttc_seg7_light_07001008, 1), - gsSPLight(&ttc_seg7_light_07001000, 2), + gsSPLight(&ttc_seg7_lights_07001000.l, 1), + gsSPLight(&ttc_seg7_lights_07001000.a, 2), gsSPVertex(ttc_seg7_vertex_07001E78, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -2717,13 +2697,13 @@ static const Gfx ttc_seg7_dl_07009278[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, machine_09008400), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_07001038, 1), - gsSPLight(&ttc_seg7_light_07001030, 2), + gsSPLight(&ttc_seg7_lights_07001030.l, 1), + gsSPLight(&ttc_seg7_lights_07001030.a, 2), gsSPVertex(ttc_seg7_vertex_07002D08, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&ttc_seg7_light_07001008, 1), - gsSPLight(&ttc_seg7_light_07001000, 2), + gsSPLight(&ttc_seg7_lights_07001000.l, 1), + gsSPLight(&ttc_seg7_lights_07001000.a, 2), gsSPVertex(ttc_seg7_vertex_07002D88, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -3241,8 +3221,8 @@ static const Gfx ttc_seg7_dl_0700A700[] = { gsSPVertex(ttc_seg7_vertex_070082F8, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 0, 2, 6, 0x0), - gsSPLight(&ttc_seg7_light_07001050, 1), - gsSPLight(&ttc_seg7_light_07001048, 2), + gsSPLight(&ttc_seg7_lights_07001048.l, 1), + gsSPLight(&ttc_seg7_lights_07001048.a, 2), gsSPVertex(ttc_seg7_vertex_07008368, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -3272,8 +3252,8 @@ static const Gfx ttc_seg7_dl_0700A700[] = { // 0x0700ACD8 - 0x0700AD38 static const Gfx ttc_seg7_dl_0700ACD8[] = { - gsSPLight(&ttc_seg7_light_07001068, 1), - gsSPLight(&ttc_seg7_light_07001060, 2), + gsSPLight(&ttc_seg7_lights_07001060.l, 1), + gsSPLight(&ttc_seg7_lights_07001060.a, 2), gsSPVertex(ttc_seg7_vertex_070088A8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ttc/areas/1/2/model.inc.c b/levels/ttc/areas/1/2/model.inc.c index 95ba9bc..9cf6587 100644 --- a/levels/ttc/areas/1/2/model.inc.c +++ b/levels/ttc/areas/1/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700AED8 - 0x0700AEE0 -static const Ambient ttc_seg7_light_0700AED8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0700AEE0 - 0x0700AEF0 -static const Light ttc_seg7_light_0700AEE0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700AED8 - 0x0700AEF0 +static const Lights1 ttc_seg7_lights_0700AED8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700AEF0 - 0x0700AFE0 static const Vtx ttc_seg7_vertex_0700AEF0[] = { @@ -59,8 +55,8 @@ static const Gfx ttc_seg7_dl_0700B110[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, machine_09002800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_0700AEE0, 1), - gsSPLight(&ttc_seg7_light_0700AED8, 2), + gsSPLight(&ttc_seg7_lights_0700AED8.l, 1), + gsSPLight(&ttc_seg7_lights_0700AED8.a, 2), gsSPVertex(ttc_seg7_vertex_0700AEF0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ttc/areas/1/movtext.inc.c b/levels/ttc/areas/1/movtext.inc.c index 6fc5114..897a025 100644 --- a/levels/ttc/areas/1/movtext.inc.c +++ b/levels/ttc/areas/1/movtext.inc.c @@ -1,12 +1,8 @@ -// 0x07015F78 - 0x07015F80 -static const Ambient ttc_amb_light_surface_treadmill = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07015F80 - 0x07015F90 -static const Light ttc_diff_light_surface_treadmill = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07015F78 - 0x07015F90 +static const Lights1 ttc_lights_surface_treadmill = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07015F90 - 0x07016790 ALIGNED8 const u8 ttc_yellow_triangle[] = { @@ -23,8 +19,8 @@ const Gfx ttc_dl_surface_treadmill_begin[] = { gsSPFogPosition(900, 1000), gsSPSetGeometryMode(G_FOG), gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_PASS2), - gsSPLight(&ttc_diff_light_surface_treadmill, 1), - gsSPLight(&ttc_amb_light_surface_treadmill, 2), + gsSPLight(&ttc_lights_surface_treadmill.l, 1), + gsSPLight(&ttc_lights_surface_treadmill.a, 2), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD), diff --git a/levels/ttc/clock_hand/model.inc.c b/levels/ttc/clock_hand/model.inc.c index aaa1428..3e39064 100644 --- a/levels/ttc/clock_hand/model.inc.c +++ b/levels/ttc/clock_hand/model.inc.c @@ -1,42 +1,26 @@ -// 0x07011758 - 0x07011760 -static const Ambient ttc_seg7_light_07011758 = { - {{0x5a, 0x41, 0x23}, 0, {0x5a, 0x41, 0x23}, 0} -}; +// 0x07011758 - 0x07011770 +static const Lights1 ttc_seg7_lights_07011758 = gdSPDefLights1( + 0x5a, 0x41, 0x23, + 0xb4, 0x82, 0x46, 0x28, 0x28, 0x28 +); -// 0x07011760 - 0x07011770 -static const Light ttc_seg7_light_07011760 = { - {{0xb4, 0x82, 0x46}, 0, {0xb4, 0x82, 0x46}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07011770 - 0x07011788 +static const Lights1 ttc_seg7_lights_07011770 = gdSPDefLights1( + 0x7f, 0x66, 0x32, + 0xff, 0xcc, 0x65, 0x28, 0x28, 0x28 +); -// 0x07011770 - 0x07011778 -static const Ambient ttc_seg7_light_07011770 = { - {{0x7f, 0x66, 0x32}, 0, {0x7f, 0x66, 0x32}, 0} -}; +// 0x07011788 - 0x070117A0 +static const Lights1 ttc_seg7_lights_07011788 = gdSPDefLights1( + 0x49, 0x00, 0x00, + 0x93, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x07011778 - 0x07011788 -static const Light ttc_seg7_light_07011778 = { - {{0xff, 0xcc, 0x65}, 0, {0xff, 0xcc, 0x65}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07011788 - 0x07011790 -static const Ambient ttc_seg7_light_07011788 = { - {{0x49, 0x00, 0x00}, 0, {0x49, 0x00, 0x00}, 0} -}; - -// 0x07011790 - 0x070117A0 -static const Light ttc_seg7_light_07011790 = { - {{0x93, 0x00, 0x00}, 0, {0x93, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070117A0 - 0x070117A8 -static const Ambient ttc_seg7_light_070117A0 = { - {{0x7f, 0x00, 0x00}, 0, {0x7f, 0x00, 0x00}, 0} -}; - -// 0x070117A8 - 0x070117B8 -static const Light ttc_seg7_light_070117A8 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070117A0 - 0x070117B8 +static const Lights1 ttc_seg7_lights_070117A0 = gdSPDefLights1( + 0x7f, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x070117B8 - 0x07011838 static const Vtx ttc_seg7_vertex_070117B8[] = { @@ -95,26 +79,26 @@ static const Gfx ttc_seg7_dl_070119F8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, machine_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_07011760, 1), - gsSPLight(&ttc_seg7_light_07011758, 2), + gsSPLight(&ttc_seg7_lights_07011758.l, 1), + gsSPLight(&ttc_seg7_lights_07011758.a, 2), gsSPVertex(ttc_seg7_vertex_070117B8, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 1, 0x0, 4, 1, 3, 0x0), gsSP2Triangles( 0, 2, 6, 0x0, 0, 6, 7, 0x0), - gsSPLight(&ttc_seg7_light_07011778, 1), - gsSPLight(&ttc_seg7_light_07011770, 2), + gsSPLight(&ttc_seg7_lights_07011770.l, 1), + gsSPLight(&ttc_seg7_lights_07011770.a, 2), gsSPVertex(ttc_seg7_vertex_07011838, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&ttc_seg7_light_07011790, 1), - gsSPLight(&ttc_seg7_light_07011788, 2), + gsSPLight(&ttc_seg7_lights_07011788.l, 1), + gsSPLight(&ttc_seg7_lights_07011788.a, 2), gsSPVertex(ttc_seg7_vertex_070118B8, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 3, 2, 4, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 5, 6, 7, 0x0), gsSP2Triangles( 7, 6, 8, 0x0, 7, 8, 9, 0x0), - gsSPLight(&ttc_seg7_light_070117A8, 1), - gsSPLight(&ttc_seg7_light_070117A0, 2), + gsSPLight(&ttc_seg7_lights_070117A0.l, 1), + gsSPLight(&ttc_seg7_lights_070117A0.a, 2), gsSPVertex(ttc_seg7_vertex_07011958, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 0, 4, 1, 0x0, 5, 6, 7, 0x0), diff --git a/levels/ttc/elevator_platform/model.inc.c b/levels/ttc/elevator_platform/model.inc.c index 7c3544b..e03e462 100644 --- a/levels/ttc/elevator_platform/model.inc.c +++ b/levels/ttc/elevator_platform/model.inc.c @@ -1,12 +1,8 @@ -// 0x07011428 - 0x07011430 -static const Ambient ttc_seg7_light_07011428 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07011430 - 0x07011440 -static const Light ttc_seg7_light_07011430 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07011428 - 0x07011440 +static const Lights1 ttc_seg7_lights_07011428 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07011440 - 0x07011530 static const Vtx ttc_seg7_vertex_07011440[] = { @@ -51,8 +47,8 @@ static const Gfx ttc_seg7_dl_070115E0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, machine_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_07011430, 1), - gsSPLight(&ttc_seg7_light_07011428, 2), + gsSPLight(&ttc_seg7_lights_07011428.l, 1), + gsSPLight(&ttc_seg7_lights_07011428.a, 2), gsSPVertex(ttc_seg7_vertex_07011440, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ttc/large_treadmill/model.inc.c b/levels/ttc/large_treadmill/model.inc.c index fe33277..5cabf7d 100644 --- a/levels/ttc/large_treadmill/model.inc.c +++ b/levels/ttc/large_treadmill/model.inc.c @@ -1,22 +1,14 @@ -// 0x0700F830 - 0x0700F838 -static const Ambient ttc_seg7_light_0700F830 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700F830 - 0x0700F848 +static const Lights1 ttc_seg7_lights_0700F830 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700F838 - 0x0700F848 -static const Light ttc_seg7_light_0700F838 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700F848 - 0x0700F850 -static const Ambient ttc_seg7_light_0700F848 = { - {{0x46, 0x46, 0x46}, 0, {0x46, 0x46, 0x46}, 0} -}; - -// 0x0700F850 - 0x0700F860 -static const Light ttc_seg7_light_0700F850 = { - {{0x8c, 0x8c, 0x8c}, 0, {0x8c, 0x8c, 0x8c}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700F848 - 0x0700F860 +static const Lights1 ttc_seg7_lights_0700F848 = gdSPDefLights1( + 0x46, 0x46, 0x46, + 0x8c, 0x8c, 0x8c, 0x28, 0x28, 0x28 +); // 0x0700F860 - 0x0700F8E0 static const Vtx ttc_seg7_vertex_0700F860[] = { @@ -75,8 +67,8 @@ static const Gfx ttc_seg7_dl_0700FAA0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, machine_09005800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_0700F838, 1), - gsSPLight(&ttc_seg7_light_0700F830, 2), + gsSPLight(&ttc_seg7_lights_0700F830.l, 1), + gsSPLight(&ttc_seg7_lights_0700F830.a, 2), gsSPVertex(ttc_seg7_vertex_0700F860, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -102,8 +94,8 @@ static const Gfx ttc_seg7_dl_0700FAF8[] = { // 0x0700FB88 - 0x0700FBB8 static const Gfx ttc_seg7_dl_0700FB88[] = { - gsSPLight(&ttc_seg7_light_0700F850, 1), - gsSPLight(&ttc_seg7_light_0700F848, 2), + gsSPLight(&ttc_seg7_lights_0700F848.l, 1), + gsSPLight(&ttc_seg7_lights_0700F848.a, 2), gsSPVertex(ttc_seg7_vertex_0700FA60, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/ttc/pendulum/model.inc.c b/levels/ttc/pendulum/model.inc.c index 3a49cbf..8a80af7 100644 --- a/levels/ttc/pendulum/model.inc.c +++ b/levels/ttc/pendulum/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700F090 - 0x0700F098 -static const Ambient ttc_seg7_light_0700F090 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0700F098 - 0x0700F0A8 -static const Light ttc_seg7_light_0700F098 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700F090 - 0x0700F0A8 +static const Lights1 ttc_seg7_lights_0700F090 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700F0A8 - 0x0700F188 static const Vtx ttc_seg7_vertex_0700F0A8[] = { @@ -105,8 +101,8 @@ static const Gfx ttc_seg7_dl_0700F528[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ttc_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 64 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_0700F098, 1), - gsSPLight(&ttc_seg7_light_0700F090, 2), + gsSPLight(&ttc_seg7_lights_0700F090.l, 1), + gsSPLight(&ttc_seg7_lights_0700F090.a, 2), gsSPVertex(ttc_seg7_vertex_0700F0A8, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ttc/pit_block/model.inc.c b/levels/ttc/pit_block/model.inc.c index 7407439..ae65e37 100644 --- a/levels/ttc/pit_block/model.inc.c +++ b/levels/ttc/pit_block/model.inc.c @@ -1,12 +1,8 @@ -// 0x07010DE8 - 0x07010DF0 -static const Ambient ttc_seg7_light_07010DE8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07010DF0 - 0x07010E00 -static const Light ttc_seg7_light_07010DF0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07010DE8 - 0x07010E00 +static const Lights1 ttc_seg7_lights_07010DE8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07010E00 - 0x07010E80 static const Vtx ttc_seg7_vertex_07010E00[] = { @@ -45,8 +41,8 @@ static const Gfx ttc_seg7_dl_07010F80[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, machine_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_07010DF0, 1), - gsSPLight(&ttc_seg7_light_07010DE8, 2), + gsSPLight(&ttc_seg7_lights_07010DE8.l, 1), + gsSPLight(&ttc_seg7_lights_07010DE8.a, 2), gsSPVertex(ttc_seg7_vertex_07010E00, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/ttc/pit_block_2/model.inc.c b/levels/ttc/pit_block_2/model.inc.c index ce48174..175629d 100644 --- a/levels/ttc/pit_block_2/model.inc.c +++ b/levels/ttc/pit_block_2/model.inc.c @@ -1,12 +1,8 @@ -// 0x07011108 - 0x07011110 -static const Ambient ttc_seg7_light_07011108 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07011110 - 0x07011120 -static const Light ttc_seg7_light_07011110 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07011108 - 0x07011120 +static const Lights1 ttc_seg7_lights_07011108 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07011120 - 0x070111A0 static const Vtx ttc_seg7_vertex_07011120[] = { @@ -45,8 +41,8 @@ static const Gfx ttc_seg7_dl_070112A0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, machine_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_07011110, 1), - gsSPLight(&ttc_seg7_light_07011108, 2), + gsSPLight(&ttc_seg7_lights_07011108.l, 1), + gsSPLight(&ttc_seg7_lights_07011108.a, 2), gsSPVertex(ttc_seg7_vertex_07011120, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/ttc/push_block/model.inc.c b/levels/ttc/push_block/model.inc.c index d63daa0..a1530d3 100644 --- a/levels/ttc/push_block/model.inc.c +++ b/levels/ttc/push_block/model.inc.c @@ -1,12 +1,8 @@ -// 0x070100B0 - 0x070100B8 -static const Ambient ttc_seg7_light_070100B0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x070100B8 - 0x070100C8 -static const Light ttc_seg7_light_070100B8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070100B0 - 0x070100C8 +static const Lights1 ttc_seg7_lights_070100B0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070100C8 - 0x070101C8 static const Vtx ttc_seg7_vertex_070100C8[] = { @@ -41,8 +37,8 @@ static const Gfx ttc_seg7_dl_07010208[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, machine_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_070100B8, 1), - gsSPLight(&ttc_seg7_light_070100B0, 2), + gsSPLight(&ttc_seg7_lights_070100B0.l, 1), + gsSPLight(&ttc_seg7_lights_070100B0.a, 2), gsSPVertex(ttc_seg7_vertex_070100C8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ttc/rotating_cube/model.inc.c b/levels/ttc/rotating_cube/model.inc.c index 618a709..2de1c70 100644 --- a/levels/ttc/rotating_cube/model.inc.c +++ b/levels/ttc/rotating_cube/model.inc.c @@ -1,22 +1,14 @@ -// 0x0700E950 - 0x0700E958 -static const Ambient ttc_seg7_light_0700E950 = { - {{0x55, 0x55, 0x55}, 0, {0x55, 0x55, 0x55}, 0} -}; +// 0x0700E950 - 0x0700E968 +static const Lights1 ttc_seg7_lights_0700E950 = gdSPDefLights1( + 0x55, 0x55, 0x55, + 0xaa, 0xaa, 0xaa, 0x28, 0x28, 0x28 +); -// 0x0700E958 - 0x0700E968 -static const Light ttc_seg7_light_0700E958 = { - {{0xaa, 0xaa, 0xaa}, 0, {0xaa, 0xaa, 0xaa}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700E968 - 0x0700E970 -static const Ambient ttc_seg7_light_0700E968 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0700E970 - 0x0700E980 -static const Light ttc_seg7_light_0700E970 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700E968 - 0x0700E980 +static const Lights1 ttc_seg7_lights_0700E968 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700E980 - 0x0700EA20 static const Vtx ttc_seg7_vertex_0700E980[] = { @@ -71,13 +63,13 @@ static const Gfx ttc_seg7_dl_0700EBC0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, machine_09001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_0700E958, 1), - gsSPLight(&ttc_seg7_light_0700E950, 2), + gsSPLight(&ttc_seg7_lights_0700E950.l, 1), + gsSPLight(&ttc_seg7_lights_0700E950.a, 2), gsSPVertex(ttc_seg7_vertex_0700E980, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 8, 6, 9, 0x0), - gsSPLight(&ttc_seg7_light_0700E970, 1), - gsSPLight(&ttc_seg7_light_0700E968, 2), + gsSPLight(&ttc_seg7_lights_0700E968.l, 1), + gsSPLight(&ttc_seg7_lights_0700E968.a, 2), gsSPVertex(ttc_seg7_vertex_0700EA20, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 8, 6, 9, 0x0), diff --git a/levels/ttc/rotating_hexagon/model.inc.c b/levels/ttc/rotating_hexagon/model.inc.c index db399c2..d19a795 100644 --- a/levels/ttc/rotating_hexagon/model.inc.c +++ b/levels/ttc/rotating_hexagon/model.inc.c @@ -1,12 +1,8 @@ -// 0x07010380 - 0x07010388 -static const Ambient ttc_seg7_light_07010380 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07010388 - 0x07010398 -static const Light ttc_seg7_light_07010388 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07010380 - 0x07010398 +static const Lights1 ttc_seg7_lights_07010380 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07010398 - 0x07010488 static const Vtx ttc_seg7_vertex_07010398[] = { @@ -87,8 +83,8 @@ static const Gfx ttc_seg7_dl_07010738[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, machine_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_07010388, 1), - gsSPLight(&ttc_seg7_light_07010380, 2), + gsSPLight(&ttc_seg7_lights_07010380.l, 1), + gsSPLight(&ttc_seg7_lights_07010380.a, 2), gsSPVertex(ttc_seg7_vertex_07010398, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ttc/rotating_prism/model.inc.c b/levels/ttc/rotating_prism/model.inc.c index 4b571f0..fce629a 100644 --- a/levels/ttc/rotating_prism/model.inc.c +++ b/levels/ttc/rotating_prism/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700ED68 - 0x0700ED70 -static const Ambient ttc_seg7_light_0700ED68 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0700ED70 - 0x0700ED80 -static const Light ttc_seg7_light_0700ED70 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700ED68 - 0x0700ED80 +static const Lights1 ttc_seg7_lights_0700ED68 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700ED80 - 0x0700EE60 static const Vtx ttc_seg7_vertex_0700ED80[] = { @@ -47,8 +43,8 @@ static const Gfx ttc_seg7_dl_0700EF20[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, machine_09001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_0700ED70, 1), - gsSPLight(&ttc_seg7_light_0700ED68, 2), + gsSPLight(&ttc_seg7_lights_0700ED68.l, 1), + gsSPLight(&ttc_seg7_lights_0700ED68.a, 2), gsSPVertex(ttc_seg7_vertex_0700ED80, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 4, 7, 0x0, 8, 4, 9, 0x0), diff --git a/levels/ttc/rotating_triangle/model.inc.c b/levels/ttc/rotating_triangle/model.inc.c index 670905f..5ac22ec 100644 --- a/levels/ttc/rotating_triangle/model.inc.c +++ b/levels/ttc/rotating_triangle/model.inc.c @@ -1,12 +1,8 @@ -// 0x07010930 - 0x07010938 -static const Ambient ttc_seg7_light_07010930 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07010938 - 0x07010948 -static const Light ttc_seg7_light_07010938 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07010930 - 0x07010948 +static const Lights1 ttc_seg7_lights_07010930 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07010948 - 0x07010A28 static const Vtx ttc_seg7_vertex_07010948[] = { @@ -72,8 +68,8 @@ static const Gfx ttc_seg7_dl_07010BF8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, machine_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_07010938, 1), - gsSPLight(&ttc_seg7_light_07010930, 2), + gsSPLight(&ttc_seg7_lights_07010930.l, 1), + gsSPLight(&ttc_seg7_lights_07010930.a, 2), gsSPVertex(ttc_seg7_vertex_07010948, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 3, 5, 7, 0x0), diff --git a/levels/ttc/script.c b/levels/ttc/script.c index 90fea7d..18bb3b3 100644 --- a/levels/ttc/script.c +++ b/levels/ttc/script.c @@ -61,9 +61,9 @@ const LevelScript level_ttc_entry[] = { AREA(/*index*/ 1, ttc_geo_0003B8), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1417, -3822, -548, /*angle*/ 0, 316, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps74), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x0E, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_TTC, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), TERRAIN(/*terrainData*/ ttc_seg7_collision_level), diff --git a/levels/ttc/small_treadmill/model.inc.c b/levels/ttc/small_treadmill/model.inc.c index 053c1b9..8eb61c4 100644 --- a/levels/ttc/small_treadmill/model.inc.c +++ b/levels/ttc/small_treadmill/model.inc.c @@ -1,22 +1,14 @@ -// 0x0700FC80 - 0x0700FC88 -static const Ambient ttc_seg7_light_0700FC80 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700FC80 - 0x0700FC98 +static const Lights1 ttc_seg7_lights_0700FC80 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700FC88 - 0x0700FC98 -static const Light ttc_seg7_light_0700FC88 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700FC98 - 0x0700FCA0 -static const Ambient ttc_seg7_light_0700FC98 = { - {{0x46, 0x46, 0x46}, 0, {0x46, 0x46, 0x46}, 0} -}; - -// 0x0700FCA0 - 0x0700FCB0 -static const Light ttc_seg7_light_0700FCA0 = { - {{0x8c, 0x8c, 0x8c}, 0, {0x8c, 0x8c, 0x8c}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700FC98 - 0x0700FCB0 +static const Lights1 ttc_seg7_lights_0700FC98 = gdSPDefLights1( + 0x46, 0x46, 0x46, + 0x8c, 0x8c, 0x8c, 0x28, 0x28, 0x28 +); // 0x0700FCB0 - 0x0700FD30 static const Vtx ttc_seg7_vertex_0700FCB0[] = { @@ -73,8 +65,8 @@ static const Gfx ttc_seg7_dl_0700FED0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, machine_09005800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_0700FC88, 1), - gsSPLight(&ttc_seg7_light_0700FC80, 2), + gsSPLight(&ttc_seg7_lights_0700FC80.l, 1), + gsSPLight(&ttc_seg7_lights_0700FC80.a, 2), gsSPVertex(ttc_seg7_vertex_0700FCB0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -100,8 +92,8 @@ static const Gfx ttc_seg7_dl_0700FF28[] = { // 0x0700FFB8 - 0x0700FFE8 static const Gfx ttc_seg7_dl_0700FFB8[] = { - gsSPLight(&ttc_seg7_light_0700FCA0, 1), - gsSPLight(&ttc_seg7_light_0700FC98, 2), + gsSPLight(&ttc_seg7_lights_0700FC98.l, 1), + gsSPLight(&ttc_seg7_lights_0700FC98.a, 2), gsSPVertex(ttc_seg7_vertex_0700FE90, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/ttc/spinner/model.inc.c b/levels/ttc/spinner/model.inc.c index bc5ee57..6d11606 100644 --- a/levels/ttc/spinner/model.inc.c +++ b/levels/ttc/spinner/model.inc.c @@ -1,22 +1,14 @@ -// 0x07011BE0 - 0x07011BE8 -static const Ambient ttc_seg7_light_07011BE0 = { - {{0x46, 0x46, 0x46}, 0, {0x46, 0x46, 0x46}, 0} -}; +// 0x07011BE0 - 0x07011BF8 +static const Lights1 ttc_seg7_lights_07011BE0 = gdSPDefLights1( + 0x46, 0x46, 0x46, + 0x8c, 0x8c, 0x8c, 0x28, 0x28, 0x28 +); -// 0x07011BE8 - 0x07011BF8 -static const Light ttc_seg7_light_07011BE8 = { - {{0x8c, 0x8c, 0x8c}, 0, {0x8c, 0x8c, 0x8c}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07011BF8 - 0x07011C00 -static const Ambient ttc_seg7_light_07011BF8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07011C00 - 0x07011C10 -static const Light ttc_seg7_light_07011C00 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07011BF8 - 0x07011C10 +static const Lights1 ttc_seg7_lights_07011BF8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07011C10 - 0x07011D10 static const Vtx ttc_seg7_vertex_07011C10[] = { @@ -78,8 +70,8 @@ static const Gfx ttc_seg7_dl_07011EC0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, machine_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttc_seg7_light_07011BE8, 1), - gsSPLight(&ttc_seg7_light_07011BE0, 2), + gsSPLight(&ttc_seg7_lights_07011BE0.l, 1), + gsSPLight(&ttc_seg7_lights_07011BE0.a, 2), gsSPVertex(ttc_seg7_vertex_07011C10, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 2, 6, 3, 0x0), @@ -95,8 +87,8 @@ static const Gfx ttc_seg7_dl_07011EC0[] = { gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), gsSP2Triangles( 8, 7, 4, 0x0, 8, 4, 9, 0x0), gsSP2Triangles( 8, 10, 3, 0x0, 8, 3, 2, 0x0), - gsSPLight(&ttc_seg7_light_07011C00, 1), - gsSPLight(&ttc_seg7_light_07011BF8, 2), + gsSPLight(&ttc_seg7_lights_07011BF8.l, 1), + gsSPLight(&ttc_seg7_lights_07011BF8.a, 2), gsSPVertex(ttc_seg7_vertex_07011DC0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ttm/areas/1/1/model.inc.c b/levels/ttm/areas/1/1/model.inc.c index 4ca44f3..cd150d7 100644 --- a/levels/ttm/areas/1/1/model.inc.c +++ b/levels/ttm/areas/1/1/model.inc.c @@ -1,42 +1,26 @@ -// 0x07005000 - 0x07005008 -static const Ambient ttm_seg7_light_07005000 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x07005000 - 0x07005018 +static const Lights1 ttm_seg7_lights_07005000 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07005008 - 0x07005018 -static const Light ttm_seg7_light_07005008 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07005018 - 0x07005030 +static const Lights1 ttm_seg7_lights_07005018 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x07005018 - 0x07005020 -static const Ambient ttm_seg7_light_07005018 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; +// 0x07005030 - 0x07005048 +static const Lights1 ttm_seg7_lights_07005030 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); -// 0x07005020 - 0x07005030 -static const Light ttm_seg7_light_07005020 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07005030 - 0x07005038 -static const Ambient ttm_seg7_light_07005030 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x07005038 - 0x07005048 -static const Light ttm_seg7_light_07005038 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07005048 - 0x07005050 -static const Ambient ttm_seg7_light_07005048 = { - {{0x37, 0x29, 0x22}, 0, {0x37, 0x29, 0x22}, 0} -}; - -// 0x07005050 - 0x07005060 -static const Light ttm_seg7_light_07005050 = { - {{0x6e, 0x52, 0x44}, 0, {0x6e, 0x52, 0x44}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07005048 - 0x07005060 +static const Lights1 ttm_seg7_lights_07005048 = gdSPDefLights1( + 0x37, 0x29, 0x22, + 0x6e, 0x52, 0x44, 0x28, 0x28, 0x28 +); // 0x07005060 - 0x07005160 static const Vtx ttm_seg7_vertex_07005060[] = { @@ -1362,8 +1346,8 @@ static const Gfx ttm_seg7_dl_070090D0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_07005008, 1), - gsSPLight(&ttm_seg7_light_07005000, 2), + gsSPLight(&ttm_seg7_lights_07005000.l, 1), + gsSPLight(&ttm_seg7_lights_07005000.a, 2), gsSPVertex(ttm_seg7_vertex_07005060, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1456,8 +1440,8 @@ static const Gfx ttm_seg7_dl_070090D0[] = { gsSPVertex(ttm_seg7_vertex_07006430, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 6, 7, 8, 0x0), - gsSPLight(&ttm_seg7_light_07005020, 1), - gsSPLight(&ttm_seg7_light_07005018, 2), + gsSPLight(&ttm_seg7_lights_07005018.l, 1), + gsSPLight(&ttm_seg7_lights_07005018.a, 2), gsSPVertex(ttm_seg7_vertex_070064C0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 2, 4, 3, 0x0, 5, 0, 3, 0x0), @@ -1521,8 +1505,8 @@ static const Gfx ttm_seg7_dl_070090D0[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0), - gsSPLight(&ttm_seg7_light_07005038, 1), - gsSPLight(&ttm_seg7_light_07005030, 2), + gsSPLight(&ttm_seg7_lights_07005030.l, 1), + gsSPLight(&ttm_seg7_lights_07005030.a, 2), gsSPVertex(ttm_seg7_vertex_07007200, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 3, 6, 0x0, 3, 7, 6, 0x0), @@ -1597,8 +1581,8 @@ static const Gfx ttm_seg7_dl_07009C98[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_07005008, 1), - gsSPLight(&ttm_seg7_light_07005000, 2), + gsSPLight(&ttm_seg7_lights_07005000.l, 1), + gsSPLight(&ttm_seg7_lights_07005000.a, 2), gsSPVertex(ttm_seg7_vertex_07007FC0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSPEndDisplayList(), @@ -1647,8 +1631,8 @@ static const Gfx ttm_seg7_dl_07009CE0[] = { gsSP1Triangle(12, 13, 14, 0x0), gsSPVertex(ttm_seg7_vertex_07008880, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&ttm_seg7_light_07005020, 1), - gsSPLight(&ttm_seg7_light_07005018, 2), + gsSPLight(&ttm_seg7_lights_07005018.l, 1), + gsSPLight(&ttm_seg7_lights_07005018.a, 2), gsSPVertex(ttm_seg7_vertex_070088E0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -1658,8 +1642,8 @@ static const Gfx ttm_seg7_dl_07009CE0[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), gsSP1Triangle( 0, 10, 1, 0x0), - gsSPLight(&ttm_seg7_light_07005038, 1), - gsSPLight(&ttm_seg7_light_07005030, 2), + gsSPLight(&ttm_seg7_lights_07005030.l, 1), + gsSPLight(&ttm_seg7_lights_07005030.a, 2), gsSPVertex(ttm_seg7_vertex_07008A80, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -1686,8 +1670,8 @@ static const Gfx ttm_seg7_dl_0700A038[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ttm_seg7_texture_07002800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_07005008, 1), - gsSPLight(&ttm_seg7_light_07005000, 2), + gsSPLight(&ttm_seg7_lights_07005000.l, 1), + gsSPLight(&ttm_seg7_lights_07005000.a, 2), gsSPVertex(ttm_seg7_vertex_07008E60, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1697,8 +1681,8 @@ static const Gfx ttm_seg7_dl_0700A038[] = { // 0x0700A098 - 0x0700A120 static const Gfx ttm_seg7_dl_0700A098[] = { - gsSPLight(&ttm_seg7_light_07005050, 1), - gsSPLight(&ttm_seg7_light_07005048, 2), + gsSPLight(&ttm_seg7_lights_07005048.l, 1), + gsSPLight(&ttm_seg7_lights_07005048.a, 2), gsSPVertex(ttm_seg7_vertex_07008F30, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), diff --git a/levels/ttm/areas/1/10/model.inc.c b/levels/ttm/areas/1/10/model.inc.c index 0d2e5e8..056d924 100644 --- a/levels/ttm/areas/1/10/model.inc.c +++ b/levels/ttm/areas/1/10/model.inc.c @@ -1,32 +1,20 @@ -// 0x0700C488 - 0x0700C490 -static const Ambient ttm_seg7_light_0700C488 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700C488 - 0x0700C4A0 +static const Lights1 ttm_seg7_lights_0700C488 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700C490 - 0x0700C4A0 -static const Light ttm_seg7_light_0700C490 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700C4A0 - 0x0700C4B8 +static const Lights1 ttm_seg7_lights_0700C4A0 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x0700C4A0 - 0x0700C4A8 -static const Ambient ttm_seg7_light_0700C4A0 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0700C4A8 - 0x0700C4B8 -static const Light ttm_seg7_light_0700C4A8 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700C4B8 - 0x0700C4C0 -static const Ambient ttm_seg7_light_0700C4B8 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x0700C4C0 - 0x0700C4D0 -static const Light ttm_seg7_light_0700C4C0 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700C4B8 - 0x0700C4D0 +static const Lights1 ttm_seg7_lights_0700C4B8 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); // 0x0700C4D0 - 0x0700C5D0 static const Vtx ttm_seg7_vertex_0700C4D0[] = { @@ -136,21 +124,21 @@ static const Gfx ttm_seg7_dl_0700C900[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700C490, 1), - gsSPLight(&ttm_seg7_light_0700C488, 2), + gsSPLight(&ttm_seg7_lights_0700C488.l, 1), + gsSPLight(&ttm_seg7_lights_0700C488.a, 2), gsSPVertex(ttm_seg7_vertex_0700C4D0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0), gsSPVertex(ttm_seg7_vertex_0700C5D0, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), - gsSPLight(&ttm_seg7_light_0700C4A8, 1), - gsSPLight(&ttm_seg7_light_0700C4A0, 2), + gsSPLight(&ttm_seg7_lights_0700C4A0.l, 1), + gsSPLight(&ttm_seg7_lights_0700C4A0.a, 2), gsSPVertex(ttm_seg7_vertex_0700C600, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 6, 7, 8, 0x0), - gsSPLight(&ttm_seg7_light_0700C4C0, 1), - gsSPLight(&ttm_seg7_light_0700C4B8, 2), + gsSPLight(&ttm_seg7_lights_0700C4B8.l, 1), + gsSPLight(&ttm_seg7_lights_0700C4B8.a, 2), gsSPVertex(ttm_seg7_vertex_0700C690, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -165,13 +153,13 @@ static const Gfx ttm_seg7_dl_0700C9F8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700C490, 1), - gsSPLight(&ttm_seg7_light_0700C488, 2), + gsSPLight(&ttm_seg7_lights_0700C488.l, 1), + gsSPLight(&ttm_seg7_lights_0700C488.a, 2), gsSPVertex(ttm_seg7_vertex_0700C7B0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 5, 3, 0x0, 0, 2, 5, 0x0), - gsSPLight(&ttm_seg7_light_0700C4C0, 1), - gsSPLight(&ttm_seg7_light_0700C4B8, 2), + gsSPLight(&ttm_seg7_lights_0700C4B8.l, 1), + gsSPLight(&ttm_seg7_lights_0700C4B8.a, 2), gsSPVertex(ttm_seg7_vertex_0700C810, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -185,8 +173,8 @@ static const Gfx ttm_seg7_dl_0700CA78[] = { gsSPVertex(ttm_seg7_vertex_0700C850, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 3, 6, 4, 0x0), - gsSPLight(&ttm_seg7_light_0700C490, 1), - gsSPLight(&ttm_seg7_light_0700C488, 2), + gsSPLight(&ttm_seg7_lights_0700C488.l, 1), + gsSPLight(&ttm_seg7_lights_0700C488.a, 2), gsSPVertex(ttm_seg7_vertex_0700C8C0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/ttm/areas/1/11/model.inc.c b/levels/ttm/areas/1/11/model.inc.c index 982fb13..38aff45 100644 --- a/levels/ttm/areas/1/11/model.inc.c +++ b/levels/ttm/areas/1/11/model.inc.c @@ -1,22 +1,14 @@ -// 0x0700CB60 - 0x0700CB68 -static const Ambient ttm_seg7_light_0700CB60 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700CB60 - 0x0700CB78 +static const Lights1 ttm_seg7_lights_0700CB60 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700CB68 - 0x0700CB78 -static const Light ttm_seg7_light_0700CB68 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700CB78 - 0x0700CB80 -static const Ambient ttm_seg7_light_0700CB78 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x0700CB80 - 0x0700CB90 -static const Light ttm_seg7_light_0700CB80 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700CB78 - 0x0700CB90 +static const Lights1 ttm_seg7_lights_0700CB78 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); // 0x0700CB90 - 0x0700CBF0 static const Vtx ttm_seg7_vertex_0700CB90[] = { @@ -48,12 +40,12 @@ static const Gfx ttm_seg7_dl_0700CC60[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700CB68, 1), - gsSPLight(&ttm_seg7_light_0700CB60, 2), + gsSPLight(&ttm_seg7_lights_0700CB60.l, 1), + gsSPLight(&ttm_seg7_lights_0700CB60.a, 2), gsSPVertex(ttm_seg7_vertex_0700CB90, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&ttm_seg7_light_0700CB80, 1), - gsSPLight(&ttm_seg7_light_0700CB78, 2), + gsSPLight(&ttm_seg7_lights_0700CB78.l, 1), + gsSPLight(&ttm_seg7_lights_0700CB78.a, 2), gsSPVertex(ttm_seg7_vertex_0700CBF0, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), gsSPEndDisplayList(), @@ -64,8 +56,8 @@ static const Gfx ttm_seg7_dl_0700CCC8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700CB68, 1), - gsSPLight(&ttm_seg7_light_0700CB60, 2), + gsSPLight(&ttm_seg7_lights_0700CB60.l, 1), + gsSPLight(&ttm_seg7_lights_0700CB60.a, 2), gsSPVertex(ttm_seg7_vertex_0700CC20, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/ttm/areas/1/12/model.inc.c b/levels/ttm/areas/1/12/model.inc.c index 89fe370..a50ae24 100644 --- a/levels/ttm/areas/1/12/model.inc.c +++ b/levels/ttm/areas/1/12/model.inc.c @@ -1,32 +1,20 @@ -// 0x0700CD88 - 0x0700CD90 -static const Ambient ttm_seg7_light_0700CD88 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700CD88 - 0x0700CDA0 +static const Lights1 ttm_seg7_lights_0700CD88 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700CD90 - 0x0700CDA0 -static const Light ttm_seg7_light_0700CD90 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700CDA0 - 0x0700CDB8 +static const Lights1 ttm_seg7_lights_0700CDA0 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x0700CDA0 - 0x0700CDA8 -static const Ambient ttm_seg7_light_0700CDA0 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0700CDA8 - 0x0700CDB8 -static const Light ttm_seg7_light_0700CDA8 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700CDB8 - 0x0700CDC0 -static const Ambient ttm_seg7_light_0700CDB8 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x0700CDC0 - 0x0700CDD0 -static const Light ttm_seg7_light_0700CDC0 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700CDB8 - 0x0700CDD0 +static const Lights1 ttm_seg7_lights_0700CDB8 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); // 0x0700CDD0 - 0x0700CEC0 static const Vtx ttm_seg7_vertex_0700CDD0[] = { @@ -97,19 +85,19 @@ static const Gfx ttm_seg7_dl_0700D090[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700CD90, 1), - gsSPLight(&ttm_seg7_light_0700CD88, 2), + gsSPLight(&ttm_seg7_lights_0700CD88.l, 1), + gsSPLight(&ttm_seg7_lights_0700CD88.a, 2), gsSPVertex(ttm_seg7_vertex_0700CDD0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 9, 10, 7, 0x0, 11, 12, 13, 0x0), gsSP1Triangle( 0, 2, 14, 0x0), - gsSPLight(&ttm_seg7_light_0700CDA8, 1), - gsSPLight(&ttm_seg7_light_0700CDA0, 2), + gsSPLight(&ttm_seg7_lights_0700CDA0.l, 1), + gsSPLight(&ttm_seg7_lights_0700CDA0.a, 2), gsSPVertex(ttm_seg7_vertex_0700CEC0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), - gsSPLight(&ttm_seg7_light_0700CDC0, 1), - gsSPLight(&ttm_seg7_light_0700CDB8, 2), + gsSPLight(&ttm_seg7_lights_0700CDB8.l, 1), + gsSPLight(&ttm_seg7_lights_0700CDB8.a, 2), gsSPVertex(ttm_seg7_vertex_0700CF00, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 7, 8, 9, 0x0), @@ -124,8 +112,8 @@ static const Gfx ttm_seg7_dl_0700D180[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700CD90, 1), - gsSPLight(&ttm_seg7_light_0700CD88, 2), + gsSPLight(&ttm_seg7_lights_0700CD88.l, 1), + gsSPLight(&ttm_seg7_lights_0700CD88.a, 2), gsSPVertex(ttm_seg7_vertex_0700D030, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), gsSP2Triangles( 2, 1, 4, 0x0, 2, 5, 0, 0x0), diff --git a/levels/ttm/areas/1/13/model.inc.c b/levels/ttm/areas/1/13/model.inc.c index 22a6b4a..d8880d2 100644 --- a/levels/ttm/areas/1/13/model.inc.c +++ b/levels/ttm/areas/1/13/model.inc.c @@ -1,32 +1,20 @@ -// 0x0700D250 - 0x0700D258 -static const Ambient ttm_seg7_light_0700D250 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700D250 - 0x0700D268 +static const Lights1 ttm_seg7_lights_0700D250 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700D258 - 0x0700D268 -static const Light ttm_seg7_light_0700D258 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700D268 - 0x0700D280 +static const Lights1 ttm_seg7_lights_0700D268 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x0700D268 - 0x0700D270 -static const Ambient ttm_seg7_light_0700D268 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0700D270 - 0x0700D280 -static const Light ttm_seg7_light_0700D270 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700D280 - 0x0700D288 -static const Ambient ttm_seg7_light_0700D280 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x0700D288 - 0x0700D298 -static const Light ttm_seg7_light_0700D288 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700D280 - 0x0700D298 +static const Lights1 ttm_seg7_lights_0700D280 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); // 0x0700D298 - 0x0700D398 static const Vtx ttm_seg7_vertex_0700D298[] = { @@ -96,8 +84,8 @@ static const Gfx ttm_seg7_dl_0700D548[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700D258, 1), - gsSPLight(&ttm_seg7_light_0700D250, 2), + gsSPLight(&ttm_seg7_lights_0700D250.l, 1), + gsSPLight(&ttm_seg7_lights_0700D250.a, 2), gsSPVertex(ttm_seg7_vertex_0700D298, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -105,13 +93,13 @@ static const Gfx ttm_seg7_dl_0700D548[] = { gsSPVertex(ttm_seg7_vertex_0700D398, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 3, 5, 9, 0x0), - gsSPLight(&ttm_seg7_light_0700D270, 1), - gsSPLight(&ttm_seg7_light_0700D268, 2), + gsSPLight(&ttm_seg7_lights_0700D268.l, 1), + gsSPLight(&ttm_seg7_lights_0700D268.a, 2), gsSPVertex(ttm_seg7_vertex_0700D438, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 1, 4, 3, 0x0, 0, 2, 5, 0x0), - gsSPLight(&ttm_seg7_light_0700D288, 1), - gsSPLight(&ttm_seg7_light_0700D280, 2), + gsSPLight(&ttm_seg7_lights_0700D280.l, 1), + gsSPLight(&ttm_seg7_lights_0700D280.a, 2), gsSPVertex(ttm_seg7_vertex_0700D498, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 0, 2, 6, 0x0), @@ -123,8 +111,8 @@ static const Gfx ttm_seg7_dl_0700D640[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700D258, 1), - gsSPLight(&ttm_seg7_light_0700D250, 2), + gsSPLight(&ttm_seg7_lights_0700D250.l, 1), + gsSPLight(&ttm_seg7_lights_0700D250.a, 2), gsSPVertex(ttm_seg7_vertex_0700D508, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/ttm/areas/1/14/model.inc.c b/levels/ttm/areas/1/14/model.inc.c index c94211a..641d772 100644 --- a/levels/ttm/areas/1/14/model.inc.c +++ b/levels/ttm/areas/1/14/model.inc.c @@ -1,32 +1,20 @@ -// 0x0700D700 - 0x0700D708 -static const Ambient ttm_seg7_light_0700D700 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700D700 - 0x0700D718 +static const Lights1 ttm_seg7_lights_0700D700 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700D708 - 0x0700D718 -static const Light ttm_seg7_light_0700D708 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700D718 - 0x0700D730 +static const Lights1 ttm_seg7_lights_0700D718 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x0700D718 - 0x0700D720 -static const Ambient ttm_seg7_light_0700D718 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0700D720 - 0x0700D730 -static const Light ttm_seg7_light_0700D720 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700D730 - 0x0700D738 -static const Ambient ttm_seg7_light_0700D730 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x0700D738 - 0x0700D748 -static const Light ttm_seg7_light_0700D738 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700D730 - 0x0700D748 +static const Lights1 ttm_seg7_lights_0700D730 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); // 0x0700D748 - 0x0700D848 static const Vtx ttm_seg7_vertex_0700D748[] = { @@ -172,8 +160,8 @@ static const Gfx ttm_seg7_dl_0700DDB8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700D708, 1), - gsSPLight(&ttm_seg7_light_0700D700, 2), + gsSPLight(&ttm_seg7_lights_0700D700.l, 1), + gsSPLight(&ttm_seg7_lights_0700D700.a, 2), gsSPVertex(ttm_seg7_vertex_0700D748, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 0, 6, 1, 0x0, 7, 8, 9, 0x0), @@ -185,8 +173,8 @@ static const Gfx ttm_seg7_dl_0700DDB8[] = { gsSPVertex(ttm_seg7_vertex_0700D938, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), - gsSPLight(&ttm_seg7_light_0700D720, 1), - gsSPLight(&ttm_seg7_light_0700D718, 2), + gsSPLight(&ttm_seg7_lights_0700D718.l, 1), + gsSPLight(&ttm_seg7_lights_0700D718.a, 2), gsSPVertex(ttm_seg7_vertex_0700D9F8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -201,12 +189,12 @@ static const Gfx ttm_seg7_dl_0700DDB8[] = { gsSP1Triangle(12, 13, 14, 0x0), gsSPVertex(ttm_seg7_vertex_0700DCC8, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&ttm_seg7_light_0700D738, 1), - gsSPLight(&ttm_seg7_light_0700D730, 2), + gsSPLight(&ttm_seg7_lights_0700D730.l, 1), + gsSPLight(&ttm_seg7_lights_0700D730.a, 2), gsSPVertex(ttm_seg7_vertex_0700DD28, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&ttm_seg7_light_0700D708, 1), - gsSPLight(&ttm_seg7_light_0700D700, 2), + gsSPLight(&ttm_seg7_lights_0700D700.l, 1), + gsSPLight(&ttm_seg7_lights_0700D700.a, 2), gsSPVertex(ttm_seg7_vertex_0700DD88, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), gsSPEndDisplayList(), diff --git a/levels/ttm/areas/1/15/model.inc.c b/levels/ttm/areas/1/15/model.inc.c index f345f6f..af98a8a 100644 --- a/levels/ttm/areas/1/15/model.inc.c +++ b/levels/ttm/areas/1/15/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700DFE8 - 0x0700DFF0 -static const Ambient ttm_seg7_light_0700DFE8 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0700DFF0 - 0x0700E000 -static const Light ttm_seg7_light_0700DFF0 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700DFE8 - 0x0700E000 +static const Lights1 ttm_seg7_lights_0700DFE8 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); // 0x0700E000 - 0x0700E100 static const Vtx ttm_seg7_vertex_0700E000[] = { @@ -61,8 +57,8 @@ static const Gfx ttm_seg7_dl_0700E240[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700DFF0, 1), - gsSPLight(&ttm_seg7_light_0700DFE8, 2), + gsSPLight(&ttm_seg7_lights_0700DFE8.l, 1), + gsSPLight(&ttm_seg7_lights_0700DFE8.a, 2), gsSPVertex(ttm_seg7_vertex_0700E000, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ttm/areas/1/16/1.inc.c b/levels/ttm/areas/1/16/1.inc.c index 2353a27..2cfaaf9 100644 --- a/levels/ttm/areas/1/16/1.inc.c +++ b/levels/ttm/areas/1/16/1.inc.c @@ -1,32 +1,20 @@ -// 0x0700E378 - 0x0700E380 -static const Ambient ttm_seg7_light_0700E378 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700E378 - 0x0700E390 +static const Lights1 ttm_seg7_lights_0700E378 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700E380 - 0x0700E390 -static const Light ttm_seg7_light_0700E380 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700E390 - 0x0700E3A8 +static const Lights1 ttm_seg7_lights_0700E390 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); -// 0x0700E390 - 0x0700E398 -static const Ambient ttm_seg7_light_0700E390 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x0700E398 - 0x0700E3A8 -static const Light ttm_seg7_light_0700E398 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700E3A8 - 0x0700E3B0 -static const Ambient ttm_seg7_light_0700E3A8 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x0700E3B0 - 0x0700E3C0 -static const Light ttm_seg7_light_0700E3B0 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700E3A8 - 0x0700E3C0 +static const Lights1 ttm_seg7_lights_0700E3A8 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x0700E3C0 - 0x0700E4B0 static const Vtx ttm_seg7_vertex_0700E3C0[] = { @@ -150,8 +138,8 @@ static const Gfx ttm_seg7_dl_0700E910[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700E380, 1), - gsSPLight(&ttm_seg7_light_0700E378, 2), + gsSPLight(&ttm_seg7_lights_0700E378.l, 1), + gsSPLight(&ttm_seg7_lights_0700E378.a, 2), gsSPVertex(ttm_seg7_vertex_0700E3C0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -164,12 +152,12 @@ static const Gfx ttm_seg7_dl_0700E910[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), gsSP1Triangle(12, 13, 14, 0x0), - gsSPLight(&ttm_seg7_light_0700E398, 1), - gsSPLight(&ttm_seg7_light_0700E390, 2), + gsSPLight(&ttm_seg7_lights_0700E390.l, 1), + gsSPLight(&ttm_seg7_lights_0700E390.a, 2), gsSPVertex(ttm_seg7_vertex_0700E680, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&ttm_seg7_light_0700E380, 1), - gsSPLight(&ttm_seg7_light_0700E378, 2), + gsSPLight(&ttm_seg7_lights_0700E378.l, 1), + gsSPLight(&ttm_seg7_lights_0700E378.a, 2), gsSPVertex(ttm_seg7_vertex_0700E6E0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -187,8 +175,8 @@ static const Gfx ttm_seg7_dl_0700EA28[] = { gsSPVertex(ttm_seg7_vertex_0700E820, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 6, 7, 8, 0x0), - gsSPLight(&ttm_seg7_light_0700E3B0, 1), - gsSPLight(&ttm_seg7_light_0700E3A8, 2), + gsSPLight(&ttm_seg7_lights_0700E3A8.l, 1), + gsSPLight(&ttm_seg7_lights_0700E3A8.a, 2), gsSPVertex(ttm_seg7_vertex_0700E8B0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), diff --git a/levels/ttm/areas/1/17/2.inc.c b/levels/ttm/areas/1/17/2.inc.c index a7d90cc..a2a2630 100644 --- a/levels/ttm/areas/1/17/2.inc.c +++ b/levels/ttm/areas/1/17/2.inc.c @@ -1,12 +1,8 @@ -// 0x0700F300 - 0x0700F308 -static const Ambient ttm_seg7_light_0700F300 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0700F308 - 0x0700F318 -static const Light ttm_seg7_light_0700F308 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700F300 - 0x0700F318 +static const Lights1 ttm_seg7_lights_0700F300 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700F318 - 0x0700F418 static const Vtx ttm_seg7_vertex_0700F318[] = { @@ -121,8 +117,8 @@ static const Gfx ttm_seg7_dl_0700F858[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ttm_seg7_texture_07001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700F308, 1), - gsSPLight(&ttm_seg7_light_0700F300, 2), + gsSPLight(&ttm_seg7_lights_0700F300.l, 1), + gsSPLight(&ttm_seg7_lights_0700F300.a, 2), gsSPVertex(ttm_seg7_vertex_0700F318, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ttm/areas/1/18/1.inc.c b/levels/ttm/areas/1/18/1.inc.c index b0ebf0c..f369470 100644 --- a/levels/ttm/areas/1/18/1.inc.c +++ b/levels/ttm/areas/1/18/1.inc.c @@ -1,32 +1,20 @@ -// 0x0700FA90 - 0x0700FA98 -static const Ambient ttm_seg7_light_0700FA90 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700FA90 - 0x0700FAA8 +static const Lights1 ttm_seg7_lights_0700FA90 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700FA98 - 0x0700FAA8 -static const Light ttm_seg7_light_0700FA98 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700FAA8 - 0x0700FAC0 +static const Lights1 ttm_seg7_lights_0700FAA8 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x0700FAA8 - 0x0700FAB0 -static const Ambient ttm_seg7_light_0700FAA8 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0700FAB0 - 0x0700FAC0 -static const Light ttm_seg7_light_0700FAB0 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700FAC0 - 0x0700FAC8 -static const Ambient ttm_seg7_light_0700FAC0 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x0700FAC8 - 0x0700FAD8 -static const Light ttm_seg7_light_0700FAC8 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700FAC0 - 0x0700FAD8 +static const Lights1 ttm_seg7_lights_0700FAC0 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); // 0x0700FAD8 - 0x0700FBB8 static const Vtx ttm_seg7_vertex_0700FAD8[] = { @@ -271,8 +259,8 @@ static const Gfx ttm_seg7_dl_07010638[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700FA98, 1), - gsSPLight(&ttm_seg7_light_0700FA90, 2), + gsSPLight(&ttm_seg7_lights_0700FA90.l, 1), + gsSPLight(&ttm_seg7_lights_0700FA90.a, 2), gsSPVertex(ttm_seg7_vertex_0700FAD8, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -284,8 +272,8 @@ static const Gfx ttm_seg7_dl_07010638[] = { gsSPVertex(ttm_seg7_vertex_0700FCB8, 9, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 6, 7, 8, 0x0), - gsSPLight(&ttm_seg7_light_0700FAB0, 1), - gsSPLight(&ttm_seg7_light_0700FAA8, 2), + gsSPLight(&ttm_seg7_lights_0700FAA8.l, 1), + gsSPLight(&ttm_seg7_lights_0700FAA8.a, 2), gsSPVertex(ttm_seg7_vertex_0700FD48, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -297,8 +285,8 @@ static const Gfx ttm_seg7_dl_07010638[] = { gsSPVertex(ttm_seg7_vertex_0700FF38, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), - gsSPLight(&ttm_seg7_light_0700FAC8, 1), - gsSPLight(&ttm_seg7_light_0700FAC0, 2), + gsSPLight(&ttm_seg7_lights_0700FAC0.l, 1), + gsSPLight(&ttm_seg7_lights_0700FAC0.a, 2), gsSPVertex(ttm_seg7_vertex_0700FFF8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), @@ -318,8 +306,8 @@ static const Gfx ttm_seg7_dl_07010830[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700FA98, 1), - gsSPLight(&ttm_seg7_light_0700FA90, 2), + gsSPLight(&ttm_seg7_lights_0700FA90.l, 1), + gsSPLight(&ttm_seg7_lights_0700FA90.a, 2), gsSPVertex(ttm_seg7_vertex_07010278, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 5, 6, 7, 0x0), @@ -332,13 +320,13 @@ static const Gfx ttm_seg7_dl_07010830[] = { gsSP1Triangle(14, 0, 2, 0x0), gsSPVertex(ttm_seg7_vertex_07010468, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&ttm_seg7_light_0700FAB0, 1), - gsSPLight(&ttm_seg7_light_0700FAA8, 2), + gsSPLight(&ttm_seg7_lights_0700FAA8.l, 1), + gsSPLight(&ttm_seg7_lights_0700FAA8.a, 2), gsSPVertex(ttm_seg7_vertex_070104A8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), - gsSPLight(&ttm_seg7_light_0700FAC8, 1), - gsSPLight(&ttm_seg7_light_0700FAC0, 2), + gsSPLight(&ttm_seg7_lights_0700FAC0.l, 1), + gsSPLight(&ttm_seg7_lights_0700FAC0.a, 2), gsSPVertex(ttm_seg7_vertex_07010568, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/levels/ttm/areas/1/19/model.inc.c b/levels/ttm/areas/1/19/model.inc.c index d0c8b09..2262b37 100644 --- a/levels/ttm/areas/1/19/model.inc.c +++ b/levels/ttm/areas/1/19/model.inc.c @@ -1,32 +1,20 @@ -// 0x07010AD8 - 0x07010AE0 -static const Ambient ttm_seg7_light_07010AD8 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; +// 0x07010AD8 - 0x07010AF0 +static const Lights1 ttm_seg7_lights_07010AD8 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x07010AE0 - 0x07010AF0 -static const Light ttm_seg7_light_07010AE0 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07010AF0 - 0x07010B08 +static const Lights1 ttm_seg7_lights_07010AF0 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); -// 0x07010AF0 - 0x07010AF8 -static const Ambient ttm_seg7_light_07010AF0 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x07010AF8 - 0x07010B08 -static const Light ttm_seg7_light_07010AF8 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07010B08 - 0x07010B10 -static const Ambient ttm_seg7_light_07010B08 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07010B10 - 0x07010B20 -static const Light ttm_seg7_light_07010B10 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07010B08 - 0x07010B20 +static const Lights1 ttm_seg7_lights_07010B08 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07010B20 - 0x07010C10 static const Vtx ttm_seg7_vertex_07010B20[] = { @@ -136,24 +124,24 @@ static const Gfx ttm_seg7_dl_07010F90[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_07010AE0, 1), - gsSPLight(&ttm_seg7_light_07010AD8, 2), + gsSPLight(&ttm_seg7_lights_07010AD8.l, 1), + gsSPLight(&ttm_seg7_lights_07010AD8.a, 2), gsSPVertex(ttm_seg7_vertex_07010B20, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), gsSP1Triangle(12, 13, 14, 0x0), gsSPVertex(ttm_seg7_vertex_07010C10, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), - gsSPLight(&ttm_seg7_light_07010AF8, 1), - gsSPLight(&ttm_seg7_light_07010AF0, 2), + gsSPLight(&ttm_seg7_lights_07010AF0.l, 1), + gsSPLight(&ttm_seg7_lights_07010AF0.a, 2), gsSPVertex(ttm_seg7_vertex_07010C40, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), gsSP1Triangle(12, 13, 14, 0x0), gsSPVertex(ttm_seg7_vertex_07010D30, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), - gsSPLight(&ttm_seg7_light_07010B10, 1), - gsSPLight(&ttm_seg7_light_07010B08, 2), + gsSPLight(&ttm_seg7_lights_07010B08.l, 1), + gsSPLight(&ttm_seg7_lights_07010B08.a, 2), gsSPVertex(ttm_seg7_vertex_07010D60, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -164,12 +152,12 @@ static const Gfx ttm_seg7_dl_07011078[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_07010AE0, 1), - gsSPLight(&ttm_seg7_light_07010AD8, 2), + gsSPLight(&ttm_seg7_lights_07010AD8.l, 1), + gsSPLight(&ttm_seg7_lights_07010AD8.a, 2), gsSPVertex(ttm_seg7_vertex_07010DA0, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&ttm_seg7_light_07010B10, 1), - gsSPLight(&ttm_seg7_light_07010B08, 2), + gsSPLight(&ttm_seg7_lights_07010B08.l, 1), + gsSPLight(&ttm_seg7_lights_07010B08.a, 2), gsSPVertex(ttm_seg7_vertex_07010E00, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/levels/ttm/areas/1/2/model.inc.c b/levels/ttm/areas/1/2/model.inc.c index fdd6e0d..d8adff2 100644 --- a/levels/ttm/areas/1/2/model.inc.c +++ b/levels/ttm/areas/1/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700A1B0 - 0x0700A1B8 -static const Ambient ttm_seg7_light_0700A1B0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0700A1B8 - 0x0700A1C8 -static const Light ttm_seg7_light_0700A1B8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700A1B0 - 0x0700A1C8 +static const Lights1 ttm_seg7_lights_0700A1B0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700A1C8 - 0x0700A268 static const Vtx ttm_seg7_vertex_0700A1C8[] = { @@ -27,8 +23,8 @@ static const Gfx ttm_seg7_dl_0700A268[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700A1B8, 1), - gsSPLight(&ttm_seg7_light_0700A1B0, 2), + gsSPLight(&ttm_seg7_lights_0700A1B0.l, 1), + gsSPLight(&ttm_seg7_lights_0700A1B0.a, 2), gsSPVertex(ttm_seg7_vertex_0700A1C8, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 5, 4, 0x0), diff --git a/levels/ttm/areas/1/20/model.inc.c b/levels/ttm/areas/1/20/model.inc.c index 3c2c393..00bcf93 100644 --- a/levels/ttm/areas/1/20/model.inc.c +++ b/levels/ttm/areas/1/20/model.inc.c @@ -1,32 +1,20 @@ -// 0x070111A0 - 0x070111A8 -static const Ambient ttm_seg7_light_070111A0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x070111A0 - 0x070111B8 +static const Lights1 ttm_seg7_lights_070111A0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x070111A8 - 0x070111B8 -static const Light ttm_seg7_light_070111A8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070111B8 - 0x070111D0 +static const Lights1 ttm_seg7_lights_070111B8 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x070111B8 - 0x070111C0 -static const Ambient ttm_seg7_light_070111B8 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x070111C0 - 0x070111D0 -static const Light ttm_seg7_light_070111C0 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070111D0 - 0x070111D8 -static const Ambient ttm_seg7_light_070111D0 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x070111D8 - 0x070111E8 -static const Light ttm_seg7_light_070111D8 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070111D0 - 0x070111E8 +static const Lights1 ttm_seg7_lights_070111D0 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); // 0x070111E8 - 0x07011228 static const Vtx ttm_seg7_vertex_070111E8[] = { @@ -98,23 +86,23 @@ static const Gfx ttm_seg7_dl_070114B8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_070111A8, 1), - gsSPLight(&ttm_seg7_light_070111A0, 2), + gsSPLight(&ttm_seg7_lights_070111A0.l, 1), + gsSPLight(&ttm_seg7_lights_070111A0.a, 2), gsSPVertex(ttm_seg7_vertex_070111E8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&ttm_seg7_light_070111C0, 1), - gsSPLight(&ttm_seg7_light_070111B8, 2), + gsSPLight(&ttm_seg7_lights_070111B8.l, 1), + gsSPLight(&ttm_seg7_lights_070111B8.a, 2), gsSPVertex(ttm_seg7_vertex_07011228, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), gsSP1Triangle( 0, 2, 12, 0x0), - gsSPLight(&ttm_seg7_light_070111D8, 1), - gsSPLight(&ttm_seg7_light_070111D0, 2), + gsSPLight(&ttm_seg7_lights_070111D0.l, 1), + gsSPLight(&ttm_seg7_lights_070111D0.a, 2), gsSPVertex(ttm_seg7_vertex_070112F8, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&ttm_seg7_light_070111A8, 1), - gsSPLight(&ttm_seg7_light_070111A0, 2), + gsSPLight(&ttm_seg7_lights_070111A0.l, 1), + gsSPLight(&ttm_seg7_lights_070111A0.a, 2), gsSPVertex(ttm_seg7_vertex_07011378, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/levels/ttm/areas/1/21/1.inc.c b/levels/ttm/areas/1/21/1.inc.c index 716064f..6e13995 100644 --- a/levels/ttm/areas/1/21/1.inc.c +++ b/levels/ttm/areas/1/21/1.inc.c @@ -1,32 +1,20 @@ -// 0x07011680 - 0x07011688 -static const Ambient ttm_seg7_light_07011680 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x07011680 - 0x07011698 +static const Lights1 ttm_seg7_lights_07011680 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07011688 - 0x07011698 -static const Light ttm_seg7_light_07011688 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07011698 - 0x070116B0 +static const Lights1 ttm_seg7_lights_07011698 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); -// 0x07011698 - 0x070116A0 -static const Ambient ttm_seg7_light_07011698 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x070116A0 - 0x070116B0 -static const Light ttm_seg7_light_070116A0 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070116B0 - 0x070116B8 -static const Ambient ttm_seg7_light_070116B0 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x070116B8 - 0x070116C8 -static const Light ttm_seg7_light_070116B8 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070116B0 - 0x070116C8 +static const Lights1 ttm_seg7_lights_070116B0 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x070116C8 - 0x070117C8 static const Vtx ttm_seg7_vertex_070116C8[] = { @@ -123,8 +111,8 @@ static const Gfx ttm_seg7_dl_07011AA8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_07011688, 1), - gsSPLight(&ttm_seg7_light_07011680, 2), + gsSPLight(&ttm_seg7_lights_07011680.l, 1), + gsSPLight(&ttm_seg7_lights_07011680.a, 2), gsSPVertex(ttm_seg7_vertex_070116C8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -140,8 +128,8 @@ static const Gfx ttm_seg7_dl_07011B20[] = { gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPVertex(ttm_seg7_vertex_070117C8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&ttm_seg7_light_070116A0, 1), - gsSPLight(&ttm_seg7_light_07011698, 2), + gsSPLight(&ttm_seg7_lights_07011698.l, 1), + gsSPLight(&ttm_seg7_lights_07011698.a, 2), gsSPVertex(ttm_seg7_vertex_07011808, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -170,8 +158,8 @@ static const Gfx ttm_seg7_dl_07011C10[] = { // 0x07011C48 - 0x07011C78 static const Gfx ttm_seg7_dl_07011C48[] = { - gsSPLight(&ttm_seg7_light_070116B8, 1), - gsSPLight(&ttm_seg7_light_070116B0, 2), + gsSPLight(&ttm_seg7_lights_070116B0.l, 1), + gsSPLight(&ttm_seg7_lights_070116B0.a, 2), gsSPVertex(ttm_seg7_vertex_07011A68, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/ttm/areas/1/3/1.inc.c b/levels/ttm/areas/1/3/1.inc.c index 530e880..cc65c58 100644 --- a/levels/ttm/areas/1/3/1.inc.c +++ b/levels/ttm/areas/1/3/1.inc.c @@ -1,22 +1,14 @@ -// 0x0700A340 - 0x0700A348 -static const Ambient ttm_seg7_light_0700A340 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700A340 - 0x0700A358 +static const Lights1 ttm_seg7_lights_0700A340 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700A348 - 0x0700A358 -static const Light ttm_seg7_light_0700A348 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700A358 - 0x0700A360 -static const Ambient ttm_seg7_light_0700A358 = { - {{0x7f, 0x7f, 0x64}, 0, {0x7f, 0x7f, 0x64}, 0} -}; - -// 0x0700A360 - 0x0700A370 -static const Light ttm_seg7_light_0700A360 = { - {{0xff, 0xff, 0xc9}, 0, {0xff, 0xff, 0xc9}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700A358 - 0x0700A370 +static const Lights1 ttm_seg7_lights_0700A358 = gdSPDefLights1( + 0x7f, 0x7f, 0x64, + 0xff, 0xff, 0xc9, 0x28, 0x28, 0x28 +); // 0x0700A370 - 0x0700A460 static const Vtx ttm_seg7_vertex_0700A370[] = { @@ -97,8 +89,8 @@ static const Gfx ttm_seg7_dl_0700A710[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700A348, 1), - gsSPLight(&ttm_seg7_light_0700A340, 2), + gsSPLight(&ttm_seg7_lights_0700A340.l, 1), + gsSPLight(&ttm_seg7_lights_0700A340.a, 2), gsSPVertex(ttm_seg7_vertex_0700A370, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 5, 6, 7, 0x0), @@ -125,8 +117,8 @@ static const Gfx ttm_seg7_dl_0700A848[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ttm_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700A360, 1), - gsSPLight(&ttm_seg7_light_0700A358, 2), + gsSPLight(&ttm_seg7_lights_0700A358.l, 1), + gsSPLight(&ttm_seg7_lights_0700A358.a, 2), gsSPVertex(ttm_seg7_vertex_0700A640, 13, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 5, 3, 0x0, 0, 6, 7, 0x0), diff --git a/levels/ttm/areas/1/3/2.inc.c b/levels/ttm/areas/1/3/2.inc.c index 73d6eb7..20d2ca1 100644 --- a/levels/ttm/areas/1/3/2.inc.c +++ b/levels/ttm/areas/1/3/2.inc.c @@ -1,12 +1,8 @@ -// 0x0700A928 - 0x0700A930 -static const Ambient ttm_seg7_light_0700A928 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x0700A930 - 0x0700A940 -static const Light ttm_seg7_light_0700A930 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700A928 - 0x0700A940 +static const Lights1 ttm_seg7_lights_0700A928 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700A940 - 0x0700A9C0 static const Vtx ttm_seg7_vertex_0700A940[] = { @@ -37,8 +33,8 @@ static const Gfx ttm_seg7_dl_0700AA40[] = { gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, ttm_seg7_texture_07000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700A930, 1), - gsSPLight(&ttm_seg7_light_0700A928, 2), + gsSPLight(&ttm_seg7_lights_0700A928.l, 1), + gsSPLight(&ttm_seg7_lights_0700A928.a, 2), gsSPVertex(ttm_seg7_vertex_0700A940, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 4, 0, 3, 0x0, 2, 1, 5, 0x0), diff --git a/levels/ttm/areas/1/4/1.inc.c b/levels/ttm/areas/1/4/1.inc.c index cffda1a..82b9a3b 100644 --- a/levels/ttm/areas/1/4/1.inc.c +++ b/levels/ttm/areas/1/4/1.inc.c @@ -1,12 +1,8 @@ -// 0x0700AB70 - 0x0700AB78 -static const Ambient ttm_seg7_light_0700AB70 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0700AB78 - 0x0700AB88 -static const Light ttm_seg7_light_0700AB78 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700AB70 - 0x0700AB88 +static const Lights1 ttm_seg7_lights_0700AB70 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); // 0x0700AB88 - 0x0700AC78 static const Vtx ttm_seg7_vertex_0700AB88[] = { @@ -70,8 +66,8 @@ static const Gfx ttm_seg7_dl_0700AE58[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700AB78, 1), - gsSPLight(&ttm_seg7_light_0700AB70, 2), + gsSPLight(&ttm_seg7_lights_0700AB70.l, 1), + gsSPLight(&ttm_seg7_lights_0700AB70.a, 2), gsSPVertex(ttm_seg7_vertex_0700AB88, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 5, 6, 7, 0x0), diff --git a/levels/ttm/areas/1/4/2.inc.c b/levels/ttm/areas/1/4/2.inc.c index 92b52c3..9b4ab5c 100644 --- a/levels/ttm/areas/1/4/2.inc.c +++ b/levels/ttm/areas/1/4/2.inc.c @@ -1,12 +1,8 @@ -// 0x0700AFF0 - 0x0700AFF8 -static const Ambient ttm_seg7_light_0700AFF0 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0700AFF8 - 0x0700B008 -static const Light ttm_seg7_light_0700AFF8 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700AFF0 - 0x0700B008 +static const Lights1 ttm_seg7_lights_0700AFF0 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); // 0x0700B008 - 0x0700B068 static const Vtx ttm_seg7_vertex_0700B008[] = { @@ -23,8 +19,8 @@ static const Gfx ttm_seg7_dl_0700B068[] = { gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, ttm_seg7_texture_07000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700AFF8, 1), - gsSPLight(&ttm_seg7_light_0700AFF0, 2), + gsSPLight(&ttm_seg7_lights_0700AFF0.l, 1), + gsSPLight(&ttm_seg7_lights_0700AFF0.a, 2), gsSPVertex(ttm_seg7_vertex_0700B008, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 1, 4, 3, 0x0, 3, 4, 0, 0x0), diff --git a/levels/ttm/areas/1/5/1.inc.c b/levels/ttm/areas/1/5/1.inc.c index b57c134..ae548ce 100644 --- a/levels/ttm/areas/1/5/1.inc.c +++ b/levels/ttm/areas/1/5/1.inc.c @@ -1,12 +1,8 @@ -// 0x0700B130 - 0x0700B138 -static const Ambient ttm_seg7_light_0700B130 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0700B138 - 0x0700B148 -static const Light ttm_seg7_light_0700B138 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700B130 - 0x0700B148 +static const Lights1 ttm_seg7_lights_0700B130 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); // 0x0700B148 - 0x0700B248 static const Vtx ttm_seg7_vertex_0700B148[] = { @@ -68,8 +64,8 @@ static const Gfx ttm_seg7_dl_0700B3F8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700B138, 1), - gsSPLight(&ttm_seg7_light_0700B130, 2), + gsSPLight(&ttm_seg7_lights_0700B130.l, 1), + gsSPLight(&ttm_seg7_lights_0700B130.a, 2), gsSPVertex(ttm_seg7_vertex_0700B148, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/ttm/areas/1/5/2.inc.c b/levels/ttm/areas/1/5/2.inc.c index 11c7bff..d12065f 100644 --- a/levels/ttm/areas/1/5/2.inc.c +++ b/levels/ttm/areas/1/5/2.inc.c @@ -1,12 +1,8 @@ -// 0x0700B590 - 0x0700B598 -static const Ambient ttm_seg7_light_0700B590 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0700B598 - 0x0700B5A8 -static const Light ttm_seg7_light_0700B598 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700B590 - 0x0700B5A8 +static const Lights1 ttm_seg7_lights_0700B590 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); // 0x0700B5A8 - 0x0700B608 static const Vtx ttm_seg7_vertex_0700B5A8[] = { @@ -23,8 +19,8 @@ static const Gfx ttm_seg7_dl_0700B608[] = { gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, ttm_seg7_texture_07000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700B598, 1), - gsSPLight(&ttm_seg7_light_0700B590, 2), + gsSPLight(&ttm_seg7_lights_0700B590.l, 1), + gsSPLight(&ttm_seg7_lights_0700B590.a, 2), gsSPVertex(ttm_seg7_vertex_0700B5A8, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), gsSP2Triangles( 2, 1, 3, 0x0, 0, 5, 1, 0x0), diff --git a/levels/ttm/areas/1/6/1.inc.c b/levels/ttm/areas/1/6/1.inc.c index bf585d7..109de67 100644 --- a/levels/ttm/areas/1/6/1.inc.c +++ b/levels/ttm/areas/1/6/1.inc.c @@ -1,12 +1,8 @@ -// 0x0700B6D0 - 0x0700B6D8 -static const Ambient ttm_seg7_light_0700B6D0 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0700B6D8 - 0x0700B6E8 -static const Light ttm_seg7_light_0700B6D8 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700B6D0 - 0x0700B6E8 +static const Lights1 ttm_seg7_lights_0700B6D0 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); // 0x0700B6E8 - 0x0700B7D8 static const Vtx ttm_seg7_vertex_0700B6E8[] = { @@ -68,8 +64,8 @@ static const Gfx ttm_seg7_dl_0700B998[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700B6D8, 1), - gsSPLight(&ttm_seg7_light_0700B6D0, 2), + gsSPLight(&ttm_seg7_lights_0700B6D0.l, 1), + gsSPLight(&ttm_seg7_lights_0700B6D0.a, 2), gsSPVertex(ttm_seg7_vertex_0700B6E8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 5, 6, 7, 0x0), diff --git a/levels/ttm/areas/1/6/2.inc.c b/levels/ttm/areas/1/6/2.inc.c index 3860b1c..e898bce 100644 --- a/levels/ttm/areas/1/6/2.inc.c +++ b/levels/ttm/areas/1/6/2.inc.c @@ -1,12 +1,8 @@ -// 0x0700BB30 - 0x0700BB38 -static const Ambient ttm_seg7_light_0700BB30 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0700BB38 - 0x0700BB48 -static const Light ttm_seg7_light_0700BB38 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700BB30 - 0x0700BB48 +static const Lights1 ttm_seg7_lights_0700BB30 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); // 0x0700BB48 - 0x0700BBA8 static const Vtx ttm_seg7_vertex_0700BB48[] = { @@ -23,8 +19,8 @@ static const Gfx ttm_seg7_dl_0700BBA8[] = { gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, ttm_seg7_texture_07000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700BB38, 1), - gsSPLight(&ttm_seg7_light_0700BB30, 2), + gsSPLight(&ttm_seg7_lights_0700BB30.l, 1), + gsSPLight(&ttm_seg7_lights_0700BB30.a, 2), gsSPVertex(ttm_seg7_vertex_0700BB48, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 2, 1, 4, 0x0, 1, 5, 4, 0x0), diff --git a/levels/ttm/areas/1/7/model.inc.c b/levels/ttm/areas/1/7/model.inc.c index de29511..e9669b9 100644 --- a/levels/ttm/areas/1/7/model.inc.c +++ b/levels/ttm/areas/1/7/model.inc.c @@ -1,22 +1,14 @@ -// 0x0700BC70 - 0x0700BC78 -static const Ambient ttm_seg7_light_0700BC70 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700BC70 - 0x0700BC88 +static const Lights1 ttm_seg7_lights_0700BC70 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700BC78 - 0x0700BC88 -static const Light ttm_seg7_light_0700BC78 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700BC88 - 0x0700BC90 -static const Ambient ttm_seg7_light_0700BC88 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x0700BC90 - 0x0700BCA0 -static const Light ttm_seg7_light_0700BC90 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700BC88 - 0x0700BCA0 +static const Lights1 ttm_seg7_lights_0700BC88 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); // 0x0700BCA0 - 0x0700BCE0 static const Vtx ttm_seg7_vertex_0700BCA0[] = { @@ -47,12 +39,12 @@ static const Gfx ttm_seg7_dl_0700BDA0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700BC78, 1), - gsSPLight(&ttm_seg7_light_0700BC70, 2), + gsSPLight(&ttm_seg7_lights_0700BC70.l, 1), + gsSPLight(&ttm_seg7_lights_0700BC70.a, 2), gsSPVertex(ttm_seg7_vertex_0700BCA0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), - gsSPLight(&ttm_seg7_light_0700BC90, 1), - gsSPLight(&ttm_seg7_light_0700BC88, 2), + gsSPLight(&ttm_seg7_lights_0700BC88.l, 1), + gsSPLight(&ttm_seg7_lights_0700BC88.a, 2), gsSPVertex(ttm_seg7_vertex_0700BCE0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/levels/ttm/areas/1/8/model.inc.c b/levels/ttm/areas/1/8/model.inc.c index 63cd15d..f3350d0 100644 --- a/levels/ttm/areas/1/8/model.inc.c +++ b/levels/ttm/areas/1/8/model.inc.c @@ -1,22 +1,14 @@ -// 0x0700BE90 - 0x0700BE98 -static const Ambient ttm_seg7_light_0700BE90 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; +// 0x0700BE90 - 0x0700BEA8 +static const Lights1 ttm_seg7_lights_0700BE90 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x0700BE98 - 0x0700BEA8 -static const Light ttm_seg7_light_0700BE98 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700BEA8 - 0x0700BEB0 -static const Ambient ttm_seg7_light_0700BEA8 = { - {{0x5d, 0x5d, 0x5d}, 0, {0x5d, 0x5d, 0x5d}, 0} -}; - -// 0x0700BEB0 - 0x0700BEC0 -static const Light ttm_seg7_light_0700BEB0 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700BEA8 - 0x0700BEC0 +static const Lights1 ttm_seg7_lights_0700BEA8 = gdSPDefLights1( + 0x5d, 0x5d, 0x5d, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); // 0x0700BEC0 - 0x0700BF40 static const Vtx ttm_seg7_vertex_0700BEC0[] = { @@ -49,13 +41,13 @@ static const Gfx ttm_seg7_dl_0700BFE0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700BE98, 1), - gsSPLight(&ttm_seg7_light_0700BE90, 2), + gsSPLight(&ttm_seg7_lights_0700BE90.l, 1), + gsSPLight(&ttm_seg7_lights_0700BE90.a, 2), gsSPVertex(ttm_seg7_vertex_0700BEC0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 6, 7, 4, 0x0), - gsSPLight(&ttm_seg7_light_0700BEB0, 1), - gsSPLight(&ttm_seg7_light_0700BEA8, 2), + gsSPLight(&ttm_seg7_lights_0700BEA8.l, 1), + gsSPLight(&ttm_seg7_lights_0700BEA8.a, 2), gsSPVertex(ttm_seg7_vertex_0700BF40, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ttm/areas/1/9/model.inc.c b/levels/ttm/areas/1/9/model.inc.c index 6811544..d0c3bbb 100644 --- a/levels/ttm/areas/1/9/model.inc.c +++ b/levels/ttm/areas/1/9/model.inc.c @@ -1,32 +1,20 @@ -// 0x0700C0E0 - 0x0700C0E8 -static const Ambient ttm_seg7_light_0700C0E0 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x0700C0E0 - 0x0700C0F8 +static const Lights1 ttm_seg7_lights_0700C0E0 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700C0E8 - 0x0700C0F8 -static const Light ttm_seg7_light_0700C0E8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700C0F8 - 0x0700C110 +static const Lights1 ttm_seg7_lights_0700C0F8 = gdSPDefLights1( + 0x4c, 0x4c, 0x4c, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x0700C0F8 - 0x0700C100 -static const Ambient ttm_seg7_light_0700C0F8 = { - {{0x4c, 0x4c, 0x4c}, 0, {0x4c, 0x4c, 0x4c}, 0} -}; - -// 0x0700C100 - 0x0700C110 -static const Light ttm_seg7_light_0700C100 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700C110 - 0x0700C118 -static const Ambient ttm_seg7_light_0700C110 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x0700C118 - 0x0700C128 -static const Light ttm_seg7_light_0700C118 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700C110 - 0x0700C128 +static const Lights1 ttm_seg7_lights_0700C110 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x0700C128 - 0x0700C228 static const Vtx ttm_seg7_vertex_0700C128[] = { @@ -73,8 +61,8 @@ static const Gfx ttm_seg7_dl_0700C2E8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700C0E8, 1), - gsSPLight(&ttm_seg7_light_0700C0E0, 2), + gsSPLight(&ttm_seg7_lights_0700C0E0.l, 1), + gsSPLight(&ttm_seg7_lights_0700C0E0.a, 2), gsSPVertex(ttm_seg7_vertex_0700C128, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -88,8 +76,8 @@ static const Gfx ttm_seg7_dl_0700C360[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09003800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0700C100, 1), - gsSPLight(&ttm_seg7_light_0700C0F8, 2), + gsSPLight(&ttm_seg7_lights_0700C0F8.l, 1), + gsSPLight(&ttm_seg7_lights_0700C0F8.a, 2), gsSPVertex(ttm_seg7_vertex_0700C228, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 3, 1, 0x0, 4, 1, 5, 0x0), @@ -100,8 +88,8 @@ static const Gfx ttm_seg7_dl_0700C360[] = { // 0x0700C3D8 - 0x0700C408 static const Gfx ttm_seg7_dl_0700C3D8[] = { - gsSPLight(&ttm_seg7_light_0700C118, 1), - gsSPLight(&ttm_seg7_light_0700C110, 2), + gsSPLight(&ttm_seg7_lights_0700C110.l, 1), + gsSPLight(&ttm_seg7_lights_0700C110.a, 2), gsSPVertex(ttm_seg7_vertex_0700C2A8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/ttm/areas/1/geo.inc.c b/levels/ttm/areas/1/geo.inc.c index 32f2cdd..7e92647 100644 --- a/levels/ttm/areas/1/geo.inc.c +++ b/levels/ttm/areas/1/geo.inc.c @@ -33,7 +33,7 @@ const GeoLayout ttm_geo_000A70[] = { GEO_CLOSE_NODE(), GEO_ZBUFFER(0), GEO_OPEN_NODE(), - GEO_ASM(0, Geo18_802CD1E8), + GEO_ASM(0, geo_cannon_circle_base), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/levels/ttm/areas/1/macro.inc.c b/levels/ttm/areas/1/macro.inc.c index edfe2cd..a19e731 100644 --- a/levels/ttm/areas/1/macro.inc.c +++ b/levels/ttm/areas/1/macro.inc.c @@ -2,8 +2,8 @@ const MacroObject ttm_seg7_area_1_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_bobomb_buddy_opens_cannon, /*yaw*/ 0, /*pos*/ 799, -2668, 3320), MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_cannon_closed, /*yaw*/ 45, /*pos*/ 5035, -3994, -3445, /*behParam*/ 0xC0), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 3644, -1304, 1422, /*behParam*/ 72), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 622, -4331, 5466, /*behParam*/ 94), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 3644, -1304, 1422, /*behParam*/ DIALOG_072), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 622, -4331, 5466, /*behParam*/ DIALOG_094), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 1450, -2750, -4250), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 2550, -2750, -3400), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 4150, -2700, -2800), @@ -11,7 +11,7 @@ const MacroObject ttm_seg7_area_1_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ -1200, -1600, -3250), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ -1850, 100, -2850), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ -1500, -800, -2750), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ -1126, -3448, -4400, /*behParam*/ 91), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ -1126, -3448, -4400, /*behParam*/ DIALOG_091), MACRO_OBJECT(/*preset*/ macro_goomba_triplet_spawner, /*yaw*/ 0, /*pos*/ 1740, -4236, 5320), MACRO_OBJECT(/*preset*/ macro_coin_ring_horizontal, /*yaw*/ 0, /*pos*/ 4540, -4607, 1060), MACRO_OBJECT(/*preset*/ macro_1up, /*yaw*/ 0, /*pos*/ -3713, -4130, 3530), diff --git a/levels/ttm/areas/1/painting.inc.c b/levels/ttm/areas/1/painting.inc.c index 71c4faa..db0b375 100644 --- a/levels/ttm/areas/1/painting.inc.c +++ b/levels/ttm/areas/1/painting.inc.c @@ -1,14 +1,10 @@ #include "game/paintings.h" -// 0x070122F0 - 0x070122F8 -static const Ambient ttm_seg7_light_070122F0 = { - {{0x50, 0x50, 0x50}, 0, {0x50, 0x50, 0x50}, 0} -}; - -// 0x070122F8 - 0x07012308 -static const Light ttm_seg7_light_070122F8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x32, 0x32, 0x32}, 0} -}; +// 0x070122F0 - 0x07012308 +static const Lights1 ttm_seg7_lights_070122F0 = gdSPDefLights1( + 0x50, 0x50, 0x50, + 0xff, 0xff, 0xff, 0x32, 0x32, 0x32 +); // 0x07012308 - 0x07012388 static const Vtx ttm_seg7_vertex_07012308[] = { @@ -39,8 +35,8 @@ const Gfx ttm_seg7_dl_070123B8[] = { gsDPPipeSync(), gsSPSetGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB), - gsSPLight(&ttm_seg7_light_070122F8, 1), - gsSPLight(&ttm_seg7_light_070122F0, 2), + gsSPLight(&ttm_seg7_lights_070122F0.l, 1), + gsSPLight(&ttm_seg7_lights_070122F0.a, 2), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 6, G_TX_NOLOD), diff --git a/levels/ttm/areas/2/1/model.inc.c b/levels/ttm/areas/2/1/model.inc.c index 6297bc5..f0fef25 100644 --- a/levels/ttm/areas/2/1/model.inc.c +++ b/levels/ttm/areas/2/1/model.inc.c @@ -1,132 +1,80 @@ -// 0x070172D8 - 0x070172E0 -static const Ambient ttm_seg7_light_070172D8 = { - {{0x08, 0x08, 0x08}, 0, {0x08, 0x08, 0x08}, 0} -}; +// 0x070172D8 - 0x070172F0 +static const Lights1 ttm_seg7_lights_070172D8 = gdSPDefLights1( + 0x08, 0x08, 0x08, + 0x22, 0x22, 0x22, 0x28, 0x28, 0x28 +); -// 0x070172E0 - 0x070172F0 -static const Light ttm_seg7_light_070172E0 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070172F0 - 0x07017308 +static const Lights1 ttm_seg7_lights_070172F0 = gdSPDefLights1( + 0x0c, 0x0c, 0x0c, + 0x33, 0x33, 0x33, 0x28, 0x28, 0x28 +); -// 0x070172F0 - 0x070172F8 -static const Ambient ttm_seg7_light_070172F0 = { - {{0x0c, 0x0c, 0x0c}, 0, {0x0c, 0x0c, 0x0c}, 0} -}; +// 0x07017308 - 0x07017320 +static const Lights1 ttm_seg7_lights_07017308 = gdSPDefLights1( + 0x11, 0x11, 0x11, + 0x44, 0x44, 0x44, 0x28, 0x28, 0x28 +); -// 0x070172F8 - 0x07017308 -static const Light ttm_seg7_light_070172F8 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07017320 - 0x07017338 +static const Lights1 ttm_seg7_lights_07017320 = gdSPDefLights1( + 0x15, 0x15, 0x15, + 0x55, 0x55, 0x55, 0x28, 0x28, 0x28 +); -// 0x07017308 - 0x07017310 -static const Ambient ttm_seg7_light_07017308 = { - {{0x11, 0x11, 0x11}, 0, {0x11, 0x11, 0x11}, 0} -}; +// 0x07017338 - 0x07017350 +static const Lights1 ttm_seg7_lights_07017338 = gdSPDefLights1( + 0x19, 0x19, 0x19, + 0x66, 0x66, 0x66, 0x28, 0x28, 0x28 +); -// 0x07017310 - 0x07017320 -static const Light ttm_seg7_light_07017310 = { - {{0x44, 0x44, 0x44}, 0, {0x44, 0x44, 0x44}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07017350 - 0x07017368 +static const Lights1 ttm_seg7_lights_07017350 = gdSPDefLights1( + 0x1d, 0x1d, 0x1d, + 0x77, 0x77, 0x77, 0x28, 0x28, 0x28 +); -// 0x07017320 - 0x07017328 -static const Ambient ttm_seg7_light_07017320 = { - {{0x15, 0x15, 0x15}, 0, {0x15, 0x15, 0x15}, 0} -}; +// 0x07017368 - 0x07017380 +static const Lights1 ttm_seg7_lights_07017368 = gdSPDefLights1( + 0x2a, 0x2a, 0x2a, + 0xaa, 0xaa, 0xaa, 0x28, 0x28, 0x28 +); -// 0x07017328 - 0x07017338 -static const Light ttm_seg7_light_07017328 = { - {{0x55, 0x55, 0x55}, 0, {0x55, 0x55, 0x55}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07017380 - 0x07017398 +static const Lights1 ttm_seg7_lights_07017380 = gdSPDefLights1( + 0x2e, 0x2e, 0x2e, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); -// 0x07017338 - 0x07017340 -static const Ambient ttm_seg7_light_07017338 = { - {{0x19, 0x19, 0x19}, 0, {0x19, 0x19, 0x19}, 0} -}; +// 0x07017398 - 0x070173B0 +static const Lights1 ttm_seg7_lights_07017398 = gdSPDefLights1( + 0x33, 0x33, 0x33, + 0xcc, 0xcc, 0xcc, 0x28, 0x28, 0x28 +); -// 0x07017340 - 0x07017350 -static const Light ttm_seg7_light_07017340 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070173B0 - 0x070173C8 +static const Lights1 ttm_seg7_lights_070173B0 = gdSPDefLights1( + 0x37, 0x37, 0x37, + 0xdd, 0xdd, 0xdd, 0x28, 0x28, 0x28 +); -// 0x07017350 - 0x07017358 -static const Ambient ttm_seg7_light_07017350 = { - {{0x1d, 0x1d, 0x1d}, 0, {0x1d, 0x1d, 0x1d}, 0} -}; +// 0x070173C8 - 0x070173E0 +static const Lights1 ttm_seg7_lights_070173C8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07017358 - 0x07017368 -static const Light ttm_seg7_light_07017358 = { - {{0x77, 0x77, 0x77}, 0, {0x77, 0x77, 0x77}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070173E0 - 0x070173F8 +static const Lights1 ttm_seg7_lights_070173E0 = gdSPDefLights1( + 0x22, 0x22, 0x22, + 0x88, 0x88, 0x88, 0x28, 0x28, 0x28 +); -// 0x07017368 - 0x07017370 -static const Ambient ttm_seg7_light_07017368 = { - {{0x2a, 0x2a, 0x2a}, 0, {0x2a, 0x2a, 0x2a}, 0} -}; - -// 0x07017370 - 0x07017380 -static const Light ttm_seg7_light_07017370 = { - {{0xaa, 0xaa, 0xaa}, 0, {0xaa, 0xaa, 0xaa}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07017380 - 0x07017388 -static const Ambient ttm_seg7_light_07017380 = { - {{0x2e, 0x2e, 0x2e}, 0, {0x2e, 0x2e, 0x2e}, 0} -}; - -// 0x07017388 - 0x07017398 -static const Light ttm_seg7_light_07017388 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07017398 - 0x070173A0 -static const Ambient ttm_seg7_light_07017398 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0} -}; - -// 0x070173A0 - 0x070173B0 -static const Light ttm_seg7_light_070173A0 = { - {{0xcc, 0xcc, 0xcc}, 0, {0xcc, 0xcc, 0xcc}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070173B0 - 0x070173B8 -static const Ambient ttm_seg7_light_070173B0 = { - {{0x37, 0x37, 0x37}, 0, {0x37, 0x37, 0x37}, 0} -}; - -// 0x070173B8 - 0x070173C8 -static const Light ttm_seg7_light_070173B8 = { - {{0xdd, 0xdd, 0xdd}, 0, {0xdd, 0xdd, 0xdd}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070173C8 - 0x070173D0 -static const Ambient ttm_seg7_light_070173C8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x070173D0 - 0x070173E0 -static const Light ttm_seg7_light_070173D0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070173E0 - 0x070173E8 -static const Ambient ttm_seg7_light_070173E0 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0} -}; - -// 0x070173E8 - 0x070173F8 -static const Light ttm_seg7_light_070173E8 = { - {{0x88, 0x88, 0x88}, 0, {0x88, 0x88, 0x88}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070173F8 - 0x07017400 -static const Ambient ttm_seg7_light_070173F8 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x07017400 - 0x07017410 -static const Light ttm_seg7_light_07017400 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070173F8 - 0x07017410 +static const Lights1 ttm_seg7_lights_070173F8 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x07017410 - 0x07017450 static const Vtx ttm_seg7_vertex_07017410[] = { @@ -1686,27 +1634,27 @@ static const Gfx ttm_seg7_dl_0701BEE0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_070172E0, 1), - gsSPLight(&ttm_seg7_light_070172D8, 2), + gsSPLight(&ttm_seg7_lights_070172D8.l, 1), + gsSPLight(&ttm_seg7_lights_070172D8.a, 2), gsSPVertex(ttm_seg7_vertex_07017410, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&ttm_seg7_light_070172F8, 1), - gsSPLight(&ttm_seg7_light_070172F0, 2), + gsSPLight(&ttm_seg7_lights_070172F0.l, 1), + gsSPLight(&ttm_seg7_lights_070172F0.a, 2), gsSPVertex(ttm_seg7_vertex_07017450, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&ttm_seg7_light_07017310, 1), - gsSPLight(&ttm_seg7_light_07017308, 2), + gsSPLight(&ttm_seg7_lights_07017308.l, 1), + gsSPLight(&ttm_seg7_lights_07017308.a, 2), gsSPVertex(ttm_seg7_vertex_070174D0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&ttm_seg7_light_07017328, 1), - gsSPLight(&ttm_seg7_light_07017320, 2), + gsSPLight(&ttm_seg7_lights_07017320.l, 1), + gsSPLight(&ttm_seg7_lights_07017320.a, 2), gsSPVertex(ttm_seg7_vertex_07017550, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&ttm_seg7_light_07017340, 1), - gsSPLight(&ttm_seg7_light_07017338, 2), + gsSPLight(&ttm_seg7_lights_07017338.l, 1), + gsSPLight(&ttm_seg7_lights_07017338.a, 2), gsSPVertex(ttm_seg7_vertex_070175D0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -1718,12 +1666,12 @@ static const Gfx ttm_seg7_dl_0701C008[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_0900B800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_07017358, 1), - gsSPLight(&ttm_seg7_light_07017350, 2), + gsSPLight(&ttm_seg7_lights_07017350.l, 1), + gsSPLight(&ttm_seg7_lights_07017350.a, 2), gsSPVertex(ttm_seg7_vertex_07017650, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&ttm_seg7_light_07017370, 1), - gsSPLight(&ttm_seg7_light_07017368, 2), + gsSPLight(&ttm_seg7_lights_07017368.l, 1), + gsSPLight(&ttm_seg7_lights_07017368.a, 2), gsSPVertex(ttm_seg7_vertex_07017690, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 6, 7, 4, 0x0), @@ -1736,8 +1684,8 @@ static const Gfx ttm_seg7_dl_0701C008[] = { gsSP2Triangles( 8, 9, 10, 0x0, 8, 11, 9, 0x0), gsSP2Triangles(12, 9, 11, 0x0, 1, 13, 2, 0x0), gsSP1Triangle(13, 14, 2, 0x0), - gsSPLight(&ttm_seg7_light_07017388, 1), - gsSPLight(&ttm_seg7_light_07017380, 2), + gsSPLight(&ttm_seg7_lights_07017380.l, 1), + gsSPLight(&ttm_seg7_lights_07017380.a, 2), gsSPVertex(ttm_seg7_vertex_07017870, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 6, 7, 4, 0x0), @@ -1752,8 +1700,8 @@ static const Gfx ttm_seg7_dl_0701C008[] = { gsSPVertex(ttm_seg7_vertex_07017A60, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 2, 4, 0x0), gsSP1Triangle( 5, 6, 7, 0x0), - gsSPLight(&ttm_seg7_light_070173A0, 1), - gsSPLight(&ttm_seg7_light_07017398, 2), + gsSPLight(&ttm_seg7_lights_07017398.l, 1), + gsSPLight(&ttm_seg7_lights_07017398.a, 2), gsSPVertex(ttm_seg7_vertex_07017AE0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 4, 7, 8, 0x0), @@ -1769,8 +1717,8 @@ static const Gfx ttm_seg7_dl_0701C008[] = { gsSPVertex(ttm_seg7_vertex_07017CC0, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), - gsSPLight(&ttm_seg7_light_070173B8, 1), - gsSPLight(&ttm_seg7_light_070173B0, 2), + gsSPLight(&ttm_seg7_lights_070173B0.l, 1), + gsSPLight(&ttm_seg7_lights_070173B0.a, 2), gsSPVertex(ttm_seg7_vertex_07017D60, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 6, 7, 4, 0x0), @@ -1786,8 +1734,8 @@ static const Gfx ttm_seg7_dl_0701C008[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 6, 7, 4, 0x0), gsSP1Triangle( 6, 8, 7, 0x0), - gsSPLight(&ttm_seg7_light_070173D0, 1), - gsSPLight(&ttm_seg7_light_070173C8, 2), + gsSPLight(&ttm_seg7_lights_070173C8.l, 1), + gsSPLight(&ttm_seg7_lights_070173C8.a, 2), gsSPVertex(ttm_seg7_vertex_07017FC0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -1851,12 +1799,12 @@ static const Gfx ttm_seg7_dl_0701C688[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_0900A800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_070173A0, 1), - gsSPLight(&ttm_seg7_light_07017398, 2), + gsSPLight(&ttm_seg7_lights_07017398.l, 1), + gsSPLight(&ttm_seg7_lights_07017398.a, 2), gsSPVertex(ttm_seg7_vertex_070187F0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&ttm_seg7_light_070173D0, 1), - gsSPLight(&ttm_seg7_light_070173C8, 2), + gsSPLight(&ttm_seg7_lights_070173C8.l, 1), + gsSPLight(&ttm_seg7_lights_070173C8.a, 2), gsSPVertex(ttm_seg7_vertex_07018830, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), @@ -1867,15 +1815,15 @@ static const Gfx ttm_seg7_dl_0701C6F8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_07017310, 1), - gsSPLight(&ttm_seg7_light_07017308, 2), + gsSPLight(&ttm_seg7_lights_07017308.l, 1), + gsSPLight(&ttm_seg7_lights_07017308.a, 2), gsSPVertex(ttm_seg7_vertex_07018870, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 10, 8, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(11, 13, 14, 0x0, 0, 15, 1, 0x0), - gsSPLight(&ttm_seg7_light_07017328, 1), - gsSPLight(&ttm_seg7_light_07017320, 2), + gsSPLight(&ttm_seg7_lights_07017320.l, 1), + gsSPLight(&ttm_seg7_lights_07017320.a, 2), gsSPVertex(ttm_seg7_vertex_07018970, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1885,8 +1833,8 @@ static const Gfx ttm_seg7_dl_0701C6F8[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), gsSP1Triangle( 0, 10, 1, 0x0), - gsSPLight(&ttm_seg7_light_07017340, 1), - gsSPLight(&ttm_seg7_light_07017338, 2), + gsSPLight(&ttm_seg7_lights_07017338.l, 1), + gsSPLight(&ttm_seg7_lights_07017338.a, 2), gsSPVertex(ttm_seg7_vertex_07018B10, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1899,8 +1847,8 @@ static const Gfx ttm_seg7_dl_0701C6F8[] = { gsSP1Triangle( 0, 2, 14, 0x0), gsSPVertex(ttm_seg7_vertex_07018CF0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&ttm_seg7_light_07017358, 1), - gsSPLight(&ttm_seg7_light_07017350, 2), + gsSPLight(&ttm_seg7_lights_07017350.l, 1), + gsSPLight(&ttm_seg7_lights_07017350.a, 2), gsSPVertex(ttm_seg7_vertex_07018D30, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1910,8 +1858,8 @@ static const Gfx ttm_seg7_dl_0701C6F8[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), gsSP1Triangle( 0, 10, 1, 0x0), - gsSPLight(&ttm_seg7_light_070173E8, 1), - gsSPLight(&ttm_seg7_light_070173E0, 2), + gsSPLight(&ttm_seg7_lights_070173E0.l, 1), + gsSPLight(&ttm_seg7_lights_070173E0.a, 2), gsSPVertex(ttm_seg7_vertex_07018ED0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -2017,12 +1965,12 @@ static const Gfx ttm_seg7_dl_0701C6F8[] = { gsSPVertex(ttm_seg7_vertex_0701A270, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), - gsSPLight(&ttm_seg7_light_07017370, 1), - gsSPLight(&ttm_seg7_light_07017368, 2), + gsSPLight(&ttm_seg7_lights_07017368.l, 1), + gsSPLight(&ttm_seg7_lights_07017368.a, 2), gsSPVertex(ttm_seg7_vertex_0701A2F0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&ttm_seg7_light_07017388, 1), - gsSPLight(&ttm_seg7_light_07017380, 2), + gsSPLight(&ttm_seg7_lights_07017380.l, 1), + gsSPLight(&ttm_seg7_lights_07017380.a, 2), gsSPVertex(ttm_seg7_vertex_0701A330, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 2, 4, 3, 0x0, 4, 5, 3, 0x0), @@ -2062,8 +2010,8 @@ static const Gfx ttm_seg7_dl_0701C6F8[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 8, 10, 11, 0x0), - gsSPLight(&ttm_seg7_light_070173A0, 1), - gsSPLight(&ttm_seg7_light_07017398, 2), + gsSPLight(&ttm_seg7_lights_07017398.l, 1), + gsSPLight(&ttm_seg7_lights_07017398.a, 2), gsSPVertex(ttm_seg7_vertex_0701AA70, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), gsSP2Triangles( 1, 4, 5, 0x0, 1, 5, 6, 0x0), @@ -2073,8 +2021,8 @@ static const Gfx ttm_seg7_dl_0701C6F8[] = { gsSPVertex(ttm_seg7_vertex_0701AB50, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&ttm_seg7_light_070173D0, 1), - gsSPLight(&ttm_seg7_light_070173C8, 2), + gsSPLight(&ttm_seg7_lights_070173C8.l, 1), + gsSPLight(&ttm_seg7_lights_070173C8.a, 2), gsSPVertex(ttm_seg7_vertex_0701ABD0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -2186,8 +2134,8 @@ static const Gfx ttm_seg7_dl_0701C6F8[] = { // 0x0701D708 - 0x0701D798 static const Gfx ttm_seg7_dl_0701D708[] = { - gsSPLight(&ttm_seg7_light_07017400, 1), - gsSPLight(&ttm_seg7_light_070173F8, 2), + gsSPLight(&ttm_seg7_lights_070173F8.l, 1), + gsSPLight(&ttm_seg7_lights_070173F8.a, 2), gsSPVertex(ttm_seg7_vertex_0701BE00, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 3, 0, 0x0, 4, 0, 5, 0x0), diff --git a/levels/ttm/areas/2/2/model.inc.c b/levels/ttm/areas/2/2/model.inc.c index a10ad08..f2f0d43 100644 --- a/levels/ttm/areas/2/2/model.inc.c +++ b/levels/ttm/areas/2/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x0701D888 - 0x0701D890 -static const Ambient ttm_seg7_light_0701D888 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0701D890 - 0x0701D8A0 -static const Light ttm_seg7_light_0701D890 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701D888 - 0x0701D8A0 +static const Lights1 ttm_seg7_lights_0701D888 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0701D8A0 - 0x0701D9A0 static const Vtx ttm_seg7_vertex_0701D8A0[] = { @@ -61,8 +57,8 @@ static const Gfx ttm_seg7_dl_0701DAE0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0701D890, 1), - gsSPLight(&ttm_seg7_light_0701D888, 2), + gsSPLight(&ttm_seg7_lights_0701D888.l, 1), + gsSPLight(&ttm_seg7_lights_0701D888.a, 2), gsSPVertex(ttm_seg7_vertex_0701D8A0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 1, 4, 3, 0x0, 0, 2, 5, 0x0), diff --git a/levels/ttm/areas/3/1/model.inc.c b/levels/ttm/areas/3/1/model.inc.c index b4147af..fe9e6b9 100644 --- a/levels/ttm/areas/3/1/model.inc.c +++ b/levels/ttm/areas/3/1/model.inc.c @@ -1,152 +1,92 @@ -// 0x0701DC60 - 0x0701DC68 -static const Ambient ttm_seg7_light_0701DC60 = { - {{0x08, 0x08, 0x08}, 0, {0x08, 0x08, 0x08}, 0} -}; +// 0x0701DC60 - 0x0701DC78 +static const Lights1 ttm_seg7_lights_0701DC60 = gdSPDefLights1( + 0x08, 0x08, 0x08, + 0x22, 0x22, 0x22, 0x28, 0x28, 0x28 +); -// 0x0701DC68 - 0x0701DC78 -static const Light ttm_seg7_light_0701DC68 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701DC78 - 0x0701DC90 +static const Lights1 ttm_seg7_lights_0701DC78 = gdSPDefLights1( + 0x0c, 0x0c, 0x0c, + 0x33, 0x33, 0x33, 0x28, 0x28, 0x28 +); -// 0x0701DC78 - 0x0701DC80 -static const Ambient ttm_seg7_light_0701DC78 = { - {{0x0c, 0x0c, 0x0c}, 0, {0x0c, 0x0c, 0x0c}, 0} -}; +// 0x0701DC90 - 0x0701DCA8 +static const Lights1 ttm_seg7_lights_0701DC90 = gdSPDefLights1( + 0x11, 0x11, 0x11, + 0x44, 0x44, 0x44, 0x28, 0x28, 0x28 +); -// 0x0701DC80 - 0x0701DC90 -static const Light ttm_seg7_light_0701DC80 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701DCA8 - 0x0701DCC0 +static const Lights1 ttm_seg7_lights_0701DCA8 = gdSPDefLights1( + 0x15, 0x15, 0x15, + 0x55, 0x55, 0x55, 0x28, 0x28, 0x28 +); -// 0x0701DC90 - 0x0701DC98 -static const Ambient ttm_seg7_light_0701DC90 = { - {{0x11, 0x11, 0x11}, 0, {0x11, 0x11, 0x11}, 0} -}; +// 0x0701DCC0 - 0x0701DCD8 +static const Lights1 ttm_seg7_lights_0701DCC0 = gdSPDefLights1( + 0x19, 0x19, 0x19, + 0x66, 0x66, 0x66, 0x28, 0x28, 0x28 +); -// 0x0701DC98 - 0x0701DCA8 -static const Light ttm_seg7_light_0701DC98 = { - {{0x44, 0x44, 0x44}, 0, {0x44, 0x44, 0x44}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701DCD8 - 0x0701DCF0 +static const Lights1 ttm_seg7_lights_0701DCD8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0701DCA8 - 0x0701DCB0 -static const Ambient ttm_seg7_light_0701DCA8 = { - {{0x15, 0x15, 0x15}, 0, {0x15, 0x15, 0x15}, 0} -}; +// 0x0701DCF0 - 0x0701DD08 +static const Lights1 ttm_seg7_lights_0701DCF0 = gdSPDefLights1( + 0x1d, 0x1d, 0x1d, + 0x77, 0x77, 0x77, 0x28, 0x28, 0x28 +); -// 0x0701DCB0 - 0x0701DCC0 -static const Light ttm_seg7_light_0701DCB0 = { - {{0x55, 0x55, 0x55}, 0, {0x55, 0x55, 0x55}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701DD08 - 0x0701DD20 +static const Lights1 ttm_seg7_lights_0701DD08 = gdSPDefLights1( + 0x22, 0x22, 0x22, + 0x88, 0x88, 0x88, 0x28, 0x28, 0x28 +); -// 0x0701DCC0 - 0x0701DCC8 -static const Ambient ttm_seg7_light_0701DCC0 = { - {{0x19, 0x19, 0x19}, 0, {0x19, 0x19, 0x19}, 0} -}; +// 0x0701DD20 - 0x0701DD38 +static const Lights1 ttm_seg7_lights_0701DD20 = gdSPDefLights1( + 0x26, 0x26, 0x26, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x0701DCC8 - 0x0701DCD8 -static const Light ttm_seg7_light_0701DCC8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701DD38 - 0x0701DD50 +static const Lights1 ttm_seg7_lights_0701DD38 = gdSPDefLights1( + 0x2a, 0x2a, 0x2a, + 0xaa, 0xaa, 0xaa, 0x28, 0x28, 0x28 +); -// 0x0701DCD8 - 0x0701DCE0 -static const Ambient ttm_seg7_light_0701DCD8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; +// 0x0701DD50 - 0x0701DD68 +static const Lights1 ttm_seg7_lights_0701DD50 = gdSPDefLights1( + 0x2e, 0x2e, 0x2e, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); -// 0x0701DCE0 - 0x0701DCF0 -static const Light ttm_seg7_light_0701DCE0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701DD68 - 0x0701DD80 +static const Lights1 ttm_seg7_lights_0701DD68 = gdSPDefLights1( + 0x33, 0x33, 0x33, + 0xcc, 0xcc, 0xcc, 0x28, 0x28, 0x28 +); -// 0x0701DCF0 - 0x0701DCF8 -static const Ambient ttm_seg7_light_0701DCF0 = { - {{0x1d, 0x1d, 0x1d}, 0, {0x1d, 0x1d, 0x1d}, 0} -}; +// 0x0701DD80 - 0x0701DD98 +static const Lights1 ttm_seg7_lights_0701DD80 = gdSPDefLights1( + 0x37, 0x37, 0x37, + 0xdd, 0xdd, 0xdd, 0x28, 0x28, 0x28 +); -// 0x0701DCF8 - 0x0701DD08 -static const Light ttm_seg7_light_0701DCF8 = { - {{0x77, 0x77, 0x77}, 0, {0x77, 0x77, 0x77}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701DD98 - 0x0701DDB0 +static const Lights1 ttm_seg7_lights_0701DD98 = gdSPDefLights1( + 0x3b, 0x3b, 0x3b, + 0xee, 0xee, 0xee, 0x28, 0x28, 0x28 +); -// 0x0701DD08 - 0x0701DD10 -static const Ambient ttm_seg7_light_0701DD08 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0} -}; - -// 0x0701DD10 - 0x0701DD20 -static const Light ttm_seg7_light_0701DD10 = { - {{0x88, 0x88, 0x88}, 0, {0x88, 0x88, 0x88}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701DD20 - 0x0701DD28 -static const Ambient ttm_seg7_light_0701DD20 = { - {{0x26, 0x26, 0x26}, 0, {0x26, 0x26, 0x26}, 0} -}; - -// 0x0701DD28 - 0x0701DD38 -static const Light ttm_seg7_light_0701DD28 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701DD38 - 0x0701DD40 -static const Ambient ttm_seg7_light_0701DD38 = { - {{0x2a, 0x2a, 0x2a}, 0, {0x2a, 0x2a, 0x2a}, 0} -}; - -// 0x0701DD40 - 0x0701DD50 -static const Light ttm_seg7_light_0701DD40 = { - {{0xaa, 0xaa, 0xaa}, 0, {0xaa, 0xaa, 0xaa}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701DD50 - 0x0701DD58 -static const Ambient ttm_seg7_light_0701DD50 = { - {{0x2e, 0x2e, 0x2e}, 0, {0x2e, 0x2e, 0x2e}, 0} -}; - -// 0x0701DD58 - 0x0701DD68 -static const Light ttm_seg7_light_0701DD58 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701DD68 - 0x0701DD70 -static const Ambient ttm_seg7_light_0701DD68 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0} -}; - -// 0x0701DD70 - 0x0701DD80 -static const Light ttm_seg7_light_0701DD70 = { - {{0xcc, 0xcc, 0xcc}, 0, {0xcc, 0xcc, 0xcc}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701DD80 - 0x0701DD88 -static const Ambient ttm_seg7_light_0701DD80 = { - {{0x37, 0x37, 0x37}, 0, {0x37, 0x37, 0x37}, 0} -}; - -// 0x0701DD88 - 0x0701DD98 -static const Light ttm_seg7_light_0701DD88 = { - {{0xdd, 0xdd, 0xdd}, 0, {0xdd, 0xdd, 0xdd}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701DD98 - 0x0701DDA0 -static const Ambient ttm_seg7_light_0701DD98 = { - {{0x3b, 0x3b, 0x3b}, 0, {0x3b, 0x3b, 0x3b}, 0} -}; - -// 0x0701DDA0 - 0x0701DDB0 -static const Light ttm_seg7_light_0701DDA0 = { - {{0xee, 0xee, 0xee}, 0, {0xee, 0xee, 0xee}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0701DDB0 - 0x0701DDB8 -static const Ambient ttm_seg7_light_0701DDB0 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x0701DDB8 - 0x0701DDC8 -static const Light ttm_seg7_light_0701DDB8 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0701DDB0 - 0x0701DDC8 +static const Lights1 ttm_seg7_lights_0701DDB0 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x0701DDC8 - 0x0701DE08 static const Vtx ttm_seg7_vertex_0701DDC8[] = { @@ -1837,32 +1777,32 @@ static const Gfx ttm_seg7_dl_07022F08[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0701DC68, 1), - gsSPLight(&ttm_seg7_light_0701DC60, 2), + gsSPLight(&ttm_seg7_lights_0701DC60.l, 1), + gsSPLight(&ttm_seg7_lights_0701DC60.a, 2), gsSPVertex(ttm_seg7_vertex_0701DDC8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&ttm_seg7_light_0701DC80, 1), - gsSPLight(&ttm_seg7_light_0701DC78, 2), + gsSPLight(&ttm_seg7_lights_0701DC78.l, 1), + gsSPLight(&ttm_seg7_lights_0701DC78.a, 2), gsSPVertex(ttm_seg7_vertex_0701DE08, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&ttm_seg7_light_0701DC98, 1), - gsSPLight(&ttm_seg7_light_0701DC90, 2), + gsSPLight(&ttm_seg7_lights_0701DC90.l, 1), + gsSPLight(&ttm_seg7_lights_0701DC90.a, 2), gsSPVertex(ttm_seg7_vertex_0701DE88, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&ttm_seg7_light_0701DCB0, 1), - gsSPLight(&ttm_seg7_light_0701DCA8, 2), + gsSPLight(&ttm_seg7_lights_0701DCA8.l, 1), + gsSPLight(&ttm_seg7_lights_0701DCA8.a, 2), gsSPVertex(ttm_seg7_vertex_0701DF08, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&ttm_seg7_light_0701DCC8, 1), - gsSPLight(&ttm_seg7_light_0701DCC0, 2), + gsSPLight(&ttm_seg7_lights_0701DCC0.l, 1), + gsSPLight(&ttm_seg7_lights_0701DCC0.a, 2), gsSPVertex(ttm_seg7_vertex_0701DF88, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), - gsSPLight(&ttm_seg7_light_0701DCE0, 1), - gsSPLight(&ttm_seg7_light_0701DCD8, 2), + gsSPLight(&ttm_seg7_lights_0701DCD8.l, 1), + gsSPLight(&ttm_seg7_lights_0701DCD8.a, 2), gsSPVertex(ttm_seg7_vertex_0701E008, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1886,8 +1826,8 @@ static const Gfx ttm_seg7_dl_07023108[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_0900B800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0701DCB0, 1), - gsSPLight(&ttm_seg7_light_0701DCA8, 2), + gsSPLight(&ttm_seg7_lights_0701DCA8.l, 1), + gsSPLight(&ttm_seg7_lights_0701DCA8.a, 2), gsSPVertex(ttm_seg7_vertex_0701E2E8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -1906,14 +1846,14 @@ static const Gfx ttm_seg7_dl_07023108[] = { gsSPVertex(ttm_seg7_vertex_0701E5E8, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 1, 6, 2, 0x0, 7, 3, 5, 0x0), - gsSPLight(&ttm_seg7_light_0701DCC8, 1), - gsSPLight(&ttm_seg7_light_0701DCC0, 2), + gsSPLight(&ttm_seg7_lights_0701DCC0.l, 1), + gsSPLight(&ttm_seg7_lights_0701DCC0.a, 2), gsSPVertex(ttm_seg7_vertex_0701E668, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 9, 11, 10, 0x0), - gsSPLight(&ttm_seg7_light_0701DCF8, 1), - gsSPLight(&ttm_seg7_light_0701DCF0, 2), + gsSPLight(&ttm_seg7_lights_0701DCF0.l, 1), + gsSPLight(&ttm_seg7_lights_0701DCF0.a, 2), gsSPVertex(ttm_seg7_vertex_0701E728, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -1931,8 +1871,8 @@ static const Gfx ttm_seg7_dl_07023108[] = { gsSP1Triangle(12, 14, 13, 0x0), gsSPVertex(ttm_seg7_vertex_0701EA08, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), - gsSPLight(&ttm_seg7_light_0701DD10, 1), - gsSPLight(&ttm_seg7_light_0701DD08, 2), + gsSPLight(&ttm_seg7_lights_0701DD08.l, 1), + gsSPLight(&ttm_seg7_lights_0701DD08.a, 2), gsSPVertex(ttm_seg7_vertex_0701EA48, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1940,14 +1880,14 @@ static const Gfx ttm_seg7_dl_07023108[] = { gsSPVertex(ttm_seg7_vertex_0701EB28, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 1, 6, 2, 0x0), - gsSPLight(&ttm_seg7_light_0701DD28, 1), - gsSPLight(&ttm_seg7_light_0701DD20, 2), + gsSPLight(&ttm_seg7_lights_0701DD20.l, 1), + gsSPLight(&ttm_seg7_lights_0701DD20.a, 2), gsSPVertex(ttm_seg7_vertex_0701EB98, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0), gsSP2Triangles( 3, 1, 4, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 6, 8, 0x0), - gsSPLight(&ttm_seg7_light_0701DD40, 1), - gsSPLight(&ttm_seg7_light_0701DD38, 2), + gsSPLight(&ttm_seg7_lights_0701DD38.l, 1), + gsSPLight(&ttm_seg7_lights_0701DD38.a, 2), gsSPVertex(ttm_seg7_vertex_0701EC38, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 6, 7, 8, 0x0), @@ -1963,8 +1903,8 @@ static const Gfx ttm_seg7_dl_07023108[] = { gsSPVertex(ttm_seg7_vertex_0701EE18, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), - gsSPLight(&ttm_seg7_light_0701DD58, 1), - gsSPLight(&ttm_seg7_light_0701DD50, 2), + gsSPLight(&ttm_seg7_lights_0701DD50.l, 1), + gsSPLight(&ttm_seg7_lights_0701DD50.a, 2), gsSPVertex(ttm_seg7_vertex_0701EE98, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 6, 7, 4, 0x0), @@ -1980,8 +1920,8 @@ static const Gfx ttm_seg7_dl_07023108[] = { gsSPVertex(ttm_seg7_vertex_0701F088, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 5, 4, 6, 0x0), - gsSPLight(&ttm_seg7_light_0701DD70, 1), - gsSPLight(&ttm_seg7_light_0701DD68, 2), + gsSPLight(&ttm_seg7_lights_0701DD68.l, 1), + gsSPLight(&ttm_seg7_lights_0701DD68.a, 2), gsSPVertex(ttm_seg7_vertex_0701F0F8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 6, 7, 4, 0x0), @@ -2044,8 +1984,8 @@ static const Gfx ttm_seg7_dl_07023108[] = { gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP1Triangle(10, 4, 6, 0x0), - gsSPLight(&ttm_seg7_light_0701DD88, 1), - gsSPLight(&ttm_seg7_light_0701DD80, 2), + gsSPLight(&ttm_seg7_lights_0701DD80.l, 1), + gsSPLight(&ttm_seg7_lights_0701DD80.a, 2), gsSPVertex(ttm_seg7_vertex_0701FCE8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -2110,8 +2050,8 @@ static const Gfx ttm_seg7_dl_07023108[] = { gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles(10, 7, 9, 0x0, 11, 12, 13, 0x0), - gsSPLight(&ttm_seg7_light_0701DCE0, 1), - gsSPLight(&ttm_seg7_light_0701DCD8, 2), + gsSPLight(&ttm_seg7_lights_0701DCD8.l, 1), + gsSPLight(&ttm_seg7_lights_0701DCD8.a, 2), gsSPVertex(ttm_seg7_vertex_07020908, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 4, 7, 8, 0x0), @@ -2221,8 +2161,8 @@ static const Gfx ttm_seg7_dl_07024178[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0701DC98, 1), - gsSPLight(&ttm_seg7_light_0701DC90, 2), + gsSPLight(&ttm_seg7_lights_0701DC90.l, 1), + gsSPLight(&ttm_seg7_lights_0701DC90.a, 2), gsSPVertex(ttm_seg7_vertex_070219C8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -2233,23 +2173,23 @@ static const Gfx ttm_seg7_dl_07024178[] = { gsSP2Triangles( 6, 7, 4, 0x0, 8, 3, 5, 0x0), gsSP2Triangles( 9, 10, 11, 0x0, 10, 0, 2, 0x0), gsSP1Triangle(10, 2, 11, 0x0), - gsSPLight(&ttm_seg7_light_0701DCB0, 1), - gsSPLight(&ttm_seg7_light_0701DCA8, 2), + gsSPLight(&ttm_seg7_lights_0701DCA8.l, 1), + gsSPLight(&ttm_seg7_lights_0701DCA8.a, 2), gsSPVertex(ttm_seg7_vertex_07021B78, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), - gsSPLight(&ttm_seg7_light_0701DCC8, 1), - gsSPLight(&ttm_seg7_light_0701DCC0, 2), + gsSPLight(&ttm_seg7_lights_0701DCC0.l, 1), + gsSPLight(&ttm_seg7_lights_0701DCC0.a, 2), gsSPVertex(ttm_seg7_vertex_07021BF8, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), - gsSPLight(&ttm_seg7_light_0701DCF8, 1), - gsSPLight(&ttm_seg7_light_0701DCF0, 2), + gsSPLight(&ttm_seg7_lights_0701DCF0.l, 1), + gsSPLight(&ttm_seg7_lights_0701DCF0.a, 2), gsSPVertex(ttm_seg7_vertex_07021C78, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&ttm_seg7_light_0701DD10, 1), - gsSPLight(&ttm_seg7_light_0701DD08, 2), + gsSPLight(&ttm_seg7_lights_0701DD08.l, 1), + gsSPLight(&ttm_seg7_lights_0701DD08.a, 2), gsSPVertex(ttm_seg7_vertex_07021CF8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -2269,29 +2209,29 @@ static const Gfx ttm_seg7_dl_07024178[] = { gsSP2Triangles( 6, 7, 8, 0x0, 9, 6, 8, 0x0), gsSP2Triangles(10, 0, 2, 0x0, 10, 2, 11, 0x0), gsSP1Triangle(12, 10, 11, 0x0), - gsSPLight(&ttm_seg7_light_0701DD28, 1), - gsSPLight(&ttm_seg7_light_0701DD20, 2), + gsSPLight(&ttm_seg7_lights_0701DD20.l, 1), + gsSPLight(&ttm_seg7_lights_0701DD20.a, 2), gsSPVertex(ttm_seg7_vertex_07022098, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 4, 3, 0x0, 7, 8, 9, 0x0), gsSP2Triangles(10, 8, 7, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(12, 14, 13, 0x0, 1, 15, 2, 0x0), - gsSPLight(&ttm_seg7_light_0701DD40, 1), - gsSPLight(&ttm_seg7_light_0701DD38, 2), + gsSPLight(&ttm_seg7_lights_0701DD38.l, 1), + gsSPLight(&ttm_seg7_lights_0701DD38.a, 2), gsSPVertex(ttm_seg7_vertex_07022198, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 4, 3, 0x0, 7, 8, 9, 0x0), gsSP2Triangles(10, 8, 7, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(12, 14, 13, 0x0, 1, 15, 2, 0x0), - gsSPLight(&ttm_seg7_light_0701DD58, 1), - gsSPLight(&ttm_seg7_light_0701DD50, 2), + gsSPLight(&ttm_seg7_lights_0701DD50.l, 1), + gsSPLight(&ttm_seg7_lights_0701DD50.a, 2), gsSPVertex(ttm_seg7_vertex_07022298, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles(10, 8, 7, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(11, 13, 14, 0x0, 0, 2, 15, 0x0), - gsSPLight(&ttm_seg7_light_0701DD70, 1), - gsSPLight(&ttm_seg7_light_0701DD68, 2), + gsSPLight(&ttm_seg7_lights_0701DD68.l, 1), + gsSPLight(&ttm_seg7_lights_0701DD68.a, 2), gsSPVertex(ttm_seg7_vertex_07022398, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -2311,22 +2251,22 @@ static const Gfx ttm_seg7_dl_07024178[] = { gsSPVertex(ttm_seg7_vertex_07022678, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 3, 5, 0x0), - gsSPLight(&ttm_seg7_light_0701DD88, 1), - gsSPLight(&ttm_seg7_light_0701DD80, 2), + gsSPLight(&ttm_seg7_lights_0701DD80.l, 1), + gsSPLight(&ttm_seg7_lights_0701DD80.a, 2), gsSPVertex(ttm_seg7_vertex_070226F8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 10, 8, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(11, 14, 12, 0x0, 0, 15, 1, 0x0), - gsSPLight(&ttm_seg7_light_0701DDA0, 1), - gsSPLight(&ttm_seg7_light_0701DD98, 2), + gsSPLight(&ttm_seg7_lights_0701DD98.l, 1), + gsSPLight(&ttm_seg7_lights_0701DD98.a, 2), gsSPVertex(ttm_seg7_vertex_070227F8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 9, 10, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(11, 13, 14, 0x0, 0, 2, 15, 0x0), - gsSPLight(&ttm_seg7_light_0701DCE0, 1), - gsSPLight(&ttm_seg7_light_0701DCD8, 2), + gsSPLight(&ttm_seg7_lights_0701DCD8.l, 1), + gsSPLight(&ttm_seg7_lights_0701DCD8.a, 2), gsSPVertex(ttm_seg7_vertex_070228F8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -2358,8 +2298,8 @@ static const Gfx ttm_seg7_dl_07024708[] = { // 0x070247F0 - 0x070249A0 static const Gfx ttm_seg7_dl_070247F0[] = { - gsSPLight(&ttm_seg7_light_0701DDB8, 1), - gsSPLight(&ttm_seg7_light_0701DDB0, 2), + gsSPLight(&ttm_seg7_lights_0701DDB0.l, 1), + gsSPLight(&ttm_seg7_lights_0701DDB0.a, 2), gsSPVertex(ttm_seg7_vertex_07022AF8, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 2, 4, 5, 0x0, 2, 5, 6, 0x0), diff --git a/levels/ttm/areas/3/3/model.inc.c b/levels/ttm/areas/3/3/model.inc.c index c3cb7de..aebf049 100644 --- a/levels/ttm/areas/3/3/model.inc.c +++ b/levels/ttm/areas/3/3/model.inc.c @@ -1,12 +1,8 @@ -// 0x07024CA8 - 0x07024CB0 -static const Ambient ttm_seg7_light_07024CA8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07024CB0 - 0x07024CC0 -static const Light ttm_seg7_light_07024CB0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07024CA8 - 0x07024CC0 +static const Lights1 ttm_seg7_lights_07024CA8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07024CC0 - 0x07024DC0 static const Vtx ttm_seg7_vertex_07024CC0[] = { @@ -308,8 +304,8 @@ static const Gfx ttm_seg7_dl_07025B30[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_07024CB0, 1), - gsSPLight(&ttm_seg7_light_07024CA8, 2), + gsSPLight(&ttm_seg7_lights_07024CA8.l, 1), + gsSPLight(&ttm_seg7_lights_07024CA8.a, 2), gsSPVertex(ttm_seg7_vertex_07024CC0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 1, 4, 3, 0x0, 5, 0, 6, 0x0), diff --git a/levels/ttm/areas/4/1/model.inc.c b/levels/ttm/areas/4/1/model.inc.c index 7654111..f43e12b 100644 --- a/levels/ttm/areas/4/1/model.inc.c +++ b/levels/ttm/areas/4/1/model.inc.c @@ -1,132 +1,80 @@ -// 0x07025FF0 - 0x07025FF8 -static const Ambient ttm_seg7_light_07025FF0 = { - {{0x15, 0x15, 0x15}, 0, {0x15, 0x15, 0x15}, 0} -}; +// 0x07025FF0 - 0x07026008 +static const Lights1 ttm_seg7_lights_07025FF0 = gdSPDefLights1( + 0x15, 0x15, 0x15, + 0x55, 0x55, 0x55, 0x28, 0x28, 0x28 +); -// 0x07025FF8 - 0x07026008 -static const Light ttm_seg7_light_07025FF8 = { - {{0x55, 0x55, 0x55}, 0, {0x55, 0x55, 0x55}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07026008 - 0x07026020 +static const Lights1 ttm_seg7_lights_07026008 = gdSPDefLights1( + 0x19, 0x19, 0x19, + 0x66, 0x66, 0x66, 0x28, 0x28, 0x28 +); -// 0x07026008 - 0x07026010 -static const Ambient ttm_seg7_light_07026008 = { - {{0x19, 0x19, 0x19}, 0, {0x19, 0x19, 0x19}, 0} -}; +// 0x07026020 - 0x07026038 +static const Lights1 ttm_seg7_lights_07026020 = gdSPDefLights1( + 0x1d, 0x1d, 0x1d, + 0x77, 0x77, 0x77, 0x28, 0x28, 0x28 +); -// 0x07026010 - 0x07026020 -static const Light ttm_seg7_light_07026010 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07026038 - 0x07026050 +static const Lights1 ttm_seg7_lights_07026038 = gdSPDefLights1( + 0x22, 0x22, 0x22, + 0x88, 0x88, 0x88, 0x28, 0x28, 0x28 +); -// 0x07026020 - 0x07026028 -static const Ambient ttm_seg7_light_07026020 = { - {{0x1d, 0x1d, 0x1d}, 0, {0x1d, 0x1d, 0x1d}, 0} -}; +// 0x07026050 - 0x07026068 +static const Lights1 ttm_seg7_lights_07026050 = gdSPDefLights1( + 0x26, 0x26, 0x26, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); -// 0x07026028 - 0x07026038 -static const Light ttm_seg7_light_07026028 = { - {{0x77, 0x77, 0x77}, 0, {0x77, 0x77, 0x77}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07026068 - 0x07026080 +static const Lights1 ttm_seg7_lights_07026068 = gdSPDefLights1( + 0x2a, 0x2a, 0x2a, + 0xaa, 0xaa, 0xaa, 0x28, 0x28, 0x28 +); -// 0x07026038 - 0x07026040 -static const Ambient ttm_seg7_light_07026038 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0} -}; +// 0x07026080 - 0x07026098 +static const Lights1 ttm_seg7_lights_07026080 = gdSPDefLights1( + 0x2e, 0x2e, 0x2e, + 0xbb, 0xbb, 0xbb, 0x28, 0x28, 0x28 +); -// 0x07026040 - 0x07026050 -static const Light ttm_seg7_light_07026040 = { - {{0x88, 0x88, 0x88}, 0, {0x88, 0x88, 0x88}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07026098 - 0x070260B0 +static const Lights1 ttm_seg7_lights_07026098 = gdSPDefLights1( + 0x33, 0x33, 0x33, + 0xcc, 0xcc, 0xcc, 0x28, 0x28, 0x28 +); -// 0x07026050 - 0x07026058 -static const Ambient ttm_seg7_light_07026050 = { - {{0x26, 0x26, 0x26}, 0, {0x26, 0x26, 0x26}, 0} -}; +// 0x070260B0 - 0x070260C8 +static const Lights1 ttm_seg7_lights_070260B0 = gdSPDefLights1( + 0x37, 0x37, 0x37, + 0xdd, 0xdd, 0xdd, 0x28, 0x28, 0x28 +); -// 0x07026058 - 0x07026068 -static const Light ttm_seg7_light_07026058 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070260C8 - 0x070260E0 +static const Lights1 ttm_seg7_lights_070260C8 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07026068 - 0x07026070 -static const Ambient ttm_seg7_light_07026068 = { - {{0x2a, 0x2a, 0x2a}, 0, {0x2a, 0x2a, 0x2a}, 0} -}; +// 0x070260E0 - 0x070260F8 +static const Lights1 ttm_seg7_lights_070260E0 = gdSPDefLights1( + 0x11, 0x11, 0x11, + 0x44, 0x44, 0x44, 0x28, 0x28, 0x28 +); -// 0x07026070 - 0x07026080 -static const Light ttm_seg7_light_07026070 = { - {{0xaa, 0xaa, 0xaa}, 0, {0xaa, 0xaa, 0xaa}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070260F8 - 0x07026110 +static const Lights1 ttm_seg7_lights_070260F8 = gdSPDefLights1( + 0x3b, 0x3b, 0x3b, + 0xee, 0xee, 0xee, 0x28, 0x28, 0x28 +); -// 0x07026080 - 0x07026088 -static const Ambient ttm_seg7_light_07026080 = { - {{0x2e, 0x2e, 0x2e}, 0, {0x2e, 0x2e, 0x2e}, 0} -}; - -// 0x07026088 - 0x07026098 -static const Light ttm_seg7_light_07026088 = { - {{0xbb, 0xbb, 0xbb}, 0, {0xbb, 0xbb, 0xbb}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07026098 - 0x070260A0 -static const Ambient ttm_seg7_light_07026098 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0} -}; - -// 0x070260A0 - 0x070260B0 -static const Light ttm_seg7_light_070260A0 = { - {{0xcc, 0xcc, 0xcc}, 0, {0xcc, 0xcc, 0xcc}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070260B0 - 0x070260B8 -static const Ambient ttm_seg7_light_070260B0 = { - {{0x37, 0x37, 0x37}, 0, {0x37, 0x37, 0x37}, 0} -}; - -// 0x070260B8 - 0x070260C8 -static const Light ttm_seg7_light_070260B8 = { - {{0xdd, 0xdd, 0xdd}, 0, {0xdd, 0xdd, 0xdd}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070260C8 - 0x070260D0 -static const Ambient ttm_seg7_light_070260C8 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x070260D0 - 0x070260E0 -static const Light ttm_seg7_light_070260D0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070260E0 - 0x070260E8 -static const Ambient ttm_seg7_light_070260E0 = { - {{0x11, 0x11, 0x11}, 0, {0x11, 0x11, 0x11}, 0} -}; - -// 0x070260E8 - 0x070260F8 -static const Light ttm_seg7_light_070260E8 = { - {{0x44, 0x44, 0x44}, 0, {0x44, 0x44, 0x44}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x070260F8 - 0x07026100 -static const Ambient ttm_seg7_light_070260F8 = { - {{0x3b, 0x3b, 0x3b}, 0, {0x3b, 0x3b, 0x3b}, 0} -}; - -// 0x07026100 - 0x07026110 -static const Light ttm_seg7_light_07026100 = { - {{0xee, 0xee, 0xee}, 0, {0xee, 0xee, 0xee}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07026110 - 0x07026118 -static const Ambient ttm_seg7_light_07026110 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0} -}; - -// 0x07026118 - 0x07026128 -static const Light ttm_seg7_light_07026118 = { - {{0x00, 0x00, 0x00}, 0, {0x00, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07026110 - 0x07026128 +static const Lights1 ttm_seg7_lights_07026110 = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x07026128 - 0x07026228 static const Vtx ttm_seg7_vertex_07026128[] = { @@ -1142,8 +1090,8 @@ static const Gfx ttm_seg7_dl_070291B8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_0900B800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_07025FF8, 1), - gsSPLight(&ttm_seg7_light_07025FF0, 2), + gsSPLight(&ttm_seg7_lights_07025FF0.l, 1), + gsSPLight(&ttm_seg7_lights_07025FF0.a, 2), gsSPVertex(ttm_seg7_vertex_07026128, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -1162,14 +1110,14 @@ static const Gfx ttm_seg7_dl_070291B8[] = { gsSPVertex(ttm_seg7_vertex_07026428, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 1, 6, 2, 0x0, 7, 3, 5, 0x0), - gsSPLight(&ttm_seg7_light_07026010, 1), - gsSPLight(&ttm_seg7_light_07026008, 2), + gsSPLight(&ttm_seg7_lights_07026008.l, 1), + gsSPLight(&ttm_seg7_lights_07026008.a, 2), gsSPVertex(ttm_seg7_vertex_070264A8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 9, 11, 10, 0x0), - gsSPLight(&ttm_seg7_light_07026028, 1), - gsSPLight(&ttm_seg7_light_07026020, 2), + gsSPLight(&ttm_seg7_lights_07026020.l, 1), + gsSPLight(&ttm_seg7_lights_07026020.a, 2), gsSPVertex(ttm_seg7_vertex_07026568, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -1185,8 +1133,8 @@ static const Gfx ttm_seg7_dl_070291B8[] = { gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 11, 12, 13, 0x0), gsSP1Triangle(14, 11, 13, 0x0), - gsSPLight(&ttm_seg7_light_07026040, 1), - gsSPLight(&ttm_seg7_light_07026038, 2), + gsSPLight(&ttm_seg7_lights_07026038.l, 1), + gsSPLight(&ttm_seg7_lights_07026038.a, 2), gsSPVertex(ttm_seg7_vertex_07026848, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1194,19 +1142,19 @@ static const Gfx ttm_seg7_dl_070291B8[] = { gsSPVertex(ttm_seg7_vertex_07026928, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 1, 6, 2, 0x0), - gsSPLight(&ttm_seg7_light_07026058, 1), - gsSPLight(&ttm_seg7_light_07026050, 2), + gsSPLight(&ttm_seg7_lights_07026050.l, 1), + gsSPLight(&ttm_seg7_lights_07026050.a, 2), gsSPVertex(ttm_seg7_vertex_07026998, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 4, 0x0), gsSP2Triangles( 2, 1, 3, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 6, 8, 0x0), - gsSPLight(&ttm_seg7_light_07026070, 1), - gsSPLight(&ttm_seg7_light_07026068, 2), + gsSPLight(&ttm_seg7_lights_07026068.l, 1), + gsSPLight(&ttm_seg7_lights_07026068.a, 2), gsSPVertex(ttm_seg7_vertex_07026A38, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), - gsSPLight(&ttm_seg7_light_07026088, 1), - gsSPLight(&ttm_seg7_light_07026080, 2), + gsSPLight(&ttm_seg7_lights_07026080.l, 1), + gsSPLight(&ttm_seg7_lights_07026080.a, 2), gsSPVertex(ttm_seg7_vertex_07026AB8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 7, 8, 9, 0x0), @@ -1228,8 +1176,8 @@ static const Gfx ttm_seg7_dl_070291B8[] = { gsSP2Triangles( 7, 9, 10, 0x0, 11, 12, 13, 0x0), gsSPVertex(ttm_seg7_vertex_07026E78, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&ttm_seg7_light_070260A0, 1), - gsSPLight(&ttm_seg7_light_07026098, 2), + gsSPLight(&ttm_seg7_lights_07026098.l, 1), + gsSPLight(&ttm_seg7_lights_07026098.a, 2), gsSPVertex(ttm_seg7_vertex_07026EB8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -1249,8 +1197,8 @@ static const Gfx ttm_seg7_dl_070291B8[] = { gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles(10, 11, 12, 0x0, 10, 12, 13, 0x0), - gsSPLight(&ttm_seg7_light_070260B8, 1), - gsSPLight(&ttm_seg7_light_070260B0, 2), + gsSPLight(&ttm_seg7_lights_070260B0.l, 1), + gsSPLight(&ttm_seg7_lights_070260B0.a, 2), gsSPVertex(ttm_seg7_vertex_07027288, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -1270,8 +1218,8 @@ static const Gfx ttm_seg7_dl_070291B8[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0), - gsSPLight(&ttm_seg7_light_070260D0, 1), - gsSPLight(&ttm_seg7_light_070260C8, 2), + gsSPLight(&ttm_seg7_lights_070260C8.l, 1), + gsSPLight(&ttm_seg7_lights_070260C8.a, 2), gsSPVertex(ttm_seg7_vertex_07027668, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -1308,8 +1256,8 @@ static const Gfx ttm_seg7_dl_070299D0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_0900A800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_07026088, 1), - gsSPLight(&ttm_seg7_light_07026080, 2), + gsSPLight(&ttm_seg7_lights_07026080.l, 1), + gsSPLight(&ttm_seg7_lights_07026080.a, 2), gsSPVertex(ttm_seg7_vertex_07027BA8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -1320,8 +1268,8 @@ static const Gfx ttm_seg7_dl_07029A18[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09008800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_070260E8, 1), - gsSPLight(&ttm_seg7_light_070260E0, 2), + gsSPLight(&ttm_seg7_lights_070260E0.l, 1), + gsSPLight(&ttm_seg7_lights_070260E0.a, 2), gsSPVertex(ttm_seg7_vertex_07027BE8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -1335,20 +1283,20 @@ static const Gfx ttm_seg7_dl_07029A18[] = { gsSPVertex(ttm_seg7_vertex_07027DC8, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 0, 6, 1, 0x0), - gsSPLight(&ttm_seg7_light_07025FF8, 1), - gsSPLight(&ttm_seg7_light_07025FF0, 2), + gsSPLight(&ttm_seg7_lights_07025FF0.l, 1), + gsSPLight(&ttm_seg7_lights_07025FF0.a, 2), gsSPVertex(ttm_seg7_vertex_07027E38, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), - gsSPLight(&ttm_seg7_light_07026010, 1), - gsSPLight(&ttm_seg7_light_07026008, 2), + gsSPLight(&ttm_seg7_lights_07026008.l, 1), + gsSPLight(&ttm_seg7_lights_07026008.a, 2), gsSPVertex(ttm_seg7_vertex_07027EB8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 8, 10, 9, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(11, 13, 14, 0x0, 0, 15, 1, 0x0), - gsSPLight(&ttm_seg7_light_07026028, 1), - gsSPLight(&ttm_seg7_light_07026020, 2), + gsSPLight(&ttm_seg7_lights_07026020.l, 1), + gsSPLight(&ttm_seg7_lights_07026020.a, 2), gsSPVertex(ttm_seg7_vertex_07027FB8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -1359,8 +1307,8 @@ static const Gfx ttm_seg7_dl_07029A18[] = { gsSP2Triangles( 3, 6, 4, 0x0, 3, 7, 8, 0x0), gsSP2Triangles( 3, 5, 7, 0x0, 2, 8, 0, 0x0), gsSP1Triangle( 0, 9, 1, 0x0), - gsSPLight(&ttm_seg7_light_07026040, 1), - gsSPLight(&ttm_seg7_light_07026038, 2), + gsSPLight(&ttm_seg7_lights_07026038.l, 1), + gsSPLight(&ttm_seg7_lights_07026038.a, 2), gsSPVertex(ttm_seg7_vertex_07028148, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -1383,8 +1331,8 @@ static const Gfx ttm_seg7_dl_07029A18[] = { gsSPVertex(ttm_seg7_vertex_07028508, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP1Triangle( 3, 6, 4, 0x0), - gsSPLight(&ttm_seg7_light_07026058, 1), - gsSPLight(&ttm_seg7_light_07026050, 2), + gsSPLight(&ttm_seg7_lights_07026050.l, 1), + gsSPLight(&ttm_seg7_lights_07026050.a, 2), gsSPVertex(ttm_seg7_vertex_07028578, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 7, 8, 9, 0x0), @@ -1394,22 +1342,22 @@ static const Gfx ttm_seg7_dl_07029A18[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), gsSP1Triangle( 0, 10, 1, 0x0), - gsSPLight(&ttm_seg7_light_07026070, 1), - gsSPLight(&ttm_seg7_light_07026068, 2), + gsSPLight(&ttm_seg7_lights_07026068.l, 1), + gsSPLight(&ttm_seg7_lights_07026068.a, 2), gsSPVertex(ttm_seg7_vertex_07028718, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 4, 3, 0x0, 7, 8, 9, 0x0), gsSP2Triangles(10, 8, 7, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(12, 14, 13, 0x0, 1, 15, 2, 0x0), - gsSPLight(&ttm_seg7_light_07026088, 1), - gsSPLight(&ttm_seg7_light_07026080, 2), + gsSPLight(&ttm_seg7_lights_07026080.l, 1), + gsSPLight(&ttm_seg7_lights_07026080.a, 2), gsSPVertex(ttm_seg7_vertex_07028818, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles(10, 8, 7, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(11, 14, 12, 0x0, 0, 15, 1, 0x0), - gsSPLight(&ttm_seg7_light_070260A0, 1), - gsSPLight(&ttm_seg7_light_07026098, 2), + gsSPLight(&ttm_seg7_lights_07026098.l, 1), + gsSPLight(&ttm_seg7_lights_07026098.a, 2), gsSPVertex(ttm_seg7_vertex_07028918, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -1429,22 +1377,22 @@ static const Gfx ttm_seg7_dl_07029A18[] = { gsSPVertex(ttm_seg7_vertex_07028BF8, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 7, 0x0, 4, 7, 5, 0x0), - gsSPLight(&ttm_seg7_light_070260B8, 1), - gsSPLight(&ttm_seg7_light_070260B0, 2), + gsSPLight(&ttm_seg7_lights_070260B0.l, 1), + gsSPLight(&ttm_seg7_lights_070260B0.a, 2), gsSPVertex(ttm_seg7_vertex_07028C78, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 10, 8, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(11, 14, 12, 0x0, 0, 2, 15, 0x0), - gsSPLight(&ttm_seg7_light_07026100, 1), - gsSPLight(&ttm_seg7_light_070260F8, 2), + gsSPLight(&ttm_seg7_lights_070260F8.l, 1), + gsSPLight(&ttm_seg7_lights_070260F8.a, 2), gsSPVertex(ttm_seg7_vertex_07028D78, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 9, 10, 0x0, 11, 12, 13, 0x0), gsSP2Triangles(11, 14, 12, 0x0, 0, 15, 1, 0x0), - gsSPLight(&ttm_seg7_light_070260D0, 1), - gsSPLight(&ttm_seg7_light_070260C8, 2), + gsSPLight(&ttm_seg7_lights_070260C8.l, 1), + gsSPLight(&ttm_seg7_lights_070260C8.a, 2), gsSPVertex(ttm_seg7_vertex_07028E78, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 1, 4, 2, 0x0, 2, 5, 6, 0x0), @@ -1460,8 +1408,8 @@ static const Gfx ttm_seg7_dl_07029A18[] = { // 0x0702A0D8 - 0x0702A1B8 static const Gfx ttm_seg7_dl_0702A0D8[] = { - gsSPLight(&ttm_seg7_light_07026118, 1), - gsSPLight(&ttm_seg7_light_07026110, 2), + gsSPLight(&ttm_seg7_lights_07026110.l, 1), + gsSPLight(&ttm_seg7_lights_07026110.a, 2), gsSPVertex(ttm_seg7_vertex_07029028, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 5, 7, 3, 0x0), diff --git a/levels/ttm/areas/4/2/model.inc.c b/levels/ttm/areas/4/2/model.inc.c index 942352a..c992a01 100644 --- a/levels/ttm/areas/4/2/model.inc.c +++ b/levels/ttm/areas/4/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x0702A2A0 - 0x0702A2A8 -static const Ambient ttm_seg7_light_0702A2A0 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0702A2A8 - 0x0702A2B8 -static const Light ttm_seg7_light_0702A2A8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0702A2A0 - 0x0702A2B8 +static const Lights1 ttm_seg7_lights_0702A2A0 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0702A2B8 - 0x0702A3A8 static const Vtx ttm_seg7_vertex_0702A2B8[] = { @@ -105,8 +101,8 @@ static const Gfx ttm_seg7_dl_0702A738[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0702A2A8, 1), - gsSPLight(&ttm_seg7_light_0702A2A0, 2), + gsSPLight(&ttm_seg7_lights_0702A2A0.l, 1), + gsSPLight(&ttm_seg7_lights_0702A2A0.a, 2), gsSPVertex(ttm_seg7_vertex_0702A2B8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/ttm/leveldata.c b/levels/ttm/leveldata.c index 97f4ef2..c8fb72f 100644 --- a/levels/ttm/leveldata.c +++ b/levels/ttm/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/ttm/texture.inc.c" diff --git a/levels/ttm/rolling_log/model.inc.c b/levels/ttm/rolling_log/model.inc.c index 07bce8e..3d9e313 100644 --- a/levels/ttm/rolling_log/model.inc.c +++ b/levels/ttm/rolling_log/model.inc.c @@ -1,12 +1,8 @@ -// 0x07011DE8 - 0x07011DF0 -static const Ambient ttm_seg7_light_07011DE8 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07011DF0 - 0x07011E00 -static const Light ttm_seg7_light_07011DF0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07011DE8 - 0x07011E00 +static const Lights1 ttm_seg7_lights_07011DE8 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07011E00 - 0x07011F00 static const Vtx ttm_seg7_vertex_07011E00[] = { @@ -79,8 +75,8 @@ static const Gfx ttm_seg7_dl_07012120[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ttm_seg7_texture_07002000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_07011DF0, 1), - gsSPLight(&ttm_seg7_light_07011DE8, 2), + gsSPLight(&ttm_seg7_lights_07011DE8.l, 1), + gsSPLight(&ttm_seg7_lights_07011DE8.a, 2), gsSPVertex(ttm_seg7_vertex_07011E00, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 3, 7, 8, 0x0), diff --git a/levels/ttm/script.c b/levels/ttm/script.c index 75038f7..ae68d8e 100644 --- a/levels/ttm/script.c +++ b/levels/ttm/script.c @@ -125,15 +125,15 @@ const LevelScript level_ttm_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2447, -2457, 3952, /*angle*/ 0, -105, 0, /*behParam*/ 0x00140000, /*beh*/ bhvWarps64), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2267, -3006, -3788, /*angle*/ 0, 148, 0, /*behParam*/ 0x00150000, /*beh*/ bhvFadingWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -557, -3448, -4146, /*angle*/ 0, -168, 0, /*behParam*/ 0x00160000, /*beh*/ bhvFadingWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x24, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x14, /*destLevel*/ 0x24, /*destArea*/ 0x01, /*destNode*/ 0x14, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x15, /*destLevel*/ 0x24, /*destArea*/ 0x01, /*destNode*/ 0x16, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x16, /*destLevel*/ 0x24, /*destArea*/ 0x01, /*destNode*/ 0x15, /*flags*/ WARP_NO_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x00, /*destLevel*/ 0x24, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x01, /*destLevel*/ 0x24, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_CHECKPOINT), - PAINTING_WARP_NODE(/*id*/ 0x02, /*destLevel*/ 0x24, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_TTM, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x14, /*destLevel*/ LEVEL_TTM, /*destArea*/ 0x01, /*destNode*/ 0x14, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x15, /*destLevel*/ LEVEL_TTM, /*destArea*/ 0x01, /*destNode*/ 0x16, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x16, /*destLevel*/ LEVEL_TTM, /*destArea*/ 0x01, /*destNode*/ 0x15, /*flags*/ WARP_NO_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x00, /*destLevel*/ LEVEL_TTM, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x01, /*destLevel*/ LEVEL_TTM, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_CHECKPOINT), + PAINTING_WARP_NODE(/*id*/ 0x02, /*destLevel*/ LEVEL_TTM, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), JUMP_LINK(script_func_local_3), @@ -145,9 +145,9 @@ const LevelScript level_ttm_entry[] = { AREA(/*index*/ 2, ttm_geo_000B5C), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 7000, 5381, 6750, /*angle*/ 0, 225, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps64), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x24, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_TTM, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_4), TERRAIN(/*terrainData*/ ttm_seg7_area_2_collision), MACRO_OBJECTS(/*objList*/ ttm_seg7_area_2_macro_objs), @@ -157,8 +157,8 @@ const LevelScript level_ttm_entry[] = { END_AREA(), AREA(/*index*/ 3, ttm_geo_000BEC), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_5), TERRAIN(/*terrainData*/ ttm_seg7_area_3_collision), MACRO_OBJECTS(/*objList*/ ttm_seg7_area_3_macro_objs), @@ -169,9 +169,9 @@ const LevelScript level_ttm_entry[] = { AREA(/*index*/ 4, ttm_geo_000C84), OBJECT(/*model*/ MODEL_TTM_SLIDE_EXIT_PODIUM, /*pos*/ -7285, -1866, -4812, /*angle*/ 0, 0, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvExitPodiumWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x24, /*destArea*/ 0x01, /*destNode*/ 0x14, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_TTM, /*destArea*/ 0x01, /*destNode*/ 0x14, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_6), JUMP_LINK(script_func_local_7), TERRAIN(/*terrainData*/ ttm_seg7_area_4_collision), diff --git a/levels/ttm/slide_exit_podium/model.inc.c b/levels/ttm/slide_exit_podium/model.inc.c index c134a91..3b39c91 100644 --- a/levels/ttm/slide_exit_podium/model.inc.c +++ b/levels/ttm/slide_exit_podium/model.inc.c @@ -1,32 +1,20 @@ -// 0x0702ACE8 - 0x0702ACF0 -static const Ambient ttm_seg7_light_0702ACE8 = { - {{0x0c, 0x0c, 0x0c}, 0, {0x0c, 0x0c, 0x0c}, 0} -}; +// 0x0702ACE8 - 0x0702AD00 +static const Lights1 ttm_seg7_lights_0702ACE8 = gdSPDefLights1( + 0x0c, 0x0c, 0x0c, + 0x33, 0x33, 0x33, 0x28, 0x28, 0x28 +); -// 0x0702ACF0 - 0x0702AD00 -static const Light ttm_seg7_light_0702ACF0 = { - {{0x33, 0x33, 0x33}, 0, {0x33, 0x33, 0x33}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0702AD00 - 0x0702AD18 +static const Lights1 ttm_seg7_lights_0702AD00 = gdSPDefLights1( + 0x1d, 0x1d, 0x1d, + 0x77, 0x77, 0x77, 0x28, 0x28, 0x28 +); -// 0x0702AD00 - 0x0702AD08 -static const Ambient ttm_seg7_light_0702AD00 = { - {{0x1d, 0x1d, 0x1d}, 0, {0x1d, 0x1d, 0x1d}, 0} -}; - -// 0x0702AD08 - 0x0702AD18 -static const Light ttm_seg7_light_0702AD08 = { - {{0x77, 0x77, 0x77}, 0, {0x77, 0x77, 0x77}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0702AD18 - 0x0702AD20 -static const Ambient ttm_seg7_light_0702AD18 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0702AD20 - 0x0702AD30 -static const Light ttm_seg7_light_0702AD20 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0702AD18 - 0x0702AD30 +static const Lights1 ttm_seg7_lights_0702AD18 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0702AD30 - 0x0702B530 ALIGNED8 static const u8 ttm_seg7_texture_0702AD30[] = { @@ -136,19 +124,19 @@ static const Gfx ttm_seg7_dl_0702B9D0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ttm_seg7_texture_0702AD30), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_0702ACF0, 1), - gsSPLight(&ttm_seg7_light_0702ACE8, 2), + gsSPLight(&ttm_seg7_lights_0702ACE8.l, 1), + gsSPLight(&ttm_seg7_lights_0702ACE8.a, 2), gsSPVertex(ttm_seg7_vertex_0702B530, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), - gsSPLight(&ttm_seg7_light_0702AD08, 1), - gsSPLight(&ttm_seg7_light_0702AD00, 2), + gsSPLight(&ttm_seg7_lights_0702AD00.l, 1), + gsSPLight(&ttm_seg7_lights_0702AD00.a, 2), gsSPVertex(ttm_seg7_vertex_0702B570, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 8, 11, 9, 0x0), gsSP2Triangles(12, 13, 14, 0x0, 12, 14, 15, 0x0), - gsSPLight(&ttm_seg7_light_0702AD20, 1), - gsSPLight(&ttm_seg7_light_0702AD18, 2), + gsSPLight(&ttm_seg7_lights_0702AD18.l, 1), + gsSPLight(&ttm_seg7_lights_0702AD18.a, 2), gsSPVertex(ttm_seg7_vertex_0702B670, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), diff --git a/levels/ttm/star_cage/1.inc.c b/levels/ttm/star_cage/1.inc.c index ab68d44..10a9900 100644 --- a/levels/ttm/star_cage/1.inc.c +++ b/levels/ttm/star_cage/1.inc.c @@ -1,22 +1,14 @@ -// 0x07012F78 - 0x07012F80 -static const Ambient ttm_seg7_light_07012F78 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; +// 0x07012F78 - 0x07012F90 +static const Lights1 ttm_seg7_lights_07012F78 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xfe, 0xfe, 0xfe, 0x28, 0x28, 0x28 +); -// 0x07012F80 - 0x07012F90 -static const Light ttm_seg7_light_07012F80 = { - {{0xfe, 0xfe, 0xfe}, 0, {0xfe, 0xfe, 0xfe}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07012F90 - 0x07012F98 -static const Ambient ttm_seg7_light_07012F90 = { - {{0x7f, 0x7f, 0x7f}, 0, {0x7f, 0x7f, 0x7f}, 0} -}; - -// 0x07012F98 - 0x07012FA8 -static const Light ttm_seg7_light_07012F98 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07012F90 - 0x07012FA8 +static const Lights1 ttm_seg7_lights_07012F90 = gdSPDefLights1( + 0x7f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07012FA8 - 0x07013028 static const Vtx ttm_seg7_vertex_07012FA8[] = { @@ -97,13 +89,13 @@ static const Gfx ttm_seg7_dl_07013308[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mountain_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&ttm_seg7_light_07012F80, 1), - gsSPLight(&ttm_seg7_light_07012F78, 2), + gsSPLight(&ttm_seg7_lights_07012F78.l, 1), + gsSPLight(&ttm_seg7_lights_07012F78.a, 2), gsSPVertex(ttm_seg7_vertex_07012FA8, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), - gsSPLight(&ttm_seg7_light_07012F98, 1), - gsSPLight(&ttm_seg7_light_07012F90, 2), + gsSPLight(&ttm_seg7_lights_07012F90.l, 1), + gsSPLight(&ttm_seg7_lights_07012F90.a, 2), gsSPVertex(ttm_seg7_vertex_07013028, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), diff --git a/levels/vcutm/areas/1/1/model.inc.c b/levels/vcutm/areas/1/1/model.inc.c index 4fdc194..14c036e 100644 --- a/levels/vcutm/areas/1/1/model.inc.c +++ b/levels/vcutm/areas/1/1/model.inc.c @@ -1,32 +1,20 @@ -// 0x07003000 - 0x07003008 -static const Ambient vcutm_seg7_light_07003000 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; +// 0x07003000 - 0x07003018 +static const Lights1 vcutm_seg7_lights_07003000 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07003008 - 0x07003018 -static const Light vcutm_seg7_light_07003008 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07003018 - 0x07003030 +static const Lights1 vcutm_seg7_lights_07003018 = gdSPDefLights1( + 0x32, 0x3f, 0x37, + 0xc8, 0xff, 0xdc, 0x28, 0x28, 0x28 +); -// 0x07003018 - 0x07003020 -static const Ambient vcutm_seg7_light_07003018 = { - {{0x32, 0x3f, 0x37}, 0, {0x32, 0x3f, 0x37}, 0} -}; - -// 0x07003020 - 0x07003030 -static const Light vcutm_seg7_light_07003020 = { - {{0xc8, 0xff, 0xdc}, 0, {0xc8, 0xff, 0xdc}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07003030 - 0x07003038 -static const Ambient vcutm_seg7_light_07003030 = { - {{0x2a, 0x2a, 0x2a}, 0, {0x2a, 0x2a, 0x2a}, 0} -}; - -// 0x07003038 - 0x07003048 -static const Light vcutm_seg7_light_07003038 = { - {{0xaa, 0xaa, 0xaa}, 0, {0xaa, 0xaa, 0xaa}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07003030 - 0x07003048 +static const Lights1 vcutm_seg7_lights_07003030 = gdSPDefLights1( + 0x2a, 0x2a, 0x2a, + 0xaa, 0xaa, 0xaa, 0x28, 0x28, 0x28 +); // 0x07003048 - 0x07003128 static const Vtx vcutm_seg7_vertex_07003048[] = { @@ -1253,8 +1241,8 @@ static const Gfx vcutm_seg7_dl_07006C48[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, outside_0900B000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 16 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&vcutm_seg7_light_07003008, 1), - gsSPLight(&vcutm_seg7_light_07003000, 2), + gsSPLight(&vcutm_seg7_lights_07003000.l, 1), + gsSPLight(&vcutm_seg7_lights_07003000.a, 2), gsSPVertex(vcutm_seg7_vertex_07003048, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 0, 3, 4, 0x0, 0, 4, 5, 0x0), @@ -1412,8 +1400,8 @@ static const Gfx vcutm_seg7_dl_070074A0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, outside_09009000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&vcutm_seg7_light_07003020, 1), - gsSPLight(&vcutm_seg7_light_07003018, 2), + gsSPLight(&vcutm_seg7_lights_07003018.l, 1), + gsSPLight(&vcutm_seg7_lights_07003018.a, 2), gsSPVertex(vcutm_seg7_vertex_07004FB8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -1424,8 +1412,8 @@ static const Gfx vcutm_seg7_dl_070074A0[] = { gsSP2Triangles( 6, 7, 8, 0x0, 7, 9, 8, 0x0), gsSP2Triangles(10, 11, 12, 0x0, 11, 13, 12, 0x0), gsSP1Triangle(14, 0, 2, 0x0), - gsSPLight(&vcutm_seg7_light_07003008, 1), - gsSPLight(&vcutm_seg7_light_07003000, 2), + gsSPLight(&vcutm_seg7_lights_07003000.l, 1), + gsSPLight(&vcutm_seg7_lights_07003000.a, 2), gsSPVertex(vcutm_seg7_vertex_07005198, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -1454,8 +1442,8 @@ static const Gfx vcutm_seg7_dl_07007660[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, outside_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&vcutm_seg7_light_07003038, 1), - gsSPLight(&vcutm_seg7_light_07003030, 2), + gsSPLight(&vcutm_seg7_lights_07003030.l, 1), + gsSPLight(&vcutm_seg7_lights_07003030.a, 2), gsSPVertex(vcutm_seg7_vertex_07005558, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -1466,8 +1454,8 @@ static const Gfx vcutm_seg7_dl_07007660[] = { gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), gsSP2Triangles(10, 11, 12, 0x0, 10, 12, 13, 0x0), gsSP1Triangle( 0, 2, 14, 0x0), - gsSPLight(&vcutm_seg7_light_07003008, 1), - gsSPLight(&vcutm_seg7_light_07003000, 2), + gsSPLight(&vcutm_seg7_lights_07003000.l, 1), + gsSPLight(&vcutm_seg7_lights_07003000.a, 2), gsSPVertex(vcutm_seg7_vertex_07005738, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0), gsSP2Triangles( 4, 3, 5, 0x0, 3, 6, 5, 0x0), @@ -1515,15 +1503,15 @@ static const Gfx vcutm_seg7_dl_07007940[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, vcutm_seg7_texture_07002800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&vcutm_seg7_light_07003038, 1), - gsSPLight(&vcutm_seg7_light_07003030, 2), + gsSPLight(&vcutm_seg7_lights_07003030.l, 1), + gsSPLight(&vcutm_seg7_lights_07003030.a, 2), gsSPVertex(vcutm_seg7_vertex_07005D18, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 9, 10, 0x0, 4, 11, 5, 0x0), gsSP2Triangles(12, 13, 14, 0x0, 12, 15, 13, 0x0), - gsSPLight(&vcutm_seg7_light_07003008, 1), - gsSPLight(&vcutm_seg7_light_07003000, 2), + gsSPLight(&vcutm_seg7_lights_07003000.l, 1), + gsSPLight(&vcutm_seg7_lights_07003000.a, 2), gsSPVertex(vcutm_seg7_vertex_07005E18, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), @@ -1623,8 +1611,8 @@ static const Gfx vcutm_seg7_dl_07007D80[] = { // 0x07007E00 - 0x07007E88 static const Gfx vcutm_seg7_dl_07007E00[] = { - gsSPLight(&vcutm_seg7_light_07003038, 1), - gsSPLight(&vcutm_seg7_light_07003030, 2), + gsSPLight(&vcutm_seg7_lights_07003030.l, 1), + gsSPLight(&vcutm_seg7_lights_07003030.a, 2), gsSPVertex(vcutm_seg7_vertex_07006AD8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/levels/vcutm/areas/1/2/model.inc.c b/levels/vcutm/areas/1/2/model.inc.c index 29cb260..a5f2b85 100644 --- a/levels/vcutm/areas/1/2/model.inc.c +++ b/levels/vcutm/areas/1/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x07007F90 - 0x07007F98 -static const Ambient vcutm_seg7_light_07007F90 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07007F98 - 0x07007FA8 -static const Light vcutm_seg7_light_07007F98 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07007F90 - 0x07007FA8 +static const Lights1 vcutm_seg7_lights_07007F90 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07007FA8 - 0x07008068 static const Vtx vcutm_seg7_vertex_07007FA8[] = { @@ -29,8 +25,8 @@ static const Gfx vcutm_seg7_dl_07008068[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, vcutm_seg7_texture_07000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&vcutm_seg7_light_07007F98, 1), - gsSPLight(&vcutm_seg7_light_07007F90, 2), + gsSPLight(&vcutm_seg7_lights_07007F90.l, 1), + gsSPLight(&vcutm_seg7_lights_07007F90.a, 2), gsSPVertex(vcutm_seg7_vertex_07007FA8, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/vcutm/script.c b/levels/vcutm/script.c index 448f193..1effd47 100644 --- a/levels/vcutm/script.c +++ b/levels/vcutm/script.c @@ -3,6 +3,7 @@ #include "behavior_data.h" #include "model_ids.h" #include "seq_ids.h" +#include "dialog_ids.h" #include "segment_symbols.h" #include "level_commands.h" @@ -53,16 +54,16 @@ const LevelScript level_vcutm_entry[] = { AREA(/*index*/ 1, vcutm_geo_000208), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -6143, 6734, -6143, /*angle*/ 0, 0, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps64), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x12, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF3, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x07, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x08, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x06, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_VCUTM, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF3, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x07, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x08, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x06, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_3), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), TERRAIN(/*terrainData*/ vcutm_seg7_collision), MACRO_OBJECTS(/*objList*/ vcutm_seg7_macro_objs), - SHOW_DIALOG(/*index*/ 0x00, /*dialogid*/ 0x81), + SHOW_DIALOG(/*index*/ 0x00, DIALOG_129), SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0000, /*seq*/ SEQ_LEVEL_SLIDE), TERRAIN_TYPE(/*terrainType*/ TERRAIN_STONE), END_AREA(), diff --git a/levels/vcutm/seesaw/model.inc.c b/levels/vcutm/seesaw/model.inc.c index d4256d2..c725667 100644 --- a/levels/vcutm/seesaw/model.inc.c +++ b/levels/vcutm/seesaw/model.inc.c @@ -1,22 +1,14 @@ -// 0x07009458 - 0x07009460 -static const Ambient vcutm_seg7_light_07009458 = { - {{0x22, 0x22, 0x22}, 0, {0x22, 0x22, 0x22}, 0} -}; +// 0x07009458 - 0x07009470 +static const Lights1 vcutm_seg7_lights_07009458 = gdSPDefLights1( + 0x22, 0x22, 0x22, + 0x88, 0x88, 0x88, 0x28, 0x28, 0x28 +); -// 0x07009460 - 0x07009470 -static const Light vcutm_seg7_light_07009460 = { - {{0x88, 0x88, 0x88}, 0, {0x88, 0x88, 0x88}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07009470 - 0x07009478 -static const Ambient vcutm_seg7_light_07009470 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x07009478 - 0x07009488 -static const Light vcutm_seg7_light_07009478 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07009470 - 0x07009488 +static const Lights1 vcutm_seg7_lights_07009470 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07009488 - 0x07009578 static const Vtx vcutm_seg7_vertex_07009488[] = { @@ -61,8 +53,8 @@ static const Gfx vcutm_seg7_dl_07009628[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, vcutm_seg7_texture_07001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&vcutm_seg7_light_07009460, 1), - gsSPLight(&vcutm_seg7_light_07009458, 2), + gsSPLight(&vcutm_seg7_lights_07009458.l, 1), + gsSPLight(&vcutm_seg7_lights_07009458.a, 2), gsSPVertex(vcutm_seg7_vertex_07009488, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -71,8 +63,8 @@ static const Gfx vcutm_seg7_dl_07009628[] = { gsSPVertex(vcutm_seg7_vertex_07009578, 7, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP1Triangle( 4, 5, 6, 0x0), - gsSPLight(&vcutm_seg7_light_07009478, 1), - gsSPLight(&vcutm_seg7_light_07009470, 2), + gsSPLight(&vcutm_seg7_lights_07009470.l, 1), + gsSPLight(&vcutm_seg7_lights_07009470.a, 2), gsSPVertex(vcutm_seg7_vertex_070095E8, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/wdw/areas/1/1/model.inc.c b/levels/wdw/areas/1/1/model.inc.c index 9d77318..2093d09 100644 --- a/levels/wdw/areas/1/1/model.inc.c +++ b/levels/wdw/areas/1/1/model.inc.c @@ -1,22 +1,14 @@ -// 0x07002800 - 0x07002808 -static const Ambient wdw_seg7_light_07002800 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0} -}; +// 0x07002800 - 0x07002818 +static const Lights1 wdw_seg7_lights_07002800 = gdSPDefLights1( + 0x99, 0x99, 0x99, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07002808 - 0x07002818 -static const Light wdw_seg7_light_07002808 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07002818 - 0x07002820 -static const Ambient wdw_seg7_light_07002818 = { - {{0x3c, 0x3c, 0x3c}, 0, {0x3c, 0x3c, 0x3c}, 0} -}; - -// 0x07002820 - 0x07002830 -static const Light wdw_seg7_light_07002820 = { - {{0x64, 0x64, 0x64}, 0, {0x64, 0x64, 0x64}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07002818 - 0x07002830 +static const Lights1 wdw_seg7_lights_07002818 = gdSPDefLights1( + 0x3c, 0x3c, 0x3c, + 0x64, 0x64, 0x64, 0x28, 0x28, 0x28 +); // 0x07002830 - 0x07002920 static const Vtx wdw_seg7_vertex_07002830[] = { @@ -1850,8 +1842,8 @@ static const Gfx wdw_seg7_dl_07008160[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wdw_seg7_light_07002808, 1), - gsSPLight(&wdw_seg7_light_07002800, 2), + gsSPLight(&wdw_seg7_lights_07002800.l, 1), + gsSPLight(&wdw_seg7_lights_07002800.a, 2), gsSPVertex(wdw_seg7_vertex_07002830, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -1918,8 +1910,8 @@ static const Gfx wdw_seg7_dl_07008160[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), gsSP2Triangles( 7, 9, 10, 0x0, 11, 12, 13, 0x0), - gsSPLight(&wdw_seg7_light_07002820, 1), - gsSPLight(&wdw_seg7_light_07002818, 2), + gsSPLight(&wdw_seg7_lights_07002818.l, 1), + gsSPLight(&wdw_seg7_lights_07002818.a, 2), gsSPVertex(wdw_seg7_vertex_07003630, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -1937,8 +1929,8 @@ static const Gfx wdw_seg7_dl_07008598[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wdw_seg7_light_07002808, 1), - gsSPLight(&wdw_seg7_light_07002800, 2), + gsSPLight(&wdw_seg7_lights_07002800.l, 1), + gsSPLight(&wdw_seg7_lights_07002800.a, 2), gsSPVertex(wdw_seg7_vertex_070037D0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -1970,8 +1962,8 @@ static const Gfx wdw_seg7_dl_07008598[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 3, 7, 6, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 8, 11, 9, 0x0), - gsSPLight(&wdw_seg7_light_07002820, 1), - gsSPLight(&wdw_seg7_light_07002818, 2), + gsSPLight(&wdw_seg7_lights_07002818.l, 1), + gsSPLight(&wdw_seg7_lights_07002818.a, 2), gsSPVertex(wdw_seg7_vertex_07003D70, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), @@ -1984,8 +1976,8 @@ static const Gfx wdw_seg7_dl_070087B8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09009000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wdw_seg7_light_07002808, 1), - gsSPLight(&wdw_seg7_light_07002800, 2), + gsSPLight(&wdw_seg7_lights_07002800.l, 1), + gsSPLight(&wdw_seg7_lights_07002800.a, 2), gsSPVertex(wdw_seg7_vertex_07003E30, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -2046,8 +2038,8 @@ static const Gfx wdw_seg7_dl_07008910[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 3, 7, 0, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 8, 10, 11, 0x0), - gsSPLight(&wdw_seg7_light_07002820, 1), - gsSPLight(&wdw_seg7_light_07002818, 2), + gsSPLight(&wdw_seg7_lights_07002818.l, 1), + gsSPLight(&wdw_seg7_lights_07002818.a, 2), gsSPVertex(wdw_seg7_vertex_070047D0, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -2061,8 +2053,8 @@ static const Gfx wdw_seg7_dl_07008B00[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wdw_seg7_light_07002808, 1), - gsSPLight(&wdw_seg7_light_07002800, 2), + gsSPLight(&wdw_seg7_lights_07002800.l, 1), + gsSPLight(&wdw_seg7_lights_07002800.a, 2), gsSPVertex(wdw_seg7_vertex_070048D0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -2401,8 +2393,8 @@ static const Gfx wdw_seg7_dl_070099B0[] = { gsSP1Triangle(13, 14, 15, 0x0), gsSPVertex(wdw_seg7_vertex_070080F0, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), - gsSPLight(&wdw_seg7_light_07002820, 1), - gsSPLight(&wdw_seg7_light_07002818, 2), + gsSPLight(&wdw_seg7_lights_07002818.l, 1), + gsSPLight(&wdw_seg7_lights_07002818.a, 2), gsSPVertex(wdw_seg7_vertex_07008120, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/wdw/areas/1/2/model.inc.c b/levels/wdw/areas/1/2/model.inc.c index 04f97db..2e58c03 100644 --- a/levels/wdw/areas/1/2/model.inc.c +++ b/levels/wdw/areas/1/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x07009B78 - 0x07009B80 -static const Ambient wdw_seg7_light_07009B78 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0} -}; - -// 0x07009B80 - 0x07009B90 -static const Light wdw_seg7_light_07009B80 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07009B78 - 0x07009B90 +static const Lights1 wdw_seg7_lights_07009B78 = gdSPDefLights1( + 0x99, 0x99, 0x99, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07009B90 - 0x07009C70 static const Vtx wdw_seg7_vertex_07009B90[] = { @@ -99,8 +95,8 @@ static const Gfx wdw_seg7_dl_07009FB0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wdw_seg7_light_07009B80, 1), - gsSPLight(&wdw_seg7_light_07009B78, 2), + gsSPLight(&wdw_seg7_lights_07009B78.l, 1), + gsSPLight(&wdw_seg7_lights_07009B78.a, 2), gsSPVertex(wdw_seg7_vertex_07009B90, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/wdw/areas/1/geo.inc.c b/levels/wdw/areas/1/geo.inc.c index f4ce50f..d7e4377 100644 --- a/levels/wdw/areas/1/geo.inc.c +++ b/levels/wdw/areas/1/geo.inc.c @@ -29,7 +29,7 @@ const GeoLayout wdw_geo_000658[] = { GEO_CLOSE_NODE(), GEO_ZBUFFER(0), GEO_OPEN_NODE(), - GEO_ASM(0, Geo18_802CD1E8), + GEO_ASM(0, geo_cannon_circle_base), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/levels/wdw/areas/1/macro.inc.c b/levels/wdw/areas/1/macro.inc.c index bd1d839..c27d5c7 100644 --- a/levels/wdw/areas/1/macro.inc.c +++ b/levels/wdw/areas/1/macro.inc.c @@ -1,6 +1,6 @@ // 0x070160D8 - 0x0701633C const MacroObject wdw_seg7_area_1_macro_objs[] = { - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -2077, 2816, -660, /*behParam*/ 81), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -2077, 2816, -660, /*behParam*/ DIALOG_081), MACRO_OBJECT(/*preset*/ macro_bobomb_buddy_opens_cannon, /*yaw*/ 0, /*pos*/ -2, 2944, 3583), MACRO_OBJECT(/*preset*/ macro_coin_ring_horizontal, /*yaw*/ 0, /*pos*/ -2057, 2800, -500), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 90, /*pos*/ 1500, 1741, 2191), @@ -59,7 +59,7 @@ const MacroObject wdw_seg7_area_1_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_box_three_coins, /*yaw*/ 0, /*pos*/ 3388, 1600, 1155), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 90, /*pos*/ 740, 3072, -3560), MACRO_OBJECT(/*preset*/ macro_box_star_2, /*yaw*/ 0, /*pos*/ 1550, 4350, 100), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 740, 3060, -3680, /*behParam*/ 53), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 740, 3060, -3680, /*behParam*/ DIALOG_053), MACRO_OBJECT(/*preset*/ macro_breakable_box_three_coins, /*yaw*/ 0, /*pos*/ 4500, 0, 1040), MACRO_OBJECT_END(), }; diff --git a/levels/wdw/areas/2/1/model.inc.c b/levels/wdw/areas/2/1/model.inc.c index 4e7c9a8..a9d5338 100644 --- a/levels/wdw/areas/2/1/model.inc.c +++ b/levels/wdw/areas/2/1/model.inc.c @@ -1,42 +1,26 @@ -// 0x0700A1B0 - 0x0700A1B8 -static const Ambient wdw_seg7_light_0700A1B0 = { - {{0x99, 0x99, 0x82}, 0, {0x99, 0x99, 0x82}, 0} -}; +// 0x0700A1B0 - 0x0700A1C8 +static const Lights1 wdw_seg7_lights_0700A1B0 = gdSPDefLights1( + 0x99, 0x99, 0x82, + 0xff, 0xff, 0xd9, 0x28, 0x28, 0x28 +); -// 0x0700A1B8 - 0x0700A1C8 -static const Light wdw_seg7_light_0700A1B8 = { - {{0xff, 0xff, 0xd9}, 0, {0xff, 0xff, 0xd9}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700A1C8 - 0x0700A1E0 +static const Lights1 wdw_seg7_lights_0700A1C8 = gdSPDefLights1( + 0x99, 0x99, 0x99, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x0700A1C8 - 0x0700A1D0 -static const Ambient wdw_seg7_light_0700A1C8 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0} -}; +// 0x0700A1E0 - 0x0700A1F8 +static const Lights1 wdw_seg7_lights_0700A1E0 = gdSPDefLights1( + 0x3c, 0x3c, 0x3c, + 0x64, 0x64, 0x64, 0x28, 0x28, 0x28 +); -// 0x0700A1D0 - 0x0700A1E0 -static const Light wdw_seg7_light_0700A1D0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700A1E0 - 0x0700A1E8 -static const Ambient wdw_seg7_light_0700A1E0 = { - {{0x3c, 0x3c, 0x3c}, 0, {0x3c, 0x3c, 0x3c}, 0} -}; - -// 0x0700A1E8 - 0x0700A1F8 -static const Light wdw_seg7_light_0700A1E8 = { - {{0x64, 0x64, 0x64}, 0, {0x64, 0x64, 0x64}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x0700A1F8 - 0x0700A200 -static const Ambient wdw_seg7_light_0700A1F8 = { - {{0x7b, 0x0d, 0x1f}, 0, {0x7b, 0x0d, 0x1f}, 0} -}; - -// 0x0700A200 - 0x0700A210 -static const Light wdw_seg7_light_0700A200 = { - {{0xce, 0x16, 0x35}, 0, {0xce, 0x16, 0x35}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700A1F8 - 0x0700A210 +static const Lights1 wdw_seg7_lights_0700A1F8 = gdSPDefLights1( + 0x7b, 0x0d, 0x1f, + 0xce, 0x16, 0x35, 0x28, 0x28, 0x28 +); // 0x0700A210 - 0x0700A270 static const Vtx wdw_seg7_vertex_0700A210[] = { @@ -2000,13 +1984,13 @@ static const Gfx wdw_seg7_dl_07010120[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wdw_seg7_light_0700A1B8, 1), - gsSPLight(&wdw_seg7_light_0700A1B0, 2), + gsSPLight(&wdw_seg7_lights_0700A1B0.l, 1), + gsSPLight(&wdw_seg7_lights_0700A1B0.a, 2), gsSPVertex(wdw_seg7_vertex_0700A210, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 4, 1, 0x0, 0, 2, 5, 0x0), - gsSPLight(&wdw_seg7_light_0700A1D0, 1), - gsSPLight(&wdw_seg7_light_0700A1C8, 2), + gsSPLight(&wdw_seg7_lights_0700A1C8.l, 1), + gsSPLight(&wdw_seg7_lights_0700A1C8.a, 2), gsSPVertex(wdw_seg7_vertex_0700A270, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), @@ -2071,8 +2055,8 @@ static const Gfx wdw_seg7_dl_07010120[] = { gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0), gsSPVertex(wdw_seg7_vertex_0700ACD0, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&wdw_seg7_light_0700A1E8, 1), - gsSPLight(&wdw_seg7_light_0700A1E0, 2), + gsSPLight(&wdw_seg7_lights_0700A1E0.l, 1), + gsSPLight(&wdw_seg7_lights_0700A1E0.a, 2), gsSPVertex(wdw_seg7_vertex_0700AD10, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -2091,8 +2075,8 @@ static const Gfx wdw_seg7_dl_07010578[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wdw_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wdw_seg7_light_0700A200, 1), - gsSPLight(&wdw_seg7_light_0700A1F8, 2), + gsSPLight(&wdw_seg7_lights_0700A1F8.l, 1), + gsSPLight(&wdw_seg7_lights_0700A1F8.a, 2), gsSPVertex(wdw_seg7_vertex_0700AED0, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -2102,8 +2086,8 @@ static const Gfx wdw_seg7_dl_07010578[] = { gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 8, 11, 9, 0x0), gsSP2Triangles(12, 13, 14, 0x0, 12, 15, 13, 0x0), - gsSPLight(&wdw_seg7_light_0700A1D0, 1), - gsSPLight(&wdw_seg7_light_0700A1C8, 2), + gsSPLight(&wdw_seg7_lights_0700A1C8.l, 1), + gsSPLight(&wdw_seg7_lights_0700A1C8.a, 2), gsSPVertex(wdw_seg7_vertex_0700B0B0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -2357,8 +2341,8 @@ static const Gfx wdw_seg7_dl_07010EA0[] = { gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 8, 9, 0x0), gsSP1Triangle( 0, 2, 10, 0x0), - gsSPLight(&wdw_seg7_light_0700A1E8, 1), - gsSPLight(&wdw_seg7_light_0700A1E0, 2), + gsSPLight(&wdw_seg7_lights_0700A1E0.l, 1), + gsSPLight(&wdw_seg7_lights_0700A1E0.a, 2), gsSPVertex(wdw_seg7_vertex_0700D770, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), @@ -2369,8 +2353,8 @@ static const Gfx wdw_seg7_dl_07011208[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09007800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wdw_seg7_light_0700A1D0, 1), - gsSPLight(&wdw_seg7_light_0700A1C8, 2), + gsSPLight(&wdw_seg7_lights_0700A1C8.l, 1), + gsSPLight(&wdw_seg7_lights_0700A1C8.a, 2), gsSPVertex(wdw_seg7_vertex_0700D7B0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/wdw/areas/2/2/model.inc.c b/levels/wdw/areas/2/2/model.inc.c index 597257c..4d414a8 100644 --- a/levels/wdw/areas/2/2/model.inc.c +++ b/levels/wdw/areas/2/2/model.inc.c @@ -1,32 +1,20 @@ -// 0x07011F58 - 0x07011F60 -static const Ambient wdw_seg7_light_07011F58 = { - {{0x54, 0x90, 0x88}, 0, {0x54, 0x90, 0x88}, 0} -}; +// 0x07011F58 - 0x07011F70 +static const Lights1 wdw_seg7_lights_07011F58 = gdSPDefLights1( + 0x54, 0x90, 0x88, + 0x8d, 0xf0, 0xe3, 0x28, 0x28, 0x28 +); -// 0x07011F60 - 0x07011F70 -static const Light wdw_seg7_light_07011F60 = { - {{0x8d, 0xf0, 0xe3}, 0, {0x8d, 0xf0, 0xe3}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07011F70 - 0x07011F88 +static const Lights1 wdw_seg7_lights_07011F70 = gdSPDefLights1( + 0x56, 0x57, 0x8e, + 0x90, 0x92, 0xee, 0x28, 0x28, 0x28 +); -// 0x07011F70 - 0x07011F78 -static const Ambient wdw_seg7_light_07011F70 = { - {{0x56, 0x57, 0x8e}, 0, {0x56, 0x57, 0x8e}, 0} -}; - -// 0x07011F78 - 0x07011F88 -static const Light wdw_seg7_light_07011F78 = { - {{0x90, 0x92, 0xee}, 0, {0x90, 0x92, 0xee}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07011F88 - 0x07011F90 -static const Ambient wdw_seg7_light_07011F88 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0} -}; - -// 0x07011F90 - 0x07011FA0 -static const Light wdw_seg7_light_07011F90 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07011F88 - 0x07011FA0 +static const Lights1 wdw_seg7_lights_07011F88 = gdSPDefLights1( + 0x99, 0x99, 0x99, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07011FA0 - 0x07012020 static const Vtx wdw_seg7_vertex_07011FA0[] = { @@ -73,20 +61,20 @@ static const Gfx wdw_seg7_dl_07012160[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wdw_seg7_light_07011F60, 1), - gsSPLight(&wdw_seg7_light_07011F58, 2), + gsSPLight(&wdw_seg7_lights_07011F58.l, 1), + gsSPLight(&wdw_seg7_lights_07011F58.a, 2), gsSPVertex(wdw_seg7_vertex_07011FA0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 0, 3, 4, 0x0, 0, 5, 6, 0x0), gsSP2Triangles( 0, 6, 7, 0x0, 0, 4, 5, 0x0), - gsSPLight(&wdw_seg7_light_07011F78, 1), - gsSPLight(&wdw_seg7_light_07011F70, 2), + gsSPLight(&wdw_seg7_lights_07011F70.l, 1), + gsSPLight(&wdw_seg7_lights_07011F70.a, 2), gsSPVertex(wdw_seg7_vertex_07012020, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0), gsSP2Triangles( 0, 4, 5, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 0, 5, 6, 0x0, 0, 6, 7, 0x0), - gsSPLight(&wdw_seg7_light_07011F90, 1), - gsSPLight(&wdw_seg7_light_07011F88, 2), + gsSPLight(&wdw_seg7_lights_07011F88.l, 1), + gsSPLight(&wdw_seg7_lights_07011F88.a, 2), gsSPVertex(wdw_seg7_vertex_070120A0, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 0, 7, 1, 0x0), diff --git a/levels/wdw/arrow_lift/model.inc.c b/levels/wdw/arrow_lift/model.inc.c index c25c943..4648ec3 100644 --- a/levels/wdw/arrow_lift/model.inc.c +++ b/levels/wdw/arrow_lift/model.inc.c @@ -1,12 +1,8 @@ -// 0x07012C08 - 0x07012C10 -static const Ambient wdw_seg7_light_07012C08 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0} -}; - -// 0x07012C10 - 0x07012C20 -static const Light wdw_seg7_light_07012C10 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07012C08 - 0x07012C20 +static const Lights1 wdw_seg7_lights_07012C08 = gdSPDefLights1( + 0x99, 0x99, 0x99, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07012C20 - 0x07012C60 static const Vtx wdw_seg7_vertex_07012C20[] = { @@ -51,8 +47,8 @@ static const Gfx wdw_seg7_dl_07012DC0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wdw_seg7_texture_07001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wdw_seg7_light_07012C10, 1), - gsSPLight(&wdw_seg7_light_07012C08, 2), + gsSPLight(&wdw_seg7_lights_07012C08.l, 1), + gsSPLight(&wdw_seg7_lights_07012C08.a, 2), gsSPVertex(wdw_seg7_vertex_07012C20, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/wdw/express_elevator/model.inc.c b/levels/wdw/express_elevator/model.inc.c index fdcbc30..0e886fd 100644 --- a/levels/wdw/express_elevator/model.inc.c +++ b/levels/wdw/express_elevator/model.inc.c @@ -1,12 +1,8 @@ -// 0x07013500 - 0x07013508 -static const Ambient wdw_seg7_light_07013500 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0} -}; - -// 0x07013508 - 0x07013518 -static const Light wdw_seg7_light_07013508 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07013500 - 0x07013518 +static const Lights1 wdw_seg7_lights_07013500 = gdSPDefLights1( + 0x99, 0x99, 0x99, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07013518 - 0x07013618 static const Vtx wdw_seg7_vertex_07013518[] = { @@ -109,8 +105,8 @@ static const Gfx wdw_seg7_dl_070139D8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wdw_seg7_light_07013508, 1), - gsSPLight(&wdw_seg7_light_07013500, 2), + gsSPLight(&wdw_seg7_lights_07013500.l, 1), + gsSPLight(&wdw_seg7_lights_07013500.a, 2), gsSPVertex(wdw_seg7_vertex_07013518, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wdw/hidden_platform/model.inc.c b/levels/wdw/hidden_platform/model.inc.c index 59e1aca..3bd79d2 100644 --- a/levels/wdw/hidden_platform/model.inc.c +++ b/levels/wdw/hidden_platform/model.inc.c @@ -1,12 +1,8 @@ -// 0x07013238 - 0x07013240 -static const Ambient wdw_seg7_light_07013238 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0} -}; - -// 0x07013240 - 0x07013250 -static const Light wdw_seg7_light_07013240 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07013238 - 0x07013250 +static const Lights1 wdw_seg7_lights_07013238 = gdSPDefLights1( + 0x99, 0x99, 0x99, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07013250 - 0x07013340 static const Vtx wdw_seg7_vertex_07013250[] = { @@ -47,8 +43,8 @@ static const Gfx wdw_seg7_dl_070133F0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wdw_seg7_light_07013240, 1), - gsSPLight(&wdw_seg7_light_07013238, 2), + gsSPLight(&wdw_seg7_lights_07013238.l, 1), + gsSPLight(&wdw_seg7_lights_07013238.a, 2), gsSPVertex(wdw_seg7_vertex_07013250, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wdw/leveldata.c b/levels/wdw/leveldata.c index ac0bc03..6eba89e 100644 --- a/levels/wdw/leveldata.c +++ b/levels/wdw/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/wdw/texture.inc.c" diff --git a/levels/wdw/rectangular_floating_platform/model.inc.c b/levels/wdw/rectangular_floating_platform/model.inc.c index 055fadd..fc0a2cf 100644 --- a/levels/wdw/rectangular_floating_platform/model.inc.c +++ b/levels/wdw/rectangular_floating_platform/model.inc.c @@ -1,12 +1,8 @@ -// 0x07013BE8 - 0x07013BF0 -static const Ambient wdw_seg7_light_07013BE8 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0} -}; - -// 0x07013BF0 - 0x07013C00 -static const Light wdw_seg7_light_07013BF0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07013BE8 - 0x07013C00 +static const Lights1 wdw_seg7_lights_07013BE8 = gdSPDefLights1( + 0x99, 0x99, 0x99, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07013C00 - 0x07013D00 static const Vtx wdw_seg7_vertex_07013C00[] = { @@ -45,8 +41,8 @@ static const Gfx wdw_seg7_dl_07013D80[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wdw_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wdw_seg7_light_07013BF0, 1), - gsSPLight(&wdw_seg7_light_07013BE8, 2), + gsSPLight(&wdw_seg7_lights_07013BE8.l, 1), + gsSPLight(&wdw_seg7_lights_07013BE8.a, 2), gsSPVertex(wdw_seg7_vertex_07013C00, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/levels/wdw/rotating_platform/model.inc.c b/levels/wdw/rotating_platform/model.inc.c index ce4ef4c..b97a660 100644 --- a/levels/wdw/rotating_platform/model.inc.c +++ b/levels/wdw/rotating_platform/model.inc.c @@ -1,12 +1,8 @@ -// 0x07013EB8 - 0x07013EC0 -static const Ambient wdw_seg7_light_07013EB8 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0} -}; - -// 0x07013EC0 - 0x07013ED0 -static const Light wdw_seg7_light_07013EC0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07013EB8 - 0x07013ED0 +static const Lights1 wdw_seg7_lights_07013EB8 = gdSPDefLights1( + 0x99, 0x99, 0x99, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07013ED0 - 0x07013FC0 static const Vtx wdw_seg7_vertex_07013ED0[] = { @@ -45,8 +41,8 @@ static const Gfx wdw_seg7_dl_07014050[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wdw_seg7_light_07013EC0, 1), - gsSPLight(&wdw_seg7_light_07013EB8, 2), + gsSPLight(&wdw_seg7_lights_07013EB8.l, 1), + gsSPLight(&wdw_seg7_lights_07013EB8.a, 2), gsSPVertex(wdw_seg7_vertex_07013ED0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 3, 6, 7, 0x0), diff --git a/levels/wdw/script.c b/levels/wdw/script.c index f3a0676..773109c 100644 --- a/levels/wdw/script.c +++ b/levels/wdw/script.c @@ -96,13 +96,13 @@ const LevelScript level_wdw_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ 3395, 3580, 384, /*angle*/ 0, 180, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps74), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 818, 0, 3634, /*angle*/ 0, 45, 0, /*behParam*/ 0x000B0000, /*beh*/ bhvFadingWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2865, 3328, 3065, /*angle*/ 0, 0, 0, /*behParam*/ 0x000C0000, /*beh*/ bhvFadingWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x0B, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x0B, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0C, /*destLevel*/ 0x0B, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_WDW, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_WDW, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_WDW, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_3), JUMP_LINK(script_func_local_1), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT), INSTANT_WARP(/*index*/ 1, /*destArea*/ 2, /*displace*/ 0, 0, 0), TERRAIN(/*terrainData*/ wdw_seg7_area_1_collision), MACRO_OBJECTS(/*objList*/ wdw_seg7_area_1_macro_objs), @@ -113,8 +113,8 @@ const LevelScript level_wdw_entry[] = { AREA(/*index*/ 2, wdw_geo_000724), JUMP_LINK(script_func_local_4), JUMP_LINK(script_func_local_2), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT), INSTANT_WARP(/*index*/ 0, /*destArea*/ 1, /*displace*/ 0, 0, 0), TERRAIN(/*terrainData*/ wdw_seg7_area_2_collision), MACRO_OBJECTS(/*objList*/ wdw_seg7_area_2_macro_objs), diff --git a/levels/wdw/square_floating_platform/model.inc.c b/levels/wdw/square_floating_platform/model.inc.c index 3d8d759..f2c0306 100644 --- a/levels/wdw/square_floating_platform/model.inc.c +++ b/levels/wdw/square_floating_platform/model.inc.c @@ -1,12 +1,8 @@ -// 0x07012938 - 0x07012940 -static const Ambient wdw_seg7_light_07012938 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0} -}; - -// 0x07012940 - 0x07012950 -static const Light wdw_seg7_light_07012940 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07012938 - 0x07012950 +static const Lights1 wdw_seg7_lights_07012938 = gdSPDefLights1( + 0x99, 0x99, 0x99, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07012950 - 0x07012A50 static const Vtx wdw_seg7_vertex_07012950[] = { @@ -45,8 +41,8 @@ static const Gfx wdw_seg7_dl_07012AD0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wdw_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wdw_seg7_light_07012940, 1), - gsSPLight(&wdw_seg7_light_07012938, 2), + gsSPLight(&wdw_seg7_lights_07012938.l, 1), + gsSPLight(&wdw_seg7_lights_07012938.a, 2), gsSPVertex(wdw_seg7_vertex_07012950, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/levels/wdw/water_level_diamond/model.inc.c b/levels/wdw/water_level_diamond/model.inc.c index 9d10390..8ecc444 100644 --- a/levels/wdw/water_level_diamond/model.inc.c +++ b/levels/wdw/water_level_diamond/model.inc.c @@ -1,42 +1,26 @@ -// 0x07012F18 - 0x07012F20 -static const Ambient wdw_seg7_light_07012F18 = { - {{0x99, 0x99, 0x00}, 0, {0x99, 0x99, 0x00}, 0} -}; +// 0x07012F18 - 0x07012F30 +static const Lights1 wdw_seg7_lights_07012F18 = gdSPDefLights1( + 0x99, 0x99, 0x00, + 0xff, 0xff, 0x00, 0x28, 0x28, 0x28 +); -// 0x07012F20 - 0x07012F30 -static const Light wdw_seg7_light_07012F20 = { - {{0xff, 0xff, 0x00}, 0, {0xff, 0xff, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07012F30 - 0x07012F48 +static const Lights1 wdw_seg7_lights_07012F30 = gdSPDefLights1( + 0x00, 0x00, 0x99, + 0x00, 0x00, 0xff, 0x28, 0x28, 0x28 +); -// 0x07012F30 - 0x07012F38 -static const Ambient wdw_seg7_light_07012F30 = { - {{0x00, 0x00, 0x99}, 0, {0x00, 0x00, 0x99}, 0} -}; +// 0x07012F48 - 0x07012F60 +static const Lights1 wdw_seg7_lights_07012F48 = gdSPDefLights1( + 0x00, 0x99, 0x00, + 0x00, 0xff, 0x00, 0x28, 0x28, 0x28 +); -// 0x07012F38 - 0x07012F48 -static const Light wdw_seg7_light_07012F38 = { - {{0x00, 0x00, 0xff}, 0, {0x00, 0x00, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07012F48 - 0x07012F50 -static const Ambient wdw_seg7_light_07012F48 = { - {{0x00, 0x99, 0x00}, 0, {0x00, 0x99, 0x00}, 0} -}; - -// 0x07012F50 - 0x07012F60 -static const Light wdw_seg7_light_07012F50 = { - {{0x00, 0xff, 0x00}, 0, {0x00, 0xff, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07012F60 - 0x07012F68 -static const Ambient wdw_seg7_light_07012F60 = { - {{0x99, 0x00, 0x00}, 0, {0x99, 0x00, 0x00}, 0} -}; - -// 0x07012F68 - 0x07012F78 -static const Light wdw_seg7_light_07012F68 = { - {{0xff, 0x00, 0x00}, 0, {0xff, 0x00, 0x00}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07012F60 - 0x07012F78 +static const Lights1 wdw_seg7_lights_07012F60 = gdSPDefLights1( + 0x99, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x28, 0x28, 0x28 +); // 0x07012F78 - 0x07012FD8 static const Vtx wdw_seg7_vertex_07012F78[] = { @@ -83,20 +67,20 @@ static const Gfx wdw_seg7_dl_070130F8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wdw_seg7_texture_07001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wdw_seg7_light_07012F20, 1), - gsSPLight(&wdw_seg7_light_07012F18, 2), + gsSPLight(&wdw_seg7_lights_07012F18.l, 1), + gsSPLight(&wdw_seg7_lights_07012F18.a, 2), gsSPVertex(wdw_seg7_vertex_07012F78, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&wdw_seg7_light_07012F38, 1), - gsSPLight(&wdw_seg7_light_07012F30, 2), + gsSPLight(&wdw_seg7_lights_07012F30.l, 1), + gsSPLight(&wdw_seg7_lights_07012F30.a, 2), gsSPVertex(wdw_seg7_vertex_07012FD8, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&wdw_seg7_light_07012F50, 1), - gsSPLight(&wdw_seg7_light_07012F48, 2), + gsSPLight(&wdw_seg7_lights_07012F48.l, 1), + gsSPLight(&wdw_seg7_lights_07012F48.a, 2), gsSPVertex(wdw_seg7_vertex_07013038, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), - gsSPLight(&wdw_seg7_light_07012F68, 1), - gsSPLight(&wdw_seg7_light_07012F60, 2), + gsSPLight(&wdw_seg7_lights_07012F60.l, 1), + gsSPLight(&wdw_seg7_lights_07012F60.a, 2), gsSPVertex(wdw_seg7_vertex_07013098, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSPEndDisplayList(), diff --git a/levels/wf/areas/1/1/model.inc.c b/levels/wf/areas/1/1/model.inc.c index f093696..0d72b97 100644 --- a/levels/wf/areas/1/1/model.inc.c +++ b/levels/wf/areas/1/1/model.inc.c @@ -1,12 +1,8 @@ -// 0x07002900 - 0x07002908 -static const Ambient wf_seg7_light_07002900 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07002908 - 0x07002918 -static const Light wf_seg7_light_07002908 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07002900 - 0x07002918 +static const Lights1 wf_seg7_lights_07002900 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07002918 - 0x07002A18 static const Vtx wf_seg7_vertex_07002918[] = { @@ -635,8 +631,8 @@ static const Gfx wf_seg7_dl_070046B8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_07002908, 1), - gsSPLight(&wf_seg7_light_07002900, 2), + gsSPLight(&wf_seg7_lights_07002900.l, 1), + gsSPLight(&wf_seg7_lights_07002900.a, 2), gsSPVertex(wf_seg7_vertex_07002918, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wf/areas/1/10/1.inc.c b/levels/wf/areas/1/10/1.inc.c index 36cca92..5f34d8e 100644 --- a/levels/wf/areas/1/10/1.inc.c +++ b/levels/wf/areas/1/10/1.inc.c @@ -1,12 +1,8 @@ -// 0x07007590 - 0x07007598 -static const Ambient wf_seg7_light_07007590 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07007598 - 0x070075A8 -static const Light wf_seg7_light_07007598 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07007590 - 0x070075A8 +static const Lights1 wf_seg7_lights_07007590 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070075A8 - 0x070076A8 static const Vtx wf_seg7_vertex_070075A8[] = { @@ -293,8 +289,8 @@ static const Gfx wf_seg7_dl_07008368[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wf_seg7_texture_07001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_07007598, 1), - gsSPLight(&wf_seg7_light_07007590, 2), + gsSPLight(&wf_seg7_lights_07007590.l, 1), + gsSPLight(&wf_seg7_lights_07007590.a, 2), gsSPVertex(wf_seg7_vertex_070075A8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wf/areas/1/10/2.inc.c b/levels/wf/areas/1/10/2.inc.c index 10bf45e..21e0a25 100644 --- a/levels/wf/areas/1/10/2.inc.c +++ b/levels/wf/areas/1/10/2.inc.c @@ -1,12 +1,8 @@ -// 0x07008838 - 0x07008840 -static const Ambient wf_seg7_light_07008838 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07008840 - 0x07008850 -static const Light wf_seg7_light_07008840 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07008838 - 0x07008850 +static const Lights1 wf_seg7_lights_07008838 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07008850 - 0x07008950 static const Vtx wf_seg7_vertex_07008850[] = { @@ -129,8 +125,8 @@ static const Gfx wf_seg7_dl_07008DD0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wf_seg7_texture_07001800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_07008840, 1), - gsSPLight(&wf_seg7_light_07008838, 2), + gsSPLight(&wf_seg7_lights_07008838.l, 1), + gsSPLight(&wf_seg7_lights_07008838.a, 2), gsSPVertex(wf_seg7_vertex_07008850, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wf/areas/1/11/model.inc.c b/levels/wf/areas/1/11/model.inc.c index 784987b..bf1433a 100644 --- a/levels/wf/areas/1/11/model.inc.c +++ b/levels/wf/areas/1/11/model.inc.c @@ -1,12 +1,8 @@ -// 0x07009070 - 0x07009078 -static const Ambient wf_seg7_light_07009070 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07009078 - 0x07009088 -static const Light wf_seg7_light_07009078 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07009070 - 0x07009088 +static const Lights1 wf_seg7_lights_07009070 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07009088 - 0x070090C8 static const Vtx wf_seg7_vertex_07009088[] = { @@ -41,8 +37,8 @@ static const Gfx wf_seg7_dl_070091C8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wf_seg7_texture_07000000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_07009078, 1), - gsSPLight(&wf_seg7_light_07009070, 2), + gsSPLight(&wf_seg7_lights_07009070.l, 1), + gsSPLight(&wf_seg7_lights_07009070.a, 2), gsSPVertex(wf_seg7_vertex_07009088, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/wf/areas/1/12/1.inc.c b/levels/wf/areas/1/12/1.inc.c index 1241ef6..9cc7938 100644 --- a/levels/wf/areas/1/12/1.inc.c +++ b/levels/wf/areas/1/12/1.inc.c @@ -1,12 +1,8 @@ -// 0x070092F0 - 0x070092F8 -static const Ambient wf_seg7_light_070092F0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x070092F8 - 0x07009308 -static const Light wf_seg7_light_070092F8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070092F0 - 0x07009308 +static const Lights1 wf_seg7_lights_070092F0 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07009308 - 0x070093F8 static const Vtx wf_seg7_vertex_07009308[] = { @@ -86,8 +82,8 @@ static const Gfx wf_seg7_dl_07009698[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_070092F8, 1), - gsSPLight(&wf_seg7_light_070092F0, 2), + gsSPLight(&wf_seg7_lights_070092F0.l, 1), + gsSPLight(&wf_seg7_lights_070092F0.a, 2), gsSPVertex(wf_seg7_vertex_07009308, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/levels/wf/areas/1/12/2.inc.c b/levels/wf/areas/1/12/2.inc.c index 3ea3a38..a5ced5e 100644 --- a/levels/wf/areas/1/12/2.inc.c +++ b/levels/wf/areas/1/12/2.inc.c @@ -1,12 +1,8 @@ -// 0x070097F0 - 0x070097F8 -static const Ambient wf_seg7_light_070097F0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x070097F8 - 0x07009808 -static const Light wf_seg7_light_070097F8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070097F0 - 0x07009808 +static const Lights1 wf_seg7_lights_070097F0 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07009808 - 0x07009848 static const Vtx wf_seg7_vertex_07009808[] = { @@ -21,8 +17,8 @@ static const Gfx wf_seg7_dl_07009848[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_070097F8, 1), - gsSPLight(&wf_seg7_light_070097F0, 2), + gsSPLight(&wf_seg7_lights_070097F0.l, 1), + gsSPLight(&wf_seg7_lights_070097F0.a, 2), gsSPVertex(wf_seg7_vertex_07009808, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/wf/areas/1/13/model.inc.c b/levels/wf/areas/1/13/model.inc.c index f76043e..6a2e7c8 100644 --- a/levels/wf/areas/1/13/model.inc.c +++ b/levels/wf/areas/1/13/model.inc.c @@ -1,12 +1,8 @@ -// 0x07009900 - 0x07009908 -static const Ambient wf_seg7_light_07009900 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07009908 - 0x07009918 -static const Light wf_seg7_light_07009908 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07009900 - 0x07009918 +static const Lights1 wf_seg7_lights_07009900 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07009918 - 0x07009958 static const Vtx wf_seg7_vertex_07009918[] = { @@ -85,8 +81,8 @@ static const Gfx wf_seg7_dl_07009C58[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_07009908, 1), - gsSPLight(&wf_seg7_light_07009900, 2), + gsSPLight(&wf_seg7_lights_07009900.l, 1), + gsSPLight(&wf_seg7_lights_07009900.a, 2), gsSPVertex(wf_seg7_vertex_07009918, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/wf/areas/1/14/model.inc.c b/levels/wf/areas/1/14/model.inc.c index f8ae421..a773fae 100644 --- a/levels/wf/areas/1/14/model.inc.c +++ b/levels/wf/areas/1/14/model.inc.c @@ -1,12 +1,8 @@ -// 0x07009E30 - 0x07009E38 -static const Ambient wf_seg7_light_07009E30 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07009E38 - 0x07009E48 -static const Light wf_seg7_light_07009E38 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07009E30 - 0x07009E48 +static const Lights1 wf_seg7_lights_07009E30 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07009E48 - 0x07009F48 static const Vtx wf_seg7_vertex_07009E48[] = { @@ -63,8 +59,8 @@ static const Gfx wf_seg7_dl_0700A0A8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09007800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_07009E38, 1), - gsSPLight(&wf_seg7_light_07009E30, 2), + gsSPLight(&wf_seg7_lights_07009E30.l, 1), + gsSPLight(&wf_seg7_lights_07009E30.a, 2), gsSPVertex(wf_seg7_vertex_07009E48, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 3, 6, 7, 0x0), diff --git a/levels/wf/areas/1/15/1.inc.c b/levels/wf/areas/1/15/1.inc.c index 30e0e1f..5c39a33 100644 --- a/levels/wf/areas/1/15/1.inc.c +++ b/levels/wf/areas/1/15/1.inc.c @@ -1,12 +1,8 @@ -// 0x0700A1E0 - 0x0700A1E8 -static const Ambient wf_seg7_light_0700A1E0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700A1E8 - 0x0700A1F8 -static const Light wf_seg7_light_0700A1E8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700A1E0 - 0x0700A1F8 +static const Lights1 wf_seg7_lights_0700A1E0 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700A1F8 - 0x0700A2E8 static const Vtx wf_seg7_vertex_0700A1F8[] = { @@ -161,8 +157,8 @@ static const Gfx wf_seg7_dl_0700A8F8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700A1E8, 1), - gsSPLight(&wf_seg7_light_0700A1E0, 2), + gsSPLight(&wf_seg7_lights_0700A1E0.l, 1), + gsSPLight(&wf_seg7_lights_0700A1E0.a, 2), gsSPVertex(wf_seg7_vertex_0700A1F8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wf/areas/1/15/2.inc.c b/levels/wf/areas/1/15/2.inc.c index 52ed630..791de57 100644 --- a/levels/wf/areas/1/15/2.inc.c +++ b/levels/wf/areas/1/15/2.inc.c @@ -1,12 +1,8 @@ -// 0x0700AC70 - 0x0700AC78 -static const Ambient wf_seg7_light_0700AC70 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700AC78 - 0x0700AC88 -static const Light wf_seg7_light_0700AC78 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700AC70 - 0x0700AC88 +static const Lights1 wf_seg7_lights_0700AC70 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700AC88 - 0x0700ACE8 static const Vtx wf_seg7_vertex_0700AC88[] = { @@ -43,8 +39,8 @@ static const Gfx wf_seg7_dl_0700ADE8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09005800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700AC78, 1), - gsSPLight(&wf_seg7_light_0700AC70, 2), + gsSPLight(&wf_seg7_lights_0700AC70.l, 1), + gsSPLight(&wf_seg7_lights_0700AC70.a, 2), gsSPVertex(wf_seg7_vertex_0700AC88, 6, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 0, 2, 4, 0x0, 0, 5, 3, 0x0), diff --git a/levels/wf/areas/1/16/model.inc.c b/levels/wf/areas/1/16/model.inc.c index be5e40e..d544df9 100644 --- a/levels/wf/areas/1/16/model.inc.c +++ b/levels/wf/areas/1/16/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700B028 - 0x0700B030 -static const Ambient wf_seg7_light_0700B028 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700B030 - 0x0700B040 -static const Light wf_seg7_light_0700B030 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700B028 - 0x0700B040 +static const Lights1 wf_seg7_lights_0700B028 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700B040 - 0x0700B070 static const Vtx wf_seg7_vertex_0700B040[] = { @@ -166,8 +162,8 @@ static const Gfx wf_seg7_dl_0700B750[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09004800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700B030, 1), - gsSPLight(&wf_seg7_light_0700B028, 2), + gsSPLight(&wf_seg7_lights_0700B028.l, 1), + gsSPLight(&wf_seg7_lights_0700B028.a, 2), gsSPVertex(wf_seg7_vertex_0700B040, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), gsSPEndDisplayList(), diff --git a/levels/wf/areas/1/17/model.inc.c b/levels/wf/areas/1/17/model.inc.c index d32bd76..4ab4cac 100644 --- a/levels/wf/areas/1/17/model.inc.c +++ b/levels/wf/areas/1/17/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700BB18 - 0x0700BB20 -static const Ambient wf_seg7_light_0700BB18 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700BB20 - 0x0700BB30 -static const Light wf_seg7_light_0700BB20 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700BB18 - 0x0700BB30 +static const Lights1 wf_seg7_lights_0700BB18 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700BB30 - 0x0700BC20 static const Vtx wf_seg7_vertex_0700BB30[] = { @@ -77,8 +73,8 @@ static const Gfx wf_seg7_dl_0700BE30[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09005000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700BB20, 1), - gsSPLight(&wf_seg7_light_0700BB18, 2), + gsSPLight(&wf_seg7_lights_0700BB18.l, 1), + gsSPLight(&wf_seg7_lights_0700BB18.a, 2), gsSPVertex(wf_seg7_vertex_0700BB30, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/levels/wf/areas/1/18/model.inc.c b/levels/wf/areas/1/18/model.inc.c index e915cc3..4cf54bd 100644 --- a/levels/wf/areas/1/18/model.inc.c +++ b/levels/wf/areas/1/18/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700BFE0 - 0x0700BFE8 -static const Ambient wf_seg7_light_0700BFE0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700BFE8 - 0x0700BFF8 -static const Light wf_seg7_light_0700BFE8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700BFE0 - 0x0700BFF8 +static const Lights1 wf_seg7_lights_0700BFE0 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700BFF8 - 0x0700C0E8 static const Vtx wf_seg7_vertex_0700BFF8[] = { @@ -265,8 +261,8 @@ static const Gfx wf_seg7_dl_0700CC38[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09007800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700BFE8, 1), - gsSPLight(&wf_seg7_light_0700BFE0, 2), + gsSPLight(&wf_seg7_lights_0700BFE0.l, 1), + gsSPLight(&wf_seg7_lights_0700BFE0.a, 2), gsSPVertex(wf_seg7_vertex_0700BFF8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wf/areas/1/19/model.inc.c b/levels/wf/areas/1/19/model.inc.c index bd6544d..d3371e7 100644 --- a/levels/wf/areas/1/19/model.inc.c +++ b/levels/wf/areas/1/19/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700D0A8 - 0x0700D0B0 -static const Ambient wf_seg7_light_0700D0A8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700D0B0 - 0x0700D0C0 -static const Light wf_seg7_light_0700D0B0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700D0A8 - 0x0700D0C0 +static const Lights1 wf_seg7_lights_0700D0A8 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700D0C0 - 0x0700D1B0 static const Vtx wf_seg7_vertex_0700D0C0[] = { @@ -47,8 +43,8 @@ static const Gfx wf_seg7_dl_0700D260[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700D0B0, 1), - gsSPLight(&wf_seg7_light_0700D0A8, 2), + gsSPLight(&wf_seg7_lights_0700D0A8.l, 1), + gsSPLight(&wf_seg7_lights_0700D0A8.a, 2), gsSPVertex(wf_seg7_vertex_0700D0C0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 3, 5, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wf/areas/1/2/model.inc.c b/levels/wf/areas/1/2/model.inc.c index ef3c0e0..7ca0c7f 100644 --- a/levels/wf/areas/1/2/model.inc.c +++ b/levels/wf/areas/1/2/model.inc.c @@ -1,12 +1,8 @@ -// 0x070051C8 - 0x070051D0 -static const Ambient wf_seg7_light_070051C8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x070051D0 - 0x070051E0 -static const Light wf_seg7_light_070051D0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070051C8 - 0x070051E0 +static const Lights1 wf_seg7_lights_070051C8 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070051E0 - 0x07005260 static const Vtx wf_seg7_vertex_070051E0[] = { @@ -25,8 +21,8 @@ static const Gfx wf_seg7_dl_07005260[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wf_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_070051D0, 1), - gsSPLight(&wf_seg7_light_070051C8, 2), + gsSPLight(&wf_seg7_lights_070051C8.l, 1), + gsSPLight(&wf_seg7_lights_070051C8.a, 2), gsSPVertex(wf_seg7_vertex_070051E0, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/wf/areas/1/5/1.inc.c b/levels/wf/areas/1/5/1.inc.c index da95f54..57d8fcc 100644 --- a/levels/wf/areas/1/5/1.inc.c +++ b/levels/wf/areas/1/5/1.inc.c @@ -1,12 +1,8 @@ -// 0x070056C0 - 0x070056C8 -static const Ambient wf_seg7_light_070056C0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x070056C8 - 0x070056D8 -static const Light wf_seg7_light_070056C8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x070056C0 - 0x070056D8 +static const Lights1 wf_seg7_lights_070056C0 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070056D8 - 0x070057C8 static const Vtx wf_seg7_vertex_070056D8[] = { @@ -123,8 +119,8 @@ static const Gfx wf_seg7_dl_07005C38[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09009800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_070056C8, 1), - gsSPLight(&wf_seg7_light_070056C0, 2), + gsSPLight(&wf_seg7_lights_070056C0.l, 1), + gsSPLight(&wf_seg7_lights_070056C0.a, 2), gsSPVertex(wf_seg7_vertex_070056D8, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 5, 4, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wf/areas/1/5/2.inc.c b/levels/wf/areas/1/5/2.inc.c index 7fd6fbd..853874b 100644 --- a/levels/wf/areas/1/5/2.inc.c +++ b/levels/wf/areas/1/5/2.inc.c @@ -1,12 +1,8 @@ -// 0x07005E48 - 0x07005E50 -static const Ambient wf_seg7_light_07005E48 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07005E50 - 0x07005E60 -static const Light wf_seg7_light_07005E50 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07005E48 - 0x07005E60 +static const Lights1 wf_seg7_lights_07005E48 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07005E60 - 0x07005EA0 static const Vtx wf_seg7_vertex_07005E60[] = { @@ -21,8 +17,8 @@ static const Gfx wf_seg7_dl_07005EA0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09009800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_07005E50, 1), - gsSPLight(&wf_seg7_light_07005E48, 2), + gsSPLight(&wf_seg7_lights_07005E48.l, 1), + gsSPLight(&wf_seg7_lights_07005E48.a, 2), gsSPVertex(wf_seg7_vertex_07005E60, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/levels/wf/areas/1/6/1.inc.c b/levels/wf/areas/1/6/1.inc.c index 4672495..c94c56d 100644 --- a/levels/wf/areas/1/6/1.inc.c +++ b/levels/wf/areas/1/6/1.inc.c @@ -1,12 +1,8 @@ -// 0x07005F58 - 0x07005F60 -static const Ambient wf_seg7_light_07005F58 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07005F60 - 0x07005F70 -static const Light wf_seg7_light_07005F60 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07005F58 - 0x07005F70 +static const Lights1 wf_seg7_lights_07005F58 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07005F70 - 0x07006060 static const Vtx wf_seg7_vertex_07005F70[] = { @@ -100,8 +96,8 @@ static const Gfx wf_seg7_dl_070063A0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_07005F60, 1), - gsSPLight(&wf_seg7_light_07005F58, 2), + gsSPLight(&wf_seg7_lights_07005F58.l, 1), + gsSPLight(&wf_seg7_lights_07005F58.a, 2), gsSPVertex(wf_seg7_vertex_07005F70, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wf/areas/1/6/2.inc.c b/levels/wf/areas/1/6/2.inc.c index 577971f..345689b 100644 --- a/levels/wf/areas/1/6/2.inc.c +++ b/levels/wf/areas/1/6/2.inc.c @@ -1,12 +1,8 @@ -// 0x07006558 - 0x07006560 -static const Ambient wf_seg7_light_07006558 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07006560 - 0x07006570 -static const Light wf_seg7_light_07006560 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07006558 - 0x07006570 +static const Lights1 wf_seg7_lights_07006558 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07006570 - 0x070065B0 static const Vtx wf_seg7_vertex_07006570[] = { @@ -21,8 +17,8 @@ static const Gfx wf_seg7_dl_070065B0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_07006560, 1), - gsSPLight(&wf_seg7_light_07006558, 2), + gsSPLight(&wf_seg7_lights_07006558.l, 1), + gsSPLight(&wf_seg7_lights_07006558.a, 2), gsSPVertex(wf_seg7_vertex_07006570, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/wf/areas/1/7/model.inc.c b/levels/wf/areas/1/7/model.inc.c index 873bb84..23349c1 100644 --- a/levels/wf/areas/1/7/model.inc.c +++ b/levels/wf/areas/1/7/model.inc.c @@ -1,12 +1,8 @@ -// 0x07006668 - 0x07006670 -static const Ambient wf_seg7_light_07006668 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x07006670 - 0x07006680 -static const Light wf_seg7_light_07006670 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07006668 - 0x07006680 +static const Lights1 wf_seg7_lights_07006668 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x07006680 - 0x070066C0 static const Vtx wf_seg7_vertex_07006680[] = { @@ -37,8 +33,8 @@ static const Gfx wf_seg7_dl_07006780[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_07006670, 1), - gsSPLight(&wf_seg7_light_07006668, 2), + gsSPLight(&wf_seg7_lights_07006668.l, 1), + gsSPLight(&wf_seg7_lights_07006668.a, 2), gsSPVertex(wf_seg7_vertex_07006680, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/wf/areas/1/9/model.inc.c b/levels/wf/areas/1/9/model.inc.c index 1c4dec4..d4f9916 100644 --- a/levels/wf/areas/1/9/model.inc.c +++ b/levels/wf/areas/1/9/model.inc.c @@ -1,12 +1,8 @@ -// 0x07007298 - 0x070072A0 -static const Ambient wf_seg7_light_07007298 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x070072A0 - 0x070072B0 -static const Light wf_seg7_light_070072A0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07007298 - 0x070072B0 +static const Lights1 wf_seg7_lights_07007298 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x070072B0 - 0x070073A0 static const Vtx wf_seg7_vertex_070072B0[] = { @@ -51,8 +47,8 @@ static const Gfx wf_seg7_dl_07007450[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_070072A0, 1), - gsSPLight(&wf_seg7_light_07007298, 2), + gsSPLight(&wf_seg7_lights_07007298.l, 1), + gsSPLight(&wf_seg7_lights_07007298.a, 2), gsSPVertex(wf_seg7_vertex_070072B0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wf/areas/1/geo.inc.c b/levels/wf/areas/1/geo.inc.c index a4d0229..3c38a90 100644 --- a/levels/wf/areas/1/geo.inc.c +++ b/levels/wf/areas/1/geo.inc.c @@ -28,7 +28,7 @@ const GeoLayout wf_geo_000BF8[] = { GEO_CLOSE_NODE(), GEO_ZBUFFER(0), GEO_OPEN_NODE(), - GEO_ASM(0, Geo18_802CD1E8), + GEO_ASM(0, geo_cannon_circle_base), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/levels/wf/areas/1/macro.inc.c b/levels/wf/areas/1/macro.inc.c index 2615782..ee3d2c0 100644 --- a/levels/wf/areas/1/macro.inc.c +++ b/levels/wf/areas/1/macro.inc.c @@ -16,13 +16,13 @@ const MacroObject wf_seg7_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_hidden_1up_in_pole, /*yaw*/ 0, /*pos*/ -2500, 4560, -256), MACRO_OBJECT(/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ 0, 2650, 2900), MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_hidden_1up, /*yaw*/ 0, /*pos*/ -250, 2650, 2400, /*behParam*/ 2), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 315, /*pos*/ 4200, 256, 5160, /*behParam*/ 18), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -2540, 2560, -900, /*behParam*/ 36), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 1600, 2560, 2600, /*behParam*/ 42), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -2705, 2560, 59, /*behParam*/ 51), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ 3460, 2304, -40, /*behParam*/ 96), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 315, /*pos*/ 4200, 256, 5160, /*behParam*/ DIALOG_018), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -2540, 2560, -900, /*behParam*/ DIALOG_036), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 1600, 2560, 2600, /*behParam*/ DIALOG_042), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -2705, 2560, 59, /*behParam*/ DIALOG_051), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 180, /*pos*/ 3460, 2304, -40, /*behParam*/ DIALOG_096), MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_cannon_closed, /*yaw*/ 0, /*pos*/ -1844, 1026, 3893, /*behParam*/ 0x40), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -2932, 386, -157, /*behParam*/ 78), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -2932, 386, -157, /*behParam*/ DIALOG_078), MACRO_OBJECT(/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ -500, 2650, 2900), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ -250, 2650, 2970), MACRO_OBJECT(/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 1746, 3620, -3120), @@ -38,8 +38,8 @@ const MacroObject wf_seg7_macro_objs[] = { MACRO_OBJECT(/*preset*/ macro_coin_ring_horizontal, /*yaw*/ 0, /*pos*/ 1558, 922, 2329), MACRO_OBJECT(/*preset*/ macro_coin_line_horizontal, /*yaw*/ 0, /*pos*/ 3396, 1380, 3280), MACRO_OBJECT(/*preset*/ macro_coin_ring_horizontal_flying, /*yaw*/ 0, /*pos*/ 3234, 3345, -1787), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 4800, 256, 3000, /*behParam*/ 104), - MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 2930, 1075, -3740, /*behParam*/ 113), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 4800, 256, 3000, /*behParam*/ DIALOG_104), + MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 2930, 1075, -3740, /*behParam*/ DIALOG_113), MACRO_OBJECT(/*preset*/ macro_breakable_box_small, /*yaw*/ 0, /*pos*/ 4320, 256, 1880), MACRO_OBJECT(/*preset*/ macro_breakable_box_small, /*yaw*/ 0, /*pos*/ -2940, 384, -1320), MACRO_OBJECT(/*preset*/ macro_butterfly_triplet_2, /*yaw*/ 0, /*pos*/ 4574, 300, 1130), diff --git a/levels/wf/beta_extending_platform/model.inc.c b/levels/wf/beta_extending_platform/model.inc.c index 9c3c9e0..5780e3e 100644 --- a/levels/wf/beta_extending_platform/model.inc.c +++ b/levels/wf/beta_extending_platform/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700EBB8 - 0x0700EBC0 -static const Ambient wf_seg7_light_0700EBB8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700EBC0 - 0x0700EBD0 -static const Light wf_seg7_light_0700EBC0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700EBB8 - 0x0700EBD0 +static const Lights1 wf_seg7_lights_0700EBB8 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700EBD0 - 0x0700ECC0 static const Vtx wf_seg7_vertex_0700EBD0[] = { @@ -43,8 +39,8 @@ static const Gfx wf_seg7_dl_0700ED30[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700EBC0, 1), - gsSPLight(&wf_seg7_light_0700EBB8, 2), + gsSPLight(&wf_seg7_lights_0700EBB8.l, 1), + gsSPLight(&wf_seg7_lights_0700EBB8.a, 2), gsSPVertex(wf_seg7_vertex_0700EBD0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wf/breakable_wall_left/model.inc.c b/levels/wf/breakable_wall_left/model.inc.c index c51ac12..df1b13d 100644 --- a/levels/wf/breakable_wall_left/model.inc.c +++ b/levels/wf/breakable_wall_left/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700F220 - 0x0700F228 -static const Ambient wf_seg7_light_0700F220 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700F228 - 0x0700F238 -static const Light wf_seg7_light_0700F228 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700F220 - 0x0700F238 +static const Lights1 wf_seg7_lights_0700F220 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700F238 - 0x0700F268 static const Vtx wf_seg7_vertex_0700F238[] = { @@ -30,8 +26,8 @@ static const Gfx wf_seg7_dl_0700F2C8[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700F228, 1), - gsSPLight(&wf_seg7_light_0700F220, 2), + gsSPLight(&wf_seg7_lights_0700F220.l, 1), + gsSPLight(&wf_seg7_lights_0700F220.a, 2), gsSPVertex(wf_seg7_vertex_0700F238, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), gsSPEndDisplayList(), diff --git a/levels/wf/breakable_wall_right/model.inc.c b/levels/wf/breakable_wall_right/model.inc.c index 50f5bca..16b8a4d 100644 --- a/levels/wf/breakable_wall_right/model.inc.c +++ b/levels/wf/breakable_wall_right/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700F088 - 0x0700F090 -static const Ambient wf_seg7_light_0700F088 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700F090 - 0x0700F0A0 -static const Light wf_seg7_light_0700F090 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700F088 - 0x0700F0A0 +static const Lights1 wf_seg7_lights_0700F088 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700F0A0 - 0x0700F0D0 static const Vtx wf_seg7_vertex_0700F0A0[] = { @@ -30,8 +26,8 @@ static const Gfx wf_seg7_dl_0700F130[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09001000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700F090, 1), - gsSPLight(&wf_seg7_light_0700F088, 2), + gsSPLight(&wf_seg7_lights_0700F088.l, 1), + gsSPLight(&wf_seg7_lights_0700F088.a, 2), gsSPVertex(wf_seg7_vertex_0700F0A0, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), gsSPEndDisplayList(), diff --git a/levels/wf/extending_platform/model.inc.c b/levels/wf/extending_platform/model.inc.c index ce6ac2d..0f129b3 100644 --- a/levels/wf/extending_platform/model.inc.c +++ b/levels/wf/extending_platform/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700EE30 - 0x0700EE38 -static const Ambient wf_seg7_light_0700EE30 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700EE38 - 0x0700EE48 -static const Light wf_seg7_light_0700EE38 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700EE30 - 0x0700EE48 +static const Lights1 wf_seg7_lights_0700EE30 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700EE48 - 0x0700EF48 static const Vtx wf_seg7_vertex_0700EE48[] = { @@ -41,8 +37,8 @@ static const Gfx wf_seg7_dl_0700EF88[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700EE38, 1), - gsSPLight(&wf_seg7_light_0700EE30, 2), + gsSPLight(&wf_seg7_lights_0700EE30.l, 1), + gsSPLight(&wf_seg7_lights_0700EE30.a, 2), gsSPVertex(wf_seg7_vertex_0700EE48, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0), diff --git a/levels/wf/kickable_board/1.inc.c b/levels/wf/kickable_board/1.inc.c index edafd6a..0d70cb8 100644 --- a/levels/wf/kickable_board/1.inc.c +++ b/levels/wf/kickable_board/1.inc.c @@ -1,12 +1,8 @@ -// 0x0700F3B8 - 0x0700F3C0 -static const Ambient wf_seg7_light_0700F3B8 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700F3C0 - 0x0700F3D0 -static const Light wf_seg7_light_0700F3C0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700F3B8 - 0x0700F3D0 +static const Lights1 wf_seg7_lights_0700F3B8 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700F3D0 - 0x0700F4C0 static const Vtx wf_seg7_vertex_0700F3D0[] = { @@ -47,8 +43,8 @@ static const Gfx wf_seg7_dl_0700F570[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700F3C0, 1), - gsSPLight(&wf_seg7_light_0700F3B8, 2), + gsSPLight(&wf_seg7_lights_0700F3B8.l, 1), + gsSPLight(&wf_seg7_lights_0700F3B8.a, 2), gsSPVertex(wf_seg7_vertex_0700F3D0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wf/large_bomp/model.inc.c b/levels/wf/large_bomp/model.inc.c index 4b973fe..0762cbd 100644 --- a/levels/wf/large_bomp/model.inc.c +++ b/levels/wf/large_bomp/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700DA68 - 0x0700DA70 -static const Ambient wf_seg7_light_0700DA68 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700DA70 - 0x0700DA80 -static const Light wf_seg7_light_0700DA70 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700DA68 - 0x0700DA80 +static const Lights1 wf_seg7_lights_0700DA68 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700DA80 - 0x0700DB70 static const Vtx wf_seg7_vertex_0700DA80[] = { @@ -71,8 +67,8 @@ static const Gfx wf_seg7_dl_0700DD20[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700DA70, 1), - gsSPLight(&wf_seg7_light_0700DA68, 2), + gsSPLight(&wf_seg7_lights_0700DA68.l, 1), + gsSPLight(&wf_seg7_lights_0700DA68.a, 2), gsSPVertex(wf_seg7_vertex_0700DA80, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/levels/wf/leveldata.c b/levels/wf/leveldata.c index 90619d7..071a395 100644 --- a/levels/wf/leveldata.c +++ b/levels/wf/leveldata.c @@ -6,6 +6,7 @@ #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" +#include "dialog_ids.h" #include "make_const_nonconst.h" #include "levels/wf/texture.inc.c" diff --git a/levels/wf/rotating_wooden_platform/1.inc.c b/levels/wf/rotating_wooden_platform/1.inc.c index 07366d3..6eafd27 100644 --- a/levels/wf/rotating_wooden_platform/1.inc.c +++ b/levels/wf/rotating_wooden_platform/1.inc.c @@ -1,12 +1,8 @@ -// 0x0700E440 - 0x0700E448 -static const Ambient wf_seg7_light_0700E440 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700E448 - 0x0700E458 -static const Light wf_seg7_light_0700E448 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700E440 - 0x0700E458 +static const Lights1 wf_seg7_lights_0700E440 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700E458 - 0x0700E548 static const Vtx wf_seg7_vertex_0700E458[] = { @@ -61,8 +57,8 @@ static const Gfx wf_seg7_dl_0700E698[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700E448, 1), - gsSPLight(&wf_seg7_light_0700E440, 2), + gsSPLight(&wf_seg7_lights_0700E440.l, 1), + gsSPLight(&wf_seg7_lights_0700E440.a, 2), gsSPVertex(wf_seg7_vertex_0700E458, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0), diff --git a/levels/wf/rotating_wooden_platform/2.inc.c b/levels/wf/rotating_wooden_platform/2.inc.c index 9740e7d..4000969 100644 --- a/levels/wf/rotating_wooden_platform/2.inc.c +++ b/levels/wf/rotating_wooden_platform/2.inc.c @@ -1,12 +1,8 @@ -// 0x0700E7D0 - 0x0700E7D8 -static const Ambient wf_seg7_light_0700E7D0 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700E7D8 - 0x0700E7E8 -static const Light wf_seg7_light_0700E7D8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700E7D0 - 0x0700E7E8 +static const Lights1 wf_seg7_lights_0700E7D0 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700E7E8 - 0x0700E8E8 static const Vtx wf_seg7_vertex_0700E7E8[] = { @@ -40,8 +36,8 @@ static const Gfx wf_seg7_dl_0700E918[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09006800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700E7D8, 1), - gsSPLight(&wf_seg7_light_0700E7D0, 2), + gsSPLight(&wf_seg7_lights_0700E7D0.l, 1), + gsSPLight(&wf_seg7_lights_0700E7D0.a, 2), gsSPVertex(wf_seg7_vertex_0700E7E8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), diff --git a/levels/wf/script.c b/levels/wf/script.c index 07b625f..6924d8f 100644 --- a/levels/wf/script.c +++ b/levels/wf/script.c @@ -3,6 +3,7 @@ #include "behavior_data.h" #include "model_ids.h" #include "seq_ids.h" +#include "dialog_ids.h" #include "segment_symbols.h" #include "level_commands.h" @@ -142,18 +143,18 @@ const LevelScript level_wf_entry[] = { OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2600, 1256, 5120, /*angle*/ 0, 90, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps74), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2925, 2560, -947, /*angle*/ 0, 19, 0, /*behParam*/ 0x000B0000, /*beh*/ bhvFadingWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2548, 1075, -3962, /*angle*/ 0, 51, 0, /*behParam*/ 0x000C0000, /*beh*/ bhvFadingWarp), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x18, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0B, /*destLevel*/ 0x18, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0x0C, /*destLevel*/ 0x18, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x01, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_WF, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_WF, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_WF, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), JUMP_LINK(script_func_local_3), JUMP_LINK(script_func_local_4), TERRAIN(/*terrainData*/ wf_seg7_collision_070102D8), MACRO_OBJECTS(/*objList*/ wf_seg7_macro_objs), - SHOW_DIALOG(/*index*/ 0x00, /*dialogid*/ 0x1E), + SHOW_DIALOG(/*index*/ 0x00, DIALOG_030), SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0005, /*seq*/ SEQ_LEVEL_GRASS), TERRAIN_TYPE(/*terrainType*/ TERRAIN_STONE), END_AREA(), diff --git a/levels/wf/sliding_platform/model.inc.c b/levels/wf/sliding_platform/model.inc.c index 643c032..d6f06de 100644 --- a/levels/wf/sliding_platform/model.inc.c +++ b/levels/wf/sliding_platform/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700EA28 - 0x0700EA30 -static const Ambient wf_seg7_light_0700EA28 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700EA30 - 0x0700EA40 -static const Light wf_seg7_light_0700EA30 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700EA28 - 0x0700EA40 +static const Lights1 wf_seg7_lights_0700EA28 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700EA40 - 0x0700EA80 static const Vtx wf_seg7_vertex_0700EA40[] = { @@ -29,8 +25,8 @@ static const Gfx wf_seg7_dl_0700EAC0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700EA30, 1), - gsSPLight(&wf_seg7_light_0700EA28, 2), + gsSPLight(&wf_seg7_lights_0700EA28.l, 1), + gsSPLight(&wf_seg7_lights_0700EA28.a, 2), gsSPVertex(wf_seg7_vertex_0700EA40, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/wf/small_bomp/1.inc.c b/levels/wf/small_bomp/1.inc.c index ebdb08f..dd97bc1 100644 --- a/levels/wf/small_bomp/1.inc.c +++ b/levels/wf/small_bomp/1.inc.c @@ -1,12 +1,8 @@ -// 0x0700D370 - 0x0700D378 -static const Ambient wf_seg7_light_0700D370 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700D378 - 0x0700D388 -static const Light wf_seg7_light_0700D378 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700D370 - 0x0700D388 +static const Lights1 wf_seg7_lights_0700D370 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700D388 - 0x0700D488 static const Vtx wf_seg7_vertex_0700D388[] = { @@ -69,8 +65,8 @@ static const Gfx wf_seg7_dl_0700D608[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700D378, 1), - gsSPLight(&wf_seg7_light_0700D370, 2), + gsSPLight(&wf_seg7_lights_0700D370.l, 1), + gsSPLight(&wf_seg7_lights_0700D370.a, 2), gsSPVertex(wf_seg7_vertex_0700D388, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wf/small_bomp/2.inc.c b/levels/wf/small_bomp/2.inc.c index 03541b1..973d9b6 100644 --- a/levels/wf/small_bomp/2.inc.c +++ b/levels/wf/small_bomp/2.inc.c @@ -1,12 +1,8 @@ -// 0x0700D780 - 0x0700D788 -static const Ambient wf_seg7_light_0700D780 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700D788 - 0x0700D798 -static const Light wf_seg7_light_0700D788 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700D780 - 0x0700D798 +static const Lights1 wf_seg7_lights_0700D780 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700D798 - 0x0700D898 static const Vtx wf_seg7_vertex_0700D798[] = { @@ -51,8 +47,8 @@ static const Gfx wf_seg7_dl_0700D938[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09008000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700D788, 1), - gsSPLight(&wf_seg7_light_0700D780, 2), + gsSPLight(&wf_seg7_lights_0700D780.l, 1), + gsSPLight(&wf_seg7_lights_0700D780.a, 2), gsSPVertex(wf_seg7_vertex_0700D798, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wf/tower_door/model.inc.c b/levels/wf/tower_door/model.inc.c index 3ada447..74b4594 100644 --- a/levels/wf/tower_door/model.inc.c +++ b/levels/wf/tower_door/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700F758 - 0x0700F760 -static const Ambient wf_seg7_light_0700F758 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700F760 - 0x0700F770 -static const Light wf_seg7_light_0700F760 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700F758 - 0x0700F770 +static const Lights1 wf_seg7_lights_0700F758 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700F770 - 0x0700F7B0 static const Vtx wf_seg7_vertex_0700F770[] = { @@ -21,8 +17,8 @@ static const Gfx wf_seg7_dl_0700F7B0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09007000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700F760, 1), - gsSPLight(&wf_seg7_light_0700F758, 2), + gsSPLight(&wf_seg7_lights_0700F758.l, 1), + gsSPLight(&wf_seg7_lights_0700F758.a, 2), gsSPVertex(wf_seg7_vertex_0700F770, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), diff --git a/levels/wf/tumbling_bridge_far/model.inc.c b/levels/wf/tumbling_bridge_far/model.inc.c index 0b6d61b..e79f3d5 100644 --- a/levels/wf/tumbling_bridge_far/model.inc.c +++ b/levels/wf/tumbling_bridge_far/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700E160 - 0x0700E168 -static const Ambient wf_seg7_light_0700E160 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700E168 - 0x0700E178 -static const Light wf_seg7_light_0700E168 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700E160 - 0x0700E178 +static const Lights1 wf_seg7_lights_0700E160 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700E178 - 0x0700E278 static const Vtx wf_seg7_vertex_0700E178[] = { @@ -48,8 +44,8 @@ static const Gfx wf_seg7_dl_0700E328[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700E168, 1), - gsSPLight(&wf_seg7_light_0700E160, 2), + gsSPLight(&wf_seg7_lights_0700E160.l, 1), + gsSPLight(&wf_seg7_lights_0700E160.a, 2), gsSPVertex(wf_seg7_vertex_0700E178, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wf/tumbling_bridge_near/model.inc.c b/levels/wf/tumbling_bridge_near/model.inc.c index ac136f3..581e4b8 100644 --- a/levels/wf/tumbling_bridge_near/model.inc.c +++ b/levels/wf/tumbling_bridge_near/model.inc.c @@ -1,12 +1,8 @@ -// 0x0700DE98 - 0x0700DEA0 -static const Ambient wf_seg7_light_0700DE98 = { - {{0x66, 0x66, 0x66}, 0, {0x66, 0x66, 0x66}, 0} -}; - -// 0x0700DEA0 - 0x0700DEB0 -static const Light wf_seg7_light_0700DEA0 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700DE98 - 0x0700DEB0 +static const Lights1 wf_seg7_lights_0700DE98 = gdSPDefLights1( + 0x66, 0x66, 0x66, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700DEB0 - 0x0700DFA0 static const Vtx wf_seg7_vertex_0700DEB0[] = { @@ -47,8 +43,8 @@ static const Gfx wf_seg7_dl_0700E050[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, grass_09004000), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wf_seg7_light_0700DEA0, 1), - gsSPLight(&wf_seg7_light_0700DE98, 2), + gsSPLight(&wf_seg7_lights_0700DE98.l, 1), + gsSPLight(&wf_seg7_lights_0700DE98.a, 2), gsSPVertex(wf_seg7_vertex_0700DEB0, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), diff --git a/levels/wmotr/areas/1/geo.inc.c b/levels/wmotr/areas/1/geo.inc.c index f7c34f9..d1709bb 100644 --- a/levels/wmotr/areas/1/geo.inc.c +++ b/levels/wmotr/areas/1/geo.inc.c @@ -25,7 +25,7 @@ const GeoLayout wmotr_geo_0001F0[] = { GEO_CLOSE_NODE(), GEO_ZBUFFER(0), GEO_OPEN_NODE(), - GEO_ASM(0, Geo18_802CD1E8), + GEO_ASM(0, geo_cannon_circle_base), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/levels/wmotr/areas/1/model.inc.c b/levels/wmotr/areas/1/model.inc.c index fae1f80..7346c69 100644 --- a/levels/wmotr/areas/1/model.inc.c +++ b/levels/wmotr/areas/1/model.inc.c @@ -1,22 +1,14 @@ -// 0x07001800 - 0x07001808 -static const Ambient wmotr_seg7_light_07001800 = { - {{0xbf, 0xbf, 0xbf}, 0, {0xbf, 0xbf, 0xbf}, 0} -}; +// 0x07001800 - 0x07001818 +static const Lights1 wmotr_seg7_lights_07001800 = gdSPDefLights1( + 0xbf, 0xbf, 0xbf, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); -// 0x07001808 - 0x07001818 -static const Light wmotr_seg7_light_07001808 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; - -// 0x07001818 - 0x07001820 -static const Ambient wmotr_seg7_light_07001818 = { - {{0x72, 0x72, 0x72}, 0, {0x72, 0x72, 0x72}, 0} -}; - -// 0x07001820 - 0x07001830 -static const Light wmotr_seg7_light_07001820 = { - {{0x99, 0x99, 0x99}, 0, {0x99, 0x99, 0x99}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x07001818 - 0x07001830 +static const Lights1 wmotr_seg7_lights_07001818 = gdSPDefLights1( + 0x72, 0x72, 0x72, + 0x99, 0x99, 0x99, 0x28, 0x28, 0x28 +); // 0x07001830 - 0x07001920 static const Vtx wmotr_seg7_vertex_07001830[] = { @@ -2423,8 +2415,8 @@ static const Gfx wmotr_seg7_dl_07008EF0[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wmotr_seg7_texture_07001600), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 8 * 32 - 1, CALC_DXT(8, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wmotr_seg7_light_07001808, 1), - gsSPLight(&wmotr_seg7_light_07001800, 2), + gsSPLight(&wmotr_seg7_lights_07001800.l, 1), + gsSPLight(&wmotr_seg7_lights_07001800.a, 2), gsSPVertex(wmotr_seg7_vertex_07001830, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -2476,8 +2468,8 @@ static const Gfx wmotr_seg7_dl_07009148[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wmotr_seg7_texture_07000800), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 16 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wmotr_seg7_light_07001820, 1), - gsSPLight(&wmotr_seg7_light_07001818, 2), + gsSPLight(&wmotr_seg7_lights_07001818.l, 1), + gsSPLight(&wmotr_seg7_lights_07001818.a, 2), gsSPVertex(wmotr_seg7_vertex_07002010, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0), @@ -2521,8 +2513,8 @@ static const Gfx wmotr_seg7_dl_070092A0[] = { gsSP1Triangle( 0, 14, 1, 0x0), gsSPVertex(wmotr_seg7_vertex_07002630, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPLight(&wmotr_seg7_light_07001808, 1), - gsSPLight(&wmotr_seg7_light_07001800, 2), + gsSPLight(&wmotr_seg7_lights_07001800.l, 1), + gsSPLight(&wmotr_seg7_lights_07001800.a, 2), gsSPVertex(wmotr_seg7_vertex_07002670, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0), @@ -3384,15 +3376,11 @@ const Gfx wmotr_seg7_dl_0700C1F8[] = { gsSPEndDisplayList(), }; -// 0x0700C2A0 - 0x0700C2A8 -static const Ambient wmotr_seg7_light_0700C2A0 = { - {{0x3f, 0x3f, 0x3f}, 0, {0x3f, 0x3f, 0x3f}, 0} -}; - -// 0x0700C2A8 - 0x0700C2B8 -static const Light wmotr_seg7_light_0700C2A8 = { - {{0xff, 0xff, 0xff}, 0, {0xff, 0xff, 0xff}, 0, {0x28, 0x28, 0x28}, 0} -}; +// 0x0700C2A0 - 0x0700C2B8 +static const Lights1 wmotr_seg7_lights_0700C2A0 = gdSPDefLights1( + 0x3f, 0x3f, 0x3f, + 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 +); // 0x0700C2B8 - 0x0700C3B8 static const Vtx wmotr_seg7_vertex_0700C2B8[] = { @@ -4020,8 +4008,8 @@ static const Gfx wmotr_seg7_dl_0700E188[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wmotr_seg7_texture_07000C00), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&wmotr_seg7_light_0700C2A8, 1), - gsSPLight(&wmotr_seg7_light_0700C2A0, 2), + gsSPLight(&wmotr_seg7_lights_0700C2A0.l, 1), + gsSPLight(&wmotr_seg7_lights_0700C2A0.a, 2), gsSPVertex(wmotr_seg7_vertex_0700C2B8, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSP2Triangles( 2, 4, 5, 0x0, 2, 5, 6, 0x0), diff --git a/levels/wmotr/script.c b/levels/wmotr/script.c index 72b1c66..5daf0de 100644 --- a/levels/wmotr/script.c +++ b/levels/wmotr/script.c @@ -49,10 +49,10 @@ const LevelScript level_wmotr_entry[] = { AREA(/*index*/ 1, wmotr_geo_0001F0), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -67, 2669, -16, /*angle*/ 0, 270, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvWarps64), - WARP_NODE(/*id*/ 0x0A, /*destLevel*/ 0x1F, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF0, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x38, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF1, /*destLevel*/ 0x06, /*destArea*/ 0x02, /*destNode*/ 0x6D, /*flags*/ WARP_NO_CHECKPOINT), - WARP_NODE(/*id*/ 0xF3, /*destLevel*/ 0x10, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_WMOTR, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x38, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x6D, /*flags*/ WARP_NO_CHECKPOINT), + WARP_NODE(/*id*/ 0xF3, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_func_local_1), JUMP_LINK(script_func_local_2), TERRAIN(/*terrainData*/ wmotr_seg7_collision), diff --git a/rename_sym.sh b/rename_sym.sh index f58e172..c461935 100755 --- a/rename_sym.sh +++ b/rename_sym.sh @@ -10,4 +10,4 @@ fi #echo "Replace $1 with $2?" #read -grep -rl "$1" assets/*.s enhancements/**.{c,h,s} lib/**/*.{c,h} asm/**/*.s bin/*.s data/*.s levels/**/*.s actors/**/*.c src/**/*.{c,h} include/**/*.{h,in} undefined_syms.txt | xargs sed -i "s/\b$1\b/$2/g" +grep -rl "$1" text/**/*.{c,h} assets/**/*.c enhancements/**/*.{c,h,s} lib/**/*.{c,h,s} asm/**/*.s bin/**/*.c data/*.c levels/**/*.c actors/**/*.c src/**/*.{c,h} include/**/*.{h,in} undefined_syms.txt | xargs sed -i "s/\b$1\b/$2/g" diff --git a/sm64.ld b/sm64.ld index 2a6c74f..dea5c8b 100755 --- a/sm64.ld +++ b/sm64.ld @@ -75,6 +75,11 @@ SECTIONS } END_SEG(boot) + . = 0x80000400; + BEGIN_NOLOAD(zbuffer) { + BUILD_DIR/src/buffers/zbuffer.o(.bss*); + } + /* lib/src/__osDevMgrMain.c and lib/src/osCreateViManager.c contain infinite * loops compiled without -g, which cause the return statements and the .o * files themselves to be aligned to 32-byte boundaries. But in the binary, @@ -755,37 +760,13 @@ SECTIONS MIO0_SEG(inside, 0x09000000) MIO0_SEG(effect, 0x0B000000) - STANDARD_LEVEL(bbh) - STANDARD_LEVEL(ccm) - STANDARD_LEVEL(castle_inside) - STANDARD_LEVEL(hmc) - STANDARD_LEVEL(ssl) - STANDARD_LEVEL(bob) - STANDARD_LEVEL(sl) - STANDARD_LEVEL(wdw) - STANDARD_LEVEL(jrb) - STANDARD_LEVEL(thi) - STANDARD_LEVEL(ttc) - STANDARD_LEVEL(rr) - STANDARD_LEVEL(castle_grounds) - STANDARD_LEVEL(bitdw) - STANDARD_LEVEL(vcutm) - STANDARD_LEVEL(bitfs) - STANDARD_LEVEL(sa) - STANDARD_LEVEL(bits) - STANDARD_LEVEL(lll) - STANDARD_LEVEL(ddd) - STANDARD_LEVEL(wf) - STANDARD_LEVEL(ending) - STANDARD_LEVEL(castle_courtyard) - STANDARD_LEVEL(pss) - STANDARD_LEVEL(cotmc) - STANDARD_LEVEL(totwc) - STANDARD_LEVEL(bowser_1) - STANDARD_LEVEL(wmotr) - STANDARD_LEVEL(bowser_2) - STANDARD_LEVEL(bowser_3) - STANDARD_LEVEL(ttm) +#define STUB_LEVEL(_0, _1, _2, _3, _4, _5, _6, _7, _8) +#define DEFINE_LEVEL(_0, _1, _2, folder, _4, _5, _6, _7, _8, _9, _10) STANDARD_LEVEL(folder) + + #include "levels/level_defines.h" + +#undef STUB_LEVEL +#undef DEFINE_LEVEL /* 4E9FA0-? [?] */ BEGIN_SEG(assets, __romPos) diff --git a/sound/sequences/00_sound_player.s b/sound/sequences/00_sound_player.s index e7b6cb5..aafbbc2 100644 --- a/sound/sequences/00_sound_player.s +++ b/sound/sequences/00_sound_player.s @@ -2757,17 +2757,17 @@ sound_ref .sound_general_boat_tilt1 sound_ref .sound_general_boat_tilt2 sound_ref .sound_general_coin_drop sound_ref .chan_1429 -sound_ref .sound_general_switch1 +sound_ref .sound_general_pendulum_swing sound_ref .sound_general_chain_chomp1 sound_ref .sound_general_chain_chomp2 -sound_ref .sound_general_switch2 +sound_ref .sound_general_door_turn_key sound_ref .sound_general_moving_in_sand sound_ref .chan_1519 -sound_ref .sound_general_switch3 +sound_ref .sound_general_moving_platform_switch sound_ref .sound_general_cage_open sound_ref .sound_general_quiet_pound1 sound_ref .sound_general_break_box -sound_ref .sound_general_switch4 +sound_ref .sound_general_door_insert_key sound_ref .sound_general_quiet_pound2 sound_ref .sound_general_big_pound sound_ref .chan_15CD @@ -3426,7 +3426,7 @@ layer_note1 51, 0x3, 50 layer_note1 27, 0xa, 75 layer_end -.sound_general_switch1: +.sound_general_pendulum_swing: chan_setbank 4 chan_setinstr 9 chan_setval 50 @@ -3519,7 +3519,7 @@ layer_loop 2 layer_loopend layer_end -.sound_general_switch2: +.sound_general_door_turn_key: chan_setbank 4 chan_setinstr 9 chan_setlayer 0, .layer_14F2 @@ -3562,7 +3562,7 @@ layer_transpose 1 layer_note1 15, 0x2c, 127 layer_end -.sound_general_switch3: +.sound_general_moving_platform_switch: chan_setbank 4 chan_setinstr 9 chan_setlayer 0, .layer_1539 @@ -3621,7 +3621,7 @@ layer_note1 38, 0x10, 110 layer_note1 27, 0x64, 110 layer_end -.sound_general_switch4: +.sound_general_door_insert_key: chan_setbank 4 chan_setinstr 9 chan_setlayer 0, .layer_1599 diff --git a/src/audio/data.c b/src/audio/data.c index 1020b04..23331e9 100644 --- a/src/audio/data.c +++ b/src/audio/data.c @@ -131,9 +131,9 @@ u8 gDefaultShortNoteDurationTable[16] = { s8 gVibratoCurve[16] = { 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120 }; struct AdsrEnvelope gDefaultEnvelope[] = { - { 4, 32000 }, // go from 0 to 32000 over the course of 16ms - { 1000, 32000 }, // stay there for 4.16 seconds - { ADSR_HANG, 0 } // then continue staying there + { BSWAP16(4), BSWAP16(32000) }, // go from 0 to 32000 over the course of 16ms + { BSWAP16(1000), BSWAP16(32000) }, // stay there for 4.16 seconds + { BSWAP16(ADSR_HANG), 0 } // then continue staying there }; s16 sSineWave[0x40] = { @@ -375,16 +375,16 @@ s8 sUnused8033EF8 = 24; struct CtlEntry *gCtlEntries; s32 gAiFrequency; u32 D_80226D68; -s32 D_80226D6C; +s32 gMaxAudioCmds; s32 gMaxSimultaneousNotes; -s32 D_80226D74; +s32 gSamplesPerFrameTarget; s32 gMinAiBufferLength; s16 gTempoInternalToExternal; s8 gAudioUpdatesPerFrame; s8 gSoundMode; -volatile s32 gActiveAudioFrames; +volatile s32 gAudioFrameCount; volatile s32 gCurrAudioFrameDmaCount; s32 gAudioTaskIndex; @@ -402,4 +402,4 @@ s16 gAiBufferLengths[NUMAIBUFFERS]; u32 gUnused80226E58[0x10]; u16 gUnused80226E98[0x10]; -u32 D_80226EB8; +u32 gAudioRandom; diff --git a/src/audio/data.h b/src/audio/data.h index 83dfce2..f88901b 100644 --- a/src/audio/data.h +++ b/src/audio/data.h @@ -1,5 +1,5 @@ -#ifndef _AUDIO_DATA_H -#define _AUDIO_DATA_H +#ifndef AUDIO_DATA_H +#define AUDIO_DATA_H #include "internal.h" @@ -46,16 +46,16 @@ extern volatile s32 gAudioLoadLock; extern struct CtlEntry *gCtlEntries; extern s32 gAiFrequency; extern u32 D_80226D68; -extern s32 D_80226D6C; +extern s32 gMaxAudioCmds; extern s32 gMaxSimultaneousNotes; -extern s32 D_80226D74; +extern s32 gSamplesPerFrameTarget; extern s32 gMinAiBufferLength; extern s16 gTempoInternalToExternal; extern s8 gAudioUpdatesPerFrame; // = 4 extern s8 gSoundMode; -extern volatile s32 gActiveAudioFrames; +extern volatile s32 gAudioFrameCount; extern volatile s32 gCurrAudioFrameDmaCount; // number of DMAs performed during this frame extern s32 gAudioTaskIndex; @@ -73,6 +73,6 @@ extern s16 gAiBufferLengths[NUMAIBUFFERS]; extern u32 gUnused80226E58[0x10]; extern u16 gUnused80226E98[0x10]; -extern u32 D_80226EB8; +extern u32 gAudioRandom; -#endif /* _AUDIO_DATA_H */ +#endif /* AUDIO_DATA_H */ diff --git a/src/audio/effects.c b/src/audio/effects.c index 310d717..6c1e999 100644 --- a/src/audio/effects.c +++ b/src/audio/effects.c @@ -57,7 +57,7 @@ void sequence_player_process_sound(struct SequencePlayer *seqPlayer) { channelVolume = seqChannel->seqPlayer->fadeVolume * (seqChannel->volume * seqChannel->volumeScale); - if (seqChannel->seqPlayer->muted && (seqChannel->muteBehavior & MUTE_BEHAVIOR_20) != 0) { + if (seqChannel->seqPlayer->muted && (seqChannel->muteBehavior & MUTE_BEHAVIOR_SOFTEN) != 0) { channelVolume *= seqChannel->seqPlayer->muteVolumeScale; } @@ -257,7 +257,7 @@ s32 adsr_update(struct AdsrState *adsr) { // fallthrough case ADSR_STATE_LOOP: - adsr->delay = adsr->envelope[adsr->envIndex].delay; + adsr->delay = BSWAP16(adsr->envelope[adsr->envIndex].delay); switch (adsr->delay) { case ADSR_DISABLE: adsr->state = ADSR_STATE_DISABLED; @@ -266,14 +266,14 @@ s32 adsr_update(struct AdsrState *adsr) { adsr->state = ADSR_STATE_HANG; break; case ADSR_GOTO: - adsr->envIndex = adsr->envelope[adsr->envIndex].arg; + adsr->envIndex = BSWAP16(adsr->envelope[adsr->envIndex].arg); break; case ADSR_RESTART: adsr->state = ADSR_STATE_INITIAL; break; default: - adsr->target = adsr->envelope[adsr->envIndex].arg; + adsr->target = BSWAP16(adsr->envelope[adsr->envIndex].arg); adsr->velocity = ((adsr->target - adsr->current) << 0x10) / adsr->delay; adsr->state = ADSR_STATE_FADE; adsr->envIndex++; diff --git a/src/audio/effects.h b/src/audio/effects.h index 4cd7560..e64d42d 100644 --- a/src/audio/effects.h +++ b/src/audio/effects.h @@ -1,7 +1,8 @@ -#ifndef _AUDIO_EFFECTS_H -#define _AUDIO_EFFECTS_H +#ifndef AUDIO_EFFECTS_H +#define AUDIO_EFFECTS_H #include "internal.h" +#include "platform_info.h" #define ADSR_STATE_DISABLED 0 #define ADSR_STATE_INITIAL 1 @@ -22,10 +23,18 @@ #define ADSR_GOTO -2 #define ADSR_RESTART -3 +// Envelopes are always stored as big endian, to match sequence files which are +// byte blobs and can embed envelopes. Hence this byteswapping macro. +#if IS_BIG_ENDIAN +#define BSWAP16(x) (x) +#else +#define BSWAP16(x) (((x) & 0xff) << 8 | (((x) >> 8) & 0xff)) +#endif + void sequence_player_process_sound(struct SequencePlayer *seqPlayer); void note_vibrato_update(struct Note *note); void note_vibrato_init(struct Note *note); void adsr_init(struct AdsrState *adsr, struct AdsrEnvelope *envelope, s16 *volOut); s32 adsr_update(struct AdsrState *adsr); -#endif /* _AUDIO_EFFECTS_H */ +#endif /* AUDIO_EFFECTS_H */ diff --git a/src/audio/external.c b/src/audio/external.c index ca560ae..a195aba 100644 --- a/src/audio/external.c +++ b/src/audio/external.c @@ -14,21 +14,27 @@ #include "game/room.h" #include "game/camera.h" #include "seq_ids.h" +#include "dialog_ids.h" +#include "level_table.h" // N.B. sound banks are different from the audio banks referred to in other // files. We should really fix our naming to be less ambiguous... #define MAX_BG_MUSIC_QUEUE_SIZE 6 #define SOUND_BANK_COUNT 10 +#define MAX_CHANNELS_PER_SOUND 1 #define SEQUENCE_NONE 0xFF +#define SAMPLES_TO_OVERPRODUCE 0x10 +#define EXTRA_BUFFERED_AI_SAMPLES_TARGET 0x40 + // No-op printf macro which leaves string literals in rodata in IDO. (IDO // doesn't support variadic macros, so instead they let the parameter list -// expand to a no-op comma expression.) See goddard/gd_main.h. -#ifdef __GNUC__ -#define stubbed_printf(...) -#else +// expand to a no-op comma expression.) See also goddard/gd_main.h. +#ifdef __sgi #define stubbed_printf +#else +#define stubbed_printf(...) #endif struct Sound { @@ -66,7 +72,7 @@ s32 gAudioErrorFlags = 0; s32 sGameLoopTicked = 0; // Dialog sounds -// The US difference is the sound for Dialog037 ("I win! You lose! Ha ha ha ha! +// The US difference is the sound for DIALOG_037 ("I win! You lose! Ha ha ha ha! // You're no slouch, but I'm a better sledder! Better luck next time!"), spoken // by Koopa instead of the penguin in JP. @@ -89,7 +95,7 @@ s32 sGameLoopTicked = 0; #define DIFF TUXIE #endif -u8 sDialogSpeaker[170] = { +u8 sDialogSpeaker[] = { // 0 1 2 3 4 5 6 7 8 9 /* 0*/ _, BOMB, BOMB, BOMB, BOMB, KOOPA, KOOPA, KOOPA, _, KOOPA, /* 1*/ _, _, _, _, _, _, _, KBOMB, _, _, @@ -110,6 +116,7 @@ u8 sDialogSpeaker[170] = { /*16*/ _, YOSHI, _, _, _, _, _, _, WIGLR, _ }; #undef _ +STATIC_ASSERT(ARRAY_COUNT(sDialogSpeaker) == DIALOG_COUNT, "change this array if you are adding dialogs"); s32 sDialogSpeakerVoice[15] = { SOUND_OBJ_UKIKI_CHATTER_LONG, @@ -150,10 +157,11 @@ u8 sSoundRequestCount = 0; #define MARIO_IS_IN_AREA 6 #define MARIO_IS_IN_ROOM 7 -#define DYN1(cond1, val1, res) 1 << (15 - cond1) | res, val1 -#define DYN2(cond1, val1, cond2, val2, res) 1 << (15 - cond1) | 1 << (15 - cond2) | res, val1, val2 -#define DYN3(cond1, val1, cond2, val2, cond3, val3, res) \ - 1 << (15 - cond1) | 1 << (15 - cond2) | 1 << (15 - cond3) | res, val1, val2, val3 +#define DYN1(cond1, val1, res) (s16)(1 << (15 - cond1) | res), val1 +#define DYN2(cond1, val1, cond2, val2, res) \ + (s16)(1 << (15 - cond1) | 1 << (15 - cond2) | res), val1, val2 +#define DYN3(cond1, val1, cond2, val2, cond3, val3, res) \ + (s16)(1 << (15 - cond1) | 1 << (15 - cond2) | 1 << (15 - cond3) | res), val1, val2, val3 s16 sDynBbh[] = { SEQ_LEVEL_SPOOKY, @@ -201,167 +209,58 @@ s16 sDynNone[] = { SEQ_SOUND_PLAYER, 0 }; u8 sCurrentMusicDynamic = 0xff; u8 sBackgroundMusicForDynamics = SEQUENCE_NONE; +#define STUB_LEVEL(_0, _1, _2, _3, _4, _5, _6, leveldyn, _8) leveldyn, +#define DEFINE_LEVEL(_0, _1, _2, _3, _4, _5, _6, _7, _8, leveldyn, _10) leveldyn, + #define _ sDynNone -s16 *sLevelDynamics[] = { +s16 *sLevelDynamics[LEVEL_COUNT] = { _, // LEVEL_NONE - _, // LEVEL_UNKNOWN_1 - _, // LEVEL_UNKNOWN_2 - _, // LEVEL_UNKNOWN_3 - sDynBbh, // LEVEL_BBH - _, // LEVEL_CCM - _, // LEVEL_CASTLE - sDynHmc, // LEVEL_HMC - _, // LEVEL_SSL - _, // LEVEL_BOB - _, // LEVEL_SL - sDynWdw, // LEVEL_WDW - sDynJrb, // LEVEL_JRB - _, // LEVEL_THI - _, // LEVEL_TTC - _, // LEVEL_RR - _, // LEVEL_CASTLE_GROUNDS - _, // LEVEL_BITDW - _, // LEVEL_VCUTM - _, // LEVEL_BITFS - _, // LEVEL_SA - _, // LEVEL_BITS - _, // LEVEL_LLL - sDynDdd, // LEVEL_DDD - _, // LEVEL_WF - _, // LEVEL_ENDING - _, // LEVEL_CASTLE_COURTYARD - _, // LEVEL_PSS - _, // LEVEL_COTMC - _, // LEVEL_TOTWC - _, // LEVEL_BOWSER_1 - _, // LEVEL_WMOTR - _, // LEVEL_UNKNOWN_32 - _, // LEVEL_BOWSER_2 - _, // LEVEL_BOWSER_3 - _, // LEVEL_UNKNOWN_35 - _, // LEVEL_TTM - _, // LEVEL_UNKNOWN_37 - sDynUnk38, // LEVEL_UNKNOWN_38 + #include "levels/level_defines.h" }; -STATIC_ASSERT(ARRAY_COUNT(sLevelDynamics) == LEVEL_COUNT, "change this array if you are adding levels"); #undef _ +#undef STUB_LEVEL +#undef DEFINE_LEVEL struct MusicDynamic { /*0x0*/ s16 bits1; - /*0x2*/ u8 unused1; - /*0x3*/ u8 volScale1; // maybe this is an u16, loaded as u8? + /*0x2*/ u16 volScale1; /*0x4*/ s16 dur1; /*0x6*/ s16 bits2; - /*0x8*/ u8 unused2; - /*0x9*/ u8 volScale2; + /*0x8*/ u16 volScale2; /*0xA*/ s16 dur2; }; // size = 0xC struct MusicDynamic sMusicDynamics[8] = { - { 0x0000, 0, 127, 100, 0x0e43, 0, 0, 100 }, // SEQ_LEVEL_WATER - { 0x0003, 0, 127, 100, 0x0e40, 0, 0, 100 }, // SEQ_LEVEL_WATER - { 0x0e43, 0, 127, 200, 0x0000, 0, 0, 200 }, // SEQ_LEVEL_WATER - { 0x02ff, 0, 127, 100, 0x0100, 0, 0, 100 }, // SEQ_LEVEL_UNDERGROUND - { 0x03f7, 0, 127, 100, 0x0008, 0, 0, 100 }, // SEQ_LEVEL_UNDERGROUND - { 0x0070, 0, 127, 10, 0x0000, 0, 0, 100 }, // SEQ_LEVEL_SPOOKY - { 0x0000, 0, 127, 100, 0x0070, 0, 0, 10 }, // SEQ_LEVEL_SPOOKY - { 0xffff, 0, 127, 100, 0x0000, 0, 0, 100 }, // any (unused) + { 0x0000, 127, 100, 0x0e43, 0, 100 }, // SEQ_LEVEL_WATER + { 0x0003, 127, 100, 0x0e40, 0, 100 }, // SEQ_LEVEL_WATER + { 0x0e43, 127, 200, 0x0000, 0, 200 }, // SEQ_LEVEL_WATER + { 0x02ff, 127, 100, 0x0100, 0, 100 }, // SEQ_LEVEL_UNDERGROUND + { 0x03f7, 127, 100, 0x0008, 0, 100 }, // SEQ_LEVEL_UNDERGROUND + { 0x0070, 127, 10, 0x0000, 0, 100 }, // SEQ_LEVEL_SPOOKY + { 0x0000, 127, 100, 0x0070, 0, 10 }, // SEQ_LEVEL_SPOOKY + { 0xffff, 127, 100, 0x0000, 0, 100 }, // any (unused) }; -u8 gAreaEchoLevel[][3] = { +#define STUB_LEVEL(_0, _1, _2, _3, echo1, echo2, echo3, _7, _8) { echo1, echo2, echo3 }, +#define DEFINE_LEVEL(_0, _1, _2, _3, _4, _5, echo1, echo2, echo3, _9, _10) { echo1, echo2, echo3 }, + +u8 gAreaEchoLevel[LEVEL_COUNT][3] = { { 0x00, 0x00, 0x00 }, // LEVEL_NONE - { 0x00, 0x00, 0x00 }, // LEVEL_UNKNOWN_1 - { 0x00, 0x00, 0x00 }, // LEVEL_UNKNOWN_2 - { 0x00, 0x00, 0x00 }, // LEVEL_UNKNOWN_3 - { 0x28, 0x28, 0x28 }, // LEVEL_BBH - { 0x10, 0x38, 0x38 }, // LEVEL_CCM - { 0x20, 0x20, 0x30 }, // LEVEL_CASTLE - { 0x28, 0x28, 0x28 }, // LEVEL_HMC - { 0x08, 0x30, 0x30 }, // LEVEL_SSL - { 0x08, 0x08, 0x08 }, // LEVEL_BOB - { 0x10, 0x28, 0x28 }, // LEVEL_SL - { 0x10, 0x18, 0x18 }, // LEVEL_WDW - { 0x10, 0x18, 0x18 }, // LEVEL_JRB - { 0x0c, 0x0c, 0x20 }, // LEVEL_THI - { 0x18, 0x18, 0x18 }, // LEVEL_TTC - { 0x20, 0x20, 0x20 }, // LEVEL_RR - { 0x08, 0x08, 0x08 }, // LEVEL_CASTLE_GROUNDS - { 0x28, 0x28, 0x28 }, // LEVEL_BITDW - { 0x28, 0x28, 0x28 }, // LEVEL_VCUTM - { 0x28, 0x28, 0x28 }, // LEVEL_BITFS - { 0x10, 0x10, 0x10 }, // LEVEL_SA - { 0x28, 0x28, 0x28 }, // LEVEL_BITS - { 0x08, 0x30, 0x30 }, // LEVEL_LLL - { 0x10, 0x20, 0x20 }, // LEVEL_DDD - { 0x08, 0x08, 0x08 }, // LEVEL_WF - { 0x00, 0x00, 0x00 }, // LEVEL_ENDING - { 0x08, 0x08, 0x08 }, // LEVEL_CASTLE_COURTYARD - { 0x28, 0x28, 0x28 }, // LEVEL_PSS - { 0x28, 0x28, 0x28 }, // LEVEL_COTMC - { 0x20, 0x20, 0x20 }, // LEVEL_TOTWC - { 0x40, 0x40, 0x40 }, // LEVEL_BOWSER_1 - { 0x28, 0x28, 0x28 }, // LEVEL_WMOTR - { 0x70, 0x00, 0x00 }, // LEVEL_UNKNOWN_32 - { 0x40, 0x40, 0x40 }, // LEVEL_BOWSER_2 - { 0x40, 0x40, 0x40 }, // LEVEL_BOWSER_3 - { 0x00, 0x00, 0x00 }, // LEVEL_UNKNOWN_35 - { 0x08, 0x08, 0x08 }, // LEVEL_TTM - { 0x00, 0x00, 0x00 }, // LEVEL_UNKNOWN_37 - { 0x00, 0x00, 0x00 }, // LEVEL_UNKNOWN_38 + #include "levels/level_defines.h" }; -STATIC_ASSERT(ARRAY_COUNT(gAreaEchoLevel) == LEVEL_COUNT, "change this array if you are adding levels"); +#undef STUB_LEVEL +#undef DEFINE_LEVEL -#ifdef VERSION_JP -#define VAL_DIFF 25000 -#else -#define VAL_DIFF 60000 -#endif +#define STUB_LEVEL(_0, _1, _2, volume, _4, _5, _6, _7, _8) volume, +#define DEFINE_LEVEL(_0, _1, _2, _3, _4, volume, _6, _7, _8, _9, _10) volume, -u16 D_80332028[] = { +u16 D_80332028[LEVEL_COUNT] = { 20000, // LEVEL_NONE - 20000, // LEVEL_UNKNOWN_1 - 20000, // LEVEL_UNKNOWN_2 - 20000, // LEVEL_UNKNOWN_3 - 28000, // LEVEL_BBH - 17000, // LEVEL_CCM - 20000, // LEVEL_CASTLE - 16000, // LEVEL_HMC - 15000, // LEVEL_SSL - 15000, // LEVEL_BOB - 14000, // LEVEL_SL - 17000, // LEVEL_WDW - 20000, // LEVEL_JRB - 20000, // LEVEL_THI - 18000, // LEVEL_TTC - 20000, // LEVEL_RR - 25000, // LEVEL_CASTLE_GROUNDS - 16000, // LEVEL_BITDW - 30000, // LEVEL_VCUTM - 16000, // LEVEL_BITFS - 20000, // LEVEL_SA - 16000, // LEVEL_BITS - 22000, // LEVEL_LLL - 17000, // LEVEL_DDD - 13000, // LEVEL_WF - 20000, // LEVEL_ENDING - 20000, // LEVEL_CASTLE_COURTYARD - 20000, // LEVEL_PSS - 18000, // LEVEL_COTMC - 20000, // LEVEL_TOTWC - VAL_DIFF, // LEVEL_BOWSER_1 - 20000, // LEVEL_WMOTR - 20000, // LEVEL_UNKNOWN_32 - VAL_DIFF, // LEVEL_BOWSER_2 - VAL_DIFF, // LEVEL_BOWSER_3 - 20000, // LEVEL_UNKNOWN_35 - 15000, // LEVEL_TTM - 20000, // LEVEL_UNKNOWN_37 - 20000, // LEVEL_UNKNOWN_38 + #include "levels/level_defines.h" }; -#undef VAL_DIFF - -STATIC_ASSERT(ARRAY_COUNT(D_80332028) == LEVEL_COUNT, "change this array if you are adding levels"); +#undef STUB_LEVEL +#undef DEFINE_LEVEL #define AUDIO_MAX_DISTANCE US_FLOAT(22000.0) @@ -407,12 +306,12 @@ u8 sBackgroundMusicDefaultVolume[] = { STATIC_ASSERT(ARRAY_COUNT(sBackgroundMusicDefaultVolume) == SEQ_COUNT, "change this array if you are adding sequences"); -u8 gPlayer0CurSeqId = SEQUENCE_NONE; +u8 sPlayer0CurSeqId = SEQUENCE_NONE; u8 sMusicDynamicDelay = 0; u8 D_803320A4[SOUND_BANK_COUNT] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // pointers to head of list u8 D_803320B0[SOUND_BANK_COUNT] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; // pointers to head of list -u8 D_803320BC[SOUND_BANK_COUNT] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -u8 D_803320C8[SOUND_BANK_COUNT] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; // sizes of D_80360C38 +u8 D_803320BC[SOUND_BANK_COUNT] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // only used for debugging +u8 sMaxChannelsForSoundBank[SOUND_BANK_COUNT] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; // Banks 2 and 7 both grew from 0x30 sounds to 0x40 in size in US. #ifdef VERSION_JP @@ -426,8 +325,8 @@ u8 sNumSoundsPerBank[SOUND_BANK_COUNT] = { #undef BANK27_SIZE f32 gDefaultSoundArgs[3] = { 0.0f, 0.0f, 0.0f }; -f32 gUnusedSoundArgs[3] = { 1.0f, 1.0f, 1.0f }; -u8 gSoundBankDisabled[16] = { 0 }; +f32 sUnusedSoundArgs[3] = { 1.0f, 1.0f, 1.0f }; +u8 sSoundBankDisabled[16] = { 0 }; u8 D_80332108 = 0; u8 sHasStartedFadeOut = FALSE; u16 D_80332110 = 0; @@ -445,8 +344,8 @@ u8 sUnused8033323C = 0; // never read, set to 0 u16 *gCurrAiBuffer; struct Sound sSoundRequests[0x100]; struct ChannelVolumeScaleFade D_80360928[SEQUENCE_PLAYERS][CHANNELS_MAX]; -u8 D_80360C28[SOUND_BANK_COUNT]; -u8 D_80360C38[SOUND_BANK_COUNT][1]; +u8 sUsedChannelsForSoundBank[SOUND_BANK_COUNT]; +u8 sCurrentSound[SOUND_BANK_COUNT][MAX_CHANNELS_PER_SOUND]; // index into gSoundBanks // list item memory for D_803320A4 and D_803320B0 struct SoundCharacteristics gSoundBanks[SOUND_BANK_COUNT][40]; u8 D_80363808[SOUND_BANK_COUNT]; @@ -538,7 +437,7 @@ void unused_8031E4F0(void) { } void unused_8031E568(void) { - stubbed_printf("COUNT %8d\n", gActiveAudioFrames); + stubbed_printf("COUNT %8d\n", gAudioFrameCount); } #endif @@ -627,14 +526,14 @@ static void func_8031D838(s32 player, FadeT fadeInTime, u8 targetVolume) { } struct SPTask *create_next_audio_frame_task(void) { - u32 t2; + u32 samplesRemainingInAI; s32 writtenCmds; s32 index; OSTask_t *task; s32 oldDmaCount; s32 flags; - gActiveAudioFrames++; + gAudioFrameCount++; if (gAudioLoadLock != AUDIO_LOCK_NOT_LOADING) { stubbed_printf("DAC:Lost 1 Frame.\n"); return NULL; @@ -644,10 +543,19 @@ struct SPTask *create_next_audio_frame_task(void) { gCurrAiBufferIndex++; gCurrAiBufferIndex %= NUMAIBUFFERS; index = (gCurrAiBufferIndex - 2 + NUMAIBUFFERS) % NUMAIBUFFERS; - t2 = osAiGetLength() / 4; + samplesRemainingInAI = osAiGetLength() / 4; - // Graphics lags behind a little, so make sure audio does too by playing the - // sound that was generated two frames ago. + // Audio is triple buffered; the audio interface reads from two buffers + // while the third is being written by the RSP. More precisely, the + // lifecycle is: + // - this function computes an audio command list + // - wait for vblank + // - the command list is sent to the RSP (we could have sent it to the + // RSP before the vblank, but that gives the RSP less time to finish) + // - wait for vblank + // - the RSP is now expected to be finished, and we can send its output + // on to the AI + // Here we thus send to the AI the sound that was generated two frames ago. if (gAiBufferLengths[index] != 0) { osAiSetNextBuffer(gAiBuffers[index], gAiBufferLengths[index] * 4); } @@ -666,12 +574,13 @@ struct SPTask *create_next_audio_frame_task(void) { index = gCurrAiBufferIndex; gCurrAiBuffer = gAiBuffers[index]; - gAiBufferLengths[index] = (((D_80226D74 - t2) + 0x40) & 0xfff0) + 0x10; + gAiBufferLengths[index] = ((gSamplesPerFrameTarget - samplesRemainingInAI + + EXTRA_BUFFERED_AI_SAMPLES_TARGET) & ~0xf) + SAMPLES_TO_OVERPRODUCE; if (gAiBufferLengths[index] < gMinAiBufferLength) { gAiBufferLengths[index] = gMinAiBufferLength; } - if (gAiBufferLengths[index] > D_80226D74 + 0x10) { - gAiBufferLengths[index] = D_80226D74 + 0x10; + if (gAiBufferLengths[index] > gSamplesPerFrameTarget + SAMPLES_TO_OVERPRODUCE) { + gAiBufferLengths[index] = gSamplesPerFrameTarget + SAMPLES_TO_OVERPRODUCE; } if (sGameLoopTicked != 0) { @@ -684,7 +593,7 @@ struct SPTask *create_next_audio_frame_task(void) { flags = 0; gAudioCmd = synthesis_execute(gAudioCmd, &writtenCmds, gCurrAiBuffer, gAiBufferLengths[index]); - D_80226EB8 = ((D_80226EB8 + gActiveAudioFrames) * gActiveAudioFrames); + gAudioRandom = ((gAudioRandom + gAudioFrameCount) * gAudioFrameCount); index = gAudioTaskIndex; gAudioTask->msgqueue = NULL; @@ -736,7 +645,7 @@ static void process_sound_request(u32 bits, f32 *pos) { bankIndex = (bits & SOUNDARGS_MASK_BANK) >> SOUNDARGS_SHIFT_BANK; soundId = (bits & SOUNDARGS_MASK_SOUNDID) >> SOUNDARGS_SHIFT_SOUNDID; - if (soundId >= sNumSoundsPerBank[bankIndex] || gSoundBankDisabled[bankIndex]) { + if (soundId >= sNumSoundsPerBank[bankIndex] || sSoundBankDisabled[bankIndex]) { return; } @@ -882,9 +791,9 @@ static void func_8031E16C(u8 bankIndex) { (u32) gSoundBanks[bankIndex][soundIndex].distance + 0x4c * (0xff - val); } - for (i = 0; i < D_803320C8[bankIndex]; i++) { + for (i = 0; i < sMaxChannelsForSoundBank[bankIndex]; i++) { if (sp98[i] >= gSoundBanks[bankIndex][soundIndex].priority) { - for (j = D_803320C8[bankIndex] - 1; j > i; j--) { + for (j = sMaxChannelsForSoundBank[bankIndex] - 1; j > i; j--) { sp98[j] = sp98[j - 1]; sp88[j] = sp88[j - 1]; sp78[j] = sp78[j - 1]; @@ -892,7 +801,7 @@ static void func_8031E16C(u8 bankIndex) { sp98[i] = gSoundBanks[bankIndex][soundIndex].priority; sp88[i] = soundIndex; sp78[i] = gSoundBanks[bankIndex][soundIndex].soundStatus; - i = D_803320C8[bankIndex]; + i = sMaxChannelsForSoundBank[bankIndex]; } } sp77++; @@ -901,55 +810,55 @@ static void func_8031E16C(u8 bankIndex) { } D_803320BC[bankIndex] = sp77; - D_80360C28[bankIndex] = D_803320C8[bankIndex]; + sUsedChannelsForSoundBank[bankIndex] = sMaxChannelsForSoundBank[bankIndex]; - for (i = 0; i < D_80360C28[bankIndex]; i++) { - for (soundIndex = 0; soundIndex < D_80360C28[bankIndex]; soundIndex++) { - if (sp88[soundIndex] != 0xff && D_80360C38[bankIndex][i] == sp88[soundIndex]) { + for (i = 0; i < sUsedChannelsForSoundBank[bankIndex]; i++) { + for (soundIndex = 0; soundIndex < sUsedChannelsForSoundBank[bankIndex]; soundIndex++) { + if (sp88[soundIndex] != 0xff && sCurrentSound[bankIndex][i] == sp88[soundIndex]) { sp88[soundIndex] = 0xff; soundIndex = 0xfe; } } if (soundIndex != 0xff) { - if (D_80360C38[bankIndex][i] != 0xff) { - if (gSoundBanks[bankIndex][D_80360C38[bankIndex][i]].soundBits == NO_SOUND) { - if (gSoundBanks[bankIndex][D_80360C38[bankIndex][i]].soundStatus + if (sCurrentSound[bankIndex][i] != 0xff) { + if (gSoundBanks[bankIndex][sCurrentSound[bankIndex][i]].soundBits == NO_SOUND) { + if (gSoundBanks[bankIndex][sCurrentSound[bankIndex][i]].soundStatus == SOUND_STATUS_PLAYING) { - gSoundBanks[bankIndex][D_80360C38[bankIndex][i]].soundStatus = + gSoundBanks[bankIndex][sCurrentSound[bankIndex][i]].soundStatus = SOUND_STATUS_STOPPED; - func_8031DFE8(bankIndex, D_80360C38[bankIndex][i]); + func_8031DFE8(bankIndex, sCurrentSound[bankIndex][i]); } } - val2 = gSoundBanks[bankIndex][D_80360C38[bankIndex][i]].soundBits + val2 = gSoundBanks[bankIndex][sCurrentSound[bankIndex][i]].soundBits & (SOUND_LO_BITFLAG_UNK8 | SOUNDARGS_MASK_STATUS); if (val2 >= (SOUND_LO_BITFLAG_UNK8 | SOUND_STATUS_PLAYING) - && gSoundBanks[bankIndex][D_80360C38[bankIndex][i]].soundStatus + && gSoundBanks[bankIndex][sCurrentSound[bankIndex][i]].soundStatus != SOUND_STATUS_STOPPED) { #ifndef VERSION_JP - func_8031E0E4(bankIndex, D_80360C38[bankIndex][i]); + func_8031E0E4(bankIndex, sCurrentSound[bankIndex][i]); #endif - gSoundBanks[bankIndex][D_80360C38[bankIndex][i]].soundBits = NO_SOUND; - gSoundBanks[bankIndex][D_80360C38[bankIndex][i]].soundStatus = SOUND_STATUS_STOPPED; - func_8031DFE8(bankIndex, D_80360C38[bankIndex][i]); + gSoundBanks[bankIndex][sCurrentSound[bankIndex][i]].soundBits = NO_SOUND; + gSoundBanks[bankIndex][sCurrentSound[bankIndex][i]].soundStatus = SOUND_STATUS_STOPPED; + func_8031DFE8(bankIndex, sCurrentSound[bankIndex][i]); } else { if (val2 == SOUND_STATUS_PLAYING - && gSoundBanks[bankIndex][D_80360C38[bankIndex][i]].soundStatus + && gSoundBanks[bankIndex][sCurrentSound[bankIndex][i]].soundStatus != SOUND_STATUS_STOPPED) { - gSoundBanks[bankIndex][D_80360C38[bankIndex][i]].soundStatus = + gSoundBanks[bankIndex][sCurrentSound[bankIndex][i]].soundStatus = SOUND_STATUS_STARTING; } } } - D_80360C38[bankIndex][i] = 0xff; + sCurrentSound[bankIndex][i] = 0xff; } } - for (soundIndex = 0; soundIndex < D_80360C28[bankIndex]; soundIndex++) { + for (soundIndex = 0; soundIndex < sUsedChannelsForSoundBank[bankIndex]; soundIndex++) { if (sp88[soundIndex] != 0xff) { - for (i = 0; i < D_80360C28[bankIndex]; i++) { - if (D_80360C38[bankIndex][i] == 0xff) { - D_80360C38[bankIndex][i] = sp88[soundIndex]; + for (i = 0; i < sUsedChannelsForSoundBank[bankIndex]; i++) { + if (sCurrentSound[bankIndex][i] == 0xff) { + sCurrentSound[bankIndex][i] = sp88[soundIndex]; gSoundBanks[bankIndex][sp88[soundIndex]].soundBits = (gSoundBanks[bankIndex][sp88[soundIndex]].soundBits & ~SOUNDARGS_MASK_STATUS) + 1; @@ -1044,7 +953,7 @@ static f32 get_sound_dynamics(u8 bankIndex, u8 item, f32 arg2) { if (intensity >= 0.08f) #endif { - intensity -= (f32)(D_80226EB8 & 0xf) / US_FLOAT(192.0); + intensity -= (f32)(gAudioRandom & 0xf) / US_FLOAT(192.0); } } } else { @@ -1060,7 +969,7 @@ static f32 get_sound_freq_scale(u8 bankIndex, u8 item) { if (!(gSoundBanks[bankIndex][item].soundBits & SOUND_PL_BITFLAG_UNK8)) { f2 = gSoundBanks[bankIndex][item].distance / AUDIO_MAX_DISTANCE; if (gSoundBanks[bankIndex][item].soundBits & SOUND_PL_BITFLAG_UNK2) { - f2 += (f32)(D_80226EB8 & 0xff) / US_FLOAT(64.0); + f2 += (f32)(gAudioRandom & 0xff) / US_FLOAT(64.0); } } else { f2 = 0.0f; @@ -1137,8 +1046,8 @@ void update_game_sound(void) { for (bankIndex = 0; bankIndex < SOUND_BANK_COUNT; bankIndex++) { func_8031E16C(bankIndex); - for (j = 0; j < 1; j++) { - index = D_80360C38[bankIndex][j]; + for (j = 0; j < MAX_CHANNELS_PER_SOUND; j++) { + index = sCurrentSound[bankIndex][j]; if (index < 0xff && gSoundBanks[bankIndex][index].soundStatus != SOUND_STATUS_STOPPED) { soundStatus = gSoundBanks[bankIndex][index].soundBits & SOUNDARGS_MASK_STATUS; soundId = (gSoundBanks[bankIndex][index].soundBits >> SOUNDARGS_SHIFT_SOUNDID); @@ -1313,8 +1222,8 @@ void update_game_sound(void) { channelIndex++; } - // D_80360C28[i] = D_803320C8[i] = 1, so this doesn't do anything - channelIndex += D_803320C8[bankIndex] - D_80360C28[bankIndex]; + // sUsedChannelsForSoundBank[i] = sMaxChannelsForSoundBank[i] = 1, so this doesn't do anything + channelIndex += sMaxChannelsForSoundBank[bankIndex] - sUsedChannelsForSoundBank[bankIndex]; } } @@ -1326,7 +1235,7 @@ void play_sequence(u8 player, u8 seqId, u16 fadeTimer) { u8 i; if (player == 0) { - gPlayer0CurSeqId = seqId & 0x7f; + sPlayer0CurSeqId = seqId & 0x7f; sBackgroundMusicForDynamics = SEQUENCE_NONE; sCurrentMusicDynamic = 0xff; sMusicDynamicDelay = 2; @@ -1351,7 +1260,7 @@ void play_sequence(u8 player, u8 seqId, u16 fadeTimer) { void sequence_player_fade_out(u8 player, u16 fadeTimer) { if (player == 0) { - gPlayer0CurSeqId = SEQUENCE_NONE; + sPlayer0CurSeqId = SEQUENCE_NONE; } sequence_player_fade_out_internal(player, fadeTimer); } @@ -1396,19 +1305,19 @@ void func_8031F96C(u8 player) { } #ifdef NON_MATCHING + void process_level_music_dynamics(void) { - u8 musicDynIndex; // sp57 - s16 conditionValues[8]; // sp44 - u8 conditionTypes[8]; // sp3C - s16 dur1; // sp3A - s16 dur2; // sp38 - u32 conditionBits; // s0 - u32 tempBits; // v1 - u16 bit; // a1 - u8 condIndex; // a0 (same as numConditions?) - u8 i; // s1 + s32 conditionBits; // s0 + u8 musicDynIndex; // sp57 87 u8 j; // v0 - u16 bit2; // s0, v1 + s16 conditionValues[8]; // sp44 68 + u8 conditionTypes[8]; // sp3C 60 + s16 dur1; // sp3A 58 + s16 dur2; // sp38 56 + u16 bit; // a1 (in first loop), s0, v1 + u8 i; // s1 + u8 condIndex; // a0, v1 + u32 tempBits; // v1 func_8031F96C(0); func_8031F96C(2); @@ -1416,7 +1325,7 @@ void process_level_music_dynamics(void) { if (sMusicDynamicDelay != 0) { sMusicDynamicDelay--; } else { - sBackgroundMusicForDynamics = gPlayer0CurSeqId; + sBackgroundMusicForDynamics = sPlayer0CurSeqId; } if (sBackgroundMusicForDynamics != sLevelDynamics[gCurrLevelNum][0]) { @@ -1427,12 +1336,9 @@ void process_level_music_dynamics(void) { musicDynIndex = sLevelDynamics[gCurrLevelNum][1] & 0xff; i = 2; while (conditionBits & 0xff00) { - condIndex = 0; - for (j = 0, bit = 0x8000; j<8; j++, bit = bit>> 1) { + for (j = 0, condIndex = 0, bit = 0x8000; j < 8; j++, bit = bit >> 1) { if (conditionBits & bit) { - s16 val = sLevelDynamics[gCurrLevelNum][i]; - conditionValues[condIndex] = val; - i++; + conditionValues[condIndex] = sLevelDynamics[gCurrLevelNum][i++]; conditionTypes[condIndex] = j; condIndex++; } @@ -1440,7 +1346,6 @@ void process_level_music_dynamics(void) { for (j = 0; j < condIndex; j++) { // (having all 'temp' share a single variable affects regalloc) - UNUSED s16 temp; switch (conditionTypes[j]) { case MARIO_X_GE: { s16 temp = gMarioStates[0].pos[0]; @@ -1479,14 +1384,14 @@ void process_level_music_dynamics(void) { break; } case MARIO_IS_IN_AREA: { - s16 temp = gCurrAreaIndex; - if (temp != conditionValues[j]) + //s16 temp = gCurrAreaIndex; + if (gCurrAreaIndex != conditionValues[j]) j = condIndex + 1; break; } case MARIO_IS_IN_ROOM: { - s16 temp = gMarioCurrentRoom; - if (temp != conditionValues[j]) + //s16 temp = gMarioCurrentRoom; + if (gMarioCurrentRoom != conditionValues[j]) j = condIndex + 1; break; } @@ -1497,7 +1402,8 @@ void process_level_music_dynamics(void) { // The area matches. Break out of the loop. tempBits = 0; } else { - tempBits = sLevelDynamics[gCurrLevelNum][i++]; + tempBits = sLevelDynamics[gCurrLevelNum][i]; + i++; musicDynIndex = tempBits & 0xff, tempBits &= 0xff00; } @@ -1505,7 +1411,7 @@ void process_level_music_dynamics(void) { } if (musicDynIndex != sCurrentMusicDynamic) { - bit2 = 1; + bit = 1; if (sCurrentMusicDynamic == 0xff) { dur1 = 1; dur2 = 1; @@ -1515,13 +1421,13 @@ void process_level_music_dynamics(void) { } for (i = 0; i < CHANNELS_MAX; i++) { - if (sMusicDynamics[musicDynIndex].bits1 & bit2) { + if (sMusicDynamics[musicDynIndex].bits1 & bit) { fade_channel_volume_scale(0, i, sMusicDynamics[musicDynIndex].volScale1, dur1); } - if (sMusicDynamics[musicDynIndex].bits2 & bit2) { + if (sMusicDynamics[musicDynIndex].bits2 & bit) { fade_channel_volume_scale(0, i, sMusicDynamics[musicDynIndex].volScale2, dur2); } - bit2 <<= 1; + bit <<= 1; } sCurrentMusicDynamic = musicDynIndex; @@ -1581,7 +1487,7 @@ u8 func_803200E4(u16 fadeTimer) { u8 vol = 0xff; u8 temp; - if (gPlayer0CurSeqId == SEQUENCE_NONE || gPlayer0CurSeqId == SEQ_EVENT_CUTSCENE_CREDITS) { + if (sPlayer0CurSeqId == SEQUENCE_NONE || sPlayer0CurSeqId == SEQ_EVENT_CUTSCENE_CREDITS) { return 0xff; } @@ -1612,7 +1518,7 @@ u8 func_803200E4(u16 fadeTimer) { if (vol != 0xff) { func_8031D838(0, fadeTimer, vol); } else { - gSequencePlayers[0].volume = sBackgroundMusicDefaultVolume[gPlayer0CurSeqId] / 127.0f; + gSequencePlayers[0].volume = sBackgroundMusicDefaultVolume[sPlayer0CurSeqId] / 127.0f; func_8031D7B0(0, fadeTimer); } } @@ -1636,8 +1542,8 @@ void sound_init(void) { gSoundBanks[i][j].soundStatus = SOUND_STATUS_STOPPED; } - for (j = 0; j < 1; j++) { - D_80360C38[i][j] = 0xff; + for (j = 0; j < MAX_CHANNELS_PER_SOUND; j++) { + sCurrentSound[i][j] = 0xff; } D_803320A4[i] = 0; @@ -1674,7 +1580,7 @@ void sound_init(void) { sCapVolumeTo40 = FALSE; D_80332110 = 0; sUnused80332114 = 0; - gPlayer0CurSeqId = 0xff; + sPlayer0CurSeqId = 0xff; gSoundMode = SOUND_MODE_STEREO; sBackgroundMusicQueueSize = 0; D_8033211C = 0; @@ -1684,22 +1590,23 @@ void sound_init(void) { sSoundRequestCount = 0; } -void unused_8032050C(u8 arg0, u8 *arg1, u8 *arg2, u8 *arg3) { +// (unused) +void get_currently_playing_sound(u8 bankIndex, u8 *numPlayingSounds, u8 *arg2, u8 *soundId) { u8 i; - u8 counter = 0; + u8 count = 0; - for (i = 0; i < D_803320C8[arg0]; i++) { - if (D_80360C38[arg0][i] != 0xff) { - counter++; + for (i = 0; i < sMaxChannelsForSoundBank[bankIndex]; i++) { + if (sCurrentSound[bankIndex][i] != 0xff) { + count++; } } - *arg1 = counter; - *arg2 = D_803320BC[arg0]; - if (D_80360C38[arg0][0] != 0xff) { - *arg3 = (u8)(gSoundBanks[arg0][D_80360C38[arg0][0]].soundBits >> SOUNDARGS_SHIFT_SOUNDID); + *numPlayingSounds = count; + *arg2 = D_803320BC[bankIndex]; + if (sCurrentSound[bankIndex][0] != 0xff) { + *soundId = (u8)(gSoundBanks[bankIndex][sCurrentSound[bankIndex][0]].soundBits >> SOUNDARGS_SHIFT_SOUNDID); } else { - *arg3 = 0xff; + *soundId = 0xff; } } @@ -1759,7 +1666,7 @@ void sound_banks_disable(UNUSED u8 player, u16 bankMask) { for (i = 0; i < SOUND_BANK_COUNT; i++) { if (bankMask & 1) { - gSoundBankDisabled[i] = TRUE; + sSoundBankDisabled[i] = TRUE; } bankMask = bankMask >> 1; } @@ -1778,7 +1685,7 @@ void sound_banks_enable(UNUSED u8 player, u16 bankMask) { for (i = 0; i < SOUND_BANK_COUNT; i++) { if (bankMask & 1) { - gSoundBankDisabled[i] = FALSE; + sSoundBankDisabled[i] = FALSE; } bankMask = bankMask >> 1; } @@ -1787,7 +1694,7 @@ void sound_banks_enable(UNUSED u8 player, u16 bankMask) { u8 unused_803209D8(u8 player, u8 channelIndex, u8 arg2) { u8 ret = 0; if (gSequencePlayers[player].channels[channelIndex] != &gSequenceChannelNone) { - gSequencePlayers[player].channels[channelIndex]->unk0b10 = arg2; + gSequencePlayers[player].channels[channelIndex]->stopSomething2 = arg2; ret = arg2; } return ret; @@ -1815,7 +1722,7 @@ void play_dialog_sound(u8 dialogID) { #ifndef VERSION_JP // "You've stepped on the (Wing|Metal|Vanish) Cap Switch" - if (dialogID == 10 || dialogID == 11 || dialogID == 12) { + if (dialogID == DIALOG_010 || dialogID == DIALOG_011 || dialogID == DIALOG_012) { play_puzzle_jingle(); } #endif @@ -1961,7 +1868,7 @@ void play_secondary_music(u8 seqId, u8 bgMusicVolume, u8 volume, u16 fadeTimer) UNUSED u32 dummy; sUnused80332118 = 0; - if (gPlayer0CurSeqId == 0xff || gPlayer0CurSeqId == SEQ_MENU_TITLE_SCREEN) { + if (sPlayer0CurSeqId == 0xff || sPlayer0CurSeqId == SEQ_MENU_TITLE_SCREEN) { return; } diff --git a/src/audio/external.h b/src/audio/external.h index 142f02d..9667da0 100644 --- a/src/audio/external.h +++ b/src/audio/external.h @@ -1,5 +1,5 @@ -#ifndef _AUDIO_EXTERNAL_H -#define _AUDIO_EXTERNAL_H +#ifndef AUDIO_EXTERNAL_H +#define AUDIO_EXTERNAL_H #include "types.h" @@ -53,4 +53,4 @@ void audio_set_sound_mode(u8 arg0); void audio_init(void); // in load.c -#endif /* _AUDIO_EXTERNAL_H */ +#endif /* AUDIO_EXTERNAL_H */ diff --git a/src/audio/internal.h b/src/audio/internal.h index 2f0626a..859f58b 100644 --- a/src/audio/internal.h +++ b/src/audio/internal.h @@ -1,18 +1,19 @@ -#ifndef _AUDIO_INTERNAL_H -#define _AUDIO_INTERNAL_H +#ifndef AUDIO_INTERNAL_H +#define AUDIO_INTERNAL_H #include #include "types.h" #define SEQUENCE_PLAYERS 3 +#define LAYERS_MAX 4 #define CHANNELS_MAX 16 #define NO_LAYER ((struct SequenceChannelLayer *)(-1)) -#define MUTE_BEHAVIOR_80 0x80 -#define MUTE_BEHAVIOR_40 0x40 -#define MUTE_BEHAVIOR_20 0x20 +#define MUTE_BEHAVIOR_STOP_SCRIPT 0x80 // stop processing sequence/channel scripts +#define MUTE_BEHAVIOR_STOP_NOTES 0x40 // prevent further notes from playing +#define MUTE_BEHAVIOR_SOFTEN 0x20 // lower volume, by default to half #define SEQUENCE_PLAYER_STATE_0 0 #define SEQUENCE_PLAYER_STATE_FADE_OUT 1 @@ -151,7 +152,7 @@ struct Instrument struct Drum { u8 releaseRate; - u8 unk1; + u8 pan; u8 loaded; struct AudioBankSound sound; struct AdsrEnvelope *envelope; @@ -191,7 +192,7 @@ struct SequencePlayer /*0x003*/ u8 noteAllocPolicy; /*0x004*/ u8 muteBehavior; /*0x005*/ u8 seqId; - /*0x006*/ u8 anyBank[1]; // must be an array to get a comparison + /*0x006*/ u8 defaultBank[1]; // must be an array to get a comparison // to match; other u8's might also be part of that array /*0x007*/ u8 loadingBankId; /*0x008*/ u8 loadingBankNumInstruments; @@ -260,7 +261,7 @@ struct SequenceChannel /*0x00*/ u8 enabled : 1; /*0x00*/ u8 finished : 1; /*0x00*/ u8 stopScript : 1; - /*0x00*/ u8 unk0b10 : 1; + /*0x00*/ u8 stopSomething2 : 1; // sets SequenceChannelLayer.stopSomething /*0x00*/ u8 hasInstrument : 1; /*0x00*/ u8 stereoHeadsetEffects : 1; /*0x00*/ u8 largeNotes : 1; // notes specify duration and velocity @@ -292,7 +293,7 @@ struct SequenceChannel /*0x38*/ struct SequenceChannelLayer *layerUnused; // never read /*0x3C*/ struct Instrument *instrument; /*0x40*/ struct SequencePlayer *seqPlayer; - /*0x44*/ struct SequenceChannelLayer *layers[4]; + /*0x44*/ struct SequenceChannelLayer *layers[LAYERS_MAX]; /*0x54*/ s8 soundScriptIO[8]; // bridge between sound script and audio lib. For player 2, // [0] contains enabled, [4] contains sound ID, [5] contains reverb adjustment /*0x5C*/ struct M64ScriptState scriptState; @@ -304,9 +305,9 @@ struct SequenceChannelLayer // Maybe SequenceTrack? { /*0x00*/ u8 enabled : 1; /*0x00*/ u8 finished : 1; - /*0x00*/ u8 unk0b20 : 1; - /*0x00*/ u8 unk0b10 : 1; - /*0x01*/ u8 unk1; + /*0x00*/ u8 stopSomething : 1; // ? + /*0x00*/ u8 continuousNotes : 1; // keep the same note for consecutive notes with the same sound + /*0x01*/ u8 status; /*0x02*/ u8 noteDuration; // set to 0x80 /*0x03*/ u8 portamentoTargetNote; /*0x04*/ struct Portamento portamento; @@ -408,4 +409,4 @@ struct AudioSessionSettings /*0x18*/ u32 temporaryBankMem; }; // size = 0x1C -#endif /* _AUDIO_INTERNAL_H */ +#endif /* AUDIO_INTERNAL_H */ diff --git a/src/audio/load.c b/src/audio/load.c index a39697d..c67feeb 100644 --- a/src/audio/load.c +++ b/src/audio/load.c @@ -23,9 +23,9 @@ struct SequencePlayer gSequencePlayers[SEQUENCE_PLAYERS]; struct SequenceChannel gSequenceChannels[32]; #ifdef VERSION_JP -struct SequenceChannelLayer D_802245D8[48]; +struct SequenceChannelLayer gSequenceLayers[48]; #else -struct SequenceChannelLayer D_802245D8[52]; +struct SequenceChannelLayer gSequenceLayers[52]; #endif struct SequenceChannel gSequenceChannelNone; @@ -212,7 +212,7 @@ void *dma_sample_data(uintptr_t devAddr, u32 size, s32 arg2, u8 *arg3) { } // called from sound_reset -void func_8031758C(UNUSED s32 arg0) { +void init_sample_dma_buffers(UNUSED s32 arg0) { s32 i; s32 j; @@ -287,7 +287,7 @@ static void unused_80317844(void) { } #ifdef NON_MATCHING -void func_8031784C(struct AudioBank *mem, u8 *offset, u32 numInstruments, u32 numDrums) { +void patch_audio_bank(struct AudioBank *mem, u8 *offset, u32 numInstruments, u32 numDrums) { // Make pointers into real pointers rather than indices struct Instrument *instrument; struct Instrument **itInstrs; @@ -393,7 +393,7 @@ void func_8031784C(struct AudioBank *mem, u8 *offset, u32 numInstruments, u32 nu } #else -GLOBAL_ASM("asm/non_matchings/func_8031784C.s") +GLOBAL_ASM("asm/non_matchings/patch_audio_bank.s") #endif struct AudioBank *bank_load_immediate(s32 bankId, s32 arg1) { @@ -419,7 +419,7 @@ struct AudioBank *bank_load_immediate(s32 bankId, s32 arg1) { numInstruments = buf[0]; numDrums = buf[1]; audio_dma_copy_immediate((uintptr_t)(ctlData + 0x10), ret, alloc); - func_8031784C(ret, gAlTbl->seqArray[bankId].offset, numInstruments, numDrums); + patch_audio_bank(ret, gAlTbl->seqArray[bankId].offset, numInstruments, numDrums); gCtlEntries[bankId].numInstruments = (u8) numInstruments; gCtlEntries[bankId].numDrums = (u8) numDrums; gCtlEntries[bankId].instruments = ret->instruments; @@ -635,11 +635,11 @@ void load_sequence_internal(u32 player, u32 seqId, s32 loadAsync) { // @bug This should set the last bank (i.e. the first in the JSON) // as default, not the missing one. This code path never gets // taken, though -- all sequence loading is synchronous. - seqPlayer->anyBank[0] = bankId; - } else if (load_banks_immediate(seqId, &seqPlayer->anyBank[0]) == NULL) { + seqPlayer->defaultBank[0] = bankId; + } else if (load_banks_immediate(seqId, &seqPlayer->defaultBank[0]) == NULL) { return; } - } else if (load_banks_immediate(seqId, &seqPlayer->anyBank[0]) == NULL) { + } else if (load_banks_immediate(seqId, &seqPlayer->defaultBank[0]) == NULL) { return; } @@ -704,7 +704,7 @@ void audio_init() { gAiBufferLengths[i] = 0x00a0; } - gActiveAudioFrames = 0; + gAudioFrameCount = 0; gAudioTaskIndex = 0; gCurrAiBufferIndex = 0; gSoundMode = 0; @@ -763,6 +763,6 @@ void audio_init() { gAlBankSets = soundAlloc(&gAudioInitPool, 0x100); audio_dma_copy_immediate((uintptr_t) gBankSetsData, gAlBankSets, 0x100); - func_8031D4B8(); + init_sequence_players(); gAudioLoadLock = AUDIO_LOCK_NOT_LOADING; } diff --git a/src/audio/load.h b/src/audio/load.h index 9408a5b..933a9c6 100644 --- a/src/audio/load.h +++ b/src/audio/load.h @@ -1,5 +1,5 @@ -#ifndef _AUDIO_LOAD_H -#define _AUDIO_LOAD_H +#ifndef AUDIO_LOAD_H +#define AUDIO_LOAD_H #include "internal.h" @@ -21,9 +21,9 @@ extern struct SequencePlayer gSequencePlayers[SEQUENCE_PLAYERS]; extern struct SequenceChannel gSequenceChannels[32]; #ifdef VERSION_JP -extern struct SequenceChannelLayer D_802245D8[48]; +extern struct SequenceChannelLayer gSequenceLayers[48]; #else -extern struct SequenceChannelLayer D_802245D8[52]; +extern struct SequenceChannelLayer gSequenceLayers[52]; #endif extern struct SequenceChannel gSequenceChannelNone; @@ -39,9 +39,9 @@ extern u8 *gAlBankSets; void audio_dma_partial_copy_async(uintptr_t *devAddr, u8 **vAddr, ssize_t *remaining, OSMesgQueue *queue, OSIoMesg *mesg); void decrease_sample_dma_ttls(void); void *dma_sample_data(uintptr_t devAddr, u32 size, s32 arg2, u8 *arg3); -void func_8031758C(s32 arg0); -void func_8031784C(struct AudioBank *mem, u8 *offset, u32 numInstruments, u32 numDrums); +void init_sample_dma_buffers(s32 arg0); +void patch_audio_bank(struct AudioBank *mem, u8 *offset, u32 numInstruments, u32 numDrums); void preload_sequence(u32 seqId, u8 preloadMask); void load_sequence(u32 player, u32 seqId, s32 loadAsync); -#endif /* _AUDIO_LOAD_H */ +#endif /* AUDIO_LOAD_H */ diff --git a/src/audio/memory.c b/src/audio/memory.c index 9d985f3..73a68af 100644 --- a/src/audio/memory.c +++ b/src/audio/memory.c @@ -47,7 +47,7 @@ u8 gSeqLoadStatus[0x100]; u8 gAudioUnusedBuffer[0x1000]; -extern s32 D_80226D6C; +extern s32 gMaxAudioCmds; void reset_bank_and_seq_load_status(void) { s32 i; @@ -109,7 +109,7 @@ void *soundAlloc(struct SoundAllocPool *pool, u32 size) { } void sound_alloc_pool_init(struct SoundAllocPool *pool, void *memAddr, u32 size) { - pool->cur = pool->start = (u8 *) (((uintptr_t) memAddr + 0xf) & -0x10); + pool->cur = pool->start = (u8 *) ALIGN16((uintptr_t) memAddr); pool->size = size; pool->unused = 0; } @@ -374,9 +374,9 @@ void decrease_reverb_gain(void) { * Waits until a specified number of audio frames have been created */ void wait_for_audio_frames(s32 frames) { - gActiveAudioFrames = 0; - // Sound thread will update gActiveAudioFrames - while (gActiveAudioFrames < frames) { + gAudioFrameCount = 0; + // Sound thread will update gAudioFrameCount + while (gAudioFrameCount < frames) { // spin } } @@ -425,8 +425,13 @@ void audio_reset_session(struct AudioSessionSettings *preset) { } } + // Wait for the reverb to finish as well decrease_reverb_gain(); wait_for_audio_frames(3); + + // The audio interface is double buffered; thus, we have to take the + // load lock for 2 frames for the buffers to free up before we can + // repurpose memory. Make that 3 frames, just in case. gAudioLoadLock = AUDIO_LOCK_LOADING; wait_for_audio_frames(3); @@ -450,7 +455,7 @@ void audio_reset_session(struct AudioSessionSettings *preset) { reverbWindowSize = preset->reverbWindowSize; gAiFrequency = osAiSetFrequency(preset->frequency); gMaxSimultaneousNotes = preset->maxSimultaneousNotes; - D_80226D74 = ALIGN16(gAiFrequency / 60); + gSamplesPerFrameTarget = ALIGN16(gAiFrequency / 60); gReverbDownsampleRate = preset->reverbDownsampleRate; switch (gReverbDownsampleRate) { @@ -475,9 +480,9 @@ void audio_reset_session(struct AudioSessionSettings *preset) { gReverbDownsampleRate = preset->reverbDownsampleRate; gVolume = preset->volume; - gMinAiBufferLength = D_80226D74 - 0x10; - updatesPerFrame = D_80226D74 / 160 + 1; - gAudioUpdatesPerFrame = D_80226D74 / 160 + 1; + gMinAiBufferLength = gSamplesPerFrameTarget - 0x10; + updatesPerFrame = gSamplesPerFrameTarget / 160 + 1; + gAudioUpdatesPerFrame = gSamplesPerFrameTarget / 160 + 1; // Compute conversion ratio from the internal unit tatums/tick to the // external beats/minute (JP) or tatums/minute (US). In practice this is @@ -488,7 +493,7 @@ void audio_reset_session(struct AudioSessionSettings *preset) { gTempoInternalToExternal = (u32)(updatesPerFrame * 2880000.0f / gTatumsPerBeat / 16.713f); #endif - D_80226D6C = gMaxSimultaneousNotes * 20 * updatesPerFrame + 320; + gMaxAudioCmds = gMaxSimultaneousNotes * 20 * updatesPerFrame + 320; persistentMem = DOUBLE_SIZE_ON_64_BIT(preset->persistentBankMem + preset->persistentSeqMem); temporaryMem = DOUBLE_SIZE_ON_64_BIT(preset->temporaryBankMem + preset->temporarySeqMem); totalMem = persistentMem + temporaryMem; @@ -510,7 +515,7 @@ void audio_reset_session(struct AudioSessionSettings *preset) { reset_bank_and_seq_load_status(); for (j = 0; j < 2; j++) { - gAudioCmdBuffers[j] = soundAlloc(&gNotesAndBuffersPool, D_80226D6C * 8); + gAudioCmdBuffers[j] = soundAlloc(&gNotesAndBuffersPool, gMaxAudioCmds * sizeof(u64)); } gNotes = soundAlloc(&gNotesAndBuffersPool, gMaxSimultaneousNotes * sizeof(struct Note)); @@ -537,17 +542,17 @@ void audio_reset_session(struct AudioSessionSettings *preset) { gSynthesisReverb.unk24 = soundAlloc(&gNotesAndBuffersPool, 16 * sizeof(s16)); gSynthesisReverb.unk28 = soundAlloc(&gNotesAndBuffersPool, 16 * sizeof(s16)); for (i = 0; i < gAudioUpdatesPerFrame; i++) { - mem = soundAlloc(&gNotesAndBuffersPool, 0x280); + mem = soundAlloc(&gNotesAndBuffersPool, DEFAULT_LEN_2CH); gSynthesisReverb.items[0][i].toDownsampleLeft = mem; gSynthesisReverb.items[0][i].toDownsampleRight = mem + 0xA0; - mem = soundAlloc(&gNotesAndBuffersPool, 0x280); + mem = soundAlloc(&gNotesAndBuffersPool, DEFAULT_LEN_2CH); gSynthesisReverb.items[1][i].toDownsampleLeft = mem; gSynthesisReverb.items[1][i].toDownsampleRight = mem + 0xA0; } } } - func_8031758C(gMaxSimultaneousNotes); + init_sample_dma_buffers(gMaxSimultaneousNotes); osWritebackDCacheAll(); if (gAudioLoadLock != AUDIO_LOCK_UNINITIALIZED) { gAudioLoadLock = AUDIO_LOCK_NOT_LOADING; diff --git a/src/audio/memory.h b/src/audio/memory.h index 383f996..0786499 100644 --- a/src/audio/memory.h +++ b/src/audio/memory.h @@ -1,5 +1,5 @@ -#ifndef _AUDIO_MEMORY_H -#define _AUDIO_MEMORY_H +#ifndef AUDIO_MEMORY_H +#define AUDIO_MEMORY_H #include "internal.h" @@ -49,7 +49,6 @@ struct SoundMultiPool extern u8 gAudioHeap[]; extern s16 gVolume; extern s8 gReverbDownsampleRate; -extern u8 sReverbDownsampleRateLog; extern struct SoundAllocPool gAudioInitPool; extern struct SoundAllocPool gNotesAndBuffersPool; extern struct SoundMultiPool gSeqLoadedPool; @@ -63,4 +62,4 @@ void *alloc_bank_or_seq(struct SoundMultiPool *arg0, s32 arg1, s32 size, s32 arg void *get_bank_or_seq(struct SoundMultiPool *arg0, s32 arg1, s32 arg2); void audio_reset_session(struct AudioSessionSettings *preset); -#endif /* _AUDIO_MEMORY_H */ +#endif /* AUDIO_MEMORY_H */ diff --git a/src/audio/playback.c b/src/audio/playback.c index 285e4fd..9856bc6 100644 --- a/src/audio/playback.c +++ b/src/audio/playback.c @@ -11,7 +11,7 @@ s32 note_init_for_layer(struct Note *note, struct SequenceChannelLayer *seqLayer); -void func_80318870(struct Note *note) { +void note_init(struct Note *note) { if (note->parentLayer->adsr.releaseRate == 0) { adsr_init(¬e->adsr, note->parentLayer->seqChannel->adsr.envelope, ¬e->adsrVolScale); } else { @@ -26,7 +26,7 @@ void note_disable2(struct Note *note) { note_disable(note); } -void func_80318908(void) { +void process_notes(void) { f32 scale; f32 frequency; u8 reverb; @@ -144,7 +144,7 @@ void seq_channel_layer_decay_release_internal(struct SequenceChannelLayer *seqLa return; } - seqLayer->unk1 = 0; + seqLayer->status = SOUND_LOAD_STATUS_NOT_LOADED; if (note->adsr.state != ADSR_STATE_DECAY) { attributes->freqScale = seqLayer->noteFreqScale; attributes->velocity = seqLayer->noteVelocity; @@ -183,8 +183,7 @@ void seq_channel_layer_note_release(struct SequenceChannelLayer *seqLayer) { seq_channel_layer_decay_release_internal(seqLayer, ADSR_STATE_RELEASE); } -// wave synthesizer -void func_80318F04(struct Note *note, struct SequenceChannelLayer *seqLayer) { +void build_synthetic_wave(struct Note *note, struct SequenceChannelLayer *seqLayer) { s32 i; s32 j; s32 pos; @@ -239,9 +238,9 @@ void func_80318F04(struct Note *note, struct SequenceChannelLayer *seqLayer) { osWritebackDCache(note->synthesisBuffers->samples, sizeof(note->synthesisBuffers->samples)); } -void func_80319164(struct Note *note, struct SequenceChannelLayer *seqLayer) { +void init_synthetic_wave(struct Note *note, struct SequenceChannelLayer *seqLayer) { s32 sampleCount = note->sampleCount; - func_80318F04(note, seqLayer); + build_synthetic_wave(note, seqLayer); if (sampleCount != 0) { note->samplePosInt *= note->sampleCount / sampleCount; } else { @@ -422,14 +421,14 @@ s32 note_init_for_layer(struct Note *note, struct SequenceChannelLayer *seqLayer note->bankId = seqLayer->seqChannel->bankId; note->stereoHeadsetEffects = seqLayer->seqChannel->stereoHeadsetEffects; note->sound = seqLayer->sound; - seqLayer->unk1 = 3; + seqLayer->status = SOUND_LOAD_STATUS_DISCARDABLE; // "loaded" seqLayer->note = note; seqLayer->seqChannel->noteUnused = note; seqLayer->seqChannel->layerUnused = seqLayer; if (note->sound == NULL) { - func_80318F04(note, seqLayer); + build_synthetic_wave(note, seqLayer); } - func_80318870(note); + note_init(note); return FALSE; } @@ -495,7 +494,7 @@ struct Note *alloc_note(struct SequenceChannelLayer *seqLayer) { if (!(ret = alloc_note_from_disabled(&seqLayer->seqChannel->notePool, seqLayer)) && !(ret = alloc_note_from_decaying(&seqLayer->seqChannel->notePool, seqLayer)) && !(ret = alloc_note_from_active(&seqLayer->seqChannel->notePool, seqLayer))) { - seqLayer->unk1 = 0; + seqLayer->status = SOUND_LOAD_STATUS_NOT_LOADED; return NULL; } return ret; @@ -508,7 +507,7 @@ struct Note *alloc_note(struct SequenceChannelLayer *seqLayer) { && !(ret = alloc_note_from_decaying(&seqLayer->seqChannel->seqPlayer->notePool, seqLayer)) && !(ret = alloc_note_from_active(&seqLayer->seqChannel->notePool, seqLayer)) && !(ret = alloc_note_from_active(&seqLayer->seqChannel->seqPlayer->notePool, seqLayer))) { - seqLayer->unk1 = 0; + seqLayer->status = SOUND_LOAD_STATUS_NOT_LOADED; return NULL; } return ret; @@ -518,7 +517,7 @@ struct Note *alloc_note(struct SequenceChannelLayer *seqLayer) { if (!(ret = alloc_note_from_disabled(&gNoteFreeLists, seqLayer)) && !(ret = alloc_note_from_decaying(&gNoteFreeLists, seqLayer)) && !(ret = alloc_note_from_active(&gNoteFreeLists, seqLayer))) { - seqLayer->unk1 = 0; + seqLayer->status = SOUND_LOAD_STATUS_NOT_LOADED; return NULL; } return ret; @@ -533,13 +532,13 @@ struct Note *alloc_note(struct SequenceChannelLayer *seqLayer) { && !(ret = alloc_note_from_active(&seqLayer->seqChannel->notePool, seqLayer)) && !(ret = alloc_note_from_active(&seqLayer->seqChannel->seqPlayer->notePool, seqLayer)) && !(ret = alloc_note_from_active(&gNoteFreeLists, seqLayer))) { - seqLayer->unk1 = 0; + seqLayer->status = SOUND_LOAD_STATUS_NOT_LOADED; return NULL; } return ret; } -void func_80319BC8(void) { +void reclaim_notes(void) { struct Note *note; s32 i; s32 cond; @@ -559,7 +558,7 @@ void func_80319BC8(void) { note->priority = NOTE_PRIORITY_STOPPING; } else if (note->parentLayer->seqChannel->seqPlayer->muted) { if (note->parentLayer->seqChannel->muteBehavior - & (MUTE_BEHAVIOR_80 | MUTE_BEHAVIOR_40)) { + & (MUTE_BEHAVIOR_STOP_SCRIPT | MUTE_BEHAVIOR_STOP_NOTES)) { cond = TRUE; } } else { diff --git a/src/audio/playback.h b/src/audio/playback.h index 9edea56..7cd1782 100644 --- a/src/audio/playback.h +++ b/src/audio/playback.h @@ -14,10 +14,10 @@ #define NOTE_ALLOC_SEQ 4 #define NOTE_ALLOC_GLOBAL_FREELIST 8 -void func_80318908(void); +void process_notes(void); void seq_channel_layer_note_decay(struct SequenceChannelLayer *seqLayer); void seq_channel_layer_note_release(struct SequenceChannelLayer *seqLayer); -void func_80319164(struct Note *note, struct SequenceChannelLayer *seqLayer); +void init_synthetic_wave(struct Note *note, struct SequenceChannelLayer *seqLayer); void init_note_lists(struct NotePool *pool); void init_note_free_list(void); void note_pool_clear(struct NotePool *pool); @@ -25,7 +25,7 @@ void note_pool_fill(struct NotePool *pool, s32 count); void audio_list_push_front(struct AudioListItem *list, struct AudioListItem *item); void audio_list_remove(struct AudioListItem *item); struct Note *alloc_note(struct SequenceChannelLayer *seqLayer); -void func_80319BC8(void); +void reclaim_notes(void); void note_init_all(void); diff --git a/src/audio/seqplayer.c b/src/audio/seqplayer.c index f111eea..7d2e177 100644 --- a/src/audio/seqplayer.c +++ b/src/audio/seqplayer.c @@ -8,6 +8,14 @@ #include "external.h" #include "effects.h" +#define PORTAMENTO_IS_SPECIAL(x) ((x).mode & 0x80) +#define PORTAMENTO_MODE(x) ((x).mode & ~0x80) +#define PORTAMENTO_MODE_1 1 +#define PORTAMENTO_MODE_2 2 +#define PORTAMENTO_MODE_3 3 +#define PORTAMENTO_MODE_4 4 +#define PORTAMENTO_MODE_5 5 + void seq_channel_layer_process_script(struct SequenceChannelLayer *layer); void sequence_channel_process_script(struct SequenceChannel *seqChannel); @@ -17,7 +25,7 @@ void sequence_channel_init(struct SequenceChannel *seqChannel) { seqChannel->enabled = FALSE; seqChannel->finished = FALSE; seqChannel->stopScript = FALSE; - seqChannel->unk0b10 = FALSE; + seqChannel->stopSomething2 = FALSE; seqChannel->hasInstrument = FALSE; seqChannel->stereoHeadsetEffects = FALSE; seqChannel->transposition = 0; @@ -71,12 +79,12 @@ s32 seq_channel_set_layer(struct SequenceChannel *seqChannel, s32 layerIndex) { layer->adsr = seqChannel->adsr; layer->adsr.releaseRate = 0; layer->enabled = TRUE; - layer->unk0b20 = FALSE; - layer->unk0b10 = FALSE; + layer->stopSomething = FALSE; + layer->continuousNotes = FALSE; layer->finished = FALSE; layer->portamento.mode = 0; layer->scriptState.depth = 0; - layer->unk1 = 0; + layer->status = SOUND_LOAD_STATUS_NOT_LOADED; layer->noteDuration = 0x80; layer->transposition = 0; layer->delay = 0; @@ -120,7 +128,7 @@ void seq_channel_layer_free(struct SequenceChannel *seqChannel, s32 layerIndex) void sequence_channel_disable(struct SequenceChannel *seqChannel) { s32 i; - for (i = 0; i < 4; i++) { + for (i = 0; i < LAYERS_MAX; i++) { seq_channel_layer_free(seqChannel, i); } @@ -158,7 +166,7 @@ void sequence_player_init_channels(struct SequencePlayer *seqPlayer, u16 channel sequence_channel_init(seqChannel); seqPlayer->channels[i] = seqChannel; seqChannel->seqPlayer = seqPlayer; - seqChannel->bankId = seqPlayer->anyBank[0]; + seqChannel->bankId = seqPlayer->defaultBank[0]; seqChannel->muteBehavior = seqPlayer->muteBehavior; seqChannel->noteAllocPolicy = seqPlayer->noteAllocPolicy; } @@ -196,7 +204,7 @@ void sequence_channel_enable(struct SequencePlayer *seqPlayer, u8 channelIndex, seqChannel->scriptState.depth = 0; seqChannel->scriptState.pc = arg2; seqChannel->delay = 0; - for (i = 0; i < 4; i++) { + for (i = 0; i < LAYERS_MAX; i++) { if (seqChannel->layers[i] != NULL) { seq_channel_layer_free(seqChannel, i); } @@ -214,16 +222,16 @@ void sequence_player_disable(struct SequencePlayer *seqPlayer) { gSeqLoadStatus[seqPlayer->seqId] = SOUND_LOAD_STATUS_DISCARDABLE; } - if (IS_BANK_LOAD_COMPLETE(seqPlayer->anyBank[0])) { - gBankLoadStatus[seqPlayer->anyBank[0]] = SOUND_LOAD_STATUS_DISCARDABLE; + if (IS_BANK_LOAD_COMPLETE(seqPlayer->defaultBank[0])) { + gBankLoadStatus[seqPlayer->defaultBank[0]] = SOUND_LOAD_STATUS_DISCARDABLE; } // (Note that if this is called from alloc_bank_or_seq, the side will get swapped // later in that function. Thus, we signal that we want to load into the slot // of the bank that we no longer need.) - if (gBankLoadedPool.temporary.entries[0].id == seqPlayer->anyBank[0]) { + if (gBankLoadedPool.temporary.entries[0].id == seqPlayer->defaultBank[0]) { gBankLoadedPool.temporary.nextSide = 1; - } else if (gBankLoadedPool.temporary.entries[1].id == seqPlayer->anyBank[0]) { + } else if (gBankLoadedPool.temporary.entries[1].id == seqPlayer->defaultBank[0]) { gBankLoadedPool.temporary.nextSide = 0; } } @@ -257,7 +265,7 @@ void *audio_list_pop_back(struct AudioListItem *list) { return item->u.value; } -void func_8031AF74(void) { +void init_layer_freelist(void) { s32 i; gLayerFreeList.prev = &gLayerFreeList; @@ -265,10 +273,10 @@ void func_8031AF74(void) { gLayerFreeList.u.count = 0; gLayerFreeList.pool = NULL; - for (i = 0; i < ARRAY_COUNT(D_802245D8); i++) { - D_802245D8[i].listItem.u.value = D_802245D8 + i; - D_802245D8[i].listItem.prev = NULL; - audio_list_push_back(&gLayerFreeList, &D_802245D8[i].listItem); + for (i = 0; i < ARRAY_COUNT(gSequenceLayers); i++) { + gSequenceLayers[i].listItem.u.value = gSequenceLayers + i; + gSequenceLayers[i].listItem.prev = NULL; + audio_list_push_back(&gLayerFreeList, &gSequenceLayers[i].listItem); } } @@ -297,39 +305,37 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer *layer) { struct SequencePlayer *seqPlayer; // sp5C, t4 struct SequenceChannel *seqChannel; // sp58, t5 struct M64ScriptState *state; // v0 - struct AdsrSettings *temp_v0_11; + struct AdsrSettings *adsr; // v0 struct Portamento *portamento; // v0 struct Instrument **instOut; // a1 struct Instrument *inst; // a0 - struct AudioBankSound *phi_v0_5; - struct AudioBankSound *phi_v0_6; - struct Instrument *phi_v1_2; + struct AudioBankSound *sound; // v0 + struct Instrument *instrument; // v1 struct Drum *drum; - u8 sameSound; // sp3F - u8 cmd; // a0 - u8 sp3D; // t0 + u8 sameSound; // sp3F + u8 cmd; // a0 + u8 allocNewNote; // sp3D, t0 u8 loBits; u16 sp3A; // t2, a0, a1 - s32 sp30; // t3 - f32 sp28; // f0 + s32 vel; // sp30, t3 + f32 freqScale; // sp28, f0 f32 sp24; u8 temp8; u8 *old; u8 *old2; - u8 temp_v0_20; - u8 phi_a1_3; + u8 semitone; // v0 + u8 usedSemitone; // a1 f32 temp_f12; f32 temp_f2; s32 temp_a0_5; - u8 temp_t0; - s32 temp_t1; - s32 temp_t1_2; + u8 drumIndex; // t0 + s32 cmdBase; // t1 u8 temp_a0_6; - u8 temp_t7_4; - s32 temp_a3; - u8 instIndex; // v0 - s32 phi_v1; - f32 phi_f0; + u8 portamentoTargetNote; // t7 + s32 bankId; // a3 + u8 instId; // v0 + s32 cmdSemitone; // v1 + f32 tuning; // f0 sameSound = TRUE; if (layer->enabled == FALSE) { @@ -338,18 +344,19 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer *layer) { if (layer->delay > 1) { layer->delay--; - if (!layer->unk0b20 && layer->delay <= layer->duration) { + if (!layer->stopSomething && layer->delay <= layer->duration) { seq_channel_layer_note_decay(layer); - layer->unk0b20 = TRUE; + layer->stopSomething = TRUE; } return; } - if (!layer->unk0b10) { + if (!layer->continuousNotes) { seq_channel_layer_note_decay(layer); } - if ((layer->portamento.mode & ~0x80) == 1 || (layer->portamento.mode & ~0x80) == 2) { + if (PORTAMENTO_MODE(layer->portamento) == PORTAMENTO_MODE_1 || + PORTAMENTO_MODE(layer->portamento) == PORTAMENTO_MODE_2) { layer->portamento.mode = 0; } @@ -366,7 +373,7 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer *layer) { } switch (cmd) { - case 0xff: // function return or end of script + case 0xff: // layer_end; function return or end of script if (state->depth == 0) { // N.B. this function call is *not* inlined even though it's // within the same file, unlike in the rest of this function. @@ -376,7 +383,7 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer *layer) { state->depth--, state->pc = state->stack[state->depth]; break; - case 0xfc: // function call + case 0xfc: // layer_call // Something is wrong with the codegen here... It almost looks like // it's inlining m64_read_s16, but it lacks a s16 cast. // Maybe they did macro-based inlining since there are more layers @@ -388,14 +395,14 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer *layer) { state->pc = seqPlayer->seqData + sp3A; break; - case 0xf8: // loop start, N iterations (or 256 if N = 0) + case 0xf8: // layer_loop; loop start, N iterations (or 256 if N = 0) old = state->pc++; state->remLoopIters[state->depth] = *old; state->depth++; state->stack[state->depth - 1] = state->pc; break; - case 0xf7: // loop end + case 0xf7: // layer_loopend state->remLoopIters[state->depth - 1]--; if (state->remLoopIters[state->depth - 1] != 0) { state->pc = state->stack[state->depth - 1]; @@ -404,14 +411,14 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer *layer) { } break; - case 0xfb: // unconditional jump + case 0xfb: // layer_jump sp3A = *(state->pc++) << 8; sp3A = *(state->pc++) | sp3A; state->pc = seqPlayer->seqData + sp3A; break; - case 0xc1: // set short note velocity - case 0xca: // set pan (0..128) + case 0xc1: // layer_setshortnotevelocity + case 0xca: // layer_setpan temp_a0_5 = *(state->pc++); if (cmd == 0xc1) { layer->velocitySquare = (f32)(temp_a0_5 * temp_a0_5); @@ -420,8 +427,8 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer *layer) { } break; - case 0xc2: // set transposition in semitones - case 0xc9: // set short note duration + case 0xc2: // layer_transpose; set transposition in semitones + case 0xc9: // layer_setshortnoteduration temp_a0_6 = *(state->pc++); if (cmd == 0xc9) { layer->noteDuration = temp_a0_6; @@ -430,18 +437,18 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer *layer) { } break; - case 0xc4: - case 0xc5: + case 0xc4: // layer_somethingon + case 0xc5: // layer_somethingoff if (cmd == 0xc4) { temp8 = TRUE; } else { temp8 = FALSE; } - layer->unk0b10 = temp8; + layer->continuousNotes = temp8; seq_channel_layer_note_decay(layer); break; - case 0xc3: // set short note default play percentage + case 0xc3: // layer_setshortnotedefaultplaypercentage // This doesn't match very well... sp3A is definitely set here // (it's falsely preserved until after the loop), but maybe there's // also inlining going on, with sp3A as a temp variable being used @@ -454,70 +461,72 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer *layer) { layer->shortNoteDefaultPlayPercentage = sp3A; break; - case 0xc6: // set instrument + case 0xc6: // layer_setinstr old = state->pc++; - instIndex = *old; + instId = *old; // The rest of this case is identical to - // if (instIndex < 0x7f) { - // get_instrument(seqChannel, instIndex, &layer->instrument, &layer->adsr); + // if (instId < 0x7f) { + // get_instrument(seqChannel, instId, &layer->instrument, &layer->adsr); // } // except without seqChannelCpy... // interestingly, get_instrument comes just *after* this function, // which I think wouldn't be the case with __inline (maybe if they // both inline a common helper?) - if (instIndex >= 0x7f) { + if (instId >= 0x7f) { break; } - temp_a3 = seqChannel->bankId; - if (instIndex >= gCtlEntries[temp_a3].numInstruments) { - instIndex = gCtlEntries[temp_a3].numInstruments; - if (instIndex == 0) { + bankId = seqChannel->bankId; // maybe a temp, to match get_instrument + if (instId >= gCtlEntries[bankId].numInstruments) { + instId = gCtlEntries[bankId].numInstruments; + if (instId == 0) { break; } - instIndex--; + instId--; } instOut = &layer->instrument; - inst = gCtlEntries[temp_a3].instruments[instIndex]; + inst = gCtlEntries[bankId].instruments[instId]; if (inst == NULL) { - while (instIndex != 0xff) { - inst = gCtlEntries[temp_a3].instruments[instIndex]; + while (instId != 0xff) { + inst = gCtlEntries[bankId].instruments[instId]; if (inst != NULL) { break; } - instIndex--; + instId--; } } - temp_v0_11 = &layer->adsr; + adsr = &layer->adsr; if (((uintptr_t) gBankLoadedPool.persistent.pool.start <= (uintptr_t) inst && (uintptr_t) inst <= (uintptr_t)(gBankLoadedPool.persistent.pool.start + gBankLoadedPool.persistent.pool.size)) || ((uintptr_t) gBankLoadedPool.temporary.pool.start <= (uintptr_t) inst && (uintptr_t) inst <= (uintptr_t)(gBankLoadedPool.temporary.pool.start + gBankLoadedPool.temporary.pool.size))) { - temp_v0_11->envelope = inst->envelope; - temp_v0_11->releaseRate = inst->releaseRate; + adsr->envelope = inst->envelope; + adsr->releaseRate = inst->releaseRate; *instOut = inst; + // instId++; } else { - gAudioErrorFlags = instIndex + 0x20000; + gAudioErrorFlags = instId + 0x20000; *instOut = NULL; } break; - case 0xc7: // enable portamento + case 0xc7: // layer_portamento old = state->pc++; layer->portamento.mode = *old; old = state->pc++; - temp_t7_4 = - seqChannel->transposition + *old + layer->transposition + seqPlayer->transposition; - if (temp_t7_4 >= 0x80) { - temp_t7_4 = 0; + portamentoTargetNote = *old + seqChannel->transposition + + layer->transposition + seqPlayer->transposition; + if (portamentoTargetNote >= 0x80) { + portamentoTargetNote = 0; } - layer->portamentoTargetNote = temp_t7_4; + layer->portamentoTargetNote = portamentoTargetNote; - if (layer->portamento.mode & 0x80) { + // If special, the next param is u8 instead of var + if (PORTAMENTO_IS_SPECIAL(layer->portamento)) { layer->portamentoTime = *(state->pc++); break; } @@ -530,18 +539,18 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer *layer) { layer->portamentoTime = sp3A; break; - case 0xc8: // disable portamento + case 0xc8: // layer_disableportamento layer->portamento.mode = 0; break; default: loBits = cmd & 0xf; switch (cmd & 0xf0) { - case 0xd0: // set short note velocity via lookup table + case 0xd0: // layer_setshortnotevelocityfromtable sp3A = seqPlayer->shortNoteVelocityTable[loBits]; layer->velocitySquare = (f32)(sp3A * sp3A); break; - case 0xe0: // set short note duration via lookup table + case 0xe0: // layer_setshortnotedurationfromtable layer->noteDuration = seqPlayer->shortNoteDurationTable[loBits]; break; } @@ -549,7 +558,7 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer *layer) { } state = &layer->scriptState; - if (cmd == 0xc0) // delay for N frames + if (cmd == 0xc0) // layer_delay { sp3A = *(state->pc++); if (sp3A & 0x80) { @@ -557,54 +566,54 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer *layer) { sp3A = *(state->pc++) | sp3A; } layer->delay = sp3A; - layer->unk0b20 = TRUE; + layer->stopSomething = TRUE; } else { - layer->unk0b20 = FALSE; + layer->stopSomething = FALSE; if (seqChannel->largeNotes == TRUE) { - temp_t1_2 = cmd & 0xc0; + cmdBase = cmd & 0xc0; // phi_a0_3 = sp3A; // real assignment, or same vars? state = &layer->scriptState; - switch (temp_t1_2) { - case 0x00: // play note, type 0 (play percentage, velocity, duration) + switch (cmdBase) { + case 0x00: // layer_note0 (play percentage, velocity, duration) sp3A = *(state->pc++); if (sp3A & 0x80) { sp3A = (sp3A << 8) & 0x7f00; sp3A = *(state->pc++) | sp3A; } - sp30 = *(state->pc++); + vel = *(state->pc++); layer->noteDuration = *(state->pc++); layer->playPercentage = sp3A; break; - case 0x40: // play note, type 1 (play percentage, velocity) + case 0x40: // layer_note1 (play percentage, velocity) sp3A = *(state->pc++); if (sp3A & 0x80) { sp3A = (sp3A << 8) & 0x7f00; sp3A = *(state->pc++) | sp3A; } - sp30 = *(state->pc++); + vel = *(state->pc++); layer->noteDuration = 0; layer->playPercentage = sp3A; break; - case 0x80: // play note, type 2 (velocity, duration; uses last play percentage) - sp30 = *(state->pc++); + case 0x80: // layer_note2 (velocity, duration; uses last play percentage) + vel = *(state->pc++); layer->noteDuration = *(state->pc++); sp3A = layer->playPercentage; break; } - layer->velocitySquare = sp30 * sp30; - phi_v1 = cmd - temp_t1_2; + layer->velocitySquare = vel * vel; + cmdSemitone = cmd - cmdBase; } else { - temp_t1 = cmd & 0xc0; + cmdBase = cmd & 0xc0; state = &layer->scriptState; // phi_a0_3 = sp3A; - switch (temp_t1) { + switch (cmdBase) { case 0x00: // play note, type 0 (play percentage) sp3A = *(state->pc++); if (sp3A & 0x80) { @@ -623,91 +632,91 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer *layer) { break; } - phi_v1 = cmd - temp_t1; + cmdSemitone = cmd - cmdBase; } layer->delay = sp3A; layer->duration = layer->noteDuration * sp3A / 256; - if ((seqPlayer->muted && (seqChannel->muteBehavior & MUTE_BEHAVIOR_40) != 0) - || seqChannel->unk0b10 || !seqChannel->hasInstrument) { - layer->unk0b20 = TRUE; + if ((seqPlayer->muted && (seqChannel->muteBehavior & MUTE_BEHAVIOR_STOP_NOTES) != 0) + || seqChannel->stopSomething2 || !seqChannel->hasInstrument) { + layer->stopSomething = TRUE; } else { - if (seqChannel->instOrWave == 0) { - temp_t0 = phi_v1 + seqChannel->transposition + layer->transposition; - if (temp_t0 >= gCtlEntries[seqChannel->bankId].numDrums) { - temp_t0 = gCtlEntries[seqChannel->bankId].numDrums; - if (temp_t0 == 0) { - // this goto look a bit like a function return... - layer->unk0b20 = TRUE; + if (seqChannel->instOrWave == 0) { // drum + drumIndex = cmdSemitone + seqChannel->transposition + layer->transposition; + if (drumIndex >= gCtlEntries[seqChannel->bankId].numDrums) { + drumIndex = gCtlEntries[seqChannel->bankId].numDrums; + if (drumIndex == 0) { + // this goto looks a bit like a function return... + layer->stopSomething = TRUE; goto skip; } - temp_t0--; + drumIndex--; } - drum = gCtlEntries[seqChannel->bankId].drums[temp_t0]; + drum = gCtlEntries[seqChannel->bankId].drums[drumIndex]; if (drum == NULL) { - layer->unk0b20 = TRUE; + layer->stopSomething = TRUE; } else { layer->adsr.envelope = drum->envelope; layer->adsr.releaseRate = drum->releaseRate; - layer->pan = FLOAT_CAST(drum->unk1) / US_FLOAT(128.0); + layer->pan = FLOAT_CAST(drum->pan) / US_FLOAT(128.0); layer->sound = &drum->sound; layer->freqScale = layer->sound->tuning; } skip:; - } else { - temp_v0_20 = phi_v1 + seqPlayer->transposition + seqChannel->transposition + } else { // instrument + semitone = cmdSemitone + seqPlayer->transposition + seqChannel->transposition + layer->transposition; - if (temp_v0_20 >= 0x80) { - layer->unk0b20 = TRUE; + if (semitone >= 0x80) { + layer->stopSomething = TRUE; } else { - phi_v1_2 = layer->instrument; + instrument = layer->instrument; if (layer->instrument == NULL) { - phi_v1_2 = seqChannel->instrument; + instrument = seqChannel->instrument; } if (layer->portamento.mode != 0) { - phi_a1_3 = layer->portamentoTargetNote; - if (phi_a1_3 < temp_v0_20) { - phi_a1_3 = temp_v0_20; + usedSemitone = layer->portamentoTargetNote; + if (usedSemitone < semitone) { + usedSemitone = semitone; } - if (phi_v1_2 != NULL) { - if (phi_a1_3 < phi_v1_2->normalRangeLo) { - phi_v0_5 = &phi_v1_2->lowNotesSound; - } else if (phi_a1_3 <= phi_v1_2->normalRangeHi) { - phi_v0_5 = &phi_v1_2->normalNotesSound; + if (instrument != NULL) { + if (usedSemitone < instrument->normalRangeLo) { + sound = &instrument->lowNotesSound; + } else if (usedSemitone <= instrument->normalRangeHi) { + sound = &instrument->normalNotesSound; } else { - phi_v0_5 = &phi_v1_2->highNotesSound; + sound = &instrument->highNotesSound; } - sameSound = (phi_v0_5 == layer->sound); - layer->sound = phi_v0_5; - phi_f0 = phi_v0_5->tuning; + sameSound = (sound == layer->sound); + layer->sound = sound; + tuning = sound->tuning; } else { layer->sound = NULL; - phi_f0 = 1.0f; + tuning = 1.0f; } - temp_f2 = gNoteFrequencies[temp_v0_20] * phi_f0; - temp_f12 = gNoteFrequencies[layer->portamentoTargetNote] * phi_f0; + temp_f2 = gNoteFrequencies[semitone] * tuning; + temp_f12 = gNoteFrequencies[layer->portamentoTargetNote] * tuning; portamento = &layer->portamento; - switch (layer->portamento.mode & ~0x80) { - case 1: - case 3: - case 5: + switch (PORTAMENTO_MODE(layer->portamento)) { + case PORTAMENTO_MODE_1: + case PORTAMENTO_MODE_3: + case PORTAMENTO_MODE_5: sp24 = temp_f2; - sp28 = temp_f12; + freqScale = temp_f12; break; - case 2: - case 4: + case PORTAMENTO_MODE_2: + case PORTAMENTO_MODE_4: sp24 = temp_f12; - sp28 = temp_f2; + freqScale = temp_f2; break; } - portamento->extent = sp24 / sp28 - US_FLOAT(1.0); - if (layer->portamento.mode & 0x80) { + portamento->extent = sp24 / freqScale - US_FLOAT(1.0); + if (PORTAMENTO_IS_SPECIAL(layer->portamento)) { portamento->speed = US_FLOAT(32512.0) * FLOAT_CAST(seqPlayer->tempo) / ((f32) layer->delay * (f32) gTempoInternalToExternal * FLOAT_CAST(layer->portamentoTime)); @@ -715,24 +724,24 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer *layer) { portamento->speed = US_FLOAT(127.0) / FLOAT_CAST(layer->portamentoTime); } portamento->cur = 0.0f; - layer->freqScale = sp28; - if ((layer->portamento.mode & ~0x80) == 5) { - layer->portamentoTargetNote = temp_v0_20; + layer->freqScale = freqScale; + if (PORTAMENTO_MODE(layer->portamento) == PORTAMENTO_MODE_5) { + layer->portamentoTargetNote = semitone; } - } else if (phi_v1_2 != NULL) { - if (temp_v0_20 < phi_v1_2->normalRangeLo) { - phi_v0_6 = &phi_v1_2->lowNotesSound; - } else if (temp_v0_20 <= phi_v1_2->normalRangeHi) { - phi_v0_6 = &phi_v1_2->normalNotesSound; + } else if (instrument != NULL) { + if (semitone < instrument->normalRangeLo) { + sound = &instrument->lowNotesSound; + } else if (semitone <= instrument->normalRangeHi) { + sound = &instrument->normalNotesSound; } else { - phi_v0_6 = &phi_v1_2->highNotesSound; + sound = &instrument->highNotesSound; } - sameSound = (phi_v0_6 == layer->sound); - layer->sound = phi_v0_6; - layer->freqScale = phi_v0_6->tuning * gNoteFrequencies[temp_v0_20]; + sameSound = (sound == layer->sound); + layer->sound = sound; + layer->freqScale = sound->tuning * gNoteFrequencies[semitone]; } else { layer->sound = NULL; - layer->freqScale = gNoteFrequencies[temp_v0_20]; + layer->freqScale = gNoteFrequencies[semitone]; } } } @@ -740,28 +749,28 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer *layer) { } } - if (layer->unk0b20 == TRUE) { - if (layer->note != NULL || layer->unk0b10) { + if (layer->stopSomething == TRUE) { + if (layer->note != NULL || layer->continuousNotes) { seq_channel_layer_note_decay(layer); } return; } - if (!layer->unk0b10) { - sp3D = TRUE; - } else if (layer->note == NULL || layer->unk1 == 0) { - sp3D = TRUE; + if (!layer->continuousNotes) { + allocNewNote = TRUE; + } else if (layer->note == NULL || layer->status == SOUND_LOAD_STATUS_NOT_LOADED) { + allocNewNote = TRUE; } else if (sameSound == FALSE) { seq_channel_layer_note_decay(layer); - sp3D = TRUE; + allocNewNote = TRUE; } else { - sp3D = FALSE; + allocNewNote = FALSE; if (layer->sound == NULL) { - func_80319164(layer->note, layer); + init_synthetic_wave(layer->note, layer); } } - if (sp3D != FALSE) { + if (allocNewNote != FALSE) { layer->note = alloc_note(layer); } @@ -862,7 +871,7 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel) { } if (seqChannel->stopScript) { - for (i = 0; i < 4; i++) { + for (i = 0; i < LAYERS_MAX; i++) { if (seqChannel->layers[i] != NULL) { seq_channel_layer_process_script(seqChannel->layers[i]); } @@ -871,7 +880,7 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel) { } seqPlayer = seqChannel->seqPlayer; - if (seqPlayer->muted && (seqChannel->muteBehavior & MUTE_BEHAVIOR_80) != 0) { + if (seqPlayer->muted && (seqChannel->muteBehavior & MUTE_BEHAVIOR_STOP_SCRIPT) != 0) { return; } @@ -883,7 +892,7 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel) { if (seqChannel->delay == 0) { for (;;) { cmd = m64_read_u8(state); - if (cmd == 0xff) // function return or end of script + if (cmd == 0xff) // chan_end { // This fixes a reordering in 'case 0x90', somehow sp5A = state->depth; @@ -893,16 +902,16 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel) { } state->depth--, state->pc = state->stack[state->depth]; } - if (cmd == 0xfe) // delay for 1 frame + if (cmd == 0xfe) // chan_delay1 { break; } - if (cmd == 0xfd) // delay for N frames + if (cmd == 0xfd) // chan_delay { seqChannel->delay = m64_read_compressed_u16(state); break; } - if (cmd == 0xf3) // delay forever + if (cmd == 0xf3) // chan_hang { seqChannel->stopScript = TRUE; break; @@ -912,18 +921,18 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel) { // towards the bottom of the function) if (cmd > 0xc0) { switch (cmd) { - case 0xfc: // function call + case 0xfc: // chan_call sp5A = m64_read_s16(state); state->depth++, state->stack[state->depth - 1] = state->pc; state->pc = seqPlayer->seqData + sp5A; break; - case 0xf8: // loop start, N iterations (or 256 if N = 0) + case 0xf8: // chan_loop; loop start, N iterations (or 256 if N = 0) state->remLoopIters[state->depth] = m64_read_u8(state); state->depth++, state->stack[state->depth - 1] = state->pc; break; - case 0xf7: // loop end + case 0xf7: // chan_loopend state->remLoopIters[state->depth - 1]--; if (state->remLoopIters[state->depth - 1] != 0) { state->pc = state->stack[state->depth - 1]; @@ -932,14 +941,14 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel) { } break; - case 0xf6: // break loop, if combined with jump + case 0xf6: // chan_break; break loop, if combined with jump state->depth--; break; - case 0xfb: // unconditional jump - case 0xfa: // jump if == 0 - case 0xf9: // jump if < 0 - case 0xf5: // jump if >= 0 + case 0xfb: // chan_jump + case 0xfa: // chan_beqz + case 0xf9: // chan_bltz + case 0xf5: // chan_bgez sp5A = m64_read_s16(state); if (cmd == 0xfa && value != 0) break; @@ -950,23 +959,23 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel) { state->pc = seqPlayer->seqData + sp5A; break; - case 0xf2: // reserve N notes for channel + case 0xf2: // chan_reservenotes // seqChannel->notePool should live in a saved register note_pool_clear(&seqChannel->notePool); temp = m64_read_u8(state); note_pool_fill(&seqChannel->notePool, temp); break; - case 0xf1: // reserve 0 notes for channel + case 0xf1: // chan_unreservenotes note_pool_clear(&seqChannel->notePool); break; - case 0xc2: // set up dynamic table + case 0xc2: // chan_setdyntable sp5A = m64_read_s16(state); seqChannel->dynTable = (void *) (seqPlayer->seqData + sp5A); break; - case 0xc5: // set up dynamic table, dynamically + case 0xc5: // chan_dynsetdyntable if (value != -1) { sp5A = (*seqChannel->dynTable)[value][1] + ((*seqChannel->dynTable)[value][0] << 8); @@ -974,89 +983,89 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel) { } break; - case 0xc1: // set instrument (or "set program") + case 0xc1: // chan_setinstr ("set program"?) set_instrument(seqChannel, m64_read_u8(state)); break; - case 0xc3: + case 0xc3: // chan_largenotesoff seqChannel->largeNotes = FALSE; break; - case 0xc4: + case 0xc4: // chan_largenoteson seqChannel->largeNotes = TRUE; break; - case 0xdf: // set volume + case 0xdf: // chan_setvol sequence_channel_set_volume(seqChannel, m64_read_u8(state)); break; - case 0xe0: // set volume scale + case 0xe0: // chan_setvolscale seqChannel->volumeScale = FLOAT_CAST(m64_read_u8(state)) / US_FLOAT(128.0); break; - case 0xde: // pitch bend using raw frequency multiplier N/2^15 (N is u16) + case 0xde: // chan_freqscale; pitch bend using raw frequency multiplier N/2^15 (N is u16) sp5A = m64_read_s16(state); seqChannel->freqScale = FLOAT_CAST(sp5A) / US_FLOAT(32768.0); break; - case 0xd3: // pitch bend by <= 1 octave in either direction (-127..127) + case 0xd3: // chan_pitchbend; pitch bend by <= 1 octave in either direction (-127..127) // (m64_read_u8(state) is really s8 here) temp = m64_read_u8(state) + 127; seqChannel->freqScale = gPitchBendFrequencyScale[temp]; break; - case 0xdd: // set pan + case 0xdd: // chan_setpan seqChannel->pan = FLOAT_CAST(m64_read_u8(state)) / US_FLOAT(128.0); break; - case 0xdc: // set proportion of pan to come from channel (0..128) + case 0xdc: // chan_setpanmix; set proportion of pan to come from channel (0..128) seqChannel->panChannelWeight = FLOAT_CAST(m64_read_u8(state)) / US_FLOAT(128.0); break; - case 0xdb: // set transposition in semitones + case 0xdb: // chan_transpose; set transposition in semitones tempSigned = *state->pc; state->pc++; seqChannel->transposition = tempSigned; break; - case 0xda: // set adsr envelope + case 0xda: // chan_setenvelope sp5A = m64_read_s16(state); seqChannel->adsr.envelope = (struct AdsrEnvelope *) (seqPlayer->seqData + sp5A); break; - case 0xd9: // set adsr decay/release + case 0xd9: // chan_setdecayrelease seqChannel->adsr.releaseRate = m64_read_u8(state); break; - case 0xd8: // set vibrato extent + case 0xd8: // chan_setvibratoextent seqChannel->vibratoExtentTarget = m64_read_u8(state) * 8; seqChannel->vibratoExtentStart = 0; seqChannel->vibratoExtentChangeDelay = 0; break; - case 0xd7: // set vibrato rate + case 0xd7: // chan_setvibratorate seqChannel->vibratoRateStart = seqChannel->vibratoRateTarget = m64_read_u8(state) * 32; seqChannel->vibratoRateChangeDelay = 0; break; - case 0xe2: // set vibrato extent to change linearly per note + case 0xe2: // chan_setvibratoextentlinear seqChannel->vibratoExtentStart = m64_read_u8(state) * 8; seqChannel->vibratoExtentTarget = m64_read_u8(state) * 8; seqChannel->vibratoExtentChangeDelay = m64_read_u8(state) * 16; break; - case 0xe1: // set vibrato rate to change linearly per note + case 0xe1: // chan_setvibratoratelinear seqChannel->vibratoRateStart = m64_read_u8(state) * 32; seqChannel->vibratoRateTarget = m64_read_u8(state) * 32; seqChannel->vibratoRateChangeDelay = m64_read_u8(state) * 16; break; - case 0xe3: // set delay until vibrato start for each note + case 0xe3: // chan_setvibratodelay seqChannel->vibratoDelay = m64_read_u8(state) * 16; break; - case 0xd6: // noop, intended to set updates per frame + case 0xd6: // chan_setupdatesperframe_unimplemented temp = m64_read_u8(state); if (temp == 0) { temp = gAudioUpdatesPerFrame; @@ -1064,11 +1073,11 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel) { seqChannel->updatesPerFrameUnused = temp; break; - case 0xd4: // "dry/wet mix of the effects loop", in practice reverb + case 0xd4: // chan_setreverb seqChannel->reverb = m64_read_u8(state); break; - case 0xc6: // switch bank within set + case 0xc6: // chan_setbank; switch bank within set temp = m64_read_u8(state); // Switch to the temp's (0-indexed) bank in this sequence's // bank set. Note that in the binary format (not in the JSON!) @@ -1082,7 +1091,7 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel) { } break; - case 0xc7: // write to sequence data (!) + case 0xc7: // chan_writeseq; write to sequence data (!) // sp38 doesn't go on the stack sp38 = value; temp2 = m64_read_u8(state); @@ -1090,9 +1099,9 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel) { seqPlayer->seqData[sp5A] = sp38 + temp2; break; - case 0xc8: // subtraction - case 0xc9: // bitand - case 0xcc: // set temp + case 0xc8: // chan_subtract + case 0xc9: // chan_bitand + case 0xcc: // chan_setval temp = m64_read_u8(state); if (cmd == 0xc8) { value -= temp; @@ -1103,28 +1112,28 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel) { } break; - case 0xca: // set mute behavior + case 0xca: // chan_setmutebhv seqChannel->muteBehavior = m64_read_u8(state); break; - case 0xcb: // read from array in sequence data + case 0xcb: // chan_readseq sp5A = m64_read_s16(state); value = seqPlayer->seqData[sp5A + value]; break; - case 0xd0: // set whether stereo/headset audio plays differently + case 0xd0: // chan_stereoheadseteffects seqChannel->stereoHeadsetEffects = m64_read_u8(state); break; - case 0xd1: // set note allocation policy (see playback.h) + case 0xd1: // chan_setnoteallocationpolicy seqChannel->noteAllocPolicy = m64_read_u8(state); break; - case 0xd2: // set adsr sustain level (0..2^16) + case 0xd2: // chan_setsustain seqChannel->adsr.sustain = m64_read_u8(state) << 8; break; - case 0xe4: // dynamic function pointer call + case 0xe4: // chan_dyncall if (value != -1) { u8(*thingy)[2] = *seqChannel->dynTable; state->depth++, state->stack[state->depth - 1] = state->pc; @@ -1138,39 +1147,39 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel) { loBits = cmd & 0xf; // #define loBits (cmd & 0xf) switch (cmd & 0xf0) { - case 0x00: // test finished + case 0x00: // chan_testlayerfinished if (seqChannel->layers[loBits] != NULL) { value = seqChannel->layers[loBits]->finished; } break; - case 0x70: // write data back to audio lib + case 0x70: // chan_iowriteval; write data back to audio lib seqChannel->soundScriptIO[loBits] = value; break; - case 0x80: // read data from audio lib + case 0x80: // chan_ioreadval; read data from audio lib value = seqChannel->soundScriptIO[loBits]; if (loBits < 4) { seqChannel->soundScriptIO[loBits] = -1; } break; - case 0x50: // subtract with read data from audio lib + case 0x50: // chan_ioreadvalsub; subtract with read data from audio lib value -= seqChannel->soundScriptIO[loBits]; break; - case 0x90: // set layer + case 0x90: // chan_setlayer sp5A = m64_read_s16(state); if (seq_channel_set_layer(seqChannel, loBits) == 0) { seqChannel->layers[loBits]->scriptState.pc = seqPlayer->seqData + sp5A; } break; - case 0xa0: // free layer + case 0xa0: // chan_freelayer seq_channel_layer_free(seqChannel, loBits); break; - case 0xb0: // set dynamic layer + case 0xb0: // chan_dynsetlayer if (value != -1 && seq_channel_set_layer(seqChannel, loBits) != -1) { temp = (*seqChannel->dynTable)[value][0] + ((*seqChannel->dynTable)[value][1] << 8); @@ -1178,24 +1187,24 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel) { } break; - case 0x60: // set note priority (>= 2) + case 0x60: // chan_setnotepriority (arg must be >= 2) seqChannel->notePriority = loBits; break; - case 0x10: // start a channel with a given sound script + case 0x10: // chan_startchannel sp5A = m64_read_s16(state); sequence_channel_enable(seqPlayer, loBits, seqPlayer->seqData + sp5A); break; - case 0x20: // disable a channel + case 0x20: // chan_disablechannel sequence_channel_disable(seqPlayer->channels[loBits]); break; - case 0x30: // write data back to audio lib for another channel + case 0x30: // chan_iowriteval2; write data back to audio lib for another channel seqPlayer->channels[loBits]->soundScriptIO[m64_read_u8(state)] = value; break; - case 0x40: // read data from audio lib from another channel + case 0x40: // chan_ioreadval2; read data from audio lib from another channel value = seqPlayer->channels[loBits]->soundScriptIO[m64_read_u8(state)]; break; } @@ -1203,7 +1212,7 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel) { } } - for (i = 0; i < 4; i++) { + for (i = 0; i < LAYERS_MAX; i++) { if (seqChannel->layers[i] != 0) { seq_channel_layer_process_script(seqChannel->layers[i]); } @@ -1237,7 +1246,7 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { } if (seqPlayer->bankDmaRemaining == 0) { seqPlayer->bankDmaInProgress = FALSE; - func_8031784C(seqPlayer->loadingBank, gAlTbl->seqArray[seqPlayer->loadingBankId].offset, + patch_audio_bank(seqPlayer->loadingBank, gAlTbl->seqArray[seqPlayer->loadingBankId].offset, seqPlayer->loadingBankNumInstruments, seqPlayer->loadingBankNumDrums); gCtlEntries[seqPlayer->loadingBankId].numInstruments = seqPlayer->loadingBankNumInstruments; gCtlEntries[seqPlayer->loadingBankId].numDrums = seqPlayer->loadingBankNumDrums; @@ -1264,16 +1273,16 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { // If discarded, bail out. if (IS_SEQ_LOAD_COMPLETE(seqPlayer->seqId) == FALSE - || IS_BANK_LOAD_COMPLETE(seqPlayer->anyBank[0]) == FALSE) { + || IS_BANK_LOAD_COMPLETE(seqPlayer->defaultBank[0]) == FALSE) { sequence_player_disable(seqPlayer); return; } // Remove possible SOUND_LOAD_STATUS_DISCARDABLE marks. gSeqLoadStatus[seqPlayer->seqId] = SOUND_LOAD_STATUS_COMPLETE; - gBankLoadStatus[seqPlayer->anyBank[0]] = SOUND_LOAD_STATUS_COMPLETE; + gBankLoadStatus[seqPlayer->defaultBank[0]] = SOUND_LOAD_STATUS_COMPLETE; - if (seqPlayer->muted && (seqPlayer->muteBehavior & MUTE_BEHAVIOR_80) != 0) { + if (seqPlayer->muted && (seqPlayer->muteBehavior & MUTE_BEHAVIOR_STOP_SCRIPT) != 0) { return; } @@ -1290,7 +1299,7 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { } else { for (;;) { cmd = m64_read_u8(state); - if (cmd == 0xff) // function return or end of script + if (cmd == 0xff) // seq_end { if (state->depth == 0) { sequence_player_disable(seqPlayer); @@ -1299,13 +1308,13 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { state->depth--, state->pc = state->stack[state->depth]; } - if (cmd == 0xfd) // delay for N frames + if (cmd == 0xfd) // seq_delay { seqPlayer->delay = m64_read_compressed_u16(state); break; } - if (cmd == 0xfe) // delay for 1 frame + if (cmd == 0xfe) // seq_delay1 { seqPlayer->delay = 1; break; @@ -1313,21 +1322,21 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { if (cmd >= 0xc0) { switch (cmd) { - case 0xff: + case 0xff: // seq_end break; - case 0xfc: // function call + case 0xfc: // seq_call u16v = m64_read_s16(state); state->depth++, state->stack[state->depth - 1] = state->pc; state->pc = seqPlayer->seqData + u16v; break; - case 0xf8: // loop start, N iterations (or 256 if N = 0) + case 0xf8: // seq_loop; loop start, N iterations (or 256 if N = 0) state->remLoopIters[state->depth] = m64_read_u8(state); state->depth++, state->stack[state->depth - 1] = state->pc; break; - case 0xf7: // loop end + case 0xf7: // seq_loopend state->remLoopIters[state->depth - 1]--; if (state->remLoopIters[state->depth - 1] != 0) { state->pc = state->stack[state->depth - 1]; @@ -1336,10 +1345,10 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { } break; - case 0xfb: // unconditional jump - case 0xfa: // jump if == 0 - case 0xf9: // jump if < 0 - case 0xf5: // jump if >= 0 + case 0xfb: // seq_jump + case 0xfa: // seq_beqz; jump if == 0 + case 0xf9: // seq_bltz; jump if < 0 + case 0xf5: // seq_bgez; jump if >= 0 u16v = m64_read_s16(state); if (cmd == 0xfa && value != 0) { break; @@ -1353,25 +1362,25 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { state->pc = seqPlayer->seqData + u16v; break; - case 0xf2: // reserve N notes for sequence + case 0xf2: // seq_reservenotes note_pool_clear(&seqPlayer->notePool); note_pool_fill(&seqPlayer->notePool, m64_read_u8(state)); break; - case 0xf1: // reserve 0 notes for sequence + case 0xf1: // seq_unreservenotes note_pool_clear(&seqPlayer->notePool); break; - case 0xdf: // set transposition in semitones + case 0xdf: // seq_transpose; set transposition in semitones seqPlayer->transposition = 0; // fallthrough - case 0xde: // add transposition + case 0xde: // seq_transposerel; add transposition seqPlayer->transposition += (s8) m64_read_u8(state); break; - case 0xdd: // set tempo (bpm) - case 0xdc: // increase tempo (bpm) + case 0xdd: // seq_settempo (bpm) + case 0xdc: // seq_addtempo (bpm) temp = m64_read_u8(state); if (cmd == 0xdd) { seqPlayer->tempo = temp * TEMPO_SCALE; @@ -1388,7 +1397,7 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { } break; - case 0xdb: // set volume + case 0xdb: // seq_setvol temp = m64_read_u8(state); switch (seqPlayer->state) { case SEQUENCE_PLAYER_STATE_2: @@ -1409,37 +1418,37 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { } break; - case 0xda: // increase/decrease volume + case 0xda: // seq_changevol tempSigned = m64_read_u8(state); seqPlayer->fadeVolume = seqPlayer->fadeVolume + (f32) tempSigned / US_FLOAT(127.0); break; - case 0xd7: // init channels + case 0xd7: // seq_initchannels u16v = m64_read_s16(state); sequence_player_init_channels(seqPlayer, u16v); break; - case 0xd6: // disable channels + case 0xd6: // seq_disablechannels u16v = m64_read_s16(state); sequence_player_disable_channels(seqPlayer, u16v); break; - case 0xd5: // set volume multiplier for muted player + case 0xd5: // seq_setmutescale tempSigned = m64_read_u8(state); seqPlayer->muteVolumeScale = (f32) tempSigned / US_FLOAT(127.0); break; - case 0xd4: // mute + case 0xd4: // seq_mute seqPlayer->muted = TRUE; break; - case 0xd3: // set mute behavior + case 0xd3: // seq_setmutebhv seqPlayer->muteBehavior = m64_read_u8(state); break; - case 0xd2: // set short note velocity table - case 0xd1: // set short note duration table + case 0xd2: // seq_setshortnotevelocitytable + case 0xd1: // seq_setshortnotedurationtable u16v = m64_read_s16(state); tempPtr = seqPlayer->seqData + u16v; if (cmd == 0xd2) { @@ -1449,26 +1458,26 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { } break; - case 0xd0: // set note allocation policy (see playback.h) + case 0xd0: // seq_setnoteallocationpolicy seqPlayer->noteAllocPolicy = m64_read_u8(state); break; - case 0xcc: // set temp + case 0xcc: // seq_setval value = m64_read_u8(state); break; - case 0xc9: // bitand + case 0xc9: // seq_bitand value = m64_read_u8(state) & value; break; - case 0xc8: // subtraction + case 0xc8: // seq_subtract value = value - m64_read_u8(state); break; } } else { loBits = cmd & 0xf; switch (cmd & 0xf0) { - case 0x00: // test whether channel has been disabled by channel script + case 0x00: // seq_testchdisabled if (IS_SEQUENCE_CHANNEL_VALID(seqPlayer->channels[loBits]) == TRUE) { value = seqPlayer->channels[loBits]->finished; } @@ -1479,18 +1488,18 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { break; case 0x40: break; - case 0x50: + case 0x50: // seq_subvariation value -= seqPlayer->seqVariation; break; case 0x60: break; - case 0x70: + case 0x70: // seq_setvariation seqPlayer->seqVariation = value; break; - case 0x80: + case 0x80: // seq_getvariation value = seqPlayer->seqVariation; break; - case 0x90: // start a channel with a given sound script + case 0x90: // seq_startchannel u16v = m64_read_s16(state); sequence_channel_enable(seqPlayer, loBits, seqPlayer->seqData + u16v); break; @@ -1515,14 +1524,14 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) { // This runs 240 times per second. void process_sequences(UNUSED s32 iterationsRemaining) { s32 i; - for (i = 0; i < 3; i++) { + for (i = 0; i < SEQUENCE_PLAYERS; i++) { if (gSequencePlayers[i].enabled == TRUE) { sequence_player_process_sequence(gSequencePlayers + i); sequence_player_process_sound(gSequencePlayers + i); } } - func_80319BC8(); - func_80318908(); + reclaim_notes(); + process_notes(); } void init_sequence_player(u32 player) { @@ -1534,7 +1543,7 @@ void init_sequence_player(u32 player) { seqPlayer->tempoAcc = 0; seqPlayer->tempo = 120 * TEMPO_SCALE; // 120 BPM seqPlayer->transposition = 0; - seqPlayer->muteBehavior = MUTE_BEHAVIOR_80 | MUTE_BEHAVIOR_40 | MUTE_BEHAVIOR_20; + seqPlayer->muteBehavior = MUTE_BEHAVIOR_STOP_SCRIPT | MUTE_BEHAVIOR_STOP_NOTES | MUTE_BEHAVIOR_SOFTEN; seqPlayer->noteAllocPolicy = 0; seqPlayer->shortNoteVelocityTable = gDefaultShortNoteVelocityTable; seqPlayer->shortNoteDurationTable = gDefaultShortNoteDurationTable; @@ -1544,29 +1553,34 @@ void init_sequence_player(u32 player) { seqPlayer->muteVolumeScale = 0.5f; } -void func_8031D4B8(void) { +void init_sequence_players(void) { // Initialization function, called from audio_init s32 i, j; - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(gSequenceChannels); i++) { gSequenceChannels[i].seqPlayer = NULL; gSequenceChannels[i].enabled = FALSE; } - for (i = 0; i < 32; i++) { - //! Size of wrong array. Zeroes out second half of gSequenceChannels[0], - // all of gSequenceChannels[1..31], and part of D_802245D8[0]. - // However, this is only called at startup, so it's pretty harmless. - for (j = 0; j < ARRAY_COUNT(D_802245D8); j++) { + for (i = 0; i < ARRAY_COUNT(gSequenceChannels); i++) { + // @bug Size of wrong array. Zeroes out second half of gSequenceChannels[0], + // all of gSequenceChannels[1..31], and part of gSequenceLayers[0]. + // However, this is only called at startup, so it's harmless. +#ifdef AVOID_UB +#define LAYERS_SIZE LAYERS_MAX +#else +#define LAYERS_SIZE ARRAY_COUNT(gSequenceLayers) +#endif + for (j = 0; j < LAYERS_SIZE; j++) { gSequenceChannels[i].layers[j] = NULL; } } - func_8031AF74(); + init_layer_freelist(); - for (i = 0; i < ARRAY_COUNT(D_802245D8); i++) { - D_802245D8[i].seqChannel = NULL; - D_802245D8[i].enabled = FALSE; + for (i = 0; i < ARRAY_COUNT(gSequenceLayers); i++) { + gSequenceLayers[i].seqChannel = NULL; + gSequenceLayers[i].enabled = FALSE; } for (i = 0; i < SEQUENCE_PLAYERS; i++) { diff --git a/src/audio/seqplayer.h b/src/audio/seqplayer.h index c5c2336..7d91fae 100644 --- a/src/audio/seqplayer.h +++ b/src/audio/seqplayer.h @@ -11,6 +11,6 @@ void audio_list_push_back(struct AudioListItem *list, struct AudioListItem *item void *audio_list_pop_back(struct AudioListItem *list); void process_sequences(s32 iterationsRemaining); void init_sequence_player(u32 player); -void func_8031D4B8(void); +void init_sequence_players(void); #endif /* _AUDIO_SEQPLAYER_H */ diff --git a/src/audio/synthesis.c b/src/audio/synthesis.c index 1b630b0..ec869f8 100644 --- a/src/audio/synthesis.c +++ b/src/audio/synthesis.c @@ -21,9 +21,6 @@ #define DMEM_ADDR_WET_LEFT_CH 0x740 #define DMEM_ADDR_WET_RIGHT_CH 0x880 -#define DEFAULT_LEN_1CH 0x140 -#define DEFAULT_LEN_2CH 0x280 - #define aSetLoadBufferPair(pkt, c, off) \ aSetBuffer(pkt, 0, c + DMEM_ADDR_WET_LEFT_CH, 0, DEFAULT_LEN_1CH - c); \ aLoadBuffer(pkt, VIRTUAL_TO_PHYSICAL2(&gSynthesisReverb.ringBuffer.left[off])); \ @@ -49,7 +46,7 @@ struct VolumeChange { }; u64 *synthesis_do_one_audio_update(u16 *aiBuf, s32 bufLen, u64 *cmd, u32 updateIndex); -u64 *process_notes(u16 *aiBuf, s32 bufLen, u64 *cmd); +u64 *synthesis_process_notes(u16 *aiBuf, s32 bufLen, u64 *cmd); u64 *load_wave_samples(u64 *cmd, struct Note *note, s32 nSamplesToLoad); u64 *final_resample(u64 *cmd, struct Note *note, s32 count, u16 pitch, u16 dmemIn, u32 flags); u64 *process_envelope(u64 *cmd, struct Note *note, s32 nSamples, u16 inBuf, s32 headsetPanSettings, @@ -185,7 +182,7 @@ u64 *synthesis_do_one_audio_update(u16 *aiBuf, s32 bufLen, u64 *cmd, u32 updateI if (gSynthesisReverb.useReverb == 0) { aClearBuffer(cmd++, DMEM_ADDR_LEFT_CH, DEFAULT_LEN_2CH); - cmd = process_notes(aiBuf, bufLen, cmd); + cmd = synthesis_process_notes(aiBuf, bufLen, cmd); } else { if (gReverbDownsampleRate == 1) { // Put the oldest samples in the ring buffer into the wet channels @@ -224,7 +221,7 @@ u64 *synthesis_do_one_audio_update(u16 *aiBuf, s32 bufLen, u64 *cmd, u32 updateI /*out*/ DMEM_ADDR_LEFT_CH); aDMEMMove(cmd++, DMEM_ADDR_LEFT_CH, DMEM_ADDR_WET_LEFT_CH, DEFAULT_LEN_2CH); } - cmd = process_notes(aiBuf, bufLen, cmd); + cmd = synthesis_process_notes(aiBuf, bufLen, cmd); if (gReverbDownsampleRate == 1) { aSetSaveBufferPair(cmd++, 0, v1->lengths[0], v1->startPos); if (v1->lengths[1] != 0) { @@ -246,7 +243,7 @@ u64 *synthesis_do_one_audio_update(u16 *aiBuf, s32 bufLen, u64 *cmd, u32 updateI } #ifdef NON_MATCHING -u64 *process_notes(u16 *aiBuf, s32 bufLen, u64 *cmd) { +u64 *synthesis_process_notes(u16 *aiBuf, s32 bufLen, u64 *cmd) { s32 noteIndex; // sp174 struct Note *note; // s7 struct AudioBankSample *audioBookSample; // sp164 @@ -571,9 +568,9 @@ u64 *process_notes(u16 *aiBuf, s32 bufLen, u64 *cmd) { } #elif defined(VERSION_JP) -GLOBAL_ASM("asm/non_matchings/process_notes_jp.s") +GLOBAL_ASM("asm/non_matchings/synthesis_process_notes_jp.s") #else -GLOBAL_ASM("asm/non_matchings/process_notes_us.s") +GLOBAL_ASM("asm/non_matchings/synthesis_process_notes_us.s") #endif u64 *load_wave_samples(u64 *cmd, struct Note *note, s32 nSamplesToLoad) { diff --git a/src/audio/synthesis.h b/src/audio/synthesis.h index 5b5d6b2..16f6be9 100644 --- a/src/audio/synthesis.h +++ b/src/audio/synthesis.h @@ -1,8 +1,11 @@ -#ifndef _AUDIO_SYNTHESIS_H -#define _AUDIO_SYNTHESIS_H +#ifndef AUDIO_SYNTHESIS_H +#define AUDIO_SYNTHESIS_H #include "internal.h" +#define DEFAULT_LEN_1CH 0x140 +#define DEFAULT_LEN_2CH 0x280 + #define MAX_UPDATES_PER_FRAME 4 struct ReverbRingBufferItem @@ -46,4 +49,4 @@ void note_set_frequency(struct Note *note, f32 frequency); void note_enable(struct Note *note); void note_disable(struct Note *note); -#endif /* _AUDIO_SYNTHESIS_H */ +#endif /* AUDIO_SYNTHESIS_H */ diff --git a/src/buffers/framebuffers.c b/src/buffers/framebuffers.c index 4ef884c..6a16e21 100644 --- a/src/buffers/framebuffers.c +++ b/src/buffers/framebuffers.c @@ -3,7 +3,7 @@ #include "sm64.h" // 0x70800 bytes -#if BUGFIXES_CRITICAL +#ifdef AVOID_UB u16 gFrameBuffers[3][SCREEN_WIDTH * SCREEN_HEIGHT]; #else u16 gFrameBuffer0[SCREEN_WIDTH * SCREEN_HEIGHT]; diff --git a/src/buffers/framebuffers.h b/src/buffers/framebuffers.h index 2635143..35fb346 100644 --- a/src/buffers/framebuffers.h +++ b/src/buffers/framebuffers.h @@ -3,8 +3,8 @@ // level_script.c assumes that the frame buffers are adjacent, while game.c's // -g codegen implies that they are separate variables. This is impossible to -// reconcile without undefined behavior. Avoid that on non-IDO. -#if BUGFIXES_CRITICAL +// reconcile without undefined behavior. Avoid that when possible. +#ifdef AVOID_UB extern u16 gFrameBuffers[3][SCREEN_WIDTH * SCREEN_HEIGHT]; #define gFrameBuffer0 gFrameBuffers[0] #define gFrameBuffer1 gFrameBuffers[1] diff --git a/src/buffers/zbuffer.c b/src/buffers/zbuffer.c new file mode 100644 index 0000000..148ab57 --- /dev/null +++ b/src/buffers/zbuffer.c @@ -0,0 +1,5 @@ +#include + +#include "zbuffer.h" + +ALIGNED8 u16 gZBuffer[SCREEN_WIDTH * SCREEN_HEIGHT]; diff --git a/src/buffers/zbuffer.h b/src/buffers/zbuffer.h new file mode 100644 index 0000000..dc3deba --- /dev/null +++ b/src/buffers/zbuffer.h @@ -0,0 +1,9 @@ +#ifndef ZBUFFER_H +#define ZBUFFER_H + +#include "types.h" +#include "config.h" + +extern u16 gZBuffer[SCREEN_WIDTH * SCREEN_HEIGHT]; + +#endif diff --git a/src/engine/behavior_script.c b/src/engine/behavior_script.c index e912866..584fa3a 100644 --- a/src/engine/behavior_script.c +++ b/src/engine/behavior_script.c @@ -628,7 +628,7 @@ static s32 beh_cmd_scale(void) { return BEH_CONTINUE; } -static s32 beh_cmd_obj_set_gravity(void) { +static s32 beh_cmd_obj_set_physics(void) { UNUSED f32 sp04, sp00; gCurrentObject->oWallHitboxRadius = (f32)(s16)(gBehCommand[1] >> 16); @@ -731,7 +731,7 @@ static BehCommandProc BehaviorJumpTable[] = { beh_cmd_obj_set_pos, beh_cmd_obj_set_float2, beh_cmd_interact_type, - beh_cmd_obj_set_gravity, + beh_cmd_obj_set_physics, Behavior31, beh_cmd_scale, beh_cmd_obj_bit_clear_int32, diff --git a/src/engine/graph_node.h b/src/engine/graph_node.h index ad65a51..c99b9d0 100644 --- a/src/engine/graph_node.h +++ b/src/engine/graph_node.h @@ -34,6 +34,9 @@ extern Vec3s gVec3sOne; // Whether the node type has a function pointer of type GraphNodeFunc #define GRAPH_NODE_TYPE_FUNCTIONAL 0x100 +// Type used for Bowser and an unused geo function in obj_behaviors.c +#define GRAPH_NODE_TYPE_400 0x400 + // The discriminant for different types of geo nodes #define GRAPH_NODE_TYPE_ROOT 0x001 #define GRAPH_NODE_TYPE_ORTHO_PROJECTION 0x002 diff --git a/src/engine/level_script.c b/src/engine/level_script.c index c42b80b..1f09d3c 100644 --- a/src/engine/level_script.c +++ b/src/engine/level_script.c @@ -3,9 +3,9 @@ #include "sm64.h" #include "audio/external.h" #include "buffers/framebuffers.h" +#include "buffers/zbuffer.h" #include "game/area.h" #include "game/display.h" -#include "game/game.h" #include "game/mario.h" #include "game/memory.h" #include "game/object_helpers.h" diff --git a/src/engine/math_util.c b/src/engine/math_util.c index e413c60..78418ba 100644 --- a/src/engine/math_util.c +++ b/src/engine/math_util.c @@ -568,7 +568,9 @@ void mtxf_mul_vec3s(Mat4 mtx, Vec3s b) { * and no crashes occur. */ void mtxf_to_mtx(Mtx *dest, Mat4 src) { -#if ENDIAN_IND +#ifdef AVOID_UB + // Avoid type-casting which is technically UB by calling the equivalent + // guMtxF2L function. This helps little-endian systems, as well. guMtxF2L(src, dest); #else s32 asFixedPoint; diff --git a/src/engine/math_util.h b/src/engine/math_util.h index 74bff6f..d068e63 100644 --- a/src/engine/math_util.h +++ b/src/engine/math_util.h @@ -14,7 +14,7 @@ * Thus, for non-IDO compilers we use the standard-compliant version. */ extern f32 gSineTable[]; -#if BUGFIXES_CRITICAL +#ifdef AVOID_UB #define gCosineTable (gSineTable + 0x400) #else extern f32 gCosineTable[]; diff --git a/src/game/area.c b/src/game/area.c index a661a45..240605d 100644 --- a/src/game/area.c +++ b/src/game/area.c @@ -198,7 +198,7 @@ void func_8027A7C4(void) { if (gCurrentArea != NULL) { geo_call_global_function_nodes(gCurrentArea->unk04, GEO_CONTEXT_AREA_UNLOAD); gCurrentArea = NULL; - gWarpTransition.isActive = 0; + gWarpTransition.isActive = FALSE; } for (i = 0; i < 8; i++) { @@ -235,7 +235,7 @@ void func_8027A998(void) { gCurrentArea->flags = 0; gCurrentArea = NULL; - gWarpTransition.isActive = 0; + gWarpTransition.isActive = FALSE; } } @@ -298,42 +298,42 @@ void play_transition(s16 transType, s16 time, u8 red, u8 green, u8 blue) { red = gWarpTransRed, green = gWarpTransGreen, blue = gWarpTransBlue; } - if (transType < 8) { + if (transType < 8) { // if transition is RGB gWarpTransition.data.red = red; gWarpTransition.data.green = green; gWarpTransition.data.blue = blue; - } else { + } else { // if transition is textured gWarpTransition.data.red = red; gWarpTransition.data.green = green; gWarpTransition.data.blue = blue; - // Both the start and end circles are always located in the middle of the screen. + // Both the start and end textured transition are always located in the middle of the screen. // If you really wanted to, you could place the start at one corner and the end at // the opposite corner. This will make the transition image look like it is moving // across the screen. - gWarpTransition.data.startCircleX = 160; - gWarpTransition.data.startCircleY = 120; - gWarpTransition.data.endCircleX = 160; - gWarpTransition.data.endCircleY = 120; + gWarpTransition.data.startTexX = SCREEN_WIDTH / 2; + gWarpTransition.data.startTexY = SCREEN_HEIGHT / 2; + gWarpTransition.data.endTexX = SCREEN_WIDTH / 2; + gWarpTransition.data.endTexY = SCREEN_HEIGHT / 2; - gWarpTransition.data.unk10 = 0; + gWarpTransition.data.texTimer = 0; if (transType & 1) // Is the image fading in? { - gWarpTransition.data.startCircleRadius = 320; + gWarpTransition.data.startTexRadius = SCREEN_WIDTH; if (transType >= 0x0F) { - gWarpTransition.data.endCircleRadius = 16; + gWarpTransition.data.endTexRadius = 16; } else { - gWarpTransition.data.endCircleRadius = 0; + gWarpTransition.data.endTexRadius = 0; } } else // The image is fading out. (Reverses start & end circles) { if (transType >= 0x0E) { - gWarpTransition.data.startCircleRadius = 16; + gWarpTransition.data.startTexRadius = 16; } else { - gWarpTransition.data.startCircleRadius = 0; + gWarpTransition.data.startTexRadius = 0; } - gWarpTransition.data.endCircleRadius = 320; + gWarpTransition.data.endTexRadius = SCREEN_WIDTH; } } } @@ -378,7 +378,7 @@ void render_game(void) { if (gWarpTransition.isActive) { if (gWarpTransDelay == 0) { - gWarpTransition.isActive = !func_802CC108(0, gWarpTransition.type, gWarpTransition.time, + gWarpTransition.isActive = !render_screen_transition(0, gWarpTransition.type, gWarpTransition.time, &gWarpTransition.data); if (!gWarpTransition.isActive) { if (gWarpTransition.type & 1) { diff --git a/src/game/area.h b/src/game/area.h index 50e4054..8a5048d 100644 --- a/src/game/area.h +++ b/src/game/area.h @@ -3,95 +3,6 @@ #include "types.h" -enum CourseNum -{ - COURSE_NONE, // (0) Overworld (Castle Grounds, etc) - COURSE_MIN, - /* -------------- Main Courses -------------- */ - COURSE_STAGES_MIN = COURSE_MIN, - COURSE_BOB = COURSE_STAGES_MIN, // (1) Bob Omb Battlefield - COURSE_WF, // (2) Whomp's Fortress - COURSE_JRB, // (3) Jolly Rodger's Bay - COURSE_CCM, // (4) Cool Cool Mountain - COURSE_BBH, // (5) Big Boo's Haunt - COURSE_HMC, // (6) Hazy Maze Cave - COURSE_LLL, // (7) Lethal Lava Land - COURSE_SSL, // (8) Shifting Sand Land - COURSE_DDD, // (9) Dire Dire Docks - COURSE_SL, // (10) Snowman's Land - COURSE_WDW, // (11) Wet Dry World - COURSE_TTM, // (12) Tall Tall Mountain - COURSE_THI, // (13) Tiny Huge Island - COURSE_TTC, // (14) Tick Tock Clock - COURSE_RR, // (15) Rainbow Ride - COURSE_BONUS_STAGES, - COURSE_STAGES_MAX = COURSE_BONUS_STAGES - 1, - COURSE_STAGES_COUNT = COURSE_STAGES_MAX, - /* -------------- Bonus Courses -------------- */ - COURSE_BITDW, // (16) Bowser in the Dark World - COURSE_BITFS, // (17) Bowser in the Fire Sea - COURSE_BITS, // (18) Bowser in the Sky - COURSE_PSS, // (19) Princess's Secret Slide - COURSE_CAP_COURSES, - COURSE_COTMC = COURSE_CAP_COURSES, // (20) Cavern of the Metal Cap - COURSE_TOTWC, // (21) Tower of the Wing Cap - COURSE_VCUTM, // (22) Vanish Cap Under the Moat - COURSE_WMOTR, // (23) Winged Mario over the Rainbow - COURSE_SA, // (24) Secret Aquarium - COURSE_CAKE_END, // (25) The End (Cake Scene) - COURSE_AFTER_END, - COURSE_MAX = COURSE_AFTER_END - 1, - COURSE_COUNT = COURSE_MAX -}; - -#define COURSE_IS_MAIN_COURSE(cmd) (cmd >= COURSE_STAGES_MIN && cmd <= COURSE_STAGES_MAX) - -enum LevelNum -{ - LEVEL_NONE, // not indexed - LEVEL_MIN, - LEVEL_UNKNOWN_1 = LEVEL_MIN, // (1) "" - LEVEL_UNKNOWN_2, // (2) "" - LEVEL_UNKNOWN_3, // (3) "" - LEVEL_BBH, // (4) "TERESA OBAKE" Big Boo's Haunt - LEVEL_CCM, // (5) "YYAMA1 % YSLD1" Cool Cool Mountain - LEVEL_CASTLE, // (6) "SELECT ROOM" Castle lobby - LEVEL_HMC, // (7) "HORROR DUNGEON" Hazy Maze Cave - LEVEL_SSL, // (8) "SABAKU % PYRMD" Shifting Sand Land - LEVEL_BOB, // (9) "BATTLE FIELD" Bob Omb Battlefield - LEVEL_SL, // (10) "YUKIYAMA2" Snowman's Land - LEVEL_WDW, // (11) "POOL KAI" Wet Dry World - LEVEL_JRB, // (12) "WTDG % TINBOTU" Jolly Rodger's Bay - LEVEL_THI, // (13) "BIG WORLD" Tiny Huge Island - LEVEL_TTC, // (14) "CLOCK TOWER" Tick Tock Clock - LEVEL_RR, // (15) "RAINBOW CRUISE" Rainbow Ride - LEVEL_CASTLE_GROUNDS, // (16) "MAIN MAP" Castle grounds (outside) - LEVEL_BITDW, // (17) "EXT1 YOKO SCRL" Bowser in the Dark World - LEVEL_VCUTM, // (18) "EXT7 HORI MINI" Vanish Cap under the Moat - LEVEL_BITFS, // (19) "EXT2 TIKA LAVA" Bowser in the Fire Sea - LEVEL_SA, // (20) "EXT9 SUISOU" Secret Aquarium - LEVEL_BITS, // (21) "EXT3 HEAVEN" Bowser in the Sky - LEVEL_LLL, // (22) "FIREB1 % INVLC" Lethal Lava Land - LEVEL_DDD, // (23) "WATER LAND" Dire Dire Docks - LEVEL_WF, // (24) "MOUNTAIN" Whomp's Fortress - LEVEL_ENDING, // (25) "ENDING" (Ending Cutscene) - LEVEL_CASTLE_COURTYARD, // (26) "URANIWA" Castle courtyard (BBH entrance) - LEVEL_PSS, // (27) "EXT4 MINI SLID" Princess's Secret Slide - LEVEL_COTMC, // (28) "IN THE FALL" Cavern of the Metal Cap - LEVEL_TOTWC, // (29) "EXT6 MARIO FLY" Tower of the Wing Cap - LEVEL_BOWSER_1, // (30) "KUPPA1" Bowser in the Dark World (Boss) - LEVEL_WMOTR, // (31) "EXT8 BLUE SKY" Winged Mario over the Rainbow - LEVEL_UNKNOWN_32, // (32) "" - LEVEL_BOWSER_2, // (33) "KUPPA2" Bowser in the Fire Sea (Boss) - LEVEL_BOWSER_3, // (34) "KUPPA3" Bowser in the Sky (Final Boss) - LEVEL_UNKNOWN_35, // (35) "" - LEVEL_TTM, // (36) "DONKEY % SLID2" Tall Tall Mountain - LEVEL_UNKNOWN_37, // (37) "" - LEVEL_UNKNOWN_38, // (38) "" - LEVEL_COUNT, - LEVEL_MAX = LEVEL_COUNT - 1 -}; - struct WarpNode { /*00*/ u8 id; @@ -203,6 +114,21 @@ struct Area /*0x38*/ u16 musicParam2; }; +/** + * Helper macro for defining which areas of a level should zoom out the camera when the game is paused. + * Because a mask is used by two levels, the pattern will repeat when more than 4 areas are used by a level. + */ +#define ZOOMOUT_AREA_MASK(level1Area1, level1Area2, level1Area3, level1Area4, \ + level2Area1, level2Area2, level2Area3, level2Area4) \ + ((level2Area4) << 7 | \ + (level2Area3) << 6 | \ + (level2Area2) << 5 | \ + (level2Area1) << 4 | \ + (level1Area4) << 3 | \ + (level1Area3) << 2 | \ + (level1Area2) << 1 | \ + (level1Area1) << 0) + // All the transition data to be used in screen_transition.c struct WarpTransitionData { @@ -210,14 +136,14 @@ struct WarpTransitionData /*0x01*/ u8 green; /*0x02*/ u8 blue; - /*0x04*/ s16 startCircleRadius; - /*0x06*/ s16 endCircleRadius; - /*0x08*/ s16 startCircleX; - /*0x0A*/ s16 startCircleY; - /*0x0C*/ s16 endCircleX; - /*0x0E*/ s16 endCircleY; + /*0x04*/ s16 startTexRadius; + /*0x06*/ s16 endTexRadius; + /*0x08*/ s16 startTexX; + /*0x0A*/ s16 startTexY; + /*0x0C*/ s16 endTexX; + /*0x0E*/ s16 endTexY; - /*0x10*/ s16 unk10; + /*0x10*/ s16 texTimer; // always 0, does seems to affect transition when disabled }; #define WARP_TRANSITION_FADE_FROM_COLOR 0x00 diff --git a/src/game/behavior_actions.c b/src/game/behavior_actions.c index 76a9bde..0aefcef 100644 --- a/src/game/behavior_actions.c +++ b/src/game/behavior_actions.c @@ -17,6 +17,7 @@ #include "level_update.h" #include "audio/external.h" #include "seq_ids.h" +#include "dialog_ids.h" #include "save_file.h" #include "area.h" #include "engine/graph_node.h" @@ -36,6 +37,7 @@ #include "ingame_menu.h" #include "room.h" #include "rendering_graph_node.h" +#include "level_table.h" #define o gCurrentObject @@ -186,7 +188,7 @@ void func_802AA618(s32 sp18, s32 sp1C, f32 sp20) { #include "behaviors/breakable_box.inc.c" // not sure what this is doing here. not in a behavior file. -s32 Geo18_802B1BB0(s32 run, UNUSED struct GraphNode *node, Mat4 mtx) { +Gfx *Geo18_802B1BB0(s32 run, UNUSED struct GraphNode *node, Mat4 mtx) { Mat4 sp20; struct Object *sp1C; @@ -198,7 +200,7 @@ s32 Geo18_802B1BB0(s32 run, UNUSED struct GraphNode *node, Mat4 mtx) { func_8029EA0C(sp1C->prevObj); } } - return 0; + return NULL; } #include "behaviors/heave_ho.inc.c" @@ -244,7 +246,7 @@ void func_802B2328( #include "behaviors/lll_volcano_flames.inc.c" #include "behaviors/lll_hexagonal_ring.inc.c" #include "behaviors/lll_sinking_rectangle.inc.c" -#include "behaviors/lll_tilting_platform.inc.c" +#include "behaviors/tilting_inverted_pyramid.inc.c" #include "behaviors/koopa_shell.inc.c" #include "behaviors/tox_box.inc.c" #include "behaviors/piranha_plant.inc.c" diff --git a/src/game/behavior_actions.h b/src/game/behavior_actions.h index eeb6b87..671eb4d 100644 --- a/src/game/behavior_actions.h +++ b/src/game/behavior_actions.h @@ -94,8 +94,8 @@ void bhv_ukiki_cage_loop(void); void bhv_bitfs_sinking_platform_loop(void); void bhv_bitfs_sinking_cage_platform_loop(void); void bhv_ddd_moving_pole_loop(void); -void bhv_tilting_platform_init(void); -void bhv_tilting_platform_loop(void); +void bhv_platform_normals_init(void); +void bhv_tilting_inverted_pyramid_loop(void); void bhv_squishable_platform_loop(void); void bhv_beta_moving_flames_spawn_loop(void); void bhv_beta_moving_flames_loop(void); @@ -548,15 +548,15 @@ void BehDustSmokeLoop(void); void BehYoshiLoop(void); void bhvLllVolcanoFallingTrap_loop(void); -extern s32 Geo18_802B1BB0(s32 run, UNUSED struct GraphNode *node, Mat4 mtx); +extern Gfx *Geo18_802B1BB0(s32 run, UNUSED struct GraphNode *node, Mat4 mtx); // Bowser extern Gfx *Geo18_802B7D44(s32 a0, struct GraphNode *node, UNUSED s32 a2); extern Gfx *Geo18_802B798C(s32 run, UNUSED struct GraphNode *node, Mat4 mtx); -extern s32 geo_switch_bowser_eyes(s32 run, struct GraphNode *node, UNUSED Mat4 *mtx); +extern Gfx *geo_switch_bowser_eyes(s32 run, struct GraphNode *node, UNUSED Mat4 *mtx); // Tuxie -extern s32 geo_switch_tuxie_mother_eyes(s32 run, struct GraphNode *node, UNUSED Mat4 *mtx); +extern Gfx *geo_switch_tuxie_mother_eyes(s32 run, struct GraphNode *node, UNUSED Mat4 *mtx); // Cap switch extern Gfx *Geo18_802A719C(s32 run, UNUSED struct GraphNode *node, Mat4 mtx); diff --git a/src/game/behaviors/amp.inc.c b/src/game/behaviors/amp.inc.c index b5e8c93..b48100b 100644 --- a/src/game/behaviors/amp.inc.c +++ b/src/game/behaviors/amp.inc.c @@ -225,7 +225,7 @@ void bhv_homing_amp_loop(void) { break; } - ObjectStep(); + object_step(); // Oscillate o->oAmpYPhase++; diff --git a/src/game/behaviors/beta_holdable_object.inc.c b/src/game/behaviors/beta_holdable_object.inc.c index ae74ac3..c451f20 100644 --- a/src/game/behaviors/beta_holdable_object.inc.c +++ b/src/game/behaviors/beta_holdable_object.inc.c @@ -59,7 +59,7 @@ void bhv_beta_holdable_object_loop(void) { switch (o->oHeldState) { case HELD_FREE: // Apply standard physics - ObjectStep(); + object_step(); break; case HELD_HELD: diff --git a/src/game/behaviors/bobomb.inc.c b/src/game/behaviors/bobomb.inc.c index daca5c2..0ca74e3 100644 --- a/src/game/behaviors/bobomb.inc.c +++ b/src/game/behaviors/bobomb.inc.c @@ -21,7 +21,7 @@ void bhv_bobomb_init(void) { void func_802E5B7C(void) { if (((o->oBehParams >> 8) & 0x1) == 0) { - ObjSpawnYellowCoins(o, 1); + obj_spawn_yellow_coins(o, 1); o->oBehParams = 0x100; set_object_respawn_info_bits(o, 1); } @@ -71,13 +71,13 @@ void BobombPatrolLoop(void) { sp22 = o->header.gfx.unk38.animFrame; o->oForwardVel = 5.0; - collisionFlags = ObjectStep(); - if ((ObjLeaveIfMarioIsNearHome(o, o->oHomeX, o->oHomeY, o->oHomeZ, 400) == 1) - && (func_802E46C0(o->oMoveAngleYaw, o->oAngleToMario, 0x2000) == 1)) { + collisionFlags = object_step(); + if ((obj_return_home_if_safe(o, o->oHomeX, o->oHomeY, o->oHomeZ, 400) == 1) + && (obj_check_if_facing_toward_angle(o->oMoveAngleYaw, o->oAngleToMario, 0x2000) == 1)) { o->oBobombFuseLit = 1; o->oAction = BOBOMB_ACT_CHASE_MARIO; } - ObjCheckFloorDeath(collisionFlags, D_803600E0); + obj_check_floor_death(collisionFlags, sObjFloor); } void BobombChaseMarioLoop(void) { @@ -87,18 +87,18 @@ void BobombChaseMarioLoop(void) { sp1a = ++o->header.gfx.unk38.animFrame; o->oForwardVel = 20.0; - collisionFlags = ObjectStep(); + collisionFlags = object_step(); if (sp1a == 5 || sp1a == 16) PlaySound2(SOUND_OBJ_BOBOMB_WALK); obj_turn_toward_object(o, gMarioObject, 16, 0x800); - ObjCheckFloorDeath(collisionFlags, D_803600E0); + obj_check_floor_death(collisionFlags, sObjFloor); } void BobombLaunchedLoop(void) { s16 collisionFlags = 0; - collisionFlags = ObjectStep(); + collisionFlags = object_step(); if ((collisionFlags & 0x1) == 1) o->oAction = BOBOMB_ACT_EXPLODE; /* bit 0 */ } @@ -122,7 +122,7 @@ void GenericBobombFreeLoop(void) { break; case BOBOMB_ACT_LAVA_DEATH: - if (ObjLavaDeath() == 1) + if (obj_lava_death() == 1) create_respawner(MODEL_BLACK_BOBOMB, bhvBobomb, 3000); break; @@ -149,7 +149,7 @@ void StationaryBobombFreeLoop(void) { break; case BOBOMB_ACT_LAVA_DEATH: - if (ObjLavaDeath() == 1) + if (obj_lava_death() == 1) create_respawner(MODEL_BLACK_BOBOMB, bhvBobomb, 3000); break; @@ -293,7 +293,7 @@ void BobombBuddyIdleLoop(void) { o->oBobombBuddyPosYCopy = o->oPosY; o->oBobombBuddyPosZCopy = o->oPosZ; - collisionFlags = ObjectStep(); + collisionFlags = object_step(); if ((sp1a == 5) || (sp1a == 16)) PlaySound2(SOUND_OBJ_BOBOMB_WALK); @@ -373,9 +373,9 @@ void BobombBuddyTalkLoop(void) { case BOBOMB_BUDDY_ROLE_CANNON: if (gCurrCourseNum == COURSE_BOB) - BobombBuddyCannonLoop(4, 105); + BobombBuddyCannonLoop(DIALOG_004, DIALOG_105); else - BobombBuddyCannonLoop(47, 106); + BobombBuddyCannonLoop(DIALOG_047, DIALOG_106); break; } } @@ -408,7 +408,7 @@ void BobombBuddyActionLoop(void) { break; } - SetObjectVisibility(o, 3000); + set_object_visibility(o, 3000); } void bhv_bobomb_buddy_loop(void) { diff --git a/src/game/behaviors/boo.inc.c b/src/game/behaviors/boo.inc.c index d0ae46a..1b9aaf6 100644 --- a/src/game/behaviors/boo.inc.c +++ b/src/game/behaviors/boo.inc.c @@ -459,16 +459,16 @@ static void ActionBoo4(void) { // If there are no remaining "minion" boos, show the dialog of the Big Boo if (obj_nearest_object_with_behavior(bhvGhostHuntBoo) == NULL) { - dialogID = 108; + dialogID = DIALOG_108; } else { - dialogID = 107; + dialogID = DIALOG_107; } if (obj_update_dialog(2, 2, dialogID, 0)) { create_sound_spawner(SOUND_OBJ_DYING_ENEMY1); mark_object_for_deletion(o); - if (dialogID == 108) { // If the Big Boo should spawn, play the jingle + if (dialogID == DIALOG_108) { // If the Big Boo should spawn, play the jingle play_puzzle_jingle(); } } diff --git a/src/game/behaviors/boulder.inc.c b/src/game/behaviors/boulder.inc.c index ad43ad0..cc9a712 100644 --- a/src/game/behaviors/boulder.inc.c +++ b/src/game/behaviors/boulder.inc.c @@ -13,7 +13,7 @@ void bhv_big_boulder_init(void) { void func_802F05DC(void) { s16 sp1E; - sp1E = func_802E4204(); + sp1E = object_step_without_floor_orient(); if ((sp1E & 0x09) == 0x01 && o->oVelY > 10.0f) { PlaySound2(SOUND_GENERAL_GRINDEL_ROLL); func_802A3004(); @@ -51,7 +51,7 @@ void bhv_big_boulder_generator_loop(void) { o->oTimer = 0; } - if (!func_802E49A4(4) || is_point_within_radius_of_mario(o->oPosX, o->oPosY, o->oPosZ, 1500)) + if (!current_mario_room_check(4) || is_point_within_radius_of_mario(o->oPosX, o->oPosY, o->oPosZ, 1500)) return; if (is_point_within_radius_of_mario(o->oPosX, o->oPosY, o->oPosZ, 6000)) { diff --git a/src/game/behaviors/bowling_ball.inc.c b/src/game/behaviors/bowling_ball.inc.c index 0846606..4f7a5a3 100644 --- a/src/game/behaviors/bowling_ball.inc.c +++ b/src/game/behaviors/bowling_ball.inc.c @@ -68,7 +68,7 @@ void bhv_bowling_ball_roll_loop(void) { s32 sp18; func_802EDA6C(); - collisionFlags = ObjectStep(); + collisionFlags = object_step(); //! Uninitialzed parameter, but the parameter is unused in the called function sp18 = obj_follow_path(sp18); @@ -144,7 +144,7 @@ void bhv_bowling_ball_loop(void) { if (o->oBehParams2ndByte != 4) func_8027F440(4, o->oPosX, o->oPosY, o->oPosZ); - SetObjectVisibility(o, 4000); + set_object_visibility(o, 4000); } void bhv_generic_bowling_ball_spawner_init(void) { @@ -215,7 +215,7 @@ void bhv_bob_pit_bowling_ball_init(void) { void bhv_bob_pit_bowling_ball_loop(void) { struct FloorGeometry *sp1c; - UNUSED s16 collisionFlags = ObjectStep(); + UNUSED s16 collisionFlags = object_step(); find_floor_height_and_data(o->oPosX, o->oPosY, o->oPosZ, &sp1c); if ((sp1c->normalX == 0) && (sp1c->normalZ == 0)) @@ -224,7 +224,7 @@ void bhv_bob_pit_bowling_ball_loop(void) { func_802EDA14(); func_8027F440(4, o->oPosX, o->oPosY, o->oPosZ); PlaySound(SOUND_ENV_UNKNOWN2); - SetObjectVisibility(o, 3000); + set_object_visibility(o, 3000); } void bhv_free_bowling_ball_init(void) { @@ -239,7 +239,7 @@ void bhv_free_bowling_ball_init(void) { } void bhv_free_bowling_ball_roll_loop(void) { - s16 collisionFlags = ObjectStep(); + s16 collisionFlags = object_step(); func_802EDA14(); if (o->oForwardVel > 10.0f) { diff --git a/src/game/behaviors/bowser.inc.c b/src/game/behaviors/bowser.inc.c index 9eb6541..4e774b2 100644 --- a/src/game/behaviors/bowser.inc.c +++ b/src/game/behaviors/bowser.inc.c @@ -32,7 +32,7 @@ s8 D_8032F4FC[] = { 7, 8, 9, 12, 13, 14, 15, 4, 3, 16, 17, 19, 3, 3, 3, 3 }; s16 D_8032F50C[] = { 60, 0 }; s16 D_8032F510[] = { 50, 0 }; s8 D_8032F514[] = { 24, 42, 60, -1 }; -s16 sBowserDefeatedDialogText[3] = { 119, 120, 121 }; +s16 sBowserDefeatedDialogText[3] = { DIALOG_119, DIALOG_120, DIALOG_121 }; s16 D_8032F520[][3] = { { 1, 10, 40 }, { 0, 0, 74 }, { -1, -10, 114 }, { 1, -20, 134 }, { -1, 20, 154 }, { 1, 40, 164 }, { -1, -40, 174 }, { 1, -80, 179 }, { -1, 80, 184 }, { 1, 160, 186 }, { -1, -160, 186 }, { 1, 0, 0 }, }; @@ -865,9 +865,9 @@ s32 func_802B6254(void) { s32 dialogID; if (o->oBowserUnkF8 < 2) { if (gHudDisplay.stars < 120) - dialogID = 121; + dialogID = DIALOG_121; else - dialogID = 163; + dialogID = DIALOG_163; if (o->oBowserUnkF8 == 0) { func_8031FFB4(0, 60, 40); o->oBowserUnkF8++; @@ -1247,7 +1247,7 @@ void func_802B70C8(struct Object *a0, struct GraphNodeSwitchCase *switchCase) { * state. Checks whether oBowserEyesShut is TRUE and closes eyes if so and processes * direction otherwise. */ -s32 geo_switch_bowser_eyes(s32 run, struct GraphNode *node, UNUSED Mat4 *mtx) { +Gfx *geo_switch_bowser_eyes(s32 run, struct GraphNode *node, UNUSED Mat4 *mtx) { UNUSED s16 sp36; UNUSED s32 unused; struct Object *obj = (struct Object *) gCurGraphNodeObject; @@ -1265,7 +1265,7 @@ s32 geo_switch_bowser_eyes(s32 run, struct GraphNode *node, UNUSED Mat4 *mtx) { } obj->oBowserUnk1AE++; } - return 0; + return NULL; } Gfx *Geo18_802B7D44(s32 a0, struct GraphNode *node, UNUSED s32 a2) { @@ -1280,9 +1280,9 @@ Gfx *Geo18_802B7D44(s32 a0, struct GraphNode *node, UNUSED s32 a2) { if (gCurGraphNodeHeldObject != 0) sp24 = gCurGraphNodeHeldObject->objNode; if (sp24->oOpacity == 0xFF) - sp20->fnNode.node.flags = (sp20->fnNode.node.flags & 0xFF) | 0x100; + sp20->fnNode.node.flags = (sp20->fnNode.node.flags & 0xFF) | GRAPH_NODE_TYPE_FUNCTIONAL; else - sp20->fnNode.node.flags = (sp20->fnNode.node.flags & 0xFF) | (0x100 | 0x400); + sp20->fnNode.node.flags = (sp20->fnNode.node.flags & 0xFF) | (GRAPH_NODE_TYPE_FUNCTIONAL | GRAPH_NODE_TYPE_400); sp28 = sp2C = alloc_display_list(2 * sizeof(Gfx)); if (sp24->oBowserUnk1B2 != 0) { diff --git a/src/game/behaviors/bowser_bomb.inc.c b/src/game/behaviors/bowser_bomb.inc.c index 14bca10..5efb184 100644 --- a/src/game/behaviors/bowser_bomb.inc.c +++ b/src/game/behaviors/bowser_bomb.inc.c @@ -15,7 +15,7 @@ void bhv_bowser_bomb_loop(void) { o->activeFlags = 0; } - SetObjectVisibility(o, 7000); + set_object_visibility(o, 7000); } void bhv_bowser_bomb_explosion_loop(void) { diff --git a/src/game/behaviors/breakable_box_small.inc.c b/src/game/behaviors/breakable_box_small.inc.c index 7379be2..d5f89e9 100644 --- a/src/game/behaviors/breakable_box_small.inc.c +++ b/src/game/behaviors/breakable_box_small.inc.c @@ -29,7 +29,7 @@ void func_802F4CE8(void) { } void func_802F4DB4(void) { - s16 sp1E = ObjectStep(); + s16 sp1E = object_step(); attack_collided_non_mario_object(o); if (sp1E == 1) @@ -44,12 +44,12 @@ void func_802F4DB4(void) { if (sp1E & 2) { func_802A3004(); spawn_triangle_break_particles(20, 138, 0.7f, 3); - ObjSpawnYellowCoins(o, 3); + obj_spawn_yellow_coins(o, 3); create_sound_spawner(SOUND_GENERAL_BREAK_BOX); o->activeFlags = 0; } - ObjCheckFloorDeath(sp1E, D_803600E0); + obj_check_floor_death(sp1E, sObjFloor); } void breakable_box_small_released_loop(void) { @@ -77,7 +77,7 @@ void breakable_box_small_idle_loop(void) { break; case 100: - ObjLavaDeath(); + obj_lava_death(); break; case 101: diff --git a/src/game/behaviors/bully.inc.c b/src/game/behaviors/bully.inc.c index 3a4097f..4b7bed4 100644 --- a/src/game/behaviors/bully.inc.c +++ b/src/game/behaviors/bully.inc.c @@ -164,10 +164,10 @@ void PlayBullyStompingSound(void) { void BullyStep(void) { s16 collisionFlags = 0; - collisionFlags = ObjectStep(); + collisionFlags = object_step(); BullyBackUpCheck(collisionFlags); PlayBullyStompingSound(); - ObjCheckFloorDeath(collisionFlags, D_803600E0); + obj_check_floor_death(collisionFlags, sObjFloor); if (o->oBullySubtype & BULLY_STYPE_CHILL) { if (o->oPosY < 1030.0f) @@ -189,7 +189,7 @@ void BullySpawnCoin(void) { } void BullyLavaDeath(void) { - if (ObjLavaDeath() == 1) { + if (obj_lava_death() == 1) { if (o->oBehParams2ndByte == BULLY_BP_SIZE_SMALL) { if (o->oBullySubtype == BULLY_STYPE_MINION) o->parentObj->oBullyKBTimerAndMinionKOCounter++; @@ -223,7 +223,7 @@ void bhv_bully_loop(void) { case BULLY_ACT_PATROL: o->oForwardVel = 5.0; - if (ObjLeaveIfMarioIsNearHome(o, o->oHomeX, o->oPosY, o->oHomeZ, 800) == 1) { + if (obj_return_home_if_safe(o, o->oHomeX, o->oPosY, o->oHomeZ, 800) == 1) { o->oAction = BULLY_ACT_CHASE_MARIO; SetObjAnimation(1); } @@ -255,7 +255,7 @@ void bhv_bully_loop(void) { break; } - SetObjectVisibility(o, 3000); + set_object_visibility(o, 3000); } // sp38 = arg0 @@ -283,7 +283,7 @@ void bhv_big_bully_with_minions_init(void) { } void BigBullyWithMinionsLavaDeath(void) { - if (ObjLavaDeath() == 1) { + if (obj_lava_death() == 1) { func_802A3004(); create_star(3700.0f, 600.0f, -5500.0f); } @@ -306,7 +306,7 @@ void bhv_big_bully_with_minions_loop(void) { case BULLY_ACT_PATROL: o->oForwardVel = 5.0; - if (ObjLeaveIfMarioIsNearHome(o, o->oHomeX, o->oPosY, o->oHomeZ, 1000) == 1) { + if (obj_return_home_if_safe(o, o->oHomeX, o->oPosY, o->oHomeZ, 1000) == 1) { o->oAction = BULLY_ACT_CHASE_MARIO; SetObjAnimation(1); } @@ -343,7 +343,7 @@ void bhv_big_bully_with_minions_loop(void) { break; case BULLY_ACT_ACTIVATE_AND_FALL: - collisionFlags = ObjectStep(); + collisionFlags = object_step(); if ((collisionFlags & 0x9) == 0x9) /* bits 0 and 3 */ o->oAction = BULLY_ACT_PATROL; diff --git a/src/game/behaviors/butterfly.inc.c b/src/game/behaviors/butterfly.inc.c index b9cd963..dcb3555 100644 --- a/src/game/behaviors/butterfly.inc.c +++ b/src/game/behaviors/butterfly.inc.c @@ -108,5 +108,5 @@ void bhv_butterfly_loop(void) { break; } - SetObjectVisibility(o, 3000); + set_object_visibility(o, 3000); } diff --git a/src/game/behaviors/camera_lakitu.inc.c b/src/game/behaviors/camera_lakitu.inc.c index 6daa782..e4eacf7 100644 --- a/src/game/behaviors/camera_lakitu.inc.c +++ b/src/game/behaviors/camera_lakitu.inc.c @@ -115,7 +115,7 @@ static void camera_lakitu_intro_act_show_dialog(void) { } } } - } else if (obj_update_dialog_with_cutscene(2, DIALOG_UNK2_FLAG_0, CUTSCENE_DIALOG_1, 34) != 0) { + } else if (obj_update_dialog_with_cutscene(2, DIALOG_UNK2_FLAG_0, CUTSCENE_DIALOG_1, DIALOG_034) != 0) { o->oCameraLakituFinishedDialog = TRUE; } } @@ -151,15 +151,15 @@ void bhv_camera_lakitu_update(void) { break; } } else { - f32 val0C = (f32) 0x875C3D / 0x800 - gCameraStatus.camFocAndPosCurrAndGoal[0][3]; - if (gCameraStatus.camFocAndPosCurrAndGoal[0][3] < 1700.0f || val0C < 0.0f) { + f32 val0C = (f32) 0x875C3D / 0x800 - gCameraStatus.camFocAndPosCurrAndGoal[1][0]; + if (gCameraStatus.camFocAndPosCurrAndGoal[1][0] < 1700.0f || val0C < 0.0f) { obj_hide(); } else { obj_unhide(); - o->oPosX = gCameraStatus.camFocAndPosCurrAndGoal[0][3]; - o->oPosY = gCameraStatus.camFocAndPosCurrAndGoal[0][4]; - o->oPosZ = gCameraStatus.camFocAndPosCurrAndGoal[0][5]; + o->oPosX = gCameraStatus.camFocAndPosCurrAndGoal[1][0]; + o->oPosY = gCameraStatus.camFocAndPosCurrAndGoal[1][1]; + o->oPosZ = gCameraStatus.camFocAndPosCurrAndGoal[1][2]; o->oHomeX = gCameraStatus.camFocAndPosCurrAndGoal[0][0]; o->oHomeZ = gCameraStatus.camFocAndPosCurrAndGoal[0][2]; diff --git a/src/game/behaviors/cap.inc.c b/src/game/behaviors/cap.inc.c index 05729e6..3287247 100644 --- a/src/game/behaviors/cap.inc.c +++ b/src/game/behaviors/cap.inc.c @@ -25,15 +25,15 @@ s32 func_802F0904(void) { void func_802F0978(void) { if (o->oTimer > 300) { - ObjFlickerAndDisappear(o, 300); + obj_flicker_and_disappear(o, 300); } } void func_802F09C0(void) { - if (D_803600E0 == NULL) + if (sObjFloor == NULL) return; - switch (D_803600E0->type) { + switch (sObjFloor->type) { case SURFACE_DEATH_PLANE: o->activeFlags = 0; break; @@ -49,8 +49,8 @@ void func_802F09C0(void) { case SURFACE_SHALLOW_MOVING_QUICKSAND: case SURFACE_MOVING_QUICKSAND: o->oAction = 11; - o->oMoveAngleYaw = (D_803600E0->force & 0xFF) << 8; - o->oForwardVel = -((D_803600E0->force & 0xff00) >> 8) * 2 + 8; + o->oMoveAngleYaw = (sObjFloor->force & 0xFF) << 8; + o->oForwardVel = -((sObjFloor->force & 0xff00) >> 8) * 2 + 8; break; case SURFACE_INSTANT_QUICKSAND: @@ -60,8 +60,8 @@ void func_802F09C0(void) { case SURFACE_INSTANT_MOVING_QUICKSAND: o->oAction = 13; - o->oMoveAngleYaw = (D_803600E0->force & 0xFF) << 8; - o->oForwardVel = -((D_803600E0->force & 0xff00) >> 8) * 2 + 8; + o->oMoveAngleYaw = (sObjFloor->force & 0xFF) << 8; + o->oForwardVel = -((sObjFloor->force & 0xff00) >> 8) * 2 + 8; break; } } @@ -121,7 +121,7 @@ void func_802F0E0C(void) { s16 sp1E; o->oFaceAngleYaw += o->oForwardVel * 128.0f; - sp1E = ObjectStep(); + sp1E = object_step(); if (sp1E & 0x01) { func_802F09C0(); if (o->oVelY != 0.0f) { @@ -141,7 +141,7 @@ void bhv_wing_vanish_cap_loop(void) { break; default: - ObjectStep(); + object_step(); func_802F0B68(); break; } @@ -164,7 +164,7 @@ void func_802F0FE0(void) { s16 sp1E; o->oFaceAngleYaw += o->oForwardVel * 128.0f; - sp1E = ObjectStep(); + sp1E = object_step(); if (sp1E & 0x01) func_802F09C0(); } @@ -176,7 +176,7 @@ void bhv_metal_cap_loop(void) { break; default: - ObjectStep(); + object_step(); func_802F0B68(); break; } @@ -224,7 +224,7 @@ void func_802F1234(void) { o->oFaceAngleYaw += o->oForwardVel * 128.0f; o->oFaceAnglePitch += o->oForwardVel * 80.0f; - sp1E = ObjectStep(); + sp1E = object_step(); if (sp1E & 0x01) { func_802F09C0(); @@ -246,7 +246,7 @@ void bhv_normal_cap_loop(void) { break; default: - ObjectStep(); + object_step(); func_802F0B68(); break; } diff --git a/src/game/behaviors/controllable_platform.inc.c b/src/game/behaviors/controllable_platform.inc.c index 91b81bd..1f506ec 100644 --- a/src/game/behaviors/controllable_platform.inc.c +++ b/src/game/behaviors/controllable_platform.inc.c @@ -30,7 +30,7 @@ void bhv_controllable_platform_sub_loop(void) { if (gMarioObject->platform == o) { D_80331694 = o->oBehParams2ndByte; o->oAction = 1; - PlaySound2(SOUND_GENERAL_SWITCH3); + PlaySound2(SOUND_GENERAL_MOVING_PLATFORM_SWITCH); } break; @@ -167,33 +167,33 @@ void bhv_controllable_platform_loop(void) { case 1: o->oVelZ = 10.0f; - sp54[0] = func_802E478C(sp48, o->oPosX + 250.0, o->oPosY, o->oPosZ + 300.0, 50.0f); - sp54[1] = func_802E478C(sp3C, o->oPosX, o->oPosY, o->oPosZ + 300.0, 50.0f); - sp54[2] = func_802E478C(sp30, o->oPosX - 250.0, o->oPosY, o->oPosZ + 300.0, 50.0f); + sp54[0] = obj_find_wall_displacement(sp48, o->oPosX + 250.0, o->oPosY, o->oPosZ + 300.0, 50.0f); + sp54[1] = obj_find_wall_displacement(sp3C, o->oPosX, o->oPosY, o->oPosZ + 300.0, 50.0f); + sp54[2] = obj_find_wall_displacement(sp30, o->oPosX - 250.0, o->oPosY, o->oPosZ + 300.0, 50.0f); func_802F3FD8(2, sp54, sp48, sp3C, sp30); break; case 2: o->oVelZ = -10.0f; - sp54[0] = func_802E478C(sp48, o->oPosX + 250.0, o->oPosY, o->oPosZ - 300.0, 50.0f); - sp54[1] = func_802E478C(sp3C, o->oPosX, o->oPosY, o->oPosZ - 300.0, 50.0f); - sp54[2] = func_802E478C(sp30, o->oPosX - 250.0, o->oPosY, o->oPosZ - 300.0, 50.0f); + sp54[0] = obj_find_wall_displacement(sp48, o->oPosX + 250.0, o->oPosY, o->oPosZ - 300.0, 50.0f); + sp54[1] = obj_find_wall_displacement(sp3C, o->oPosX, o->oPosY, o->oPosZ - 300.0, 50.0f); + sp54[2] = obj_find_wall_displacement(sp30, o->oPosX - 250.0, o->oPosY, o->oPosZ - 300.0, 50.0f); func_802F3FD8(1, sp54, sp48, sp3C, sp30); break; case 3: o->oVelX = 10.0f; - sp54[0] = func_802E478C(sp48, o->oPosX + 300.0, o->oPosY, o->oPosZ + 250.0, 50.0f); - sp54[1] = func_802E478C(sp3C, o->oPosX + 300.0, o->oPosY, o->oPosZ, 50.0f); - sp54[2] = func_802E478C(sp30, o->oPosX + 300.0, o->oPosY, o->oPosZ - 250.0, 50.0f); + sp54[0] = obj_find_wall_displacement(sp48, o->oPosX + 300.0, o->oPosY, o->oPosZ + 250.0, 50.0f); + sp54[1] = obj_find_wall_displacement(sp3C, o->oPosX + 300.0, o->oPosY, o->oPosZ, 50.0f); + sp54[2] = obj_find_wall_displacement(sp30, o->oPosX + 300.0, o->oPosY, o->oPosZ - 250.0, 50.0f); func_802F3FD8(4, sp54, sp48, sp3C, sp30); break; case 4: o->oVelX = -10.0f; - sp54[0] = func_802E478C(sp48, o->oPosX - 300.0, o->oPosY, o->oPosZ + 250.0, 50.0f); - sp54[1] = func_802E478C(sp3C, o->oPosX - 300.0, o->oPosY, o->oPosZ, 50.0f); - sp54[2] = func_802E478C(sp30, o->oPosX - 300.0, o->oPosY, o->oPosZ - 250.0, 50.0f); + sp54[0] = obj_find_wall_displacement(sp48, o->oPosX - 300.0, o->oPosY, o->oPosZ + 250.0, 50.0f); + sp54[1] = obj_find_wall_displacement(sp3C, o->oPosX - 300.0, o->oPosY, o->oPosZ, 50.0f); + sp54[2] = obj_find_wall_displacement(sp30, o->oPosX - 300.0, o->oPosY, o->oPosZ - 250.0, 50.0f); func_802F3FD8(3, sp54, sp48, sp3C, sp30); break; @@ -203,7 +203,7 @@ void bhv_controllable_platform_loop(void) { break; case 6: - if (ObjFlickerAndDisappear(o, 150)) + if (obj_flicker_and_disappear(o, 150)) spawn_object_abs_with_rot(o, 0, MODEL_HMC_METAL_PLATFORM, bhvControllablePlatform, o->oHomeX, o->oHomeY, o->oHomeZ, 0, 0, 0); break; diff --git a/src/game/behaviors/eyerok.inc.c b/src/game/behaviors/eyerok.inc.c index ba1b628..0179925 100644 --- a/src/game/behaviors/eyerok.inc.c +++ b/src/game/behaviors/eyerok.inc.c @@ -63,7 +63,7 @@ static void eyerok_boss_act_wake_up(void) { } static void eyerok_boss_act_show_intro_text(void) { - if (obj_update_dialog_with_cutscene(2, 0, CUTSCENE_DIALOG_1, 117)) { + if (obj_update_dialog_with_cutscene(2, 0, CUTSCENE_DIALOG_1, DIALOG_117)) { o->oAction = EYEROK_BOSS_ACT_FIGHT; } } @@ -117,7 +117,7 @@ static void eyerok_boss_act_fight(void) { static void eyerok_boss_act_die(void) { if (o->oTimer == 60) { - if (obj_update_dialog_with_cutscene(2, 0, CUTSCENE_DIALOG_1, 118)) { + if (obj_update_dialog_with_cutscene(2, 0, CUTSCENE_DIALOG_1, DIALOG_118)) { create_star(0.0f, -900.0f, -3700.0f); } else { o->oTimer -= 1; diff --git a/src/game/behaviors/falling_pillar.inc.c b/src/game/behaviors/falling_pillar.inc.c index 787ec64..a9960c2 100644 --- a/src/game/behaviors/falling_pillar.inc.c +++ b/src/game/behaviors/falling_pillar.inc.c @@ -79,7 +79,7 @@ void bhv_falling_pillar_loop(void) { break; case FALLING_PILLAR_ACT_TURNING: - func_802E4204(); + object_step_without_floor_orient(); // Calculate angle in front of Mario and turn towards it. angleInFrontOfMario = bhv_falling_pillar_calculate_angle_in_front_of_mario(); @@ -91,7 +91,7 @@ void bhv_falling_pillar_loop(void) { break; case FALLING_PILLAR_ACT_FALLING: - func_802E4204(); + object_step_without_floor_orient(); // Start falling slowly, with increasing acceleration each frame. o->oFallingPillarPitchAcceleration += 4.0f; diff --git a/src/game/behaviors/hidden_star.inc.c b/src/game/behaviors/hidden_star.inc.c index 78f7998..ccd8a36 100644 --- a/src/game/behaviors/hidden_star.inc.c +++ b/src/game/behaviors/hidden_star.inc.c @@ -40,7 +40,7 @@ void bhv_hidden_star_trigger_loop(void) { if (hiddenStar != NULL) { hiddenStar->oHiddenStarTriggerCounter++; if (hiddenStar->oHiddenStarTriggerCounter != 5) { - SpawnOrangeNumber(hiddenStar->oHiddenStarTriggerCounter, 0, 0, 0); + spawn_orange_number(hiddenStar->oHiddenStarTriggerCounter, 0, 0, 0); } #ifdef VERSION_JP diff --git a/src/game/behaviors/hoot.inc.c b/src/game/behaviors/hoot.inc.c index cc3c1a0..b3f753d 100644 --- a/src/game/behaviors/hoot.inc.c +++ b/src/game/behaviors/hoot.inc.c @@ -188,7 +188,7 @@ void HootActionLoop(void) { if (o->oPosY < 2700.0f) { set_time_stop_flags(TIME_STOP_ENABLED | TIME_STOP_MARIO_AND_DOORS); - if (cutscene_object_with_dialog(CUTSCENE_DIALOG_1, o, 45)) { + if (cutscene_object_with_dialog(CUTSCENE_DIALOG_1, o, DIALOG_045)) { clear_time_stop_flags(TIME_STOP_ENABLED | TIME_STOP_MARIO_AND_DOORS); o->oAction = HOOT_ACT_TIRED; @@ -240,7 +240,7 @@ void HootAwakeLoop(void) { o->oTimer = 0; } - SetObjectVisibility(o, 2000); + set_object_visibility(o, 2000); } void bhv_hoot_loop(void) { @@ -255,7 +255,7 @@ void bhv_hoot_loop(void) { case HOOT_AVAIL_WANTS_TO_TALK: HootAwakeLoop(); - if (set_mario_npc_dialog(2) == 2 && cutscene_object_with_dialog(CUTSCENE_DIALOG_1, o, 44)) { + if (set_mario_npc_dialog(2) == 2 && cutscene_object_with_dialog(CUTSCENE_DIALOG_1, o, DIALOG_044)) { set_mario_npc_dialog(0); obj_become_tangible(); diff --git a/src/game/behaviors/king_bobomb.inc.c b/src/game/behaviors/king_bobomb.inc.c index 382591f..5cc3669 100644 --- a/src/game/behaviors/king_bobomb.inc.c +++ b/src/game/behaviors/king_bobomb.inc.c @@ -19,7 +19,7 @@ void ActionKingBobomb0(void) { o->oSubAction++; func_8031FFB4(0, 60, 40); } - } else if (obj_update_dialog_with_cutscene(2, 1, CUTSCENE_DIALOG_1, 17)) { + } else if (obj_update_dialog_with_cutscene(2, 1, CUTSCENE_DIALOG_1, DIALOG_017)) { o->oAction = 2; o->oFlags |= OBJ_FLAG_HOLDABLE; } @@ -154,7 +154,7 @@ void ActionKingBobomb6(void) { void ActionKingBobomb7(void) { set_obj_animation_and_sound_state(2); - if (obj_update_dialog_with_cutscene(2, 2, CUTSCENE_DIALOG_1, 116)) { + if (obj_update_dialog_with_cutscene(2, 2, CUTSCENE_DIALOG_1, DIALOG_116)) { create_sound_spawner(SOUND_OBJ_KING_WHOMP_DEATH); obj_hide(); obj_become_intangible(); @@ -246,7 +246,7 @@ void ActionKingBobomb5() { // bobomb returns home o->oSubAction++; break; case 4: - if (obj_update_dialog_with_cutscene(2, 1, CUTSCENE_DIALOG_1, 128)) + if (obj_update_dialog_with_cutscene(2, 1, CUTSCENE_DIALOG_1, DIALOG_128)) o->oAction = 2; break; } diff --git a/src/game/behaviors/klepto.inc.c b/src/game/behaviors/klepto.inc.c index e805263..f9a57a7 100644 --- a/src/game/behaviors/klepto.inc.c +++ b/src/game/behaviors/klepto.inc.c @@ -144,8 +144,10 @@ static void klepto_circle_target(f32 radius, f32 targetSpeed) { o->oKleptoYawToTarget += turnAmount; func_8030F218(); + //! The multiplied value is sometimes out of range for an s16 during the s32 -> s16 cast, + // which might invert sign. turnAmount = - (s16)(abs_angle_diff(o->oKleptoYawToTarget, o->oMoveAngleYaw) * (0.03f * o->oKleptoSpeed)); + (s16)(s32)(abs_angle_diff(o->oKleptoYawToTarget, o->oMoveAngleYaw) * (0.03f * o->oKleptoSpeed)); clamp_s16(&turnAmount, 400, 700); obj_rotate_yaw_and_bounce_off_walls(o->oKleptoYawToTarget, turnAmount); diff --git a/src/game/behaviors/koopa.inc.c b/src/game/behaviors/koopa.inc.c index b1cd79e..88d4268 100644 --- a/src/game/behaviors/koopa.inc.c +++ b/src/game/behaviors/koopa.inc.c @@ -52,7 +52,7 @@ static u8 sKoopaShelledAttackHandlers[] = { */ struct KoopaTheQuickProperties { s16 initText; - s16 unk02; + s16 winText; void *path; Vec3s starPos; }; @@ -61,8 +61,8 @@ struct KoopaTheQuickProperties { * Properties for the BoB race and the THI race. */ static struct KoopaTheQuickProperties sKoopaTheQuickProperties[] = { - { 5, 7, bob_seg7_trajectory_koopa, { 3030, 4500, -4600 } }, - { 9, 31, thi_seg7_trajectory_koopa, { 7100, -1300, -6000 } } + { DIALOG_005, DIALOG_007, bob_seg7_trajectory_koopa, { 3030, 4500, -4600 } }, + { DIALOG_009, DIALOG_031, thi_seg7_trajectory_koopa, { 7100, -1300, -6000 } } }; /** @@ -717,15 +717,15 @@ static void koopa_the_quick_act_after_race(void) { if (o->parentObj->oKoopaRaceEndpointRaceStatus < 0) { // Mario cheated o->parentObj->oKoopaRaceEndpointRaceStatus = 0; - o->parentObj->oKoopaRaceEndpointUnk100 = 6; + o->parentObj->oKoopaRaceEndpointUnk100 = DIALOG_006; } else { // Mario won o->parentObj->oKoopaRaceEndpointUnk100 = - sKoopaTheQuickProperties[o->oKoopaTheQuickRaceIndex].unk02; + sKoopaTheQuickProperties[o->oKoopaTheQuickRaceIndex].winText; } } else { // KtQ won - o->parentObj->oKoopaRaceEndpointUnk100 = 41; + o->parentObj->oKoopaRaceEndpointUnk100 = DIALOG_041; } o->oFlags &= ~OBJ_FLAG_ACTIVE_FROM_AFAR; diff --git a/src/game/behaviors/lll_tilting_platform.inc.c b/src/game/behaviors/lll_tilting_platform.inc.c deleted file mode 100644 index b7454e6..0000000 --- a/src/game/behaviors/lll_tilting_platform.inc.c +++ /dev/null @@ -1,94 +0,0 @@ -// lll_tilting_platform.c.inc - -void func_802BC544(Mat4 a0, f32 a1, f32 a2, f32 a3) { - Vec3f sp24; - Vec3f sp18; - sp18[0] = o->oPosX; - sp18[1] = o->oPosY; - sp18[2] = o->oPosZ; - sp24[0] = a1; - sp24[1] = a2; - sp24[2] = a3; - mtxf_align_terrain_normal(a0, sp24, sp18, 0); -} - -void bhv_tilting_platform_init(void) { - Mat4 *sp1C = &o->transform; - o->oTiltingPlatformUnkF4 = 0.0f; - o->oTiltingPlatformUnkF8 = 1.0f; - o->oTiltingPlatformUnkFC = 0.0f; - func_802BC544(*sp1C, 0.0f, 1.0f, 0.0f); -} - -f32 func_802BC66C(f32 a0, f32 a1, f32 a2) { - f32 sp4; - if (a1 <= a0) { - if (a0 - a1 < a2) - sp4 = a0; - else - sp4 = a1 + a2; - } else if (a0 - a1 > -a2) - sp4 = a0; - else - sp4 = a1 - a2; - return sp4; -} - -void bhv_tilting_platform_loop(void) { - f32 dx; - f32 dy; - f32 dz; - f32 d; - Vec3f dist; - Vec3f sp58; - Vec3f sp4C; - f32 mx; - f32 my; - f32 mz; - s32 sp3C = 0; - UNUSED s32 unused; - Mat4 *sp34 = &o->transform; - UNUSED s32 unused2[7]; - if (gMarioObject->platform == o) { - get_mario_pos(&mx, &my, &mz); - dist[0] = gMarioObject->oPosX - o->oPosX; - dist[1] = gMarioObject->oPosY - o->oPosY; - dist[2] = gMarioObject->oPosZ - o->oPosZ; - linear_mtxf_mul_vec3f(*sp34, sp58, dist); - dx = gMarioObject->oPosX - o->oPosX; - dy = 500.0f; - dz = gMarioObject->oPosZ - o->oPosZ; - d = sqrtf(dx * dx + dy * dy + dz * dz); - if (d != 0.0f) // Normalizing - { - d = 1.0 / d; - dx *= d; - dy *= d; - dz *= d; - } else { - dx = 0.0f; - dy = 1.0f; - dz = 0.0f; - } - if (o->oTiltingPlatformUnk10C == 1) - sp3C++; - o->oTiltingPlatformUnk10C = 1; - } else { - dx = 0.0f; - dy = 1.0f; - dz = 0.0f; - o->oTiltingPlatformUnk10C = 0; - } - o->oTiltingPlatformUnkF4 = func_802BC66C(dx, o->oTiltingPlatformUnkF4, 0.01f); - o->oTiltingPlatformUnkF8 = func_802BC66C(dy, o->oTiltingPlatformUnkF8, 0.01f); - o->oTiltingPlatformUnkFC = func_802BC66C(dz, o->oTiltingPlatformUnkFC, 0.01f); - func_802BC544(*sp34, o->oTiltingPlatformUnkF4, o->oTiltingPlatformUnkF8, o->oTiltingPlatformUnkFC); - if (sp3C != 0) { - linear_mtxf_mul_vec3f(*sp34, sp4C, dist); - mx += sp4C[0] - sp58[0]; - my += sp4C[1] - sp58[1]; - mz += sp4C[2] - sp58[2]; - set_mario_pos(mx, my, mz); - } - o->header.gfx.throwMatrix = sp34; -} diff --git a/src/game/behaviors/mips.inc.c b/src/game/behaviors/mips.inc.c index b6a0ca2..a3b7f19 100644 --- a/src/game/behaviors/mips.inc.c +++ b/src/game/behaviors/mips.inc.c @@ -66,7 +66,7 @@ s16 bhv_mips_find_furthest_waypoint_to_mario(void) { z = waypoint->pos[2]; // Is the waypoint within 800 units of MIPS? - if (IsPointCloseToObject(o, x, y, z, 800)) { + if (is_point_close_to_object(o, x, y, z, 800)) { // Is this further from Mario than the last waypoint? distanceToMario = sqr(x - gMarioObject->header.gfx.pos[0]) + sqr(z - gMarioObject->header.gfx.pos[2]); @@ -89,7 +89,7 @@ void bhv_mips_act_wait_for_nearby_mario(void) { UNUSED s16 collisionFlags = 0; o->oForwardVel = 0.0f; - collisionFlags = ObjectStep(); + collisionFlags = object_step(); // If Mario is within 500 units... if (is_point_within_radius_of_mario(o->oPosX, o->oPosY, o->oPosZ, 500)) { @@ -129,7 +129,7 @@ void bhv_mips_act_follow_path(void) { o->oForwardVel = 45.0f; #endif o->oMoveAngleYaw = o->oPathedTargetYaw; - collisionFlags = ObjectStep(); + collisionFlags = object_step(); // If we are at the end of the path, do idle animation and wait for Mario. if (followStatus == PATH_REACHED_END) { @@ -166,7 +166,7 @@ void bhv_mips_act_fall_down(void) { s16 collisionFlags = 0; #endif - collisionFlags = ObjectStep(); + collisionFlags = object_step(); o->header.gfx.unk38.animFrame = 0; if ((collisionFlags & OBJ_COL_FLAG_GROUNDED) == 1) { @@ -187,7 +187,7 @@ void bhv_mips_act_idle(void) { UNUSED s16 collisionFlags = 0; o->oForwardVel = 0; - collisionFlags = ObjectStep(); + collisionFlags = object_step(); // Spawn a star if he was just picked up for the first time. if (o->oMipsStarStatus == MIPS_STAR_STATUS_SHOULD_SPAWN_STAR) { @@ -238,9 +238,9 @@ void bhv_mips_held(void) { if (o->oMipsStarStatus == MIPS_STAR_STATUS_HAVENT_SPAWNED_STAR) { // Choose dialog based on which MIPS encounter this is. if (o->oBehParams2ndByte == 0) - dialogID = 84; + dialogID = DIALOG_084; else - dialogID = 162; + dialogID = DIALOG_162; if (set_mario_npc_dialog(1) == 2) { o->activeFlags |= ACTIVE_FLAG_INITIATED_TIME_STOP; diff --git a/src/game/behaviors/moneybag.inc.c b/src/game/behaviors/moneybag.inc.c index 89d00e5..169ebbf 100644 --- a/src/game/behaviors/moneybag.inc.c +++ b/src/game/behaviors/moneybag.inc.c @@ -110,9 +110,9 @@ void MoneybagJump(s8 collisionFlags) { void MoneybagMoveAroundLoop(void) { s16 collisionFlags; - ObjDisplaceHome(o, o->oHomeX, o->oHomeY, o->oHomeZ, 200); + obj_return_and_displace_home(o, o->oHomeX, o->oHomeY, o->oHomeZ, 200); - collisionFlags = ObjectStep(); + collisionFlags = object_step(); if (((collisionFlags & OBJ_COL_FLAGS_LANDED) == OBJ_COL_FLAGS_LANDED) && (o->oMoneybagJumpState == MONEYBAG_JUMP_LANDING)) { @@ -138,7 +138,7 @@ void MoneybagReturnHomeLoop(void) { s16 sp22 = atan2s(sp24, sp28); o->oMoveAngleYaw = approach_s16_symmetric(o->oMoveAngleYaw, sp22, 0x800); - collisionFlags = ObjectStep(); + collisionFlags = object_step(); if (((collisionFlags & OBJ_COL_FLAGS_LANDED) == OBJ_COL_FLAGS_LANDED) && (o->oMoneybagJumpState == MONEYBAG_JUMP_LANDING)) o->oMoneybagJumpState = MONEYBAG_JUMP_WALK_HOME; @@ -146,7 +146,7 @@ void MoneybagReturnHomeLoop(void) { MoneybagJump(collisionFlags); MoneybagCheckMarioCollision(); - if (IsPointCloseToObject(o, o->oHomeX, o->oHomeY, o->oHomeZ, 100)) { + if (is_point_close_to_object(o, o->oHomeX, o->oHomeY, o->oHomeZ, 100)) { spawn_object(o, MODEL_YELLOW_COIN, bhvMoneybagHidden); #ifndef VERSION_JP PlaySound2(SOUND_GENERAL_VANISH_SFX); @@ -172,7 +172,7 @@ void MoneybagDisappearLoop(void) { void MoneybagDeathLoop(void) { if (o->oTimer == 1) { - ObjSpawnYellowCoins(o, 5); + obj_spawn_yellow_coins(o, 5); create_sound_spawner(SOUND_GENERAL_SPLATTERING); func_802A3004(); o->activeFlags = 0; diff --git a/src/game/behaviors/moving_coin.inc.c b/src/game/behaviors/moving_coin.inc.c index c0704c0..404d22d 100644 --- a/src/game/behaviors/moving_coin.inc.c +++ b/src/game/behaviors/moving_coin.inc.c @@ -27,9 +27,9 @@ static struct ObjectHitbox sMovingBlueCoinHitbox = { }; s32 CoinStep(s16 *collisionFlagsPtr) { - *collisionFlagsPtr = ObjectStep(); + *collisionFlagsPtr = object_step(); - ObjCheckFloorDeath(*collisionFlagsPtr, D_803600E0); + obj_check_floor_death(*collisionFlagsPtr, sObjFloor); if ((*collisionFlagsPtr & 0x1) != 0 && (*collisionFlagsPtr & 0x8) == 0) /* bit 0, bit 3 */ { @@ -44,7 +44,7 @@ void MovingCoinFlickerLoop(void) { s16 collisionFlags; CoinStep(&collisionFlags); - ObjFlickerAndDisappear(o, 0); + obj_flicker_and_disappear(o, 0); } void CoinCollected(void) { @@ -117,7 +117,7 @@ void bhv_moving_blue_coin_loop(void) { break; case MOV_BCOIN_ACT_MOVING: - collisionFlags = ObjectStep(); + collisionFlags = object_step(); if ((collisionFlags & 0x1) != 0) /* bit 0 */ { o->oForwardVel += 25.0f; @@ -129,7 +129,7 @@ void bhv_moving_blue_coin_loop(void) { if (o->oForwardVel > 75.0) o->oForwardVel = 75.0f; - ObjFlickerAndDisappear(o, 600); + obj_flicker_and_disappear(o, 600); break; } @@ -183,7 +183,7 @@ void bhv_blue_coin_sliding_loop(void) { if (is_point_within_radius_of_mario(o->oPosX, o->oPosY, o->oPosZ, 500) == 1) o->oAction = 1; - SetObjectVisibility(o, 3000); + set_object_visibility(o, 3000); break; case 1: @@ -192,7 +192,7 @@ void bhv_blue_coin_sliding_loop(void) { case 2: func_802E54DC(); - SetObjectVisibility(o, 3000); + set_object_visibility(o, 3000); break; case 3: @@ -231,7 +231,7 @@ void bhv_blue_coin_jumping_loop(void) { o->oVelY = 50.0; } - ObjectStep(); + object_step(); if (o->oTimer == 15) { obj_become_tangible(); @@ -245,7 +245,7 @@ void bhv_blue_coin_jumping_loop(void) { case 2: func_802E54DC(); - SetObjectVisibility(o, 3000); + set_object_visibility(o, 3000); break; case 3: diff --git a/src/game/behaviors/mushroom_1up.inc.c b/src/game/behaviors/mushroom_1up.inc.c index 692877c..1d1d553 100644 --- a/src/game/behaviors/mushroom_1up.inc.c +++ b/src/game/behaviors/mushroom_1up.inc.c @@ -64,7 +64,7 @@ void func_802F2F8C(s16 sp1A) { } void bhv_1up_walking_loop(void) { - ObjectStep(); + object_step(); switch (o->oAction) { case 0: @@ -91,18 +91,18 @@ void bhv_1up_walking_loop(void) { break; case 2: - ObjFlickerAndDisappear(o, 30); + obj_flicker_and_disappear(o, 30); bhv_1up_interact(); break; } - SetObjectVisibility(o, 3000); + set_object_visibility(o, 3000); } void bhv_1up_running_away_loop(void) { s16 sp26; - sp26 = ObjectStep(); + sp26 = object_step(); switch (o->oAction) { case 0: if (o->oTimer >= 18) @@ -126,18 +126,18 @@ void bhv_1up_running_away_loop(void) { break; case 2: - ObjFlickerAndDisappear(o, 30); + obj_flicker_and_disappear(o, 30); bhv_1up_interact(); break; } - SetObjectVisibility(o, 3000); + set_object_visibility(o, 3000); } void func_802F3328(void) { s16 sp1E; - sp1E = ObjectStep(); + sp1E = object_step(); if (sp1E & 0x01) { o->oForwardVel += 25.0f; o->oVelY = 0; @@ -155,7 +155,7 @@ void func_802F3328(void) { void bhv_1up_sliding_loop(void) { switch (o->oAction) { case 0: - SetObjectVisibility(o, 3000); + set_object_visibility(o, 3000); if (is_point_within_radius_of_mario(o->oPosX, o->oPosY, o->oPosZ, 1000)) o->oAction = 1; break; @@ -165,7 +165,7 @@ void bhv_1up_sliding_loop(void) { break; case 2: - ObjFlickerAndDisappear(o, 30); + obj_flicker_and_disappear(o, 30); bhv_1up_interact(); break; } @@ -176,7 +176,7 @@ void bhv_1up_sliding_loop(void) { void bhv_1up_loop(void) { bhv_1up_interact(); - SetObjectVisibility(o, 3000); + set_object_visibility(o, 3000); } void bhv_1up_jump_on_approach_loop(void) { @@ -191,19 +191,19 @@ void bhv_1up_jump_on_approach_loop(void) { break; case 1: - sp26 = ObjectStep(); + sp26 = object_step(); func_802F2F8C(sp26); spawn_object(o, MODEL_NONE, bhvSparkleSpawn); break; case 2: - sp26 = ObjectStep(); + sp26 = object_step(); bhv_1up_interact(); - ObjFlickerAndDisappear(o, 30); + obj_flicker_and_disappear(o, 30); break; } - SetObjectVisibility(o, 3000); + set_object_visibility(o, 3000); } void bhv_1up_hidden_loop(void) { @@ -220,19 +220,19 @@ void bhv_1up_hidden_loop(void) { break; case 1: - sp26 = ObjectStep(); + sp26 = object_step(); func_802F2F8C(sp26); spawn_object(o, MODEL_NONE, bhvSparkleSpawn); break; case 2: - sp26 = ObjectStep(); + sp26 = object_step(); bhv_1up_interact(); - ObjFlickerAndDisappear(o, 30); + obj_flicker_and_disappear(o, 30); break; case 3: - sp26 = ObjectStep(); + sp26 = object_step(); if (o->oTimer >= 18) spawn_object(o, MODEL_NONE, bhvSparkleSpawn); @@ -273,11 +273,11 @@ void bhv_1up_hidden_in_pole_loop(void) { case 1: func_802F2E18(); - sp26 = ObjectStep(); + sp26 = object_step(); break; case 3: - sp26 = ObjectStep(); + sp26 = object_step(); if (o->oTimer >= 18) spawn_object(o, MODEL_NONE, bhvSparkleSpawn); diff --git a/src/game/behaviors/pyramid_top.inc.c b/src/game/behaviors/pyramid_top.inc.c index add8319..1907124 100644 --- a/src/game/behaviors/pyramid_top.inc.c +++ b/src/game/behaviors/pyramid_top.inc.c @@ -132,7 +132,7 @@ void bhv_pyramid_top_fragment_init(void) { * deactivate it. */ void bhv_pyramid_top_fragment_loop(void) { - ObjectStep(); + object_step(); o->oFaceAngleYaw += 0x1000; o->oFaceAnglePitch += 0x1000; diff --git a/src/game/behaviors/racing_penguin.inc.c b/src/game/behaviors/racing_penguin.inc.c index b20081d..c6c6877 100644 --- a/src/game/behaviors/racing_penguin.inc.c +++ b/src/game/behaviors/racing_penguin.inc.c @@ -5,8 +5,8 @@ struct RacingPenguinData { }; static struct RacingPenguinData sRacingPenguinData[] = { - { 55, 200.0f, 200.0f }, - { 164, 350.0f, 250.0f }, + { DIALOG_055, 200.0f, 200.0f }, + { DIALOG_164, 350.0f, 250.0f }, }; void bhv_racing_penguin_init(void) { @@ -125,13 +125,13 @@ static void racing_penguin_act_show_final_text(void) { if (obj_is_mario_in_range_and_ready_to_speak(400.0f, 400.0f)) { if (o->oRacingPenguinMarioWon) { if (o->oRacingPenguinMarioCheated) { - o->oRacingPenguinFinalTextbox = 0x84; + o->oRacingPenguinFinalTextbox = DIALOG_132; o->oRacingPenguinMarioWon = FALSE; } else { - o->oRacingPenguinFinalTextbox = 0x38; + o->oRacingPenguinFinalTextbox = DIALOG_056; } } else { - o->oRacingPenguinFinalTextbox = 0x25; + o->oRacingPenguinFinalTextbox = DIALOG_037; } } } else { diff --git a/src/game/behaviors/red_coin.inc.c b/src/game/behaviors/red_coin.inc.c index 7c04f80..02f3c57 100644 --- a/src/game/behaviors/red_coin.inc.c +++ b/src/game/behaviors/red_coin.inc.c @@ -1,5 +1,12 @@ -// red_coin.c.inc +/** + * This file contains the initialization and behavior for red coins. + * Behavior controls audio and the orange number spawned, as well as interacting with + * the course's red coin star. + */ +/** + * Red coin's hitbox details. + */ static struct ObjectHitbox sRedCoinHitbox = { /* interactType: */ INTERACT_COIN, /* downOffset: */ 0, @@ -12,36 +19,54 @@ static struct ObjectHitbox sRedCoinHitbox = { /* hurtboxHeight: */ 0, }; +/** + * Red coin initialization function. Sets the coin's hitbox and parent object. + */ void bhv_red_coin_init(void) { - struct Surface *sp24; - UNUSED f32 sp20 = find_floor(o->oPosX, o->oPosY, o->oPosZ, &sp24); - struct Object *sp1C; + // This floor and floor height are unused. Perhaps for orange number spawns originally? + struct Surface *dummyFloor; + UNUSED f32 floorHeight = find_floor(o->oPosX, o->oPosY, o->oPosZ, &dummyFloor); - sp1C = obj_nearest_object_with_behavior(bhvHiddenRedCoinStar); - if (sp1C != NULL) - o->parentObj = sp1C; + struct Object *hiddenRedCoinStar; + + // Set the red coins to have a parent of the closest red coin star. + hiddenRedCoinStar = obj_nearest_object_with_behavior(bhvHiddenRedCoinStar); + if (hiddenRedCoinStar != NULL) + o->parentObj = hiddenRedCoinStar; else { - sp1C = obj_nearest_object_with_behavior(bhvBowserCourseRedCoinStar); - if (sp1C != NULL) - o->parentObj = sp1C; - else + hiddenRedCoinStar = obj_nearest_object_with_behavior(bhvBowserCourseRedCoinStar); + if (hiddenRedCoinStar != NULL) { + o->parentObj = hiddenRedCoinStar; + } else { o->parentObj = NULL; + } } set_object_hitbox(o, &sRedCoinHitbox); } +/** + * Main behavior for red coins. Primarily controls coin collection noise and spawning + * the orange number counter. + */ void bhv_red_coin_loop(void) { + // If Mario interacted with the object... if (o->oInteractStatus & INT_STATUS_INTERACTED) { + // ...and there is a red coin star in the level... if (o->parentObj != NULL) { + // ...increment the star's counter. o->parentObj->oHiddenStarTriggerCounter++; + + // For JP version, play an identical sound for all coins. #ifdef VERSION_JP create_sound_spawner(SOUND_GENERAL_RED_COIN); #endif + // Spawn the orange number counter, as long as it isn't the last coin. if (o->parentObj->oHiddenStarTriggerCounter != 8) { - SpawnOrangeNumber(o->parentObj->oHiddenStarTriggerCounter, 0, 0, 0); + spawn_orange_number(o->parentObj->oHiddenStarTriggerCounter, 0, 0, 0); } + // On all versions but the JP version, each coin collected plays a higher noise. #ifndef VERSION_JP play_sound(SOUND_MENU_COLLECT_RED_COIN + (((u8) o->parentObj->oHiddenStarTriggerCounter - 1) << 16), @@ -50,6 +75,7 @@ void bhv_red_coin_loop(void) { } CoinCollected(); + // Despawn the coin. o->oInteractStatus = 0; } } diff --git a/src/game/behaviors/rolling_log.inc.c b/src/game/behaviors/rolling_log.inc.c index 0bb9834..f13908b 100644 --- a/src/game/behaviors/rolling_log.inc.c +++ b/src/game/behaviors/rolling_log.inc.c @@ -35,7 +35,7 @@ void func_802F238C(void) { if (o->oAngleVelPitch < -0x200) o->oAngleVelPitch = -0x200; } else { - if (IsPointCloseToObject(o, o->oHomeX, o->oHomeY, o->oHomeZ, 100)) { + if (is_point_close_to_object(o, o->oHomeX, o->oHomeY, o->oHomeZ, 100)) { if (o->oAngleVelPitch != 0) { if (o->oAngleVelPitch > 0) o->oAngleVelPitch -= 0x10; diff --git a/src/game/behaviors/snowman.inc.c b/src/game/behaviors/snowman.inc.c index 1d441cb..95b601c 100644 --- a/src/game/behaviors/snowman.inc.c +++ b/src/game/behaviors/snowman.inc.c @@ -56,7 +56,7 @@ void func_802EFC44(void) { UNUSED s16 sp1E; o->oPathedStartWaypoint = segmented_to_virtual(&ccm_seg7_trajectory_snowman); - sp26 = func_802E4204(); + sp26 = object_step_without_floor_orient(); sp20 = obj_follow_path(sp20); o->oSnowmansBottomUnkF8 = o->oPathedTargetYaw; o->oMoveAngleYaw = approach_s16_symmetric(o->oMoveAngleYaw, o->oSnowmansBottomUnkF8, 0x400); @@ -66,7 +66,7 @@ void func_802EFC44(void) { if (sp20 == -1) { sp1E = (u16) o->oAngleToMario - (u16) o->oMoveAngleYaw; - if (func_802E46C0(o->oMoveAngleYaw, o->oAngleToMario, 0x2000) == 1 && o->oSnowmansBottomUnk1AC == 1) { + if (obj_check_if_facing_toward_angle(o->oMoveAngleYaw, o->oAngleToMario, 0x2000) == 1 && o->oSnowmansBottomUnk1AC == 1) { o->oSnowmansBottomUnkF8 = o->oAngleToMario; } else { o->oSnowmansBottomUnkF8 = o->oMoveAngleYaw; @@ -78,12 +78,12 @@ void func_802EFC44(void) { void func_802EFDA0(void) { UNUSED s16 sp26; - sp26 = func_802E4204(); + sp26 = object_step_without_floor_orient(); if (o->oForwardVel > 70.0) o->oForwardVel = 70.0f; o->oMoveAngleYaw = approach_s16_symmetric(o->oMoveAngleYaw, o->oSnowmansBottomUnkF8, 0x400); - if (IsPointCloseToObject(o, -4230.0f, -1344.0f, 1813.0f, 300)) { + if (is_point_close_to_object(o, -4230.0f, -1344.0f, 1813.0f, 300)) { func_802AA618(0, 0, 70.0f); o->oMoveAngleYaw = atan2s(1813.0f - o->oPosZ, -4230.0f - o->oPosX); o->oVelY = 80.0f; @@ -104,7 +104,7 @@ void func_802EFDA0(void) { void func_802EFF58(void) { UNUSED s16 sp1E; - sp1E = func_802E4204(); + sp1E = object_step_without_floor_orient(); if ((sp1E & 0x09) == 0x09) { o->oAction = 4; obj_become_intangible(); @@ -125,7 +125,7 @@ void bhv_snowmans_bottom_loop(void) { case 0: if (is_point_within_radius_of_mario(o->oPosX, o->oPosY, o->oPosZ, 400) == 1 && set_mario_npc_dialog(1) == 2) { - sp1E = cutscene_object_with_dialog(CUTSCENE_DIALOG_1, o, 110); + sp1E = cutscene_object_with_dialog(CUTSCENE_DIALOG_1, o, DIALOG_110); if (sp1E) { o->oForwardVel = 10.0f; o->oAction = 1; @@ -156,7 +156,7 @@ void bhv_snowmans_bottom_loop(void) { } func_802EFB2C(); - SetObjectVisibility(o, 8000); + set_object_visibility(o, 8000); obj_scale(o->oSnowmansBottomUnkF4); o->oGraphYOffset = o->oSnowmansBottomUnkF4 * 180.0f; } @@ -190,7 +190,7 @@ void bhv_snowmans_head_loop(void) { switch (o->oAction) { case 0: - if (func_802E4A38(&o->oSnowmansHeadUnkF4, 109, 400.0f, 1)) + if (trigger_obj_dialog_when_facing(&o->oSnowmansHeadUnkF4, DIALOG_109, 400.0f, 1)) o->oAction = 1; break; @@ -198,13 +198,13 @@ void bhv_snowmans_head_loop(void) { break; case 2: - sp1C = func_802E4204(); + sp1C = object_step_without_floor_orient(); if (sp1C & 0x08) o->oAction = 3; break; case 3: - func_802E4204(); + object_step_without_floor_orient(); if (o->oPosY < -994.0f) { o->oPosY = -994.0f; o->oAction = 4; @@ -214,7 +214,7 @@ void bhv_snowmans_head_loop(void) { break; case 4: - if (func_802E4A38(&o->oSnowmansHeadUnkF4, 111, 700.0f, 2)) { + if (trigger_obj_dialog_when_facing(&o->oSnowmansHeadUnkF4, DIALOG_111, 700.0f, 2)) { func_802A3004(); create_star(-4700.0f, -1024.0f, 1890.0f); o->oAction = 1; diff --git a/src/game/behaviors/snowman_wind.inc.c b/src/game/behaviors/snowman_wind.inc.c index bdd028e..fb3d109 100644 --- a/src/game/behaviors/snowman_wind.inc.c +++ b/src/game/behaviors/snowman_wind.inc.c @@ -15,7 +15,7 @@ void bhv_snowman_wind_blowing_loop(void) { o->oSubAction++; func_802B8F7C(&o->oPosX, pos); } else if (o->oSubAction == 1) { - if (obj_update_dialog(2, 2, 153, 0)) + if (obj_update_dialog(2, 2, DIALOG_153, 0)) o->oSubAction++; } else if (o->oDistanceToMario < 1500.0f && absf(gMarioObject->oPosY - o->oHomeY) < 500.0f) { if ((sp32 = o->oAngleToMario - o->oSnowmanWindBlowingUnkF4) > 0) { diff --git a/src/game/behaviors/swoop.inc.c b/src/game/behaviors/swoop.inc.c index 330a74c..d5d7f1c 100644 --- a/src/game/behaviors/swoop.inc.c +++ b/src/game/behaviors/swoop.inc.c @@ -27,7 +27,7 @@ static void swoop_act_idle(void) { set_obj_animation_and_sound_state(1); if (approach_f32_ptr(&o->header.gfx.scale[0], 1.0f, 0.05f) && o->oDistanceToMario < 1500.0f) { - if (obj_rotate_yaw_toward(o->oAngleToMario, 0x320)) { + if (obj_rotate_yaw_toward(o->oAngleToMario, 800)) { PlaySound2(SOUND_OBJ2_SWOOP); o->oAction = SWOOP_ACT_MOVE; o->oVelY = -12.0f; @@ -49,7 +49,7 @@ static void swoop_act_move(void) { if (o->oForwardVel == 0.0f) { // If we haven't started moving yet, begin swooping - if (obj_face_roll_approach(0, 0x9C4)) { + if (obj_face_roll_approach(0, 2500)) { o->oForwardVel = 10.0f; o->oVelY = -10.0f; } @@ -74,23 +74,23 @@ static void swoop_act_move(void) { obj_y_vel_approach(-10.0f, 0.5f); } } else if (o->oMoveFlags & OBJ_MOVE_HIT_WALL) { - // Bounce off walls and get stunned for a second + // Bounce off a wall and don't bounce again for 30 frames. o->oSwoopTargetYaw = obj_reflect_move_angle_off_wall(); o->oSwoopBonkCountdown = 30; } // Tilt upward when approaching mario if ((o->oSwoopTargetPitch = obj_get_pitch_from_vel()) == 0) { - o->oSwoopTargetPitch += o->oForwardVel * 0x1F4; + o->oSwoopTargetPitch += o->oForwardVel * 500; } - obj_move_pitch_approach(o->oSwoopTargetPitch, 0x8C); + obj_move_pitch_approach(o->oSwoopTargetPitch, 140); // Jitter yaw a bit - obj_rotate_yaw_toward(o->oSwoopTargetYaw + (s32)(0xBB8 * coss(0xFA0 * gGlobalTimer)), 0x4B0); - obj_roll_to_match_yaw_turn(o->oSwoopTargetYaw, 0x3000, 0x1F4); + obj_rotate_yaw_toward(o->oSwoopTargetYaw + (s32)(3000 * coss(4000 * gGlobalTimer)), 1200); + obj_roll_to_match_yaw_turn(o->oSwoopTargetYaw, 0x3000, 500); // Jitter roll a bit - o->oFaceAngleRoll += (s32)(0x3E8 * coss(0x4E20 * gGlobalTimer)); + o->oFaceAngleRoll += (s32)(1000 * coss(20000 * gGlobalTimer)); } } diff --git a/src/game/behaviors/tilting_inverted_pyramid.inc.c b/src/game/behaviors/tilting_inverted_pyramid.inc.c new file mode 100644 index 0000000..ebce64f --- /dev/null +++ b/src/game/behaviors/tilting_inverted_pyramid.inc.c @@ -0,0 +1,138 @@ +/** + * This is the behavior file for the tilting inverted pyramids in BitFS/LLL. + * The object essentially just tilts and moves Mario with it. + */ + +/** + * Creates a transform matrix on a variable passed in from given normals + * and the object's position. + */ +void create_transform_from_normals(Mat4 transform, f32 xNorm, f32 yNorm, f32 zNorm) { + Vec3f normal; + Vec3f pos; + + pos[0] = o->oPosX; + pos[1] = o->oPosY; + pos[2] = o->oPosZ; + + normal[0] = xNorm; + normal[1] = yNorm; + normal[2] = zNorm; + + mtxf_align_terrain_normal(transform, normal, pos, 0); +} + +/** + * Initialize the object's transform matrix with Y being up. + */ +void bhv_platform_normals_init(void) { + Mat4 *transform = &o->transform; + + o->oTiltingPyramidNormalX = 0.0f; + o->oTiltingPyramidNormalY = 1.0f; + o->oTiltingPyramidNormalZ = 0.0f; + + create_transform_from_normals(*transform, 0.0f, 1.0f, 0.0f); +} + +/** + * Returns a value that is src incremented/decremented by inc towards goal + * until goal is reached. Does not overshoot. + */ +f32 approach_by_increment(f32 goal, f32 src, f32 inc) { + f32 newVal; + + if (src <= goal) { + if (goal - src < inc) { + newVal = goal; + } else { + newVal = src + inc; + } + } else if (goal - src > -inc) { + newVal = goal; + } else { + newVal = src - inc; + } + + return newVal; +} + +/** + * Main behavior for the tilting pyramids in LLL/BitFS. These platforms calculate rough normals from Mario's position, + * then gradually tilt back moving Mario with them. + */ +void bhv_tilting_inverted_pyramid_loop(void) { + f32 dx; + f32 dy; + f32 dz; + f32 d; + + Vec3f dist; + Vec3f posBeforeRotation; + Vec3f posAfterRotation; + + // Mario's position + f32 mx; + f32 my; + f32 mz; + + s32 marioOnPlatform = FALSE; + UNUSED s32 unused; + Mat4 *transform = &o->transform; + UNUSED s32 unused2[7]; + + if (gMarioObject->platform == o) { + get_mario_pos(&mx, &my, &mz); + + dist[0] = gMarioObject->oPosX - o->oPosX; + dist[1] = gMarioObject->oPosY - o->oPosY; + dist[2] = gMarioObject->oPosZ - o->oPosZ; + linear_mtxf_mul_vec3f(*transform, posBeforeRotation, dist); + + dx = gMarioObject->oPosX - o->oPosX; + dy = 500.0f; + dz = gMarioObject->oPosZ - o->oPosZ; + d = sqrtf(dx * dx + dy * dy + dz * dz); + + //! Always true since dy = 500, making d >= 500. + if (d != 0.0f) { + // Normalizing + d = 1.0 / d; + dx *= d; + dy *= d; + dz *= d; + } else { + dx = 0.0f; + dy = 1.0f; + dz = 0.0f; + } + + if (o->oTiltingPyramidMarioOnPlatform == TRUE) + marioOnPlatform++; + + o->oTiltingPyramidMarioOnPlatform = TRUE; + } else { + dx = 0.0f; + dy = 1.0f; + dz = 0.0f; + o->oTiltingPyramidMarioOnPlatform = FALSE; + } + + // Approach the normals by 0.01f towards the new goal, then create a transform matrix and orient the object. + // Outside of the other conditionals since it needs to tilt regardless of whether Mario is on. + o->oTiltingPyramidNormalX = approach_by_increment(dx, o->oTiltingPyramidNormalX, 0.01f); + o->oTiltingPyramidNormalY = approach_by_increment(dy, o->oTiltingPyramidNormalY, 0.01f); + o->oTiltingPyramidNormalZ = approach_by_increment(dz, o->oTiltingPyramidNormalZ, 0.01f); + create_transform_from_normals(*transform, o->oTiltingPyramidNormalX, o->oTiltingPyramidNormalY, o->oTiltingPyramidNormalZ); + + // If Mario is on the platform, adjust his position for the platform tilt. + if (marioOnPlatform != FALSE) { + linear_mtxf_mul_vec3f(*transform, posAfterRotation, dist); + mx += posAfterRotation[0] - posBeforeRotation[0]; + my += posAfterRotation[1] - posBeforeRotation[1]; + mz += posAfterRotation[2] - posBeforeRotation[2]; + set_mario_pos(mx, my, mz); + } + + o->header.gfx.throwMatrix = transform; +} diff --git a/src/game/behaviors/treasure_chest.inc.c b/src/game/behaviors/treasure_chest.inc.c index 60319d3..571ad6f 100644 --- a/src/game/behaviors/treasure_chest.inc.c +++ b/src/game/behaviors/treasure_chest.inc.c @@ -39,7 +39,7 @@ void bhv_treasure_chest_top_loop(void) { o->oFaceAnglePitch = -0x4000; o->oAction++; if (o->parentObj->oBehParams2ndByte != 4) - SpawnOrangeNumber(o->parentObj->oBehParams2ndByte, 0, -40, 0); + spawn_orange_number(o->parentObj->oBehParams2ndByte, 0, -40, 0); } break; @@ -65,7 +65,7 @@ void bhv_treasure_chest_bottom_init(void) { void bhv_treasure_chest_bottom_loop(void) { switch (o->oAction) { case 0: - if (func_802E46C0(o->oMoveAngleYaw, gMarioObject->header.gfx.angle[1] + 0x8000, 0x3000)) { + if (obj_check_if_facing_toward_angle(o->oMoveAngleYaw, gMarioObject->header.gfx.angle[1] + 0x8000, 0x3000)) { if (is_point_within_radius_of_mario(o->oPosX, o->oPosY, o->oPosZ, 150)) { if (!o->parentObj->oTreasureChestUnkF8) { if (o->parentObj->oTreasureChestUnkF4 == o->oBehParams2ndByte) { diff --git a/src/game/behaviors/ttc_pendulum.inc.c b/src/game/behaviors/ttc_pendulum.inc.c index a91f882..0f94d00 100644 --- a/src/game/behaviors/ttc_pendulum.inc.c +++ b/src/game/behaviors/ttc_pendulum.inc.c @@ -36,7 +36,7 @@ void bhv_ttc_pendulum_update(void) { // Play sound if (o->oTTCPendulumSoundTimer != 0) { if (--o->oTTCPendulumSoundTimer == 0) { - PlaySound2(SOUND_GENERAL_SWITCH1); + PlaySound2(SOUND_GENERAL_PENDULUM_SWING); } } diff --git a/src/game/behaviors/tuxie.inc.c b/src/game/behaviors/tuxie.inc.c index b83b857..2a28b1b 100644 --- a/src/game/behaviors/tuxie.inc.c +++ b/src/game/behaviors/tuxie.inc.c @@ -62,11 +62,11 @@ void ActionTuxiesMother1(void) { sp2C = (o->oBehParams >> 0x10) & 0xFF; sp28 = (o->prevObj->oBehParams >> 0x10) & 0xFF; if (sp2C == sp28) - dialogID = 58; + dialogID = DIALOG_058; else - dialogID = 59; + dialogID = DIALOG_059; if (obj_update_dialog_with_cutscene(2, 1, CUTSCENE_DIALOG_1, dialogID)) { - if (dialogID == 58) + if (dialogID == DIALOG_058) o->oSubAction = 1; else o->oSubAction = 2; @@ -128,7 +128,7 @@ void ActionTuxiesMother0(void) { o->oSubAction++; break; case 1: - if (obj_update_dialog_with_cutscene(2, 1, CUTSCENE_DIALOG_1, 57)) + if (obj_update_dialog_with_cutscene(2, 1, CUTSCENE_DIALOG_1, DIALOG_057)) o->oSubAction++; break; case 2: @@ -294,7 +294,7 @@ void bhv_small_penguin_loop(void) { /** Geo switch logic for Tuxie's mother's eyes. Cases 0-4. Interestingly, case * 4 is unused, and is the eye state seen in Shoshinkai 1995 footage. */ -s32 geo_switch_tuxie_mother_eyes(s32 run, struct GraphNode *node, UNUSED Mat4 *mtx) { +Gfx *geo_switch_tuxie_mother_eyes(s32 run, struct GraphNode *node, UNUSED Mat4 *mtx) { struct Object *obj; struct GraphNodeSwitchCase *switchCase; s32 timer; @@ -323,5 +323,5 @@ s32 geo_switch_tuxie_mother_eyes(s32 run, struct GraphNode *node, UNUSED Mat4 *m if (obj->oForwardVel > 5.0f) switchCase->selectedCase = 3; } - return 0; + return NULL; } diff --git a/src/game/behaviors/ukiki.inc.c b/src/game/behaviors/ukiki.inc.c index 758ec10..589241f 100644 --- a/src/game/behaviors/ukiki.inc.c +++ b/src/game/behaviors/ukiki.inc.c @@ -384,7 +384,7 @@ void ukiki_act_go_to_cage(void) { case UKIKI_SUB_ACT_CAGE_TALK_TO_MARIO: set_obj_animation_and_sound_state(UKIKI_ANIM_HANDSTAND); - if (obj_update_dialog_with_cutscene(3, 1, CUTSCENE_DIALOG_1, 80)) { + if (obj_update_dialog_with_cutscene(3, 1, CUTSCENE_DIALOG_1, DIALOG_080)) { o->oSubAction++; } break; @@ -518,7 +518,7 @@ void cage_ukiki_held_loop(void) { switch(o->oUkikiTextState) { case UKIKI_TEXT_DEFAULT: if (set_mario_npc_dialog(2) == 2) { - create_dialog_box_with_response(79); + create_dialog_box_with_response(DIALOG_079); o->oUkikiTextState = UKIKI_TEXT_CAGE_TEXTBOX; } break; @@ -568,7 +568,7 @@ void hat_ukiki_held_loop(void) { break; case UKIKI_TEXT_STEAL_HAT: - if (obj_update_dialog(2, 2, 100, 0)) { + if (obj_update_dialog(2, 2, DIALOG_100, 0)) { o->oInteractionSubtype |= INT_SUBTYPE_DROP_IMMEDIATELY; o->oUkikiTextState = UKIKI_TEXT_STOLE_HAT; } @@ -578,7 +578,7 @@ void hat_ukiki_held_loop(void) { break; case UKIKI_TEXT_HAS_HAT: - if (obj_update_dialog(2, 18, 101, 0)) { + if (obj_update_dialog(2, 18, DIALOG_101, 0)) { mario_retrieve_cap(); set_mario_npc_dialog(0); o->oUkikiHasHat &= ~UKIKI_HAT_ON; diff --git a/src/game/behaviors/water_ring.inc.c b/src/game/behaviors/water_ring.inc.c index 74e6e4d..3d1649c 100644 --- a/src/game/behaviors/water_ring.inc.c +++ b/src/game/behaviors/water_ring.inc.c @@ -48,7 +48,7 @@ void CheckWaterRingCollection(f32 avgScale, struct Object *ringManager) { f32 marioDistInFront = WaterRingCalcMarioDistInFront(); struct Object *ringSpawner; - if (!IsPointCloseToObject(o, gMarioObject->header.gfx.pos[0], + if (!is_point_close_to_object(o, gMarioObject->header.gfx.pos[0], gMarioObject->header.gfx.pos[1] + 80.0f, gMarioObject->header.gfx.pos[2], (avgScale + 0.2) * 120.0)) { o->oWaterRingMarioDistInFront = marioDistInFront; @@ -62,7 +62,7 @@ void CheckWaterRingCollection(f32 avgScale, struct Object *ringManager) { || (ringSpawner->oWaterRingSpawnerRingsCollected == 0)) { ringSpawner->oWaterRingSpawnerRingsCollected++; if (ringSpawner->oWaterRingSpawnerRingsCollected < 6) { - SpawnOrangeNumber(ringSpawner->oWaterRingSpawnerRingsCollected, 0, -40, 0); + spawn_orange_number(ringSpawner->oWaterRingSpawnerRingsCollected, 0, -40, 0); #ifdef VERSION_JP play_sound(SOUND_MENU_STAR_SOUND, gDefaultSoundArgs); #else @@ -124,7 +124,7 @@ void JetStreamWaterRingNotCollectedLoop(void) { o->oPosY += 10.0f; o->oFaceAngleYaw += 0x100; - SetObjectVisibility(o, 5000); + set_object_visibility(o, 5000); if (ringSpawner->oWaterRingSpawnerRingsCollected == 4 && o->oWaterRingIndex == ringManager->oWaterRingMgrLastRingCollected + 1) @@ -212,7 +212,7 @@ void MantaRayWaterRingNotCollectedLoop(void) { CheckWaterRingCollection(avgScale, ringManager); SetWaterRingScale(avgScale); - SetObjectVisibility(o, 5000); + set_object_visibility(o, 5000); if (ringSpawner->oWaterRingSpawnerRingsCollected == 4 && o->oWaterRingIndex == ringManager->oWaterRingMgrLastRingCollected + 1) diff --git a/src/game/behaviors/whirlpool.inc.c b/src/game/behaviors/whirlpool.inc.c index 3d16ede..3287dec 100644 --- a/src/game/behaviors/whirlpool.inc.c +++ b/src/game/behaviors/whirlpool.inc.c @@ -31,7 +31,7 @@ void func_802E70DC(void) { f32 normalX = sinRoll * cosPitch; f32 normalY = cosPitch * cosRoll; f32 normalZ = sinPitch; - ObjOrientGraph(o, normalX, normalY, normalZ); + obj_orient_graph(o, normalX, normalY, normalZ); } void bhv_whirlpool_loop(void) { diff --git a/src/game/behaviors/whomp.inc.c b/src/game/behaviors/whomp.inc.c index 089d408..e64855c 100644 --- a/src/game/behaviors/whomp.inc.c +++ b/src/game/behaviors/whomp.inc.c @@ -28,7 +28,7 @@ void ActionWhomp0(void) { obj_set_pos_to_home(); o->oHealth = 3; } - } else if (obj_update_dialog_with_cutscene(2, 1, CUTSCENE_DIALOG_1, 114)) + } else if (obj_update_dialog_with_cutscene(2, 1, CUTSCENE_DIALOG_1, DIALOG_114)) o->oAction = 2; } else if (o->oDistanceToMario < 500.0f) o->oAction = 1; @@ -209,7 +209,7 @@ void ActionWhomp6(void) { void ActionWhomp8(void) { if (o->oBehParams2ndByte != 0) { - if (obj_update_dialog_with_cutscene(2, 2, CUTSCENE_DIALOG_1, 115)) { + if (obj_update_dialog_with_cutscene(2, 2, CUTSCENE_DIALOG_1, DIALOG_115)) { set_object_angle(o, 0, 0, 0); obj_hide(); obj_become_intangible(); diff --git a/src/game/behaviors/wiggler.inc.c b/src/game/behaviors/wiggler.inc.c index f074398..fee539e 100644 --- a/src/game/behaviors/wiggler.inc.c +++ b/src/game/behaviors/wiggler.inc.c @@ -224,13 +224,14 @@ static void wiggler_act_walk(void) { // If Mario is positioned below the wiggler, assume he entered through the // lower cave entrance, so don't display text. - if (gMarioObject->oPosY < o->oPosY || obj_update_dialog_with_cutscene(2, 0, CUTSCENE_DIALOG_1, 150) != 0) { + if (gMarioObject->oPosY < o->oPosY || obj_update_dialog_with_cutscene(2, 0, CUTSCENE_DIALOG_1, DIALOG_150) != 0) { o->oWigglerTextStatus = WIGGLER_TEXT_STATUS_COMPLETED_DIALOG; } } else { //! Every object's health is initially 2048, and wiggler's doesn't change // to 4 until after this runs the first time. It indexes out of bounds - // and uses the value 113762.3 for one frame on US. + // and uses the value 113762.3 for one frame on US. This is fixed down + // below in bhv_wiggler_update if AVOID_UB is defined. obj_forward_vel_approach(sWigglerSpeeds[o->oHealth - 1], 1.0f); if (o->oWigglerWalkAwayFromWallTimer != 0) { @@ -286,7 +287,7 @@ static void wiggler_act_walk(void) { */ static void wiggler_act_jumped_on(void) { // Text to show on first, second, and third attack. - s32 attackText[3] = { 0x98, 0xA8, 0x97 }; + s32 attackText[3] = { DIALOG_152, DIALOG_168, DIALOG_151 }; // Shrink until the squish speed becomes 0, then unisquish if (approach_f32_ptr(&o->oWigglerSquishSpeed, 0.0f, 0.05f)) { @@ -398,6 +399,10 @@ void bhv_wiggler_update(void) { // PARTIAL_UPDATE if (o->oAction == WIGGLER_ACT_UNINITIALIZED) { +#ifdef AVOID_UB + // See comment in wiggler_act_walk + o->oHealth = 4; +#endif wiggler_init_segments(); } else { if (o->oAction == WIGGLER_ACT_FALL_THROUGH_FLOOR) { diff --git a/src/game/behaviors/yoshi.inc.c b/src/game/behaviors/yoshi.inc.c index fe10389..f31f037 100644 --- a/src/game/behaviors/yoshi.inc.c +++ b/src/game/behaviors/yoshi.inc.c @@ -11,7 +11,7 @@ void bhv_yoshi_init(void) { o->oBuoyancy = 1.3f; o->oInteractionSubtype = INT_SUBTYPE_NPC; - if (save_file_get_total_star_count(gCurrSaveFileNum - 1, 0, 24) < 120 || D_80331508 == 1) { + if (save_file_get_total_star_count(gCurrSaveFileNum - 1, 0, 24) < 120 || sYoshiDead == TRUE) { o->activeFlags = 0; } } @@ -21,9 +21,9 @@ void yoshi_walk_loop(void) { s16 sp24 = o->header.gfx.unk38.animFrame; o->oForwardVel = 10.0f; - sp26 = ObjectStep(); + sp26 = object_step(); o->oMoveAngleYaw = approach_s16_symmetric(o->oMoveAngleYaw, o->oYoshiTargetYaw, 0x500); - if (IsPointCloseToObject(o, o->oHomeX, 3174.0f, o->oHomeZ, 200)) + if (is_point_close_to_object(o, o->oHomeX, 3174.0f, o->oHomeZ, 200)) o->oAction = YOSHI_ACT_IDLE; SetObjAnimation(1); @@ -76,7 +76,7 @@ void yoshi_talk_loop(void) { SetObjAnimation(0); if (set_mario_npc_dialog(1) == 2) { o->activeFlags |= 0x20; - if (cutscene_object_with_dialog(CUTSCENE_DIALOG_1, o, 161)) { + if (cutscene_object_with_dialog(CUTSCENE_DIALOG_1, o, DIALOG_161)) { o->activeFlags &= ~0x20; o->oInteractStatus = 0; o->oHomeX = sYoshiHomeLocations[2]; @@ -96,13 +96,13 @@ void yoshi_walk_and_jump_off_roof_loop(void) { s16 sp26 = o->header.gfx.unk38.animFrame; o->oForwardVel = 10.0f; - ObjectStep(); + object_step(); SetObjAnimation(1); if (o->oTimer == 0) cutscene_object(CUTSCENE_STAR_SPAWN, o); o->oMoveAngleYaw = approach_s16_symmetric(o->oMoveAngleYaw, o->oYoshiTargetYaw, 0x500); - if (IsPointCloseToObject(o, o->oHomeX, 3174.0f, o->oHomeZ, 200)) { + if (is_point_close_to_object(o, o->oHomeX, 3174.0f, o->oHomeZ, 200)) { SetObjAnimation(2); PlaySound2(SOUND_GENERAL_ENEMY_ALERT1); o->oForwardVel = 50.0f; @@ -123,7 +123,7 @@ void yoshi_finish_jumping_and_despawn_loop(void) { if (o->oPosY < 2100.0f) { set_mario_npc_dialog(0); gCutsceneActive = 1; - D_80331508 = 1; + sYoshiDead = 1; o->activeFlags = 0; } } diff --git a/src/game/camera.c b/src/game/camera.c index 7cfb582..7ad207a 100644 --- a/src/game/camera.c +++ b/src/game/camera.c @@ -5,6 +5,7 @@ #include "sm64.h" #include "camera.h" #include "seq_ids.h" +#include "dialog_ids.h" #include "audio/external.h" #include "mario_misc.h" #include "game.h" @@ -28,6 +29,7 @@ #include "paintings.h" #include "prevent_bss_reordering.h" #include "engine/graph_node.h" +#include "level_table.h" #define CBUTTON_MASK (U_CBUTTONS | D_CBUTTONS | L_CBUTTONS | R_CBUTTONS) @@ -2640,7 +2642,7 @@ void init_camera(struct LevelCamera *c) { c->storedYaw = gCameraStatus.trueYaw; } -extern u8 D_8032E910[20]; +extern u8 zoomOutAreaMasks[20]; void func_80287404(struct GraphNodeCamera *a) { UNUSED u8 unused1[8]; @@ -2651,13 +2653,13 @@ void func_80287404(struct GraphNodeCamera *a) { s32 sp28 = gCurrLevelArea / 32; s32 sp24 = 1 << (((gCurrLevelArea & 0x10) / 4) + (((gCurrLevelArea & 0xF) - 1) & 3)); - if (sp28 >= ARRAY_COUNT(D_8032E910) - 1) { + if (sp28 >= ARRAY_COUNT(zoomOutAreaMasks) - 1) { sp28 = 0; sp24 = 0; } if (gCameraMovementFlags & CAM_MOVE_PAUSE_SCREEN) { if (gFramesPaused >= 2) { - if (D_8032E910[sp28] & sp24) { + if (zoomOutAreaMasks[sp28] & sp24) { a->to[0] = gCurrLevelCamera->xFocus; a->to[1] = (sMarioStatusForCamera->pos[1] + gCurrLevelCamera->unk68) / 2.f; a->to[2] = gCurrLevelCamera->zFocus; @@ -5125,48 +5127,24 @@ struct TableCamera TableCameraBBH[61] = { TABLE_EMPTY }; -struct TableCamera *TableLevelCinematicCamera[40] = { - NULL, - NULL, - NULL, - NULL, - TableCameraBBH, - TableCameraCCM, - TableCameraInside, - TableCameraHMC, - TableCameraSSL, - NULL, - TableCameraSL, - NULL, - NULL, - TableCameraTHI, - NULL, - TableCameraRR, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - TableCameraCotMC, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, +#define _ NULL + +#define STUB_LEVEL(_0, _1, _2, _3, _4, _5, _6, _7, cameratable) cameratable, +#define DEFINE_LEVEL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, cameratable) cameratable, + +/* + * This table has an extra 2 levels after the last unknown_38 stub level. What I think + * the programmer was thinking was that the table is null terminated and so used the + * level count as a coorespondance to the ID of the final level, but the enum represents + * an ID *after* the last stub lebel, not before or during it. + */ +struct TableCamera *TableLevelCinematicCamera[LEVEL_COUNT + 1] = { NULL, + #include "levels/level_defines.h" }; +#undef _ +#undef STUB_LEVEL +#undef DEFINE_LEVEL struct CutsceneSplinePoint sIntroStartToPipePosition[23] = { { 0, 0, { 2122, 8762, 9114 } }, { 0, 0, { 2122, 8762, 9114 } }, { 1, 0, { 2122, 7916, 9114 } }, @@ -5608,7 +5586,7 @@ s16 cutscene_object_with_dialog(u8 cutsceneTable, struct Object *o, s16 dialogID if (dialogID != -1) { D_8033B320 = dialogID; } else { - D_8033B320 = 1; + D_8033B320 = DIALOG_001; } } else { sp1E = D_8032CFFC; @@ -6533,13 +6511,13 @@ CmdRet bowser_fight_intro_dialog(UNUSED struct LevelCamera *c) { switch (gCurrLevelNum) { case LEVEL_BOWSER_1: - dialog = 67; + dialog = DIALOG_067; break; case LEVEL_BOWSER_2: - dialog = 92; + dialog = DIALOG_092; break; default: - dialog = 93; + dialog = DIALOG_093; } create_dialog_box(dialog); @@ -7458,7 +7436,7 @@ CmdRet CutsceneCapSwitchPress0_3(struct LevelCamera *c) { } CmdRet CutsceneCapSwitchPress0_6(UNUSED struct LevelCamera *c) { - create_dialog_box_with_response(gCutsceneFocus->oBehParams2ndByte + 10); + create_dialog_box_with_response(gCutsceneFocus->oBehParams2ndByte + DIALOG_010); } static void unused_802968E8(struct LevelCamera *c) { @@ -7570,7 +7548,7 @@ s32 intro_peach_move_camera_start_to_pipe(struct LevelCamera *c, struct Cutscene } CmdRet peach_letter_text(UNUSED struct LevelCamera *c) { - create_dialog_box(20); + create_dialog_box(DIALOG_020); } #ifndef VERSION_JP @@ -7621,7 +7599,7 @@ CmdRet CutsceneIntroPeach3_3(UNUSED struct LevelCamera *c) { } CmdRet intro_pipe_exit_text(UNUSED struct LevelCamera *c) { - create_dialog_box(33); + create_dialog_box(DIALOG_033); } #ifndef VERSION_JP @@ -8359,20 +8337,51 @@ struct CutsceneTableEntry TableCutsceneReadMessage[3] = { { CutsceneReadMessage0 { CutsceneReadMessage1, 15 }, { CutsceneReadMessage2, 0 } }; -u8 D_8032E8A4[27][4] = { - { 0x44, 0x44, 0x44, 0x04 }, { 0x00, 0x20, 0x22, 0x04 }, { 0x00, 0x00, 0x02, 0x04 }, - { 0x22, 0x22, 0x22, 0x04 }, { 0x00, 0x22, 0x00, 0x04 }, { 0x22, 0x22, 0x22, 0x04 }, - { 0x22, 0x22, 0x22, 0x04 }, { 0x12, 0x12, 0x12, 0x04 }, { 0x02, 0x22, 0x22, 0x04 }, - { 0x22, 0x22, 0x22, 0x04 }, { 0x20, 0x20, 0x20, 0x04 }, { 0x22, 0x01, 0x22, 0x04 }, - { 0x00, 0x00, 0x00, 0x04 }, { 0x11, 0x11, 0x12, 0x04 }, { 0x22, 0x22, 0x22, 0x04 }, - { 0x00, 0x00, 0x00, 0x04 }, { 0x43, 0x44, 0x44, 0x04 }, { 0x43, 0x44, 0x44, 0x04 }, - { 0x43, 0x44, 0x44, 0x04 }, { 0x42, 0x44, 0x44, 0x04 }, { 0x44, 0x44, 0x44, 0x04 }, - { 0x40, 0x44, 0x44, 0x04 }, { 0x42, 0x44, 0x44, 0x04 }, { 0x40, 0x44, 0x44, 0x04 }, - { 0x42, 0x44, 0x44, 0x04 }, { 0x44, 0x44, 0x44, 0x04 }, { 0x44, 0x44, 0x44, 0x04 } -}; +#define DEFINE_COURSE(_0, i1, i2, i3, i4) { i1, i2, i3, i4 }, +#define DEFINE_COURSES_END() +#define DEFINE_BONUS_COURSE(_0, i1, i2, i3, i4) { i1, i2, i3, i4 }, -u8 D_8032E910[20] = { 0x00, 0x00, 0x10, 0x00, 0x11, 0x11, 0x30, 0x10, 0x11, 0x10, - 0x10, 0x01, 0x01, 0x00, 0x10, 0x11, 0x10, 0x01, 0x01, 0x00 }; +u8 D_8032E8A4[27][4] = { + { 0x44, 0x44, 0x44, 0x04 }, // (0) Course Hub (Castle Grounds) + #include "levels/course_defines.h" + { 0x44, 0x44, 0x44, 0x04 } // an extra course, hmm... +}; +#undef DEFINE_COURSE +#undef DEFINE_COURSES_END +#undef DEFINE_BONUS_COURSE + +/** + * These masks set whether or not the camera zooms out when game is paused. + * + * Each entry is used by two levels. Even levels use the low 4 bits, odd levels use the high 4 bits + * Because areas are 1-indexed, a mask of 0x1 will make area 1 (not area 0) zoom out. + * + * In zoom_out_if_paused_and_outside(), the current area is converted to a shift. + * Then the value of (1 << shift) is &'d with the level's mask, + * and if the result is non-zero, the camera will zoom out. + */ +u8 zoomOutAreaMasks[20] = { + ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // Unused | Unused + ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // Unused | Unused + ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // BBH | CCM + ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // CASTLE_INSIDE | HMC + ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // SSL | BOB + ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // SL | WDW + ZOOMOUT_AREA_MASK(0,0,0,0, 1,1,0,0), // JRB | THI + ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // TTC | RR + ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // CASTLE_GROUNDS | BITDW + ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // VCUTM | BITFS + ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // SA | BITS + ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // LLL | DDD + ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // WF | ENDING + ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // COURTYARD | PSS + ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // COTMC | TOTWC + ZOOMOUT_AREA_MASK(1,0,0,0, 1,0,0,0), // BOWSER_1 | WMOTR + ZOOMOUT_AREA_MASK(0,0,0,0, 1,0,0,0), // Unused | BOWSER_2 + ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // BOWSER_3 | Unused + ZOOMOUT_AREA_MASK(1,0,0,0, 0,0,0,0), // TTM | Unused + ZOOMOUT_AREA_MASK(0,0,0,0, 0,0,0,0), // Unused | Unused +}; struct CutsceneSplinePoint sBobCreditsCameraPositions[5] = { { 1, 0, { 5984, 3255, 4975 } }, { 2, 0, { 4423, 3315, 1888 } }, diff --git a/src/game/camera.h b/src/game/camera.h index ee6bdca..38b9b42 100644 --- a/src/game/camera.h +++ b/src/game/camera.h @@ -6,52 +6,56 @@ #include "engine/geo_layout.h" #include "engine/graph_node.h" +#include "level_table.h" + #define ABS(x) ((x) > 0.f ? (x) : -(x)) #define ABS2(x) ((x) >= 0.f ? (x) : -(x)) -#define AREA_BBH 0x0041 -#define AREA_CCM_OUTSIDE 0x0051 -#define AREA_CCM_SLIDE 0x0052 -#define AREA_CASTLE_LOBBY 0x0061 -#define AREA_CASTLE_TIPPY 0x0062 -#define AREA_CASTLE_BASTEMENT 0x0063 -#define AREA_HMC 0x0071 -#define AREA_SSL_OUTSIDE 0x0081 -#define AREA_SSL_PYRAMID 0x0082 -#define AREA_SSL_EYEROK 0x0083 -#define AREA_BOB 0x0091 -#define AREA_SL_OUTSIDE 0x00A1 -#define AREA_SL_IGLOO 0x00A2 -#define AREA_WDW_MAIN 0x00B1 -#define AREA_WDW_TOWN 0x00B2 -#define AREA_JRB_MAIN 0x00C1 -#define AREA_JRB_SHIP 0x00C2 -#define AREA_THI_HUGE 0x00D1 -#define AREA_THI_TINY 0x00D2 -#define AREA_THI_WIGGLER 0x00D3 -#define AREA_TTC 0x00E1 -#define AREA_RR 0x00F1 -#define AREA_OUTSIDE_CASTLE 0x0101 -#define AREA_BITDW 0x0111 -#define AREA_VCUTM 0x0121 -#define AREA_BITFS 0x0131 -#define AREA_SA 0x0141 -#define AREA_BITS 0x0151 -#define AREA_LLL_OUTSIDE 0x0161 -#define AREA_LLL_VOLCANO 0x0162 -#define AREA_DDD_WHIRLPOOL 0x0171 -#define AREA_DDD_SUB 0x0172 -#define AREA_WF 0x0181 -#define AREA_ENDING 0x0191 -#define AREA_COURTYARD 0x01A1 -#define AREA_PSS 0x01B1 -#define AREA_COTMC 0x01C1 -#define AREA_TOTWC 0x01D1 -#define AREA_BOWSER_1 0x01E1 -#define AREA_WMOTR 0x01F1 -#define AREA_BOWSER_2 0x0211 -#define AREA_BOWSER_3 0x0221 -#define AREA_TTM_OUTSIDE 0x0241 +#define LEVEL_AREA_INDEX(levelNum, areaNum) ((levelNum << 4) + areaNum) + +#define AREA_BBH LEVEL_AREA_INDEX(LEVEL_BBH, 1) +#define AREA_CCM_OUTSIDE LEVEL_AREA_INDEX(LEVEL_CCM, 1) +#define AREA_CCM_SLIDE LEVEL_AREA_INDEX(LEVEL_CCM, 2) +#define AREA_CASTLE_LOBBY LEVEL_AREA_INDEX(LEVEL_CASTLE, 1) +#define AREA_CASTLE_TIPPY LEVEL_AREA_INDEX(LEVEL_CASTLE, 2) +#define AREA_CASTLE_BASTEMENT LEVEL_AREA_INDEX(LEVEL_CASTLE, 3) +#define AREA_HMC LEVEL_AREA_INDEX(LEVEL_HMC, 1) +#define AREA_SSL_OUTSIDE LEVEL_AREA_INDEX(LEVEL_SSL, 1) +#define AREA_SSL_PYRAMID LEVEL_AREA_INDEX(LEVEL_SSL, 2) +#define AREA_SSL_EYEROK LEVEL_AREA_INDEX(LEVEL_SSL, 3) +#define AREA_BOB LEVEL_AREA_INDEX(LEVEL_BOB, 1) +#define AREA_SL_OUTSIDE LEVEL_AREA_INDEX(LEVEL_SL, 1) +#define AREA_SL_IGLOO LEVEL_AREA_INDEX(LEVEL_SL, 2) +#define AREA_WDW_MAIN LEVEL_AREA_INDEX(LEVEL_WDW, 1) +#define AREA_WDW_TOWN LEVEL_AREA_INDEX(LEVEL_WDW, 2) +#define AREA_JRB_MAIN LEVEL_AREA_INDEX(LEVEL_JRB, 1) +#define AREA_JRB_SHIP LEVEL_AREA_INDEX(LEVEL_JRB, 2) +#define AREA_THI_HUGE LEVEL_AREA_INDEX(LEVEL_THI, 1) +#define AREA_THI_TINY LEVEL_AREA_INDEX(LEVEL_THI, 2) +#define AREA_THI_WIGGLER LEVEL_AREA_INDEX(LEVEL_THI, 3) +#define AREA_TTC LEVEL_AREA_INDEX(LEVEL_TTC, 1) +#define AREA_RR LEVEL_AREA_INDEX(LEVEL_RR, 1) +#define AREA_OUTSIDE_CASTLE LEVEL_AREA_INDEX(LEVEL_CASTLE_GROUNDS, 1) +#define AREA_BITDW LEVEL_AREA_INDEX(LEVEL_BITDW, 1) +#define AREA_VCUTM LEVEL_AREA_INDEX(LEVEL_VCUTM, 1) +#define AREA_BITFS LEVEL_AREA_INDEX(LEVEL_BITFS, 1) +#define AREA_SA LEVEL_AREA_INDEX(LEVEL_SA, 1) +#define AREA_BITS LEVEL_AREA_INDEX(LEVEL_BITS, 1) +#define AREA_LLL_OUTSIDE LEVEL_AREA_INDEX(LEVEL_LLL, 1) +#define AREA_LLL_VOLCANO LEVEL_AREA_INDEX(LEVEL_LLL, 2) +#define AREA_DDD_WHIRLPOOL LEVEL_AREA_INDEX(LEVEL_DDD, 1) +#define AREA_DDD_SUB LEVEL_AREA_INDEX(LEVEL_DDD, 2) +#define AREA_WF LEVEL_AREA_INDEX(LEVEL_WF, 1) +#define AREA_ENDING LEVEL_AREA_INDEX(LEVEL_ENDING, 1) +#define AREA_COURTYARD LEVEL_AREA_INDEX(LEVEL_CASTLE_COURTYARD, 1) +#define AREA_PSS LEVEL_AREA_INDEX(LEVEL_PSS, 1) +#define AREA_COTMC LEVEL_AREA_INDEX(LEVEL_COTMC, 1) +#define AREA_TOTWC LEVEL_AREA_INDEX(LEVEL_TOTWC, 1) +#define AREA_BOWSER_1 LEVEL_AREA_INDEX(LEVEL_BOWSER_1, 1) +#define AREA_WMOTR LEVEL_AREA_INDEX(LEVEL_WMOTR, 1) +#define AREA_BOWSER_2 LEVEL_AREA_INDEX(LEVEL_BOWSER_2, 1) +#define AREA_BOWSER_3 LEVEL_AREA_INDEX(LEVEL_BOWSER_3, 1) +#define AREA_TTM_OUTSIDE LEVEL_AREA_INDEX(LEVEL_TTM, 1) #define CAM_MODE_MARIO_ACTIVE 0x01 #define CAM_MODE_LAKITU_WAS_ZOOMED_OUT 0x02 @@ -217,7 +221,7 @@ struct Struct8033B2B8 // actually return a value. This causes undefined behavior, which we'd rather // avoid on modern GCC. Hence, typedef. Interestingly, the void vs s32 // difference doesn't affect -g codegen, only -O2. -#if BUGFIXES_CRITICAL +#ifdef AVOID_UB typedef void CmdRet; #else typedef s32 CmdRet; diff --git a/src/game/display.c b/src/game/display.c index 1e1922d..a42e20c 100644 --- a/src/game/display.c +++ b/src/game/display.c @@ -55,7 +55,7 @@ void my_rsp_init(void) { gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_SHADING_SMOOTH | G_CULL_BACK | G_LIGHTING); - gSPNumLights(gDisplayListHead++, 1); + gSPNumLights(gDisplayListHead++, NUMLIGHTS_1); gSPTexture(gDisplayListHead++, 0, 0, 0, G_TX_RENDERTILE, G_OFF); // @bug Nintendo did not explicitly define the clipping ratio. diff --git a/src/game/eu_translation.h b/src/game/eu_translation.h index 5cf1cff..e2e53f8 100644 --- a/src/game/eu_translation.h +++ b/src/game/eu_translation.h @@ -12,15 +12,15 @@ extern u8 _translation_de_mio0SegmentRomStart[]; extern u8 _translation_de_mio0SegmentRomEnd[]; extern void *dialog_table_eu_en[]; -extern void *level_name_table_eu_en[]; +extern void *course_name_table_eu_en[]; extern void *act_name_table_eu_en[]; extern void *dialog_table_eu_fr[]; -extern void *level_name_table_eu_fr[]; +extern void *course_name_table_eu_fr[]; extern void *act_name_table_eu_fr[]; extern void *dialog_table_eu_de[]; -extern void *level_name_table_eu_de[]; +extern void *course_name_table_eu_de[]; extern void *act_name_table_eu_de[]; #endif /* EU_TRANSLATION_H */ diff --git a/src/game/game.c b/src/game/game.c index acce6c7..ad80083 100644 --- a/src/game/game.c +++ b/src/game/game.c @@ -3,6 +3,7 @@ #include "sm64.h" #include "audio/external.h" #include "buffers/framebuffers.h" +#include "buffers/zbuffer.h" #include "engine/level_script.h" #include "main.h" #include "memory.h" diff --git a/src/game/game.h b/src/game/game.h index 83b86e8..07ad302 100644 --- a/src/game/game.h +++ b/src/game/game.h @@ -48,7 +48,6 @@ extern u16 func_802495B0(u32); extern struct MarioAnimation D_80339D10; extern struct MarioAnimation gDemo; -extern u16 gZBuffer[SCREEN_WIDTH * SCREEN_HEIGHT]; extern u8 gMarioAnims[]; extern u8 gDemoInputs[]; diff --git a/src/game/hud.c b/src/game/hud.c index 8ade9aa..0643904 100644 --- a/src/game/hud.c +++ b/src/game/hud.c @@ -127,7 +127,7 @@ void render_dl_power_meter(s16 numHealthWedges) { gSPDisplayList(gDisplayListHead++, &dl_power_meter_health_segments_end); } - gSPPopMatrix(gDisplayListHead++, 0); + gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); } /** diff --git a/src/game/ingame_menu.c b/src/game/ingame_menu.c index 5a14ae0..b99030a 100644 --- a/src/game/ingame_menu.c +++ b/src/game/ingame_menu.c @@ -5,6 +5,7 @@ #include "types.h" #include "audio/external.h" #include "seq_ids.h" +#include "dialog_ids.h" #include "game.h" #include "save_file.h" #include "level_update.h" @@ -340,7 +341,7 @@ struct MultiTextEntry { #define TEXT_THE_RAW ASCII_TO_DIALOG('t'), ASCII_TO_DIALOG('h'), ASCII_TO_DIALOG('e'), 0x00 #define TEXT_YOU_RAW ASCII_TO_DIALOG('y'), ASCII_TO_DIALOG('o'), ASCII_TO_DIALOG('u'), 0x00 -enum MutliStringIDs { STRING_THE, STRING_YOU }; +enum MultiStringIDs { STRING_THE, STRING_YOU }; /* * Place the multi-text string according to the ID passed. (US, EU) @@ -970,7 +971,7 @@ void render_dialog_box_type(struct DialogEntry *dialog, s8 linesPerBox) { // convert the speed into angle create_dl_rotation_matrix(MENU_MTX_NOPUSH, gDialogBoxOpenTimer * 4.0f, 0, 0, 1.0f); } - gDPSetEnvColor(gDisplayListHead++, 0, 0, 0, 0x96); + gDPSetEnvColor(gDisplayListHead++, 0, 0, 0, 150); break; case DIALOG_TYPE_ZOOM: // Renders a dialog white box with zoom if (gDialogBoxState == DIALOG_STATE_OPENING || gDialogBoxState == DIALOG_STATE_CLOSING) { @@ -978,7 +979,7 @@ void render_dialog_box_type(struct DialogEntry *dialog, s8 linesPerBox) { (40.0 / gDialogBoxScale) - 40, 0); create_dl_scale_matrix(MENU_MTX_NOPUSH, 1.0 / gDialogBoxScale, 1.0 / gDialogBoxScale, 1.0f); } - gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, 0x96); + gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, 150); break; } @@ -2201,15 +2202,15 @@ void render_pause_my_score_coins(void) { u8 textUnfilledStar[] = { TEXT_UNFILLED_STAR }; u8 strCourseNum[4]; - void **levelNameTbl; - u8 *levelName; + void **courseNameTbl; + u8 *courseName; void **actNameTbl; u8 *actName; u8 courseIndex; u8 starFlags; #ifndef VERSION_EU - levelNameTbl = segmented_to_virtual(seg2_level_name_table); + courseNameTbl = segmented_to_virtual(seg2_course_name_table); actNameTbl = segmented_to_virtual(seg2_act_name_table); #endif @@ -2220,15 +2221,15 @@ void render_pause_my_score_coins(void) { switch (gInGameLanguage) { case LANGUAGE_ENGLISH: actNameTbl = segmented_to_virtual(act_name_table_eu_en); - levelNameTbl = segmented_to_virtual(level_name_table_eu_en); + courseNameTbl = segmented_to_virtual(course_name_table_eu_en); break; case LANGUAGE_FRENCH: actNameTbl = segmented_to_virtual(act_name_table_eu_fr); - levelNameTbl = segmented_to_virtual(level_name_table_eu_fr); + courseNameTbl = segmented_to_virtual(course_name_table_eu_fr); break; case LANGUAGE_GERMAN: actNameTbl = segmented_to_virtual(act_name_table_eu_de); - levelNameTbl = segmented_to_virtual(level_name_table_eu_de); + courseNameTbl = segmented_to_virtual(course_name_table_eu_de); break; } #endif @@ -2250,7 +2251,7 @@ void render_pause_my_score_coins(void) { print_generic_string(MYSCORE_X, 121, textMyScore); } - levelName = segmented_to_virtual(levelNameTbl[courseIndex]); + courseName = segmented_to_virtual(courseNameTbl[courseIndex]); if (courseIndex < COURSE_STAGES_COUNT) { #ifdef VERSION_EU @@ -2274,19 +2275,19 @@ void render_pause_my_score_coins(void) { } print_generic_string(ACT_NAME_X, 140, actName); #ifndef VERSION_JP - print_generic_string(LVL_NAME_X, 157, &levelName[3]); + print_generic_string(LVL_NAME_X, 157, &courseName[3]); #endif } #ifndef VERSION_JP else { #ifdef VERSION_US - print_generic_string(94, 157, &levelName[3]); + print_generic_string(94, 157, &courseName[3]); #elif defined(VERSION_EU) - print_generic_string(get_str_x_pos_from_center(159, &levelName[3], 10.0f), 157, &levelName[3]); + print_generic_string(get_str_x_pos_from_center(159, &courseName[3], 10.0f), 157, &courseName[3]); #endif } #else - print_generic_string(117, 157, &levelName[3]); + print_generic_string(117, 157, &courseName[3]); #endif gSPDisplayList(gDisplayListHead++, dl_ia_text_end); } @@ -2498,9 +2499,9 @@ void render_pause_castle_course_stars(s16 x, s16 y, s16 fileNum, s16 courseNum) void render_pause_castle_main_strings(s16 x, s16 y) { #ifdef VERSION_EU - void **levelNameTbl; + void **courseNameTbl; #else - void **levelNameTbl = segmented_to_virtual(seg2_level_name_table); + void **courseNameTbl = segmented_to_virtual(seg2_course_name_table); #endif #ifdef VERSION_EU @@ -2510,7 +2511,7 @@ void render_pause_castle_main_strings(s16 x, s16 y) { u8 textCoin[] = { TEXT_COIN_X }; #endif - void *levelName; + void *courseName; u8 strVal[8]; s16 starNum = gDialogLineNum; @@ -2518,13 +2519,13 @@ void render_pause_castle_main_strings(s16 x, s16 y) { #ifdef VERSION_EU switch (gInGameLanguage) { case LANGUAGE_ENGLISH: - levelNameTbl = segmented_to_virtual(level_name_table_eu_en); + courseNameTbl = segmented_to_virtual(course_name_table_eu_en); break; case LANGUAGE_FRENCH: - levelNameTbl = segmented_to_virtual(level_name_table_eu_fr); + courseNameTbl = segmented_to_virtual(course_name_table_eu_fr); break; case LANGUAGE_GERMAN: - levelNameTbl = segmented_to_virtual(level_name_table_eu_de); + courseNameTbl = segmented_to_virtual(course_name_table_eu_de); break; } #endif @@ -2558,7 +2559,7 @@ void render_pause_castle_main_strings(s16 x, s16 y) { gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gDialogTextAlpha); if (gDialogLineNum < COURSE_STAGES_COUNT) { - levelName = segmented_to_virtual(levelNameTbl[gDialogLineNum]); + courseName = segmented_to_virtual(courseNameTbl[gDialogLineNum]); render_pause_castle_course_stars(x, y, gCurrSaveFileNum - 1, gDialogLineNum); print_generic_string(x + 34, y - 5, textCoin); #ifdef VERSION_EU @@ -2567,21 +2568,21 @@ void render_pause_castle_main_strings(s16 x, s16 y) { int_to_str(save_file_get_course_coin_score(gCurrSaveFileNum - 1, gDialogLineNum), strVal); print_generic_string(x + 54, y - 5, strVal); #ifdef VERSION_EU - print_generic_string(x - 17, y + 30, levelName); + print_generic_string(x - 17, y + 30, courseName); #endif } else { u8 textStarX[] = { TEXT_STAR_X }; - levelName = segmented_to_virtual(levelNameTbl[COURSE_MAX]); + courseName = segmented_to_virtual(courseNameTbl[COURSE_MAX]); print_generic_string(x + 40, y + 13, textStarX); int_to_str(save_file_get_total_star_count(gCurrSaveFileNum - 1, COURSE_BONUS_STAGES - 1, COURSE_MAX - 1), strVal); print_generic_string(x + 60, y + 13, strVal); #ifdef VERSION_EU - print_generic_string(get_str_x_pos_from_center(x + 51, levelName, 10.0f), y + 30, levelName); + print_generic_string(get_str_x_pos_from_center(x + 51, courseName, 10.0f), y + 30, courseName); #endif } #ifndef VERSION_EU - print_generic_string(x - 9, y + 30, levelName); + print_generic_string(x - 9, y + 30, courseName); #endif gSPDisplayList(gDisplayListHead++, dl_ia_text_end); @@ -2816,7 +2817,7 @@ void render_course_complete_lvl_info_and_hud_str(void) { #endif void **actNameTbl; - void **levelNameTbl; + void **courseNameTbl; u8 *name; u8 strCourseNum[4]; @@ -2826,20 +2827,20 @@ void render_course_complete_lvl_info_and_hud_str(void) { switch (gInGameLanguage) { case LANGUAGE_ENGLISH: actNameTbl = segmented_to_virtual(act_name_table_eu_en); - levelNameTbl = segmented_to_virtual(level_name_table_eu_en); + courseNameTbl = segmented_to_virtual(course_name_table_eu_en); break; case LANGUAGE_FRENCH: actNameTbl = segmented_to_virtual(act_name_table_eu_fr); - levelNameTbl = segmented_to_virtual(level_name_table_eu_fr); + courseNameTbl = segmented_to_virtual(course_name_table_eu_fr); break; case LANGUAGE_GERMAN: actNameTbl = segmented_to_virtual(act_name_table_eu_de); - levelNameTbl = segmented_to_virtual(level_name_table_eu_de); + courseNameTbl = segmented_to_virtual(course_name_table_eu_de); break; } #else actNameTbl = segmented_to_virtual(seg2_act_name_table); - levelNameTbl = segmented_to_virtual(seg2_level_name_table); + courseNameTbl = segmented_to_virtual(seg2_course_name_table); #endif if (gLastCompletedCourseNum <= COURSE_STAGES_MAX) { @@ -2862,7 +2863,7 @@ void render_course_complete_lvl_info_and_hud_str(void) { print_generic_string(CRS_NUM_X3, 167, strCourseNum); gSPDisplayList(gDisplayListHead++, dl_ia_text_end); } else if (gLastCompletedCourseNum == COURSE_BITDW || gLastCompletedCourseNum == COURSE_BITFS) { - name = segmented_to_virtual(levelNameTbl[gLastCompletedCourseNum - 1]); + name = segmented_to_virtual(courseNameTbl[gLastCompletedCourseNum - 1]); gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); gDPSetEnvColor(gDisplayListHead++, 0, 0, 0, gDialogTextAlpha); #ifdef VERSION_EU diff --git a/src/game/interaction.c b/src/game/interaction.c index 185e2eb..17a906c 100644 --- a/src/game/interaction.c +++ b/src/game/interaction.c @@ -17,6 +17,8 @@ #include "behavior_actions.h" #include "audio/external.h" #include "behavior_data.h" +#include "dialog_ids.h" +#include "course_table.h" #define INT_GROUND_POUND_OR_TWIRL (1 << 0) // 0x00000001 #define INT_PUNCH (1 << 1) // 0x00000002 @@ -857,7 +859,7 @@ u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Obj if (!(saveFlags & SAVE_FLAG_HAVE_KEY_2)) { if (!sDisplayingDoorText) { set_mario_action(m, ACT_READING_AUTOMATIC_DIALOG, - (saveFlags & SAVE_FLAG_HAVE_KEY_1) ? 0x17 : 0x16); + (saveFlags & SAVE_FLAG_HAVE_KEY_1) ? DIALOG_023 : DIALOG_022); } sDisplayingDoorText = TRUE; @@ -872,7 +874,7 @@ u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Obj if (!sDisplayingDoorText) { // Moat door skip was intended confirmed set_mario_action(m, ACT_READING_AUTOMATIC_DIALOG, - (saveFlags & SAVE_FLAG_HAVE_KEY_2) ? 0x17 : 0x16); + (saveFlags & SAVE_FLAG_HAVE_KEY_2) ? DIALOG_023 : DIALOG_022); } sDisplayingDoorText = TRUE; @@ -972,26 +974,26 @@ u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object * return set_mario_action(m, enterDoorAction, actionArg); } else if (!sDisplayingDoorText) { - u32 text = 0x00160000; + u32 text = DIALOG_022 << 16; switch (requiredNumStars) { case 1: - text = 0x00180000; + text = DIALOG_024 << 16; break; case 3: - text = 0x00190000; + text = DIALOG_025 << 16; break; case 8: - text = 0x001A0000; + text = DIALOG_026 << 16; break; case 30: - text = 0x001B0000; + text = DIALOG_027 << 16; break; case 50: - text = 0x001C0000; + text = DIALOG_028 << 16; break; case 70: - text = 0x001D0000; + text = DIALOG_029 << 16; break; } diff --git a/src/game/level_update.c b/src/game/level_update.c index 9d59e99..6cdd6e7 100644 --- a/src/game/level_update.c +++ b/src/game/level_update.c @@ -2,6 +2,7 @@ #include "sm64.h" #include "seq_ids.h" +#include "dialog_ids.h" #include "audio/external.h" #include "level_update.h" #include "game.h" @@ -24,6 +25,7 @@ #include "memory.h" #include "eu_translation.h" #endif +#include "level_table.h" #define PLAY_MODE_NORMAL 0 #define PLAY_MODE_PAUSED 2 @@ -227,15 +229,15 @@ void func_8024980C(u32 arg) { u32 dialogID = gCurrentArea->dialog[arg]; switch (dialogID) { - case 129: + case DIALOG_129: gotAchievement = save_file_get_flags() & SAVE_FLAG_HAVE_VANISH_CAP; break; - case 130: + case DIALOG_130: gotAchievement = save_file_get_flags() & SAVE_FLAG_HAVE_METAL_CAP; break; - case 131: + case DIALOG_131: gotAchievement = save_file_get_flags() & SAVE_FLAG_HAVE_WING_CAP; break; @@ -1246,7 +1248,7 @@ s32 lvl_init_from_save_file(UNUSED s16 arg0, s32 levelNum) { disable_warp_checkpoint(); save_file_move_cap_to_default_location(); select_mario_cam_mode(); - func_802E2F40(); + set_yoshi_as_not_dead(); return levelNum; } diff --git a/src/game/mario.c b/src/game/mario.c index 2627a30..ecdf566 100644 --- a/src/game/mario.c +++ b/src/game/mario.c @@ -30,12 +30,13 @@ #include "save_file.h" #include "sound_init.h" #include "engine/surface_collision.h" +#include "level_table.h" u32 unused80339F10; s8 filler80339F1C[20]; /************************************************** - * ANIMATIONS * + * ANIMATIONS * **************************************************/ /** @@ -229,7 +230,7 @@ s16 return_mario_anim_y_translation(struct MarioState *m) { } /************************************************** - * AUDIO * + * AUDIO * **************************************************/ /** @@ -249,11 +250,11 @@ void play_mario_jump_sound(struct MarioState *m) { if (!(m->flags & MARIO_MARIO_SOUND_PLAYED)) { #ifndef VERSION_JP if (m->action == ACT_TRIPLE_JUMP) { - play_sound(SOUND_MARIO_YAHOO_WAHA_YIPPEE + ((D_80226EB8 % 5) << 16), + play_sound(SOUND_MARIO_YAHOO_WAHA_YIPPEE + ((gAudioRandom % 5) << 16), m->marioObj->header.gfx.cameraToObject); } else { #endif - play_sound(SOUND_MARIO_YAH_WAH_HOO + ((D_80226EB8 % 3) << 16), + play_sound(SOUND_MARIO_YAH_WAH_HOO + ((gAudioRandom % 3) << 16), m->marioObj->header.gfx.cameraToObject); #ifndef VERSION_JP } @@ -364,7 +365,7 @@ void play_mario_sound(struct MarioState *m, s32 actionSound, s32 marioSound) { } /************************************************** - * ACTIONS * + * ACTIONS * **************************************************/ /** @@ -1658,7 +1659,7 @@ void mario_update_hitbox_and_cap_model(struct MarioState *m) { */ static void debug_update_mario_cap(u16 button, s32 flags, u16 capTimer, u16 capMusic) { // This checks for Z_TRIG instead of Z_DOWN flag - //(which is also what other debug functions do), + // (which is also what other debug functions do), // so likely debug behavior rather than unused behavior. if ((gPlayer1Controller->buttonDown & Z_TRIG) && (gPlayer1Controller->buttonPressed & button) && ((gMarioState->flags & flags) == 0)) { @@ -1758,7 +1759,7 @@ s32 execute_mario_action(UNUSED struct Object *o) { } /************************************************** - * INITIALIZATION * + * INITIALIZATION * **************************************************/ void init_mario(void) { diff --git a/src/game/mario.h b/src/game/mario.h index e218e89..204cffc 100644 --- a/src/game/mario.h +++ b/src/game/mario.h @@ -3,7 +3,7 @@ #include "types.h" -extern u32 D_80226EB8; +extern u32 gAudioRandom; extern struct Object *gMarioObject; extern struct Object *gLuigiObject; diff --git a/src/game/mario_actions_airborne.c b/src/game/mario_actions_airborne.c index dd061bc..bea18fd 100644 --- a/src/game/mario_actions_airborne.c +++ b/src/game/mario_actions_airborne.c @@ -385,6 +385,15 @@ u32 common_air_action_step(struct MarioState *m, u32 landAction, s32 animation, m->vel[1] = 0.0f; } + //! Hands-free holding. Bonking while no wall is referenced + // sets Mario's action to a non-holding action without + // dropping the object, causing the hands-free holding + // glitch. This can be achieved using an exposed ceiling, + // out of bounds, grazing the bottom of a wall while + // falling such that the final quarter step does not find a + // wall collision, or by rising into the top of a wall such + // that the final quarter step detects a ledge, but you are + // not able to ledge grab it. if (m->forwardVel >= 38.0f) { m->particleFlags |= PARTICLE_1; set_mario_action(m, ACT_BACKWARD_AIR_KB, 0); @@ -1277,6 +1286,9 @@ s32 act_air_hit_wall(struct MarioState *m) { return set_mario_action(m, ACT_SOFT_BONK, 0); } +#ifdef AVOID_UB + return +#endif set_mario_animation(m, MARIO_ANIM_START_WALLKICK); //! Missing return statement. The returned value is the result of the call @@ -1750,7 +1762,7 @@ s32 act_flying(struct MarioState *m) { if (startPitch <= 0 && m->faceAngle[0] > 0 && m->forwardVel >= 48.0f) { play_sound(SOUND_ACTION_FLYING_FAST, m->marioObj->header.gfx.cameraToObject); #ifndef VERSION_JP - play_sound(SOUND_MARIO_YAHOO_WAHA_YIPPEE + ((D_80226EB8 % 5) << 16), + play_sound(SOUND_MARIO_YAHOO_WAHA_YIPPEE + ((gAudioRandom % 5) << 16), m->marioObj->header.gfx.cameraToObject); #endif } diff --git a/src/game/mario_actions_automatic.c b/src/game/mario_actions_automatic.c index 26bc831..35e1037 100644 --- a/src/game/mario_actions_automatic.c +++ b/src/game/mario_actions_automatic.c @@ -14,6 +14,7 @@ #include "engine/surface_collision.h" #include "interaction.h" #include "camera.h" +#include "level_table.h" #define POLE_NONE 0 #define POLE_TOUCHED_FLOOR 1 diff --git a/src/game/mario_actions_cutscene.c b/src/game/mario_actions_cutscene.c index 8d6c70b..8629524 100644 --- a/src/game/mario_actions_cutscene.c +++ b/src/game/mario_actions_cutscene.c @@ -23,6 +23,8 @@ #include "engine/behavior_script.h" #include "behavior_data.h" #include "object_list_processor.h" +#include "level_table.h" +#include "dialog_ids.h" // TODO: put this elsewhere enum SaveOption { SAVE_OPT_SAVE_AND_CONTINUE = 1, SAVE_OPT_SAVE_AND_QUIT, SAVE_OPT_CONTINUE_DONT_SAVE }; @@ -230,7 +232,7 @@ static void Unknown80256FF8(u16 *a0) { /** * get_star_collection_dialog: Determine what dialog should show when Mario - ** collects a star. + * collects a star. * Determines if Mario has collected enough stars to get a dialog for it, and * if so, return the dialog ID. Otherwise, return 0 */ @@ -242,7 +244,7 @@ s32 get_star_collection_dialog(struct MarioState *m) { for (i = 0; i < 6; i++) { numStarsRequired = sStarsNeededForDialog[i]; if (m->unkB8 < numStarsRequired && m->numStars >= numStarsRequired) { - dialogID = i + 0x8D; + dialogID = i + DIALOG_141; break; } } @@ -411,7 +413,7 @@ s32 act_reading_npc_dialog(struct MarioState *m) { if (m->flags & MARIO_CAP_IN_HAND) { set_mario_action(m, ACT_PUTTING_ON_CAP, 0); } else { - set_mario_action(m, m->heldObj == NULL ? ACT_IDLE : ACT_UNKNOWN_007, 0); + set_mario_action(m, m->heldObj == NULL ? ACT_IDLE : ACT_HOLD_IDLE, 0); } } vec3f_copy(m->marioObj->header.gfx.pos, m->pos); @@ -624,7 +626,7 @@ void general_star_dance_handler(struct MarioState *m, s32 isInWater) { level_trigger_warp(m, WARP_OP_STAR_EXIT); } else { enable_time_stop(); - create_dialog_box_with_response(gLastCompletedStarNum == 7 ? 13 : 14); + create_dialog_box_with_response(gLastCompletedStarNum == 7 ? DIALOG_013 : DIALOG_014); m->actionState = 1; } break; @@ -800,10 +802,10 @@ s32 act_unlocking_key_door(struct MarioState *m) { switch (m->marioObj->header.gfx.unk38.animFrame) { case 79: - play_sound(SOUND_GENERAL_SWITCH4, m->marioObj->header.gfx.cameraToObject); + play_sound(SOUND_GENERAL_DOOR_INSERT_KEY, m->marioObj->header.gfx.cameraToObject); break; case 111: - play_sound(SOUND_GENERAL_SWITCH2, m->marioObj->header.gfx.cameraToObject); + play_sound(SOUND_GENERAL_DOOR_TURN_KEY, m->marioObj->header.gfx.cameraToObject); break; } @@ -852,7 +854,7 @@ s32 act_unlocking_star_door(struct MarioState *m) { case 3: if (is_anim_at_end(m)) { save_file_set_flags(get_door_save_file_flag(m->usedObj)); - set_mario_action(m, ACT_READING_AUTOMATIC_DIALOG, 38); + set_mario_action(m, ACT_READING_AUTOMATIC_DIALOG, DIALOG_038); } break; } @@ -972,7 +974,7 @@ s32 act_warp_door_spawn(struct MarioState *m) { } } else if (m->usedObj->oAction == 0) { if (gShouldNotPlayCastleMusic == TRUE && gCurrLevelNum == LEVEL_CASTLE) { - set_mario_action(m, ACT_READING_AUTOMATIC_DIALOG, 21); + set_mario_action(m, ACT_READING_AUTOMATIC_DIALOG, DIALOG_021); } else { set_mario_action(m, ACT_IDLE, 0); } @@ -1822,7 +1824,7 @@ static s32 jumbo_star_cutscene_taking_off(struct MarioState *m) { switch (animFrame) { case 3: - play_sound(SOUND_MARIO_YAH_WAH_HOO + (D_80226EB8 % 3 << 16), + play_sound(SOUND_MARIO_YAH_WAH_HOO + (gAudioRandom % 3 << 16), m->marioObj->header.gfx.cameraToObject); break; diff --git a/src/game/mario_actions_moving.c b/src/game/mario_actions_moving.c index 8b9cdbd..210630e 100644 --- a/src/game/mario_actions_moving.c +++ b/src/game/mario_actions_moving.c @@ -539,6 +539,7 @@ void func_802652F0(struct MarioState *m) { if (val04 > 8.0f) { m->actionTimer = 2; } else { + //! (Speed Crash) If Mario's speed is more than 2^17. if ((val14 = (s32)(val04 / 4.0f * 0x10000)) < 0x1000) { val14 = 0x1000; } @@ -556,6 +557,7 @@ void func_802652F0(struct MarioState *m) { if (val04 > 8.0f) { m->actionTimer = 2; } else { + //! (Speed Crash) If Mario's speed is more than 2^17. if ((val14 = (s32)(val04 * 0x10000)) < 0x1000) { val14 = 0x1000; } @@ -572,6 +574,7 @@ void func_802652F0(struct MarioState *m) { } else if (val04 > 22.0f) { m->actionTimer = 3; } else { + //! (Speed Crash) If Mario's speed is more than 2^17. val14 = (s32)(val04 / 4.0f * 0x10000); set_mario_anim_with_accel(m, MARIO_ANIM_WALKING, val14); func_80263AD4(m, 10, 49); @@ -584,6 +587,7 @@ void func_802652F0(struct MarioState *m) { if (val04 < 18.0f) { m->actionTimer = 2; } else { + //! (Speed Crash) If Mario's speed is more than 2^17. val14 = (s32)(val04 / 4.0f * 0x10000); set_mario_anim_with_accel(m, MARIO_ANIM_RUNNING, val14); func_80263AD4(m, 9, 45); @@ -618,6 +622,7 @@ void func_8026570C(struct MarioState *m) { if (val04 > 6.0f) { m->actionTimer = 1; } else { + //! (Speed Crash) Crashes if Mario's speed exceeds or equals 2^15. val0C = (s32)(val04 * 0x10000); set_mario_anim_with_accel(m, MARIO_ANIM_SLOW_WALK_WITH_LIGHT_OBJ, val0C); func_80263AD4(m, 12, 62); @@ -632,6 +637,7 @@ void func_8026570C(struct MarioState *m) { } else if (val04 > 11.0f) { m->actionTimer = 2; } else { + //! (Speed Crash) Crashes if Mario's speed exceeds or equals 2^15. val0C = (s32)(val04 * 0x10000); set_mario_anim_with_accel(m, MARIO_ANIM_WALK_WITH_LIGHT_OBJ, val0C); func_80263AD4(m, 12, 62); @@ -644,6 +650,7 @@ void func_8026570C(struct MarioState *m) { if (val04 < 8.0f) { m->actionTimer = 1; } else { + //! (Speed Crash) Crashes if Mario's speed exceeds or equals 2^16. val0C = (s32)(val04 / 2.0f * 0x10000); set_mario_anim_with_accel(m, MARIO_ANIM_RUN_WITH_LIGHT_OBJ, val0C); func_80263AD4(m, 10, 49); @@ -667,6 +674,7 @@ void func_802659E8(struct MarioState *m, Vec3f startPos) { f32 dx = m->pos[0] - startPos[0]; f32 dz = m->pos[2] - startPos[2]; f32 movedDistance = sqrtf(dx * dx + dz * dz); + //! (Speed Crash) If a wall is after moving 16384 distance, this crashes. s32 val04 = (s32)(movedDistance * 2.0f * 0x10000); if (m->forwardVel > 6.0f) { @@ -711,6 +719,8 @@ void func_80265C28(struct MarioState *m, s16 startYaw) { if (animID == MARIO_ANIM_WALKING || animID == MARIO_ANIM_RUNNING) { dYaw = m->faceAngle[1] - startYaw; + //! (Speed Crash) These casts can cause a crash if (dYaw * forwardVel / 12) or + //! (forwardVel * 170) exceed or equal 2^31. val02 = -(s16)(dYaw * m->forwardVel / 12.0f); val00 = (s16)(m->forwardVel * 170.0f); @@ -741,6 +751,9 @@ void func_80265DBC(struct MarioState *m, s16 startYaw) { struct MarioBodyState *val0C = m->marioBodyState; struct Object *marioObj = m->marioObj; s16 dYaw = m->faceAngle[1] - startYaw; + //! (Speed Crash) These casts can cause a crash if (dYaw * forwardVel / 12) or + //! (forwardVel * 170) exceed or equal 2^31. Harder (if not impossible to do) + //! while on a Koopa Shell making this less of an issue. s16 val04 = -(s16)(dYaw * m->forwardVel / 12.0f); s16 val02 = (s16)(m->forwardVel * 170.0f); @@ -928,7 +941,7 @@ s32 act_hold_heavy_walking(struct MarioState *m) { } if (m->input & INPUT_UNKNOWN_5) { - return set_mario_action(m, ACT_UNKNOWN_008, 0); + return set_mario_action(m, ACT_HOLD_HEAVY_IDLE, 0); } m->intendedMag *= 0.1f; @@ -1111,6 +1124,7 @@ s32 act_decelerating(struct MarioState *m) { adjust_sound_for_speed(m); m->particleFlags |= PARTICLE_DUST; } else { + // (Speed Crash) Crashes if speed exceeds 2^17. if ((val0C = (s32)(m->forwardVel / 4.0f * 0x10000)) < 0x1000) { val0C = 0x1000; } @@ -1151,7 +1165,7 @@ s32 act_hold_decelerating(struct MarioState *m) { } if (update_decelerating_speed(m)) { - return set_mario_action(m, ACT_UNKNOWN_007, 0); + return set_mario_action(m, ACT_HOLD_IDLE, 0); } m->intendedMag *= 0.4f; @@ -1176,6 +1190,7 @@ s32 act_hold_decelerating(struct MarioState *m) { adjust_sound_for_speed(m); m->particleFlags |= PARTICLE_DUST; } else { + //! (Speed Crash) This crashes if Mario has more speed than 2^15 speed. if ((val0C = (s32)(m->forwardVel * 0x10000)) < 0x1000) { val0C = 0x1000; } diff --git a/src/game/mario_actions_object.c b/src/game/mario_actions_object.c index 122ae65..749ae59 100644 --- a/src/game/mario_actions_object.c +++ b/src/game/mario_actions_object.c @@ -195,13 +195,13 @@ s32 act_picking_up(struct MarioState *m) { m->marioBodyState->grabPos = GRAB_POS_HEAVY_OBJ; set_mario_animation(m, MARIO_ANIM_GRAB_HEAVY_OBJECT); if (is_anim_at_end(m)) { - set_mario_action(m, ACT_UNKNOWN_008, 0); + set_mario_action(m, ACT_HOLD_HEAVY_IDLE, 0); } } else { m->marioBodyState->grabPos = GRAB_POS_LIGHT_OBJ; set_mario_animation(m, MARIO_ANIM_PICK_UP_LIGHT_OBJ); if (is_anim_at_end(m)) { - set_mario_action(m, ACT_UNKNOWN_007, 0); + set_mario_action(m, ACT_HOLD_IDLE, 0); } } } @@ -215,6 +215,9 @@ s32 act_dive_picking_up(struct MarioState *m) { return drop_and_set_mario_action(m, ACT_UNKNOWN_026, 0); } + //! Hands-free holding. Landing on a slope or being pushed off a ledge while + // landing from a dive grab sets mario's action to a non-holding action + // without dropping the object, causing the hands-free holding glitch. if (m->input & INPUT_OFF_FLOOR) { return set_mario_action(m, ACT_FREEFALL, 0); } @@ -223,7 +226,7 @@ s32 act_dive_picking_up(struct MarioState *m) { return set_mario_action(m, ACT_BEGIN_SLIDING, 0); } - animated_stationary_ground_step(m, MARIO_ANIM_STOP_SLIDE_LIGHT_OBJ, ACT_UNKNOWN_007); + animated_stationary_ground_step(m, MARIO_ANIM_STOP_SLIDE_LIGHT_OBJ, ACT_HOLD_IDLE); return FALSE; } diff --git a/src/game/mario_actions_stationary.c b/src/game/mario_actions_stationary.c index e55011e..d81c1cf 100644 --- a/src/game/mario_actions_stationary.c +++ b/src/game/mario_actions_stationary.c @@ -441,7 +441,7 @@ s32 act_coughing(struct MarioState *m) { return 0; } -s32 func_802615C4(struct MarioState *m) { +s32 act_hold_idle(struct MarioState *m) { if (segmented_to_virtual(&bhvJumpingBox) == m->heldObj->behavior) { return set_mario_action(m, ACT_CRAZY_BOX_BOUNCE, 0); } @@ -463,7 +463,7 @@ s32 func_802615C4(struct MarioState *m) { return 0; } -s32 func_802616C4(struct MarioState *m) { +s32 act_hold_heavy_idle(struct MarioState *m) { if (m->input & INPUT_UNKNOWN_10) { return drop_and_set_mario_action(m, ACT_UNKNOWN_026, 0); } @@ -582,7 +582,7 @@ s32 act_panting(struct MarioState *m) { } if (set_mario_animation(m, MARIO_ANIM_WALK_PANTING) == 1) { - play_sound(SOUND_MARIO_PANTING + ((D_80226EB8 % 3U) << 0x10), + play_sound(SOUND_MARIO_PANTING + ((gAudioRandom % 3U) << 0x10), m->marioObj->header.gfx.cameraToObject); } @@ -591,7 +591,7 @@ s32 act_panting(struct MarioState *m) { return 0; } -s32 func_80261C74(struct MarioState *m) { +s32 act_hold_panting_unused(struct MarioState *m) { if (m->marioObj->oInteractStatus & INT_STATUS_MARIO_DROP_OBJECT) { return drop_and_set_mario_action(m, ACT_PANTING, 0); } @@ -601,7 +601,7 @@ s32 func_80261C74(struct MarioState *m) { } if (m->health >= 0x500) { - return set_mario_action(m, ACT_UNKNOWN_007, 0); + return set_mario_action(m, ACT_HOLD_IDLE, 0); } if (func_802606DC(m) != 0) { @@ -678,7 +678,7 @@ s32 func_80261F8C(struct MarioState *m) { return set_mario_action(m, ACT_THROWING, 0); } - func_80261D70(m, MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ, ACT_UNKNOWN_007); + func_80261D70(m, MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); return 0; } @@ -963,7 +963,7 @@ s32 func_80262CEC(struct MarioState *m) { return set_mario_action(m, ACT_THROWING, 0); } - func_802627B8(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, ACT_UNKNOWN_007); + func_802627B8(m, MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); return 0; } @@ -983,7 +983,7 @@ s32 func_80262DE4(struct MarioState *m) { if (m->input & INPUT_B_PRESSED) { return set_mario_action(m, ACT_THROWING, 0); } - func_802627B8(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ, ACT_UNKNOWN_007); + func_802627B8(m, MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ, ACT_HOLD_IDLE); return 0; } @@ -1130,9 +1130,9 @@ s32 mario_execute_stationary_action(struct MarioState *m) { case ACT_SLEEPING: sp24 = act_sleeping(m); break; case ACT_WAKING_UP: sp24 = act_waking_up(m); break; case ACT_PANTING: sp24 = act_panting(m); break; - case ACT_UNKNOWN_006: sp24 = func_80261C74(m); break; - case ACT_UNKNOWN_007: sp24 = func_802615C4(m); break; - case ACT_UNKNOWN_008: sp24 = func_802616C4(m); break; + case ACT_HOLD_PANTING_UNUSED: sp24 = act_hold_panting_unused(m); break; + case ACT_HOLD_IDLE: sp24 = act_hold_idle(m); break; + case ACT_HOLD_HEAVY_IDLE: sp24 = act_hold_heavy_idle(m); break; case ACT_IN_QUICKSAND: sp24 = act_in_quicksand(m); break; case ACT_STANDING_AGAINST_WALL: sp24 = act_standing_against_wall(m); break; case ACT_COUGHING: sp24 = act_coughing(m); break; diff --git a/src/game/mario_actions_submerged.c b/src/game/mario_actions_submerged.c index fcf6ea5..b688c91 100644 --- a/src/game/mario_actions_submerged.c +++ b/src/game/mario_actions_submerged.c @@ -14,6 +14,7 @@ #include "camera.h" #include "audio/external.h" #include "behavior_data.h" +#include "level_table.h" #define MIN_SWIM_STRENGTH 160 #define MIN_SWIM_SPEED 16.0f diff --git a/src/game/mario_misc.c b/src/game/mario_misc.c index b1fe201..5d5c013 100644 --- a/src/game/mario_misc.c +++ b/src/game/mario_misc.c @@ -23,6 +23,34 @@ #include "skybox.h" #include "interaction.h" #include "object_list_processor.h" +#include "dialog_ids.h" + +#define TOAD_STAR_1_REQUIREMENT 12 +#define TOAD_STAR_2_REQUIREMENT 25 +#define TOAD_STAR_3_REQUIREMENT 35 + +#define TOAD_STAR_1_DIALOG DIALOG_082 +#define TOAD_STAR_2_DIALOG DIALOG_076 +#define TOAD_STAR_3_DIALOG DIALOG_083 + +#define TOAD_STAR_1_DIALOG_AFTER DIALOG_154 +#define TOAD_STAR_2_DIALOG_AFTER DIALOG_155 +#define TOAD_STAR_3_DIALOG_AFTER DIALOG_156 + +enum ToadMessageStates { + TOAD_MESSAGE_FADED, + TOAD_MESSAGE_OPAQUE, + TOAD_MESSAGE_OPACIFYING, + TOAD_MESSAGE_FADING, + TOAD_MESSAGE_TALKING +}; + +enum UnlockDoorStarStates { + UNLOCK_DOOR_STAR_RISING, + UNLOCK_DOOR_STAR_WAITING, + UNLOCK_DOOR_STAR_SPAWNING_PARTICLES, + UNLOCK_DOOR_STAR_DONE +}; static s8 D_8032CDF0[7] = { 0x01, 0x02, 0x01, 0x00, 0x01, 0x02, 0x01 }; static s8 D_8032CDF8[] = { 0x0a, 0x0c, 0x10, 0x18, 0x0a, 0x0a, 0x0a, 0x0e, 0x14, 0x1e, @@ -80,20 +108,20 @@ static void bhvToadMessage_opaque(void) { } static void bhvToadMessage_talking(void) { - if (obj_update_dialog_with_cutscene(3, 1, CUTSCENE_DIALOG_1, gCurrentObject->oToadMessageDialogNum) != 0) { + if (obj_update_dialog_with_cutscene(3, 1, CUTSCENE_DIALOG_1, gCurrentObject->oToadMessageDialogId) != 0) { gCurrentObject->oToadMessageRecentlyTalked = 1; gCurrentObject->oToadMessageState = TOAD_MESSAGE_FADING; - switch (gCurrentObject->oToadMessageDialogNum) { + switch (gCurrentObject->oToadMessageDialogId) { case TOAD_STAR_1_DIALOG: - gCurrentObject->oToadMessageDialogNum = TOAD_STAR_1_DIALOG_AFTER; + gCurrentObject->oToadMessageDialogId = TOAD_STAR_1_DIALOG_AFTER; bhv_spawn_star_objects(0); break; case TOAD_STAR_2_DIALOG: - gCurrentObject->oToadMessageDialogNum = TOAD_STAR_2_DIALOG_AFTER; + gCurrentObject->oToadMessageDialogId = TOAD_STAR_2_DIALOG_AFTER; bhv_spawn_star_objects(1); break; case TOAD_STAR_3_DIALOG: - gCurrentObject->oToadMessageDialogNum = TOAD_STAR_3_DIALOG_AFTER; + gCurrentObject->oToadMessageDialogId = TOAD_STAR_3_DIALOG_AFTER; bhv_spawn_star_objects(2); break; } @@ -138,31 +166,31 @@ void bhvToadMessage_loop(void) { void bhvToadMessage_init(void) { s32 saveFlags = save_file_get_flags(); s32 starCount = save_file_get_total_star_count(gCurrSaveFileNum - 1, 0, 24); - s32 dialogNum = (gCurrentObject->oBehParams >> 24) & 0xFF; + s32 dialogId = (gCurrentObject->oBehParams >> 24) & 0xFF; s32 enoughStars = TRUE; - switch (dialogNum) { + switch (dialogId) { case TOAD_STAR_1_DIALOG: enoughStars = (starCount >= TOAD_STAR_1_REQUIREMENT); if (saveFlags & (1 << 24)) { - dialogNum = TOAD_STAR_1_DIALOG_AFTER; + dialogId = TOAD_STAR_1_DIALOG_AFTER; } break; case TOAD_STAR_2_DIALOG: enoughStars = (starCount >= TOAD_STAR_2_REQUIREMENT); if (saveFlags & (1 << 25)) { - dialogNum = TOAD_STAR_2_DIALOG_AFTER; + dialogId = TOAD_STAR_2_DIALOG_AFTER; } break; case TOAD_STAR_3_DIALOG: enoughStars = (starCount >= TOAD_STAR_3_REQUIREMENT); if (saveFlags & (1 << 26)) { - dialogNum = TOAD_STAR_3_DIALOG_AFTER; + dialogId = TOAD_STAR_3_DIALOG_AFTER; } break; } if (enoughStars) { - gCurrentObject->oToadMessageDialogNum = dialogNum; + gCurrentObject->oToadMessageDialogId = dialogId; gCurrentObject->oToadMessageRecentlyTalked = 0; gCurrentObject->oToadMessageState = TOAD_MESSAGE_FADED; gCurrentObject->oOpacity = 81; diff --git a/src/game/mario_misc.h b/src/game/mario_misc.h index ba6fde5..f8858bc 100644 --- a/src/game/mario_misc.h +++ b/src/game/mario_misc.h @@ -3,34 +3,6 @@ #include "types.h" -#define TOAD_STAR_1_REQUIREMENT 12 -#define TOAD_STAR_2_REQUIREMENT 25 -#define TOAD_STAR_3_REQUIREMENT 35 - -#define TOAD_STAR_1_DIALOG 82 -#define TOAD_STAR_2_DIALOG 76 -#define TOAD_STAR_3_DIALOG 83 - -#define TOAD_STAR_1_DIALOG_AFTER 154 -#define TOAD_STAR_2_DIALOG_AFTER 155 -#define TOAD_STAR_3_DIALOG_AFTER 156 - - -enum ToadMessageStates { - TOAD_MESSAGE_FADED, - TOAD_MESSAGE_OPAQUE, - TOAD_MESSAGE_OPACIFYING, - TOAD_MESSAGE_FADING, - TOAD_MESSAGE_TALKING -}; - -enum UnlockDoorStarStates { - UNLOCK_DOOR_STAR_RISING, - UNLOCK_DOOR_STAR_WAITING, - UNLOCK_DOOR_STAR_SPAWNING_PARTICLES, - UNLOCK_DOOR_STAR_DONE -}; - extern struct GraphNodeObject D_80339FE0; extern struct MarioBodyState gBodyStates[2]; diff --git a/src/game/moving_texture.c b/src/game/moving_texture.c index f18758c..9fcb8e9 100644 --- a/src/game/moving_texture.c +++ b/src/game/moving_texture.c @@ -445,7 +445,7 @@ Gfx *movtex_gen_from_quad(s16 y, struct MovtexQuad *quad) { // Only add commands to change the texture when necessary if (textureId != gMovetexLastTextureId) { - if (textureId == TEXTURE_MIST) { // an G_IM_FMT_IA texture + if (textureId == TEXTURE_MIST) { // an ia16 texture if (0) { } gDPSetTextureImage(gfx++, G_IM_FMT_IA, G_IM_SIZ_16b, 1, gMovtexIdToTexture[textureId]); diff --git a/src/game/obj_behaviors.c b/src/game/obj_behaviors.c index 492e934..92a66bc 100644 --- a/src/game/obj_behaviors.c +++ b/src/game/obj_behaviors.c @@ -27,62 +27,98 @@ #include "envfx_bubbles.h" #include "ingame_menu.h" #include "interaction.h" +#include "level_table.h" +#include "dialog_ids.h" +#include "course_table.h" + +/** + * @file obj_behaviors.c + * This file contains a portion of the obj behaviors and many helper functions for those + * specific behaviors. Few functions besides the bhv_ functions are used elsewhere in the repo. + */ #define o gCurrentObject -#define OBJ_COL_FLAG_GROUNDED (1 << 0) -#define OBJ_COL_FLAG_HIT_WALL (1 << 1) +#define OBJ_COL_FLAG_GROUNDED (1 << 0) +#define OBJ_COL_FLAG_HIT_WALL (1 << 1) #define OBJ_COL_FLAG_UNDERWATER (1 << 2) -#define OBJ_COL_FLAG_NO_Y_VEL (1 << 3) -#define OBJ_COL_FLAGS_LANDED (OBJ_COL_FLAG_GROUNDED | OBJ_COL_FLAG_NO_Y_VEL) +#define OBJ_COL_FLAG_NO_Y_VEL (1 << 3) +#define OBJ_COL_FLAGS_LANDED (OBJ_COL_FLAG_GROUNDED | OBJ_COL_FLAG_NO_Y_VEL) -struct Surface *D_803600E0; +/** + * Current object floor as defined in object_step. + */ +static struct Surface *sObjFloor; -/* DATA */ -s8 D_80331500 = 1; -s16 D_80331504 = 0; -s8 D_80331508 = 0; -s8 D_8033150C = 0; -s8 D_80331510 = 0; +/** + * Set to false when an object close to the floor should not be oriented in reference + * to it. Happens with boulder, falling pillar, and the rolling snowman body. + */ +static s8 sOrientObjWithFloor = TRUE; + +/** + * Keeps track of Mario's previous non-zero room. + * Helps keep track of room when Mario is over an object. + */ +s16 sPrevCheckMarioRoom = 0; + +/** + * Tracks whether or not Yoshi has walked/jumped off the roof. + */ +s8 sYoshiDead = FALSE; extern void *ccm_seg7_trajectory_snowman; extern void *inside_castle_seg7_trajectory_mips; -void func_802E2F40(void) { - D_80331508 = 0; +/** + * Resets yoshi as spawned/despawned upon new file select. + * Possibly a function with stubbed code. + */ +void set_yoshi_as_not_dead(void) { + sYoshiDead = FALSE; } -Gfx *func_802E2F58(s32 arg0, struct Object *arg1, UNUSED s32 arg2) { - Gfx *sp34; - Gfx *sp30; - struct Object *sp2c; - struct Object *sp28; - UNUSED struct Object *sp24; - UNUSED s32 sp20; +/** + * An unused geo function. Bears strong similarity to Geo18_802B7D44, and relates something + * of the opacity of an object to something else. Perhaps like, giving a parent object the same + * opacity? + */ +Gfx UNUSED *geo_obj_transparency_something(s32 callContext, struct GraphNode *node, UNUSED Mat4 *mtx) { + Gfx *gfxHead; + Gfx *gfx; + struct Object *heldObject; + struct Object *obj; + UNUSED struct Object *unusedObject; + UNUSED s32 pad; + + gfxHead = NULL; + + if (callContext == GEO_CONTEXT_RENDER) { + heldObject = (struct Object *) gCurGraphNodeObject; + obj = (struct Object *) node; + unusedObject = (struct Object *) node; - sp34 = NULL; - if (arg0 == 1) { - sp2c = (struct Object *) gCurGraphNodeObject; - sp28 = arg1; - sp24 = arg1; if (gCurGraphNodeHeldObject != NULL) { - sp2c = gCurGraphNodeHeldObject->objNode; + heldObject = gCurGraphNodeHeldObject->objNode; } - sp34 = alloc_display_list(3 * sizeof(Gfx)); - sp30 = sp34; - sp28->header.gfx.node.flags = - (sp28->header.gfx.node.flags & 0xFF) | 0x500; // sets bits 8, 10 and zeros upper byte + gfxHead = alloc_display_list(3 * sizeof(Gfx)); + gfx = gfxHead; + obj->header.gfx.node.flags = + (obj->header.gfx.node.flags & 0xFF) | (GRAPH_NODE_TYPE_FUNCTIONAL | GRAPH_NODE_TYPE_400); // sets bits 8, 10 and zeros upper byte - gDPSetEnvColor(sp30++, 0xFF, 0xFF, 0xFF, sp2c->oOpacity); + gDPSetEnvColor(gfx++, 255, 255, 255, heldObject->oOpacity); - gSPEndDisplayList(sp30); + gSPEndDisplayList(gfx); } - return sp34; + return gfxHead; } +/** + * An absolute value function. + */ f32 absf_2(f32 f) { if (f < 0) { f *= -1.0f; @@ -90,31 +126,22 @@ f32 absf_2(f32 f) { return f; } -// f12 = objVelX -// f14 = objVelZ -// sp8 = nX -// spc = nY -// sp10 = nZ -// sp14 = objYawX - -void TurnObjAwayFromSurface(f32 objVelX, f32 objVelZ, f32 nX, UNUSED f32 nY, f32 nZ, f32 *objYawX, +/** + * Turns an object away from floors/walls that it runs into. + */ +void turn_obj_away_from_surface(f32 velX, f32 velZ, f32 nX, UNUSED f32 nY, f32 nZ, f32 *objYawX, f32 *objYawZ) { - *objYawX = (nZ * nZ - nX * nX) * objVelX / (nX * nX + nZ * nZ) - - 2 * objVelZ * (nX * nZ) / (nX * nX + nZ * nZ); + *objYawX = (nZ * nZ - nX * nX) * velX / (nX * nX + nZ * nZ) + - 2 * velZ * (nX * nZ) / (nX * nX + nZ * nZ); - *objYawZ = (nX * nX - nZ * nZ) * objVelZ / (nX * nX + nZ * nZ) - - 2 * objVelX * (nX * nZ) / (nX * nX + nZ * nZ); + *objYawZ = (nX * nX - nZ * nZ) * velZ / (nX * nX + nZ * nZ) + - 2 * velX * (nX * nZ) / (nX * nX + nZ * nZ); } -// sp78 = objVelX -// sp7c = objVelZ -// sp70, f12 = objNewX -// sp74, f14 = objY -// sp80 = objNewZ -// sp38 = objVelXCopy -// sp34 = objVelZCopy - -s32 ObjFindWall(f32 objNewX, f32 objY, f32 objNewZ, f32 objVelX, f32 objVelZ) { +/** + * Finds any wall collisions, applies them, and turns away from the surface. + */ +s32 obj_find_wall(f32 objNewX, f32 objY, f32 objNewZ, f32 objVelX, f32 objVelZ) { struct WallCollisionData hitbox; f32 wall_nX, wall_nY, wall_nZ, objVelXCopy, objVelZCopy, objYawX, objYawZ; @@ -128,87 +155,93 @@ s32 ObjFindWall(f32 objNewX, f32 objY, f32 objNewZ, f32 objVelX, f32 objVelZ) { o->oPosX = hitbox.x; o->oPosY = hitbox.y; o->oPosZ = hitbox.z; + wall_nX = hitbox.walls[0]->normal.x; wall_nY = hitbox.walls[0]->normal.y; wall_nZ = hitbox.walls[0]->normal.z; + objVelXCopy = objVelX; objVelZCopy = objVelZ; - TurnObjAwayFromSurface(objVelXCopy, objVelZCopy, wall_nX, wall_nY, wall_nZ, &objYawX, &objYawZ); + + // Turns away from the first wall only. + turn_obj_away_from_surface(objVelXCopy, objVelZCopy, wall_nX, wall_nY, wall_nZ, &objYawX, &objYawZ); + o->oMoveAngleYaw = atan2s(objYawZ, objYawX); - return 0; + return FALSE; } - return 1; + return TRUE; } -// sp48 = objFloor -// sp4c = floorY -// sp50 = objVelX -// sp54 = objVelZ -// sp38 = objVelXCopy -// sp34 = objVelZCopy - -s32 TurnObjAwayFromAwkwardFloor(struct Surface *objFloor, f32 floorY, f32 objVelX, f32 objVelZ) { +/** + * Turns an object away from steep floors, similarly to walls. + */ +s32 turn_obj_away_from_steep_floor(struct Surface *objFloor, f32 floorY, f32 objVelX, f32 objVelZ) { f32 floor_nX, floor_nY, floor_nZ, objVelXCopy, objVelZCopy, objYawX, objYawZ; if (objFloor == NULL) { - //! TRUNC overflow exception after 36 minutes + //! (OOB Object Crash) TRUNC overflow exception after 36 minutes o->oMoveAngleYaw += 32767.999200000002; /* ¯\_(ツ)_/¯ */ - return 0; + return FALSE; } floor_nX = objFloor->normal.x; floor_nY = objFloor->normal.y; floor_nZ = objFloor->normal.z; + // If the floor is steep and we are below it (i.e. walking into it), turn away from the floor. if (floor_nY < 0.5 && floorY > o->oPosY) { objVelXCopy = objVelX; objVelZCopy = objVelZ; - TurnObjAwayFromSurface(objVelXCopy, objVelZCopy, floor_nX, floor_nY, floor_nZ, &objYawX, + turn_obj_away_from_surface(objVelXCopy, objVelZCopy, floor_nX, floor_nY, floor_nZ, &objYawX, &objYawZ); o->oMoveAngleYaw = atan2s(objYawZ, objYawX); - return 0; + return FALSE; } - return 1; + return TRUE; } -// sp38 = obj -// sp3c = normalX -// sp40 = normalY -// sp44 = normalZ - -void ObjOrientGraph(struct Object *obj, f32 normalX, f32 normalY, f32 normalZ) { - Vec3f sp2c, sp20; +/** + * Orients an object with the given normals, typically the surface under the object. + */ +void obj_orient_graph(struct Object *obj, f32 normalX, f32 normalY, f32 normalZ) { + Vec3f objVisualPosition, surfaceNormals; Mat4 *throwMatrix; - if (D_80331500 == 0) { + // Passes on orienting certain objects that shouldn't be oriented, like boulders. + if (sOrientObjWithFloor == FALSE) { return; } - if ((obj->header.gfx.node.flags & 0x4) != 0) { - return; // bit 2 + + // Passes on orienting billboard objects, i.e. coins, trees, etc. + if ((obj->header.gfx.node.flags & GRAPH_RENDER_BILLBOARD) != 0) { + return; } + throwMatrix = alloc_display_list(sizeof(*throwMatrix)); + // If out of memory, fail to try orienting the object. if (throwMatrix == NULL) { return; } - sp2c[0] = obj->oPosX; - sp2c[1] = obj->oPosY + obj->oGraphYOffset; - sp2c[2] = obj->oPosZ; + objVisualPosition[0] = obj->oPosX; + objVisualPosition[1] = obj->oPosY + obj->oGraphYOffset; + objVisualPosition[2] = obj->oPosZ; - sp20[0] = normalX; - sp20[1] = normalY; - sp20[2] = normalZ; + surfaceNormals[0] = normalX; + surfaceNormals[1] = normalY; + surfaceNormals[2] = normalZ; - mtxf_align_terrain_normal(*throwMatrix, sp20, sp2c, obj->oFaceAngleYaw); + mtxf_align_terrain_normal(*throwMatrix, surfaceNormals, objVisualPosition, obj->oFaceAngleYaw); obj->header.gfx.throwMatrix = (void *) throwMatrix; } -// sp4 = floor_nY - -void CalcObjFriction(f32 *objFriction, f32 floor_nY) { +/** + * Determines an object's forward speed multiplier. + */ +void calc_obj_friction(f32 *objFriction, f32 floor_nY) { if (floor_nY < 0.2 && o->oFriction < 0.9999) { *objFriction = 0; } else { @@ -216,20 +249,16 @@ void CalcObjFriction(f32 *objFriction, f32 floor_nY) { } } -// sp28 = objFloor -// sp2c = objFloorY -// sp30 = objVelX -// sp34 = objVelZ -// sp24 = floor_nX -// sp20 = floor_nY -// sp1c = floor_nZ - -void CalcNewObjVelAndPosY(struct Surface *objFloor, f32 objFloorY, f32 objVelX, f32 objVelZ) { +/** + * Updates an objects speed for gravity and updates Y position. + */ +void calc_new_obj_vel_and_pos_y(struct Surface *objFloor, f32 objFloorY, f32 objVelX, f32 objVelZ) { f32 floor_nX = objFloor->normal.x; f32 floor_nY = objFloor->normal.y; f32 floor_nZ = objFloor->normal.z; f32 objFriction; + // Caps vertical speed with a "terminal velocity". o->oVelY -= o->oGravity; if (o->oVelY > 75.0) { o->oVelY = 75.0; @@ -239,8 +268,12 @@ void CalcNewObjVelAndPosY(struct Surface *objFloor, f32 objFloorY, f32 objVelX, } o->oPosY += o->oVelY; + + //Snap the object up to the floor. if (o->oPosY < objFloorY) { o->oPosY = objFloorY; + + // Bounces an object if the ground is hit fast enough. if (o->oVelY < -17.5) { o->oVelY = -(o->oVelY / 2.0f); } else { @@ -248,15 +281,18 @@ void CalcNewObjVelAndPosY(struct Surface *objFloor, f32 objFloorY, f32 objVelX, } } - //! potential TRUNC crash + //! (Obj Position Crash) If you got an object with height past 2^31, the game would crash. if ((s32) o->oPosY >= (s32) objFloorY && (s32) o->oPosY < (s32) objFloorY + 37) { - ObjOrientGraph(o, floor_nX, floor_nY, floor_nZ); + obj_orient_graph(o, floor_nX, floor_nY, floor_nZ); + + // Adds horizontal component of gravity for horizontal speed. objVelX += floor_nX * (floor_nX * floor_nX + floor_nZ * floor_nZ) / (floor_nX * floor_nX + floor_nY * floor_nY + floor_nZ * floor_nZ) * o->oGravity * 2; objVelZ += floor_nZ * (floor_nX * floor_nX + floor_nZ * floor_nZ) / (floor_nX * floor_nX + floor_nY * floor_nY + floor_nZ * floor_nZ) * o->oGravity * 2; + if (objVelX < 0.000001 && objVelX > -0.000001) { objVelX = 0; } @@ -268,22 +304,12 @@ void CalcNewObjVelAndPosY(struct Surface *objFloor, f32 objFloorY, f32 objVelX, o->oMoveAngleYaw = atan2s(objVelZ, objVelX); } - CalcObjFriction(&objFriction, floor_nY); + calc_obj_friction(&objFriction, floor_nY); o->oForwardVel = sqrtf(objVelX * objVelX + objVelZ * objVelZ) * objFriction; } } -// sp28 = objFloor -// sp2c = floorY -// sp30 = objVelX -// sp34 = objVelZ -// sp38 = waterY -// sp24 = floor_nX -// sp20 = floor_nY -// sp1c = floor_nZ -// sp18 = netYAccel - -void CalcNewObjVelAndPosYUnderwater(struct Surface *objFloor, f32 floorY, f32 objVelX, f32 objVelZ, +void calc_new_obj_vel_and_pos_y_underwater(struct Surface *objFloor, f32 floorY, f32 objVelX, f32 objVelZ, f32 waterY) { f32 floor_nX = objFloor->normal.x; f32 floor_nY = objFloor->normal.y; @@ -291,6 +317,8 @@ void CalcNewObjVelAndPosYUnderwater(struct Surface *objFloor, f32 floorY, f32 ob f32 netYAccel = (1.0f - o->oBuoyancy) * (-1.0f * o->oGravity); o->oVelY -= netYAccel; + + // Caps vertical speed with a "terminal velocity". if (o->oVelY > 75.0) { o->oVelY = 75.0; } @@ -299,8 +327,12 @@ void CalcNewObjVelAndPosYUnderwater(struct Surface *objFloor, f32 floorY, f32 ob } o->oPosY += o->oVelY; + + //Snap the object up to the floor. if (o->oPosY < floorY) { o->oPosY = floorY; + + // Bounces an object if the ground is hit fast enough. if (o->oVelY < -17.5) { o->oVelY = -(o->oVelY / 2); } else { @@ -308,12 +340,15 @@ void CalcNewObjVelAndPosYUnderwater(struct Surface *objFloor, f32 floorY, f32 ob } } - if (o->oForwardVel > 12.5 && (waterY + 30.0f) > o->oPosY && waterY - 30.0f < o->oPosY) { + // If moving fast near the surface of the water, flip vertical speed? To emulate skipping? + if (o->oForwardVel > 12.5 && (waterY + 30.0f) > o->oPosY && (waterY - 30.0f) < o->oPosY) { o->oVelY = -o->oVelY; } if ((s32) o->oPosY >= (s32) floorY && (s32) o->oPosY < (s32) floorY + 37) { - ObjOrientGraph(o, floor_nX, floor_nY, floor_nZ); + obj_orient_graph(o, floor_nX, floor_nY, floor_nZ); + + // Adds horizontal component of gravity for horizontal speed. objVelX += floor_nX * (floor_nX * floor_nX + floor_nZ * floor_nZ) / (floor_nX * floor_nX + floor_nY * floor_nY + floor_nZ * floor_nZ) * netYAccel * 2; objVelZ += floor_nZ * (floor_nX * floor_nX + floor_nZ * floor_nZ) @@ -334,14 +369,17 @@ void CalcNewObjVelAndPosYUnderwater(struct Surface *objFloor, f32 floorY, f32 ob if (objVelX != 0 || objVelZ != 0) { o->oMoveAngleYaw = atan2s(objVelZ, objVelX); } + + // Decreases both vertical velocity and forward velocity. Likely so that skips above + // don't loop infinitely. o->oForwardVel = sqrtf(objVelX * objVelX + objVelZ * objVelZ) * 0.8; o->oVelY *= 0.8; } -// sp4 = xVel -// sp0 = zVel - -void ObjUpdatePosVelXZ(void) { +/** + * Updates an objects position from oForwardVel and oMoveAngleYaw. + */ +void obj_update_pos_vel_xz(void) { f32 xVel = o->oForwardVel * sins(o->oMoveAngleYaw); f32 zVel = o->oForwardVel * coss(o->oMoveAngleYaw); @@ -349,92 +387,105 @@ void ObjUpdatePosVelXZ(void) { o->oPosZ += zVel; } -// sp20 = waterY -// sp24 = objY -// sp1c = globalTimer - -void ObjSplash(s32 waterY, s32 objY) { +/** + * Generates splashes if at surface of water, entering water, or bubbles + * if underwater. + */ +void obj_splash(s32 waterY, s32 objY) { u32 globalTimer = gGlobalTimer; + + // Spawns waves if near surface of water and plays a noise if entering. if ((f32)(waterY + 30) > o->oPosY && o->oPosY > (f32)(waterY - 30)) { spawn_object(o, MODEL_WATER_WAVES_SURF, bhvObjectWaterWave); + if (o->oVelY < -20.0f) { PlaySound2(SOUND_OBJ_DIVING_INTO_WATER); } } + + // Spawns bubbles if underwater. if ((objY + 50) < waterY && (globalTimer & 0x1F) == 0) { - spawn_object(o, MODEL_WHITE_PARTICLE_SMALL, bhvObjectBubble); /* 0x1F is bits 4-0 */ + spawn_object(o, MODEL_WHITE_PARTICLE_SMALL, bhvObjectBubble); } } -// sp3c = objX -// sp38 = objY -// sp34 = objZ -// sp28 = objVelX -// sp24 = objVelZ -// sp30 = floorY -// sp2c = waterY -// sp22 = collisionFlags - -s32 ObjectStep(void) { +/** + * Generic object move function. Handles walls, water, floors, and gravity. + * Returns flags for certain interactions. + */ +s32 object_step(void) { f32 objX = o->oPosX; f32 objY = o->oPosY; f32 objZ = o->oPosZ; + f32 floorY; f32 waterY = -10000.0; + f32 objVelX = o->oForwardVel * sins(o->oMoveAngleYaw); f32 objVelZ = o->oForwardVel * coss(o->oMoveAngleYaw); + s16 collisionFlags = 0; - if (ObjFindWall(objX + objVelX, objY, objZ + objVelZ, objVelX, objVelZ) == 0) { + // Find any wall collisions, receive the push, and set the flag. + if (obj_find_wall(objX + objVelX, objY, objZ + objVelZ, objVelX, objVelZ) == 0) { collisionFlags += OBJ_COL_FLAG_HIT_WALL; } - floorY = find_floor(objX + objVelX, objY, objZ + objVelZ, &D_803600E0); - if (TurnObjAwayFromAwkwardFloor(D_803600E0, floorY, objVelX, objVelZ) == 1) { + + floorY = find_floor(objX + objVelX, objY, objZ + objVelZ, &sObjFloor); + if (turn_obj_away_from_steep_floor(sObjFloor, floorY, objVelX, objVelZ) == 1) { waterY = find_water_level(objX + objVelX, objZ + objVelZ); if (waterY > objY) { - CalcNewObjVelAndPosYUnderwater(D_803600E0, floorY, objVelX, objVelZ, waterY); + calc_new_obj_vel_and_pos_y_underwater(sObjFloor, floorY, objVelX, objVelZ, waterY); collisionFlags += OBJ_COL_FLAG_UNDERWATER; } else { - CalcNewObjVelAndPosY(D_803600E0, floorY, objVelX, objVelZ); + calc_new_obj_vel_and_pos_y(sObjFloor, floorY, objVelX, objVelZ); } } else { + // Treat any awkward floors similar to a wall. collisionFlags += - ((collisionFlags & OBJ_COL_FLAG_HIT_WALL) ^ OBJ_COL_FLAG_HIT_WALL); /* bit 1 = 1 */ + ((collisionFlags & OBJ_COL_FLAG_HIT_WALL) ^ OBJ_COL_FLAG_HIT_WALL); } - ObjUpdatePosVelXZ(); + + obj_update_pos_vel_xz(); if ((s32) o->oPosY == (s32) floorY) { collisionFlags += OBJ_COL_FLAG_GROUNDED; } + if ((s32) o->oVelY == 0) { collisionFlags += OBJ_COL_FLAG_NO_Y_VEL; } - ObjSplash((s32) waterY, (s32) o->oPosY); + // Generate a splash if in water. + obj_splash((s32) waterY, (s32) o->oPosY); return collisionFlags; } -// sp1e = collisionFlags - -s32 func_802E4204(void) { +/** + * Takes an object step but does not orient with the object's floor. + * Used for boulders, falling pillars, and the rolling snowman body. + * + * TODO: Fix fake EU matching. + */ +s32 object_step_without_floor_orient(void) { #ifdef VERSION_EU s32 collisionFlags = 0; #else s16 collisionFlags = 0; #endif - D_80331500 = 0; - collisionFlags = ObjectStep(); - D_80331500 = 1; + sOrientObjWithFloor = FALSE; + collisionFlags = object_step(); + sOrientObjWithFloor = TRUE; return collisionFlags; } /** - Uses an object's forward velocity and yaw to move its X, Y, and Z positions. - This does accept an object as an argument, though it is always called with `o`. - If it wasn't called with `o`, it would modify `o`'s X and Z velocities based on - `obj`'s forward velocity and yaw instead of `o`'s, and wouldn't update `o`'s - position. -*/ + * Uses an object's forward velocity and yaw to move its X, Y, and Z positions. + * This does accept an object as an argument, though it is always called with `o`. + * If it wasn't called with `o`, it would modify `o`'s X and Z velocities based on + * `obj`'s forward velocity and yaw instead of `o`'s, and wouldn't update `o`'s + * position. + */ void obj_move_xyz_using_fvel_and_yaw(struct Object *obj) { o->oVelX = obj->oForwardVel * sins(obj->oMoveAngleYaw); o->oVelZ = obj->oForwardVel * coss(obj->oMoveAngleYaw); @@ -444,8 +495,9 @@ void obj_move_xyz_using_fvel_and_yaw(struct Object *obj) { obj->oPosZ += o->oVelZ; } -// sp18 = arg2 - +/** + * Checks if a point is within distance from Mario's graphical position. Test is exclusive. + */ s32 is_point_within_radius_of_mario(f32 x, f32 y, f32 z, s32 dist) { f32 mGfxX = gMarioObject->header.gfx.pos[0]; f32 mGfxY = gMarioObject->header.gfx.pos[1]; @@ -453,75 +505,64 @@ s32 is_point_within_radius_of_mario(f32 x, f32 y, f32 z, s32 dist) { if ((x - mGfxX) * (x - mGfxX) + (y - mGfxY) * (y - mGfxY) + (z - mGfxZ) * (z - mGfxZ) < (f32)(dist * dist)) { - return 1; + return TRUE; } - return 0; + return FALSE; } -// sp14 = x -// sp18 = y -// sp1c = z -// spc = objX -// sp8 = objY -// sp4 = objZ - -s32 IsPointCloseToObject(struct Object *obj, f32 x, f32 y, f32 z, s32 dist) { +/** + * Checks whether a point is within distance of a given point. Test is exclusive. + */ +s32 is_point_close_to_object(struct Object *obj, f32 x, f32 y, f32 z, s32 dist) { f32 objX = obj->oPosX; f32 objY = obj->oPosY; f32 objZ = obj->oPosZ; if ((x - objX) * (x - objX) + (y - objY) * (y - objY) + (z - objZ) * (z - objZ) < (f32)(dist * dist)) { - return 1; + return TRUE; } - return 0; + return FALSE; } -// sp28 = obj -// sp2c = arg1 -// sp24 = objX -// sp20 = objY -// sp1c = objZ - -void SetObjectVisibility(struct Object *obj, s32 arg1) { +/** + * Sets an object as visible if within a certain distance of Mario's graphical position. + */ +void set_object_visibility(struct Object *obj, s32 dist) { f32 objX = obj->oPosX; f32 objY = obj->oPosY; f32 objZ = obj->oPosZ; - if (is_point_within_radius_of_mario(objX, objY, objZ, arg1) == 1) { - obj->header.gfx.node.flags &= ~0x10; /* bit 4 = 0 */ + if (is_point_within_radius_of_mario(objX, objY, objZ, dist) == TRUE) { + obj->header.gfx.node.flags &= ~GRAPH_RENDER_INVISIBLE; } else { - obj->header.gfx.node.flags |= 0x10; /* bit 4 = 1 */ + obj->header.gfx.node.flags |= GRAPH_RENDER_INVISIBLE; } } -// sp28 = obj -// sp2c = homeX -// sp30 = y -// sp34 = homeZ - -s32 ObjLeaveIfMarioIsNearHome(struct Object *obj, f32 homeX, f32 y, f32 homeZ, s32 dist) { +/** + * Turns an object towards home if Mario is not near to it. + */ +s32 obj_return_home_if_safe(struct Object *obj, f32 homeX, f32 y, f32 homeZ, s32 dist) { f32 homeDistX = homeX - obj->oPosX; f32 homeDistZ = homeZ - obj->oPosZ; - s16 angleAwayFromHome = atan2s(homeDistZ, homeDistX); + s16 angleTowardsHome = atan2s(homeDistZ, homeDistX); - if (is_point_within_radius_of_mario(homeX, y, homeZ, dist) == 1) { - return 1; + if (is_point_within_radius_of_mario(homeX, y, homeZ, dist) == TRUE) { + return TRUE; } else { - obj->oMoveAngleYaw = approach_s16_symmetric(obj->oMoveAngleYaw, angleAwayFromHome, 320); + obj->oMoveAngleYaw = approach_s16_symmetric(obj->oMoveAngleYaw, angleTowardsHome, 320); } - return 0; + return FALSE; } -// sp28 = obj -// sp2c = homeX -// sp30 = homeY -// sp34 = homeZ - -void ObjDisplaceHome(struct Object *obj, f32 homeX, UNUSED f32 homeY, f32 homeZ, s32 baseDisp) { +/** + * Randomly displaces an objects home if RNG says to, and turns the object towards its home. + */ +void obj_return_and_displace_home(struct Object *obj, f32 homeX, UNUSED f32 homeY, f32 homeZ, s32 baseDisp) { s16 angleToNewHome; f32 homeDistX, homeDistZ; @@ -536,24 +577,25 @@ void ObjDisplaceHome(struct Object *obj, f32 homeX, UNUSED f32 homeY, f32 homeZ, obj->oMoveAngleYaw = approach_s16_symmetric(obj->oMoveAngleYaw, angleToNewHome, 320); } -s32 func_802E46C0(u32 arg0, u32 arg1, s16 arg2) { - s16 sp6 = (u16) arg1 - (u16) arg0; +/** + * A series of checks using sin and cos to see if a given angle is facing in the same direction + * of a given angle, within a certain range. + */ +s32 obj_check_if_facing_toward_angle(u32 base, u32 goal, s16 range) { + s16 dAngle = (u16) goal - (u16) base; - if (((f32) sins(-arg2) < (f32) sins(sp6)) && ((f32) sins(sp6) < (f32) sins(arg2)) - && (coss(sp6) > 0)) { - return 1; + if (((f32) sins(-range) < (f32) sins(dAngle)) && ((f32) sins(dAngle) < (f32) sins(range)) + && (coss(dAngle) > 0)) { + return TRUE; } - return 0; + return FALSE; } -// sp60= arg0 -// sp64 = x -// sp68 = y -// sp6c = z -// sp38 = hitbox - -s32 func_802E478C(Vec3f dist, f32 x, f32 y, f32 z, f32 arg4) { +/** + * Finds any wall collisions and returns what the displacement vector would be. + */ +s32 obj_find_wall_displacement(Vec3f dist, f32 x, f32 y, f32 z, f32 radius) { struct WallCollisionData hitbox; UNUSED u8 filler[0x20]; @@ -561,21 +603,23 @@ s32 func_802E478C(Vec3f dist, f32 x, f32 y, f32 z, f32 arg4) { hitbox.y = y; hitbox.z = z; hitbox.offsetY = 10.0f; - hitbox.radius = arg4; + hitbox.radius = radius; + if (find_wall_collisions(&hitbox) != 0) { dist[0] = hitbox.x - x; dist[1] = hitbox.y - y; dist[2] = hitbox.z - z; - return 1; + return TRUE; } else { - return 0; + return FALSE; } } -// sp20 = obj -// sp24 = nCoins - -void ObjSpawnYellowCoins(struct Object *obj, s8 nCoins) { +/** + * Spawns a number of coins at the location of an object + * with a random forward velocity, y velocity, and direction. + */ +void obj_spawn_yellow_coins(struct Object *obj, s8 nCoins) { struct Object *coin; s8 count; @@ -587,65 +631,73 @@ void ObjSpawnYellowCoins(struct Object *obj, s8 nCoins) { } } -s32 ObjFlickerAndDisappear(struct Object *obj, s16 arg1) { - if (obj->oTimer < arg1) { - return 0; +/** + * Controls whether certain objects should flicker/when to despawn. + */ +s32 obj_flicker_and_disappear(struct Object *obj, s16 lifeSpan) { + if (obj->oTimer < lifeSpan) { + return FALSE; } - if (obj->oTimer < arg1 + 40) { + + if (obj->oTimer < lifeSpan + 40) { if (obj->oTimer % 2 != 0) { - obj->header.gfx.node.flags |= 0x10; /* bit 4 = 1 */ + obj->header.gfx.node.flags |= GRAPH_RENDER_INVISIBLE; } else { - obj->header.gfx.node.flags &= ~0x10; /* bit 4 = 0 */ + obj->header.gfx.node.flags &= ~GRAPH_RENDER_INVISIBLE; } } else { obj->activeFlags = 0; - return 1; + return TRUE; } - return 0; + return FALSE; } -s8 func_802E49A4(s16 arg0) { - s16 sp6; +/** + * Checks if a given room is Mario's current room, even if on an object. + */ +s8 current_mario_room_check(s16 room) { + s16 result; + // Since object surfaces have room 0, this tests if the surface is an + // object first and uses the last room if so. if (gMarioCurrentRoom == 0) { - if (arg0 == D_80331504) { - return 1; + if (room == sPrevCheckMarioRoom) { + return TRUE; } else { - return 0; + return FALSE; } } else { - if (arg0 == gMarioCurrentRoom) { - sp6 = 1; + if (room == gMarioCurrentRoom) { + result = TRUE; } else { - sp6 = 0; + result = FALSE; } - D_80331504 = gMarioCurrentRoom; + sPrevCheckMarioRoom = gMarioCurrentRoom; } - return sp6; + return result; } -// sp20 = arg0 -// sp24 = arg1 -// sp28 = arg2 -// sp2c = arg3 +/** + * Triggers dialog when Mario is facing an object and controls it while in the dialog. + */ +s16 trigger_obj_dialog_when_facing(s32 *inDialog, s16 dialogID, f32 dist, s32 actionArg) { + s16 dialogueResponse; -s16 func_802E4A38(s32 *arg0, s16 dialogID, f32 arg2, s32 arg3) { - s16 sp1e; + if ((is_point_within_radius_of_mario(o->oPosX, o->oPosY, o->oPosZ, (s32) dist) == 1 + && obj_check_if_facing_toward_angle(o->oFaceAngleYaw, gMarioObject->header.gfx.angle[1] + 0x8000, 0x1000) == 1 + && obj_check_if_facing_toward_angle(o->oMoveAngleYaw, o->oAngleToMario, 0x1000) == 1) + || (*inDialog == 1)) { + *inDialog = 1; - if ((is_point_within_radius_of_mario(o->oPosX, o->oPosY, o->oPosZ, (s32) arg2) == 1 - && func_802E46C0(o->oFaceAngleYaw, gMarioObject->header.gfx.angle[1] + 0x8000, 0x1000) == 1 - && func_802E46C0(o->oMoveAngleYaw, o->oAngleToMario, 0x1000) == 1) - || (*arg0 == 1)) { - *arg0 = 1; - if (set_mario_npc_dialog(arg3) == 2) { - sp1e = cutscene_object_with_dialog(CUTSCENE_DIALOG_1, o, dialogID); - if (sp1e != 0) { + if (set_mario_npc_dialog(actionArg) == 2) { //If Mario is speaking. + dialogueResponse = cutscene_object_with_dialog(CUTSCENE_DIALOG_1, o, dialogID); + if (dialogueResponse != 0) { set_mario_npc_dialog(0); - *arg0 = 0; - return sp1e; + *inDialog = 0; + return dialogueResponse; } return 0; } @@ -654,17 +706,21 @@ s16 func_802E4A38(s32 *arg0, s16 dialogID, f32 arg2, s32 arg3) { return 0; } -void ObjCheckFloorDeath(s16 collisionFlags, struct Surface *floor) { +/** + *Checks if a floor is one that should cause an object to "die". + */ +void obj_check_floor_death(s16 collisionFlags, struct Surface *floor) { if (floor == NULL) { return; } - if ((collisionFlags & 0x1) == 1) /* bit 0 */ + if ((collisionFlags & OBJ_COL_FLAG_GROUNDED) == 1) { switch (floor->type) { case SURFACE_BURNING: o->oAction = OBJ_ACT_LAVA_DEATH; break; + //! @BUG Doesn't check for the vertical wind death floor. case SURFACE_DEATH_PLANE: o->oAction = OBJ_ACT_DEATH_PLANE_DEATH; break; @@ -674,15 +730,18 @@ void ObjCheckFloorDeath(s16 collisionFlags, struct Surface *floor) { } } -// sp10 = arg0 - -s32 ObjLavaDeath(void) { +/** + * Controls an object dying in lava by creating smoke, sinking the object, playing + * audio, and eventually despawning it. Returns TRUE when the obj is dead. + */ +s32 obj_lava_death(void) { struct Object *deathSmoke; if (o->oTimer >= 31) { o->activeFlags = 0; - return 1; + return TRUE; } else { + // Sinking effect o->oPosY -= 10.0f; } @@ -695,42 +754,53 @@ s32 ObjLavaDeath(void) { deathSmoke->oForwardVel = RandomFloat() * 10.0f; } - return 0; + return FALSE; } -// sp30 = arg0 -// sp34 = arg1 -// sp38 = arg2 -// sp3c = arg3 - -void SpawnOrangeNumber(s8 arg0, s16 arg1, s16 arg2, s16 arg3) { +/** + * Spawns an orange number object relatively, such as those that count up for secrets. + */ +void spawn_orange_number(s8 behParam, s16 relX, s16 relY, s16 relZ) { struct Object *orangeNumber; - if (arg0 >= 10) { + if (behParam >= 10) { return; } - orangeNumber = spawn_object_relative(arg0, arg1, arg2, arg3, o, MODEL_NUMBER, bhvOrangeNumber); + orangeNumber = spawn_object_relative(behParam, relX, relY, relZ, o, MODEL_NUMBER, bhvOrangeNumber); orangeNumber->oPosY += 25.0f; } -s32 Unknown802E4DF4(s16 *arg0) { - if (*(arg0 + D_8033150C) == 0) { - D_8033150C = 0; - return 1; +/** + * Unused variables for debug_sequence_tracker. + */ +s8 sDebugSequenceTracker = 0; +s8 sDebugTimer = 0; + +/** + * Unused presumably debug function that tracks for a sequence of inputs, + * perhaps for the Konami code sequence of inputs. + */ +s32 UNUSED debug_sequence_tracker(s16 debugInputSequence[]) { + // If end of sequence reached, return true. + if (debugInputSequence[sDebugSequenceTracker] == 0) { + sDebugSequenceTracker = 0; + return TRUE; } - if ((*(arg0 + D_8033150C) & gPlayer3Controller->buttonPressed) != 0) { - D_8033150C++; - D_80331510 = 0; - } else if (D_80331510 == 10 || gPlayer3Controller->buttonPressed != 0) { - D_8033150C = 0; - D_80331510 = 0; - return 0; + // If the third controller button pressed is next in sequence, reset timer and progress to next value. + if ((debugInputSequence[sDebugSequenceTracker] & gPlayer3Controller->buttonPressed) != 0) { + sDebugSequenceTracker++; + sDebugTimer = 0; + // If wrong input or timer reaches 10, reset sequence progress. + } else if (sDebugTimer == 10 || gPlayer3Controller->buttonPressed != 0) { + sDebugSequenceTracker = 0; + sDebugTimer = 0; + return FALSE; } - D_80331510++; + sDebugTimer++; - return 0; + return FALSE; } #include "behaviors/moving_coin.inc.c" diff --git a/src/game/obj_behaviors.h b/src/game/obj_behaviors.h index a98699f..244f41f 100644 --- a/src/game/obj_behaviors.h +++ b/src/game/obj_behaviors.h @@ -5,48 +5,12 @@ #include "object_helpers2.h" #include "engine/surface_collision.h" -extern struct Surface *D_803600E0; - -extern s8 D_80331500; -extern s16 D_80331504; -extern s8 D_80331508; -extern s8 D_8033150C; -extern s8 D_80331510; - extern u8 bob_seg7_metal_ball_path0[]; extern u8 ttm_seg7_trajectory_070170A0[]; extern u8 bob_seg7_metal_ball_path1[]; -void func_802E2F40(void); -Gfx *func_802E2F58(s32 arg0, struct Object *arg1, UNUSED s32 arg2); /* unused */ -f32 absf_2(f32 f); -void TurnObjAwayFromSurface(f32 objVelX, f32 objVelZ, f32 nX, UNUSED f32 nY, f32 nZ, f32 *objYawX, f32 *objYawZ); -s32 ObjFindWall(f32 objNewX, f32 objY, f32 objNewZ, f32 objVelX, f32 objVelZ); -s32 TurnObjAwayFromAwkwardFloor(struct Surface *objFloor, f32 floorY, f32 objVelX, f32 objVelZ); -void ObjOrientGraph(struct Object *obj, f32 normalX, f32 normalY, f32 normalZ); -void CalcObjFriction(f32 *objFriction, f32 floor_nY); -void CalcNewObjVelAndPosY(struct Surface* objFloor, f32 objFloorY, f32 objVelX, f32 arg3); -void CalcNewObjVelAndPosYUnderwater(struct Surface* objFloor, f32 floorY, f32 objVelX, f32 objVelZ, f32 waterY); -void ObjUpdatePosVelXZ(void); -void ObjSplash(s32 waterY, s32 objY); -s32 ObjectStep(void); -s32 func_802E4204(void); -void obj_move_xyz_using_fvel_and_yaw(struct Object* obj); -s32 is_point_within_radius_of_mario(f32 x, f32 y, f32 z, s32 dist); -s32 IsPointCloseToObject(struct Object* obj, f32 x, f32 y, f32 z, s32 dist); -void SetObjectVisibility(struct Object* obj, s32 arg1); -s32 ObjLeaveIfMarioIsNearHome(struct Object* obj, f32 arg1, f32 arg2, f32 arg3, s32 arg4); -void ObjDisplaceHome(struct Object* obj, f32 homeX, UNUSED f32 homeY, f32 homeZ, s32 baseDisp); -s32 func_802E46C0(u32 arg0, u32 arg1, s16 arg2); -s32 func_802E478C(Vec3f dist, f32 x, f32 y, f32 z, f32 arg4); -void ObjSpawnYellowCoins(struct Object *obj, s8 nCoins); -s32 ObjFlickerAndDisappear(struct Object *obj, s16 arg1); -s8 func_802E49A4(s16 arg0); -s16 func_802E4A38(s32 *arg0, s16 arg1, f32 arg2, s32 arg3); -void ObjCheckFloorDeath(s16 collisionFlags, struct Surface *floor); -s32 ObjLavaDeath(void); -void SpawnOrangeNumber(s8 arg0, s16 arg1, s16 arg2, s16 arg3); -s32 Unknown802E4DF4(s16 *arg0); /* unused */ +void set_yoshi_as_not_dead(void); + s32 CoinStep(s16 *collisionFlagsPtr); void MovingCoinFlickerLoop(void); void CoinCollected(void); @@ -93,15 +57,8 @@ void WhirlpoolOrientGraph(void); void bhv_whirlpool_loop(void); void bhv_jet_stream_loop(void); void bhv_homing_amp_init(void); -//void check_amp_attack(void); -//void homing_amp_appear_loop(void); -//void homing_amp_chase_loop(void); -//void homing_amp_give_up_loop(void); -//void amp_attack_cooldown_loop(void); void bhv_homing_amp_loop(void); void bhv_circling_amp_init(void); -//void fixed_circling_amp_idle_loop(void); -//void circling_amp_idle_loop(void); void bhv_circling_amp_loop(void); void bhv_butterfly_init(void); void ButterflyStep(s32 speed); @@ -123,8 +80,6 @@ void HootTurnToHome(void); void HootAwakeLoop(void); void bhv_hoot_loop(void); void bhv_beta_holdable_object_init(void); /* unused */ -//void beta_holdable_object_drop(void); /* unused */ -//void beta_holdable_object_throw(void); /* unused */ void bhv_beta_holdable_object_loop(void); /* unused */ void bhv_object_bubble_init(void); void bhv_object_bubble_loop(void); diff --git a/src/game/obj_behaviors_2.c b/src/game/obj_behaviors_2.c index 7a1c5c6..f6b3f2c 100644 --- a/src/game/obj_behaviors_2.c +++ b/src/game/obj_behaviors_2.c @@ -15,6 +15,7 @@ #include "obj_behaviors_2.h" #include "audio/external.h" #include "seq_ids.h" +#include "dialog_ids.h" #include "level_update.h" #include "memory.h" #include "platform_displacement.h" @@ -28,6 +29,7 @@ #include "geo_misc.h" #include "save_file.h" #include "room.h" +#include "level_table.h" extern struct Animation *wiggler_seg5_anims_0500C874[]; extern struct Animation *spiny_egg_seg5_anims_050157E4[]; diff --git a/src/game/object_helpers.c b/src/game/object_helpers.c index ec98030..334465b 100644 --- a/src/game/object_helpers.c +++ b/src/game/object_helpers.c @@ -24,6 +24,8 @@ #include "interaction.h" #include "object_list_processor.h" #include "room.h" +#include "level_table.h" +#include "dialog_ids.h" #include "object_helpers.h" #include "object_helpers2.h" @@ -63,7 +65,7 @@ Gfx *Geo18_8029D890(s32 run, UNUSED struct GraphNode *node, f32 mtx[4][4]) { return NULL; } -Gfx *Geo18_8029D924(s32 run, struct GraphNode *node, UNUSED s32 sp48) { +Gfx *Geo18_8029D924(s32 run, struct GraphNode *node, UNUSED void *context) { Gfx *sp3C, *sp38; struct Object *sp34; struct GraphNodeGenerated *sp30; @@ -128,7 +130,7 @@ Gfx *Geo18_8029D924(s32 run, struct GraphNode *node, UNUSED s32 sp48) { #endif } - gDPSetEnvColor(sp38++, 0xFF, 0xFF, 0xFF, sp28); + gDPSetEnvColor(sp38++, 255, 255, 255, sp28); gSPEndDisplayList(sp38); } @@ -141,7 +143,11 @@ Gfx *Geo18_8029D924(s32 run, struct GraphNode *node, UNUSED s32 sp48) { * executor passes the 3rd argument to a function that doesn't declare it. This is * undefined behavior, but harmless in practice due to the o32 calling convention. */ -s32 geo_switch_anim_state(s32 run, struct GraphNode *node) { +#ifdef AVOID_UB +Gfx *geo_switch_anim_state(s32 run, struct GraphNode *node, UNUSED void *context) { +#else +Gfx *geo_switch_anim_state(s32 run, struct GraphNode *node) { +#endif struct Object *obj; struct GraphNodeSwitchCase *switchCase; @@ -166,11 +172,15 @@ s32 geo_switch_anim_state(s32 run, struct GraphNode *node) { switchCase->selectedCase = obj->oAnimState; } - return 0; + return NULL; } //! @bug Same issue as geo_switch_anim_state. -s32 geo_switch_area(s32 run, struct GraphNode *node) { +#ifdef AVOID_UB +Gfx *geo_switch_area(s32 run, struct GraphNode *node, UNUSED void *context) { +#else +Gfx *geo_switch_area(s32 run, struct GraphNode *node) { +#endif s16 sp26; struct Surface *sp20; UNUSED struct Object *sp1C = @@ -199,7 +209,7 @@ s32 geo_switch_area(s32 run, struct GraphNode *node) { switchCase->selectedCase = 0; } - return 0; + return NULL; } void func_8029D558(Mat4 a0, struct Object *a1) { @@ -2058,7 +2068,7 @@ f32 random_f32_around_zero(f32 diameter) { return RandomFloat() * diameter - diameter / 2.0f; } -f32 scale_object_random(struct Object *obj, f32 rangeLength, f32 minScale) { +void scale_object_random(struct Object *obj, f32 rangeLength, f32 minScale) { f32 scale = RandomFloat() * rangeLength + minScale; scale_object_xyz(obj, scale, scale, scale); } @@ -2336,7 +2346,7 @@ s32 func_802A362C(s32 a0) { return 0; } -s32 obj_call_action_function(void (*actionFunctions[])(void)) { +void obj_call_action_function(void (*actionFunctions[])(void)) { void (*actionFunction)(void) = actionFunctions[o->oAction]; actionFunction(); } @@ -2781,7 +2791,7 @@ s32 mario_is_within_rectangle(s16 minX, s16 maxX, s16 minZ, s16 maxZ) { return TRUE; } -s32 ShakeScreen(s32 sp18) { +void ShakeScreen(s32 sp18) { func_8027F440(sp18, o->oPosX, o->oPosY, o->oPosZ); } diff --git a/src/game/object_helpers.h b/src/game/object_helpers.h index 5e6d50e..ce9ecaa 100644 --- a/src/game/object_helpers.h +++ b/src/game/object_helpers.h @@ -165,9 +165,14 @@ extern s8 dddStatus; // extern ? D_8033670C; extern Gfx *Geo18_8029D890(s32 run, UNUSED struct GraphNode *node, f32 mtx[4][4]); -extern Gfx *Geo18_8029D924(s32 run, struct GraphNode *node, UNUSED s32 sp48); -extern s32 geo_switch_anim_state(s32 run, struct GraphNode *node); -extern s32 geo_switch_area(s32 run, struct GraphNode *node); +extern Gfx *Geo18_8029D924(s32 run, struct GraphNode *node, UNUSED void *context); +#ifdef AVOID_UB +extern Gfx *geo_switch_anim_state(s32 run, struct GraphNode *node, void *context); +extern Gfx *geo_switch_area(s32 run, struct GraphNode *node, void *context); +#else +extern Gfx *geo_switch_anim_state(s32 run, struct GraphNode *node); +extern Gfx *geo_switch_area(s32 run, struct GraphNode *node); +#endif extern void func_8029D558(Mat4, struct Object *); void apply_object_scale_to_matrix(struct Object *, Mat4, Mat4); extern void func_8029D704(Mat4,Mat4,Mat4); @@ -319,7 +324,7 @@ void obj_rotate_face_angle_using_vel(void); extern s32 obj_follow_path(UNUSED s32); extern void chain_segment_init(struct ChainSegment *); extern f32 random_f32_around_zero(f32); -f32 scale_object_random(struct Object*,f32,f32); +void scale_object_random(struct Object*,f32,f32); extern void translate_object_xyz_random(struct Object *, f32); extern void translate_object_xz_random(struct Object *, f32); // extern ? func_802A297C(?); diff --git a/src/game/object_helpers2.h b/src/game/object_helpers2.h index a82b4cd..8f735ec 100644 --- a/src/game/object_helpers2.h +++ b/src/game/object_helpers2.h @@ -3,6 +3,8 @@ #include "types.h" +// TODO: join this together with object_helpers.h + #define WAYPOINT_FLAGS_END -1 #define WAYPOINT_FLAGS_INITIALIZED 0x8000 #define WAYPOINT_MASK_00FF 0x00FF @@ -41,7 +43,7 @@ void func_802A3470(void); extern s32 obj_is_mario_on_platform(void); // extern ? obj_shake_y_until(?); s32 func_802A362C(s32); -s32 obj_call_action_function(void(*[])(void)); +void obj_call_action_function(void(*[])(void)); // extern ? func_802A36D8(?); // extern ? Unknown802A3750(?); s32 func_802A377C(s32); @@ -70,7 +72,7 @@ s32 obj_update_dialog_with_cutscene(s32 arg0, s32 dialogFlags, s32 cutsceneTable s32 obj_has_model(u16); extern void obj_align_gfx_with_floor(void); // extern ? mario_is_within_rectangle(?); -s32 ShakeScreen(s32); +void ShakeScreen(s32); extern s32 attack_collided_non_mario_object(struct Object *obj); s32 obj_was_attacked_or_ground_pounded(void); void copy_object_behavior_params(struct Object*,struct Object*); diff --git a/src/game/paintings.c b/src/game/paintings.c index 53f356a..b3794a0 100644 --- a/src/game/paintings.c +++ b/src/game/paintings.c @@ -894,7 +894,7 @@ void horizontal_painting_ripple(struct Painting *painting, struct Painting *pain } } -Gfx *Geo18_802D5B98(s32 run, struct GraphNode *node, UNUSED s32 c) { +Gfx *Geo18_802D5B98(s32 run, struct GraphNode *node, UNUSED void *context) { struct GraphNodeGenerated *sp2C = (struct GraphNodeGenerated *) node; s32 sp28 = (sp2C->parameter >> 8) & 0xFF; s32 id = sp2C->parameter & 0xFF; diff --git a/src/game/paintings.h b/src/game/paintings.h index becad01..3a2ce19 100644 --- a/src/game/paintings.h +++ b/src/game/paintings.h @@ -132,7 +132,7 @@ extern float (*D_8035FFA4)[3]; extern struct Painting *ripplingPainting; extern s8 dddStatus; -extern Gfx *Geo18_802D5B98(s32 run, struct GraphNode *node, s32 c); +extern Gfx *Geo18_802D5B98(s32 run, struct GraphNode *node, void *context); extern Gfx *Geo18_802D5D0C(s32 run, struct GraphNode *node, f32 c[4][4]); #endif /* PAINTINGS_H */ diff --git a/src/game/rendering_graph_node.c b/src/game/rendering_graph_node.c index 76bd830..a4e09a9 100644 --- a/src/game/rendering_graph_node.c +++ b/src/game/rendering_graph_node.c @@ -157,7 +157,7 @@ static void geo_process_master_list_sub(struct GraphNodeMasterList *node) { gDPSetRenderMode(gDisplayListHead++, modeList->modes[i], mode2List->modes[i]); while (currList != NULL) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(currList->transform), - G_MTX_MODELVIEW | G_MTX_LOAD); + G_MTX_MODELVIEW | G_MTX_MUL | G_MTX_LOAD); gSPDisplayList(gDisplayListHead++, currList->displayList); currList = currList->next; } diff --git a/src/game/save_file.c b/src/game/save_file.c index 97afc6b..15ae6a4 100644 --- a/src/game/save_file.c +++ b/src/game/save_file.c @@ -8,6 +8,7 @@ #include "level_update.h" #include "save_file.h" #include "sound_init.h" +#include "level_table.h" #define MENU_DATA_MAGIC 0x4849 #define SAVE_FILE_MAGIC 0x4441 @@ -29,46 +30,15 @@ u8 gCurrCourseStarFlags = 0; u8 gSpecialTripleJump = 0; +#define STUB_LEVEL(_0, _1, courseenum, _3, _4, _5, _6, _7, _8) courseenum, +#define DEFINE_LEVEL(_0, _1, courseenum, _3, _4, _5, _6, _7, _8, _9, _10) courseenum, + s8 gLevelToCourseNumTable[] = { - COURSE_NONE, // LEVEL_UNKNOWN_1 - COURSE_NONE, // LEVEL_UNKNOWN_2 - COURSE_NONE, // LEVEL_UNKNOWN_3 - COURSE_BBH, // LEVEL_BBH - COURSE_CCM, // LEVEL_CCM - COURSE_NONE, // LEVEL_CASTLE - COURSE_HMC, // LEVEL_HMC - COURSE_SSL, // LEVEL_SSL - COURSE_BOB, // LEVEL_BOB - COURSE_SL, // LEVEL_SL - COURSE_WDW, // LEVEL_WDW - COURSE_JRB, // LEVEL_JRB - COURSE_THI, // LEVEL_THI - COURSE_TTC, // LEVEL_TTC - COURSE_RR, // LEVEL_RR - COURSE_NONE, // LEVEL_CASTLE_GROUNDS - COURSE_BITDW, // LEVEL_BITDW - COURSE_VCUTM, // LEVEL_VCUTM - COURSE_BITFS, // LEVEL_BITFS - COURSE_SA, // LEVEL_SA - COURSE_BITS, // LEVEL_BITS - COURSE_LLL, // LEVEL_LLL - COURSE_DDD, // LEVEL_DDD - COURSE_WF, // LEVEL_WF - COURSE_CAKE_END, // LEVEL_ENDING - COURSE_NONE, // LEVEL_CASTLE_COURTYARD - COURSE_PSS, // LEVEL_PSS - COURSE_COTMC, // LEVEL_COTMC - COURSE_TOTWC, // LEVEL_TOTWC - COURSE_BITDW, // LEVEL_BOWSER_1 - COURSE_WMOTR, // LEVEL_WMOTR - COURSE_NONE, // LEVEL_UNKNOWN_32 - COURSE_BITFS, // LEVEL_BOWSER_2 - COURSE_BITS, // LEVEL_BOWSER_3 - COURSE_NONE, // LEVEL_UNKNOWN_35 - COURSE_TTM, // LEVEL_TTM - COURSE_NONE, // LEVEL_UNKNOWN_37 - COURSE_NONE // LEVEL_UNKNOWN_38 + #include "levels/level_defines.h" }; +#undef STUB_LEVEL +#undef DEFINE_LEVEL + STATIC_ASSERT(ARRAY_COUNT(gLevelToCourseNumTable) == LEVEL_COUNT - 1, "change this array if you are adding levels"); diff --git a/src/game/save_file.h b/src/game/save_file.h index 95b88c4..18eafc2 100644 --- a/src/game/save_file.h +++ b/src/game/save_file.h @@ -4,6 +4,8 @@ #include "types.h" #include "area.h" +#include "course_table.h" + #define EEPROM_SIZE 0x200 #define NUM_SAVE_FILES 4 diff --git a/src/game/screen_transition.c b/src/game/screen_transition.c index ae2affc..aff4000 100644 --- a/src/game/screen_transition.c +++ b/src/game/screen_transition.c @@ -5,42 +5,42 @@ #include "game.h" #include "engine/math_util.h" #include "engine/graph_node.h" +#include "screen_transition.h" #include "memory.h" #include "geo_misc.h" - #include "segment2.h" -u8 D_8032FF60[4] = { 0 }; -u16 D_8032FF64[2] = { 0 }; +u8 sTransitionColorFadeCount[4] = { 0 }; +u16 sTransitionTextureFadeCount[2] = { 0 }; -s32 func_802CAAE0(s8 a0, u8 a1) { - s32 sp4 = 0; +s32 set_and_reset_transition_fade_timer(s8 fadeTimer, u8 transTime) { + s32 reset = FALSE; - D_8032FF60[a0]++; + sTransitionColorFadeCount[fadeTimer]++; - if (D_8032FF60[a0] == a1) { - D_8032FF60[a0] = 0; - D_8032FF64[a0] = 0; - sp4 = 1; + if (sTransitionColorFadeCount[fadeTimer] == transTime) { + sTransitionColorFadeCount[fadeTimer] = 0; + sTransitionTextureFadeCount[fadeTimer] = 0; + reset = TRUE; } - return sp4; + return reset; } -u8 func_802CAB60(s8 a0, s8 a1, u8 a2) { - u8 sp7; +u8 set_transition_color_fade_alpha(s8 fadeType, s8 fadeTimer, u8 transTime) { + u8 time; - switch (a0) { + switch (fadeType) { case 0: - sp7 = (f32) D_8032FF60[a1] * 255.0 / (f32)(a2 - 1) + 0.5; + time = (f32) sTransitionColorFadeCount[fadeTimer] * 255.0 / (f32)(transTime - 1) + 0.5; // fade in break; case 1: - sp7 = (1.0 - D_8032FF60[a1] / (f32)(a2 - 1)) * 255.0 + 0.5; + time = (1.0 - sTransitionColorFadeCount[fadeTimer] / (f32)(transTime - 1)) * 255.0 + 0.5; // fade out break; } - return sp7; + return time; } -Vtx *func_802CADB4(struct WarpTransitionData *transData, u8 alpha) { +Vtx *vertex_transition_color(struct WarpTransitionData *transData, u8 alpha) { Vtx *verts = alloc_display_list(4 * sizeof(*verts)); u8 r = transData->red; u8 g = transData->green; @@ -48,16 +48,16 @@ Vtx *func_802CADB4(struct WarpTransitionData *transData, u8 alpha) { if (verts != NULL) { make_vertex(verts, 0, 0, 0, -1, 0, 0, r, g, b, alpha); - make_vertex(verts, 1, 320, 0, -1, 0, 0, r, g, b, alpha); - make_vertex(verts, 2, 320, 240, -1, 0, 0, r, g, b, alpha); - make_vertex(verts, 3, 0, 240, -1, 0, 0, r, g, b, alpha); + make_vertex(verts, 1, SCREEN_WIDTH, 0, -1, 0, 0, r, g, b, alpha); + make_vertex(verts, 2, SCREEN_WIDTH, SCREEN_HEIGHT, -1, 0, 0, r, g, b, alpha); + make_vertex(verts, 3, 0, SCREEN_HEIGHT, -1, 0, 0, r, g, b, alpha); } else { } return verts; } -s32 func_802CAF38(s8 a0, u8 a1, struct WarpTransitionData *transData, u8 alpha) { - Vtx *verts = func_802CADB4(transData, alpha); +s32 dl_transition_color(s8 fadeTimer, u8 transTime, struct WarpTransitionData *transData, u8 alpha) { + Vtx *verts = vertex_transition_color(transData, alpha); if (verts != NULL) { gSPDisplayList(gDisplayListHead++, dl_proj_mtx_fullscreen); @@ -67,192 +67,192 @@ s32 func_802CAF38(s8 a0, u8 a1, struct WarpTransitionData *transData, u8 alpha) gSPDisplayList(gDisplayListHead++, dl_draw_quad_verts_0123); gSPDisplayList(gDisplayListHead++, dl_screen_transition_end); } - return func_802CAAE0(a0, a1); + return set_and_reset_transition_fade_timer(fadeTimer, transTime); } -s32 func_802CB0E4(s8 a0, u8 a1, struct WarpTransitionData *transData) { - u8 alpha = func_802CAB60(1, a0, a1); +s32 render_fade_transition_from_color(s8 fadeTimer, u8 transTime, struct WarpTransitionData *transData) { + u8 alpha = set_transition_color_fade_alpha(1, fadeTimer, transTime); - return func_802CAF38(a0, a1, transData, alpha); + return dl_transition_color(fadeTimer, transTime, transData, alpha); } -s32 func_802CB140(s8 a0, u8 a1, struct WarpTransitionData *transData) { - u8 alpha = func_802CAB60(0, a0, a1); +s32 render_fade_transition_into_color(s8 fadeTimer, u8 transTime, struct WarpTransitionData *transData) { + u8 alpha = set_transition_color_fade_alpha(0, fadeTimer, transTime); - return func_802CAF38(a0, a1, transData, alpha); + return dl_transition_color(fadeTimer, transTime, transData, alpha); } -s16 func_802CB19C(s8 a0, s8 a1, struct WarpTransitionData *transData) { - f32 spC = transData->endCircleRadius - transData->startCircleRadius; - f32 sp8 = D_8032FF60[a0] * spC / (f32)(a1 - 1); - f32 sp4 = transData->startCircleRadius + sp8; +s16 calc_tex_transition_radius(s8 fadeTimer, s8 transTime, struct WarpTransitionData *transData) { + f32 texRadius = transData->endTexRadius - transData->startTexRadius; + f32 radiusTime = sTransitionColorFadeCount[fadeTimer] * texRadius / (f32)(transTime - 1); + f32 result = transData->startTexRadius + radiusTime; - return sp4 + 0.5; + return (s16)(result + 0.5);; } -f32 func_802CB274(s8 a0, s8 a1, struct WarpTransitionData *transData) { - f32 sp2C = transData->startCircleX; - f32 sp28 = transData->startCircleY; - f32 sp24 = transData->endCircleX; - f32 sp20 = transData->endCircleY; - f32 sp1C = sqrtf((sp2C - sp24) * (sp2C - sp24) + (sp28 - sp20) * (sp28 - sp20)); - f32 sp18 = (f32) D_8032FF60[a0] * sp1C / (f32)(a1 - 1); +f32 calc_tex_transition_time(s8 fadeTimer, s8 transTime, struct WarpTransitionData *transData) { + f32 startX = transData->startTexX; + f32 startY = transData->startTexY; + f32 endX = transData->endTexX; + f32 endY = transData->endTexY; + f32 sqrtfXY = sqrtf((startX - endX) * (startX - endX) + (startY - endY) * (startY - endY)); + f32 result = (f32) sTransitionColorFadeCount[fadeTimer] * sqrtfXY / (f32)(transTime - 1); - return sp18; + return result; } -u16 func_802CB384(struct WarpTransitionData *transData) { - f32 sp1C = transData->endCircleX - transData->startCircleX; - f32 sp18 = transData->endCircleY - transData->startCircleY; +u16 convert_tex_transition_angle_to_pos(struct WarpTransitionData *transData) { + f32 x = transData->endTexX - transData->startTexX; + f32 y = transData->endTexY - transData->startTexY; - return atan2s(sp1C, sp18); + return atan2s(x, y); } -s16 func_802CB400(struct WarpTransitionData *transData, f32 a1, u16 a2) { - f32 sp4 = transData->startCircleX + coss(a2) * a1; +s16 center_tex_transition_x(struct WarpTransitionData *transData, f32 texTransTime, u16 texTransPos) { + f32 x = transData->startTexX + coss(texTransPos) * texTransTime; - return sp4 + 0.5; + return (s16)(x + 0.5); } -s16 func_802CB484(struct WarpTransitionData *transData, f32 a1, u16 a2) { - f32 sp4 = transData->startCircleY + sins(a2) * a1; +s16 center_tex_transition_y(struct WarpTransitionData *transData, f32 texTransTime, u16 texTransPos) { + f32 y = transData->startTexY + sins(texTransPos) * texTransTime; - return sp4 + 0.5; + return (s16)(y + 0.5); } -void func_802CB508(Vtx *verts, s32 n, s8 a2, struct WarpTransitionData *transData, s16 sp62, s16 sp66, - s16 sp6A, s16 sp6E, s16 sp72, s16 sp76) { +void make_tex_transition_vertex(Vtx *verts, s32 n, s8 fadeTimer, struct WarpTransitionData *transData, s16 centerTransX, s16 centerTransY, + s16 texRadius1, s16 texRadius2, s16 tx, s16 ty) { u8 r = transData->red; u8 g = transData->green; u8 b = transData->blue; - u16 sp4A = D_8032FF64[a2]; - f32 sp44 = sp6A * coss(sp4A) - sp6E * sins(sp4A) + sp62; - f32 sp40 = sp6A * sins(sp4A) + sp6E * coss(sp4A) + sp66; - s16 x = round_float(sp44); - s16 y = round_float(sp40); + u16 zeroTimer = sTransitionTextureFadeCount[fadeTimer]; + f32 centerX = texRadius1 * coss(zeroTimer) - texRadius2 * sins(zeroTimer) + centerTransX; + f32 centerY = texRadius1 * sins(zeroTimer) + texRadius2 * coss(zeroTimer) + centerTransY; + s16 x = round_float(centerX); + s16 y = round_float(centerY); - make_vertex(verts, n, x, y, -1, sp72 * 32, sp76 * 32, r, g, b, 255); + make_vertex(verts, n, x, y, -1, tx * 32, ty * 32, r, g, b, 255); } -void func_802CB6A0(Vtx *verts, s8 sp47, struct WarpTransitionData *transData, s16 sp4E, s16 sp52, - s16 sp56, s8 sp5B) { - switch (sp5B) { - case 0: - func_802CB508(verts, 0, sp47, transData, sp4E, sp52, -sp56, -sp56, -31, 63); - func_802CB508(verts, 1, sp47, transData, sp4E, sp52, sp56, -sp56, 31, 63); - func_802CB508(verts, 2, sp47, transData, sp4E, sp52, sp56, sp56, 31, 0); - func_802CB508(verts, 3, sp47, transData, sp4E, sp52, -sp56, sp56, -31, 0); +void load_tex_transition_vertex(Vtx *verts, s8 fadeTimer, struct WarpTransitionData *transData, s16 centerTransX, s16 centerTransY, + s16 texTransRadius, s8 transTexType) { + switch (transTexType) { + case TRANS_TYPE_MIRROR: + make_tex_transition_vertex(verts, 0, fadeTimer, transData, centerTransX, centerTransY, -texTransRadius, -texTransRadius, -31, 63); + make_tex_transition_vertex(verts, 1, fadeTimer, transData, centerTransX, centerTransY, texTransRadius, -texTransRadius, 31, 63); + make_tex_transition_vertex(verts, 2, fadeTimer, transData, centerTransX, centerTransY, texTransRadius, texTransRadius, 31, 0); + make_tex_transition_vertex(verts, 3, fadeTimer, transData, centerTransX, centerTransY, -texTransRadius, texTransRadius, -31, 0); break; - case 1: - func_802CB508(verts, 0, sp47, transData, sp4E, sp52, -sp56, -sp56, 0, 63); - func_802CB508(verts, 1, sp47, transData, sp4E, sp52, sp56, -sp56, 63, 63); - func_802CB508(verts, 2, sp47, transData, sp4E, sp52, sp56, sp56, 63, 0); - func_802CB508(verts, 3, sp47, transData, sp4E, sp52, -sp56, sp56, 0, 0); + case TRANS_TYPE_CLAMP: + make_tex_transition_vertex(verts, 0, fadeTimer, transData, centerTransX, centerTransY, -texTransRadius, -texTransRadius, 0, 63); + make_tex_transition_vertex(verts, 1, fadeTimer, transData, centerTransX, centerTransY, texTransRadius, -texTransRadius, 63, 63); + make_tex_transition_vertex(verts, 2, fadeTimer, transData, centerTransX, centerTransY, texTransRadius, texTransRadius, 63, 0); + make_tex_transition_vertex(verts, 3, fadeTimer, transData, centerTransX, centerTransY, -texTransRadius, texTransRadius, 0, 0); break; } - func_802CB508(verts, 4, sp47, transData, sp4E, sp52, -2000, -2000, 0, 0); - func_802CB508(verts, 5, sp47, transData, sp4E, sp52, 2000, -2000, 0, 0); - func_802CB508(verts, 6, sp47, transData, sp4E, sp52, 2000, 2000, 0, 0); - func_802CB508(verts, 7, sp47, transData, sp4E, sp52, -2000, 2000, 0, 0); + make_tex_transition_vertex(verts, 4, fadeTimer, transData, centerTransX, centerTransY, -2000, -2000, 0, 0); + make_tex_transition_vertex(verts, 5, fadeTimer, transData, centerTransX, centerTransY, 2000, -2000, 0, 0); + make_tex_transition_vertex(verts, 6, fadeTimer, transData, centerTransX, centerTransY, 2000, 2000, 0, 0); + make_tex_transition_vertex(verts, 7, fadeTimer, transData, centerTransX, centerTransY, -2000, 2000, 0, 0); } -void *D_8032FF68[] = { +void *sTextureTransitionID[] = { texture_transition_star_half, texture_transition_circle_half, texture_transition_mario, texture_transition_bowser_half, }; -s32 func_802CB9F8(s8 spBB, s8 spBF, struct WarpTransitionData *transData, s8 spC7, s8 spCB) { - f32 spB4 = func_802CB274(spBB, spBF, transData); - u16 spB2 = func_802CB384(transData); - s16 spB0 = func_802CB400(transData, spB4, spB2); - s16 spAE = func_802CB484(transData, spB4, spB2); - s16 spAC = func_802CB19C(spBB, spBF, transData); - Vtx *spA8 = alloc_display_list(8 * sizeof(*spA8)); +s32 render_textured_transition(s8 fadeTimer, s8 transTime, struct WarpTransitionData *transData, s8 texID, s8 transTexType) { + f32 texTransTime = calc_tex_transition_time(fadeTimer, transTime, transData); + u16 texTransPos = convert_tex_transition_angle_to_pos(transData); + s16 centerTransX = center_tex_transition_x(transData, texTransTime, texTransPos); + s16 centerTransY = center_tex_transition_y(transData, texTransTime, texTransPos); + s16 texTransRadius = calc_tex_transition_radius(fadeTimer, transTime, transData); + Vtx *verts = alloc_display_list(8 * sizeof(*verts)); - if (spA8 != NULL) { - func_802CB6A0(spA8, spBB, transData, spB0, spAE, spAC, spCB); // TODO types - gSPDisplayList(gDisplayListHead++, dl_proj_mtx_fullscreen); + if (verts != NULL) { + load_tex_transition_vertex(verts, fadeTimer, transData, centerTransX, centerTransY, texTransRadius, transTexType); + gSPDisplayList(gDisplayListHead++, dl_proj_mtx_fullscreen) gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2); - gSPVertex(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(spA8), 8, 0); + gSPVertex(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(verts), 8, 0); gSPDisplayList(gDisplayListHead++, dl_transition_draw_filled_region); gDPPipeSync(gDisplayListHead++); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); - gDPSetTextureFilter(gDisplayListHead++, G_TF_BILERP); - switch (spCB) { - case 0: - gDPLoadTextureBlock(gDisplayListHead++, D_8032FF68[spC7], G_IM_FMT_IA, G_IM_SIZ_8b, 32, 64, 0, + gDPSetTextureFilter(gDisplayListHead++, G_TF_BILERP); + switch (transTexType) { + case TRANS_TYPE_MIRROR: + gDPLoadTextureBlock(gDisplayListHead++, sTextureTransitionID[texID], G_IM_FMT_IA, G_IM_SIZ_8b, 32, 64, 0, G_TX_WRAP | G_TX_MIRROR, G_TX_WRAP | G_TX_MIRROR, 5, 6, G_TX_NOLOD, G_TX_NOLOD); break; - case 1: - gDPLoadTextureBlock(gDisplayListHead++, D_8032FF68[spC7], G_IM_FMT_IA, G_IM_SIZ_8b, 64, 64, 0, + case TRANS_TYPE_CLAMP: + gDPLoadTextureBlock(gDisplayListHead++, sTextureTransitionID[texID], G_IM_FMT_IA, G_IM_SIZ_8b, 64, 64, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 6, G_TX_NOLOD, G_TX_NOLOD); break; } gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON); - gSPVertex(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(spA8), 4, 0); + gSPVertex(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(verts), 4, 0); gSPDisplayList(gDisplayListHead++, dl_draw_quad_verts_0123); gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF); gSPDisplayList(gDisplayListHead++, dl_screen_transition_end); - D_8032FF64[spBB] += transData->unk10; + sTransitionTextureFadeCount[fadeTimer] += transData->texTimer; } else { } - return func_802CAAE0(spBB, spBF); + return set_and_reset_transition_fade_timer(fadeTimer, transTime); } -int func_802CC108(s8 sp23, s8 sp27, u8 sp2B, struct WarpTransitionData *sp2C) { - switch (sp27) { - case 0: - return func_802CB0E4(sp23, sp2B, sp2C); +int render_screen_transition(s8 fadeTimer, s8 transType, u8 transTime, struct WarpTransitionData *transData) { + switch (transType) { + case WARP_TRANSITION_FADE_FROM_COLOR: + return render_fade_transition_from_color(fadeTimer, transTime, transData); break; - case 1: - return func_802CB140(sp23, sp2B, sp2C); + case WARP_TRANSITION_FADE_INTO_COLOR: + return render_fade_transition_into_color(fadeTimer, transTime, transData); break; - case 8: - return func_802CB9F8(sp23, sp2B, sp2C, 0, 0); + case WARP_TRANSITION_FADE_FROM_STAR: + return render_textured_transition(fadeTimer, transTime, transData, TEX_TRANS_STAR, TRANS_TYPE_MIRROR); break; - case 9: - return func_802CB9F8(sp23, sp2B, sp2C, 0, 0); + case WARP_TRANSITION_FADE_INTO_STAR: + return render_textured_transition(fadeTimer, transTime, transData, TEX_TRANS_STAR, TRANS_TYPE_MIRROR); break; - case 10: - return func_802CB9F8(sp23, sp2B, sp2C, 1, 0); + case WARP_TRANSITION_FADE_FROM_CIRCLE: + return render_textured_transition(fadeTimer, transTime, transData, TEX_TRANS_CIRCLE, TRANS_TYPE_MIRROR); break; - case 11: - return func_802CB9F8(sp23, sp2B, sp2C, 1, 0); + case WARP_TRANSITION_FADE_INTO_CIRCLE: + return render_textured_transition(fadeTimer, transTime, transData, TEX_TRANS_CIRCLE, TRANS_TYPE_MIRROR); break; - case 16: - return func_802CB9F8(sp23, sp2B, sp2C, 2, 1); + case WARP_TRANSITION_FADE_FROM_MARIO: + return render_textured_transition(fadeTimer, transTime, transData, TEX_TRANS_MARIO, TRANS_TYPE_CLAMP); break; - case 17: - return func_802CB9F8(sp23, sp2B, sp2C, 2, 1); + case WARP_TRANSITION_FADE_INTO_MARIO: + return render_textured_transition(fadeTimer, transTime, transData, TEX_TRANS_MARIO, TRANS_TYPE_CLAMP); break; - case 18: - return func_802CB9F8(sp23, sp2B, sp2C, 3, 0); + case WARP_TRANSITION_FADE_FROM_BOWSER: + return render_textured_transition(fadeTimer, transTime, transData, TEX_TRANS_BOWSER, TRANS_TYPE_MIRROR); break; - case 19: - return func_802CB9F8(sp23, sp2B, sp2C, 3, 0); + case WARP_TRANSITION_FADE_INTO_BOWSER: + return render_textured_transition(fadeTimer, transTime, transData, TEX_TRANS_BOWSER, TRANS_TYPE_MIRROR); break; } } -Gfx *func_802CC2E8(void) { +Gfx *render_cannon_circle_base(void) { Vtx *verts = alloc_display_list(4 * sizeof(*verts)); Gfx *dlist = alloc_display_list(16 * sizeof(*dlist)); Gfx *g = dlist; if (verts != NULL && dlist != NULL) { make_vertex(verts, 0, 0, 0, -1, -1152, 1824, 0, 0, 0, 255); - make_vertex(verts, 1, 320, 0, -1, 1152, 1824, 0, 0, 0, 255); - make_vertex(verts, 2, 320, 240, -1, 1152, 192, 0, 0, 0, 255); - make_vertex(verts, 3, 0, 240, -1, -1152, 192, 0, 0, 0, 255); + make_vertex(verts, 1, SCREEN_WIDTH, 0, -1, 1152, 1824, 0, 0, 0, 255); + make_vertex(verts, 2, SCREEN_WIDTH, SCREEN_HEIGHT, -1, 1152, 192, 0, 0, 0, 255); + make_vertex(verts, 3, 0, SCREEN_HEIGHT, -1, -1152, 192, 0, 0, 0, 255); - gSPDisplayList(g++, dl_proj_mtx_fullscreen) + gSPDisplayList(g++, dl_proj_mtx_fullscreen); gDPSetCombineMode(g++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA); gDPSetTextureFilter(g++, G_TF_BILERP); - gDPLoadTextureBlock(g++, D_8032FF68[1], G_IM_FMT_IA, G_IM_SIZ_8b, 32, 64, 0, + gDPLoadTextureBlock(g++, sTextureTransitionID[TEX_TRANS_CIRCLE], G_IM_FMT_IA, G_IM_SIZ_8b, 32, 64, 0, G_TX_WRAP | G_TX_MIRROR, G_TX_WRAP | G_TX_MIRROR, 5, 6, G_TX_NOLOD, G_TX_NOLOD); gSPTexture(g++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON); gSPVertex(g++, VIRTUAL_TO_PHYSICAL(verts), 4, 0); @@ -266,14 +266,14 @@ Gfx *func_802CC2E8(void) { return dlist; } -Gfx *Geo18_802CD1E8(s32 run, struct GraphNode *node, UNUSED f32 mtx[4][4]) { - struct GraphNodeGenerated *sp1C = (struct GraphNodeGenerated *) node; +Gfx *geo_cannon_circle_base(s32 callContext, struct GraphNode *node, UNUSED f32 mtx[4][4]) { + struct GraphNodeGenerated *graphNode = (struct GraphNodeGenerated *) node; Gfx *dlist = NULL; - if (run == TRUE && gCurrentArea != NULL + if (callContext == GEO_CONTEXT_RENDER && gCurrentArea != NULL && gCurrentArea->camera->currPreset == CAMERA_PRESET_INSIDE_CANNON) { - sp1C->fnNode.node.flags = (sp1C->fnNode.node.flags & 0xFF) | 0x500; - dlist = func_802CC2E8(); + graphNode->fnNode.node.flags = (graphNode->fnNode.node.flags & 0xFF) | 0x500; + dlist = render_cannon_circle_base(); } return dlist; } diff --git a/src/game/screen_transition.h b/src/game/screen_transition.h index 30f2281..a56f9ae 100644 --- a/src/game/screen_transition.h +++ b/src/game/screen_transition.h @@ -1,28 +1,23 @@ -#ifndef _SCREEN_TRANSITION_H -#define _SCREEN_TRANSITION_H +#ifndef SCREEN_TRANSITION_H +#define SCREEN_TRANSITION_H #include "types.h" -// extern ? D_8032FF60; -// extern ? D_8032FF64; -// extern ? D_8032FF68; +enum TextureTransitionID +{ + TEX_TRANS_STAR, + TEX_TRANS_CIRCLE, + TEX_TRANS_MARIO, + TEX_TRANS_BOWSER +}; -// extern ? func_802CAAE0(?); -// extern ? func_802CAB60(?); -// extern ? func_802CADB4(?); -// extern ? func_802CAF38(?); -// extern ? func_802CB0E4(?); -// extern ? func_802CB140(?); -// extern ? func_802CB19C(?); -// extern ? func_802CB274(?); -// extern ? func_802CB384(?); -// extern ? func_802CB400(?); -// extern ? func_802CB484(?); -// extern ? func_802CB508(?); -// extern ? func_802CB6A0(?); -// extern ? func_802CB9F8(?); -int func_802CC108(s8 sp23, s8 sp27, u8 sp2B, struct WarpTransitionData *sp2C); -// extern ? func_802CC2E8(?); -extern Gfx *Geo18_802CD1E8(s32 run, struct GraphNode *node, UNUSED f32 mtx[4][4]); +enum TextureTransitionType +{ + TRANS_TYPE_MIRROR, + TRANS_TYPE_CLAMP +}; -#endif /* _SCREEN_TRANSITION_H */ +extern int render_screen_transition(s8 fadeTimer, s8 transType, u8 transTime, struct WarpTransitionData *transData); +extern Gfx *geo_cannon_circle_base(s32 callContext, struct GraphNode *node, UNUSED f32 mtx[4][4]); + +#endif /* SCREEN_TRANSITION_H */ diff --git a/src/game/segment2.h b/src/game/segment2.h index f18dc9f..b370dc2 100644 --- a/src/game/segment2.h +++ b/src/game/segment2.h @@ -6,7 +6,7 @@ extern u8 _segment2_mio0SegmentRomStart[]; extern u8 _segment2_mio0SegmentRomEnd[]; -extern u8 seg2_level_name_table[]; +extern u8 seg2_course_name_table[]; extern u8 seg2_act_name_table[]; extern Gfx dl_rgba16_text_begin[]; extern Gfx dl_rgba16_text_end[]; diff --git a/src/game/shadow.c b/src/game/shadow.c index d264e8e..4b06580 100644 --- a/src/game/shadow.c +++ b/src/game/shadow.c @@ -16,6 +16,7 @@ #include "segment2.h" #include "save_file.h" #include "geo_misc.h" +#include "level_table.h" /** * @file shadow.c diff --git a/src/game/sound_init.c b/src/game/sound_init.c index c1cf9e7..96fd038 100644 --- a/src/game/sound_init.c +++ b/src/game/sound_init.c @@ -13,6 +13,7 @@ #include "sound_init.h" #include "engine/graph_node.h" #include "paintings.h" +#include "level_table.h" #define MUSIC_NONE 0xFFFF diff --git a/src/game/spawn_object.c b/src/game/spawn_object.c index 0fa2d63..c5772f7 100644 --- a/src/game/spawn_object.c +++ b/src/game/spawn_object.c @@ -12,6 +12,7 @@ #include "level_update.h" #include "spawn_object.h" #include "object_list_processor.h" +#include "level_table.h" /** * An unused linked list struct that seems to have been replaced by ObjectNode. diff --git a/src/goddard/bad_declarations.h b/src/goddard/bad_declarations.h index 4488a82..e7a76e0 100644 --- a/src/goddard/bad_declarations.h +++ b/src/goddard/bad_declarations.h @@ -1,7 +1,6 @@ -#ifndef BAD_GD_DECLARATIONS_H -#define BAD_GD_DECLARATIONS_H +#ifndef BAD_DECLARATIONS_H +#define BAD_DECLARATIONS_H -#include #include "gd_types.h" /** @@ -10,28 +9,32 @@ * Match incorrect type promotion for two declared functions. * * There is an issue with the compiled code for these function calls in files - * outside of the files in which they were defined. + * outside of the files in which they were defined: instead of passing f32's, + * the caller passes f64's. + * * The only possible reason I can come up with for this behavior is that * goddard only declared (not prototyped) his functions in the headers, - * and didn't include the header in the function's defining .c file - * (Even ido 5.0 cares about illegal promotion of types!) + * and didn't include the header in the function's defining .c file. + * (Even IDO 5.3 cares about illegal promotion of types!) This results in + * default argument promotion, which is incorrect in this case. * * Since that's an awful practice to emulate, include this file (first!) to prevent * the proper prototypes of these functions from being seen by files with the * the incorrectly compiled calls. */ -#if !BUGFIX_GODDARD_BAD_DECLARATIONS +#ifndef AVOID_UB -#define GD_USE_BAD_DECLARATIONS 1 +#define GD_USE_BAD_DECLARATIONS -/* half6 */ -extern struct ObjFace *make_face_with_colour(); +/* shape_helper.h */ +extern struct ObjFace *make_face_with_colour(); /* should be: make_face_with_colour(f32, f32, f32) */ -/* oldobj */ +/* old_menu.h */ extern struct ObjLabel *make_label(); /* should be: make_label(struct ObjValPtrs *, char *, s32, f32, f32, f32) */ -#endif /* !BUGFIX_GODDARD_BAD_DECLARATIONS */ -#endif /* BAD_GD_DECLARATIONS_H */ +#endif /* !AVOID_UB */ + +#endif /* BAD_DECLARATIONS_H */ diff --git a/src/goddard/draw_objects.c b/src/goddard/draw_objects.c index 9674cea..d39f51e 100644 --- a/src/goddard/draw_objects.c +++ b/src/goddard/draw_objects.c @@ -1,6 +1,5 @@ #include #include -#include #include #include "gd_types.h" @@ -112,7 +111,7 @@ static struct GdVec3f sGrabCords; ///< x, y grabbable point near cur * Set the ambient light color and turn on G_CULL_BACK. */ void setup_lights(void) { - set_light_num(2); + set_light_num(NUMLIGHTS_2); gd_setproperty(GD_PROP_AMB_COLOUR, 0.5f, 0.5f, 0.5f); gd_setproperty(GD_PROP_CULLING, 1.0f, 0.0f, 0.0f); // set G_CULL_BACK return; @@ -211,7 +210,7 @@ void draw_shape(struct ObjShape *shape, s32 flag, f32 c, f32 d, f32 e, // "sweep sUseSelectedColor = TRUE; sSelectedColour = gd_get_colour(colorIdx); if (sSelectedColour != NULL) { - func_801A086C(-1, sSelectedColour, 64); + func_801A086C(-1, sSelectedColour, GD_MTL_LIGHTS); } else { fatal_print("Draw_shape(): Bad colour"); } @@ -311,7 +310,7 @@ void draw_light(struct ObjLight *light) { void draw_material(struct ObjMaterial *mtl) { s32 mtlType = mtl->type; // 24 - if (mtlType == GD_MTL_UNK16) { + if (mtlType == GD_MTL_SHINE_DL) { if (sPhongLight != NULL && sPhongLight->unk30 > 0.0f) { if (gViewUpdateCamera != NULL) { func_801A0478(mtl->gddlNumber, gViewUpdateCamera, &sPhongLight->position, @@ -320,13 +319,13 @@ void draw_material(struct ObjMaterial *mtl) { fatal_printf("draw_material() no active camera for phong"); } } else { - mtlType = GD_MTL_UNK04; + mtlType = GD_MTL_BREAK; } } if (sUseSelectedColor == FALSE) { func_801A086C(mtl->gddlNumber, &mtl->Kd, mtlType); } else { - func_801A086C(mtl->gddlNumber, sSelectedColour, GD_MTL_UNK64); + func_801A086C(mtl->gddlNumber, sSelectedColour, GD_MTL_LIGHTS); } } @@ -771,25 +770,23 @@ void drawscene(enum SceneType process, struct ObjGroup *interactables, struct Ob sUnreadShapeFlag = 0; sUpdateViewState.unreadCounter = 0; restart_timer("draw1"); - set_gd_mtx_parameters(5); // G_MTX_PROJECTION | G_MTX_MUL | G_MTX_NOPUSH; + set_gd_mtx_parameters(G_MTX_PROJECTION | G_MTX_MUL | G_MTX_PUSH); if (sUpdateViewState.view->unk38 == 1) { - // guPerspective - func_801A3C8C(sUpdateViewState.view->clipping.z, + gd_create_perspective_matrix(sUpdateViewState.view->clipping.z, sUpdateViewState.view->lowerRight.x / sUpdateViewState.view->lowerRight.y, sUpdateViewState.view->clipping.x, sUpdateViewState.view->clipping.y); } else { - // guOrtho - func_801A3AF0( + gd_create_ortho_matrix( -sUpdateViewState.view->lowerRight.x / 2.0, sUpdateViewState.view->lowerRight.x / 2.0, -sUpdateViewState.view->lowerRight.y / 2.0, sUpdateViewState.view->lowerRight.y / 2.0, sUpdateViewState.view->clipping.x, sUpdateViewState.view->clipping.y); } if (lightgrp != NULL) { - set_gd_mtx_parameters(6); // G_MTX_MODELVIEW | G_MTX_MUL | G_MTX_NOPUSH + set_gd_mtx_parameters(G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_PUSH); apply_to_obj_types_in_group(OBJ_TYPE_LIGHTS | OBJ_TYPE_PARTICLES, (applyproc_t) apply_obj_draw_fn, lightgrp); - set_gd_mtx_parameters(5); + set_gd_mtx_parameters(G_MTX_PROJECTION | G_MTX_MUL | G_MTX_PUSH); } if (gViewUpdateCamera != NULL) { @@ -799,8 +796,8 @@ void drawscene(enum SceneType process, struct ObjGroup *interactables, struct Ob } setup_lights(); - set_gd_mtx_parameters(6); - push_idn_mtx_cur_gddl(); + set_gd_mtx_parameters(G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_PUSH); + idn_mtx_push_gddl(); sSceneProcessType = process; if ((sNumActiveLights = sUpdateViewState.view->flags & VIEW_LIGHT)) { @@ -845,7 +842,7 @@ void nop_obj_draw(UNUSED struct GdObj *nop) { void draw_shape_faces(struct ObjShape *shape) { sUpdateViewState.mtlDlNum = 0; sUpdateViewState.unreadCounter = 0; - func_801A2374(FALSE); + gddl_is_loading_stub_dl(FALSE); sUnreadShapeFlag = (s32) shape->flag & 1; func_801A02B8(shape->unk58); if (shape->gdDls[gGdFrameBuf] != 0) { @@ -1006,7 +1003,7 @@ void apply_obj_draw_fn(struct GdObj *obj) { * Count input `ObjLight` as an active light, if it wasn't already counted. */ void register_light(struct ObjLight *light) { - func_801A0324(light->id); + set_light_id(light->id); gd_setproperty(GD_PROP_LIGHTING, 2.0f, 0.0f, 0.0f); if (light->flags & LIGHT_NEW_UNCOUNTED) { sNumActiveLights++; @@ -1049,7 +1046,7 @@ void Proc8017A980(struct ObjLight *light) { } sp24 *= sp20; } - func_801A0324(light->id); + set_light_id(light->id); gd_setproperty(GD_PROP_DIFUSE_COLOUR, light->diffuse.r * sp24, light->diffuse.g * sp24, light->diffuse.b * sp24); gd_setproperty(GD_PROP_LIGHT_DIR, sLightPositionCache[light->id].x, @@ -1119,7 +1116,12 @@ void unref_8017AEDC(struct ObjGroup *grp) { * @bug Nothing is returned if the DL is created * @note Contains string literals that suggest a removed `printf` call */ -s32 create_shape_gddl(struct ObjShape *s) { +#ifdef AVOID_UB +void +#else +s32 +#endif +create_shape_gddl(struct ObjShape *s) { struct ObjShape *shape = s; // 24 s32 shapedl; // 20 UNUSED s32 enddl; // 1C @@ -1127,7 +1129,11 @@ s32 create_shape_gddl(struct ObjShape *s) { create_shape_mtl_gddls(shape); shapedl = gd_startdisplist(7); if (shapedl == 0) { +#ifdef AVOID_UB + return; +#else return -1; +#endif } setup_lights(); @@ -1135,7 +1141,7 @@ s32 create_shape_gddl(struct ObjShape *s) { if (shape->unk3C == 0) { draw_shape_faces(shape); } - enddl = gd_end_dl(); + enddl = gd_enddlsplist_parent(); shape->gdDls[0] = shapedl; shape->gdDls[1] = shapedl; @@ -1144,10 +1150,6 @@ s32 create_shape_gddl(struct ObjShape *s) { } else { printf("Generated 'UNKNOWN' (%d) display list ok.(%d)\n", shapedl, enddl); } - -#if BUGFIX_GODDARD_MISSING_RETURN - return shapedl; -#endif } /** @@ -1513,7 +1515,7 @@ void update_view(struct ObjView *view) { } border_active_view(); - gd_end_dl(); + gd_enddlsplist_parent(); imout(); return; } diff --git a/src/goddard/dynlist_proc.c b/src/goddard/dynlist_proc.c index cb343dd..931f34d 100644 --- a/src/goddard/dynlist_proc.c +++ b/src/goddard/dynlist_proc.c @@ -1,6 +1,5 @@ #include #include -#include #include #include "gd_types.h" #include "bad_declarations.h" @@ -630,13 +629,10 @@ struct GdObj *d_makeobj(enum DObjTypes type, DynId id) { d_makeobj(D_GROUP, id); ((struct ObjGroup *) sDynListCurObj)->linkType = 1; //! @bug Returns garbage when making `D_DATA_GRP` object -#if BUGFIX_GODDARD_MISSING_RETURN +#ifdef AVOID_UB return NULL; #else -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wreturn-type" return; -#pragma GCC diagnostic pop #endif case D_CAMERA: dobj = &make_camera(0, NULL)->header; diff --git a/src/goddard/gd_main.h b/src/goddard/gd_main.h index 296c1f4..3e58d85 100644 --- a/src/goddard/gd_main.h +++ b/src/goddard/gd_main.h @@ -3,16 +3,14 @@ #include + // In various files of the Goddard subsystem, there are miscellaneous -// unused rodata strings. These can be generated via a printf call that -// is stubbed out, but not via define printf(...), as IDO 5.3 C -// preprocessor did not support va_arg defines. Goddard, however, did -// use gd_printf, which is distinct from this type of stubbed call, as -// gd_printf actually is called. This could be because gd_printf could -// forward to printf (currently unclear whether it might or might not, -// gd_printf is awaiting decompilation), which would indicate goddard was -// in the middle of moving these calls to the wrapper function. The unmoved -// calls result in the unused rodata strings. +// unused rodata strings. These are likely byproducts of a printf macro +// that was stubbed out as "#define printf", letting printf calls expand +// to no-op comma expressions. (IDO doesn't support variadic macros, so +// "#define printf(...) /* nothing */" wasn't an option.) +// This macro is separate from the gd_printf function; one probably +// forwarded to the other, but it is hard to tell in which direction. #ifdef __GNUC__ #define printf(...) \ _Pragma ("GCC diagnostic push") \ diff --git a/src/goddard/gd_types.h b/src/goddard/gd_types.h index 030369e..82ce794 100644 --- a/src/goddard/gd_types.h +++ b/src/goddard/gd_types.h @@ -403,11 +403,12 @@ struct ObjCamera { /* 0x18C */ struct ObjView *unk18C; // view that has/is using this camera? }; /* sizeof = 0x190 */ -// These might not be types, but rather flags? enum GdMtlTypes { - GD_MTL_UNK04 = 4, - GD_MTL_UNK16 = 16, - GD_MTL_UNK64 = 64 + GD_MTL_STUB_DL = 0x01, + GD_MTL_BREAK = 0x04, + GD_MTL_SHINE_DL = 0x10, + GD_MTL_TEX_OFF = 0x20, + GD_MTL_LIGHTS = 0x40 // uses default case }; struct ObjMaterial { diff --git a/src/goddard/objects.c b/src/goddard/objects.c index 6a79628..27fd277 100644 --- a/src/goddard/objects.c +++ b/src/goddard/objects.c @@ -1,7 +1,7 @@ #include #include +#include #include -#include #include "gd_types.h" #include "gd_macros.h" @@ -343,7 +343,7 @@ struct ObjZone *make_zone(struct ObjGroup *a0, struct GdPlaneF *a1, struct ObjGr newZone->unk30 = a0; //! @bug Created `ObjZone` is not returned -#if BUGFIX_GODDARD_MISSING_RETURN +#ifdef AVOID_UB return newZone; #endif } @@ -1024,7 +1024,7 @@ struct GdObj *UnknownRecursive8017E2F0(struct GdObj *obj, enum ObjTypeFlag type) } //! @bug Nothing is returned if a GdObj of `type` is not found -#if BUGFIX_GODDARD_MISSING_RETURN +#ifdef AVOID_UB return NULL; #endif } @@ -1044,13 +1044,10 @@ s32 apply_to_obj_types_in_group(s32 types, applyproc_t fn, struct ObjGroup *grou //! @bug When `group` pointer is NULL, garbage is returned, not the //! count of `fn` calls if (group == NULL) { -#if BUGFIX_GODDARD_MISSING_RETURN +#ifdef AVOID_UB return fnAppliedCount; #else -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wreturn-type" return; -#pragma GCC diagnostic pop #endif } diff --git a/src/goddard/old_menu.h b/src/goddard/old_menu.h index fcd1869..84cef18 100644 --- a/src/goddard/old_menu.h +++ b/src/goddard/old_menu.h @@ -10,7 +10,7 @@ extern void reset_gadget(struct ObjGadget *); extern void reset_gadgets_in_grp(struct ObjGroup *); // see bad_declarations.h -#if !GD_USE_BAD_DECLARATIONS +#ifndef GD_USE_BAD_DECLARATIONS extern struct ObjLabel *make_label(struct ObjValPtrs *, char *, s32, f32, f32, f32); #endif diff --git a/src/goddard/renderer.c b/src/goddard/renderer.c index bab47f6..6e60445 100644 --- a/src/goddard/renderer.c +++ b/src/goddard/renderer.c @@ -1,6 +1,5 @@ #include #include -#include #include #include @@ -27,6 +26,7 @@ #define GD_VIRTUAL_TO_PHYSICAL(addr) ((uintptr_t)(addr) &0x0FFFFFFF) #define GD_LOWER_24(addr) ((uintptr_t)(addr) &0x00FFFFFF) #define GD_LOWER_29(addr) (((uintptr_t)(addr)) & 0x1FFFFFFF) + #define MTX_INTPART_PACK(w1, w2) (((w1) &0xFFFF0000) | (((w2) >> 16) & 0xFFFF)) #define MTX_FRACPART_PACK(w1, w2) ((((w1) << 16) & 0xFFFF0000) | ((w2) &0xFFFF)) #define LOOKAT_PACK(c) ((s32) MIN(((c) * (128.0)), 127.0) & 0xff) @@ -68,17 +68,10 @@ struct GdDisplayList { #define DL_CURRENT_GFX(dl) ((dl)->gfx[(dl)->curGfxIdx]) #define DL_CURRENT_VP(dl) ((dl)->vp[(dl)->curVpIdx]) -union UnkInternal { - s32 w; - struct { - s8 b0, b1, b2, b3; - } bytes; +struct LightDirVec { + s32 x, y, z; }; -struct Unk801BB1B8 { - union UnkInternal u0, u4, u8; -}; // sizeof = 0x0C bytes - enum DynListBankFlag { TABLE_END = -1, STD_LIST_BANK = 3 }; struct DynListBankInfo { @@ -126,13 +119,12 @@ static Mtx sIdnMtx; // @ 801BB100 static Mat4f sInitIdnMat4; // @ 801BB140 static s8 sVtxCvrtNormBuf[3]; // @ 801BB180 static s16 D_801BB184; -static s32 D_801BB188; +static s32 sNumLights; static struct GdColour sAmbScaleColour; // @ 801BB190 static struct GdColour sLightScaleColours[2]; // @ 801BB1A0 -static struct Unk801BB1B8 D_801BB1B8[2]; -static s32 D_801BB1D0; // light id? from Proc8017A980 or register_light; used to offset into diffuse or - // ambient arrays -static Hilite D_801BB1D8[600]; +static struct LightDirVec sLightDirections[2]; +static s32 sLightId; +static Hilite sHilites[600]; static struct GdVec3f D_801BD758; static struct GdVec3f D_801BD768; // had to migrate earlier static u32 D_801BD774; @@ -185,7 +177,7 @@ static struct ObjShape *sHandShape = NULL; // @ 801A86B8 static s32 D_801A86BC = 1; static s32 D_801A86C0 = 0; // gd_dl id for something? static u32 unref_801a86C4 = 10; -static s32 sMtxParameters = (G_MTX_PROJECTION | G_MTX_MUL | G_MTX_NOPUSH); // @ 801A86C8; +static s32 sMtxParamType = G_MTX_PROJECTION; static struct GdVec3f D_801A86CC = { 1.0f, 1.0f, 1.0f }; static struct ObjView *sActiveView = NULL; // @ 801A86D8 current view? used when drawing dl static struct ObjView *sScreenView2 = NULL; // @ 801A86DC @@ -210,7 +202,7 @@ static Gfx gd_texture1_dummy_aligner1[] = { // @ 801A8728 gsSPEndDisplayList(), }; -ALIGNED8 static u8 textureHandOpen[] = { +ALIGNED8 static u8 gd_texture_hand_open[] = { #include "textures/intro_raw/hand_open.rgba16.inc.c" }; @@ -218,75 +210,75 @@ static Gfx gd_texture2_dummy_aligner1[] = { gsSPEndDisplayList() }; -ALIGNED8 static u8 textureHandClosed[] = { +ALIGNED8 static u8 gd_texture_hand_closed[] = { #include "textures/intro_raw/hand_closed.rgba16.inc.c" }; -ALIGNED8 static u8 texture_red_star_0[] = { +ALIGNED8 static u8 gd_texture_red_star_0[] = { #include "textures/intro_raw/red_star_0.rgba16.inc.c" }; -ALIGNED8 static u8 texture_red_star_1[] = { +ALIGNED8 static u8 gd_texture_red_star_1[] = { #include "textures/intro_raw/red_star_1.rgba16.inc.c" }; -ALIGNED8 static u8 texture_red_star_2[] = { +ALIGNED8 static u8 gd_texture_red_star_2[] = { #include "textures/intro_raw/red_star_2.rgba16.inc.c" }; -ALIGNED8 static u8 texture_red_star_3[] = { +ALIGNED8 static u8 gd_texture_red_star_3[] = { #include "textures/intro_raw/red_star_3.rgba16.inc.c" }; -ALIGNED8 static u8 texture_red_star_4[] = { +ALIGNED8 static u8 gd_texture_red_star_4[] = { #include "textures/intro_raw/red_star_4.rgba16.inc.c" }; -ALIGNED8 static u8 texture_red_star_5[] = { +ALIGNED8 static u8 gd_texture_red_star_5[] = { #include "textures/intro_raw/red_star_5.rgba16.inc.c" }; -ALIGNED8 static u8 texture_red_star_6[] = { +ALIGNED8 static u8 gd_texture_red_star_6[] = { #include "textures/intro_raw/red_star_6.rgba16.inc.c" }; -ALIGNED8 static u8 texture_red_star_7[] = { +ALIGNED8 static u8 gd_texture_red_star_7[] = { #include "textures/intro_raw/red_star_7.rgba16.inc.c" }; -ALIGNED8 static u8 texture_white_star_0[] = { +ALIGNED8 static u8 gd_texture_white_star_0[] = { #include "textures/intro_raw/white_star_0.rgba16.inc.c" }; -ALIGNED8 static u8 texture_white_star_1[] = { +ALIGNED8 static u8 gd_texture_white_star_1[] = { #include "textures/intro_raw/white_star_1.rgba16.inc.c" }; -ALIGNED8 static u8 texture_white_star_2[] = { +ALIGNED8 static u8 gd_texture_white_star_2[] = { #include "textures/intro_raw/white_star_2.rgba16.inc.c" }; -ALIGNED8 static u8 texture_white_star_3[] = { +ALIGNED8 static u8 gd_texture_white_star_3[] = { #include "textures/intro_raw/white_star_3.rgba16.inc.c" }; -ALIGNED8 static u8 texture_white_star_4[] = { +ALIGNED8 static u8 gd_texture_white_star_4[] = { #include "textures/intro_raw/white_star_4.rgba16.inc.c" }; -ALIGNED8 static u8 texture_white_star_5[] = { +ALIGNED8 static u8 gd_texture_white_star_5[] = { #include "textures/intro_raw/white_star_5.rgba16.inc.c" }; -ALIGNED8 static u8 texture_white_star_6[] = { +ALIGNED8 static u8 gd_texture_white_star_6[] = { #include "textures/intro_raw/white_star_6.rgba16.inc.c" }; -ALIGNED8 static u8 texture_white_star_7[] = { +ALIGNED8 static u8 gd_texture_white_star_7[] = { #include "textures/intro_raw/white_star_7.rgba16.inc.c" }; -static Vtx_t star_vertex_801B1738[] = { +static Vtx_t gd_vertex_star[] = { {{-64, 0, 0}, 0, { 0, 992}, {0x00, 0x00, 0x7F}}, {{ 64, 0, 0}, 0, {992, 992}, {0x00, 0x00, 0x7F}}, {{ 64, 128, 0}, 0, {992, 0}, {0x00, 0x00, 0x7F}}, @@ -294,24 +286,24 @@ static Vtx_t star_vertex_801B1738[] = { }; //! no references to these vertices -UNUSED static Vtx_t D_vertex_801B1778[] = { +UNUSED static Vtx_t gd_unused_vertex[] = { {{16384, 0, 0}, 0, {0, 16384}, {0x00, 0x00, 0x00}}, {{ 0, 0, 16384}, 0, {0, 0}, {0x00, 0x00, 0x40}}, {{ 0, 0, 0}, 0, {0, 0}, {0x00, 0x00, 0x00}}, {{ 0, 0, 0}, 0, {0, 0}, {0x00, 0x00, 0x00}}, }; -static Gfx star_dl_common[] = { +static Gfx gd_dl_star[] = { gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), gsSPClearGeometryMode(G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR), gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_NOOP2), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_CLAMP | G_TX_NOMIRROR, 5, G_TX_NOLOD), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_CLAMP | G_TX_NOMIRROR, 5, G_TX_NOLOD), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPVertex(star_vertex_801B1738, 4, 0), + gsSPVertex(gd_vertex_star, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), @@ -319,182 +311,186 @@ static Gfx star_dl_common[] = { gsSPEndDisplayList(), }; -static Gfx red_star_dl_801B1838[] = { +static Gfx gd_dl_red_star_0[] = { gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_red_star_0), - gsSPBranchList(star_dl_common), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_red_star_0), + gsSPBranchList(gd_dl_star), }; -static Gfx red_star_dl_801B1850[] = { +static Gfx gd_dl_red_star_1[] = { gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_red_star_1), - gsSPBranchList(star_dl_common), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_red_star_1), + gsSPBranchList(gd_dl_star), }; -static Gfx red_star_dl_801B1868[] = { +static Gfx gd_dl_red_star_2[] = { gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_red_star_2), - gsSPBranchList(star_dl_common), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_red_star_2), + gsSPBranchList(gd_dl_star), }; -static Gfx red_star_dl_801B1880[] = { +static Gfx gd_dl_red_star_3[] = { gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_red_star_3), - gsSPBranchList(star_dl_common), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_red_star_3), + gsSPBranchList(gd_dl_star), }; -static Gfx red_star_dl_801B1898[] = { +static Gfx gd_dl_red_star_4[] = { gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_red_star_4), - gsSPBranchList(star_dl_common), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_red_star_4), + gsSPBranchList(gd_dl_star), }; -static Gfx red_star_dl_801B18B0[] = { +static Gfx gd_dl_red_star_5[] = { gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_red_star_5), - gsSPBranchList(star_dl_common), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_red_star_5), + gsSPBranchList(gd_dl_star), }; -static Gfx red_star_dl_801B18C8[] = { +static Gfx gd_dl_red_star_6[] = { gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_red_star_6), - gsSPBranchList(star_dl_common), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_red_star_6), + gsSPBranchList(gd_dl_star), }; -static Gfx red_star_dl_801B18E0[] = { +static Gfx gd_dl_red_star_7[] = { gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_red_star_7), - gsSPBranchList(star_dl_common), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_red_star_7), + gsSPBranchList(gd_dl_star), }; -static Gfx white_star_dl_801B18F8[] = { +static Gfx gd_dl_silver_star_0[] = { gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_white_star_0), - gsSPBranchList(star_dl_common), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_white_star_0), + gsSPBranchList(gd_dl_star), }; -static Gfx white_star_dl_801B1910[] = { +static Gfx gd_dl_silver_star_1[] = { gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_white_star_1), - gsSPBranchList(star_dl_common), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_white_star_1), + gsSPBranchList(gd_dl_star), }; -static Gfx white_star_dl_801B1928[] = { +static Gfx gd_dl_silver_star_2[] = { gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_white_star_2), - gsSPBranchList(star_dl_common), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_white_star_2), + gsSPBranchList(gd_dl_star), }; -static Gfx white_star_dl_801B1940[] = { +static Gfx gd_dl_silver_star_3[] = { gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_white_star_3), - gsSPBranchList(star_dl_common), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_white_star_3), + gsSPBranchList(gd_dl_star), }; -static Gfx white_star_dl_801B1958[] = { +static Gfx gd_dl_silver_star_4[] = { gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_white_star_4), - gsSPBranchList(star_dl_common), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_white_star_4), + gsSPBranchList(gd_dl_star), }; -static Gfx white_star_dl_801B1970[] = { +static Gfx gd_dl_silver_star_5[] = { gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_white_star_5), - gsSPBranchList(star_dl_common), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_white_star_5), + gsSPBranchList(gd_dl_star), }; -static Gfx white_star_dl_801B1988[] = { +static Gfx gd_dl_silver_star_6[] = { gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_white_star_6), - gsSPBranchList(star_dl_common), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_white_star_6), + gsSPBranchList(gd_dl_star), }; -static Gfx white_star_dl_801B19A0[] = { +static Gfx gd_dl_silver_star_7[] = { gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_white_star_7), - gsSPBranchList(star_dl_common), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_white_star_7), + gsSPBranchList(gd_dl_star), }; -static Gfx *redStarDlArray[] = { - red_star_dl_801B1838, - red_star_dl_801B1838, - red_star_dl_801B1850, - red_star_dl_801B1850, - red_star_dl_801B1868, - red_star_dl_801B1868, - red_star_dl_801B1880, - red_star_dl_801B1880, - red_star_dl_801B1898, - red_star_dl_801B1898, - red_star_dl_801B18B0, - red_star_dl_801B18B0, - red_star_dl_801B18C8, - red_star_dl_801B18C8, - red_star_dl_801B18E0, - red_star_dl_801B18E0, +static Gfx *gd_red_star_dl_array[] = { + gd_dl_red_star_0, + gd_dl_red_star_0, + gd_dl_red_star_1, + gd_dl_red_star_1, + gd_dl_red_star_2, + gd_dl_red_star_2, + gd_dl_red_star_3, + gd_dl_red_star_3, + gd_dl_red_star_4, + gd_dl_red_star_4, + gd_dl_red_star_5, + gd_dl_red_star_5, + gd_dl_red_star_6, + gd_dl_red_star_6, + gd_dl_red_star_7, + gd_dl_red_star_7, }; -static Gfx *silverStarDlArray[] = { - white_star_dl_801B18F8, - white_star_dl_801B18F8, - white_star_dl_801B1910, - white_star_dl_801B1910, - white_star_dl_801B1928, - white_star_dl_801B1928, - white_star_dl_801B1940, - white_star_dl_801B1940, - white_star_dl_801B1958, - white_star_dl_801B1958, - white_star_dl_801B1970, - white_star_dl_801B1970, - white_star_dl_801B1988, - white_star_dl_801B1988, - white_star_dl_801B19A0, - white_star_dl_801B19A0, +static Gfx *gd_silver_star_dl_array[] = { + gd_dl_silver_star_0, + gd_dl_silver_star_0, + gd_dl_silver_star_1, + gd_dl_silver_star_1, + gd_dl_silver_star_2, + gd_dl_silver_star_2, + gd_dl_silver_star_3, + gd_dl_silver_star_3, + gd_dl_silver_star_4, + gd_dl_silver_star_4, + gd_dl_silver_star_5, + gd_dl_silver_star_5, + gd_dl_silver_star_6, + gd_dl_silver_star_6, + gd_dl_silver_star_7, + gd_dl_silver_star_7, }; -ALIGNED8 static u8 texture_sparkle_0[] = { +ALIGNED8 static u8 gd_texture_sparkle_0[] = { #include "textures/intro_raw/sparkle_0.rgba16.inc.c" }; -ALIGNED8 static u8 texture_sparkle_1[] = { +ALIGNED8 static u8 gd_texture_sparkle_1[] = { #include "textures/intro_raw/sparkle_1.rgba16.inc.c" }; -ALIGNED8 static u8 texture_sparkle_2[] = { +ALIGNED8 static u8 gd_texture_sparkle_2[] = { #include "textures/intro_raw/sparkle_2.rgba16.inc.c" }; -ALIGNED8 static u8 texture_sparkle_3[] = { +ALIGNED8 static u8 gd_texture_sparkle_3[] = { #include "textures/intro_raw/sparkle_3.rgba16.inc.c" }; -ALIGNED8 static u8 texture_sparkle_4[] = { +ALIGNED8 static u8 gd_texture_sparkle_4[] = { #include "textures/intro_raw/sparkle_4.rgba16.inc.c" }; -ALIGNED8 static u8 texture_sparkle_5[] = { //! no references to this texture 0x801B4238 +//! No reference to this texture. Two DL's uses the same previous texture +// instead of using this texture. +ALIGNED8 static u8 gd_texture_sparkle_5[] = { #include "textures/intro_raw/sparkle_5.rgba16.inc.c" }; -static Vtx_t sparkle_vertex_801B4A38[] = { +static Vtx_t gd_vertex_sparkle[] = { {{ -32, 0, 0}, 0, { 0, 1984}, { 0x00, 0x00, 0x7F, 0x00}}, {{ 32, 0, 0}, 0, { 1984, 1984}, { 0x00, 0x00, 0x7F, 0x00}}, {{ 32, 64, 0}, 0, { 1984, 0}, { 0x00, 0x00, 0x7F, 0x00}}, {{ -32, 64, 0}, 0, { 0, 0}, { 0x00, 0x00, 0x7F, 0x00}}, }; -static Gfx sparkle_dl_common[] = { +static Gfx gd_dl_sparkle[] = { gsDPSetCombineMode(G_CC_MODULATERGBA_PRIM, G_CC_MODULATERGBA_PRIM), gsSPClearGeometryMode(G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR), gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_NOOP2), gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, + G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, + G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPVertex(sparkle_vertex_801B4A38, 4, 0), + gsSPVertex(gd_vertex_sparkle, 4, 0), gsSP2Triangles(0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), @@ -502,156 +498,157 @@ static Gfx sparkle_dl_common[] = { gsSPEndDisplayList(), }; -static Gfx red_dl_801B4AF8[] = { - gsDPSetPrimColor(0, 0, 0xFF, 0x00, 0x00, 0xFF), +static Gfx gd_dl_sparkle_red_color[] = { + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), gsSPEndDisplayList(), }; -static Gfx white_dl_801B4B08[] = { - gsDPSetPrimColor(0, 0, 0xFF, 0xFF, 0xFF, 0xFF), +static Gfx gd_dl_sparkle_white_color[] = { + gsDPSetPrimColor(0, 0, 255, 255, 255, 255), gsSPEndDisplayList(), }; -static Gfx sparkle_dl_801B4B18[] = { +static Gfx gd_dl_red_sparkle_0[] = { gsDPPipeSync(), - gsSPDisplayList(red_dl_801B4AF8), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_sparkle_0), - gsSPBranchList(sparkle_dl_common), + gsSPDisplayList(gd_dl_sparkle_red_color), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_0), + gsSPBranchList(gd_dl_sparkle), }; -static Gfx sparkle_dl_801B4B38[] = { +static Gfx gd_dl_red_sparkle_1[] = { gsDPPipeSync(), - gsSPDisplayList(red_dl_801B4AF8), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_sparkle_1), - gsSPBranchList(sparkle_dl_common), + gsSPDisplayList(gd_dl_sparkle_red_color), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_1), + gsSPBranchList(gd_dl_sparkle), }; -static Gfx sparkle_dl_801B4B58[] = { +static Gfx gd_dl_red_sparkle_2[] = { gsDPPipeSync(), - gsSPDisplayList(red_dl_801B4AF8), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_sparkle_2), - gsSPBranchList(sparkle_dl_common), + gsSPDisplayList(gd_dl_sparkle_red_color), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_2), + gsSPBranchList(gd_dl_sparkle), }; -static Gfx sparkle_dl_801B4B78[] = { +static Gfx gd_dl_red_sparkle_3[] = { gsDPPipeSync(), - gsSPDisplayList(red_dl_801B4AF8), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_sparkle_3), - gsSPBranchList(sparkle_dl_common), + gsSPDisplayList(gd_dl_sparkle_red_color), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_3), + gsSPBranchList(gd_dl_sparkle), }; -static Gfx sparkle_dl_801B4B98[] = { +static Gfx gd_dl_red_sparkle_4[] = { gsDPPipeSync(), - gsSPDisplayList(red_dl_801B4AF8), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_sparkle_4), - gsSPBranchList(sparkle_dl_common), + gsSPDisplayList(gd_dl_sparkle_red_color), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_4), + gsSPBranchList(gd_dl_sparkle), }; -static Gfx sparkle_dl_801B4BB8[] ={ +static Gfx gd_dl_red_sparkle_4_dup[] ={ gsDPPipeSync(), - gsSPDisplayList(red_dl_801B4AF8), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_sparkle_4), // 4 again, correct texture would be 5 - gsSPBranchList(sparkle_dl_common), + gsSPDisplayList(gd_dl_sparkle_red_color), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_4), // 4 again, correct texture would be 5 + gsSPBranchList(gd_dl_sparkle), }; -static Gfx sparkle_dl_801B4BD8[] = { +static Gfx gd_dl_silver_sparkle_0[] = { gsDPPipeSync(), - gsSPDisplayList(white_dl_801B4B08), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_sparkle_0), - gsSPBranchList(sparkle_dl_common), + gsSPDisplayList(gd_dl_sparkle_white_color), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_0), + gsSPBranchList(gd_dl_sparkle), }; -static Gfx sparkle_dl_801B4BF8[] = { +static Gfx gd_dl_silver_sparkle_1[] = { gsDPPipeSync(), - gsSPDisplayList(white_dl_801B4B08), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_sparkle_1), - gsSPBranchList(sparkle_dl_common), + gsSPDisplayList(gd_dl_sparkle_white_color), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_1), + gsSPBranchList(gd_dl_sparkle), }; -static Gfx sparkle_dl_801B4C18[] = { +static Gfx gd_dl_silver_sparkle_2[] = { gsDPPipeSync(), - gsSPDisplayList(white_dl_801B4B08), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_sparkle_2), - gsSPBranchList(sparkle_dl_common), + gsSPDisplayList(gd_dl_sparkle_white_color), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_2), + gsSPBranchList(gd_dl_sparkle), }; -static Gfx sparkle_dl_801B4C38[] = { +static Gfx gd_dl_silver_sparkle_3[] = { gsDPPipeSync(), - gsSPDisplayList(white_dl_801B4B08), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_sparkle_3), - gsSPBranchList(sparkle_dl_common), + gsSPDisplayList(gd_dl_sparkle_white_color), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_3), + gsSPBranchList(gd_dl_sparkle), }; -static Gfx sparkle_dl_801B4C58[] = { +static Gfx gd_dl_silver_sparkle_4[] = { gsDPPipeSync(), - gsSPDisplayList(white_dl_801B4B08), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_sparkle_4), - gsSPBranchList(sparkle_dl_common), + gsSPDisplayList(gd_dl_sparkle_white_color), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_4), + gsSPBranchList(gd_dl_sparkle), }; -static Gfx sparkle_dl_801B4C78[] = { +static Gfx gd_dl_silver_sparkle_4_dup[] = { gsDPPipeSync(), - gsSPDisplayList(white_dl_801B4B08), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_sparkle_4), // 4 again, correct texture would be 5 - gsSPBranchList(sparkle_dl_common), + gsSPDisplayList(gd_dl_sparkle_white_color), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_4), // 4 again, correct texture would be 5 + gsSPBranchList(gd_dl_sparkle), }; -static Gfx *redSparkleDlArray[] = { - sparkle_dl_801B4B98, - sparkle_dl_801B4B98, - sparkle_dl_801B4B78, - sparkle_dl_801B4B78, - sparkle_dl_801B4B58, - sparkle_dl_801B4B58, - sparkle_dl_801B4B38, - sparkle_dl_801B4B38, - sparkle_dl_801B4B18, - sparkle_dl_801B4B18, - sparkle_dl_801B4BB8, - sparkle_dl_801B4BB8, +static Gfx *gd_red_sparkle_dl_array[] = { + gd_dl_red_sparkle_4, + gd_dl_red_sparkle_4, + gd_dl_red_sparkle_3, + gd_dl_red_sparkle_3, + gd_dl_red_sparkle_2, + gd_dl_red_sparkle_2, + gd_dl_red_sparkle_1, + gd_dl_red_sparkle_1, + gd_dl_red_sparkle_0, + gd_dl_red_sparkle_0, + gd_dl_red_sparkle_4_dup, + gd_dl_red_sparkle_4_dup, }; -static Gfx *silverSparkleDlArray[] = { - sparkle_dl_801B4C58, - sparkle_dl_801B4C58, - sparkle_dl_801B4C38, - sparkle_dl_801B4C38, - sparkle_dl_801B4C18, - sparkle_dl_801B4C18, - sparkle_dl_801B4BF8, - sparkle_dl_801B4BF8, - sparkle_dl_801B4BD8, - sparkle_dl_801B4BD8, - sparkle_dl_801B4C78, - sparkle_dl_801B4C78, +static Gfx *gd_silver_sparkle_dl_array[] = { + gd_dl_silver_sparkle_4, + gd_dl_silver_sparkle_4, + gd_dl_silver_sparkle_3, + gd_dl_silver_sparkle_3, + gd_dl_silver_sparkle_2, + gd_dl_silver_sparkle_2, + gd_dl_silver_sparkle_1, + gd_dl_silver_sparkle_1, + gd_dl_silver_sparkle_0, + gd_dl_silver_sparkle_0, + gd_dl_silver_sparkle_4_dup, + gd_dl_silver_sparkle_4_dup, }; static Gfx gd_texture3_dummy_aligner1[] = { gsSPEndDisplayList(), }; -ALIGNED8 static u8 texture_mario_face_shine[] = { +ALIGNED8 static u8 gd_texture_mario_face_shine[] = { #include "textures/intro_raw/mario_face_shine.ia8.inc.c" }; -static Gfx marioHeadDl801B5100[] = { +static Gfx gd_dl_mario_face_shine[] = { gsSPSetGeometryMode(G_TEXTURE_GEN), gsSPTexture(0x07C0, 0x07C0, 0, G_TX_RENDERTILE, G_ON), gsDPSetTexturePersp(G_TP_PERSP), gsDPSetTextureFilter(G_TF_BILERP), gsDPSetCombineMode(G_CC_HILITERGBA, G_CC_HILITERGBA), - gsDPLoadTextureBlock(texture_mario_face_shine, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 5, G_TX_NOLOD, G_TX_NOLOD), + gsDPLoadTextureBlock(gd_texture_mario_face_shine, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, + G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 5, G_TX_NOLOD, G_TX_NOLOD), gsDPPipeSync(), gsSPEndDisplayList(), }; -static Gfx marioHeadDl801B5170[] = { +static Gfx gd_dl_rsp_init[] = { gsSPClearGeometryMode(0xFFFFFFFF), gsSPSetGeometryMode(G_SHADING_SMOOTH | G_SHADE), gsSPEndDisplayList(), }; -static Gfx marioHeadDl801B5188[] = { +static Gfx gd_dl_rdp_init[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsDPSetCycleType(G_CYC_1CYCLE), @@ -672,7 +669,7 @@ static Gfx marioHeadDl801B5188[] = { static u32 gd_unused_pad1 = 0; -float D_801B520C = 1.0; +float sGdPerspTimer = 1.0; static u32 gd_unused_pad2 = 0; @@ -681,32 +678,32 @@ static Gfx gd_texture4_dummy_aligner1[] = { gsSPEndDisplayList(), }; -static Vtx_t vertex_801B5228[] = { +static Vtx_t gd_unused_mesh_vertex_group1[] = { {{-8, 8, 0}, 0, { 0, 0}, { 0x00, 0x00, 0x00, 0xFF}}, {{ 8, -2, 0}, 0, { 0, 0}, { 0x00, 0x00, 0x00, 0xFF}}, {{ 2, -8, 0}, 0, { 0, 0}, { 0x00, 0x00, 0x00, 0xFF}}, }; -static Vtx_t vertex_801B5258[] = { +static Vtx_t gd_unused_mesh_vertex_group2[] = { {{-6, 6, 0}, 0, { 0, 0}, { 0xFF, 0xFF, 0xFF, 0xFF}}, {{ 7, -3, 0}, 0, { 0, 0}, { 0xFF, 0x00, 0x00, 0xFF}}, {{ 3, -7, 0}, 0, { 0, 0}, { 0xFF, 0x00, 0x00, 0xFF}}, }; -static Gfx dl_801B5288[] = { +static Gfx gd_dl_unused_mesh[] = { gsDPPipeSync(), gsDPSetRenderMode(G_RM_OPA_SURF, G_RM_OPA_SURF2), gsSPClearGeometryMode(0xFFFFFFFF), gsSPSetGeometryMode(G_SHADING_SMOOTH | G_SHADE), gsDPPipeSync(), - gsSPVertex(vertex_801B5228, 3, 0), + gsSPVertex(gd_unused_mesh_vertex_group1, 3, 0), gsSP1Triangle(0, 1, 2, 0x0), - gsSPVertex(vertex_801B5258, 3, 0), + gsSPVertex(gd_unused_mesh_vertex_group2, 3, 0), gsSP1Triangle(0, 1, 2, 0x0), gsSPEndDisplayList(), }; -static Gfx marioHeadDl801B52D8[] = { +static Gfx gd_dl_sprite_start_tex_block[] = { gsDPPipeSync(), gsDPSetCycleType(G_CYC_1CYCLE), gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON), @@ -730,7 +727,7 @@ void parse_p1_controller(void); void update_cursor(void); void update_view_and_dl(struct ObjView *); void func_801A1A00(void); -void func_801A2388(s32); +void gddl_is_loading_shine_dl(s32); void func_801A3370(f32, f32, f32); void gd_put_sprite(u16 *, s32, s32, s32, s32); void reset_cur_dl_indices(void); @@ -920,7 +917,7 @@ void gd_printf(const char *format, ...) { va_end(args); *csr = '\0'; - if ((intptr_t) csr - (intptr_t) buf >= ARRAY_COUNT(buf) - 1) { + if (csr - buf >= ARRAY_COUNT(buf) - 1) { fatal_printf("printf too long"); } } @@ -1026,27 +1023,28 @@ void setup_stars(void) { gShapeRedStar = make_shape(0, "redstar"); gShapeRedStar->gdDls[0] = new_gddl_from(NULL, 0); gShapeRedStar->gdDls[1] = gShapeRedStar->gdDls[0]; - sGdDLArray[gShapeRedStar->gdDls[0]]->dlptr = redStarDlArray; - sGdDLArray[gShapeRedStar->gdDls[1]]->dlptr = redStarDlArray; + sGdDLArray[gShapeRedStar->gdDls[0]]->dlptr = gd_red_star_dl_array; + sGdDLArray[gShapeRedStar->gdDls[1]]->dlptr = gd_red_star_dl_array; gShapeSilverStar = make_shape(0, "silverstar"); gShapeSilverStar->gdDls[0] = new_gddl_from(NULL, 0); gShapeSilverStar->gdDls[1] = gShapeSilverStar->gdDls[0]; - sGdDLArray[gShapeSilverStar->gdDls[0]]->dlptr = silverStarDlArray; - sGdDLArray[gShapeSilverStar->gdDls[1]]->dlptr = silverStarDlArray; + sGdDLArray[gShapeSilverStar->gdDls[0]]->dlptr = gd_silver_star_dl_array; + sGdDLArray[gShapeSilverStar->gdDls[1]]->dlptr = gd_silver_star_dl_array; - // TODO: what way should we name these? based on goddard's name, or on what they do/actually are? - gShapeSilSpark = make_shape(0, "sspark"); - gShapeSilSpark->gdDls[0] = new_gddl_from(NULL, 0); - gShapeSilSpark->gdDls[1] = gShapeSilSpark->gdDls[0]; - sGdDLArray[gShapeSilSpark->gdDls[0]]->dlptr = redSparkleDlArray; - sGdDLArray[gShapeSilSpark->gdDls[1]]->dlptr = redSparkleDlArray; - - gShapeRedSpark = make_shape(0, "rspark"); + // make_shape names of the dl array they call are misnamed (swapped) + // "sspark" calls red sparkles and "rspark" calls silver sparkles + gShapeRedSpark = make_shape(0, "sspark"); gShapeRedSpark->gdDls[0] = new_gddl_from(NULL, 0); gShapeRedSpark->gdDls[1] = gShapeRedSpark->gdDls[0]; - sGdDLArray[gShapeRedSpark->gdDls[0]]->dlptr = silverSparkleDlArray; - sGdDLArray[gShapeRedSpark->gdDls[1]]->dlptr = silverSparkleDlArray; + sGdDLArray[gShapeRedSpark->gdDls[0]]->dlptr = gd_red_sparkle_dl_array; + sGdDLArray[gShapeRedSpark->gdDls[1]]->dlptr = gd_red_sparkle_dl_array; + + gShapeSilverSpark = make_shape(0, "rspark"); + gShapeSilverSpark->gdDls[0] = new_gddl_from(NULL, 0); + gShapeSilverSpark->gdDls[1] = gShapeSilverSpark->gdDls[0]; + sGdDLArray[gShapeSilverSpark->gdDls[0]]->dlptr = gd_silver_sparkle_dl_array; + sGdDLArray[gShapeSilverSpark->gdDls[1]]->dlptr = gd_silver_sparkle_dl_array; } /* 24A8D0 -> 24AA40 */ @@ -1308,7 +1306,7 @@ void *gdm_gettestdl(s32 id) { break; case 5: sActiveView = sScreenView2; - set_gd_mtx_parameters(6); + set_gd_mtx_parameters(G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_PUSH); dobj = d_use_obj("testnet2"); sCarGdDlNum = gd_startdisplist(8); @@ -1316,7 +1314,7 @@ void *gdm_gettestdl(s32 id) { fatal_printf("no memory for car DL\n"); } apply_obj_draw_fn(dobj); - gd_end_dl(); + gd_enddlsplist_parent(); gddl = sGdDLArray[sCarGdDlNum]; sUpdateCarScene = TRUE; break; @@ -1336,7 +1334,7 @@ void gdm_getpos(s32 id, struct GdVec3f *dst) { struct GdObj *dobj; // 1c switch (id) { case 5: - set_gd_mtx_parameters(6); + set_gd_mtx_parameters(G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_PUSH); dobj = d_use_obj("testnet2"); dst->x = ((struct ObjNet *) dobj)->unk14.x; dst->y = ((struct ObjNet *) dobj)->unk14.y; @@ -1418,7 +1416,7 @@ struct GdDisplayList *create_child_gdl(s32 id, struct GdDisplayList *srcDl) { //! @bug No return statement, despite return value being used. //! Goddard lucked out that `v0` return from alloc_displaylist() //! is not overwriten, as that pointer is what should be returned -#if BUGFIX_GODDARD_MISSING_RETURN +#ifdef AVOID_UB return newDl; #endif } @@ -1479,14 +1477,14 @@ struct GdDisplayList *new_gd_dl(s32 id, s32 gfxs, s32 verts, s32 mtxs, s32 light } /* 24BA48 -> 24BABC; not called */ -void gd_init_RSP(void) { - gSPDisplayList(next_gfx(), osVirtualToPhysical(&marioHeadDl801B5170)); +void gd_rsp_init(void) { + gSPDisplayList(next_gfx(), osVirtualToPhysical(&gd_dl_rsp_init)); gDPPipeSync(next_gfx()); } /* 24BABC -> 24BB30; not called */ -void gd_init_RDP(void) { - gSPDisplayList(next_gfx(), osVirtualToPhysical(&marioHeadDl801B5188)); +void gd_rdp_init(void) { + gSPDisplayList(next_gfx(), osVirtualToPhysical(&gd_dl_rdp_init)); gDPPipeSync(next_gfx()); } @@ -1546,12 +1544,12 @@ void gd_set_fill(struct GdColour *colour) { } /* 24CDB4 -> 24CE10; orig name: func_8019E5E4 */ -void gd_set_view_zbuf(void) { +void gd_set_zb_area(void) { gDPSetDepthImage(next_gfx(), GD_LOWER_24(sActiveView->parent->zbuf)); } /* 24CE10 -> 24CF2C; orig name: func_8019E640 */ -void gd_set_view_framebuf(void) { +void gd_set_color_fb(void) { gDPSetColorImage(next_gfx(), G_IM_FMT_RGBA, G_IM_SIZ_16b, sActiveView->parent->lowerRight.x, GD_LOWER_24(sActiveView->parent->colourBufs[gGdFrameBuf])); } @@ -1614,13 +1612,13 @@ s32 gd_startdisplist(s32 memarea) { } /* 24D1D4 -> 24D23C */ -void gd_enddisplist(void) { +void gd_enddlsplist(void) { gDPPipeSync(next_gfx()); gSPEndDisplayList(next_gfx()); } /* 24D23C -> 24D39C; orig name: func_8019EA6C */ -s32 gd_end_dl(void) { +s32 gd_enddlsplist_parent(void) { s32 curDlIdx = 0; // 24 gDPPipeSync(next_gfx()); @@ -1661,7 +1659,7 @@ u32 Unknown8019EC88(Gfx *dl, UNUSED s32 arg1) { } /* 24D4C4 -> 24D63C; orig name: func_8019ECF4 */ -void mat4_to_Mtx(const Mat4f *src, Mtx *dst) { +void mat4_to_mtx(const Mat4f *src, Mtx *dst) { s32 i; // 14 s32 j; // 10 s32 w1; @@ -1683,38 +1681,38 @@ void mat4_to_Mtx(const Mat4f *src, Mtx *dst) { /* 24D63C -> 24D6E4; orig name: func_8019EE6C */ void add_mat4_to_dl(Mat4f *mtx) { - mat4_to_Mtx(mtx, &DL_CURRENT_MTX(sCurrentGdDl)); - gSPMatrix(next_gfx(), osVirtualToPhysical(&DL_CURRENT_MTX(sCurrentGdDl)), sMtxParameters); + mat4_to_mtx(mtx, &DL_CURRENT_MTX(sCurrentGdDl)); + gSPMatrix(next_gfx(), osVirtualToPhysical(&DL_CURRENT_MTX(sCurrentGdDl)), sMtxParamType | G_MTX_MUL | G_MTX_NOPUSH); next_mtx(); } /* 24D6E4 -> 24D790; orig name: func_8019EF14 */ void add_mat4_load_to_dl(Mat4f *mtx) { - mat4_to_Mtx(mtx, &DL_CURRENT_MTX(sCurrentGdDl)); + mat4_to_mtx(mtx, &DL_CURRENT_MTX(sCurrentGdDl)); gSPMatrix(next_gfx(), osVirtualToPhysical(&DL_CURRENT_MTX(sCurrentGdDl)), - sMtxParameters | G_MTX_LOAD); + sMtxParamType | G_MTX_LOAD | G_MTX_NOPUSH); next_mtx(); } /* 24D790 -> 24D7FC */ -void Unknown8019EFC0(void) { - gSPMatrix(next_gfx(), osVirtualToPhysical(&sIdnMtx), sMtxParameters | G_MTX_LOAD); +void idn_mtx_load_gddl(void) { + gSPMatrix(next_gfx(), osVirtualToPhysical(&sIdnMtx), sMtxParamType | G_MTX_LOAD | G_MTX_NOPUSH); } /* 24D7FC -> 24D868; orig name: func_8019F02C */ -void push_idn_mtx_cur_gddl(void) { - gSPMatrix(next_gfx(), osVirtualToPhysical(&sIdnMtx), sMtxParameters | G_MTX_PUSH); +void idn_mtx_push_gddl(void) { + gSPMatrix(next_gfx(), osVirtualToPhysical(&sIdnMtx), sMtxParamType | G_MTX_MUL | G_MTX_PUSH); } /* 24D868 -> 24D8B4; orig name: func_8019F098 */ void pop_mtx_gddl(void) { - gSPPopMatrix(next_gfx(), sMtxParameters); + gSPPopMatrix(next_gfx(), sMtxParamType); } /* 24D8B4 -> 24D96C; orig name: func_8019F0E4 */ void translate_mtx_gddl(f32 x, f32 y, f32 z) { guTranslate(&DL_CURRENT_MTX(sCurrentGdDl), x, y, z); - gSPMatrix(next_gfx(), osVirtualToPhysical(&DL_CURRENT_MTX(sCurrentGdDl)), sMtxParameters); + gSPMatrix(next_gfx(), osVirtualToPhysical(&DL_CURRENT_MTX(sCurrentGdDl)), sMtxParamType | G_MTX_MUL | G_MTX_NOPUSH); next_mtx(); } @@ -1722,7 +1720,7 @@ void translate_mtx_gddl(f32 x, f32 y, f32 z) { void translate_load_mtx_gddl(f32 x, f32 y, f32 z) { guTranslate(&DL_CURRENT_MTX(sCurrentGdDl), x, y, z); gSPMatrix(next_gfx(), osVirtualToPhysical(&DL_CURRENT_MTX(sCurrentGdDl)), - sMtxParameters | G_MTX_LOAD); + sMtxParamType | G_MTX_LOAD | G_MTX_NOPUSH); next_mtx(); } @@ -1758,7 +1756,7 @@ void func_8019F318(struct ObjCamera *cam, f32 arg1, f32 arg2, f32 arg3, f32 arg4 func_80193B68(&cam->unkE8, arg1, arg2, arg3, arg4, arg5, arg6, gd_sin_d(arg7), gd_cos_d(arg7), 0.0f); // 8019F3C8 - mat4_to_Mtx(&cam->unkE8, &DL_CURRENT_MTX(sCurrentGdDl)); + mat4_to_mtx(&cam->unkE8, &DL_CURRENT_MTX(sCurrentGdDl)); gSPMatrix(next_gfx(), osVirtualToPhysical(&DL_CURRENT_MTX(sCurrentGdDl)), G_MTX_PROJECTION | G_MTX_MUL | G_MTX_NOPUSH); // 8019F434 @@ -1912,7 +1910,6 @@ void func_801A0070(void) { startvtx = D_801BB0CC; if (D_801BB0BC != 0) { gSPVertex(next_gfx(), osVirtualToPhysical(&sCurrentGdDl->vtx[D_801BB0CC]), D_801BB0BC, 0); - // TODO: check gSP1Triangle macro for flag shift for (i = 0; i < D_801BB0C4; i++) { gSP1Triangle(next_gfx(), D_801BAF30[i][0] - D_801BB0CC, D_801BAF30[i][1] - D_801BB0CC, D_801BAF30[i][2] - D_801BB0CC, 0); @@ -1943,13 +1940,13 @@ void func_801A02B8(f32 arg0) { /* 24EAF4 -> 24EB0C */ // light id? -void func_801A0324(s32 arg0) { - D_801BB1D0 = arg0; +void set_light_id(s32 index) { + sLightId = index; } /* 24EB0C -> 24EB24; orig name: func_801A033C */ void set_light_num(s32 n) { - D_801BB188 = n; + sNumLights = n; } /* 24EB24 -> 24EC18 */ @@ -1961,8 +1958,8 @@ s32 create_mtl_gddl(UNUSED s32 mtlType) { blue.g = 0.0f; blue.b = 1.0f; dlnum = gd_startdisplist(7); - func_801A086C(dlnum, &blue, 0x20); - gd_end_dl(); + func_801A086C(dlnum, &blue, GD_MTL_TEX_OFF); + gd_enddlsplist_parent(); sCurrentGdDl->totalVtx = sCurrentGdDl->curVtxIdx; sCurrentGdDl->totalMtx = sCurrentGdDl->curMtxIdx; sCurrentGdDl->totalLights = sCurrentGdDl->curLightIdx; @@ -1996,7 +1993,7 @@ void func_801A0478(s32 idx, // material GdDl number; offsets into hilite array if (idx >= 0xc8) { fatal_printf("too many hilites"); } - hilite = &D_801BB1D8[idx]; + hilite = &sHilites[idx]; gDPSetPrimColor(next_gfx(), 0, 0, (s32)(colour->r * 255.0f), (s32)(colour->g * 255.0f), (s32)(colour->b * 255.0f), 255); @@ -2025,48 +2022,44 @@ void func_801A0478(s32 idx, // material GdDl number; offsets into hilite array } /* 24F03C -> 24FDB8 */ -s32 func_801A086C(s32 id, struct GdColour *colour, s32 arg2) { +s32 func_801A086C(s32 id, struct GdColour *colour, s32 material) { UNUSED u32 pad60[2]; - s32 i; // 5c - s32 sp58 = D_801BB188; // number of lights? - s32 sp4C[3]; // converted color array - s32 sp40[3]; // bytes from weird struct in bss + s32 i; + s32 numLights = sNumLights; + s32 scaledColours[3]; + s32 lightDir[3]; if (id > 0) { reset_dlnum_indices(id); } // L801A08B0 - // TODO: flags? - switch (arg2) { - case 0x20: - func_801A2374(FALSE); - func_801A2374(FALSE); - func_801A2374(FALSE); - func_801A2374(FALSE); - func_801A2388(FALSE); - func_801A2388(FALSE); - func_801A2388(FALSE); - func_801A2388(FALSE); - sp58 = 2; + switch (material) { + case GD_MTL_TEX_OFF: + gddl_is_loading_stub_dl(FALSE); + gddl_is_loading_stub_dl(FALSE); + gddl_is_loading_stub_dl(FALSE); + gddl_is_loading_stub_dl(FALSE); + gddl_is_loading_shine_dl(FALSE); + gddl_is_loading_shine_dl(FALSE); + gddl_is_loading_shine_dl(FALSE); + gddl_is_loading_shine_dl(FALSE); + numLights = NUMLIGHTS_2; break; - case 0x01: - func_801A2374(TRUE); + case GD_MTL_STUB_DL: + gddl_is_loading_stub_dl(TRUE); break; - case 0x10: - func_801A2388(TRUE); + case GD_MTL_SHINE_DL: + gddl_is_loading_shine_dl(TRUE); if (id >= 200) { fatal_printf("too many hilites"); } - // the macro does the 0xFFF mask, - // but it seems goddard unnecessarily masked the parameters as well - gDPSetTileSize(next_gfx(), G_TX_RENDERTILE, D_801BB1D8[id].h.x1 & 0xFFF, D_801BB1D8[id].h.y1 & 0xFFF, - (D_801BB1D8[id].h.x1 + ((32 - 1) << G_TEXTURE_IMAGE_FRAC)) & 0xFFF, (D_801BB1D8[id].h.y1 + ((32 - 1) << G_TEXTURE_IMAGE_FRAC)) & 0xFFF); + gDPSetHilite1Tile(next_gfx(), G_TX_RENDERTILE, &sHilites[id], 32, 32); break; - case 0x04: + case GD_MTL_BREAK: break; default: - func_801A2374(FALSE); - func_801A2388(FALSE); + gddl_is_loading_stub_dl(FALSE); + gddl_is_loading_shine_dl(FALSE); DL_CURRENT_LIGHT(sCurrentGdDl).a.l.col[0] = colour->r * 255.0f; DL_CURRENT_LIGHT(sCurrentGdDl).a.l.col[1] = colour->g * 255.0f; @@ -2089,52 +2082,52 @@ s32 func_801A086C(s32 id, struct GdColour *colour, s32 arg2) { gSPLight(next_gfx(), osVirtualToPhysical(&DL_CURRENT_LIGHT(sCurrentGdDl).a), LIGHT_2); next_light(); if (id > 0) { - gd_enddisplist(); + gd_enddlsplist(); } return 0; break; } // L801A0EF4 - sp4C[0] = (s32)(colour->r * sAmbScaleColour.r * 255.0f); - sp4C[1] = (s32)(colour->g * sAmbScaleColour.g * 255.0f); - sp4C[2] = (s32)(colour->b * sAmbScaleColour.b * 255.0f); + scaledColours[0] = (s32)(colour->r * sAmbScaleColour.r * 255.0f); + scaledColours[1] = (s32)(colour->g * sAmbScaleColour.g * 255.0f); + scaledColours[2] = (s32)(colour->b * sAmbScaleColour.b * 255.0f); // 801A0FE4 - DL_CURRENT_LIGHT(sCurrentGdDl).a.l.col[0] = sp4C[0]; - DL_CURRENT_LIGHT(sCurrentGdDl).a.l.col[1] = sp4C[1]; - DL_CURRENT_LIGHT(sCurrentGdDl).a.l.col[2] = sp4C[2]; + DL_CURRENT_LIGHT(sCurrentGdDl).a.l.col[0] = scaledColours[0]; + DL_CURRENT_LIGHT(sCurrentGdDl).a.l.col[1] = scaledColours[1]; + DL_CURRENT_LIGHT(sCurrentGdDl).a.l.col[2] = scaledColours[2]; // 801A1068 - DL_CURRENT_LIGHT(sCurrentGdDl).a.l.colc[0] = sp4C[0]; - DL_CURRENT_LIGHT(sCurrentGdDl).a.l.colc[1] = sp4C[1]; - DL_CURRENT_LIGHT(sCurrentGdDl).a.l.colc[2] = sp4C[2]; + DL_CURRENT_LIGHT(sCurrentGdDl).a.l.colc[0] = scaledColours[0]; + DL_CURRENT_LIGHT(sCurrentGdDl).a.l.colc[1] = scaledColours[1]; + DL_CURRENT_LIGHT(sCurrentGdDl).a.l.colc[2] = scaledColours[2]; // 801A10EC - gSPNumLights(next_gfx(), sp58); - for (i = 0; i < sp58; i++) { // L801A1134 - sp4C[0] = colour->r * sLightScaleColours[i].r * 255.0f; - sp4C[1] = colour->g * sLightScaleColours[i].g * 255.0f; - sp4C[2] = colour->b * sLightScaleColours[i].b * 255.0f; + gSPNumLights(next_gfx(), numLights); + for (i = 0; i < numLights; i++) { // L801A1134 + scaledColours[0] = colour->r * sLightScaleColours[i].r * 255.0f; + scaledColours[1] = colour->g * sLightScaleColours[i].g * 255.0f; + scaledColours[2] = colour->b * sLightScaleColours[i].b * 255.0f; // 801A1260 - DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.col[0] = sp4C[0]; - DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.col[1] = sp4C[1]; - DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.col[2] = sp4C[2]; - DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.colc[0] = sp4C[0]; - DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.colc[1] = sp4C[1]; - DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.colc[2] = sp4C[2]; + DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.col[0] = scaledColours[0]; + DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.col[1] = scaledColours[1]; + DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.col[2] = scaledColours[2]; + DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.colc[0] = scaledColours[0]; + DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.colc[1] = scaledColours[1]; + DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.colc[2] = scaledColours[2]; // 801A13B0 - sp40[0] = D_801BB1B8[i].u0.bytes.b3; - sp40[1] = D_801BB1B8[i].u4.bytes.b3; - sp40[2] = D_801BB1B8[i].u8.bytes.b3; + lightDir[0] = (s8)sLightDirections[i].x; + lightDir[1] = (s8)sLightDirections[i].y; + lightDir[2] = (s8)sLightDirections[i].z; // 801A141C - DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.dir[0] = sp40[0]; - DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.dir[1] = sp40[1]; - DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.dir[2] = sp40[2]; + DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.dir[0] = lightDir[0]; + DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.dir[1] = lightDir[1]; + DL_CURRENT_LIGHT(sCurrentGdDl).l[i].l.dir[2] = lightDir[2]; // 801A14C4 gSPLight(next_gfx(), osVirtualToPhysical(&DL_CURRENT_LIGHT(sCurrentGdDl).l[i]), i + 1); } // L801A1550 gSPLight(next_gfx(), osVirtualToPhysical(&DL_CURRENT_LIGHT(sCurrentGdDl)), i + 1); next_light(); - gd_enddisplist(); + gd_enddlsplist(); return 0; } @@ -2157,13 +2150,13 @@ void set_Vtx_norm_buf_2(struct GdVec3f *norm) { } /* 24FF80 -> 24FFDC; orig name: func_801A17B0 */ -void set_gd_mtx_parameters(s32 paramType) { - switch (paramType) { - case 5: - sMtxParameters = G_MTX_PROJECTION | G_MTX_MUL | G_MTX_NOPUSH; +void set_gd_mtx_parameters(s32 params) { + switch (params) { + case G_MTX_PROJECTION | G_MTX_MUL | G_MTX_PUSH: + sMtxParamType = G_MTX_PROJECTION; break; - case 6: - sMtxParameters = G_MTX_MODELVIEW | G_MTX_MUL | G_MTX_NOPUSH; + case G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_PUSH: + sMtxParamType = G_MTX_MODELVIEW; break; } } @@ -2208,7 +2201,7 @@ void func_801A1A00(void) { /* 250300 -> 250640 */ void Unknown801A1B30(void) { gDPPipeSync(next_gfx()); - gd_set_view_framebuf(); + gd_set_color_fb(); gd_set_fill(&sActiveView->colour); gDPFillRectangle(next_gfx(), (u32)(sActiveView->upperLeft.x), (u32)(sActiveView->upperLeft.y), (u32)(sActiveView->upperLeft.x + sActiveView->lowerRight.x - 1.0f), @@ -2221,15 +2214,15 @@ void Unknown801A1E70(void) { gDPPipeSync(next_gfx()); gDPSetCycleType(next_gfx(), G_CYC_FILL); gDPSetRenderMode(next_gfx(), G_RM_OPA_SURF, G_RM_OPA_SURF2); - gd_set_view_zbuf(); + gd_set_zb_area(); gDPSetColorImage(next_gfx(), G_IM_FMT_RGBA, G_IM_SIZ_16b, sActiveView->parent->lowerRight.x, GD_LOWER_24(sActiveView->parent->zbuf)); - gDPSetFillColor(next_gfx(), GPACK_RGBA5551(248, 248, 240, 0) << 16 | GPACK_RGBA5551(248, 248, 240, 0)); + gDPSetFillColor(next_gfx(), GPACK_ZDZ(G_MAXFBZ, 0) << 16 | GPACK_ZDZ(G_MAXFBZ, 0)); gDPFillRectangle(next_gfx(), (u32)(sActiveView->upperLeft.x), (u32)(sActiveView->upperLeft.y), (u32)(sActiveView->upperLeft.x + sActiveView->lowerRight.x - 1.0f), (u32)(sActiveView->upperLeft.y + sActiveView->lowerRight.y - 1.0f)); gDPPipeSync(next_gfx()); - gd_set_view_framebuf(); + gd_set_color_fb(); } /* 250AE0 -> 250B30; orig name: func_801A2310 */ @@ -2244,13 +2237,13 @@ void Unknown801A2360(void) { } /* 250B44 -> 250B58 */ -void func_801A2374(UNUSED s32 arg0) { +void gddl_is_loading_stub_dl(UNUSED s32 dlLoad) { } /* 250B58 -> 250C18 */ -void func_801A2388(s32 gotoDl) { - if (gotoDl) { - gSPDisplayList(next_gfx(), osVirtualToPhysical(&marioHeadDl801B5100)); +void gddl_is_loading_shine_dl(s32 dlLoad) { + if (dlLoad) { + gSPDisplayList(next_gfx(), osVirtualToPhysical(&gd_dl_mario_face_shine)); } else { gSPTexture(next_gfx(), 0x8000, 0x8000, 0, G_TX_RENDERTILE, G_OFF); gDPSetCombineMode(next_gfx(), G_CC_SHADE, G_CC_SHADE); @@ -2549,14 +2542,14 @@ void gd_setproperty(enum GdProperty prop, f32 f1, f32 f2, f32 f3) { sAmbScaleColour.b = f3; break; case GD_PROP_LIGHT_DIR: - D_801BB1B8[D_801BB1D0].u0.w = (s32)(f1 * 120.f); - D_801BB1B8[D_801BB1D0].u4.w = (s32)(f2 * 120.f); - D_801BB1B8[D_801BB1D0].u8.w = (s32)(f3 * 120.f); + sLightDirections[sLightId].x = (s32)(f1 * 120.f); + sLightDirections[sLightId].y = (s32)(f2 * 120.f); + sLightDirections[sLightId].z = (s32)(f3 * 120.f); break; case GD_PROP_DIFUSE_COLOUR: - sLightScaleColours[D_801BB1D0].r = f1; - sLightScaleColours[D_801BB1D0].g = f2; - sLightScaleColours[D_801BB1D0].b = f3; + sLightScaleColours[sLightId].r = f1; + sLightScaleColours[sLightId].g = f2; + sLightScaleColours[sLightId].b = f3; break; case GD_PROP_CULLING: parm = (s32) f1; @@ -2613,9 +2606,9 @@ void stub_801A3AE0(void) { } /* 2522C0 -> 25245C */ -void func_801A3AF0(f32 l, f32 r, f32 b, f32 t, f32 n, f32 f) { - uintptr_t orthoMtx; // 3c - uintptr_t rotMtx; // 38 +void gd_create_ortho_matrix(f32 l, f32 r, f32 b, f32 t, f32 n, f32 f) { + uintptr_t orthoMtx; + uintptr_t rotMtx; // Should produce G_RDPHALF_1 in Fast3D gSPPerspNormalize(next_gfx(), 0xFFFF); @@ -2634,15 +2627,15 @@ void func_801A3AF0(f32 l, f32 r, f32 b, f32 t, f32 n, f32 f) { } /* 25245C -> 25262C */ -void func_801A3C8C(f32 fovy, f32 aspect, f32 near, f32 far) { - u16 perspNorm; // 4e - UNUSED u32 pad48; - uintptr_t perspecMtx; // 44 - uintptr_t rotMtx; // 40 - UNUSED u32 pad3C; - UNUSED f32 sp38 = 0.0625f; +void gd_create_perspective_matrix(f32 fovy, f32 aspect, f32 near, f32 far) { + u16 perspNorm; + UNUSED u32 unused1; + uintptr_t perspecMtx; + uintptr_t rotMtx; + UNUSED u32 unused2; + UNUSED f32 unusedf = 0.0625f; - D_801B520C += 0.1; //? 1.0f + sGdPerspTimer += 0.1; guPerspective(&DL_CURRENT_MTX(sCurrentGdDl), &perspNorm, fovy, aspect, near, far, 1.0f); gSPPerspNormalize(next_gfx(), perspNorm); @@ -2720,7 +2713,7 @@ s32 setup_view_buffers(const char *name, struct ObjView *view, UNUSED s32 ulx, U //! doesn't use four of its parameters, this function may have //! had a fair amount of its code commented out. In game, the //! returned value is always 0, so the fix returns that value -#if BUGFIX_GODDARD_MISSING_RETURN +#ifdef AVOID_UB return 0; #endif } @@ -2796,7 +2789,7 @@ s32 gd_gentexture(void *texture, s32 fmt, s32 size, UNUSED u32 arg3, UNUSED u32 if (dl == 0) { fatal_printf("Cant generate DL for texture"); } - gd_end_dl(); + gd_enddlsplist_parent(); D_801BB060[D_801A86A0] = dl; return dl; @@ -2955,11 +2948,11 @@ void update_cursor(void) { reset_dlnum_indices(sHandShape->gdDls[gGdFrameBuf]); if (gGdCtrl.btnApressed) { - gd_put_sprite((u16 *) textureHandClosed, sHandView->upperLeft.x, sHandView->upperLeft.y, 0x20, 0x20); + gd_put_sprite((u16 *) gd_texture_hand_closed, sHandView->upperLeft.x, sHandView->upperLeft.y, 0x20, 0x20); } else { - gd_put_sprite((u16 *) textureHandOpen, sHandView->upperLeft.x, sHandView->upperLeft.y, 0x20, 0x20); + gd_put_sprite((u16 *) gd_texture_hand_open, sHandView->upperLeft.x, sHandView->upperLeft.y, 0x20, 0x20); } - gd_end_dl(); + gd_enddlsplist_parent(); if (sHandView->upperLeft.x < sHandView->parent->upperLeft.x) { sHandView->upperLeft.x = sHandView->parent->upperLeft.x; @@ -3078,7 +3071,7 @@ void Unknown801A5344(void) { sScreenView2->gdDlNum = gd_startdisplist(8); start_view_dl(sScreenView2); gd_set_one_cycle(); - gd_end_dl(); + gd_enddlsplist_parent(); func_801A4848(sScreenView2->gdDlNum); func_801A48B4(); func_801A4808(); @@ -3106,7 +3099,7 @@ void gd_init(void) { sNewZPresses = 0; sGdDlCount = 0; D_801A8674 = 0; - D_801BB1D0 = 0; + sLightId = 0; sAmbScaleColour.r = 0.0f; sAmbScaleColour.g = 0.0f; sAmbScaleColour.b = 0.0f; @@ -3115,14 +3108,14 @@ void gd_init(void) { sLightScaleColours[i].r = 1.0f; sLightScaleColours[i].g = 0.0f; sLightScaleColours[i].b = 0.0f; - D_801BB1B8[i].u0.w = 0; - D_801BB1B8[i].u4.w = 120; - D_801BB1B8[i].u8.w = 0; + sLightDirections[i].x = 0; + sLightDirections[i].y = 120; + sLightDirections[i].z = 0; } - D_801BB188 = 2; + sNumLights = NUMLIGHTS_2; set_identity_mat4(&sInitIdnMat4); - mat4_to_Mtx(&sInitIdnMat4, &sIdnMtx); + mat4_to_mtx(&sInitIdnMat4, &sIdnMtx); remove_all_memtrackers(); null_obj_lists(); start_memtracker("total"); @@ -3413,7 +3406,7 @@ void gd_put_sprite(u16 *sprite, s32 x, s32 y, s32 wx, s32 wy) { s32 c; // 5c s32 r; // 58 - gSPDisplayList(next_gfx(), osVirtualToPhysical(marioHeadDl801B52D8)); + gSPDisplayList(next_gfx(), osVirtualToPhysical(gd_dl_sprite_start_tex_block)); for (r = 0; r < wy; r += 0x20) { for (c = 0; c < wx; c += 0x20) { gDPLoadTextureBlock(next_gfx(), (r * 0x20) + sprite + c, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, @@ -3437,11 +3430,11 @@ void gd_setup_cursor(struct ObjGroup *parentgrp) { sHandShape = make_shape(0, "mouse"); sHandShape->gdDls[0] = gd_startdisplist(7); - gd_put_sprite((u16 *) textureHandOpen, 100, 100, 32, 32); - gd_end_dl(); + gd_put_sprite((u16 *) gd_texture_hand_open, 100, 100, 32, 32); + gd_enddlsplist_parent(); sHandShape->gdDls[1] = gd_startdisplist(7); - gd_put_sprite((u16 *) textureHandOpen, 100, 100, 32, 32); - gd_end_dl(); + gd_put_sprite((u16 *) gd_texture_hand_open, 100, 100, 32, 32); + gd_enddlsplist_parent(); d_start_group("mouseg"); net = (struct ObjNet *) d_makeobj(D_NET, AsDynId(0)); diff --git a/src/goddard/renderer.h b/src/goddard/renderer.h index bfdf1a0..95cd13e 100644 --- a/src/goddard/renderer.h +++ b/src/goddard/renderer.h @@ -53,9 +53,9 @@ extern void gd_set_fill(struct GdColour *); extern void stash_current_gddl(void); extern void pop_gddl_stash(void); extern s32 gd_startdisplist(s32); -extern s32 gd_end_dl(); +extern s32 gd_enddlsplist_parent(); extern void add_mat4_load_to_dl(Mat4f *); -extern void push_idn_mtx_cur_gddl(void); +extern void idn_mtx_push_gddl(void); extern void pop_mtx_gddl(void); extern void translate_mtx_gddl(f32, f32, f32); extern void translate_load_mtx_gddl(f32, f32, f32); @@ -69,7 +69,7 @@ extern void add_tri_to_dl(f32, f32, f32, f32, f32, f32, f32, f32, f32); extern void func_801A0038(void); extern void func_801A0070(void); extern void func_801A02B8(f32); -extern void func_801A0324(s32); +extern void set_light_id(s32); extern void set_light_num(s32); extern s32 create_mtl_gddl(s32); extern void branch_to_gddl(s32); @@ -79,14 +79,14 @@ extern void set_Vtx_norm_buf_1(struct GdVec3f *); extern void set_Vtx_norm_buf_2(struct GdVec3f *); extern void set_gd_mtx_parameters(s32); extern void gd_set_one_cycle(void); -extern void func_801A2374(s32); +extern void gddl_is_loading_stub_dl(s32); extern void start_view_dl(struct ObjView *); extern void border_active_view(void); extern void gd_shading(s32); extern s32 gd_getproperty(s32, void *); extern void gd_setproperty(enum GdProperty, f32, f32, f32); -extern void func_801A3AF0(f32, f32, f32, f32, f32, f32); -extern void func_801A3C8C(f32, f32, f32, f32); +extern void gd_create_ortho_matrix(f32, f32, f32, f32, f32, f32); +extern void gd_create_perspective_matrix(f32, f32, f32, f32); extern s32 setup_view_buffers(const char *, struct ObjView *, s32, s32, s32, s32); extern void gd_init_controllers(void); extern void Proc801A43DC(struct GdObj *); //apply to OBJ_TYPE_VIEWS diff --git a/src/goddard/shape_helper.c b/src/goddard/shape_helper.c index 6a8e2b5..db034ad 100644 --- a/src/goddard/shape_helper.c +++ b/src/goddard/shape_helper.c @@ -29,8 +29,8 @@ struct UnkData { struct ObjGroup *gMarioFaceGrp = NULL; // @ 801A82E0; returned by load_dynlist struct ObjShape *D_801A82E4 = NULL; // Shape used for drawing lights? static struct ObjShape *D_801A82E8 = NULL; // returned by load_dynlist -struct ObjShape *gShapeSilSpark = NULL; // @ 801A82EC -struct ObjShape *gShapeRedSpark = NULL; // @ 801A82F0 +struct ObjShape *gShapeRedSpark = NULL; // @ 801A82EC +struct ObjShape *gShapeSilverSpark = NULL; // @ 801A82F0 struct ObjShape *gShapeRedStar = NULL; // @ 801A82F4 struct ObjShape *gShapeSilverStar = NULL; // @ 801A82F8 static struct UnkData sUnref801A82FC = { { { @@ -1344,21 +1344,21 @@ s32 load_mario_head(void (*aniFn)(struct ObjAnimator *)) { sp24->unk60 = 3; sp24->unk64 = 3; sp24->unkBC = &sp2C->header; - sp24->unk1C = gShapeRedSpark; + sp24->unk1C = gShapeSilverSpark; addto_group(gGdLightGroup, &sp24->header); sp24 = make_particle(0, 1, 0.0f, 0.0f, 0.0f); sp24->unk60 = 3; sp24->unk64 = 2; sp24->unkBC = d_use_obj("N228l"); // probably a camera - sp24->unk1C = gShapeRedSpark; + sp24->unk1C = gShapeSilverSpark; addto_group(gGdLightGroup, &sp24->header); sp24 = make_particle(0, 2, 0.0f, 0.0f, 0.0f); sp24->unk60 = 3; sp24->unk64 = 2; sp24->unkBC = d_use_obj("N231l"); // probably a camera - sp24->unk1C = gShapeSilSpark; + sp24->unk1C = gShapeRedSpark; addto_group(gGdLightGroup, &sp24->header); sp3C = (struct ObjGroup *) d_use_obj("N1000l"); diff --git a/src/goddard/shape_helper.h b/src/goddard/shape_helper.h index 283663f..adfb67d 100644 --- a/src/goddard/shape_helper.h +++ b/src/goddard/shape_helper.h @@ -7,8 +7,8 @@ // data extern struct ObjGroup *gMarioFaceGrp; extern struct ObjShape *D_801A82E4; -extern struct ObjShape *gShapeSilSpark; extern struct ObjShape *gShapeRedSpark; +extern struct ObjShape *gShapeSilverSpark; extern struct ObjShape *gShapeRedStar; extern struct ObjShape *gShapeSilverStar; @@ -25,7 +25,7 @@ extern s32 load_mario_head(void (*aniFn)(struct ObjAnimator *)); extern void load_shapes2(void); // see bad_declarations.h -#if !GD_USE_BAD_DECLARATIONS +#ifndef GD_USE_BAD_DECLARATIONS extern struct ObjFace* make_face_with_colour(f32, f32, f32); #endif diff --git a/src/menu/file_select.c b/src/menu/file_select.c index bd7e9e9..1f10360 100644 --- a/src/menu/file_select.c +++ b/src/menu/file_select.c @@ -18,6 +18,7 @@ #include "behavior_data.h" #include "text_strings.h" #include "file_select.h" +#include "dialog_ids.h" /** * @file file_select.c @@ -2042,13 +2043,13 @@ static void print_save_file_scores(s8 fileIndex) { unsigned char textMario[] = { TEXT_MARIO }; #ifdef VERSION_JP unsigned char textFileLetter[] = { TEXT_ZERO }; - void **levelNameTable = segmented_to_virtual(seg2_level_name_table); + void **levelNameTable = segmented_to_virtual(seg2_course_name_table); #endif unsigned char textHiScore[] = { TEXT_HI_SCORE }; unsigned char textMyScore[] = { TEXT_MY_SCORE }; #ifdef VERSION_US unsigned char textFileLetter[] = { TEXT_ZERO }; - void **levelNameTable = segmented_to_virtual(seg2_level_name_table); + void **levelNameTable = segmented_to_virtual(seg2_course_name_table); #endif textFileLetter[0] = fileIndex + ASCII_TO_DIALOG('A'); // get letter of file selected @@ -2070,33 +2071,33 @@ static void print_save_file_scores(s8 fileIndex) { #ifdef VERSION_JP #define PADCHAR 0 #define PRINT_COURSE_SCORES(courseIndex, pad) \ - print_menu_generic_string(23 + (pad * 3), 35 + 12 * courseIndex, segmented_to_virtual(levelNameTable[courseIndex])); \ - print_score_file_star_score(fileIndex, courseIndex, 152, 35 + 12 * courseIndex); \ - print_score_file_course_coin_score(fileIndex, courseIndex, 213, 35 + 12 * courseIndex); + print_menu_generic_string(23 + (pad * 3), 23 + 12 * courseIndex, segmented_to_virtual(levelNameTable[courseIndex - 1])); \ + print_score_file_star_score(fileIndex, courseIndex - 1, 152, 23 + 12 * courseIndex); \ + print_score_file_course_coin_score(fileIndex, courseIndex - 1, 213, 23 + 12 * courseIndex); #else #define PADCHAR 1 #define PRINT_COURSE_SCORES(courseIndex, pad) \ - print_menu_generic_string(23 + (pad * 3), 35 + 12 * courseIndex, segmented_to_virtual(levelNameTable[courseIndex])); \ - print_score_file_star_score(fileIndex, courseIndex, 171, 35 + 12 * courseIndex); \ - print_score_file_course_coin_score(fileIndex, courseIndex, 213, 35 + 12 * courseIndex); + print_menu_generic_string(23 + (pad * 3), 23 + 12 * courseIndex, segmented_to_virtual(levelNameTable[courseIndex - 1])); \ + print_score_file_star_score(fileIndex, courseIndex - 1, 171, 23 + 12 * courseIndex); \ + print_score_file_course_coin_score(fileIndex, courseIndex - 1, 213, 23 + 12 * courseIndex); #endif // Course values are indexed, from Bob-omb Battlefield to Rainbow Ride - PRINT_COURSE_SCORES(0, PADCHAR) // BOB - PRINT_COURSE_SCORES(1, PADCHAR) // WF - PRINT_COURSE_SCORES(2, PADCHAR) // JRB - PRINT_COURSE_SCORES(3, PADCHAR) // CCM - PRINT_COURSE_SCORES(4, PADCHAR) // BBH - PRINT_COURSE_SCORES(5, PADCHAR) // HMC - PRINT_COURSE_SCORES(6, PADCHAR) // LLL - PRINT_COURSE_SCORES(7, PADCHAR) // SSL - PRINT_COURSE_SCORES(8, PADCHAR) // DDD - PRINT_COURSE_SCORES(9, 0) // SL - PRINT_COURSE_SCORES(10, 0) // WDW - PRINT_COURSE_SCORES(11, 0) // TTM - PRINT_COURSE_SCORES(12, 0) // THI - PRINT_COURSE_SCORES(13, 0) // TTC - PRINT_COURSE_SCORES(14, 0) // RR + PRINT_COURSE_SCORES(COURSE_BOB, PADCHAR) // BOB + PRINT_COURSE_SCORES(COURSE_WF, PADCHAR) // WF + PRINT_COURSE_SCORES(COURSE_JRB, PADCHAR) // JRB + PRINT_COURSE_SCORES(COURSE_CCM, PADCHAR) // CCM + PRINT_COURSE_SCORES(COURSE_BBH, PADCHAR) // BBH + PRINT_COURSE_SCORES(COURSE_HMC, PADCHAR) // HMC + PRINT_COURSE_SCORES(COURSE_LLL, PADCHAR) // LLL + PRINT_COURSE_SCORES(COURSE_SSL, PADCHAR) // SSL + PRINT_COURSE_SCORES(COURSE_DDD, PADCHAR) // DDD + PRINT_COURSE_SCORES(COURSE_SL, 0) // SL + PRINT_COURSE_SCORES(COURSE_WDW, 0) // WDW + PRINT_COURSE_SCORES(COURSE_TTM, 0) // TTM + PRINT_COURSE_SCORES(COURSE_THI, 0) // THI + PRINT_COURSE_SCORES(COURSE_TTC, 0) // TTC + PRINT_COURSE_SCORES(COURSE_RR, 0) // RR #undef PRINT_COURSE_SCORES #undef PADCHAR @@ -2187,7 +2188,7 @@ Gfx *geo_file_select_strings_and_menu_cursor(s32 callContext, UNUSED struct Grap * Relocates cursor position of the last save if the game goes back to the Mario Screen * either completing a course choosing "SAVE & QUIT" or having a game over. */ -void lvl_init_menu_values_and_cursor_pos(UNUSED s32 arg, UNUSED s32 unused) { +s32 lvl_init_menu_values_and_cursor_pos(UNUSED s32 arg, UNUSED s32 unused) { sSelectedButtonID = MENU_BUTTON_NONE; sCurrentMenuLevel = MENU_LAYER_MAIN; sTextBaseAlpha = 0; @@ -2223,6 +2224,11 @@ void lvl_init_menu_values_and_cursor_pos(UNUSED s32 arg, UNUSED s32 unused) { sMainMenuTimer = 0; sEraseYesNoHoverState = MENU_ERASE_HOVER_NONE; sSoundMode = save_file_get_sound_mode(); + + //! no return value +#ifdef AVOID_UB + return 0; +#endif } /** @@ -2230,7 +2236,7 @@ void lvl_init_menu_values_and_cursor_pos(UNUSED s32 arg, UNUSED s32 unused) { * When a save file is selected, it returns fileNum value * defined in load_main_menu_save_file. */ -int lvl_update_obj_and_load_file_selected(UNUSED s32 arg, UNUSED s32 unused) { +s32 lvl_update_obj_and_load_file_selected(UNUSED s32 arg, UNUSED s32 unused) { area_update_objects(); return sSelectedFileNum; } diff --git a/src/menu/file_select.h b/src/menu/file_select.h index de91f37..971f440 100644 --- a/src/menu/file_select.h +++ b/src/menu/file_select.h @@ -123,7 +123,7 @@ extern void bhv_menu_button_manager_init(void); extern void bhv_menu_button_manager_loop(void); extern Gfx *geo_file_select_strings_and_menu_cursor(s32 callContext, struct GraphNode *node, f32 mtx[4][4]); -extern void lvl_init_menu_values_and_cursor_pos(s32 arg, s32 unused); -extern int lvl_update_obj_and_load_file_selected(s32 arg, s32 unused); +extern s32 lvl_init_menu_values_and_cursor_pos(s32 arg, s32 unused); +extern s32 lvl_update_obj_and_load_file_selected(s32 arg, s32 unused); #endif /* FILE_SELECT_H */ diff --git a/src/menu/intro_geo.c b/src/menu/intro_geo.c index ae9506a..8dc3a87 100644 --- a/src/menu/intro_geo.c +++ b/src/menu/intro_geo.c @@ -77,7 +77,7 @@ s8 gameOverBackgroundTable[] = { s8 gameOverBackgroundFlipOrder[] = { 0x00, 0x01, 0x02, 0x03, 0x07, 0x0B, 0x0a, 0x09, 0x08, 0x04, 0x05, 0x06 }; -Gfx *geo18_title_screen(u32 sp50, struct GraphNode *sp54, UNUSED u32 sp58) { +Gfx *geo18_title_screen(u32 sp50, struct GraphNode *sp54, UNUSED void *context) { struct GraphNode *graphNode; // sp4c Gfx *displayList; // sp48 Gfx *displayListIter; // sp44 @@ -127,7 +127,7 @@ Gfx *geo18_title_screen(u32 sp50, struct GraphNode *sp54, UNUSED u32 sp58) { return displayList; } -Gfx *geo18_fade_transition(u32 sp40, struct GraphNode *sp44, UNUSED u32 sp48) { +Gfx *geo18_fade_transition(u32 sp40, struct GraphNode *sp44, UNUSED void *context) { struct GraphNode *graphNode = sp44; // sp3c Gfx *displayList = NULL; // sp38 Gfx *displayListIter = NULL; // sp34 @@ -137,8 +137,8 @@ Gfx *geo18_fade_transition(u32 sp40, struct GraphNode *sp44, UNUSED u32 sp48) { displayList = alloc_display_list(5 * sizeof(*displayList)); displayListIter = displayList; gSPDisplayList(displayListIter++, dl_proj_mtx_fullscreen); - gDPSetEnvColor(displayListIter++, 0xFF, 0xFF, 0xFF, gTitleFadeCounter); - if (gTitleFadeCounter == 0xFF) { + gDPSetEnvColor(displayListIter++, 255, 255, 255, gTitleFadeCounter); + if (gTitleFadeCounter == 255) { if (0) { } graphNode->flags = (graphNode->flags & 0xFF) | 0x100; @@ -184,7 +184,7 @@ Gfx *intro_backdrop_one_image(u32 index, s8 *backgroundTable) { return displayList; } -Gfx *geo18_intro_backdrop(u32 sp48, struct GraphNode *sp4c, UNUSED u32 sp50) { +Gfx *geo18_intro_backdrop(u32 sp48, struct GraphNode *sp4c, UNUSED void *context) { struct GraphNodeMore *graphNode; // sp44 s32 index; // sp40 s8 *backgroundTable; // sp3c @@ -211,7 +211,7 @@ Gfx *geo18_intro_backdrop(u32 sp48, struct GraphNode *sp4c, UNUSED u32 sp50) { return displayList; } -Gfx *geo18_game_over_tile(u32 sp40, struct GraphNode *sp44, UNUSED u32 sp48) { +Gfx *geo18_game_over_tile(u32 sp40, struct GraphNode *sp44, UNUSED void *context) { struct GraphNode *graphNode; // sp3c Gfx *displayList; // sp38 Gfx *displayListIter; // sp34 diff --git a/src/menu/intro_geo.h b/src/menu/intro_geo.h index bcddc2a..f455ff4 100644 --- a/src/menu/intro_geo.h +++ b/src/menu/intro_geo.h @@ -3,10 +3,10 @@ #include "engine/graph_node.h" -Gfx *geo18_title_screen(u32 a0, struct GraphNode *a1, UNUSED u32 a2); -Gfx *geo18_fade_transition(u32 a0, struct GraphNode *a1, UNUSED u32 a2); +Gfx *geo18_title_screen(u32 a0, struct GraphNode *a1, UNUSED void *context); +Gfx *geo18_fade_transition(u32 a0, struct GraphNode *a1, UNUSED void *context); Gfx *intro_backdrop_one_image(u32 index, s8 *backdrop_table); -Gfx *geo18_intro_backdrop(u32 a0, struct GraphNode *a1, UNUSED u32 a2); -Gfx *geo18_game_over_tile(u32 a0, struct GraphNode *a1, UNUSED u32 a2); +Gfx *geo18_intro_backdrop(u32 a0, struct GraphNode *a1, UNUSED void *context); +Gfx *geo18_game_over_tile(u32 a0, struct GraphNode *a1, UNUSED void *context); #endif /* _INTRO_GEO_H */ diff --git a/src/menu/level_select_menu.c b/src/menu/level_select_menu.c index 07340cf..26df262 100644 --- a/src/menu/level_select_menu.c +++ b/src/menu/level_select_menu.c @@ -13,75 +13,18 @@ #include "game/display.h" #include "seq_ids.h" #include "engine/math_util.h" +#include "level_table.h" #define PRESS_START_DEMO_TIMER 800 +#define STUB_LEVEL(textname, _1, _2, _3, _4, _5, _6, _7, _8) textname, +#define DEFINE_LEVEL(textname, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) textname, + static char gLevelSelect_StageNamesText[64][16] = { - "", - "", - "", - "TERESA OBAKE", - "YYAMA1 % YSLD1", - "SELECT ROOM", - "HORROR DUNGEON", - "SABAKU % PYRMD", - "BATTLE FIELD", - "YUKIYAMA2", - "POOL KAI", - "WTDG % TINBOTU", - "BIG WORLD", - "CLOCK TOWER", - "RAINBOW CRUISE", - "MAIN MAP", - "EXT1 YOKO SCRL", - "EXT7 HORI MINI", - "EXT2 TIKA LAVA", - "EXT9 SUISOU", - "EXT3 HEAVEN", - "FIREB1 % INVLC", - "WATER LAND", - "MOUNTAIN", - "ENDING", - "URANIWA", - "EXT4 MINI SLID", - "IN THE FALL", - "EXT6 MARIO FLY", - "KUPPA1", - "EXT8 BLUE SKY", - "", - "KUPPA2", - "KUPPA3", - "", - "DONKEY % SLID2", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", + #include "levels/level_defines.h" }; +#undef STUB_LEVEL +#undef DEFINE_LEVEL static u16 gDemoCountdown = 0; #ifndef VERSION_JP diff --git a/src/menu/star_select.c b/src/menu/star_select.c index 291d8d1..78824f3 100644 --- a/src/menu/star_select.c +++ b/src/menu/star_select.c @@ -236,7 +236,7 @@ static void print_act_selector_strings(void) { #ifndef VERSION_EU unsigned char myScore[] = { TEXT_MYSCORE }; unsigned char starNumbers[] = { TEXT_ZERO }; - u8 **levelNameTbl = segmented_to_virtual(seg2_level_name_table); + u8 **levelNameTbl = segmented_to_virtual(seg2_course_name_table); u8 *currLevelName = segmented_to_virtual(levelNameTbl[gCurrCourseNum - 1]); u8 **actNameTbl = segmented_to_virtual(seg2_act_name_table); u8 *selectedActName; @@ -288,7 +288,11 @@ static void print_act_selector_strings(void) { * Geo function that Print act selector strings. *!@bug: This geo function is missing the third param. Harmless in practice due to o32 convention. */ +#ifdef AVOID_UB +Gfx *geo_act_selector_strings(s16 callContext, UNUSED struct GraphNode *node, UNUSED void *context) { +#else Gfx *geo_act_selector_strings(s16 callContext, UNUSED struct GraphNode *node) { +#endif if (callContext == GEO_CONTEXT_RENDER) { print_act_selector_strings(); } @@ -299,7 +303,7 @@ Gfx *geo_act_selector_strings(s16 callContext, UNUSED struct GraphNode *node) { * Initiates act selector values before entering a main course. * Also load how much stars a course has, without counting the 100 coin star. */ -void lvl_init_act_selector_values_and_stars(UNUSED s32 arg, UNUSED s32 unused) { +s32 lvl_init_act_selector_values_and_stars(UNUSED s32 arg, UNUSED s32 unused) { u8 stars = save_file_get_star_flags(gCurrSaveFileNum - 1, gCurrCourseNum - 1); sLoadedActNum = 0; @@ -312,13 +316,18 @@ void lvl_init_act_selector_values_and_stars(UNUSED s32 arg, UNUSED s32 unused) { if (stars & (1 << 6)) { sObtainedStars--; } + + //! no return value +#ifdef AVOID_UB + return 0; +#endif } /** * Loads act selector button actions with selected act value checks. * Also updates objects and returns act number selected after is choosen. */ -int lvl_update_obj_and_load_act_button_actions(UNUSED s32 arg, UNUSED s32 unused) { +s32 lvl_update_obj_and_load_act_button_actions(UNUSED s32 arg, UNUSED s32 unused) { if (sActSelectorMenuTimer >= 11) { // If any of these buttons are pressed, play sound and go to course act if ((gPlayer3Controller->buttonPressed & A_BUTTON) diff --git a/src/menu/star_select.h b/src/menu/star_select.h index dd0915b..b0d68e8 100644 --- a/src/menu/star_select.h +++ b/src/menu/star_select.h @@ -8,8 +8,12 @@ enum StarSelectorTypes STAR_SELECTOR_100_COINS }; +#ifdef AVOID_UB +extern Gfx *geo_act_selector_strings(s16 callContext, struct GraphNode *node, void *context); +#else extern Gfx *geo_act_selector_strings(s16 callContext, struct GraphNode *node); -extern void lvl_init_act_selector_values_and_stars(s32 arg, s32 unused); -extern int lvl_update_obj_and_load_act_button_actions(s32 arg, s32 unused); +#endif +extern s32 lvl_init_act_selector_values_and_stars(s32 arg, s32 unused); +extern s32 lvl_update_obj_and_load_act_button_actions(s32 arg, s32 unused); #endif /* STAR_SELECT_H */ diff --git a/text/de/courses.h b/text/de/courses.h new file mode 100644 index 0000000..06b1f29 --- /dev/null +++ b/text/de/courses.h @@ -0,0 +1,80 @@ +COURSE_ACTS(COURSE_BOB, _(" 1 BOB-OMBS BOMBENBERG"), + _("BESIEGE KÖNIG BOB-OMB!") , _("BESIEGE DEN SCHNELLEN KOOPA!") , _("FLIEGE ZUR SCHWEBENDEN INSEL!"), + _("FINDE DIE 8 ROTEN MÜNZEN!") , _("DURCHFLIEGE ALLE MÜNZENRINGE!") , _("BEFREIE DEN KETTENHUND!")) + +COURSE_ACTS(COURSE_WF, _(" 2 WUMMPS WUCHTWALL"), + _("BESIEGE KÖNIG WUMMP!") , _("STEIGE AUF DIE BERGFESTUNG!") , _("FLIEG INS BLAUE!"), + _("FINDE DIE 8 ROTEN MÜNZEN!") , _("WECKE DIE EULE!") , _("ZERSTÖRE DIE FELSWAND!")) + +COURSE_ACTS(COURSE_JRB, _(" 3 PIRATENBUCHT PANIK"), + _("TAUCHE IN DAS SCHIFFSWRACK!") , _("LOCKE DEN AAL KANO HERAUS!") , _("TAUCHE ZUR SCHATZHÖHLE!"), + _("FINDE DIE 8 ROTEN MÜNZEN!") , _("FLIEGE ZU DEN STEINSÄULEN!") , _("LAUFE DURCH DEN STRUDEL!")) + +COURSE_ACTS(COURSE_CCM, _(" 4 BIBBERBERG BOB"), + _("RUTSCHE AUF DER EISBAHN!") , _("FINDE DAS PINGUINBABY!") , _("BESIEGE DEN SCHNELLEN PINGUIN!"), + _("FINDE DIE 8 ROTEN MÜNZEN!") , _("BAUE EINEN SCHNEEMANN!") , _("DENKE AN DEN WANDSPRUNG!")) + +COURSE_ACTS(COURSE_BBH, _(" 5 BIG BOOS BURG"), + _("GEHE AUF GEISTERJAGD!") , _("BESUCHE BIG BOOS KARUSSEL!") , _("LÖSE DAS BÜCHEREI-RÄTSEL!"), + _("FINDE DIE 8 ROTEN MÜNZEN!") , _("KLETTERE AUF BIG BOOS BALKON!") , _("FINDE DAS AUGE IM GEHEIMRAUM!")) + +COURSE_ACTS(COURSE_HMC, _(" 6 GRÜNE GIFTGROTTE"), + _("KLETTERE AUF NESSIS RÜCKEN!") , _("FINDE DIE 8 ROTEN MÜNZEN!") , _("LAUFE AUF DEM GRUND DES SEES!"), + _("DURCHSUCHE DAS NEBELLABYRINTH!"), _("SUCHE IM NEBEL DEN NOTAUSGANG!"), _("ACHTE AUF ROLLENDE FELSEN!")) + +COURSE_ACTS(COURSE_LLL, _(" 7 LAVA LAGUNE"), + _("WERFE BIG BULLY IN DIE LAVA!") , _("WERFE DIE BULLIES IN DIE LAVA!"), _("FINDE DIE 8 ROTEN MÜNZEN!"), + _("TANZE AUF DEM BAUMSTAMM!") , _("ERKUNDE DEN VULKAN!") , _("GEWINNE IM VULKAN AN HÖHE!")) + +COURSE_ACTS(COURSE_SSL, _(" 8 WOBIWABA WÜSTE"), + _("FOLGE DEM RIESENGEIER!") , _("BRINGE LICHT IN DIE PYRAMIDE!") , _("BEGEBE DICH IN DIE PYRAMIDE!"), + _("LANDE AUF ALLEN VIER SÄULEN!") , _("FINDE DIE 8 ROTEN MÜNZEN!") , _("LÖSE DAS PYRAMIDENPUZZLE!")) + +COURSE_ACTS(COURSE_DDD, _(" 9 WILDE WASSERWERFT"), + _("ENTERE BOWSERS U-BOOT!") , _("ÖFFNE DIE TRUHEN!") , _("SPRINGE ZU DEN ROTEN MÜNZEN!"), + _("SCHWIMME DURCH DIE RINGE!") , _("FOLGE DEM FISCH!") , _("VEREINE DIE MÜTZEN!")) + +COURSE_ACTS(COURSE_SL, _("10 FROSTBEULEN FRUST"), + _("ERKLIMME DEN KOPF!") , _("SPIELE MIT BAD BULLY!") , _("WAGE DICH INS EIS!"), + _("GEHE ZUM EISSEE!") , _("FINDE DIE 8 ROTEN MÜNZEN!") , _("SCHAU IM IGLU NACH!")) + +COURSE_ACTS(COURSE_WDW, _("11 ATLANTIS AQUARIA"), + _("FOLGE DEN BLAUEN PFEILEN!") , _("SUCHE NACH DER SPITZE DER STADT!"), _("ERFORSCHE DIE HÖHEN UND TIEFEN!"), + _("BEEILE DICH - EXPRESSAUFZUG!") , _("FINDE DIE 8 ROTEN MÜNZEN!") , _("BEACHTE DAS ZEITLIMIT!")) + +COURSE_ACTS(COURSE_TTM, _("12 FLIEGENPILZ FIASKO"), + _("ERKLIMME DEN BERG!") , _("ERKUNDE DEN AFFENKÄFIG!") , _("FINDE DIE 8 ROTEN MÜNZEN!"), + _("ERFORSCHE DIE STEILWAND!") , _("HALTE AUSSCHAU AUF DER BRÜCKE!"), _("SUCHE DEN EINSAMEN PILZ!")) + +COURSE_ACTS(COURSE_THI, _("13 GULLIVER GUMBA"), + _("PFLÜCKE DIE SCHNAPP-PIRANHA!") , _("BEGIB DICH ZUR SPITZE DER INSEL!"), _("TRETE NOCH EINMAL GEGEN KOOPA AN!"), + _("LÖSE DIE 5 ITTY BITTY-RÄTSEL!") , _("FINDE DIE 8 ROTEN MÜNZEN!") , _("DREHE WIGGLER IM KREIS!")) + +COURSE_ACTS(COURSE_TTC, _("14 TICK TACK TRAUMA"), + _("ROLLE DEN KÄFIG!") , _("ACHTE AUF DAS PENDEL!") , _("LASS DIR DEN WEG ZEIGEN!"), + _("STAMPFE MÄCHTIG AUF!") , _("SPRINGE AUF DEN SCHWEBEBALKEN!"), _("FINDE DIE 8 ROTEN MÜNZEN!")) + +COURSE_ACTS(COURSE_RR, _("15 REGENBOGEN RASEREI"), + _("REISE AUF DEN REGENBÖGEN!") , _("SUCHE DAS HAUS AM HIMMEL!") , _("FINDE DIE 8 ROTEN MÜNZEN!"), + _("LASS DICH VON DER BRISE TRAGEN!"), _("ÜBERWINDE DIE MACHT DER DREIECKE!"), _("SCHAU DIR DEN REGENBOGEN AN!")) + +SECRET_STAR(COURSE_BITDW, _(" BOWSERS SCHATTENWELT")) +SECRET_STAR(COURSE_BITFS, _(" BOWSERS LAVASEE")) +SECRET_STAR(COURSE_BITS, _(" BOWSERS LUFTSCHLOSS")) +SECRET_STAR(COURSE_PSS, _(" TOADSTOOLS RUTSCHBAHN")) +SECRET_STAR(COURSE_COTMC, _(" GRÜNER SCHALTERPALAST")) +SECRET_STAR(COURSE_TOTWC, _(" ROTER SCHALTERPALAST")) +SECRET_STAR(COURSE_VCUTM, _(" BLAUER SCHALTERPALAST")) +SECRET_STAR(COURSE_WMOTR, _(" REGENBOGEN FEUERWERK")) +SECRET_STAR(COURSE_SA, _(" VERSTECKTES AQUARIUM")) +SECRET_STAR(COURSE_CAKE_END, _("")) + +CASTLE_SECRET_STARS(_(" GEHEIME STERNE")) + +EXTRA_TEXT(0, _("EIN GEHEIMER STERN DES SCHLOSSES!")) +EXTRA_TEXT(1, _("")) +EXTRA_TEXT(2, _("")) +EXTRA_TEXT(3, _("")) +EXTRA_TEXT(4, _("")) +EXTRA_TEXT(5, _("")) +EXTRA_TEXT(6, _("")) diff --git a/text/de/dialogs.h b/text/de/dialogs.h new file mode 100644 index 0000000..fba15c1 --- /dev/null +++ b/text/de/dialogs.h @@ -0,0 +1,2058 @@ +// Parameters: dialog enum ID, (unused), lines per box, left offset, width + +DEFINE_DIALOG(DIALOG_000, 1, 6, 30, 200, _("\ +Du bist inmitten der\n\ +Kampfarena gelandet.\n\ +Sei vorsichtig!\n\ +Die von Bowser erbeuteten\n\ +Power-Sterne findest Du\n\ +in den Wandgemälden.\n\ +Sprich zuerst mit Buddy,\n\ +der rosa Bombe.\n\ +Drücke [B], um Dich mit ihr\n\ +zu unterhalten. Sie und\n\ +ihre Kolleginnen werden\n\ +Dich sicher unterstützen.\n\ +Drücke [B], um Schilder\n\ +zu lesen. Mit [A] oder [B]\n\ +kannst Du die Nachrichten\n\ +umblättern. In anderen\n\ +Kursen triffst Du weitere\n\ +Freunde, die Dir helfen.")) + +DEFINE_DIALOG(DIALOG_001, 1, 4, 95, 200, _("\ +Bewege Dich vorsichtig\n\ +durch das Gelände, damit\n\ +Du kein Opfer der\n\ +Wasserbomben wirst.\n\ +Die gegnerischen Bob-\n\ +Ombs lieben den Kampf\n\ +und erfinden immer neue\n\ +Angriffsvarianten.\n\ +Sie terrorisieren uns,\n\ +seit ihr König den\n\ +Power-Stern in die\n\ +Hände bekommen hat.\n\ +Hilf uns, den Stern\n\ +zurückzuholen! Gehe zur\n\ +Spitze des Berges, um\n\ +König Bob-Omb zu finden.\n\ +Kehre zu mir zurück,\n\ +wenn es Dir gelungen ist,\n\ +ihm den Stern abzujagen.\n\ +Viel Glück...")) + +DEFINE_DIALOG(DIALOG_002, 1, 4, 95, 200, _("\ +Hallo! Sei wachsam, Du\n\ +befindest Dich inmitten\n\ +einer Schlacht. Aber ich\n\ +gebe Dir ein paar Tips:\n\ +Überquere die beiden\n\ +Brücken und achte auf\n\ +herunterfallende\n\ +Wasserbomben.\n\ +König Bob-Omb ist\n\ +äußerst gefährlich.\n\ +Laß Dich nicht von\n\ +ihm erwischen.\n\ +Wir sind die wahren\n\ +Bob-Ombs und werden Dir\n\ +helfen. Sprich mit uns,\n\ +wann immer Du möchtest.")) + +DEFINE_DIALOG(DIALOG_003, 1, 5, 95, 200, _("\ +Herzlichen Dank, Mario!\n\ +Du hast es diesem\n\ +Tyrannen gezeigt. Aber\n\ +Dein Kampf hat gerade\n\ +erst begonnen.\n\ +Andere Fieslinge besitzen\n\ +weitere Sterne, die Dir\n\ +die Wege zu neuen Welten\n\ +öffnen. Allerdings mußt\n\ +Du sie zuerst besiegen.\n\ +Meine Bob-Omb-Kollegen\n\ +wissen bereits Bescheid.\n\ +Sprich mit ihnen und\n\ +Du darfst bestimmt ihre\n\ +Kanonen benutzen.")) + +DEFINE_DIALOG(DIALOG_004, 1, 3, 95, 200, _("\ +Wir sind friedliebende\n\ +Bob-Ombs und mögen keine\n\ +Kanonen.\n\ +Wir stellen sie Dir aber\n\ +gerne für Luftreisen\n\ +zur Verfügung.\n\ +Alle Kanonen dieses Kurses\n\ +sind für Dich präpariert.\n\ +Guten Flug!!!")) + +DEFINE_DIALOG(DIALOG_005, 1, 4, 30, 200, _("\ +Hey Mario! Stimmt es,\n\ +daß Du König Bob-Omb\n\ +während eines harten\n\ +Kampfes besiegt hast?\n\ +Du scheinst ganz schön\n\ +was auf dem Kasten zu\n\ +haben. Aber glaubst Du,\n\ +es reicht auch für mich?\n\ +Bist Du schnell genug, um\n\ +mich zu schlagen? Ich\n\ +würde sagen, Du siehst\n\ +nicht danach aus!\n\ +Wie wär's mit einem\n\ +Rennen zur Bergspitze,\n\ +um herauszufinden, wer\n\ +der Schnellere ist?\n\ +\n\ +Fertig...?\n\ +\n\ +//Los!/// Später!")) + +DEFINE_DIALOG(DIALOG_006, 1, 3, 30, 200, _("\ +Hey!!! Willst Du mich\n\ +auf den Arm nehmen?\n\ +Abkürzen gilt nicht!\n\ +Am besten versuchst Du's\n\ +später nochmal unter\n\ +fairen Bedingungen.")) + +DEFINE_DIALOG(DIALOG_007, 1, 5, 30, 200, _("\ +Hmmmmpff...pffff...hach!\n\ +Boah! Du...hast...mich...\n\ +geschlagen! Das grenzt an\n\ +ein Wunder! Hier, Du hast\n\ +ihn Dir verdient!")) + +DEFINE_DIALOG(DIALOG_008, 1, 5, 30, 200, _("\ +BISSIGER KETTENHUND!\n\ +Nähere Dich ihm langsam,\n\ +und benutze die [C]-Knöpfe,\n\ +um den Blickwinkel zu\n\ +ändern. Gefährlich, oder?\n\ +Siehst Du die rote Münze\n\ +auf dem Pfahl?\n\ +Du erhältst einen Stern,\n\ +wenn Du acht dieser\n\ +Münzen sammelst.")) + +DEFINE_DIALOG(DIALOG_009, 1, 5, 30, 200, _("\ +Lang, lang ist's her!\n\ +Du scheinst noch schneller\n\ +geworden zu sein. Hast Du\n\ +heimlich geübt oder\n\ +liegt's an den Sternen?\n\ +Meine letzte Niederlage\n\ +geht mir nicht aus dem\n\ +Kopf. Aber das ist meine\n\ +Hausstrecke. Wie wär's\n\ +mit einer Revanche?\n\ +Das Ziel liegt hinter\n\ +der Böen-Brücke.\n\ +Fertig?\n\ +\n\ +//Los!/// Später!")) + +DEFINE_DIALOG(DIALOG_010, 1, 4, 30, 200, _("\ +Du hast den roten\n\ +Schalter aktiviert.\n\ +Ab jetzt kannst Du die\n\ +Federkappe einsetzen\n\ +und durch die Lüfte\n\ +fliegen. Jeder rote\n\ +Block beinhaltet eine\n\ +dieser Mützen.\n\ +Möchtest Du Deinen\n\ +Spielstand speichern?\n\ +\n\ +//Ja!////Nein!")) + +DEFINE_DIALOG(DIALOG_011, 1, 4, 30, 200, _("\ +Du hast den grünen\n\ +Schalter aktiviert.\n\ +Ab jetzt kannst Du die\n\ +Titanenkappe einsetzen\n\ +und Unbesiegbarkeit\n\ +erlangen. Jeder grüne\n\ +Block beinhaltet eine\n\ +dieser Mützen.\n\ +Möchtest Du Deinen\n\ +Spielstand speichern?\n\ +\n\ +//Ja!////Nein!")) + +DEFINE_DIALOG(DIALOG_012, 1, 4, 30, 200, _("\ +Du hast den blauen\n\ +Schalter aktiviert.\n\ +Ab jetzt kannst Du die\n\ +Tarnkappe einsetzen\n\ +und Unsichtbarkeit\n\ +erlangen. Jeder blaue\n\ +Block beinhaltet eine\n\ +dieser Mützen.\n\ +Möchtest Du Deinen\n\ +Spielstand speichern?\n\ +\n\ +//Ja!////Nein!")) + +DEFINE_DIALOG(DIALOG_013, 1, 6, 30, 200, _("\ +Du hast 100 Münzen\n\ +eingesammelt. Der\n\ +Stern verleiht Dir\n\ +zusätzliche Kraft.\n\ +Spielstand speichern?\n\ +//Ja!////Nein!")) + +DEFINE_DIALOG(DIALOG_014, 1, 6, 30, 200, _("\ +Unglaublich, Du hast einen\n\ +weiteren Stern erhalten.\n\ +Er verleiht Dir\n\ +zusätzliche Kraft.\n\ +Spielstand speichern?\n\ +//Ja!////Nein!")) + +DEFINE_DIALOG(DIALOG_015, 1, 4, 30, 200, _("\ +Setze Deine Fäuste ein,\n\ +um Dich zu verteidigen.\n\ +Drücke [A] zum Springen\n\ +und [B] zum Schlagen.\n\ +Drücke [A] und [B], um einen\n\ +Tritt auszuführen.\n\ +Gegenstände kannst Du\n\ +mit [B] nehmen und werfen.")) + +DEFINE_DIALOG(DIALOG_016, 1, 4, 30, 200, _("\ +Springe auf den\n\ +funkelnden Panzer!\n\ +Der Krötensurf eröffnet\n\ +ungeahnte Möglichkeiten!")) + +DEFINE_DIALOG(DIALOG_017, 1, 4, 30, 200, _("\ +Ich bin König Bob-Omb,\n\ +Herrscher über alle\n\ +Bomben und Gebieter der\n\ +Explosionen!\n\ +Wer gibt Dir das Recht,\n\ +diesen Berg zu betreten\n\ +und dieses königliche\n\ +Plateau zu beschmutzen?\n\ +Anscheinend haben Dich\n\ +die Wachen unterschätzt,\n\ +aber mir wird dieser\n\ +Fehler nicht unterlaufen.\n\ +Der Power-Stern ist in\n\ +meinem Besitz und wird\n\ +auch dort bleiben.\n\ +Dein Ende ist gekommen!\n\ +Oder bist Du etwa der\n\ +Meinung, Du könntest\n\ +mich von hinten packen\n\ +und besiegen? Niemals!!!")) + +DEFINE_DIALOG(DIALOG_018, 1, 4, 30, 200, _("\ +Schlafende Gefahren\n\ +sollte man nicht wecken.\n\ +Die schleichende Weisheit\n\ +verleiht längeres Leben!")) + +DEFINE_DIALOG(DIALOG_019, 1, 2, 30, 200, _("\ +Vorsicht, die Fliesen\n\ +sind frisch gebohnert!")) + +DEFINE_DIALOG(DIALOG_020, 1, 6, 95, 150, _("\ +Lieber Mario!\n\ +Komm mich doch einmal\n\ +im Schloss besuchen!\n\ +Der Kuchen steht bereit!\n\ +In Freundschaft\n\ +Toadstool")) + +DEFINE_DIALOG(DIALOG_021, 1, 5, 95, 200, _("\ +Na, wen haben wir denn\n\ +hier? Es ist niemand zu\n\ +Hause, also verschwinde\n\ +besser wieder...\n\ +Hua...hua...hua!!!")) + +DEFINE_DIALOG(DIALOG_022, 1, 3, 95, 200, _("\ +Ohne den passenden\n\ +Schlüssel bleibt Dir\n\ +dieser Weg versperrt!")) + +DEFINE_DIALOG(DIALOG_023, 1, 2, 95, 200, _("\ +Der Kellerschlüssel wird\n\ +Dir hier nichts nützen!")) + +DEFINE_DIALOG(DIALOG_024, 1, 4, 95, 200, _("\ +Du brauchst schon einen\n\ +Stern, um diese Tür zu\n\ +öffnen. Untersuche doch\n\ +einmal die Wandgemälde!")) + +DEFINE_DIALOG(DIALOG_025, 1, 4, 95, 200, _("\ +Zum Öffnen dieser Tür\n\ +benötigst Du drei Sterne.\n\ +Du mußt also noch [%]\n\ +von ihnen finden!")) + +DEFINE_DIALOG(DIALOG_026, 1, 4, 95, 200, _("\ +Zum Öffnen dieser Tür\n\ +benötigst Du acht Sterne.\n\ +Du mußt also noch [%]\n\ +von ihnen finden!")) + +DEFINE_DIALOG(DIALOG_027, 1, 4, 95, 200, _("\ +Zum Öffnen dieser Tür\n\ +benötigst Du 30 Sterne.\n\ +Du mußt also noch [%]\n\ +von ihnen finden.")) + +DEFINE_DIALOG(DIALOG_028, 1, 4, 95, 200, _("\ +Zum Öffnen dieser Tür\n\ +benötigst Du 50 Sterne.\n\ +Du mußt also noch [%]\n\ +von ihnen finden.")) + +DEFINE_DIALOG(DIALOG_029, 1, 4, 95, 200, _("\ +Zum Öffnen der Tür zum\n\ +„Endlosen Vergnügen』\n\ +benötigst Du 70 Sterne.\n\ +Hua...Hua...Hua...!")) + +DEFINE_DIALOG(DIALOG_030, 1, 4, 30, 200, _("\ +Die Lakitu-Film AG\n\ +berichtet live und in\n\ +Farbe! Hier die neuesten\n\ +Meldungen:\n\ +Gegner sind sehr oft\n\ +unachtsam, wenn Du Dich\n\ +leise, also langsam,\n\ +bewegst.\n\ +Die Kameraposition kannst\n\ +Du durch [C]> und [C]<\n\ +verändern, um einen\n\ +Überblick zu erhalten.\n\ +Das Weitwinkelobjektiv\n\ +wird mit [C]| eingesetzt.\n\ +Details der Umgebung\n\ +werden so sichtbar!\n\ +Ein Warnton erklingt,\n\ +wenn die Bewegungs-\n\ +freiheit der Kamera\n\ +eingeschränkt ist.\n\ +Das waren die\n\ +Meldungen und\n\ +damit zurück zum\n\ +laufenden Programm!")) + +DEFINE_DIALOG(DIALOG_031, 1, 3, 30, 200, _("\ +Das darf doch alles nicht\n\ +wahr sein! Ich habe schon\n\ +wieder verloren!\n\ +Dabei habe ich mir extra\n\ +die neuen Koopa-Mach-1-\n\ +Schuhe gekauft! Hmpf!!!\n\ +Naja, ich denke, auch\n\ +dieser Stern gehört Dir!\n\ +Herzlichen Glückwunsch!")) + +DEFINE_DIALOG(DIALOG_032, 1, 5, 30, 200, _("\ +Mit der Federkappe\n\ +kannst Du fliegen.\n\ +Besitzt Du sie, springe\n\ +dreimal hintereinander,\n\ +um einen Flug zu starten.\n\ +Benutzt Du zum Starten\n\ +des Fluges eine Kanone,\n\ +kannst Du die Flughöhe\n\ +enorm steigern. Mit dem\n\ +[Z]-Knopf kannst Du landen.")) + +DEFINE_DIALOG(DIALOG_033, 1, 4, 30, 200, _("\ +Herzlich willkommen! Durch\n\ +eine Warpröhre bist Du\n\ +direkt zum Schloss der\n\ +Prinzessin gelangt.\n\ +Die Steuerung ist einfach:\n\ +Benutze den [A]-Knopf zum\n\ +Springen und den [B]-Knopf\n\ +zum Schlagen.\n\ +Hinweisschilder kannst\n\ +Du lesen, wenn Du Dich\n\ +davor stellst und den\n\ +[B]-Knopf betätigst.\n\ +Der Analog-Stick dient\n\ +der Steuerung. Doch jetzt\n\ +genug der vielen Worte:\n\ +Auf zum Schloss!!!")) + +DEFINE_DIALOG(DIALOG_034, 1, 5, 30, 200, _("\ +Guten Tag, liebe Freunde\n\ +des Actionkinos! Die\n\ +Lakitu-Film AG versorgt\n\ +Euch ständig mit den\n\ +neuesten Informationen.\n\ +Mario hat gerade\n\ +Prinzessin Toadstools\n\ +Schloss erreicht und\n\ +macht sich auf die Suche\n\ +nach den Power-Sternen.\n\ +Unser wagemutiger Kollege\n\ +wird ihn auf dieser\n\ +heiklen Mission begleiten.\n\ +Die [C]-Knöpfe dienen\n\ +seiner Steuerung.\n\ +Du kannst die Perspektiven\n\ +beliebig verändern. Sollte\n\ +sich der Blickwinkel einmal\n\ +nicht verstellen lassen,\n\ +erklingt ein Warnton.\n\ +Genauere Erklärungen\n\ +hierzu werden wir Euch\n\ +zu gegebener Zeit\n\ +mitteilen. Damit zurück\n\ +zum Hauptfilm!")) + +DEFINE_DIALOG(DIALOG_035, 1, 5, 30, 200, _("\ +Die [C]-Knöpfe dienen der\n\ +Steuerung der Kamera.\n\ +Benutze den ^-Knopf, um\n\ +die Kamera mit dem\n\ +Analog-Stick zu bewegen.\n\ +Normalerweise sorgt ein\n\ +Angestellter der Lakitu\n\ +AG dafür, daß Du Mario\n\ +siehst. Das ist die\n\ +Standardeinstellung.\n\ +Diese Kamera steuerst Du\n\ +mit den [C]-Knöpfen.\n\ +Drückst Du die [R]-Taste,\n\ +wechselst Du zwischen\n\ +Lakitus und Marios\n\ +Sicht hin und her. Drücke\n\ +|, um den Zoom oder\n\ +das Weitwinkelobjektiv zu\n\ +aktivieren. Dies ist in\n\ +allen Perspektiven möglich.\n\ +Welchen Kameramodus\n\ +Du gewählt hast, siehst\n\ +Du an einem kleinen Bild,\n\ +das sich rechts unten auf\n\ +dem Bildschirm befindet.")) + +DEFINE_DIALOG(DIALOG_036, 1, 5, 30, 200, _("\ +AUSSICHTSPLATTFORM\n\ +Drücke ^ und genieße die\n\ +Aussicht. Vielleicht\n\ +entdeckst Du Geheimnisse\n\ +Deiner Umgebung.\n\ +Drücke [R], um zu Marios\n\ +Kamera zu wechseln. Sie\n\ +bleibt ständig hinter ihm.\n\ +Mit dieser Taste schaltest\n\ +Du auch zurück auf Lakitu.\n\ +Im Pausenmodus kannst Du\n\ +weitere Einstellungen\n\ +vornehmen. Wähle „Stativ』\n\ +und halte die [R]-Taste\n\ +gedrückt!")) + +DEFINE_DIALOG(DIALOG_037, 1, 3, 30, 200, _("\ +Hihihi, ich habe gewonnen!\n\ +Du solltest noch ein paar\n\ +Trainingsrunden einlegen!")) + +DEFINE_DIALOG(DIALOG_038, 1, 2, 95, 200, _("\ +Die mystische Kraft der\n\ +Sterne öffnet die Tür!")) + +DEFINE_DIALOG(DIALOG_039, 1, 5, 30, 200, _("\ +Besuchern ist das\n\ +Erklimmen des königlichen\n\ +Berges strengstens\n\ +verboten. Verstöße werden\n\ +hart bestraft!\n\ +Niemals werden die\n\ +Power-Sterne, ein\n\ +Geschenk Bowsers, diesen\n\ +Ort verlassen. Ihre Macht\n\ +bleibt in meinen Händen!\n\ +Kein Wort über ihren\n\ +Aufenthaltsort kommt\n\ +über meine Lippen!!!\n\ +Äh, naja, vielleicht\n\ +ein kleiner Tip:\n\ +Die Sternenbeschreibungen\n\ +zu Beginn dieses Kurses\n\ +könnten sich als nützlich\n\ +erweisen!\n\ +König Bob-Omb!!!")) + +DEFINE_DIALOG(DIALOG_040, 1, 3, 30, 200, _("\ +Vorsicht, Brücke zerstört!\n\ +Überquere das Eistal in\n\ +der Gondel.")) + +DEFINE_DIALOG(DIALOG_041, 1, 4, 30, 200, _("\ +Höhöhö, das war ja wohl\n\ +nichts! Sogar meine Uroma\n\ +Koopa ist wesentlich\n\ +schneller als Du!\n\ +Naja, mit zwei Jahren\n\ +Training könntest Du's\n\ +vielleicht schaffen.\n\ +Bis dann...und tschüß!")) + +DEFINE_DIALOG(DIALOG_042, 1, 4, 30, 200, _("\ +Achtung!\n\ +Dieser Steg ist ziemlich\n\ +schmal. Du solltest Dich\n\ +sehr langsam bewegen.\n\ +Überschreitest Du eine\n\ +Kante, fällt Mario nicht\n\ +in die Tiefe, sondern er\n\ +klammert sich daran fest.\n\ +Möchtest Du wieder nach\n\ +oben klettern, drücke\n\ +den Analog-Stick in\n\ +Marios Blickrichtung.\n\ +Mario läßt die Kante los,\n\ +wenn Du den Analog-Stick\n\ +in Richtung seines Rückens\n\ +bewegst oder [Z] drückst.\n\ +Bist Du in Eile, kannst\n\ +Du auch durch einen\n\ +beherzten Sprung mit dem\n\ +[A]-Knopf hinauf gelangen.")) + +DEFINE_DIALOG(DIALOG_043, 1, 4, 30, 200, _("\ +Wenn Du springst und den\n\ +[A]-Knopf gedrückt hältst,\n\ +klammert sich Mario an\n\ +Objekte über ihm.\n\ +Auf diese Weise kannst\n\ +Du Dich auch von der\n\ +Eule durch die Lüfte\n\ +transportieren lassen.")) + +DEFINE_DIALOG(DIALOG_044, 1, 5, 95, 200, _("\ +Uh...oh...gääähn...\n\ +Weeehhr ist daaaahhh...?\n\ +Wer hat mich geweckt?\n\ +Eigentlich sollte ich um\n\ +diese Tageszeit schlafen!\n\ +Aber, da Du mich schon\n\ +geweckt hast, wie wäre\n\ +es dann mit einem\n\ +kleinen Rundflug um die\n\ +Burg?\n\ +Befinde ich mich direkt\n\ +über Dir, springe und\n\ +halte den Sprungknopf\n\ +gedrückt. Laß ihn los,\n\ +um wieder frei zu sein.\n\ +Ich transportiere Dich,\n\ +solange es meine Kraft\n\ +zuläßt. Beobachte meinen\n\ +Schatten, um Dich zu\n\ +orientieren.")) + +DEFINE_DIALOG(DIALOG_045, 1, 6, 95, 200, _("\ +Hey, Mann, Mario! Mir\n\ +geht die Puste aus.\n\ +Du ißt zuviel Pasta!\n\ +Bitte, laß los, ich muß\n\ +mich erholen...sofooort!\n\ +Bis später...vielleicht.")) + +DEFINE_DIALOG(DIALOG_046, 1, 4, 30, 200, _("\ +Es gibt drei verschiedene\n\ +Sprungtechniken. Du mußt\n\ +sie alle beherrschen, um\n\ +die Aufgaben zu meistern.\n\ +Versuche zuerst den\n\ +Dreisprung! Renne und\n\ +springe dreimal direkt\n\ +hintereinander.\n\ +Mit dem richtigen Timing\n\ +wird jeder Sprung höher\n\ +als der vorherige sein.\n\ +Weiter zum Weitsprung!\n\ +Während Du rennst, mußt\n\ +Du den [Z]-Knopf und dann\n\ +den [A]-Knopf drücken.\n\ +Und nun der Wandsprung!\n\ +Springe gegen eine Wand.\n\ +Sobald Du die Wand\n\ +berührst, mußt Du wieder\n\ +den Sprungknopf drücken.\n\ +Alles verstanden?\n\ +Dreisprung? Weitsprung?\n\ +Wandsprung? Dann heißt's\n\ +üben, üben, üben...")) + +DEFINE_DIALOG(DIALOG_047, 1, 3, 95, 200, _("\ +Hallo!\n\ +Ich mache die Kanone\n\ +zum Abschuß bereit!")) + +DEFINE_DIALOG(DIALOG_048, 1, 6, 30, 200, _("\ +An einigen Stellen\n\ +herrscht extreme\n\ +Rutschgefahr! Sieh\n\ +am besten zuerst im\n\ +Schornstein nach dem\n\ +Rechten!")) + +DEFINE_DIALOG(DIALOG_049, 1, 5, 30, 200, _("\ +Du erinnerst Dich an den\n\ +Wandsprung? Auf diese\n\ +Weise kannst Du schnell\n\ +höher gelegene Stellen\n\ +erreichen.\n\ +Benutze ihn, um von\n\ +Wand zu Wand zu springen\n\ +und Stück für Stück\n\ +weiter nach oben zu\n\ +gelangen.\n\ +Denke an die uralte\n\ +Weisheit:\n\ +Übung macht den Meister!\n\ +Sie kommt hier voll zum\n\ +Tragen!!!")) + +DEFINE_DIALOG(DIALOG_050, 1, 4, 30, 200, _("\ +Drücke den [Z]-Knopf, um\n\ +in die Hocke zu gehen und\n\ +einen Hang nach unten zu\n\ +rutschen.\n\ +Betätigst Du den [Z]-Knopf\n\ +während eines Sprungs,\n\ +führst Du eine\n\ +Stampfattacke aus.\n\ +Du machst einen\n\ +Rückwärtssalto, wenn\n\ +Du stehend den [Z]-Knopf\n\ +drückst und springst.\n\ +Es gibt weitere Varianten\n\ +zu entdecken. Nimm Dir\n\ +Zeit und versuche, andere\n\ +Kombinationen zu finden!")) + +DEFINE_DIALOG(DIALOG_051, 1, 5, 30, 200, _("\ +Du kannst auf Bäume und\n\ +Stangen klettern, wenn\n\ +Du gegen sie springst und\n\ +den Analog-Stick nach\n\ +oben drückst.\n\ +Mit dem [A]-Knopf kannst\n\ +Du nach HINTEN wieder\n\ +abspringen. Du kannst\n\ +sogar auf der Spitze\n\ +einen Handstand machen.\n\ +Springst Du aus dem\n\ +Handstand von einem\n\ +Objekt ab, machst Du\n\ +einen unglaublich hohen\n\ +Sprung.")) + +DEFINE_DIALOG(DIALOG_052, 1, 5, 30, 200, _("\ +Du machst einen\n\ +Rückwärtssalto, wenn\n\ +Du stehend den [Z]-Knopf\n\ +gedrückt hältst und dann\n\ +den [A]-Knopf betätigst.\n\ +Seitwärtssaltos führst\n\ +Du aus, indem Du den\n\ +Analog-Stick entgegen\n\ +Deiner Laufrichtung\n\ +bewegst und springst.")) + +DEFINE_DIALOG(DIALOG_053, 1, 5, 30, 200, _("\ +Von Zeit zu Zeit erscheint\n\ +eine farbige Zahl, wenn\n\ +Du Kisten öffnest, Ringe\n\ +durchquerst oder geheime\n\ +Orte erreichst.\n\ +Gelingt es Dir, alle fünf\n\ +farbigen Zahlen dieses\n\ +Bereichs zu finden,\n\ +erhältst Du zur Belohnung\n\ +einen Power-Stern.")) + +DEFINE_DIALOG(DIALOG_054, 1, 6, 30, 200, _("\ +Herzlich willkommen\n\ +auf der Schlidderbahn!\n\ +Drücke den Analog-Stick\n\ +nach vorne, um zu\n\ +beschleunigen und nach\n\ +hinten, um zu bremsen.")) + +DEFINE_DIALOG(DIALOG_055, 1, 5, 30, 200, _("\ +Hihi, hallo Mario!\n\ +Du siehst aus, als\n\ +wolltest Du mich gerade\n\ +fragen, ob wir ein\n\ +Wettrennen machen sollten.\n\ +Und ich sage: Na klar! Es\n\ +ist zwar noch niemandem\n\ +gelungen, mich, den\n\ +Schlidderkönig aller\n\ +Klassen, zu besiegen.\n\ +Aber Du kannst es ja\n\ +einmal versuchen.\n\ +Wie steht's?\n\ +\n\ +//Na klar!/ Später!")) + +DEFINE_DIALOG(DIALOG_056, 1, 6, 30, 200, _("\ +Du...Du...ha...hast\n\ +mich geschlagen! Das kann\n\ +doch nicht wahr sein!\n\ +Du bist der größte\n\ +Schliddermeister, den\n\ +ich kenne!\n\ +Eine Goldmedaille kann\n\ +ich Dir zwar nicht\n\ +überreichen,\n\ +aber nimm diesen\n\ +Power-Stern!\n\ +Du hast ihn verdient.")) + +DEFINE_DIALOG(DIALOG_057, 1, 4, 30, 200, _("\ +Hey Kleiner! Hast Du mein\n\ +Baby gesehen? Es ist das\n\ +schönste und süßeste\n\ +Baby der ganzen Welt!\n\ +Vor kurzem war es noch\n\ +bei mir, aber ich habe\n\ +keine Ahnung, wohin es\n\ +sich verdrückt hat.\n\ +Wenn ich doch nur wüßte,\n\ +wo ich die Suche beginnen\n\ +soll...Oh, was für eine\n\ +fürchterliche Tragödie!!!")) + +DEFINE_DIALOG(DIALOG_058, 1, 5, 30, 200, _("\ +Das ist doch...\n\ +Mensch, Mario, Du hast\n\ +mein Baby gefunden!!!\n\ +Wie kann ich Dir dafür\n\ +danken?\n\ +Oh, ich weiß: Ich fand\n\ +neulich diesen Stern\n\ +hier. Nimm ihn als\n\ +Zeichen meiner ewigen\n\ +Dankbarkeit!")) + +DEFINE_DIALOG(DIALOG_059, 1, 6, 30, 200, _("\ +Was soll ich mit diesem\n\ +Früchtchen? Das ist nicht\n\ +mein Baby! Mein Baby hat\n\ +ein weiche, zarte Stimme,\n\ +und es sieht mir natürlich\n\ +ähnlich!")) + +DEFINE_DIALOG(DIALOG_060, 1, 4, 30, 200, _("\ +Achtung, Achtung!\n\ +Bevor Du Dich in die\n\ +Fluten stürzt, solltest\n\ +Du Dir folgendes merken:\n\ +Bleibst Du zu lange unter\n\ +Wasser, könnte Dir die\n\ +Luft ausgehen. Achte auf\n\ +die Sauerstoffanzeige!\n\ +Schwimme zur Oberfläche\n\ +oder sammle Münzen und\n\ +Luftblasen, um wieder\n\ +Sauerstoff zu tanken.\n\ +Drücke den [A]-Knopf, um\n\ +zu schwimmen. Halte ihn\n\ +gedrückt, um mit den\n\ +Füßen zu paddeln.\n\ +Bewege beim Schwimmen\n\ +den Analog-Stick nach\n\ +oben, um zu tauchen und\n\ +nach unten, um zu steigen.\n\ +Springe aus dem Wasser,\n\ +indem Du an einer Kante\n\ +den Analog-Stick abwärts\n\ +drückst und springst.\n\ +Achte jedoch darauf,\n\ +daß Du den Analog-Stick\n\ +während des Sprungs\n\ +losläßt!")) + +DEFINE_DIALOG(DIALOG_061, 1, 5, 30, 200, _("\ +Wer baden möchte, sollte\n\ +sich besser in wärmere\n\ +Gefilde begeben, denn\n\ +hier ist es auf jeden\n\ +Fall zu kalt!!!")) + +DEFINE_DIALOG(DIALOG_062, 1, 4, 30, 200, _("\ +In den grünen Blöcken\n\ +im Labyrinth findest\n\ +Du die phänomenalen\n\ +Titanenkappen.\n\ +Trägst Du diese Kappen,\n\ +bist Du unverwundbar\n\ +und brauchst kurze Zeit\n\ +nicht zu atmen.\n\ +Das einzige Problem ist:\n\ +Du kannst nicht\n\ +schwimmen, während Du\n\ +sie trägst!")) + +DEFINE_DIALOG(DIALOG_063, 1, 3, 30, 200, _("\ +In den blauen Blöcken\n\ +befinden sich die\n\ +fantastischen Tarnkappen.\n\ +Damit kannst Du durch\n\ +bestimmte Mauern gehen\n\ +oder Geister erschrecken.")) + +DEFINE_DIALOG(DIALOG_064, 1, 3, 30, 200, _("\ +In den roten Blöcken\n\ +kannst Du die berühmten\n\ +Federkappen finden.\n\ +Mit einem Dreisprung\n\ +kannst Du starten und\n\ +in die Lüfte steigen.\n\ +Drücke den Analog-Stick\n\ +nach unten, um im Flug\n\ +an Höhe zu gewinnen.\n\ +Drücke den Analog-Stick\n\ +nach oben, um im Flug\n\ +an Höhe zu verlieren.\n\ +Betätige den [Z]-Knopf,\n\ +um den Flug zu beenden\n\ +und sicher zu landen.")) + +DEFINE_DIALOG(DIALOG_065, 1, 5, 30, 200, _("\ +Schwimmen für Anfänger!\n\ +Drücke den [A]-Knopf für\n\ +einen Schwimmzug. Bei\n\ +richtigem Timing kannst\n\ +Du sehr schnell schwimmen.\n\ +Halte den [A]-Knopf\n\ +gedrückt, um mit den\n\ +Füßen zu paddeln. Mit\n\ +dieser Technik bewegst Du\n\ +Dich langsamer im Wasser.\n\ +Drücke beim Schwimmen\n\ +den Analog-Stick\n\ +nach oben, um zu\n\ +tauchen und nach unten,\n\ +um zu steigen.\n\ +Du kannst aus dem Wasser\n\ +springen, wenn Du an der\n\ +Wasseroberfläche den\n\ +Analog-Stick nach unten\n\ +drückst und springst.\n\ +Beachte: Kein Mensch\n\ +kann unter Wasser atmen!\n\ +Kehre zurück an die\n\ +Oberfläche, wenn Deine\n\ +Luft zur Neige geht.\n\ +Ach ja: Türen, die sich\n\ +unter Wasser befinden,\n\ +kannst Du nicht öffnen.\n\ +Aber vielleicht findest\n\ +Du ja einen Abfluß!!!")) + +DEFINE_DIALOG(DIALOG_066, 1, 5, 30, 200, _("\ +Hallo Mario, ich bin's,\n\ +Peach! Paß auf Dich auf!\n\ +Bowser wird versuchen,\n\ +Dich mit seinem Feueratem\n\ +zu versengen.\n\ +Renne hinter ihn!\n\ +Versuche mit dem\n\ +[B]-Knopf Bowsers\n\ +Schwanz zu packen und\n\ +ihn herumzuschleudern.\n\ +Bewege den Analog-Stick\n\ +im Kreis, um Dich zu\n\ +drehen. Je schneller\n\ +Du Dich drehst, desto\n\ +weiter wird Dein Wurf.\n\ +Benutze die [C]-Knöpfe, um\n\ +Dich zu orientieren. Du\n\ +mußt Bowser gegen eine\n\ +der Bomben am Rand der\n\ +Plattform werfen.\n\ +Drücke den [B]-Knopf, um\n\ +Bowser loszulassen und\n\ +in Richtung der Bombe\n\ +zu schleudern.\n\ +Viel Glück!!!")) + +DEFINE_DIALOG(DIALOG_067, 1, 5, 30, 200, _("\ +Tja, Mario, Pech gehabt!\n\ +Die Prinzessin ist nicht\n\ +hier und wird es auch so\n\ +bald nicht sein...\n\ +Hua...Hua...Hua...Hua!\n\ +Es wird Dir niemals\n\ +gelingen, mich von hinten\n\ +zu packen und zu werfen.\n\ +Da müßte schon ein wahrer\n\ +Held kommen, keine Wurst!\n\ +Vielleicht gehst Du besser\n\ +wieder nach Hause und\n\ +reparierst weiter kaputte\n\ +Rohre, als Dich mit mir\n\ +zu messen!!!")) + +DEFINE_DIALOG(DIALOG_068, 1, 5, 30, 200, _("\ +Du bist im Land des\n\ +flüssigen Feuers. Wenn\n\ +Du vom Weg abkommst,\n\ +bewahre Ruhe, denn Du\n\ +verlierst nicht die\n\ +gesamte Energie auf\n\ +einmal. Außerdem kannst\n\ +Du den qualmenden Mario\n\ +während seines Höhenflugs\n\ +immer noch steuern!")) + +DEFINE_DIALOG(DIALOG_069, 1, 4, 30, 200, _("\ +Während Deiner Abenteuer\n\ +in den Wandbildern stößt\n\ +Du an den Rändern auf\n\ +unsichtbare Mauern.\n\ +Triffst Du fliegend auf\n\ +eine solche Mauer, prallst\n\ +Du ab. Du kannst aber den\n\ +Flug fortsetzen.")) + +DEFINE_DIALOG(DIALOG_070, 1, 4, 30, 200, _("\ +Du kannst die Wandbilder\n\ +jederzeit verlassen, um\n\ +in die Schlosshalle\n\ +zurückzukehren.\n\ +Bleibe stehen, drücke\n\ +START, um das Spiel\n\ +zu pausieren, und wähle\n\ +„Kurs verlassen』!\n\ +Du mußt nicht alle Sterne\n\ +einer Welt finden, um\n\ +den nächsten Abschnitt\n\ +betreten zu können.\n\ +Hebe Dir die schweren\n\ +Brocken für später auf,\n\ +wenn Du Deine Techniken\n\ +perfektioniert hast.\n\ +Findest Du einen Stern,\n\ +erhältst Du einen Hinweis,\n\ +wo sich der nächste\n\ +Fundort befindet.\n\ +Aber Du mußt die Sterne\n\ +in keiner bestimmten\n\ +Reihenfolge finden.\n\ +Die Wahl liegt bei Dir!")) + +DEFINE_DIALOG(DIALOG_071, 1, 4, 30, 200, _("\ +Achtung! Hüte Dich vor\n\ +den Nebelschwaden!\n\ +Sie enthalten keinen\n\ +Sauerstoff!\n\ +Benutze die erhöhten\n\ +Plattformen, um Dich\n\ +auszuruhen und einen\n\ +sicheren Weg zu suchen.\n\ +Auf der Karte sind\n\ +Unterstände als Kreise\n\ +dargestellt, den Eingang\n\ +erkennst Du am Pfeil!")) + +DEFINE_DIALOG(DIALOG_072, 1, 5, 30, 200, _("\ +Hier oben weht eine steife\n\ +Brise. Solltest Du Deine\n\ +Mütze verlieren, kannst\n\ +Du sie auf dem Weg zum\n\ +Gipfel wiederfinden.")) + +DEFINE_DIALOG(DIALOG_073, 1, 5, 95, 200, _("\ +Ahoi, Landratte! Es ist\n\ +doch wohl logisch, daß\n\ +sich hier unten ein\n\ +sagenhafter Schatz\n\ +befindet!\n\ +Zur Bergung mußt Du die\n\ +Kisten in der richtigen\n\ +Reihenfolge öffnen, klar?\n\ +Aber ich sage nicht, wie\n\ +sie lautet, hehehe!")) + +DEFINE_DIALOG(DIALOG_074, 1, 5, 30, 200, _("\ +Siehst Du den Block\n\ +nebenan? Manchmal kannst\n\ +Du im Innern dieser\n\ +Quader interessante\n\ +Entdeckungen machen.\n\ +Zerstöre sie mit einem\n\ +gezielten Schlag oder\n\ +einer Stampfattacke,\n\ +damit sie ihr Geheimnis\n\ +preisgeben!")) + +DEFINE_DIALOG(DIALOG_075, 1, 5, 30, 200, _("\ +Hilfe, Mario! Mein Schloss\n\ +befindet sich in großer\n\ +Gefahr. Ich weiß, daß der\n\ +widerliche Bowser seine\n\ +Hände im Spiel hat.\n\ +Er hat alle Türen des\n\ +Schlosses versiegelt. Nur\n\ +die magische Kraft der\n\ +Power-Sterne kann diese\n\ +Siegel brechen.\n\ +Aber es gibt einige\n\ +Geheimwege im Innern, die\n\ +Bowser nicht entdeckt\n\ +hat. Einer davon befindet\n\ +sich in diesem Raum.\n\ +Suche den Eingang und\n\ +finde den Power-Stern,\n\ +der sich darin verbirgt.\n\ +Hilf uns, Du bist unsere\n\ +einzige Hoffnung!\n\ +Fast alle Power-Sterne\n\ +kannst Du in den\n\ +Wandgemälden finden,\n\ +manche jedoch an\n\ +geheimen Orten.\n\ +Sammle soviele Sterne\n\ +wie möglich, um Bowsers\n\ +Plan zu vereiteln.\n\ +Wir zählen auf Dich!\n\ +Viel Glück!!!")) + +DEFINE_DIALOG(DIALOG_076, 1, 4, 30, 200, _("\ +Hallo Mario! Du hast\n\ +bereits einiges zur\n\ +Rettung des Schlosses\n\ +getan.\n\ +Aber Du mußt noch\n\ +viele Geheimnisse\n\ +der Wandgemälde\n\ +lüften.\n\ +Manchmal spielen Dir\n\ +Deine Augen einen Streich.\n\ +Die Realität verschwindet\n\ +hinter Fassaden.\n\ +Aber Du kannst das\n\ +Trugbild durchdringen,\n\ +wenn Du es im Spiegel\n\ +betrachtest!\n\ +Wasser ist ein flüssiges\n\ +Element. Die Magie des\n\ +Wandgemäldes beeinflußt\n\ +sein Verhalten.\n\ +Wähle verschiedene Wege,\n\ +um die versunkene Stadt\n\ +durch das Gemälde zu\n\ +betreten.\n\ +Ach ja, fast hätte ich es\n\ +vergessen: Hier habe ich\n\ +etwas für Dich! Es hilft\n\ +Dir, Bowser zu besiegen.")) + +DEFINE_DIALOG(DIALOG_077, 1, 4, 150, 200, _("\ +Einst konnte man die Tür\n\ +öffnen. Zu dieser Zeit\n\ +waren die Säulen aber\n\ +niedriger!")) + +DEFINE_DIALOG(DIALOG_078, 1, 5, 30, 200, _("\ +Diesen Schalter kannst Du\n\ +durch eine Stampfattacke\n\ +auslösen. Er läßt einige\n\ +blaue Münzen erscheinen,\n\ +die je fünf gelbe\n\ +Münzen wert sind.\n\ +Allerdings mußt Du Dich\n\ +beeilen, denn die blauen\n\ +Münzen erscheinen nur\n\ +für kurze Zeit.")) + +DEFINE_DIALOG(DIALOG_079, 1, 4, 30, 200, _("\ +Auuuuuaaa! Hey, laß mich\n\ +los! Das war doch nur\n\ +Spaß! Du hast wohl keinen\n\ +Humor, was?\n\ +Okay, ich mache Dir einen\n\ +Vorschlag: Wenn Du mich\n\ +losläßt, habe ich eine\n\ +Überraschung für Dich!\n\ +Na, wie sieht's aus?\n\ +\n\ +//Klar!///Vergiß es!")) + +DEFINE_DIALOG(DIALOG_080, 1, 3, 30, 200, _("\ +Hey Baby, komm schon!\n\ +Wo bleibst Du denn so\n\ +lange?")) + +DEFINE_DIALOG(DIALOG_081, 1, 5, 30, 200, _("\ +Des Rätsels Lösung ist der\n\ +Wasserstand. Tief unten\n\ +erwartet Dich die Stadt,\n\ +nachdem Du den Pegel\n\ +hast sinken lassen.")) + +DEFINE_DIALOG(DIALOG_082, 1, 4, 30, 200, _("\ +Achte auf Deine Mütze!\n\ +Solltest Du sie verlieren,\n\ +wirst Du durch Treffer\n\ +schwerer verletzt.\n\ +Solltest Du sie einmal\n\ +verlieren, findest Du die\n\ +Mütze in dem Gemälde, in\n\ +dem Du sie verloren hast.\n\ +Die Prinzessin wird\n\ +noch immer von Bowser\n\ +gefangen gehalten. Rette\n\ +sie so schnell wie möglich.\n\ +Bowsers Schergen belagern\n\ +seit langer Zeit die\n\ +Welten der Gemälde und\n\ +Wände des Schlosses.\n\ +Aber es ist mir gelungen,\n\ +ihnen diesen Stern\n\ +abzujagen.\n\ +Viel Glück!")) + +DEFINE_DIALOG(DIALOG_083, 1, 6, 30, 200, _("\ +Betrittst Du die Uhr zu\n\ +verschiedenen Zeiten,\n\ +werden Dir weitere\n\ +Geheimnisse offenbart.\n\ +Vielleicht hilft Dir auch\n\ +dieser Stern!")) + +DEFINE_DIALOG(DIALOG_084, 1, 5, 30, 200, _("\ +Hey, Du Rüpel, ich\n\ +bekomme ja blaue Flecken.\n\ +Laß mich sofort los!\n\ +Bowser hat mir diesen\n\ +Stern geschenkt.\n\ +Er wäre ziemlich böse,\n\ +wenn er das wüßte, aber\n\ +ich bin in Eile. Also\n\ +nimm ihn und laß mich\n\ +runter!")) + +DEFINE_DIALOG(DIALOG_085, 1, 4, 30, 200, _("\ +Im Horrorhaus solltest Du\n\ +den Mund geschlossen\n\ +halten, damit Deine Zähne\n\ +nicht vor Angst klappern!")) + +DEFINE_DIALOG(DIALOG_086, 1, 3, 40, 200, _("\ +Wenn Du im Kreis rennst,\n\ +werden manche Gegner\n\ +große Augen machen!")) + +DEFINE_DIALOG(DIALOG_087, 1, 3, 30, 200, _("\ +Der Weihnachtsmann ist\n\ +nicht der einzige, der\n\ +in Schornsteine klettert!")) + +DEFINE_DIALOG(DIALOG_088, 1, 2, 30, 200, _("\ +Benutze die Stange, um\n\ +nach unten zu gelangen!")) + +DEFINE_DIALOG(DIALOG_089, 1, 4, 95, 200, _("\ +Auf beiden Wegen lauern\n\ +Gefahren. Links benötigst\n\ +Du den Weitsprung, um\n\ +weiterzukommen.\n\ +Rechts: Arbeitsplattform\n\ +////Nebellabyrinth\n\ +Links:/Schwarzes Loch\n\ +////Höhlensee")) + +DEFINE_DIALOG(DIALOG_090, 1, 5, 30, 200, _("\ +Hua, hua, hua, ich wußte,\n\ +daß Du mir in die Falle\n\ +gehen würdest. Du solltest\n\ +öfter auf Deine ulkigen\n\ +Füße schauen!")) + +DEFINE_DIALOG(DIALOG_091, 1, 3, 30, 200, _("\ +Achtung, starke Böen!\n\ +Aber es könnte auch eine\n\ +aufregende Reise werden!")) + +DEFINE_DIALOG(DIALOG_092, 1, 4, 30, 200, _("\ +Was willst Du denn schon\n\ +wieder? Du bist ja\n\ +lästiger als ein Schwarm\n\ +Stubenfliegen.\n\ +Gerade jetzt, als mir\n\ +die ganze Sache so viel\n\ +Spaß machte! Aber, wenn\n\ +Du schon mal hier bist:\n\ +Gib mir die Power-Sterne\n\ +zurück! Meine Truppen\n\ +können sie besser\n\ +gebrauchen als Du.")) + +DEFINE_DIALOG(DIALOG_093, 1, 4, 30, 200, _("\ +Mario, wie schön Dich zu\n\ +sehen! Ich dachte gerade\n\ +an eine Grillparty - schon\n\ +bist Du da.\n\ +Jetzt brauche ich mir\n\ +wenigstens keine Gedanken\n\ +zu machen, was ich grille:\n\ +Nämlich Dich!\n\ +Dann gehört die Prinzessin\n\ +endgültig mir und ich bin\n\ +auf ewig der Herrscher\n\ +des Schlosses!!!")) + +DEFINE_DIALOG(DIALOG_094, 1, 4, 30, 200, _("\ +Erinnerst Du Dich noch an\n\ +den Weitsprung? Renne,\n\ +drücke den [Z]-Knopf und\n\ +dann den [A]-Knopf!")) + +DEFINE_DIALOG(DIALOG_095, 1, 3, 30, 200, _("\ +Wie man Schilder liest,\n\ +hast Du offensichtlich\n\ +bereits herausgefunden.\n\ +Auf die gleiche Weise\n\ +kannst Du mit anderen\n\ +sprechen.")) + +DEFINE_DIALOG(DIALOG_096, 1, 4, 30, 200, _("\ +Der Weg zur Burg ist\n\ +sehr schmal! Selbst\n\ +Wagemutige sollten sich\n\ +langsam bewegen.\n\ +Außerdem wecken leise\n\ +Schritte niemanden, der\n\ +schläft - was Dein\n\ +Vorteil sein könnte!")) + +DEFINE_DIALOG(DIALOG_097, 1, 6, 30, 200, _("\ +Sei nicht schüchtern,\n\ +sondern wehre Dich,\n\ +wenn jemand versucht,\n\ +Dich von einer Plattform\n\ +zu schubsen. Sonst steigt\n\ +die Temperatur!")) + +DEFINE_DIALOG(DIALOG_098, 1, 1, 95, 200, _("\ +Komm nur näher, hehehe!")) + +DEFINE_DIALOG(DIALOG_099, 1, 3, 95, 200, _("\ +")) + +DEFINE_DIALOG(DIALOG_100, 1, 2, 95, 200, _("\ +Jippiiiiieee, ich hab' sie!\n\ +Jetzt gehört sie mir!!!")) + +DEFINE_DIALOG(DIALOG_101, 1, 5, 95, 200, _("\ +Hgggnnnhhh! Laß...mich...\n\ +los!!! Diese Mütze? Na\n\ +gut, ich gebe sie Dir,\n\ +obwohl sie mir besser\n\ +steht als Dir!")) + +DEFINE_DIALOG(DIALOG_102, 1, 5, 30, 200, _("\ +Hey, pssst, paß mal auf:\n\ +Die Geister sind sehr\n\ +schüchtern. Siehst Du\n\ +ihnen in die Augen,\n\ +verschwinden sie.\n\ +Drehst Du ihnen allerdings\n\ +den Rücken zu, werden\n\ +sie wieder sichtbar.\n\ +Attackiere sie von hinten,\n\ +um sie zu besiegen.")) + +DEFINE_DIALOG(DIALOG_103, 1, 4, 95, 200, _("\ +Die Pyramide ist von vier\n\ +Säulen umgeben. Erklimme\n\ +die Spitzen der Säulen, um\n\ +das Geheimnis zu lüften.")) + +DEFINE_DIALOG(DIALOG_104, 1, 4, 30, 200, _("\ +Der Schattenstern vor Dir\n\ +wird real, wenn Du die\n\ +acht roten Münzen dieser\n\ +Welt findest.")) + +DEFINE_DIALOG(DIALOG_105, 1, 5, 95, 200, _("\ +Bist Du bereit? Dann rein\n\ +mit Dir in die Kanone! Du\n\ +kannst mir ihrer Hilfe\n\ +die schwebende Insel\n\ +erreichen!\n\ +Benutze den Analog-Stick\n\ +zum Zielen und feuere die\n\ +Kanone mit dem [A]-Knopf\n\ +ab. Akrobaten bevorzugen\n\ +Bäume zur Landung!")) + +DEFINE_DIALOG(DIALOG_106, 1, 2, 95, 200, _("\ +Bist Du bereit? Dann rein\n\ +mit Dir in die Kanone!")) + +DEFINE_DIALOG(DIALOG_107, 1, 4, 95, 200, _("\ +Das werde ich meinem\n\ +großen Bruder erzählen!\n\ +Dann kannst Du aber was\n\ +erleben...")) + +DEFINE_DIALOG(DIALOG_108, 1, 6, 95, 200, _("\ +Ha-Boooo! Du bist also\n\ +der Unruhestifter...\n\ +Jetzt wirst Du das büßen,\n\ +was Du mir und meinen\n\ +Geschwistern angetan\n\ +hast...")) + +DEFINE_DIALOG(DIALOG_109, 1, 4, 95, 200, _("\ +Schnief, schnüff! Mein\n\ +einst stattlicher Körper\n\ +hat sich in Wasser\n\ +aufgelöst.\n\ +Ich würde alles für einen\n\ +neuen Körper geben.\n\ +Vielleicht kannst Du mir\n\ +helfen, schluchz?")) + +DEFINE_DIALOG(DIALOG_110, 1, 5, 95, 200, _("\ +Oh Mann, ich fühle mich\n\ +so kopflos! Kennst Du\n\ +jemanden, der nach einem\n\ +Körper sucht? Unten?\n\ +Okay, dann los!")) + +DEFINE_DIALOG(DIALOG_111, 1, 3, 95, 200, _("\ +Boah, welch komfortables\n\ +Unterteil!\n\ +Ich bin so glücklich...\n\ +Hier, nimm den Stern.\n\ +Ich hoffe, er bringt\n\ +Dir Glück!")) + +DEFINE_DIALOG(DIALOG_112, 1, 4, 30, 200, _("\ +Sammle so viele Münzen,\n\ +wie Du finden kannst.\n\ +Sie geben Dir verlorene\n\ +Energie zurück.\n\ +Die Bestleistung jeder\n\ +Welt wird gespeichert.\n\ +Du kannst sie jederzeit\n\ +abrufen.\n\ +In einigen Welten wirst\n\ +Du transparenten Herzen\n\ +begegnen. Auch sie füllen\n\ +Deinen Power-Meter auf.\n\ +Je schneller Du das Herz\n\ +passierst, desto mehr\n\ +verlorene Energie wird\n\ +ersetzt.")) + +DEFINE_DIALOG(DIALOG_113, 1, 6, 30, 200, _("\ +In den roten, blauen und\n\ +grünen Blöcken befinden\n\ +sich verschiedene Mützen.\n\ +Du mußt die versteckten\n\ +Schalter finden, um die\n\ +Blöcke öffnen zu können.")) + +DEFINE_DIALOG(DIALOG_114, 1, 4, 95, 200, _("\ +Das gibt es doch gar\n\ +nicht! Was willst Du\n\ +Wicht hier in meinem\n\ +Reich?\n\ +Ich werde Dich lehren,\n\ +meine Befehle zu...\n\ +Oh, diese vermaledeiten\n\ +Rückenschmerzen...!")) + +DEFINE_DIALOG(DIALOG_115, 1, 4, 95, 200, _("\ +Unglaublich! Du hast mich\n\ +von meinen Kreuzschmerzen\n\ +befreit! Als Dank gebe\n\ +ich Dir diesen Stern!")) + +DEFINE_DIALOG(DIALOG_116, 1, 4, 95, 200, _("\ +Waaaaa...wie? Du hast\n\ +mich besiegt...\n\ +Ich verneige mein Haupt\n\ +vor Deiner Größe!\n\ +Aber Du mußt Dich\n\ +vorsehen!\n\ +Bowser wird nicht so\n\ +leicht zu besiegen sein.\n\ +Ich gebe Dir diesen\n\ +Stern, um Dir meine\n\ +Demut zu beweisen.\n\ +Trage ihn mit Stolz.\n\ +Wenn Du mich wiedersehen\n\ +willst, wähle den ersten\n\ +Stern des Kursmenüs an!\n\ +Bis dann...")) + +DEFINE_DIALOG(DIALOG_117, 1, 4, 95, 200, _("\ +Schritte? Grabräuber?\n\ +Wer wagt es, den ewigen\n\ +Frieden unseres Grabes\n\ +zu stören?\n\ +Jenem sei gewiß, daß\n\ +wir diesen Frevel mit\n\ +aller Härte bestrafen\n\ +werden!\n\ +Unser Zorn wird ihn\n\ +zermalmen und Ra stehe\n\ +ihm bei, daß es schnell\n\ +gehen wird...")) + +DEFINE_DIALOG(DIALOG_118, 1, 6, 95, 200, _("\ +Wir sind besiegt...\n\ +Du hast den Fluch des\n\ +Pharaos gebrochen.\n\ +Jetzt finden wir unseren\n\ +verdienten Frieden. Nimm\n\ +als Dank diesen Stern!")) + +DEFINE_DIALOG(DIALOG_119, 1, 6, 30, 200, _("\ +Grrrr, offensichtlich war\n\ +ich ein wenig unachtsam.\n\ +Aber ich habe noch immer\n\ +die Prinzessin und die\n\ +Power-Sterne in meiner\n\ +Gewalt!\n\ +Ich werde dafür sorgen,\n\ +daß Du keine weiteren\n\ +Sterne erlangen wirst.\n\ +Unser nächstes Treffen\n\ +wird einen anderen Sieger\n\ +haben...bestimmt!")) + +DEFINE_DIALOG(DIALOG_120, 1, 4, 30, 200, _("\ +Woaaaah, Du hast schon\n\ +wieder gewonnen.\n\ +Hat mich etwa die Kraft\n\ +der Sterne verlassen?\n\ +Betrachte diesen Kampf\n\ +als Unentschieden!\n\ +Das nächste Mal bin ich\n\ +besser vorbereitet!\n\ +Ich warte am höchsten\n\ +Punkt des Schlosses auf\n\ +Dich...dort werden wir\n\ +sehen, wer stärker ist!")) + +DEFINE_DIALOG(DIALOG_121, 1, 6, 30, 200, _("\ +Aaaaaarrrgghh!\n\ +Du...hast...gewonnen!\n\ +Ich wollte mit meinen\n\ +Truppen dieses Schloss\n\ +erobern, doch Du hast\n\ +meine Pläne vereitelt.\n\ +Der Frieden kehrt\n\ +zurück in die Welten\n\ +der Wandgemälde...leider!\n\ +Jetzt bleibt mir nichts\n\ +anderes mehr übrig, als\n\ +mein Ende abzuwarten...")) + +DEFINE_DIALOG(DIALOG_122, 1, 4, 30, 200, _("\ +Das Schwarze Loch\n\ +Rechts: Arbeitsplattform\n\ +////Nebellabyrinth\n\ +Links:/Höhlensee")) + +DEFINE_DIALOG(DIALOG_123, 1, 3, 30, 200, _("\ +Titanenhöhle\n\ +Rechts: Wasserfall\n\ +Links:/Grüner Schalter")) + +DEFINE_DIALOG(DIALOG_124, 1, 5, 30, 200, _("\ +Arbeitsplattform\n\ +Zur Beachtung:\n\ +Aktiviere einen der\n\ +Richtungspfeile, um die\n\ +Plattform zu bewegen.")) + +DEFINE_DIALOG(DIALOG_125, 1, 3, 30, 200, _("\ +Rechts ist der Ausgang\n\ +des Nebellabyrinths. Bitte\n\ +Eingang links benutzen!")) + +DEFINE_DIALOG(DIALOG_126, 1, 3, 30, 200, _("\ +Oben:/ Schwarzes Loch\n\ +Rechts: Arbeitsplattform\n\ +////Nebellabyrinth")) + +DEFINE_DIALOG(DIALOG_127, 1, 4, 30, 200, _("\ +Höhlensee\n\ +Rechts: Titanenhöhle\n\ +Links:/Verlassene Mine\n\ +////(Geschlossen!!!)\n\ +Hier lebt ein Seemonster.\n\ +Führe auf seinem Rücken\n\ +eine Stampfattacke aus,\n\ +damit es den Kopf senkt!")) + +DEFINE_DIALOG(DIALOG_128, 1, 4, 95, 200, _("\ +Hey, es ist gegen die\n\ +königlichen Regeln, den\n\ +Herrscher aus dem Ring\n\ +zu werfen!")) + +DEFINE_DIALOG(DIALOG_129, 1, 4, 30, 200, _("\ +Herzlich willkommen!\n\ +In diesem Kurs kannst\n\ +Du den blauen Schalter\n\ +entdecken.\n\ +Löst Du ihn aus, kannst\n\ +Du in allen blauen Blöcken\n\ +Tarnkappen finden, die\n\ +Dich unsichtbar machen!\n\ +Auf diese Weise kannst Du\n\ +durch bestimmte Wände\n\ +gehen und Gegnern\n\ +ungesehen ausweichen.")) + +DEFINE_DIALOG(DIALOG_130, 1, 4, 30, 200, _("\ +Herzlich willkommen!\n\ +In diesem Kurs kannst\n\ +Du den grünen Schalter\n\ +entdecken.\n\ +Löst Du ihn aus, kannst\n\ +Du in allen grünen Blöcken\n\ +Titanenkappen finden, die\n\ +Dich unbesiegbar machen.\n\ +Bist Du mit diesen Mützen\n\ +ausgerüstet, kannst Du\n\ +unter Wasser laufen und\n\ +brauchst nicht zu atmen.")) + +DEFINE_DIALOG(DIALOG_131, 1, 4, 30, 200, _("\ +Herzlich willkommen!\n\ +In diesem Kurs kannst\n\ +Du den roten Schalter\n\ +entdecken.\n\ +Löst Du ihn aus, kannst\n\ +Du in allen roten Blöcken\n\ +Federkappen finden, mit\n\ +denen Du fliegen kannst.\n\ +Benutze den Dreisprung,\n\ +um den Flug zu starten.\n\ +Die Kontrolle funktioniert\n\ +wie bei einem Flugzeug.\n\ +Bewege den Analog-Stick\n\ +nach vorne, um zu sinken,\n\ +und nach hinten, um zu\n\ +steigen!")) + +DEFINE_DIALOG(DIALOG_132, 1, 3, 30, 200, _("\ +Tsetsetse...Mario!\n\ +Du versuchst doch nicht\n\ +etwa, mich zu betrügen?\n\ +Abkürzungen sind nicht\n\ +erlaubt.\n\ +Du bist disqualifiziert!")) + +DEFINE_DIALOG(DIALOG_133, 1, 5, 30, 200, _("\ +Ich freue mich, Dich zu\n\ +sehen. Die Prinzessin...\n\ +ich...und alle anderen\n\ +sind in den Wänden des\n\ +Schlosses gefangen.\n\ +Bowser hat die Sterne\n\ +entwendet und benutzt\n\ +sie, um seine eigenen\n\ +Welten in den Gemälden\n\ +zu erschaffen.\n\ +Du mußt die Power-Sterne\n\ +finden. Mit ihrer Hilfe\n\ +kannst Du Bowsers Siegel\n\ +an den Türen des Schlosses\n\ +brechen.\n\ +Im Erdgeschoß gibt es\n\ +vier Welten. Beginne in\n\ +der Welt der Bob-Ombs.\n\ +Das ist die einzige Tür,\n\ +die nicht versiegelt ist.\n\ +Hast Du acht Sterne\n\ +gesammelt, kannst Du die\n\ +Tür mit dem großen Stern\n\ +öffnen. Dahinter befindet\n\ +sich die Prinzessin!")) + +DEFINE_DIALOG(DIALOG_134, 1, 4, 30, 200, _("\ +Am Beginn jeder Welt\n\ +erhältst Du einen Hinweis,\n\ +wo der nächste Stern\n\ +zu finden ist.\n\ +Du kannst sie in beliebiger\n\ +Reihenfolge sammeln, aber\n\ +einige erscheinen nur unter\n\ +bestimmten Bedingungen.\n\ +Nachdem Du ein paar\n\ +Sterne gefunden hast,\n\ +kannst Du Dich in anderen\n\ +Welten umsehen.")) + +DEFINE_DIALOG(DIALOG_135, 1, 5, 30, 200, _("\ +Bowser hat sich die\n\ +Power-Sterne unter den\n\ +Nagel gerissen. In jeder\n\ +Welt hat er sechs Sterne\n\ +versteckt.\n\ +Manche der Sterne kannst\n\ +Du aber erst finden, wenn\n\ +Du die farbigen Schalter\n\ +in den Schalterpalästen\n\ +ausgelöst hast.\n\ +Bereits gefundene Sterne\n\ +kannst Du zu Beginn jeder\n\ +Welt sehen. Triff besiegte\n\ +Gegner, indem Du erneut\n\ +ihren Stern anwählst.")) + +DEFINE_DIALOG(DIALOG_136, 1, 4, 30, 200, _("\ +Wow, Du hast bereits so\n\ +viele Sterne gefunden?\n\ +Ich bin sicher, das war\n\ +kein Kinderspiel!\n\ +Ich habe noch einige Tips,\n\ +die Dir bei der Suche nach\n\ +den Power-Sternen von\n\ +Nutzen sein könnten:\n\ +Sammle Münzen, um Deine\n\ +Energie aufzufüllen. Ihre\n\ +Farbe entscheidet, wieviel\n\ +Energie Du erhältst.\n\ +Gelbe Münzen geben eine,\n\ +rote Münzen zwei und\n\ +blaue Münzen sogar fünf\n\ +Energieeinheiten zurück.\n\ +Damit die blauen Münzen\n\ +sichtbar werden, mußt\n\ +Du ihre Schalter in den\n\ +Boden stampfen.\n\ +Halte Verletzungen gering,\n\ +indem Du bei Stürzen im\n\ +letzen Moment eine\n\ +Stampfattacke ausführst.")) + +DEFINE_DIALOG(DIALOG_137, 1, 5, 30, 200, _("\ +Vielen Dank! Du hast\n\ +schon sehr viele Sterne\n\ +gesammelt und Bowser in\n\ +ein höheres Stockwerk\n\ +verbannt.\n\ +Wußtest Du eigentlich,\n\ +daß Du in jeder Welt\n\ +einen geheimen Stern\n\ +erhältst, wenn Du\n\ +100 Münzen sammelst?")) + +DEFINE_DIALOG(DIALOG_138, 1, 4, 30, 200, _("\ +Unten:/Höhlensee\n\ +Links:/Schwarzes Loch\n\ +Rechts: Nebellabyrinth\n\ +////(Geschlossen!!!)")) + +DEFINE_DIALOG(DIALOG_139, 1, 4, 30, 200, _("\ +Automatische Plattform\n\ +Sobald Du diese Plattform\n\ +betrittst, setzt sie sich\n\ +in Bewegung.\n\ +Sie folgt einem\n\ +programmierten Kurs und\n\ +verschwindet automatisch,\n\ +wenn Du sie verläßt.")) + +DEFINE_DIALOG(DIALOG_140, 1, 6, 30, 200, _("\ +Arbeitsplattform\n\ +Rechts: Nebellabyrinth\n\ +////Eingang\n\ +Links:/Schwarzes Loch\n\ +////Aufzug 1\n\ +Pfeil:/Standort")) + +DEFINE_DIALOG(DIALOG_141, 1, 5, 150, 200, _("\ +Du hast einen der\n\ +gestohlenen Power-Sterne\n\ +gefunden.\n\ +Damit kannst Du einige\n\ +versiegelte Türen öffnen.\n\ +Versuch's mal im Zimmer\n\ +der Prinzessin im\n\ +1. Stock oder in\n\ +Wummps Festung im\n\ +Erdgeschoß der Vorhalle.\n\ +Halte Bowser auf und\n\ +rette uns und die\n\ +Power-Sterne.\n\ +Wir zählen auf Dich und\n\ +drücken Dir die Daumen.")) + +DEFINE_DIALOG(DIALOG_142, 1, 5, 150, 200, _("\ +Du hast drei magische\n\ +Power-Sterne gesammelt.\n\ +Jetzt kannst Du jede Tür\n\ +öffnen, deren Siegel eine\n\ +Drei trägt.\n\ +Du kannst die Türen so oft\n\ +passieren, wie Du willst.\n\ +Aber paß auf: In höheren\n\ +Stockwerken werden die\n\ +Gegner viel stärker!")) + +DEFINE_DIALOG(DIALOG_143, 1, 6, 150, 200, _("\ +Du hast acht Sterne\n\ +gesammelt. Jetzt kannst\n\ +Du die Tür mit dem\n\ +großen Stern öffnen.\n\ +Die Prinzessin hält sich\n\ +dahinter auf!")) + +DEFINE_DIALOG(DIALOG_144, 1, 5, 150, 200, _("\ +Du hast 30 Power-Sterne\n\ +gesammelt. Jetzt kannst\n\ +Du die Tür mit dem\n\ +großen Stern öffnen. Aber\n\ +warte noch einen Moment!\n\ +Hast Du die beiden Säulen\n\ +in den Boden gestampft?\n\ +Und Du hast doch wohl\n\ +nicht Deine Mütze\n\ +verloren, oder?\n\ +Wenn ja, mußt Du den\n\ +Riesengeier mit einer\n\ +Stampfattacke besiegen!\n\ +Ach ja: Bowser hält sich\n\ +jetzt im Untergrund auf.")) + +DEFINE_DIALOG(DIALOG_145, 1, 4, 150, 200, _("\ +Du hast 50 Power-Sterne\n\ +gesammelt. Jetzt kannst\n\ +Du die Tür mit dem großen\n\ +Stern im 3. Stock öffnen.\n\ +Hast Du bereits alle\n\ +Schalterpaläste gefunden?\n\ +Diese besonderen Mützen\n\ +sind sehr nützlich.")) + +DEFINE_DIALOG(DIALOG_146, 1, 6, 150, 200, _("\ +Du hast 70 Power-Sterne\n\ +gesammelt. Jetzt kannst\n\ +Du das Geheimnis der\n\ +endlosen Treppe lüften.\n\ +Begib Dich zum finalen\n\ +Duell mit Bowser!")) + +DEFINE_DIALOG(DIALOG_147, 1, 4, 30, 200, _("\ +Bevor Du weitergehst,\n\ +solltest Du nach den\n\ +versteckten Schaltern\n\ +suchen.\n\ +Hast Du sie gefunden,\n\ +kannst Du in allen\n\ +bunten Blöcken besondere\n\ +Mützen finden.\n\ +In roten Blöcken findest\n\ +Du Federkappen, in\n\ +grünen Titanenkappen\n\ +und in blauen Tarnkappen.\n\ +Allerdings mußt Du bereits\n\ +einige Sterne besitzen, um\n\ +die Schalterpaläste finden\n\ +zu können!")) + +DEFINE_DIALOG(DIALOG_148, 1, 4, 30, 200, _("\ +Achtung, Achtung!\n\ +Versuche bloß nicht, den\n\ +Berg mit dem Dreisprung\n\ +zu erreichen!\n\ +Außerdem ist das Wasser\n\ +sehr kalt - Deine Fitness\n\ +könnte bei einem Bad\n\ +großen Schaden nehmen!")) + +DEFINE_DIALOG(DIALOG_149, 1, 5, 30, 200, _("\ +Willkommen auf der\n\ +Rutschbahn der Prinzessin.\n\ +Hier befindet sich ein\n\ +Stern, den Bowser nicht\n\ +entdeckt hat.\n\ +Drücke den Analog-Stick\n\ +nach vorne, um zu\n\ +beschleunigen.\n\ +Wenn Du sehr schnell bist,\n\ +erhältst Du den Stern.")) + +DEFINE_DIALOG(DIALOG_150, 1, 5, 30, 200, _("\ +Aaaaaah! Sieh Dir diese\n\ +Schweinerei an. Du hast\n\ +meine Wohnung überflutet.\n\ +Meine ganze Einrichtung\n\ +ist ruiniert!\n\ +Ich bin stinksauer! Alles\n\ +läuft schief, seit ich\n\ +diesen dämlichen Stern\n\ +gefunden habe. Ich...\n\ +Ich...werde...")) + +DEFINE_DIALOG(DIALOG_151, 1, 5, 30, 200, _("\ +Ich halte das nicht mehr\n\ +aus - zuerst überflutest\n\ +Du meine Wohnung und\n\ +dann hüpfst Du auch noch\n\ +auf mir herum!?\n\ +Mir reicht's! Ich werde\n\ +Dir richtiges Benehmen\n\ +beibringen! Du...Ich...\n\ +werde Dich...Ich werde\n\ +Dich lehren...")) + +DEFINE_DIALOG(DIALOG_152, 1, 4, 30, 200, _("\ +Ooooh, halt, halt! Ich\n\ +gebe auf. Hier, nimm\n\ +den Stern. Ich brauche\n\ +ihn nicht mehr.\n\ +Ich kann mir die Sterne\n\ +durch das Loch in der\n\ +Decke ansehen, wann\n\ +immer ich möchte.")) + +DEFINE_DIALOG(DIALOG_153, 1, 4, 30, 200, _("\ +Hey, wer ist da? Wer\n\ +meint, auf mir 'rumlaufen\n\ +zu müssen? Ein Eisfloh\n\ +oder eine Schneefliege?\n\ +Egal, was es ist, auf\n\ +jeden Fall stört es mich.\n\ +Aber mein Eisatem wird\n\ +mich davon befreien!")) + +DEFINE_DIALOG(DIALOG_154, 1, 6, 30, 200, _("\ +Paß gut auf Deine Mütze\n\ +auf - ohne sie bist Du\n\ +leicht verletzbar!\n\ +Wenn Du sie verloren hast,\n\ +findest Du sie in\n\ +derselben Welt wieder.")) + +DEFINE_DIALOG(DIALOG_155, 1, 3, 30, 200, _("\ +Hi, Mario! Ich erzähle\n\ +Dir einige Geheimnisse\n\ +des Schlosses:\n\ +Es heißt, daß der Spiegel\n\ +des Spiegelsaals magische\n\ +Fähigkeiten besitzt.\n\ +Er soll Dinge zeigen, die\n\ +Du mit bloßem Auge nicht\n\ +erkennen kannst.\n\ +Aber das ist bestimmt\n\ +Unfug und lediglich\n\ +dummer Aberglaube.\n\ +Bei der versunkenen\n\ +Stadt ist das schon\n\ +etwas anderes.\n\ +Du kannst den Pegel des\n\ +Wassers durch die Sprünge\n\ +ins Gemälde beeinflussen.\n\ +Am besten schaust Du Dir\n\ +die Wirkung direkt im\n\ +Gemälde an!")) + +DEFINE_DIALOG(DIALOG_156, 1, 4, 30, 200, _("\ +Diese Uhr ist wirklich\n\ +ungewöhnlich. Ihr Inneres\n\ +verändert sich im Laufe\n\ +der Zeit.")) + +DEFINE_DIALOG(DIALOG_157, 1, 5, 30, 200, _("\ +Achte auf den Treibsand!\n\ +Solltest Du einmal darin\n\ +versinken, findet Dein\n\ +Gemäldebesuch ein rasches\n\ +Ende.\n\ +Schwarze Löcher sind\n\ +bodenlose Fallen. Du wirst\n\ +das Gemälde neu betreten\n\ +müssen, wenn Du in eines\n\ +dieser Löcher hineinfällst.")) + +DEFINE_DIALOG(DIALOG_158, 1, 6, 30, 200, _("\ +Mit dem richtigen Timing\n\ +kannst Du sehr hoch\n\ +springen. Den Dreisprung\n\ +kannst Du ausführen, wenn\n\ +Du rennst und dreimal\n\ +hintereinander springst.\n\ +Wandsprünge sind eine\n\ +effektive Methode, um\n\ +hohe Stellen zu erreichen.\n\ +Springe an eine Wand.\n\ +Sobald Du sie berührst,\n\ +mußt Du erneut springen!")) + +DEFINE_DIALOG(DIALOG_159, 1, 4, 30, 200, _("\ +Gehst Du in die Hocke und\n\ +drückst den Sprungknopf,\n\ +kannst Du einen\n\ +Rückwärtssalto ausführen.\n\ +Du machst einen\n\ +Weitsprung, wenn Du im\n\ +Rennen den [Z]-Knopf\n\ +drückst und springst.")) + +DEFINE_DIALOG(DIALOG_160, 1, 6, 30, 200, _("\ +Drücke im Rennen den\n\ +[B]-Knopf, um einen\n\ +Hechtsprung zu machen.\n\ +Mit dem [A]- oder [B]-Knopf\n\ +kommt Mario auf die Füße\n\ +zurück.")) + +DEFINE_DIALOG(DIALOG_161, 1, 5, 30, 200, _("\ +Hey... Mario!!! Seit\n\ +unserem letzten Abenteuer\n\ +ist viel Zeit vergangen.\n\ +Ich freue mich, Dich\n\ +wiederzusehen.\n\ +Man erzählte mir, daß ich\n\ +Dich hier treffen könnte,\n\ +aber ich hatte die\n\ +Hoffnung schon fast\n\ +aufgegeben.\n\ +Ist es wahr? Du hast\n\ +Bowser besiegt und alle\n\ +gestohlenen Power-Sterne\n\ +zurückerobert?\n\ +Unglaublich!!!\n\ +Und die Prinzessin?\n\ +Du hast sie gerettet?\n\ +Cool! Aber ich wußte\n\ +natürlich, daß Du es\n\ +schaffen würdest.\n\ +Nun habe ich noch eine\n\ +ganz spezielle Nachricht\n\ +für Dich:\n\ +Danke, daß Du SUPER\n\ +MARIO 64 gespielt hast.\n\ +Du hast jetzt alle Sterne\n\ +gefunden und damit das\n\ +Spiel beendet. Aber wir\n\ +haben noch eine kleine\n\ +Überraschung für Dich!\n\ +Wir hoffen, sie wird Dir\n\ +gefallen, denn du kannst\n\ +das Spiel nochmals unter\n\ +veränderten Bedingungen\n\ +spielen. Viel Spaß!\n\ +Es könnte sein, daß Du\n\ +dabei neue Entdeckungen\n\ +machst, die Dir bis jetzt\n\ +verborgen geblieben sind.\n\ +Das Super Mario 64 Team")) + +DEFINE_DIALOG(DIALOG_162, 1, 4, 30, 200, _("\ +Nein, nein, nein! Nicht\n\ +Du schon wieder! Ich habe\n\ +jetzt wirklich keine Zeit,\n\ +über Sterne zu quatschen!\n\ +Hier, nimm ihn und laß\n\ +mich runter. Ich habe noch\n\ +wichtige Geschäfte zu\n\ +erledigen!")) + +DEFINE_DIALOG(DIALOG_163, 1, 5, 30, 200, _("\ +Ich glaub's nicht! Du hast\n\ +mich besiegt...wie konnte\n\ +das nur geschehen. Meine\n\ +Truppen, die Sterne...\n\ +alles umsonst!\n\ +Was??? Es gab insgesamt\n\ +120 Sterne im Schloss zu\n\ +finden? Dann habe ich\n\ +wohl einige bei meiner\n\ +Suche übersehen!\n\ +Jetzt kehrt der Frieden\n\ +zurück in die Welten der\n\ +Gemälde - was für ein\n\ +fürchterlicher Gedanke...\n\ +Aaaaaarrrgghhhh!!!\n\ +Das kann ich mir nicht\n\ +länger ansehen - ich\n\ +verschwinde. So long...\n\ +Bis zum nächsten Mal.\n\ +Ich komme wieder...")) + +DEFINE_DIALOG(DIALOG_164, 1, 6, 30, 200, _("\ +Hi! Wie geht's, Mario?\n\ +Ich bin zwar etwas außer\n\ +Übung, aber ein Rennen\n\ +gegen den Schlidderkönig\n\ +ist immer eine große\n\ +Herausforderung.\n\ +Also, Kumpel, wie steht's?\n\ +Sollen wir ein kleines\n\ +Match wagen?\n\ +\n\ +//Okay!///Später!")) + +DEFINE_DIALOG(DIALOG_165, 1, 4, 30, 200, _("\ +Sei vorsichtig, wenn Du\n\ +um den Pfahl herumrennst,\n\ +damit Dir nicht schlecht\n\ +wird!")) + +DEFINE_DIALOG(DIALOG_166, 1, 5, 30, 200, _("\ +Ich mache gerade einen\n\ +kleinen Waldlauf. Komm\n\ +doch später wieder\n\ +vorbei!\n\ +Dein Freund Koopa")) + +DEFINE_DIALOG(DIALOG_167, 1, 4, 30, 200, _("\ +Dort vorne ist das\n\ +Schloss der Prinzessin.\n\ +Sieh Dich zunächst hier\n\ +im Schlossgarten um.\n\ +Die Steuerung ist ganz\n\ +einfach:\n\ +Drücke den [A]-Knopf, um\n\ +zu springen.\n\ +Schläge kannst Du mit\n\ +dem [B]-Knopf ausführen.\n\ +Drückst Du den [Z]-Knopf,\n\ +duckt sich Mario.\n\ +Schilder kannst Du mit\n\ +dem [A]- oder [B]-Knopf\n\ +lesen, wenn Du direkt\n\ +davor stehst.")) + +DEFINE_DIALOG(DIALOG_168, 1, 4, 30, 200, _("\ +Bist Du immer noch hier?\n\ +Findest Du nicht, daß\n\ +Du bereits genug Schaden\n\ +angerichtet hast?")) + +DEFINE_DIALOG(DIALOG_169, 1, 4, 30, 200, _("\ +Dies ist die erste und\n\ +letzte Warnung:\n\ +Das Betreten dieser\n\ +Höhle ist verboten!!!\n\ +Wer sich hier ohne meine\n\ +Erlaubnis Zutritt\n\ +verschafft, handelt sich\n\ +eine Menge Ärger ein!!!")) diff --git a/text/define_text.inc.c b/text/define_text.inc.c new file mode 100644 index 0000000..1a90a4d --- /dev/null +++ b/text/define_text.inc.c @@ -0,0 +1,128 @@ +// == debug table == + +#ifndef VERSION_EU + +// (this wasn't translated for US, and was removed in EU) + +static const u8 Debug0[] = { + _("STAGE SELECT\n" + " つづける?\n" + " 1 マウンテン\n" + " 2 ファイア-バブル\n" + " 3 スノ-スライダ-\n" + " 4 ウォ-タ-ランド\n" + " クッパ1ごう\n" + " もどる") +}; + +static const u8 Debug1[] = { + _("PAUSE \n" + " つづける?\n" + " やめる ?") +}; + +static const struct DialogEntry debug_text_entry_0 = { + 1, 8, 30, 200, Debug0 +}; + +static const struct DialogEntry debug_text_entry_1 = { + 1, 3, 100, 150, Debug1 +}; + +const struct DialogEntry *const seg2_debug_text_table[] = { + &debug_text_entry_0, &debug_text_entry_1, NULL, +}; + +#endif + + +// == dialog == +// (defines en_dialog_table etc.) + +#define DEFINE_DIALOG(id, _1, _2, _3, _4, str) \ + static const u8 dialog_text_ ## id[] = { str }; + +#include "dialogs.h" + +#undef DEFINE_DIALOG +#define DEFINE_DIALOG(id, unused, linesPerBox, leftOffset, width, _) \ + static const struct DialogEntry dialog_entry_ ## id = { \ + unused, linesPerBox, leftOffset, width, dialog_text_ ## id \ + }; + +#include "dialogs.h" + +#undef DEFINE_DIALOG +#define DEFINE_DIALOG(id, _1, _2, _3, _4, _5) &dialog_entry_ ## id, + +const struct DialogEntry *const seg2_dialog_table[] = { +#include "dialogs.h" + NULL +}; + + +// == courses == +// (defines en_course_name_table etc.) + +#define COURSE_ACTS(id, name, a,b,c,d,e,f) \ + static const u8 course_name_ ## id[] = { name }; + +#define SECRET_STAR(id, name) \ + static const u8 course_name_ ## id[] = { name }; + +#define CASTLE_SECRET_STARS(str) \ + static const u8 course_name_castle_secret_stars[] = { str }; + +#define EXTRA_TEXT(id, str) + +#include "courses.h" + +#undef COURSE_ACTS +#undef SECRET_STAR +#undef CASTLE_SECRET_STARS + +#define COURSE_ACTS(id, name, a,b,c,d,e,f) course_name_ ## id, +#define SECRET_STAR(id, name) course_name_ ## id, +#define CASTLE_SECRET_STARS(str) course_name_castle_secret_stars, + +const u8 *const seg2_course_name_table[] = { +#include "courses.h" + NULL +}; + +#undef COURSE_ACTS +#undef SECRET_STAR +#undef CASTLE_SECRET_STARS + +// == acts == +// (defines en_act_name_table etc.) + +#define COURSE_ACTS(id, name, a,b,c,d,e,f) \ + static const u8 act_name_ ## id ## _1[] = { a }; \ + static const u8 act_name_ ## id ## _2[] = { b }; \ + static const u8 act_name_ ## id ## _3[] = { c }; \ + static const u8 act_name_ ## id ## _4[] = { d }; \ + static const u8 act_name_ ## id ## _5[] = { e }; \ + static const u8 act_name_ ## id ## _6[] = { f }; + +#define SECRET_STAR(id, name) +#define CASTLE_SECRET_STARS(str) + +#undef EXTRA_TEXT +#define EXTRA_TEXT(id, str) \ + static const u8 extra_text_ ## id[] = { str }; + +#include "courses.h" + +#undef COURSE_ACTS +#undef EXTRA_TEXT + +#define COURSE_ACTS(id, name, a,b,c,d,e,f) \ + act_name_ ## id ## _1, act_name_ ## id ## _2, act_name_ ## id ## _3, \ + act_name_ ## id ## _4, act_name_ ## id ## _5, act_name_ ## id ## _6, +#define EXTRA_TEXT(id, str) extra_text_ ## id, + +const u8 *const seg2_act_name_table[] = { +#include "courses.h" + NULL +}; diff --git a/text/eu/de/dialog.c.in b/text/eu/de/dialog.c.in deleted file mode 100644 index 583934c..0000000 --- a/text/eu/de/dialog.c.in +++ /dev/null @@ -1,3298 +0,0 @@ -// dialogs (EU, Deutsch) -// 0x19000000 -static const u8 Dialog000[] = { - _("Du bist inmitten der\n" - "Kampfarena gelandet.\n" - "Sei vorsichtig!\n" - "Die von Bowser erbeuteten\n" - "Power-Sterne findest Du\n" - "in den Wandgemälden.\n" - "Sprich zuerst mit Buddy,\n" - "der rosa Bombe.\n" - "Drücke [B], um Dich mit ihr\n" - "zu unterhalten. Sie und\n" - "ihre Kolleginnen werden\n" - "Dich sicher unterstützen.\n" - "Drücke [B], um Schilder\n" - "zu lesen. Mit [A] oder [B]\n" - "kannst Du die Nachrichten\n" - "umblättern. In anderen\n" - "Kursen triffst Du weitere\n" - "Freunde, die Dir helfen.") -}; - - -// 0x190001A0 -static const u8 Dialog001[] = { - _("Bewege Dich vorsichtig\n" - "durch das Gelände, damit\n" - "Du kein Opfer der\n" - "Wasserbomben wirst.\n" - "Die gegnerischen Bob-\n" - "Ombs lieben den Kampf\n" - "und erfinden immer neue\n" - "Angriffsvarianten.\n" - "Sie terrorisieren uns,\n" - "seit ihr König den\n" - "Power-Stern in die\n" - "Hände bekommen hat.\n" - "Hilf uns, den Stern\n" - "zurückzuholen! Gehe zur\n" - "Spitze des Berges, um\n" - "König Bob-Omb zu finden.\n" - "Kehre zu mir zurück,\n" - "wenn es Dir gelungen ist,\n" - "ihm den Stern abzujagen.\n" - "Viel Glück...") -}; - - -// 0x19000350 -static const u8 Dialog002[] = { - _("Hallo! Sei wachsam, Du\n" - "befindest Dich inmitten\n" - "einer Schlacht. Aber ich\n" - "gebe Dir ein paar Tips:\n" - "Überquere die beiden\n" - "Brücken und achte auf\n" - "herunterfallende\n" - "Wasserbomben.\n" - "König Bob-Omb ist\n" - "äußerst gefährlich.\n" - "Laß Dich nicht von\n" - "ihm erwischen.\n" - "Wir sind die wahren\n" - "Bob-Ombs und werden Dir\n" - "helfen. Sprich mit uns,\n" - "wann immer Du möchtest.") -}; - - -// 0x190004A0 -static const u8 Dialog003[] = { - _("Herzlichen Dank, Mario!\n" - "Du hast es diesem\n" - "Tyrannen gezeigt. Aber\n" - "Dein Kampf hat gerade\n" - "erst begonnen.\n" - "Andere Fieslinge besitzen\n" - "weitere Sterne, die Dir\n" - "die Wege zu neuen Welten\n" - "öffnen. Allerdings mußt\n" - "Du sie zuerst besiegen.\n" - "Meine Bob-Omb-Kollegen\n" - "wissen bereits Bescheid.\n" - "Sprich mit ihnen und\n" - "Du darfst bestimmt ihre\n" - "Kanonen benutzen.") -}; - - -// 0x190005F0 -static const u8 Dialog004[] = { - _("Wir sind friedliebende\n" - "Bob-Ombs und mögen keine\n" - "Kanonen.\n" - "Wir stellen sie Dir aber\n" - "gerne für Luftreisen\n" - "zur Verfügung.\n" - "Alle Kanonen dieses Kurses\n" - "sind für Dich präpariert.\n" - "Guten Flug!!!") -}; - - -// 0x190006AC -static const u8 Dialog005[] = { - _("Hey Mario! Stimmt es,\n" - "daß Du König Bob-Omb\n" - "während eines harten\n" - "Kampfes besiegt hast?\n" - "Du scheinst ganz schön\n" - "was auf dem Kasten zu\n" - "haben. Aber glaubst Du,\n" - "es reicht auch für mich?\n" - "Bist Du schnell genug, um\n" - "mich zu schlagen? Ich\n" - "würde sagen, Du siehst\n" - "nicht danach aus!\n" - "Wie wär's mit einem\n" - "Rennen zur Bergspitze,\n" - "um herauszufinden, wer\n" - "der Schnellere ist?\n" - "\n" - "Fertig...?\n" - "\n" - "//Los!/// Später!") -}; - - -// 0x19000830 -static const u8 Dialog006[] = { - _("Hey!!! Willst Du mich\n" - "auf den Arm nehmen?\n" - "Abkürzen gilt nicht!\n" - "Am besten versuchst Du's\n" - "später nochmal unter\n" - "fairen Bedingungen.") -}; - - -// 0x190008B4 -static const u8 Dialog007[] = { - _("Hmmmmpff...pffff...hach!\n" - "Boah! Du...hast...mich...\n" - "geschlagen! Das grenzt an\n" - "ein Wunder! Hier, Du hast\n" - "ihn Dir verdient!") -}; - - -// 0x19000930 -static const u8 Dialog008[] = { - _("BISSIGER KETTENHUND!\n" - "Nähere Dich ihm langsam,\n" - "und benutze die [C]-Knöpfe,\n" - "um den Blickwinkel zu\n" - "ändern. Gefährlich, oder?\n" - "Siehst Du die rote Münze\n" - "auf dem Pfahl?\n" - "Du erhältst einen Stern,\n" - "wenn Du acht dieser\n" - "Münzen sammelst.") -}; - - -// 0x19000A10 -static const u8 Dialog009[] = { - _("Lang, lang ist's her!\n" - "Du scheinst noch schneller\n" - "geworden zu sein. Hast Du\n" - "heimlich geübt oder\n" - "liegt's an den Sternen?\n" - "Meine letzte Niederlage\n" - "geht mir nicht aus dem\n" - "Kopf. Aber das ist meine\n" - "Hausstrecke. Wie wär's\n" - "mit einer Revanche?\n" - "Das Ziel liegt hinter\n" - "der Böen-Brücke.\n" - "Fertig?\n" - "\n" - "//Los!/// Später!") -}; - - -// 0x19000B3C -static const u8 Dialog010[] = { - _("Du hast den roten\n" - "Schalter aktiviert.\n" - "Ab jetzt kannst Du die\n" - "Federkappe einsetzen\n" - "und durch die Lüfte\n" - "fliegen. Jeder rote\n" - "Block beinhaltet eine\n" - "dieser Mützen.\n" - "Möchtest Du Deinen\n" - "Spielstand speichern?\n" - "\n" - "//Ja!////Nein!") -}; - - -// 0x19000C14 -static const u8 Dialog011[] = { - _("Du hast den grünen\n" - "Schalter aktiviert.\n" - "Ab jetzt kannst Du die\n" - "Titanenkappe einsetzen\n" - "und Unbesiegbarkeit\n" - "erlangen. Jeder grüne\n" - "Block beinhaltet eine\n" - "dieser Mützen.\n" - "Möchtest Du Deinen\n" - "Spielstand speichern?\n" - "\n" - "//Ja!////Nein!") -}; - - -// 0x19000CF4 -static const u8 Dialog012[] = { - _("Du hast den blauen\n" - "Schalter aktiviert.\n" - "Ab jetzt kannst Du die\n" - "Tarnkappe einsetzen\n" - "und Unsichtbarkeit\n" - "erlangen. Jeder blaue\n" - "Block beinhaltet eine\n" - "dieser Mützen.\n" - "Möchtest Du Deinen\n" - "Spielstand speichern?\n" - "\n" - "//Ja!////Nein!") -}; - - -// 0x19000DD0 -static const u8 Dialog013[] = { - _("Du hast 100 Münzen\n" - "eingesammelt. Der\n" - "Stern verleiht Dir\n" - "zusätzliche Kraft.\n" - "Spielstand speichern?\n" - "//Ja!////Nein!") -}; - - -// 0x19000E40 -static const u8 Dialog014[] = { - _("Unglaublich, Du hast einen\n" - "weiteren Stern erhalten.\n" - "Er verleiht Dir\n" - "zusätzliche Kraft.\n" - "Spielstand speichern?\n" - "//Ja!////Nein!") -}; - - -// 0x19000EBC -static const u8 Dialog015[] = { - _("Setze Deine Fäuste ein,\n" - "um Dich zu verteidigen.\n" - "Drücke [A] zum Springen\n" - "und [B] zum Schlagen.\n" - "Drücke [A] und [B], um einen\n" - "Tritt auszuführen.\n" - "Gegenstände kannst Du\n" - "mit [B] nehmen und werfen.") -}; - - -// 0x19000F74 -static const u8 Dialog016[] = { - _("Springe auf den\n" - "funkelnden Panzer!\n" - "Der Krötensurf eröffnet\n" - "ungeahnte Möglichkeiten!") -}; - - -// 0x19000FC8 -static const u8 Dialog017[] = { - _("Ich bin König Bob-Omb,\n" - "Herrscher über alle\n" - "Bomben und Gebieter der\n" - "Explosionen!\n" - "Wer gibt Dir das Recht,\n" - "diesen Berg zu betreten\n" - "und dieses königliche\n" - "Plateau zu beschmutzen?\n" - "Anscheinend haben Dich\n" - "die Wachen unterschätzt,\n" - "aber mir wird dieser\n" - "Fehler nicht unterlaufen.\n" - "Der Power-Stern ist in\n" - "meinem Besitz und wird\n" - "auch dort bleiben.\n" - "Dein Ende ist gekommen!\n" - "Oder bist Du etwa der\n" - "Meinung, Du könntest\n" - "mich von hinten packen\n" - "und besiegen? Niemals!!!") -}; - - -// 0x1900118C -static const u8 Dialog018[] = { - _("Schlafende Gefahren\n" - "sollte man nicht wecken.\n" - "Die schleichende Weisheit\n" - "verleiht längeres Leben!") -}; - - -// 0x190011EC -static const u8 Dialog019[] = { - _("Vorsicht, die Fliesen\n" - "sind frisch gebohnert!") -}; - - -// 0x1900121C -static const u8 Dialog020[] = { - _("Lieber Mario!\n" - "Komm mich doch einmal\n" - "im Schloss besuchen!\n" - "Der Kuchen steht bereit!\n" - "In Freundschaft\n" - "Toadstool") -}; - - -// 0x19001288 -static const u8 Dialog021[] = { - _("Na, wen haben wir denn\n" - "hier? Es ist niemand zu\n" - "Hause, also verschwinde\n" - "besser wieder...\n" - "Hua...hua...hua!!!") -}; - - -// 0x190012F4 -static const u8 Dialog022[] = { - _("Ohne den passenden\n" - "Schlüssel bleibt Dir\n" - "dieser Weg versperrt!") -}; - - -// 0x19001334 -static const u8 Dialog023[] = { - _("Der Kellerschlüssel wird\n" - "Dir hier nichts nützen!") -}; - - -// 0x19001368 -static const u8 Dialog024[] = { - _("Du brauchst schon einen\n" - "Stern, um diese Tür zu\n" - "öffnen. Untersuche doch\n" - "einmal die Wandgemälde!") -}; - - -// 0x190013C8 -static const u8 Dialog025[] = { - _("Zum Öffnen dieser Tür\n" - "benötigst Du drei Sterne.\n" - "Du mußt also noch [%]\n" - "von ihnen finden!") -}; - - -// 0x19001420 -static const u8 Dialog026[] = { - _("Zum Öffnen dieser Tür\n" - "benötigst Du acht Sterne.\n" - "Du mußt also noch [%]\n" - "von ihnen finden!") -}; - - -// 0x19001478 -static const u8 Dialog027[] = { - _("Zum Öffnen dieser Tür\n" - "benötigst Du 30 Sterne.\n" - "Du mußt also noch [%]\n" - "von ihnen finden.") -}; - - -// 0x190014CC -static const u8 Dialog028[] = { - _("Zum Öffnen dieser Tür\n" - "benötigst Du 50 Sterne.\n" - "Du mußt also noch [%]\n" - "von ihnen finden.") -}; - - -// 0x19001520 -static const u8 Dialog029[] = { - _("Zum Öffnen der Tür zum\n" - "„Endlosen Vergnügen』\n" - "benötigst Du 70 Sterne.\n" - "Hua...Hua...Hua...!") -}; - - -// 0x19001578 -static const u8 Dialog030[] = { - _("Die Lakitu-Film AG\n" - "berichtet live und in\n" - "Farbe! Hier die neuesten\n" - "Meldungen:\n" - "Gegner sind sehr oft\n" - "unachtsam, wenn Du Dich\n" - "leise, also langsam,\n" - "bewegst.\n" - "Die Kameraposition kannst\n" - "Du durch [C]> und [C]<\n" - "verändern, um einen\n" - "Überblick zu erhalten.\n" - "Das Weitwinkelobjektiv\n" - "wird mit [C]| eingesetzt.\n" - "Details der Umgebung\n" - "werden so sichtbar!\n" - "Ein Warnton erklingt,\n" - "wenn die Bewegungs-\n" - "freiheit der Kamera\n" - "eingeschränkt ist.\n" - "Das waren die\n" - "Meldungen und\n" - "damit zurück zum\n" - "laufenden Programm!") -}; - - -// 0x19001754 -static const u8 Dialog031[] = { - _("Das darf doch alles nicht\n" - "wahr sein! Ich habe schon\n" - "wieder verloren!\n" - "Dabei habe ich mir extra\n" - "die neuen Koopa-Mach-1-\n" - "Schuhe gekauft! Hmpf!!!\n" - "Naja, ich denke, auch\n" - "dieser Stern gehört Dir!\n" - "Herzlichen Glückwunsch!") -}; - - -// 0x1900182C -static const u8 Dialog032[] = { - _("Mit der Federkappe\n" - "kannst Du fliegen.\n" - "Besitzt Du sie, springe\n" - "dreimal hintereinander,\n" - "um einen Flug zu starten.\n" - "Benutzt Du zum Starten\n" - "des Fluges eine Kanone,\n" - "kannst Du die Flughöhe\n" - "enorm steigern. Mit dem\n" - "[Z]-Knopf kannst Du landen.") -}; - - -// 0x19001914 -static const u8 Dialog033[] = { - _("Herzlich willkommen! Durch\n" - "eine Warpröhre bist Du\n" - "direkt zum Schloss der\n" - "Prinzessin gelangt.\n" - "Die Steuerung ist einfach:\n" - "Benutze den [A]-Knopf zum\n" - "Springen und den [B]-Knopf\n" - "zum Schlagen.\n" - "Hinweisschilder kannst\n" - "Du lesen, wenn Du Dich\n" - "davor stellst und den\n" - "[B]-Knopf betätigst.\n" - "Der Analog-Stick dient\n" - "der Steuerung. Doch jetzt\n" - "genug der vielen Worte:\n" - "Auf zum Schloss!!!") -}; - - -// 0x19001A80 -static const u8 Dialog034[] = { - _("Guten Tag, liebe Freunde\n" - "des Actionkinos! Die\n" - "Lakitu-Film AG versorgt\n" - "Euch ständig mit den\n" - "neuesten Informationen.\n" - "Mario hat gerade\n" - "Prinzessin Toadstools\n" - "Schloss erreicht und\n" - "macht sich auf die Suche\n" - "nach den Power-Sternen.\n" - "Unser wagemutiger Kollege\n" - "wird ihn auf dieser\n" - "heiklen Mission begleiten.\n" - "Die [C]-Knöpfe dienen\n" - "seiner Steuerung.\n" - "Du kannst die Perspektiven\n" - "beliebig verändern. Sollte\n" - "sich der Blickwinkel einmal\n" - "nicht verstellen lassen,\n" - "erklingt ein Warnton.\n" - "Genauere Erklärungen\n" - "hierzu werden wir Euch\n" - "zu gegebener Zeit\n" - "mitteilen. Damit zurück\n" - "zum Hauptfilm!") -}; - - -// 0x19001CB8 -static const u8 Dialog035[] = { - _("Die [C]-Knöpfe dienen der\n" - "Steuerung der Kamera.\n" - "Benutze den ^-Knopf, um\n" - "die Kamera mit dem\n" - "Analog-Stick zu bewegen.\n" - "Normalerweise sorgt ein\n" - "Angestellter der Lakitu\n" - "AG dafür, daß Du Mario\n" - "siehst. Das ist die\n" - "Standardeinstellung.\n" - "Diese Kamera steuerst Du\n" - "mit den [C]-Knöpfen.\n" - "Drückst Du die [R]-Taste,\n" - "wechselst Du zwischen\n" - "Lakitus und Marios\n" - "Sicht hin und her. Drücke\n" - "|, um den Zoom oder\n" - "das Weitwinkelobjektiv zu\n" - "aktivieren. Dies ist in\n" - "allen Perspektiven möglich.\n" - "Welchen Kameramodus\n" - "Du gewählt hast, siehst\n" - "Du an einem kleinen Bild,\n" - "das sich rechts unten auf\n" - "dem Bildschirm befindet.") -}; - - -// 0x19001EFC -static const u8 Dialog036[] = { - _("AUSSICHTSPLATTFORM\n" - "Drücke ^ und genieße die\n" - "Aussicht. Vielleicht\n" - "entdeckst Du Geheimnisse\n" - "Deiner Umgebung.\n" - "Drücke [R], um zu Marios\n" - "Kamera zu wechseln. Sie\n" - "bleibt ständig hinter ihm.\n" - "Mit dieser Taste schaltest\n" - "Du auch zurück auf Lakitu.\n" - "Im Pausenmodus kannst Du\n" - "weitere Einstellungen\n" - "vornehmen. Wähle „Stativ』\n" - "und halte die [R]-Taste\n" - "gedrückt!") -}; - - -// 0x19002050 -static const u8 Dialog037[] = { - _("Hihihi, ich habe gewonnen!\n" - "Du solltest noch ein paar\n" - "Trainingsrunden einlegen!") -}; - - -// 0x190020A0 -static const u8 Dialog038[] = { - _("Die mystische Kraft der\n" - "Sterne öffnet die Tür!") -}; - - -// 0x190020D0 -static const u8 Dialog039[] = { - _("Besuchern ist das\n" - "Erklimmen des königlichen\n" - "Berges strengstens\n" - "verboten. Verstöße werden\n" - "hart bestraft!\n" - "Niemals werden die\n" - "Power-Sterne, ein\n" - "Geschenk Bowsers, diesen\n" - "Ort verlassen. Ihre Macht\n" - "bleibt in meinen Händen!\n" - "Kein Wort über ihren\n" - "Aufenthaltsort kommt\n" - "über meine Lippen!!!\n" - "Äh, naja, vielleicht\n" - "ein kleiner Tip:\n" - "Die Sternenbeschreibungen\n" - "zu Beginn dieses Kurses\n" - "könnten sich als nützlich\n" - "erweisen!\n" - "König Bob-Omb!!!") -}; - - -// 0x19002278 -static const u8 Dialog040[] = { - _("Vorsicht, Brücke zerstört!\n" - "Überquere das Eistal in\n" - "der Gondel.") -}; - - -// 0x190022B8 -static const u8 Dialog041[] = { - _("Höhöhö, das war ja wohl\n" - "nichts! Sogar meine Uroma\n" - "Koopa ist wesentlich\n" - "schneller als Du!\n" - "Naja, mit zwei Jahren\n" - "Training könntest Du's\n" - "vielleicht schaffen.\n" - "Bis dann...und tschüß!") -}; - - -// 0x1900236C -static const u8 Dialog042[] = { - _("Achtung!\n" - "Dieser Steg ist ziemlich\n" - "schmal. Du solltest Dich\n" - "sehr langsam bewegen.\n" - "Überschreitest Du eine\n" - "Kante, fällt Mario nicht\n" - "in die Tiefe, sondern er\n" - "klammert sich daran fest.\n" - "Möchtest Du wieder nach\n" - "oben klettern, drücke\n" - "den Analog-Stick in\n" - "Marios Blickrichtung.\n" - "Mario läßt die Kante los,\n" - "wenn Du den Analog-Stick\n" - "in Richtung seines Rückens\n" - "bewegst oder [Z] drückst.\n" - "Bist Du in Eile, kannst\n" - "Du auch durch einen\n" - "beherzten Sprung mit dem\n" - "[A]-Knopf hinauf gelangen.") -}; - - -// 0x1900253C -static const u8 Dialog043[] = { - _("Wenn Du springst und den\n" - "[A]-Knopf gedrückt hältst,\n" - "klammert sich Mario an\n" - "Objekte über ihm.\n" - "Auf diese Weise kannst\n" - "Du Dich auch von der\n" - "Eule durch die Lüfte\n" - "transportieren lassen.") -}; - - -// 0x190025F0 -static const u8 Dialog044[] = { - _("Uh...oh...gääähn...\n" - "Weeehhr ist daaaahhh...?\n" - "Wer hat mich geweckt?\n" - "Eigentlich sollte ich um\n" - "diese Tageszeit schlafen!\n" - "Aber, da Du mich schon\n" - "geweckt hast, wie wäre\n" - "es dann mit einem\n" - "kleinen Rundflug um die\n" - "Burg?\n" - "Befinde ich mich direkt\n" - "über Dir, springe und\n" - "halte den Sprungknopf\n" - "gedrückt. Laß ihn los,\n" - "um wieder frei zu sein.\n" - "Ich transportiere Dich,\n" - "solange es meine Kraft\n" - "zuläßt. Beobachte meinen\n" - "Schatten, um Dich zu\n" - "orientieren.") -}; - - -// 0x190027A4 -static const u8 Dialog045[] = { - _("Hey, Mann, Mario! Mir\n" - "geht die Puste aus.\n" - "Du ißt zuviel Pasta!\n" - "Bitte, laß los, ich muß\n" - "mich erholen...sofooort!\n" - "Bis später...vielleicht.") -}; - - -// 0x19002830 -static const u8 Dialog046[] = { - _("Es gibt drei verschiedene\n" - "Sprungtechniken. Du mußt\n" - "sie alle beherrschen, um\n" - "die Aufgaben zu meistern.\n" - "Versuche zuerst den\n" - "Dreisprung! Renne und\n" - "springe dreimal direkt\n" - "hintereinander.\n" - "Mit dem richtigen Timing\n" - "wird jeder Sprung höher\n" - "als der vorherige sein.\n" - "Weiter zum Weitsprung!\n" - "Während Du rennst, mußt\n" - "Du den [Z]-Knopf und dann\n" - "den [A]-Knopf drücken.\n" - "Und nun der Wandsprung!\n" - "Springe gegen eine Wand.\n" - "Sobald Du die Wand\n" - "berührst, mußt Du wieder\n" - "den Sprungknopf drücken.\n" - "Alles verstanden?\n" - "Dreisprung? Weitsprung?\n" - "Wandsprung? Dann heißt's\n" - "üben, üben, üben...") -}; - - -// 0x19002A5C -static const u8 Dialog047[] = { - _("Hallo!\n" - "Ich mache die Kanone\n" - "zum Abschuß bereit!") -}; - - -// 0x19002A8C -static const u8 Dialog048[] = { - _("An einigen Stellen\n" - "herrscht extreme\n" - "Rutschgefahr! Sieh\n" - "am besten zuerst im\n" - "Schornstein nach dem\n" - "Rechten!") -}; - - -// 0x19002AF8 -static const u8 Dialog049[] = { - _("Du erinnerst Dich an den\n" - "Wandsprung? Auf diese\n" - "Weise kannst Du schnell\n" - "höher gelegene Stellen\n" - "erreichen.\n" - "Benutze ihn, um von\n" - "Wand zu Wand zu springen\n" - "und Stück für Stück\n" - "weiter nach oben zu\n" - "gelangen.\n" - "Denke an die uralte\n" - "Weisheit:\n" - "Übung macht den Meister!\n" - "Sie kommt hier voll zum\n" - "Tragen!!!") -}; - - -// 0x19002C1C -static const u8 Dialog050[] = { - _("Drücke den [Z]-Knopf, um\n" - "in die Hocke zu gehen und\n" - "einen Hang nach unten zu\n" - "rutschen.\n" - "Betätigst Du den [Z]-Knopf\n" - "während eines Sprungs,\n" - "führst Du eine\n" - "Stampfattacke aus.\n" - "Du machst einen\n" - "Rückwärtssalto, wenn\n" - "Du stehend den [Z]-Knopf\n" - "drückst und springst.\n" - "Es gibt weitere Varianten\n" - "zu entdecken. Nimm Dir\n" - "Zeit und versuche, andere\n" - "Kombinationen zu finden!") -}; - - -// 0x19002D78 -static const u8 Dialog051[] = { - _("Du kannst auf Bäume und\n" - "Stangen klettern, wenn\n" - "Du gegen sie springst und\n" - "den Analog-Stick nach\n" - "oben drückst.\n" - "Mit dem [A]-Knopf kannst\n" - "Du nach HINTEN wieder\n" - "abspringen. Du kannst\n" - "sogar auf der Spitze\n" - "einen Handstand machen.\n" - "Springst Du aus dem\n" - "Handstand von einem\n" - "Objekt ab, machst Du\n" - "einen unglaublich hohen\n" - "Sprung.") -}; - - -// 0x19002EB4 -static const u8 Dialog052[] = { - _("Du machst einen\n" - "Rückwärtssalto, wenn\n" - "Du stehend den [Z]-Knopf\n" - "gedrückt hältst und dann\n" - "den [A]-Knopf betätigst.\n" - "Seitwärtssaltos führst\n" - "Du aus, indem Du den\n" - "Analog-Stick entgegen\n" - "Deiner Laufrichtung\n" - "bewegst und springst.") -}; - - -// 0x19002F8C -static const u8 Dialog053[] = { - _("Von Zeit zu Zeit erscheint\n" - "eine farbige Zahl, wenn\n" - "Du Kisten öffnest, Ringe\n" - "durchquerst oder geheime\n" - "Orte erreichst.\n" - "Gelingt es Dir, alle fünf\n" - "farbigen Zahlen dieses\n" - "Bereichs zu finden,\n" - "erhältst Du zur Belohnung\n" - "einen Power-Stern.") -}; - - -// 0x19003074 -static const u8 Dialog054[] = { - _("Herzlich willkommen\n" - "auf der Schlidderbahn!\n" - "Drücke den Analog-Stick\n" - "nach vorne, um zu\n" - "beschleunigen und nach\n" - "hinten, um zu bremsen.") -}; - - -// 0x190030F8 -static const u8 Dialog055[] = { - _("Hihi, hallo Mario!\n" - "Du siehst aus, als\n" - "wolltest Du mich gerade\n" - "fragen, ob wir ein\n" - "Wettrennen machen sollten.\n" - "Und ich sage: Na klar! Es\n" - "ist zwar noch niemandem\n" - "gelungen, mich, den\n" - "Schlidderkönig aller\n" - "Klassen, zu besiegen.\n" - "Aber Du kannst es ja\n" - "einmal versuchen.\n" - "Wie steht's?\n" - "\n" - "//Na klar!/ Später!") -}; - - -// 0x19003220 -static const u8 Dialog056[] = { - _("Du...Du...ha...hast\n" - "mich geschlagen! Das kann\n" - "doch nicht wahr sein!\n" - "Du bist der größte\n" - "Schliddermeister, den\n" - "ich kenne!\n" - "Eine Goldmedaille kann\n" - "ich Dir zwar nicht\n" - "überreichen,\n" - "aber nimm diesen\n" - "Power-Stern!\n" - "Du hast ihn verdient.") -}; - - -// 0x19003304 -static const u8 Dialog057[] = { - _("Hey Kleiner! Hast Du mein\n" - "Baby gesehen? Es ist das\n" - "schönste und süßeste\n" - "Baby der ganzen Welt!\n" - "Vor kurzem war es noch\n" - "bei mir, aber ich habe\n" - "keine Ahnung, wohin es\n" - "sich verdrückt hat.\n" - "Wenn ich doch nur wüßte,\n" - "wo ich die Suche beginnen\n" - "soll...Oh, was für eine\n" - "fürchterliche Tragödie!!!") -}; - - -// 0x19003420 -static const u8 Dialog058[] = { - _("Das ist doch...\n" - "Mensch, Mario, Du hast\n" - "mein Baby gefunden!!!\n" - "Wie kann ich Dir dafür\n" - "danken?\n" - "Oh, ich weiß: Ich fand\n" - "neulich diesen Stern\n" - "hier. Nimm ihn als\n" - "Zeichen meiner ewigen\n" - "Dankbarkeit!") -}; - - -// 0x190034E0 -static const u8 Dialog059[] = { - _("Was soll ich mit diesem\n" - "Früchtchen? Das ist nicht\n" - "mein Baby! Mein Baby hat\n" - "ein weiche, zarte Stimme,\n" - "und es sieht mir natürlich\n" - "ähnlich!") -}; - - -// 0x1900356C -static const u8 Dialog060[] = { - _("Achtung, Achtung!\n" - "Bevor Du Dich in die\n" - "Fluten stürzt, solltest\n" - "Du Dir folgendes merken:\n" - "Bleibst Du zu lange unter\n" - "Wasser, könnte Dir die\n" - "Luft ausgehen. Achte auf\n" - "die Sauerstoffanzeige!\n" - "Schwimme zur Oberfläche\n" - "oder sammle Münzen und\n" - "Luftblasen, um wieder\n" - "Sauerstoff zu tanken.\n" - "Drücke den [A]-Knopf, um\n" - "zu schwimmen. Halte ihn\n" - "gedrückt, um mit den\n" - "Füßen zu paddeln.\n" - "Bewege beim Schwimmen\n" - "den Analog-Stick nach\n" - "oben, um zu tauchen und\n" - "nach unten, um zu steigen.\n" - "Springe aus dem Wasser,\n" - "indem Du an einer Kante\n" - "den Analog-Stick abwärts\n" - "drückst und springst.\n" - "Achte jedoch darauf,\n" - "daß Du den Analog-Stick\n" - "während des Sprungs\n" - "losläßt!") -}; - - -// 0x190037E0 -static const u8 Dialog061[] = { - _("Wer baden möchte, sollte\n" - "sich besser in wärmere\n" - "Gefilde begeben, denn\n" - "hier ist es auf jeden\n" - "Fall zu kalt!!!") -}; - - -// 0x1900384C -static const u8 Dialog062[] = { - _("In den grünen Blöcken\n" - "im Labyrinth findest\n" - "Du die phänomenalen\n" - "Titanenkappen.\n" - "Trägst Du diese Kappen,\n" - "bist Du unverwundbar\n" - "und brauchst kurze Zeit\n" - "nicht zu atmen.\n" - "Das einzige Problem ist:\n" - "Du kannst nicht\n" - "schwimmen, während Du\n" - "sie trägst!") -}; - - -// 0x1900393C -static const u8 Dialog063[] = { - _("In den blauen Blöcken\n" - "befinden sich die\n" - "fantastischen Tarnkappen.\n" - "Damit kannst Du durch\n" - "bestimmte Mauern gehen\n" - "oder Geister erschrecken.") -}; - - -// 0x190039C8 -static const u8 Dialog064[] = { - _("In den roten Blöcken\n" - "kannst Du die berühmten\n" - "Federkappen finden.\n" - "Mit einem Dreisprung\n" - "kannst Du starten und\n" - "in die Lüfte steigen.\n" - "Drücke den Analog-Stick\n" - "nach unten, um im Flug\n" - "an Höhe zu gewinnen.\n" - "Drücke den Analog-Stick\n" - "nach oben, um im Flug\n" - "an Höhe zu verlieren.\n" - "Betätige den [Z]-Knopf,\n" - "um den Flug zu beenden\n" - "und sicher zu landen.") -}; - - -// 0x19003B18 -static const u8 Dialog065[] = { - _("Schwimmen für Anfänger!\n" - "Drücke den [A]-Knopf für\n" - "einen Schwimmzug. Bei\n" - "richtigem Timing kannst\n" - "Du sehr schnell schwimmen.\n" - "Halte den [A]-Knopf\n" - "gedrückt, um mit den\n" - "Füßen zu paddeln. Mit\n" - "dieser Technik bewegst Du\n" - "Dich langsamer im Wasser.\n" - "Drücke beim Schwimmen\n" - "den Analog-Stick\n" - "nach oben, um zu\n" - "tauchen und nach unten,\n" - "um zu steigen.\n" - "Du kannst aus dem Wasser\n" - "springen, wenn Du an der\n" - "Wasseroberfläche den\n" - "Analog-Stick nach unten\n" - "drückst und springst.\n" - "Beachte: Kein Mensch\n" - "kann unter Wasser atmen!\n" - "Kehre zurück an die\n" - "Oberfläche, wenn Deine\n" - "Luft zur Neige geht.\n" - "Ach ja: Türen, die sich\n" - "unter Wasser befinden,\n" - "kannst Du nicht öffnen.\n" - "Aber vielleicht findest\n" - "Du ja einen Abfluß!!!") -}; - - -// 0x19003DB8 -static const u8 Dialog066[] = { - _("Hallo Mario, ich bin's,\n" - "Peach! Paß auf Dich auf!\n" - "Bowser wird versuchen,\n" - "Dich mit seinem Feueratem\n" - "zu versengen.\n" - "Renne hinter ihn!\n" - "Versuche mit dem\n" - "[B]-Knopf Bowsers\n" - "Schwanz zu packen und\n" - "ihn herumzuschleudern.\n" - "Bewege den Analog-Stick\n" - "im Kreis, um Dich zu\n" - "drehen. Je schneller\n" - "Du Dich drehst, desto\n" - "weiter wird Dein Wurf.\n" - "Benutze die [C]-Knöpfe, um\n" - "Dich zu orientieren. Du\n" - "mußt Bowser gegen eine\n" - "der Bomben am Rand der\n" - "Plattform werfen.\n" - "Drücke den [B]-Knopf, um\n" - "Bowser loszulassen und\n" - "in Richtung der Bombe\n" - "zu schleudern.\n" - "Viel Glück!!!") -}; - - -// 0x19003FCC -static const u8 Dialog067[] = { - _("Tja, Mario, Pech gehabt!\n" - "Die Prinzessin ist nicht\n" - "hier und wird es auch so\n" - "bald nicht sein...\n" - "Hua...Hua...Hua...Hua!\n" - "Es wird Dir niemals\n" - "gelingen, mich von hinten\n" - "zu packen und zu werfen.\n" - "Da müßte schon ein wahrer\n" - "Held kommen, keine Wurst!\n" - "Vielleicht gehst Du besser\n" - "wieder nach Hause und\n" - "reparierst weiter kaputte\n" - "Rohre, als Dich mit mir\n" - "zu messen!!!") -}; - - -// 0x1900412C -static const u8 Dialog068[] = { - _("Du bist im Land des\n" - "flüssigen Feuers. Wenn\n" - "Du vom Weg abkommst,\n" - "bewahre Ruhe, denn Du\n" - "verlierst nicht die\n" - "gesamte Energie auf\n" - "einmal. Außerdem kannst\n" - "Du den qualmenden Mario\n" - "während seines Höhenflugs\n" - "immer noch steuern!") -}; - - -// 0x19004208 -static const u8 Dialog069[] = { - _("Während Deiner Abenteuer\n" - "in den Wandbildern stößt\n" - "Du an den Rändern auf\n" - "unsichtbare Mauern.\n" - "Triffst Du fliegend auf\n" - "eine solche Mauer, prallst\n" - "Du ab. Du kannst aber den\n" - "Flug fortsetzen.") -}; - - -// 0x190042C4 -static const u8 Dialog070[] = { - _("Du kannst die Wandbilder\n" - "jederzeit verlassen, um\n" - "in die Schlosshalle\n" - "zurückzukehren.\n" - "Bleibe stehen, drücke\n" - "START, um das Spiel\n" - "zu pausieren, und wähle\n" - "„Kurs verlassen』!\n" - "Du mußt nicht alle Sterne\n" - "einer Welt finden, um\n" - "den nächsten Abschnitt\n" - "betreten zu können.\n" - "Hebe Dir die schweren\n" - "Brocken für später auf,\n" - "wenn Du Deine Techniken\n" - "perfektioniert hast.\n" - "Findest Du einen Stern,\n" - "erhältst Du einen Hinweis,\n" - "wo sich der nächste\n" - "Fundort befindet.\n" - "Aber Du mußt die Sterne\n" - "in keiner bestimmten\n" - "Reihenfolge finden.\n" - "Die Wahl liegt bei Dir!") -}; - - -// 0x190044D8 -static const u8 Dialog071[] = { - _("Achtung! Hüte Dich vor\n" - "den Nebelschwaden!\n" - "Sie enthalten keinen\n" - "Sauerstoff!\n" - "Benutze die erhöhten\n" - "Plattformen, um Dich\n" - "auszuruhen und einen\n" - "sicheren Weg zu suchen.\n" - "Auf der Karte sind\n" - "Unterstände als Kreise\n" - "dargestellt, den Eingang\n" - "erkennst Du am Pfeil!") -}; - - -// 0x190045D4 -static const u8 Dialog072[] = { - _("Hier oben weht eine steife\n" - "Brise. Solltest Du Deine\n" - "Mütze verlieren, kannst\n" - "Du sie auf dem Weg zum\n" - "Gipfel wiederfinden.") -}; - - -// 0x1900464C -static const u8 Dialog073[] = { - _("Ahoi, Landratte! Es ist\n" - "doch wohl logisch, daß\n" - "sich hier unten ein\n" - "sagenhafter Schatz\n" - "befindet!\n" - "Zur Bergung mußt Du die\n" - "Kisten in der richtigen\n" - "Reihenfolge öffnen, klar?\n" - "Aber ich sage nicht, wie\n" - "sie lautet, hehehe!") -}; - - -// 0x19004724 -static const u8 Dialog074[] = { - _("Siehst Du den Block\n" - "nebenan? Manchmal kannst\n" - "Du im Innern dieser\n" - "Quader interessante\n" - "Entdeckungen machen.\n" - "Zerstöre sie mit einem\n" - "gezielten Schlag oder\n" - "einer Stampfattacke,\n" - "damit sie ihr Geheimnis\n" - "preisgeben!") -}; - - -// 0x190047F4 -static const u8 Dialog075[] = { - _("Hilfe, Mario! Mein Schloss\n" - "befindet sich in großer\n" - "Gefahr. Ich weiß, daß der\n" - "widerliche Bowser seine\n" - "Hände im Spiel hat.\n" - "Er hat alle Türen des\n" - "Schlosses versiegelt. Nur\n" - "die magische Kraft der\n" - "Power-Sterne kann diese\n" - "Siegel brechen.\n" - "Aber es gibt einige\n" - "Geheimwege im Innern, die\n" - "Bowser nicht entdeckt\n" - "hat. Einer davon befindet\n" - "sich in diesem Raum.\n" - "Suche den Eingang und\n" - "finde den Power-Stern,\n" - "der sich darin verbirgt.\n" - "Hilf uns, Du bist unsere\n" - "einzige Hoffnung!\n" - "Fast alle Power-Sterne\n" - "kannst Du in den\n" - "Wandgemälden finden,\n" - "manche jedoch an\n" - "geheimen Orten.\n" - "Sammle soviele Sterne\n" - "wie möglich, um Bowsers\n" - "Plan zu vereiteln.\n" - "Wir zählen auf Dich!\n" - "Viel Glück!!!") -}; - - -// 0x19004A84 -static const u8 Dialog076[] = { - _("Hallo Mario! Du hast\n" - "bereits einiges zur\n" - "Rettung des Schlosses\n" - "getan.\n" - "Aber Du mußt noch\n" - "viele Geheimnisse\n" - "der Wandgemälde\n" - "lüften.\n" - "Manchmal spielen Dir\n" - "Deine Augen einen Streich.\n" - "Die Realität verschwindet\n" - "hinter Fassaden.\n" - "Aber Du kannst das\n" - "Trugbild durchdringen,\n" - "wenn Du es im Spiegel\n" - "betrachtest!\n" - "Wasser ist ein flüssiges\n" - "Element. Die Magie des\n" - "Wandgemäldes beeinflußt\n" - "sein Verhalten.\n" - "Wähle verschiedene Wege,\n" - "um die versunkene Stadt\n" - "durch das Gemälde zu\n" - "betreten.\n" - "Ach ja, fast hätte ich es\n" - "vergessen: Hier habe ich\n" - "etwas für Dich! Es hilft\n" - "Dir, Bowser zu besiegen.") -}; - - -// 0x19004CBC -static const u8 Dialog077[] = { - _("Einst konnte man die Tür\n" - "öffnen. Zu dieser Zeit\n" - "waren die Säulen aber\n" - "niedriger!") -}; - - -// 0x19004D10 -static const u8 Dialog078[] = { - _("Diesen Schalter kannst Du\n" - "durch eine Stampfattacke\n" - "auslösen. Er läßt einige\n" - "blaue Münzen erscheinen,\n" - "die je fünf gelbe\n" - "Münzen wert sind.\n" - "Allerdings mußt Du Dich\n" - "beeilen, denn die blauen\n" - "Münzen erscheinen nur\n" - "für kurze Zeit.") -}; - - -// 0x19004DF0 -static const u8 Dialog079[] = { - _("Auuuuuaaa! Hey, laß mich\n" - "los! Das war doch nur\n" - "Spaß! Du hast wohl keinen\n" - "Humor, was?\n" - "Okay, ich mache Dir einen\n" - "Vorschlag: Wenn Du mich\n" - "losläßt, habe ich eine\n" - "Überraschung für Dich!\n" - "Na, wie sieht's aus?\n" - "\n" - "//Klar!///Vergiß es!") -}; - - -// 0x19004ED0 -static const u8 Dialog080[] = { - _("Hey Baby, komm schon!\n" - "Wo bleibst Du denn so\n" - "lange?") -}; - - -// 0x19004F04 -static const u8 Dialog081[] = { - _("Des Rätsels Lösung ist der\n" - "Wasserstand. Tief unten\n" - "erwartet Dich die Stadt,\n" - "nachdem Du den Pegel\n" - "hast sinken lassen.") -}; - - -// 0x19004F7C -static const u8 Dialog082[] = { - _("Achte auf Deine Mütze!\n" - "Solltest Du sie verlieren,\n" - "wirst Du durch Treffer\n" - "schwerer verletzt.\n" - "Solltest Du sie einmal\n" - "verlieren, findest Du die\n" - "Mütze in dem Gemälde, in\n" - "dem Du sie verloren hast.\n" - "Die Prinzessin wird\n" - "noch immer von Bowser\n" - "gefangen gehalten. Rette\n" - "sie so schnell wie möglich.\n" - "Bowsers Schergen belagern\n" - "seit langer Zeit die\n" - "Welten der Gemälde und\n" - "Wände des Schlosses.\n" - "Aber es ist mir gelungen,\n" - "ihnen diesen Stern\n" - "abzujagen.\n" - "Viel Glück!") -}; - - -// 0x1900513C -static const u8 Dialog083[] = { - _("Betrittst Du die Uhr zu\n" - "verschiedenen Zeiten,\n" - "werden Dir weitere\n" - "Geheimnisse offenbart.\n" - "Vielleicht hilft Dir auch\n" - "dieser Stern!") -}; - - -// 0x190051BC -static const u8 Dialog084[] = { - _("Hey, Du Rüpel, ich\n" - "bekomme ja blaue Flecken.\n" - "Laß mich sofort los!\n" - "Bowser hat mir diesen\n" - "Stern geschenkt.\n" - "Er wäre ziemlich böse,\n" - "wenn er das wüßte, aber\n" - "ich bin in Eile. Also\n" - "nimm ihn und laß mich\n" - "runter!") -}; - - -// 0x19005288 -static const u8 Dialog085[] = { - _("Im Horrorhaus solltest Du\n" - "den Mund geschlossen\n" - "halten, damit Deine Zähne\n" - "nicht vor Angst klappern!") -}; - - -// 0x190052EC -static const u8 Dialog086[] = { - _("Wenn Du im Kreis rennst,\n" - "werden manche Gegner\n" - "große Augen machen!") -}; - - -// 0x19005330 -static const u8 Dialog087[] = { - _("Der Weihnachtsmann ist\n" - "nicht der einzige, der\n" - "in Schornsteine klettert!") -}; - - -// 0x19005378 -static const u8 Dialog088[] = { - _("Benutze die Stange, um\n" - "nach unten zu gelangen!") -}; - - -// 0x190053A8 -static const u8 Dialog089[] = { - _("Auf beiden Wegen lauern\n" - "Gefahren. Links benötigst\n" - "Du den Weitsprung, um\n" - "weiterzukommen.\n" - "Rechts: Arbeitsplattform\n" - "////Nebellabyrinth\n" - "Links:/Schwarzes Loch\n" - "////Höhlensee") -}; - - -// 0x19005450 -static const u8 Dialog090[] = { - _("Hua, hua, hua, ich wußte,\n" - "daß Du mir in die Falle\n" - "gehen würdest. Du solltest\n" - "öfter auf Deine ulkigen\n" - "Füße schauen!") -}; - - -// 0x190054C4 -static const u8 Dialog091[] = { - _("Achtung, starke Böen!\n" - "Aber es könnte auch eine\n" - "aufregende Reise werden!") -}; - - -// 0x1900550C -static const u8 Dialog092[] = { - _("Was willst Du denn schon\n" - "wieder? Du bist ja\n" - "lästiger als ein Schwarm\n" - "Stubenfliegen.\n" - "Gerade jetzt, als mir\n" - "die ganze Sache so viel\n" - "Spaß machte! Aber, wenn\n" - "Du schon mal hier bist:\n" - "Gib mir die Power-Sterne\n" - "zurück! Meine Truppen\n" - "können sie besser\n" - "gebrauchen als Du.") -}; - - -// 0x19005614 -static const u8 Dialog093[] = { - _("Mario, wie schön Dich zu\n" - "sehen! Ich dachte gerade\n" - "an eine Grillparty - schon\n" - "bist Du da.\n" - "Jetzt brauche ich mir\n" - "wenigstens keine Gedanken\n" - "zu machen, was ich grille:\n" - "Nämlich Dich!\n" - "Dann gehört die Prinzessin\n" - "endgültig mir und ich bin\n" - "auf ewig der Herrscher\n" - "des Schlosses!!!") -}; - - -// 0x19005724 -static const u8 Dialog094[] = { - _("Erinnerst Du Dich noch an\n" - "den Weitsprung? Renne,\n" - "drücke den [Z]-Knopf und\n" - "dann den [A]-Knopf!") -}; - - -// 0x19005780 -static const u8 Dialog095[] = { - _("Wie man Schilder liest,\n" - "hast Du offensichtlich\n" - "bereits herausgefunden.\n" - "Auf die gleiche Weise\n" - "kannst Du mit anderen\n" - "sprechen.") -}; - - -// 0x19005800 -static const u8 Dialog096[] = { - _("Der Weg zur Burg ist\n" - "sehr schmal! Selbst\n" - "Wagemutige sollten sich\n" - "langsam bewegen.\n" - "Außerdem wecken leise\n" - "Schritte niemanden, der\n" - "schläft - was Dein\n" - "Vorteil sein könnte!") -}; - - -// 0x190058A8 -static const u8 Dialog097[] = { - _("Sei nicht schüchtern,\n" - "sondern wehre Dich,\n" - "wenn jemand versucht,\n" - "Dich von einer Plattform\n" - "zu schubsen. Sonst steigt\n" - "die Temperatur!") -}; - - -// 0x1900592C -static const u8 Dialog098[] = { - _("Komm nur näher, hehehe!") -}; - - -// 0x19005944 -static const u8 Dialog099[] = { - _("") -}; - - -// 0x19005948 -static const u8 Dialog100[] = { - _("Jippiiiiieee, ich hab' sie!\n" - "Jetzt gehört sie mir!!!") -}; - - -// 0x1900597C -static const u8 Dialog101[] = { - _("Hgggnnnhhh! Laß...mich...\n" - "los!!! Diese Mütze? Na\n" - "gut, ich gebe sie Dir,\n" - "obwohl sie mir besser\n" - "steht als Dir!") -}; - - -// 0x190059EC -static const u8 Dialog102[] = { - _("Hey, pssst, paß mal auf:\n" - "Die Geister sind sehr\n" - "schüchtern. Siehst Du\n" - "ihnen in die Augen,\n" - "verschwinden sie.\n" - "Drehst Du ihnen allerdings\n" - "den Rücken zu, werden\n" - "sie wieder sichtbar.\n" - "Attackiere sie von hinten,\n" - "um sie zu besiegen.") -}; - - -// 0x19005ACC -static const u8 Dialog103[] = { - _("Die Pyramide ist von vier\n" - "Säulen umgeben. Erklimme\n" - "die Spitzen der Säulen, um\n" - "das Geheimnis zu lüften.") -}; - - -// 0x19005B34 -static const u8 Dialog104[] = { - _("Der Schattenstern vor Dir\n" - "wird real, wenn Du die\n" - "acht roten Münzen dieser\n" - "Welt findest.") -}; - - -// 0x19005B8C -static const u8 Dialog105[] = { - _("Bist Du bereit? Dann rein\n" - "mit Dir in die Kanone! Du\n" - "kannst mir ihrer Hilfe\n" - "die schwebende Insel\n" - "erreichen!\n" - "Benutze den Analog-Stick\n" - "zum Zielen und feuere die\n" - "Kanone mit dem [A]-Knopf\n" - "ab. Akrobaten bevorzugen\n" - "Bäume zur Landung!") -}; - - -// 0x19005C70 -static const u8 Dialog106[] = { - _("Bist Du bereit? Dann rein\n" - "mit Dir in die Kanone!") -}; - - -// 0x19005CA4 -static const u8 Dialog107[] = { - _("Das werde ich meinem\n" - "großen Bruder erzählen!\n" - "Dann kannst Du aber was\n" - "erleben...") -}; - - -// 0x19005CF4 -static const u8 Dialog108[] = { - _("Ha-Boooo! Du bist also\n" - "der Unruhestifter...\n" - "Jetzt wirst Du das büßen,\n" - "was Du mir und meinen\n" - "Geschwistern angetan\n" - "hast...") -}; - - -// 0x19005D70 -static const u8 Dialog109[] = { - _("Schnief, schnüff! Mein\n" - "einst stattlicher Körper\n" - "hat sich in Wasser\n" - "aufgelöst.\n" - "Ich würde alles für einen\n" - "neuen Körper geben.\n" - "Vielleicht kannst Du mir\n" - "helfen, schluchz?") -}; - - -// 0x19005E18 -static const u8 Dialog110[] = { - _("Oh Mann, ich fühle mich\n" - "so kopflos! Kennst Du\n" - "jemanden, der nach einem\n" - "Körper sucht? Unten?\n" - "Okay, dann los!") -}; - - -// 0x19005E84 -static const u8 Dialog111[] = { - _("Boah, welch komfortables\n" - "Unterteil!\n" - "Ich bin so glücklich...\n" - "Hier, nimm den Stern.\n" - "Ich hoffe, er bringt\n" - "Dir Glück!") -}; - - -// 0x19005EF8 -static const u8 Dialog112[] = { - _("Sammle so viele Münzen,\n" - "wie Du finden kannst.\n" - "Sie geben Dir verlorene\n" - "Energie zurück.\n" - "Die Bestleistung jeder\n" - "Welt wird gespeichert.\n" - "Du kannst sie jederzeit\n" - "abrufen.\n" - "In einigen Welten wirst\n" - "Du transparenten Herzen\n" - "begegnen. Auch sie füllen\n" - "Deinen Power-Meter auf.\n" - "Je schneller Du das Herz\n" - "passierst, desto mehr\n" - "verlorene Energie wird\n" - "ersetzt.") -}; - - -// 0x19006050 -static const u8 Dialog113[] = { - _("In den roten, blauen und\n" - "grünen Blöcken befinden\n" - "sich verschiedene Mützen.\n" - "Du mußt die versteckten\n" - "Schalter finden, um die\n" - "Blöcke öffnen zu können.") -}; - - -// 0x190060E4 -static const u8 Dialog114[] = { - _("Das gibt es doch gar\n" - "nicht! Was willst Du\n" - "Wicht hier in meinem\n" - "Reich?\n" - "Ich werde Dich lehren,\n" - "meine Befehle zu...\n" - "Oh, diese vermaledeiten\n" - "Rückenschmerzen...!") -}; - - -// 0x19006184 -static const u8 Dialog115[] = { - _("Unglaublich! Du hast mich\n" - "von meinen Kreuzschmerzen\n" - "befreit! Als Dank gebe\n" - "ich Dir diesen Stern!") -}; - - -// 0x190061E8 -static const u8 Dialog116[] = { - _("Waaaaa...wie? Du hast\n" - "mich besiegt...\n" - "Ich verneige mein Haupt\n" - "vor Deiner Größe!\n" - "Aber Du mußt Dich\n" - "vorsehen!\n" - "Bowser wird nicht so\n" - "leicht zu besiegen sein.\n" - "Ich gebe Dir diesen\n" - "Stern, um Dir meine\n" - "Demut zu beweisen.\n" - "Trage ihn mit Stolz.\n" - "Wenn Du mich wiedersehen\n" - "willst, wähle den ersten\n" - "Stern des Kursmenüs an!\n" - "Bis dann...") -}; - - -// 0x19006328 -static const u8 Dialog117[] = { - _("Schritte? Grabräuber?\n" - "Wer wagt es, den ewigen\n" - "Frieden unseres Grabes\n" - "zu stören?\n" - "Jenem sei gewiß, daß\n" - "wir diesen Frevel mit\n" - "aller Härte bestrafen\n" - "werden!\n" - "Unser Zorn wird ihn\n" - "zermalmen und Ra stehe\n" - "ihm bei, daß es schnell\n" - "gehen wird...") -}; - - -// 0x19006414 -static const u8 Dialog118[] = { - _("Wir sind besiegt...\n" - "Du hast den Fluch des\n" - "Pharaos gebrochen.\n" - "Jetzt finden wir unseren\n" - "verdienten Frieden. Nimm\n" - "als Dank diesen Stern!") -}; - - -// 0x1900649C -static const u8 Dialog119[] = { - _("Grrrr, offensichtlich war\n" - "ich ein wenig unachtsam.\n" - "Aber ich habe noch immer\n" - "die Prinzessin und die\n" - "Power-Sterne in meiner\n" - "Gewalt!\n" - "Ich werde dafür sorgen,\n" - "daß Du keine weiteren\n" - "Sterne erlangen wirst.\n" - "Unser nächstes Treffen\n" - "wird einen anderen Sieger\n" - "haben...bestimmt!") -}; - - -// 0x190065A8 -static const u8 Dialog120[] = { - _("Woaaaah, Du hast schon\n" - "wieder gewonnen.\n" - "Hat mich etwa die Kraft\n" - "der Sterne verlassen?\n" - "Betrachte diesen Kampf\n" - "als Unentschieden!\n" - "Das nächste Mal bin ich\n" - "besser vorbereitet!\n" - "Ich warte am höchsten\n" - "Punkt des Schlosses auf\n" - "Dich...dort werden wir\n" - "sehen, wer stärker ist!") -}; - - -// 0x190066B4 -static const u8 Dialog121[] = { - _("Aaaaaarrrgghh!\n" - "Du...hast...gewonnen!\n" - "Ich wollte mit meinen\n" - "Truppen dieses Schloss\n" - "erobern, doch Du hast\n" - "meine Pläne vereitelt.\n" - "Der Frieden kehrt\n" - "zurück in die Welten\n" - "der Wandgemälde...leider!\n" - "Jetzt bleibt mir nichts\n" - "anderes mehr übrig, als\n" - "mein Ende abzuwarten...") -}; - - -// 0x190067BC -static const u8 Dialog122[] = { - _("Das Schwarze Loch\n" - "Rechts: Arbeitsplattform\n" - "////Nebellabyrinth\n" - "Links:/Höhlensee") -}; - - -// 0x1900680C -static const u8 Dialog123[] = { - _("Titanenhöhle\n" - "Rechts: Wasserfall\n" - "Links:/Grüner Schalter") -}; - - -// 0x19006844 -static const u8 Dialog124[] = { - _("Arbeitsplattform\n" - "Zur Beachtung:\n" - "Aktiviere einen der\n" - "Richtungspfeile, um die\n" - "Plattform zu bewegen.") -}; - - -// 0x190068A8 -static const u8 Dialog125[] = { - _("Rechts ist der Ausgang\n" - "des Nebellabyrinths. Bitte\n" - "Eingang links benutzen!") -}; - - -// 0x190068F4 -static const u8 Dialog126[] = { - _("Oben:/ Schwarzes Loch\n" - "Rechts: Arbeitsplattform\n" - "////Nebellabyrinth") -}; - - -// 0x19006938 -static const u8 Dialog127[] = { - _("Höhlensee\n" - "Rechts: Titanenhöhle\n" - "Links:/Verlassene Mine\n" - "////(Geschlossen!!!)\n" - "Hier lebt ein Seemonster.\n" - "Führe auf seinem Rücken\n" - "eine Stampfattacke aus,\n" - "damit es den Kopf senkt!") -}; - - -// 0x190069E8 -static const u8 Dialog128[] = { - _("Hey, es ist gegen die\n" - "königlichen Regeln, den\n" - "Herrscher aus dem Ring\n" - "zu werfen!") -}; - - -// 0x19006A38 -static const u8 Dialog129[] = { - _("Herzlich willkommen!\n" - "In diesem Kurs kannst\n" - "Du den blauen Schalter\n" - "entdecken.\n" - "Löst Du ihn aus, kannst\n" - "Du in allen blauen Blöcken\n" - "Tarnkappen finden, die\n" - "Dich unsichtbar machen!\n" - "Auf diese Weise kannst Du\n" - "durch bestimmte Wände\n" - "gehen und Gegnern\n" - "ungesehen ausweichen.") -}; - - -// 0x19006B40 -static const u8 Dialog130[] = { - _("Herzlich willkommen!\n" - "In diesem Kurs kannst\n" - "Du den grünen Schalter\n" - "entdecken.\n" - "Löst Du ihn aus, kannst\n" - "Du in allen grünen Blöcken\n" - "Titanenkappen finden, die\n" - "Dich unbesiegbar machen.\n" - "Bist Du mit diesen Mützen\n" - "ausgerüstet, kannst Du\n" - "unter Wasser laufen und\n" - "brauchst nicht zu atmen.") -}; - - -// 0x19006C58 -static const u8 Dialog131[] = { - _("Herzlich willkommen!\n" - "In diesem Kurs kannst\n" - "Du den roten Schalter\n" - "entdecken.\n" - "Löst Du ihn aus, kannst\n" - "Du in allen roten Blöcken\n" - "Federkappen finden, mit\n" - "denen Du fliegen kannst.\n" - "Benutze den Dreisprung,\n" - "um den Flug zu starten.\n" - "Die Kontrolle funktioniert\n" - "wie bei einem Flugzeug.\n" - "Bewege den Analog-Stick\n" - "nach vorne, um zu sinken,\n" - "und nach hinten, um zu\n" - "steigen!") -}; - - -// 0x19006DBC -static const u8 Dialog132[] = { - _("Tsetsetse...Mario!\n" - "Du versuchst doch nicht\n" - "etwa, mich zu betrügen?\n" - "Abkürzungen sind nicht\n" - "erlaubt.\n" - "Du bist disqualifiziert!") -}; - - -// 0x19006E38 -static const u8 Dialog133[] = { - _("Ich freue mich, Dich zu\n" - "sehen. Die Prinzessin...\n" - "ich...und alle anderen\n" - "sind in den Wänden des\n" - "Schlosses gefangen.\n" - "Bowser hat die Sterne\n" - "entwendet und benutzt\n" - "sie, um seine eigenen\n" - "Welten in den Gemälden\n" - "zu erschaffen.\n" - "Du mußt die Power-Sterne\n" - "finden. Mit ihrer Hilfe\n" - "kannst Du Bowsers Siegel\n" - "an den Türen des Schlosses\n" - "brechen.\n" - "Im Erdgeschoß gibt es\n" - "vier Welten. Beginne in\n" - "der Welt der Bob-Ombs.\n" - "Das ist die einzige Tür,\n" - "die nicht versiegelt ist.\n" - "Hast Du acht Sterne\n" - "gesammelt, kannst Du die\n" - "Tür mit dem großen Stern\n" - "öffnen. Dahinter befindet\n" - "sich die Prinzessin!") -}; - - -// 0x19007070 -static const u8 Dialog134[] = { - _("Am Beginn jeder Welt\n" - "erhältst Du einen Hinweis,\n" - "wo der nächste Stern\n" - "zu finden ist.\n" - "Du kannst sie in beliebiger\n" - "Reihenfolge sammeln, aber\n" - "einige erscheinen nur unter\n" - "bestimmten Bedingungen.\n" - "Nachdem Du ein paar\n" - "Sterne gefunden hast,\n" - "kannst Du Dich in anderen\n" - "Welten umsehen.") -}; - - -// 0x19007184 -static const u8 Dialog135[] = { - _("Bowser hat sich die\n" - "Power-Sterne unter den\n" - "Nagel gerissen. In jeder\n" - "Welt hat er sechs Sterne\n" - "versteckt.\n" - "Manche der Sterne kannst\n" - "Du aber erst finden, wenn\n" - "Du die farbigen Schalter\n" - "in den Schalterpalästen\n" - "ausgelöst hast.\n" - "Bereits gefundene Sterne\n" - "kannst Du zu Beginn jeder\n" - "Welt sehen. Triff besiegte\n" - "Gegner, indem Du erneut\n" - "ihren Stern anwählst.") -}; - - -// 0x190072DC -static const u8 Dialog136[] = { - _("Wow, Du hast bereits so\n" - "viele Sterne gefunden?\n" - "Ich bin sicher, das war\n" - "kein Kinderspiel!\n" - "Ich habe noch einige Tips,\n" - "die Dir bei der Suche nach\n" - "den Power-Sternen von\n" - "Nutzen sein könnten:\n" - "Sammle Münzen, um Deine\n" - "Energie aufzufüllen. Ihre\n" - "Farbe entscheidet, wieviel\n" - "Energie Du erhältst.\n" - "Gelbe Münzen geben eine,\n" - "rote Münzen zwei und\n" - "blaue Münzen sogar fünf\n" - "Energieeinheiten zurück.\n" - "Damit die blauen Münzen\n" - "sichtbar werden, mußt\n" - "Du ihre Schalter in den\n" - "Boden stampfen.\n" - "Halte Verletzungen gering,\n" - "indem Du bei Stürzen im\n" - "letzen Moment eine\n" - "Stampfattacke ausführst.") -}; - - -// 0x1900750C -static const u8 Dialog137[] = { - _("Vielen Dank! Du hast\n" - "schon sehr viele Sterne\n" - "gesammelt und Bowser in\n" - "ein höheres Stockwerk\n" - "verbannt.\n" - "Wußtest Du eigentlich,\n" - "daß Du in jeder Welt\n" - "einen geheimen Stern\n" - "erhältst, wenn Du\n" - "100 Münzen sammelst?") -}; - - -// 0x190075DC -static const u8 Dialog138[] = { - _("Unten:/Höhlensee\n" - "Links:/Schwarzes Loch\n" - "Rechts: Nebellabyrinth\n" - "////(Geschlossen!!!)") -}; - - -// 0x19007630 -static const u8 Dialog139[] = { - _("Automatische Plattform\n" - "Sobald Du diese Plattform\n" - "betrittst, setzt sie sich\n" - "in Bewegung.\n" - "Sie folgt einem\n" - "programmierten Kurs und\n" - "verschwindet automatisch,\n" - "wenn Du sie verläßt.") -}; - - -// 0x190076E0 -static const u8 Dialog140[] = { - _("Arbeitsplattform\n" - "Rechts: Nebellabyrinth\n" - "////Eingang\n" - "Links:/Schwarzes Loch\n" - "////Aufzug 1\n" - "Pfeil:/Standort") -}; - - -// 0x19007748 -static const u8 Dialog141[] = { - _("Du hast einen der\n" - "gestohlenen Power-Sterne\n" - "gefunden.\n" - "Damit kannst Du einige\n" - "versiegelte Türen öffnen.\n" - "Versuch's mal im Zimmer\n" - "der Prinzessin im\n" - "1. Stock oder in\n" - "Wummps Festung im\n" - "Erdgeschoß der Vorhalle.\n" - "Halte Bowser auf und\n" - "rette uns und die\n" - "Power-Sterne.\n" - "Wir zählen auf Dich und\n" - "drücken Dir die Daumen.") -}; - - -// 0x1900787C -static const u8 Dialog142[] = { - _("Du hast drei magische\n" - "Power-Sterne gesammelt.\n" - "Jetzt kannst Du jede Tür\n" - "öffnen, deren Siegel eine\n" - "Drei trägt.\n" - "Du kannst die Türen so oft\n" - "passieren, wie Du willst.\n" - "Aber paß auf: In höheren\n" - "Stockwerken werden die\n" - "Gegner viel stärker!") -}; - - -// 0x19007964 -static const u8 Dialog143[] = { - _("Du hast acht Sterne\n" - "gesammelt. Jetzt kannst\n" - "Du die Tür mit dem\n" - "großen Stern öffnen.\n" - "Die Prinzessin hält sich\n" - "dahinter auf!") -}; - - -// 0x190079E0 -static const u8 Dialog144[] = { - _("Du hast 30 Power-Sterne\n" - "gesammelt. Jetzt kannst\n" - "Du die Tür mit dem\n" - "großen Stern öffnen. Aber\n" - "warte noch einen Moment!\n" - "Hast Du die beiden Säulen\n" - "in den Boden gestampft?\n" - "Und Du hast doch wohl\n" - "nicht Deine Mütze\n" - "verloren, oder?\n" - "Wenn ja, mußt Du den\n" - "Riesengeier mit einer\n" - "Stampfattacke besiegen!\n" - "Ach ja: Bowser hält sich\n" - "jetzt im Untergrund auf.") -}; - - -// 0x19007B38 -static const u8 Dialog145[] = { - _("Du hast 50 Power-Sterne\n" - "gesammelt. Jetzt kannst\n" - "Du die Tür mit dem großen\n" - "Stern im 3. Stock öffnen.\n" - "Hast Du bereits alle\n" - "Schalterpaläste gefunden?\n" - "Diese besonderen Mützen\n" - "sind sehr nützlich.") -}; - - -// 0x19007BF8 -static const u8 Dialog146[] = { - _("Du hast 70 Power-Sterne\n" - "gesammelt. Jetzt kannst\n" - "Du das Geheimnis der\n" - "endlosen Treppe lüften.\n" - "Begib Dich zum finalen\n" - "Duell mit Bowser!") -}; - - -// 0x19007C80 -static const u8 Dialog147[] = { - _("Bevor Du weitergehst,\n" - "solltest Du nach den\n" - "versteckten Schaltern\n" - "suchen.\n" - "Hast Du sie gefunden,\n" - "kannst Du in allen\n" - "bunten Blöcken besondere\n" - "Mützen finden.\n" - "In roten Blöcken findest\n" - "Du Federkappen, in\n" - "grünen Titanenkappen\n" - "und in blauen Tarnkappen.\n" - "Allerdings mußt Du bereits\n" - "einige Sterne besitzen, um\n" - "die Schalterpaläste finden\n" - "zu können!") -}; - - -// 0x19007DD4 -static const u8 Dialog148[] = { - _("Achtung, Achtung!\n" - "Versuche bloß nicht, den\n" - "Berg mit dem Dreisprung\n" - "zu erreichen!\n" - "Außerdem ist das Wasser\n" - "sehr kalt - Deine Fitness\n" - "könnte bei einem Bad\n" - "großen Schaden nehmen!") -}; - - -// 0x19007E84 -static const u8 Dialog149[] = { - _("Willkommen auf der\n" - "Rutschbahn der Prinzessin.\n" - "Hier befindet sich ein\n" - "Stern, den Bowser nicht\n" - "entdeckt hat.\n" - "Drücke den Analog-Stick\n" - "nach vorne, um zu\n" - "beschleunigen.\n" - "Wenn Du sehr schnell bist,\n" - "erhältst Du den Stern.") -}; - - -// 0x19007F5C -static const u8 Dialog150[] = { - _("Aaaaaah! Sieh Dir diese\n" - "Schweinerei an. Du hast\n" - "meine Wohnung überflutet.\n" - "Meine ganze Einrichtung\n" - "ist ruiniert!\n" - "Ich bin stinksauer! Alles\n" - "läuft schief, seit ich\n" - "diesen dämlichen Stern\n" - "gefunden habe. Ich...\n" - "Ich...werde...") -}; - - -// 0x1900803C -static const u8 Dialog151[] = { - _("Ich halte das nicht mehr\n" - "aus - zuerst überflutest\n" - "Du meine Wohnung und\n" - "dann hüpfst Du auch noch\n" - "auf mir herum!?\n" - "Mir reicht's! Ich werde\n" - "Dir richtiges Benehmen\n" - "beibringen! Du...Ich...\n" - "werde Dich...Ich werde\n" - "Dich lehren...") -}; - - -// 0x1900811C -static const u8 Dialog152[] = { - _("Ooooh, halt, halt! Ich\n" - "gebe auf. Hier, nimm\n" - "den Stern. Ich brauche\n" - "ihn nicht mehr.\n" - "Ich kann mir die Sterne\n" - "durch das Loch in der\n" - "Decke ansehen, wann\n" - "immer ich möchte.") -}; - - -// 0x190081C4 -static const u8 Dialog153[] = { - _("Hey, wer ist da? Wer\n" - "meint, auf mir 'rumlaufen\n" - "zu müssen? Ein Eisfloh\n" - "oder eine Schneefliege?\n" - "Egal, was es ist, auf\n" - "jeden Fall stört es mich.\n" - "Aber mein Eisatem wird\n" - "mich davon befreien!") -}; - - -// 0x19008280 -static const u8 Dialog154[] = { - _("Paß gut auf Deine Mütze\n" - "auf - ohne sie bist Du\n" - "leicht verletzbar!\n" - "Wenn Du sie verloren hast,\n" - "findest Du sie in\n" - "derselben Welt wieder.") -}; - - -// 0x19008308 -static const u8 Dialog155[] = { - _("Hi, Mario! Ich erzähle\n" - "Dir einige Geheimnisse\n" - "des Schlosses:\n" - "Es heißt, daß der Spiegel\n" - "des Spiegelsaals magische\n" - "Fähigkeiten besitzt.\n" - "Er soll Dinge zeigen, die\n" - "Du mit bloßem Auge nicht\n" - "erkennen kannst.\n" - "Aber das ist bestimmt\n" - "Unfug und lediglich\n" - "dummer Aberglaube.\n" - "Bei der versunkenen\n" - "Stadt ist das schon\n" - "etwas anderes.\n" - "Du kannst den Pegel des\n" - "Wassers durch die Sprünge\n" - "ins Gemälde beeinflussen.\n" - "Am besten schaust Du Dir\n" - "die Wirkung direkt im\n" - "Gemälde an!") -}; - - -// 0x190084D0 -static const u8 Dialog156[] = { - _("Diese Uhr ist wirklich\n" - "ungewöhnlich. Ihr Inneres\n" - "verändert sich im Laufe\n" - "der Zeit.") -}; - - -// 0x19008524 -static const u8 Dialog157[] = { - _("Achte auf den Treibsand!\n" - "Solltest Du einmal darin\n" - "versinken, findet Dein\n" - "Gemäldebesuch ein rasches\n" - "Ende.\n" - "Schwarze Löcher sind\n" - "bodenlose Fallen. Du wirst\n" - "das Gemälde neu betreten\n" - "müssen, wenn Du in eines\n" - "dieser Löcher hineinfällst.") -}; - - -// 0x1900860C -static const u8 Dialog158[] = { - _("Mit dem richtigen Timing\n" - "kannst Du sehr hoch\n" - "springen. Den Dreisprung\n" - "kannst Du ausführen, wenn\n" - "Du rennst und dreimal\n" - "hintereinander springst.\n" - "Wandsprünge sind eine\n" - "effektive Methode, um\n" - "hohe Stellen zu erreichen.\n" - "Springe an eine Wand.\n" - "Sobald Du sie berührst,\n" - "mußt Du erneut springen!") -}; - - -// 0x1900872C -static const u8 Dialog159[] = { - _("Gehst Du in die Hocke und\n" - "drückst den Sprungknopf,\n" - "kannst Du einen\n" - "Rückwärtssalto ausführen.\n" - "Du machst einen\n" - "Weitsprung, wenn Du im\n" - "Rennen den [Z]-Knopf\n" - "drückst und springst.") -}; - - -// 0x190087DC -static const u8 Dialog160[] = { - _("Drücke im Rennen den\n" - "[B]-Knopf, um einen\n" - "Hechtsprung zu machen.\n" - "Mit dem [A]- oder [B]-Knopf\n" - "kommt Mario auf die Füße\n" - "zurück.") -}; - - -// 0x19008854 -static const u8 Dialog161[] = { - _("Hey... Mario!!! Seit\n" - "unserem letzten Abenteuer\n" - "ist viel Zeit vergangen.\n" - "Ich freue mich, Dich\n" - "wiederzusehen.\n" - "Man erzählte mir, daß ich\n" - "Dich hier treffen könnte,\n" - "aber ich hatte die\n" - "Hoffnung schon fast\n" - "aufgegeben.\n" - "Ist es wahr? Du hast\n" - "Bowser besiegt und alle\n" - "gestohlenen Power-Sterne\n" - "zurückerobert?\n" - "Unglaublich!!!\n" - "Und die Prinzessin?\n" - "Du hast sie gerettet?\n" - "Cool! Aber ich wußte\n" - "natürlich, daß Du es\n" - "schaffen würdest.\n" - "Nun habe ich noch eine\n" - "ganz spezielle Nachricht\n" - "für Dich:\n" - "Danke, daß Du SUPER\n" - "MARIO 64 gespielt hast.\n" - "Du hast jetzt alle Sterne\n" - "gefunden und damit das\n" - "Spiel beendet. Aber wir\n" - "haben noch eine kleine\n" - "Überraschung für Dich!\n" - "Wir hoffen, sie wird Dir\n" - "gefallen, denn du kannst\n" - "das Spiel nochmals unter\n" - "veränderten Bedingungen\n" - "spielen. Viel Spaß!\n" - "Es könnte sein, daß Du\n" - "dabei neue Entdeckungen\n" - "machst, die Dir bis jetzt\n" - "verborgen geblieben sind.\n" - "Das Super Mario 64 Team") -}; - - -// 0x19008BC0 -static const u8 Dialog162[] = { - _("Nein, nein, nein! Nicht\n" - "Du schon wieder! Ich habe\n" - "jetzt wirklich keine Zeit,\n" - "über Sterne zu quatschen!\n" - "Hier, nimm ihn und laß\n" - "mich runter. Ich habe noch\n" - "wichtige Geschäfte zu\n" - "erledigen!") -}; - - -// 0x19008C7C -static const u8 Dialog163[] = { - _("Ich glaub's nicht! Du hast\n" - "mich besiegt...wie konnte\n" - "das nur geschehen. Meine\n" - "Truppen, die Sterne...\n" - "alles umsonst!\n" - "Was??? Es gab insgesamt\n" - "120 Sterne im Schloss zu\n" - "finden? Dann habe ich\n" - "wohl einige bei meiner\n" - "Suche übersehen!\n" - "Jetzt kehrt der Frieden\n" - "zurück in die Welten der\n" - "Gemälde - was für ein\n" - "fürchterlicher Gedanke...\n" - "Aaaaaarrrgghhhh!!!\n" - "Das kann ich mir nicht\n" - "länger ansehen - ich\n" - "verschwinde. So long...\n" - "Bis zum nächsten Mal.\n" - "Ich komme wieder...") -}; - - -// 0x19008E44 -static const u8 Dialog164[] = { - _("Hi! Wie geht's, Mario?\n" - "Ich bin zwar etwas außer\n" - "Übung, aber ein Rennen\n" - "gegen den Schlidderkönig\n" - "ist immer eine große\n" - "Herausforderung.\n" - "Also, Kumpel, wie steht's?\n" - "Sollen wir ein kleines\n" - "Match wagen?\n" - "\n" - "//Okay!///Später!") -}; - - -// 0x19008F1C -static const u8 Dialog165[] = { - _("Sei vorsichtig, wenn Du\n" - "um den Pfahl herumrennst,\n" - "damit Dir nicht schlecht\n" - "wird!") -}; - - -// 0x19008F70 -static const u8 Dialog166[] = { - _("Ich mache gerade einen\n" - "kleinen Waldlauf. Komm\n" - "doch später wieder\n" - "vorbei!\n" - "Dein Freund Koopa") -}; - - -// 0x19008FCC -static const u8 Dialog167[] = { - _("Dort vorne ist das\n" - "Schloss der Prinzessin.\n" - "Sieh Dich zunächst hier\n" - "im Schlossgarten um.\n" - "Die Steuerung ist ganz\n" - "einfach:\n" - "Drücke den [A]-Knopf, um\n" - "zu springen.\n" - "Schläge kannst Du mit\n" - "dem [B]-Knopf ausführen.\n" - "Drückst Du den [Z]-Knopf,\n" - "duckt sich Mario.\n" - "Schilder kannst Du mit\n" - "dem [A]- oder [B]-Knopf\n" - "lesen, wenn Du direkt\n" - "davor stehst.") -}; - - -// 0x19009110 -static const u8 Dialog168[] = { - _("Bist Du immer noch hier?\n" - "Findest Du nicht, daß\n" - "Du bereits genug Schaden\n" - "angerichtet hast?") -}; - - -// 0x1900916C -static const u8 Dialog169[] = { - _("Dies ist die erste und\n" - "letzte Warnung:\n" - "Das Betreten dieser\n" - "Höhle ist verboten!!!\n" - "Wer sich hier ohne meine\n" - "Erlaubnis Zutritt\n" - "verschafft, handelt sich\n" - "eine Menge Ärger ein!!!") -}; - - -// dialog entry table 0x1900921C -static const struct DialogEntry dialog_text_000 = { - 1, 6, 30, 200, Dialog000 -}; - -static const struct DialogEntry dialog_text_001 = { - 1, 4, 95, 200, Dialog001 -}; - -static const struct DialogEntry dialog_text_002 = { - 1, 4, 95, 200, Dialog002 -}; - -static const struct DialogEntry dialog_text_003 = { - 1, 5, 95, 200, Dialog003 -}; - -static const struct DialogEntry dialog_text_004 = { - 1, 3, 95, 200, Dialog004 -}; - -static const struct DialogEntry dialog_text_005 = { - 1, 4, 30, 200, Dialog005 -}; - -static const struct DialogEntry dialog_text_006 = { - 1, 3, 30, 200, Dialog006 -}; - -static const struct DialogEntry dialog_text_007 = { - 1, 5, 30, 200, Dialog007 -}; - -static const struct DialogEntry dialog_text_008 = { - 1, 5, 30, 200, Dialog008 -}; - -static const struct DialogEntry dialog_text_009 = { - 1, 5, 30, 200, Dialog009 -}; - -static const struct DialogEntry dialog_text_010 = { - 1, 4, 30, 200, Dialog010 -}; - -static const struct DialogEntry dialog_text_011 = { - 1, 4, 30, 200, Dialog011 -}; - -static const struct DialogEntry dialog_text_012 = { - 1, 4, 30, 200, Dialog012 -}; - -static const struct DialogEntry dialog_text_013 = { - 1, 6, 30, 200, Dialog013 -}; - -static const struct DialogEntry dialog_text_014 = { - 1, 6, 30, 200, Dialog014 -}; - -static const struct DialogEntry dialog_text_015 = { - 1, 4, 30, 200, Dialog015 -}; - -static const struct DialogEntry dialog_text_016 = { - 1, 4, 30, 200, Dialog016 -}; - -static const struct DialogEntry dialog_text_017 = { - 1, 4, 30, 200, Dialog017 -}; - -static const struct DialogEntry dialog_text_018 = { - 1, 4, 30, 200, Dialog018 -}; - -static const struct DialogEntry dialog_text_019 = { - 1, 2, 30, 200, Dialog019 -}; - -static const struct DialogEntry dialog_text_020 = { - 1, 6, 95, 150, Dialog020 -}; - -static const struct DialogEntry dialog_text_021 = { - 1, 5, 95, 200, Dialog021 -}; - -static const struct DialogEntry dialog_text_022 = { - 1, 3, 95, 200, Dialog022 -}; - -static const struct DialogEntry dialog_text_023 = { - 1, 2, 95, 200, Dialog023 -}; - -static const struct DialogEntry dialog_text_024 = { - 1, 4, 95, 200, Dialog024 -}; - -static const struct DialogEntry dialog_text_025 = { - 1, 4, 95, 200, Dialog025 -}; - -static const struct DialogEntry dialog_text_026 = { - 1, 4, 95, 200, Dialog026 -}; - -static const struct DialogEntry dialog_text_027 = { - 1, 4, 95, 200, Dialog027 -}; - -static const struct DialogEntry dialog_text_028 = { - 1, 4, 95, 200, Dialog028 -}; - -static const struct DialogEntry dialog_text_029 = { - 1, 4, 95, 200, Dialog029 -}; - -static const struct DialogEntry dialog_text_030 = { - 1, 4, 30, 200, Dialog030 -}; - -static const struct DialogEntry dialog_text_031 = { - 1, 3, 30, 200, Dialog031 -}; - -static const struct DialogEntry dialog_text_032 = { - 1, 5, 30, 200, Dialog032 -}; - -static const struct DialogEntry dialog_text_033 = { - 1, 4, 30, 200, Dialog033 -}; - -static const struct DialogEntry dialog_text_034 = { - 1, 5, 30, 200, Dialog034 -}; - -static const struct DialogEntry dialog_text_035 = { - 1, 5, 30, 200, Dialog035 -}; - -static const struct DialogEntry dialog_text_036 = { - 1, 5, 30, 200, Dialog036 -}; - -static const struct DialogEntry dialog_text_037 = { - 1, 3, 30, 200, Dialog037 -}; - -static const struct DialogEntry dialog_text_038 = { - 1, 2, 95, 200, Dialog038 -}; - -static const struct DialogEntry dialog_text_039 = { - 1, 5, 30, 200, Dialog039 -}; - -static const struct DialogEntry dialog_text_040 = { - 1, 3, 30, 200, Dialog040 -}; - -static const struct DialogEntry dialog_text_041 = { - 1, 4, 30, 200, Dialog041 -}; - -static const struct DialogEntry dialog_text_042 = { - 1, 4, 30, 200, Dialog042 -}; - -static const struct DialogEntry dialog_text_043 = { - 1, 4, 30, 200, Dialog043 -}; - -static const struct DialogEntry dialog_text_044 = { - 1, 5, 95, 200, Dialog044 -}; - -static const struct DialogEntry dialog_text_045 = { - 1, 6, 95, 200, Dialog045 -}; - -static const struct DialogEntry dialog_text_046 = { - 1, 4, 30, 200, Dialog046 -}; - -static const struct DialogEntry dialog_text_047 = { - 1, 3, 95, 200, Dialog047 -}; - -static const struct DialogEntry dialog_text_048 = { - 1, 6, 30, 200, Dialog048 -}; - -static const struct DialogEntry dialog_text_049 = { - 1, 5, 30, 200, Dialog049 -}; - -static const struct DialogEntry dialog_text_050 = { - 1, 4, 30, 200, Dialog050 -}; - -static const struct DialogEntry dialog_text_051 = { - 1, 5, 30, 200, Dialog051 -}; - -static const struct DialogEntry dialog_text_052 = { - 1, 5, 30, 200, Dialog052 -}; - -static const struct DialogEntry dialog_text_053 = { - 1, 5, 30, 200, Dialog053 -}; - -static const struct DialogEntry dialog_text_054 = { - 1, 6, 30, 200, Dialog054 -}; - -static const struct DialogEntry dialog_text_055 = { - 1, 5, 30, 200, Dialog055 -}; - -static const struct DialogEntry dialog_text_056 = { - 1, 6, 30, 200, Dialog056 -}; - -static const struct DialogEntry dialog_text_057 = { - 1, 4, 30, 200, Dialog057 -}; - -static const struct DialogEntry dialog_text_058 = { - 1, 5, 30, 200, Dialog058 -}; - -static const struct DialogEntry dialog_text_059 = { - 1, 6, 30, 200, Dialog059 -}; - -static const struct DialogEntry dialog_text_060 = { - 1, 4, 30, 200, Dialog060 -}; - -static const struct DialogEntry dialog_text_061 = { - 1, 5, 30, 200, Dialog061 -}; - -static const struct DialogEntry dialog_text_062 = { - 1, 4, 30, 200, Dialog062 -}; - -static const struct DialogEntry dialog_text_063 = { - 1, 3, 30, 200, Dialog063 -}; - -static const struct DialogEntry dialog_text_064 = { - 1, 3, 30, 200, Dialog064 -}; - -static const struct DialogEntry dialog_text_065 = { - 1, 5, 30, 200, Dialog065 -}; - -static const struct DialogEntry dialog_text_066 = { - 1, 5, 30, 200, Dialog066 -}; - -static const struct DialogEntry dialog_text_067 = { - 1, 5, 30, 200, Dialog067 -}; - -static const struct DialogEntry dialog_text_068 = { - 1, 5, 30, 200, Dialog068 -}; - -static const struct DialogEntry dialog_text_069 = { - 1, 4, 30, 200, Dialog069 -}; - -static const struct DialogEntry dialog_text_070 = { - 1, 4, 30, 200, Dialog070 -}; - -static const struct DialogEntry dialog_text_071 = { - 1, 4, 30, 200, Dialog071 -}; - -static const struct DialogEntry dialog_text_072 = { - 1, 5, 30, 200, Dialog072 -}; - -static const struct DialogEntry dialog_text_073 = { - 1, 5, 95, 200, Dialog073 -}; - -static const struct DialogEntry dialog_text_074 = { - 1, 5, 30, 200, Dialog074 -}; - -static const struct DialogEntry dialog_text_075 = { - 1, 5, 30, 200, Dialog075 -}; - -static const struct DialogEntry dialog_text_076 = { - 1, 4, 30, 200, Dialog076 -}; - -static const struct DialogEntry dialog_text_077 = { - 1, 4, 150, 200, Dialog077 -}; - -static const struct DialogEntry dialog_text_078 = { - 1, 5, 30, 200, Dialog078 -}; - -static const struct DialogEntry dialog_text_079 = { - 1, 4, 30, 200, Dialog079 -}; - -static const struct DialogEntry dialog_text_080 = { - 1, 3, 30, 200, Dialog080 -}; - -static const struct DialogEntry dialog_text_081 = { - 1, 5, 30, 200, Dialog081 -}; - -static const struct DialogEntry dialog_text_082 = { - 1, 4, 30, 200, Dialog082 -}; - -static const struct DialogEntry dialog_text_083 = { - 1, 6, 30, 200, Dialog083 -}; - -static const struct DialogEntry dialog_text_084 = { - 1, 5, 30, 200, Dialog084 -}; - -static const struct DialogEntry dialog_text_085 = { - 1, 4, 30, 200, Dialog085 -}; - -static const struct DialogEntry dialog_text_086 = { - 1, 3, 40, 200, Dialog086 -}; - -static const struct DialogEntry dialog_text_087 = { - 1, 3, 30, 200, Dialog087 -}; - -static const struct DialogEntry dialog_text_088 = { - 1, 2, 30, 200, Dialog088 -}; - -static const struct DialogEntry dialog_text_089 = { - 1, 4, 95, 200, Dialog089 -}; - -static const struct DialogEntry dialog_text_090 = { - 1, 5, 30, 200, Dialog090 -}; - -static const struct DialogEntry dialog_text_091 = { - 1, 3, 30, 200, Dialog091 -}; - -static const struct DialogEntry dialog_text_092 = { - 1, 4, 30, 200, Dialog092 -}; - -static const struct DialogEntry dialog_text_093 = { - 1, 4, 30, 200, Dialog093 -}; - -static const struct DialogEntry dialog_text_094 = { - 1, 4, 30, 200, Dialog094 -}; - -static const struct DialogEntry dialog_text_095 = { - 1, 3, 30, 200, Dialog095 -}; - -static const struct DialogEntry dialog_text_096 = { - 1, 4, 30, 200, Dialog096 -}; - -static const struct DialogEntry dialog_text_097 = { - 1, 6, 30, 200, Dialog097 -}; - -static const struct DialogEntry dialog_text_098 = { - 1, 1, 95, 200, Dialog098 -}; - -static const struct DialogEntry dialog_text_099 = { - 1, 3, 95, 200, Dialog099 -}; - -static const struct DialogEntry dialog_text_100 = { - 1, 2, 95, 200, Dialog100 -}; - -static const struct DialogEntry dialog_text_101 = { - 1, 5, 95, 200, Dialog101 -}; - -static const struct DialogEntry dialog_text_102 = { - 1, 5, 30, 200, Dialog102 -}; - -static const struct DialogEntry dialog_text_103 = { - 1, 4, 95, 200, Dialog103 -}; - -static const struct DialogEntry dialog_text_104 = { - 1, 4, 30, 200, Dialog104 -}; - -static const struct DialogEntry dialog_text_105 = { - 1, 5, 95, 200, Dialog105 -}; - -static const struct DialogEntry dialog_text_106 = { - 1, 2, 95, 200, Dialog106 -}; - -static const struct DialogEntry dialog_text_107 = { - 1, 4, 95, 200, Dialog107 -}; - -static const struct DialogEntry dialog_text_108 = { - 1, 6, 95, 200, Dialog108 -}; - -static const struct DialogEntry dialog_text_109 = { - 1, 4, 95, 200, Dialog109 -}; - -static const struct DialogEntry dialog_text_110 = { - 1, 5, 95, 200, Dialog110 -}; - -static const struct DialogEntry dialog_text_111 = { - 1, 3, 95, 200, Dialog111 -}; - -static const struct DialogEntry dialog_text_112 = { - 1, 4, 30, 200, Dialog112 -}; - -static const struct DialogEntry dialog_text_113 = { - 1, 6, 30, 200, Dialog113 -}; - -static const struct DialogEntry dialog_text_114 = { - 1, 4, 95, 200, Dialog114 -}; - -static const struct DialogEntry dialog_text_115 = { - 1, 4, 95, 200, Dialog115 -}; - -static const struct DialogEntry dialog_text_116 = { - 1, 4, 95, 200, Dialog116 -}; - -static const struct DialogEntry dialog_text_117 = { - 1, 4, 95, 200, Dialog117 -}; - -static const struct DialogEntry dialog_text_118 = { - 1, 6, 95, 200, Dialog118 -}; - -static const struct DialogEntry dialog_text_119 = { - 1, 6, 30, 200, Dialog119 -}; - -static const struct DialogEntry dialog_text_120 = { - 1, 4, 30, 200, Dialog120 -}; - -static const struct DialogEntry dialog_text_121 = { - 1, 6, 30, 200, Dialog121 -}; - -static const struct DialogEntry dialog_text_122 = { - 1, 4, 30, 200, Dialog122 -}; - -static const struct DialogEntry dialog_text_123 = { - 1, 3, 30, 200, Dialog123 -}; - -static const struct DialogEntry dialog_text_124 = { - 1, 5, 30, 200, Dialog124 -}; - -static const struct DialogEntry dialog_text_125 = { - 1, 3, 30, 200, Dialog125 -}; - -static const struct DialogEntry dialog_text_126 = { - 1, 3, 30, 200, Dialog126 -}; - -static const struct DialogEntry dialog_text_127 = { - 1, 4, 30, 200, Dialog127 -}; - -static const struct DialogEntry dialog_text_128 = { - 1, 4, 95, 200, Dialog128 -}; - -static const struct DialogEntry dialog_text_129 = { - 1, 4, 30, 200, Dialog129 -}; - -static const struct DialogEntry dialog_text_130 = { - 1, 4, 30, 200, Dialog130 -}; - -static const struct DialogEntry dialog_text_131 = { - 1, 4, 30, 200, Dialog131 -}; - -static const struct DialogEntry dialog_text_132 = { - 1, 3, 30, 200, Dialog132 -}; - -static const struct DialogEntry dialog_text_133 = { - 1, 5, 30, 200, Dialog133 -}; - -static const struct DialogEntry dialog_text_134 = { - 1, 4, 30, 200, Dialog134 -}; - -static const struct DialogEntry dialog_text_135 = { - 1, 5, 30, 200, Dialog135 -}; - -static const struct DialogEntry dialog_text_136 = { - 1, 4, 30, 200, Dialog136 -}; - -static const struct DialogEntry dialog_text_137 = { - 1, 5, 30, 200, Dialog137 -}; - -static const struct DialogEntry dialog_text_138 = { - 1, 4, 30, 200, Dialog138 -}; - -static const struct DialogEntry dialog_text_139 = { - 1, 4, 30, 200, Dialog139 -}; - -static const struct DialogEntry dialog_text_140 = { - 1, 6, 30, 200, Dialog140 -}; - -static const struct DialogEntry dialog_text_141 = { - 1, 5, 150, 200, Dialog141 -}; - -static const struct DialogEntry dialog_text_142 = { - 1, 5, 150, 200, Dialog142 -}; - -static const struct DialogEntry dialog_text_143 = { - 1, 6, 150, 200, Dialog143 -}; - -static const struct DialogEntry dialog_text_144 = { - 1, 5, 150, 200, Dialog144 -}; - -static const struct DialogEntry dialog_text_145 = { - 1, 4, 150, 200, Dialog145 -}; - -static const struct DialogEntry dialog_text_146 = { - 1, 6, 150, 200, Dialog146 -}; - -static const struct DialogEntry dialog_text_147 = { - 1, 4, 30, 200, Dialog147 -}; - -static const struct DialogEntry dialog_text_148 = { - 1, 4, 30, 200, Dialog148 -}; - -static const struct DialogEntry dialog_text_149 = { - 1, 5, 30, 200, Dialog149 -}; - -static const struct DialogEntry dialog_text_150 = { - 1, 5, 30, 200, Dialog150 -}; - -static const struct DialogEntry dialog_text_151 = { - 1, 5, 30, 200, Dialog151 -}; - -static const struct DialogEntry dialog_text_152 = { - 1, 4, 30, 200, Dialog152 -}; - -static const struct DialogEntry dialog_text_153 = { - 1, 4, 30, 200, Dialog153 -}; - -static const struct DialogEntry dialog_text_154 = { - 1, 6, 30, 200, Dialog154 -}; - -static const struct DialogEntry dialog_text_155 = { - 1, 3, 30, 200, Dialog155 -}; - -static const struct DialogEntry dialog_text_156 = { - 1, 4, 30, 200, Dialog156 -}; - -static const struct DialogEntry dialog_text_157 = { - 1, 5, 30, 200, Dialog157 -}; - -static const struct DialogEntry dialog_text_158 = { - 1, 6, 30, 200, Dialog158 -}; - -static const struct DialogEntry dialog_text_159 = { - 1, 4, 30, 200, Dialog159 -}; - -static const struct DialogEntry dialog_text_160 = { - 1, 6, 30, 200, Dialog160 -}; - -static const struct DialogEntry dialog_text_161 = { - 1, 5, 30, 200, Dialog161 -}; - -static const struct DialogEntry dialog_text_162 = { - 1, 4, 30, 200, Dialog162 -}; - -static const struct DialogEntry dialog_text_163 = { - 1, 5, 30, 200, Dialog163 -}; - -static const struct DialogEntry dialog_text_164 = { - 1, 6, 30, 200, Dialog164 -}; - -static const struct DialogEntry dialog_text_165 = { - 1, 4, 30, 200, Dialog165 -}; - -static const struct DialogEntry dialog_text_166 = { - 1, 5, 30, 200, Dialog166 -}; - -static const struct DialogEntry dialog_text_167 = { - 1, 4, 30, 200, Dialog167 -}; - -static const struct DialogEntry dialog_text_168 = { - 1, 4, 30, 200, Dialog168 -}; - -static const struct DialogEntry dialog_text_169 = { - 1, 4, 30, 200, Dialog169 -}; - - -// dialog table -// 0x19009CBC -const struct DialogEntry *const dialog_table_eu_de[] = { - &dialog_text_000, &dialog_text_001, &dialog_text_002, &dialog_text_003, - &dialog_text_004, &dialog_text_005, &dialog_text_006, &dialog_text_007, - &dialog_text_008, &dialog_text_009, &dialog_text_010, &dialog_text_011, - &dialog_text_012, &dialog_text_013, &dialog_text_014, &dialog_text_015, - &dialog_text_016, &dialog_text_017, &dialog_text_018, &dialog_text_019, - &dialog_text_020, &dialog_text_021, &dialog_text_022, &dialog_text_023, - &dialog_text_024, &dialog_text_025, &dialog_text_026, &dialog_text_027, - &dialog_text_028, &dialog_text_029, &dialog_text_030, &dialog_text_031, - &dialog_text_032, &dialog_text_033, &dialog_text_034, &dialog_text_035, - &dialog_text_036, &dialog_text_037, &dialog_text_038, &dialog_text_039, - &dialog_text_040, &dialog_text_041, &dialog_text_042, &dialog_text_043, - &dialog_text_044, &dialog_text_045, &dialog_text_046, &dialog_text_047, - &dialog_text_048, &dialog_text_049, &dialog_text_050, &dialog_text_051, - &dialog_text_052, &dialog_text_053, &dialog_text_054, &dialog_text_055, - &dialog_text_056, &dialog_text_057, &dialog_text_058, &dialog_text_059, - &dialog_text_060, &dialog_text_061, &dialog_text_062, &dialog_text_063, - &dialog_text_064, &dialog_text_065, &dialog_text_066, &dialog_text_067, - &dialog_text_068, &dialog_text_069, &dialog_text_070, &dialog_text_071, - &dialog_text_072, &dialog_text_073, &dialog_text_074, &dialog_text_075, - &dialog_text_076, &dialog_text_077, &dialog_text_078, &dialog_text_079, - &dialog_text_080, &dialog_text_081, &dialog_text_082, &dialog_text_083, - &dialog_text_084, &dialog_text_085, &dialog_text_086, &dialog_text_087, - &dialog_text_088, &dialog_text_089, &dialog_text_090, &dialog_text_091, - &dialog_text_092, &dialog_text_093, &dialog_text_094, &dialog_text_095, - &dialog_text_096, &dialog_text_097, &dialog_text_098, &dialog_text_099, - &dialog_text_100, &dialog_text_101, &dialog_text_102, &dialog_text_103, - &dialog_text_104, &dialog_text_105, &dialog_text_106, &dialog_text_107, - &dialog_text_108, &dialog_text_109, &dialog_text_110, &dialog_text_111, - &dialog_text_112, &dialog_text_113, &dialog_text_114, &dialog_text_115, - &dialog_text_116, &dialog_text_117, &dialog_text_118, &dialog_text_119, - &dialog_text_120, &dialog_text_121, &dialog_text_122, &dialog_text_123, - &dialog_text_124, &dialog_text_125, &dialog_text_126, &dialog_text_127, - &dialog_text_128, &dialog_text_129, &dialog_text_130, &dialog_text_131, - &dialog_text_132, &dialog_text_133, &dialog_text_134, &dialog_text_135, - &dialog_text_136, &dialog_text_137, &dialog_text_138, &dialog_text_139, - &dialog_text_140, &dialog_text_141, &dialog_text_142, &dialog_text_143, - &dialog_text_144, &dialog_text_145, &dialog_text_146, &dialog_text_147, - &dialog_text_148, &dialog_text_149, &dialog_text_150, &dialog_text_151, - &dialog_text_152, &dialog_text_153, &dialog_text_154, &dialog_text_155, - &dialog_text_156, &dialog_text_157, &dialog_text_158, &dialog_text_159, - &dialog_text_160, &dialog_text_161, &dialog_text_162, &dialog_text_163, - &dialog_text_164, &dialog_text_165, &dialog_text_166, &dialog_text_167, - &dialog_text_168, &dialog_text_169, NULL, -}; - diff --git a/text/eu/de/level.c.in b/text/eu/de/level.c.in deleted file mode 100644 index 5df4528..0000000 --- a/text/eu/de/level.c.in +++ /dev/null @@ -1,169 +0,0 @@ -// level names (EU, Deutsch) -// 0x19009F68 -static const u8 level_name_01[] = { - _(" 1 BOB-OMBS BOMBENBERG") -}; - - -// 0x19009F80 -static const u8 level_name_02[] = { - _(" 2 WUMMPS WUCHTWALL") -}; - - -// 0x19009F94 -static const u8 level_name_03[] = { - _(" 3 PIRATENBUCHT PANIK") -}; - - -// 0x19009FAC -static const u8 level_name_04[] = { - _(" 4 BIBBERBERG BOB") -}; - - -// 0x19009FC0 -static const u8 level_name_05[] = { - _(" 5 BIG BOOS BURG") -}; - - -// 0x19009FD4 -static const u8 level_name_06[] = { - _(" 6 GRÜNE GIFTGROTTE") -}; - - -// 0x19009FE8 -static const u8 level_name_07[] = { - _(" 7 LAVA LAGUNE") -}; - - -// 0x19009FF8 -static const u8 level_name_08[] = { - _(" 8 WOBIWABA WÜSTE") -}; - - -// 0x1900A00C -static const u8 level_name_09[] = { - _(" 9 WILDE WASSERWERFT") -}; - - -// 0x1900A024 -static const u8 level_name_10[] = { - _("10 FROSTBEULEN FRUST") -}; - - -// 0x1900A03C -static const u8 level_name_11[] = { - _("11 ATLANTIS AQUARIA") -}; - - -// 0x1900A050 -static const u8 level_name_12[] = { - _("12 FLIEGENPILZ FIASKO") -}; - - -// 0x1900A068 -static const u8 level_name_13[] = { - _("13 GULLIVER GUMBA") -}; - - -// 0x1900A07C -static const u8 level_name_14[] = { - _("14 TICK TACK TRAUMA") -}; - - -// 0x1900A090 -static const u8 level_name_15[] = { - _("15 REGENBOGEN RASEREI") -}; - - -// 0x1900A0A8 -static const u8 level_name_16[] = { - _(" BOWSERS SCHATTENWELT") -}; - - -// 0x1900A0C0 -static const u8 level_name_17[] = { - _(" BOWSERS LAVASEE") -}; - - -// 0x1900A0D4 -static const u8 level_name_18[] = { - _(" BOWSERS LUFTSCHLOSS") -}; - - -// 0x1900A0EC -static const u8 level_name_19[] = { - _(" TOADSTOOLS RUTSCHBAHN") -}; - - -// 0x1900A108 -static const u8 level_name_20[] = { - _(" GRÜNER SCHALTERPALAST") -}; - - -// 0x1900A124 -static const u8 level_name_21[] = { - _(" ROTER SCHALTERPALAST") -}; - - -// 0x1900A13C -static const u8 level_name_22[] = { - _(" BLAUER SCHALTERPALAST") -}; - - -// 0x1900A158 -static const u8 level_name_23[] = { - _(" REGENBOGEN FEUERWERK") -}; - - -// 0x1900A170 -static const u8 level_name_24[] = { - _(" VERSTECKTES AQUARIUM") -}; - - -// 0x1900A188 -static const u8 level_name_25[] = { - _("") -}; - - -// 0x1900A18C -static const u8 level_name_castle_secret_stars[] = { - _(" GEHEIME STERNE") -}; - - -// level name table -// 0x1900A1A0 -const u8 *const level_name_table_eu_de[] = { - level_name_01, level_name_02, level_name_03, level_name_04, - level_name_05, level_name_06, level_name_07, level_name_08, - level_name_09, level_name_10, level_name_11, level_name_12, - level_name_13, level_name_14, level_name_15, level_name_16, - level_name_17, level_name_18, level_name_19, level_name_20, - level_name_21, level_name_22, level_name_23, level_name_24, - level_name_25, level_name_castle_secret_stars, 0x0, -}; - diff --git a/text/eu/de/star.c.in b/text/eu/de/star.c.in deleted file mode 100644 index eb47cd6..0000000 --- a/text/eu/de/star.c.in +++ /dev/null @@ -1,613 +0,0 @@ -// act names (EU, Deutsch) -// 0x1900A20C -static const u8 act_name_00[] = { - _("BESIEGE KÖNIG BOB-OMB!") -}; - - -// 0x1900A224 -static const u8 act_name_01[] = { - _("BESIEGE DEN SCHNELLEN KOOPA!") -}; - - -// 0x1900A244 -static const u8 act_name_02[] = { - _("FLIEGE ZUR SCHWEBENDEN INSEL!") -}; - - -// 0x1900A264 -static const u8 act_name_03[] = { - _("FINDE DIE 8 ROTEN MÜNZEN!") -}; - - -// 0x1900A280 -static const u8 act_name_04[] = { - _("DURCHFLIEGE ALLE MÜNZENRINGE!") -}; - - -// 0x1900A2A0 -static const u8 act_name_05[] = { - _("BEFREIE DEN KETTENHUND!") -}; - - -// 0x1900A2B8 -static const u8 act_name_06[] = { - _("BESIEGE KÖNIG WUMMP!") -}; - - -// 0x1900A2D0 -static const u8 act_name_07[] = { - _("STEIGE AUF DIE BERGFESTUNG!") -}; - - -// 0x1900A2EC -static const u8 act_name_08[] = { - _("FLIEG INS BLAUE!") -}; - - -// 0x1900A300 -static const u8 act_name_09[] = { - _("FINDE DIE 8 ROTEN MÜNZEN!") -}; - - -// 0x1900A31C -static const u8 act_name_10[] = { - _("WECKE DIE EULE!") -}; - - -// 0x1900A32C -static const u8 act_name_11[] = { - _("ZERSTÖRE DIE FELSWAND!") -}; - - -// 0x1900A344 -static const u8 act_name_12[] = { - _("TAUCHE IN DAS SCHIFFSWRACK!") -}; - - -// 0x1900A360 -static const u8 act_name_13[] = { - _("LOCKE DEN AAL KANO HERAUS!") -}; - - -// 0x1900A37C -static const u8 act_name_14[] = { - _("TAUCHE ZUR SCHATZHÖHLE!") -}; - - -// 0x1900A394 -static const u8 act_name_15[] = { - _("FINDE DIE 8 ROTEN MÜNZEN!") -}; - - -// 0x1900A3B0 -static const u8 act_name_16[] = { - _("FLIEGE ZU DEN STEINSÄULEN!") -}; - - -// 0x1900A3CC -static const u8 act_name_17[] = { - _("LAUFE DURCH DEN STRUDEL!") -}; - - -// 0x1900A3E8 -static const u8 act_name_18[] = { - _("RUTSCHE AUF DER EISBAHN!") -}; - - -// 0x1900A404 -static const u8 act_name_19[] = { - _("FINDE DAS PINGUINBABY!") -}; - - -// 0x1900A41C -static const u8 act_name_20[] = { - _("BESIEGE DEN SCHNELLEN PINGUIN!") -}; - - -// 0x1900A43C -static const u8 act_name_21[] = { - _("FINDE DIE 8 ROTEN MÜNZEN!") -}; - - -// 0x1900A458 -static const u8 act_name_22[] = { - _("BAUE EINEN SCHNEEMANN!") -}; - - -// 0x1900A470 -static const u8 act_name_23[] = { - _("DENKE AN DEN WANDSPRUNG!") -}; - - -// 0x1900A48C -static const u8 act_name_24[] = { - _("GEHE AUF GEISTERJAGD!") -}; - - -// 0x1900A4A4 -static const u8 act_name_25[] = { - _("BESUCHE BIG BOOS KARUSSEL!") -}; - - -// 0x1900A4C0 -static const u8 act_name_26[] = { - _("LÖSE DAS BÜCHEREI-RÄTSEL!") -}; - - -// 0x1900A4DC -static const u8 act_name_27[] = { - _("FINDE DIE 8 ROTEN MÜNZEN!") -}; - - -// 0x1900A4F8 -static const u8 act_name_28[] = { - _("KLETTERE AUF BIG BOOS BALKON!") -}; - - -// 0x1900A518 -static const u8 act_name_29[] = { - _("FINDE DAS AUGE IM GEHEIMRAUM!") -}; - - -// 0x1900A538 -static const u8 act_name_30[] = { - _("KLETTERE AUF NESSIS RÜCKEN!") -}; - - -// 0x1900A554 -static const u8 act_name_31[] = { - _("FINDE DIE 8 ROTEN MÜNZEN!") -}; - - -// 0x1900A570 -static const u8 act_name_32[] = { - _("LAUFE AUF DEM GRUND DES SEES!") -}; - - -// 0x1900A590 -static const u8 act_name_33[] = { - _("DURCHSUCHE DAS NEBELLABYRINTH!") -}; - - -// 0x1900A5B0 -static const u8 act_name_34[] = { - _("SUCHE IM NEBEL DEN NOTAUSGANG!") -}; - - -// 0x1900A5D0 -static const u8 act_name_35[] = { - _("ACHTE AUF ROLLENDE FELSEN!") -}; - - -// 0x1900A5EC -static const u8 act_name_36[] = { - _("WERFE BIG BULLY IN DIE LAVA!") -}; - - -// 0x1900A60C -static const u8 act_name_37[] = { - _("WERFE DIE BULLIES IN DIE LAVA!") -}; - - -// 0x1900A62C -static const u8 act_name_38[] = { - _("FINDE DIE 8 ROTEN MÜNZEN!") -}; - - -// 0x1900A648 -static const u8 act_name_39[] = { - _("TANZE AUF DEM BAUMSTAMM!") -}; - - -// 0x1900A664 -static const u8 act_name_40[] = { - _("ERKUNDE DEN VULKAN!") -}; - - -// 0x1900A678 -static const u8 act_name_41[] = { - _("GEWINNE IM VULKAN AN HÖHE!") -}; - - -// 0x1900A694 -static const u8 act_name_42[] = { - _("FOLGE DEM RIESENGEIER!") -}; - - -// 0x1900A6AC -static const u8 act_name_43[] = { - _("BRINGE LICHT IN DIE PYRAMIDE!") -}; - - -// 0x1900A6CC -static const u8 act_name_44[] = { - _("BEGEBE DICH IN DIE PYRAMIDE!") -}; - - -// 0x1900A6EC -static const u8 act_name_45[] = { - _("LANDE AUF ALLEN VIER SÄULEN!") -}; - - -// 0x1900A70C -static const u8 act_name_46[] = { - _("FINDE DIE 8 ROTEN MÜNZEN!") -}; - - -// 0x1900A728 -static const u8 act_name_47[] = { - _("LÖSE DAS PYRAMIDENPUZZLE!") -}; - - -// 0x1900A744 -static const u8 act_name_48[] = { - _("ENTERE BOWSERS U-BOOT!") -}; - - -// 0x1900A75C -static const u8 act_name_49[] = { - _("ÖFFNE DIE TRUHEN!") -}; - - -// 0x1900A770 -static const u8 act_name_50[] = { - _("SPRINGE ZU DEN ROTEN MÜNZEN!") -}; - - -// 0x1900A790 -static const u8 act_name_51[] = { - _("SCHWIMME DURCH DIE RINGE!") -}; - - -// 0x1900A7AC -static const u8 act_name_52[] = { - _("FOLGE DEM FISCH!") -}; - - -// 0x1900A7C0 -static const u8 act_name_53[] = { - _("VEREINE DIE MÜTZEN!") -}; - - -// 0x1900A7D4 -static const u8 act_name_54[] = { - _("ERKLIMME DEN KOPF!") -}; - - -// 0x1900A7E8 -static const u8 act_name_55[] = { - _("SPIELE MIT BAD BULLY!") -}; - - -// 0x1900A800 -static const u8 act_name_56[] = { - _("WAGE DICH INS EIS!") -}; - - -// 0x1900A814 -static const u8 act_name_57[] = { - _("GEHE ZUM EISSEE!") -}; - - -// 0x1900A828 -static const u8 act_name_58[] = { - _("FINDE DIE 8 ROTEN MÜNZEN!") -}; - - -// 0x1900A844 -static const u8 act_name_59[] = { - _("SCHAU IM IGLU NACH!") -}; - - -// 0x1900A858 -static const u8 act_name_60[] = { - _("FOLGE DEN BLAUEN PFEILEN!") -}; - - -// 0x1900A874 -static const u8 act_name_61[] = { - _("SUCHE NACH DER SPITZE DER STADT!") -}; - - -// 0x1900A898 -static const u8 act_name_62[] = { - _("ERFORSCHE DIE HÖHEN UND TIEFEN!") -}; - - -// 0x1900A8B8 -static const u8 act_name_63[] = { - _("BEEILE DICH - EXPRESSAUFZUG!") -}; - - -// 0x1900A8D8 -static const u8 act_name_64[] = { - _("FINDE DIE 8 ROTEN MÜNZEN!") -}; - - -// 0x1900A8F4 -static const u8 act_name_65[] = { - _("BEACHTE DAS ZEITLIMIT!") -}; - - -// 0x1900A90C -static const u8 act_name_66[] = { - _("ERKLIMME DEN BERG!") -}; - - -// 0x1900A920 -static const u8 act_name_67[] = { - _("ERKUNDE DEN AFFENKÄFIG!") -}; - - -// 0x1900A938 -static const u8 act_name_68[] = { - _("FINDE DIE 8 ROTEN MÜNZEN!") -}; - - -// 0x1900A954 -static const u8 act_name_69[] = { - _("ERFORSCHE DIE STEILWAND!") -}; - - -// 0x1900A970 -static const u8 act_name_70[] = { - _("HALTE AUSSCHAU AUF DER BRÜCKE!") -}; - - -// 0x1900A990 -static const u8 act_name_71[] = { - _("SUCHE DEN EINSAMEN PILZ!") -}; - - -// 0x1900A9AC -static const u8 act_name_72[] = { - _("PFLÜCKE DIE SCHNAPP-PIRANHA!") -}; - - -// 0x1900A9CC -static const u8 act_name_73[] = { - _("BEGIB DICH ZUR SPITZE DER INSEL!") -}; - - -// 0x1900A9F0 -static const u8 act_name_74[] = { - _("TRETE NOCH EINMAL GEGEN KOOPA AN!") -}; - - -// 0x1900AA14 -static const u8 act_name_75[] = { - _("LÖSE DIE 5 ITTY BITTY-RÄTSEL!") -}; - - -// 0x1900AA34 -static const u8 act_name_76[] = { - _("FINDE DIE 8 ROTEN MÜNZEN!") -}; - - -// 0x1900AA50 -static const u8 act_name_77[] = { - _("DREHE WIGGLER IM KREIS!") -}; - - -// 0x1900AA68 -static const u8 act_name_78[] = { - _("ROLLE DEN KÄFIG!") -}; - - -// 0x1900AA7C -static const u8 act_name_79[] = { - _("ACHTE AUF DAS PENDEL!") -}; - - -// 0x1900AA94 -static const u8 act_name_80[] = { - _("LASS DIR DEN WEG ZEIGEN!") -}; - - -// 0x1900AAB0 -static const u8 act_name_81[] = { - _("STAMPFE MÄCHTIG AUF!") -}; - - -// 0x1900AAC8 -static const u8 act_name_82[] = { - _("SPRINGE AUF DEN SCHWEBEBALKEN!") -}; - - -// 0x1900AAE8 -static const u8 act_name_83[] = { - _("FINDE DIE 8 ROTEN MÜNZEN!") -}; - - -// 0x1900AB04 -static const u8 act_name_84[] = { - _("REISE AUF DEN REGENBÖGEN!") -}; - - -// 0x1900AB20 -static const u8 act_name_85[] = { - _("SUCHE DAS HAUS AM HIMMEL!") -}; - - -// 0x1900AB3C -static const u8 act_name_86[] = { - _("FINDE DIE 8 ROTEN MÜNZEN!") -}; - - -// 0x1900AB58 -static const u8 act_name_87[] = { - _("LASS DICH VON DER BRISE TRAGEN!") -}; - - -// 0x1900AB78 -static const u8 act_name_88[] = { - _("ÜBERWINDE DIE MACHT DER DREIECKE!") -}; - - -// 0x1900AB9C -static const u8 act_name_89[] = { - _("SCHAU DIR DEN REGENBOGEN AN!") -}; - - -// 0x1900ABBC -static const u8 act_name_90[] = { - _("EIN GEHEIMER STERN DES SCHLOSSES!") -}; - - -// 0x1900ABE0 -static const u8 act_name_91[] = { - _("") -}; - - -// 0x1900ABE4 -static const u8 act_name_92[] = { - _("") -}; - - -// 0x1900ABE8 -static const u8 act_name_93[] = { - _("") -}; - - -// 0x1900ABEC -static const u8 act_name_94[] = { - _("") -}; - - -// 0x1900ABF0 -static const u8 act_name_95[] = { - _("") -}; - - -// 0x1900ABF4 -static const u8 act_name_96[] = { - _("") -}; - - -// act names table -// 0x1900ABF8 -const u8 *const act_name_table_eu_de[] = { - act_name_00, act_name_01, act_name_02, act_name_03, - act_name_04, act_name_05, act_name_06, act_name_07, - act_name_08, act_name_09, act_name_10, act_name_11, - act_name_12, act_name_13, act_name_14, act_name_15, - act_name_16, act_name_17, act_name_18, act_name_19, - act_name_20, act_name_21, act_name_22, act_name_23, - act_name_24, act_name_25, act_name_26, act_name_27, - act_name_28, act_name_29, act_name_30, act_name_31, - act_name_32, act_name_33, act_name_34, act_name_35, - act_name_36, act_name_37, act_name_38, act_name_39, - act_name_40, act_name_41, act_name_42, act_name_43, - act_name_44, act_name_45, act_name_46, act_name_47, - act_name_48, act_name_49, act_name_50, act_name_51, - act_name_52, act_name_53, act_name_54, act_name_55, - act_name_56, act_name_57, act_name_58, act_name_59, - act_name_60, act_name_61, act_name_62, act_name_63, - act_name_64, act_name_65, act_name_66, act_name_67, - act_name_68, act_name_69, act_name_70, act_name_71, - act_name_72, act_name_73, act_name_74, act_name_75, - act_name_76, act_name_77, act_name_78, act_name_79, - act_name_80, act_name_81, act_name_82, act_name_83, - act_name_84, act_name_85, act_name_86, act_name_87, - act_name_88, act_name_89, act_name_90, act_name_91, - act_name_92, act_name_93, act_name_94, act_name_95, - act_name_96, 0x0, -}; - diff --git a/text/eu/en/dialog.c.in b/text/eu/en/dialog.c.in deleted file mode 100644 index 74e0e51..0000000 --- a/text/eu/en/dialog.c.in +++ /dev/null @@ -1,3314 +0,0 @@ -// dialogs (EU, English) -// 0x19000000 -static const u8 Dialog000[] = { - _("Wow! You're smack in the\n" - "middle of the battlefield.\n" - "You'll find the Power\n" - "Stars that Bowser stole\n" - "inside the painting\n" - "worlds.\n" - "First, talk to the\n" - "Bob-omb Buddy. (Press [B]\n" - "to talk.) He'll certainly\n" - "help you out, and so will\n" - "his friends in other\n" - "areas.\n" - "To read signs, stop, face\n" - "them and press [B]. Press [A]\n" - "or [B] to scroll ahead. You\n" - "can talk to some other\n" - "characters by facing them\n" - "and pressing [B].") -}; - - -// 0x19000174 -static const u8 Dialog001[] = { - _("Watch out! If you wander\n" - "around here, you're liable\n" - "to be splattered by a\n" - "water bomb!\n" - "Those enemy Bob-ombs love\n" - "to fight, and they're\n" - "always finding ways to\n" - "attack.\n" - "This meadow has become\n" - "a battlefield ever since\n" - "the Big Bob-omb got his\n" - "paws on the Power Star.\n" - "Can you recover the Star\n" - "for us? Cross the bridge\n" - "and go left up the path\n" - "to find the Big Bob-omb.\n" - "Please come back to see\n" - "me after you've retrieved\n" - "the Power Star!") -}; - - -// 0x19000308 -static const u8 Dialog002[] = { - _("Hey, you! It's dangerous\n" - "ahead, so listen up! Take\n" - "my advice.\n" - "\n" - "Cross the two\n" - "bridges ahead, then\n" - "watch for falling\n" - "water bombs.\n" - "The Big Bob-omb at the\n" - "top of the mountain is\n" - "very powerful--don't let\n" - "him grab you!\n" - "We're Bob-omb Buddies,\n" - "and we're on your side.\n" - "You can talk to us\n" - "whenever you'd like to!") -}; - - -// 0x19000428 -static const u8 Dialog003[] = { - _("Thank you, Mario! The Big\n" - "Bob-omb is nothing but a\n" - "big dud now! But the\n" - "battle for the castle has\n" - "just begun.\n" - "Other enemies are holding\n" - "the other Power Stars. If\n" - "you recover more Stars,\n" - "you can open new doors\n" - "that lead to new worlds!\n" - "My Bob-omb Buddies are\n" - "waiting for you. Be sure\n" - "to talk to them--they'll\n" - "set up cannons for you.") -}; - - -// 0x1900055C -static const u8 Dialog004[] = { - _("We're peace-loving\n" - "Bob-ombs, so we don't use\n" - "cannons.\n" - "But if you'd like\n" - "to blast off, we don't\n" - "mind. Help yourself.\n" - "We'll prepare all of the\n" - "cannons in this course for\n" - "you to use. Bon Voyage!") -}; - - -// 0x19000614 -static const u8 Dialog005[] = { - _("Hey, Mario! Is it true\n" - "that you beat the Big\n" - "Bob-omb? Cool!\n" - "You must be strong. And\n" - "pretty fast. So, how fast\n" - "are you, anyway?\n" - "Fast enough to beat me...\n" - "Koopa the Quick? I don't\n" - "think so. Just try me.\n" - "How about a race to the\n" - "mountaintop, where the\n" - "Big Bob-omb was?\n" - "Whaddya say? When I say\n" - "『Go,』 let the race begin!\n" - "\n" - "Ready....\n" - "\n" - "//Go!////Don't Go") -}; - - -// 0x19000760 -static const u8 Dialog006[] = { - _("Hey!!! Don't try to cheat!\n" - "You've gotta run\n" - "the whole course.\n" - "Later. Look me up when\n" - "you want to race for\n" - "real.") -}; - - -// 0x190007CC -static const u8 Dialog007[] = { - _("Hufff...fff...pufff...\n" - "Whoa! You...really...are...\n" - "fast! A human blur!\n" - "Here you go--you've won\n" - "it, fair and square!") -}; - - -// 0x1900083C -static const u8 Dialog008[] = { - _("BEWARE OF CHAIN CHOMP\n" - "Extreme Danger!\n" - "Get close and press [C]^\n" - "for a better look.\n" - "Scary, huh?\n" - "See the Red Coin on top\n" - "of the stake?\n" - "\n" - "When you collect eight of\n" - "them, a Power Star will\n" - "appear in the meadow\n" - "across the bridge.") -}; - - -// 0x19000910 -static const u8 Dialog009[] = { - _("Long time, no see! Wow,\n" - "have you gotten fast!\n" - "Have you been training\n" - "on the sly, or is it the\n" - "power of the Stars?\n" - "I've been feeling down\n" - "about losing the last\n" - "race. This is my home\n" - "course--how about a\n" - "rematch?\n" - "The goal is in\n" - "Windswept Valley.\n" - "Ready?\n" - "\n" - "//Go//// Don't Go") -}; - - -// 0x19000A14 -static const u8 Dialog010[] = { - _("You've stepped on the\n" - "Wing Cap Switch. Wearing\n" - "the Wing Cap, you can\n" - "soar through the sky.\n" - "Now Wing Caps will pop\n" - "out of all the red blocks\n" - "you find.\n" - "\n" - "Would you like to Save?\n" - "\n" - "//Yes////No") -}; - - -// 0x19000AC4 -static const u8 Dialog011[] = { - _("You've just stepped on\n" - "the Metal Cap Switch!\n" - "The Metal Cap makes\n" - "Mario invincible.\n" - "Now Metal Caps will\n" - "pop out of all of the\n" - "green blocks you find.\n" - "\n" - "Would you like to Save?\n" - "\n" - "//Yes////No") -}; - - -// 0x19000B78 -static const u8 Dialog012[] = { - _("You've just stepped on\n" - "the Vanish Cap Switch.\n" - "The Vanish Cap makes\n" - "Mario disappear.\n" - "Now Vanish Caps will pop\n" - "from all of the blue\n" - "blocks you find.\n" - "\n" - "Would you like to Save?\n" - "\n" - "//Yes////No") -}; - - -// 0x19000C2C -static const u8 Dialog013[] = { - _("You've collected 100\n" - "coins! Mario gains more\n" - "power from the castle.\n" - "Do you want to Save?\n" - "//Yes////No") -}; - - -// 0x19000C90 -static const u8 Dialog014[] = { - _("Wow! Another Power Star!\n" - "Mario gains more courage\n" - "from the power of the\n" - "castle.\n" - "Do you want to Save?\n" - "\n" - "//You Bet//Not Now") -}; - - -// 0x19000D04 -static const u8 Dialog015[] = { - _("You can punch enemies to\n" - "knock them down. Press [A]\n" - "to jump, [B] to punch.\n" - "Press [A] then [B] to Kick.\n" - "To pick something up,\n" - "press [B], too. To throw\n" - "something you're holding,\n" - "press [B] again.") -}; - - -// 0x19000DB4 -static const u8 Dialog016[] = { - _("Hop on the shiny shell and\n" - "ride wherever you want to\n" - "go! Shred those enemies!") -}; - - -// 0x19000E00 -static const u8 Dialog017[] = { - _("I'm the Big Bob-omb, lord\n" - "of all blasting matter,\n" - "king of ka-booms the\n" - "world over!\n" - "How dare you scale my\n" - "mountain? By what right\n" - "do you set foot on my\n" - "imperial mountaintop?\n" - "You may have eluded my\n" - "guards, but you'll never\n" - "escape my grasp...\n" - "\n" - "...and you'll never take\n" - "away my Power Star. I\n" - "hereby challenge you,\n" - "Mario!\n" - "If you want the Star I\n" - "hold, you must prove\n" - "yourself in battle.\n" - "\n" - "Can you pick me up from\n" - "the back and hurl me to\n" - "this royal turf? I think\n" - "that you cannot!") -}; - - -// 0x19000FBC -static const u8 Dialog018[] = { - _("I'm sleeping because...\n" - "...I'm sleepy. I don't\n" - "like being disturbed.\n" - "Please walk quietly.") -}; - - -// 0x19001018 -static const u8 Dialog019[] = { - _("Shhh! Please walk\n" - "quietly in the hallway!") -}; - - -// 0x19001040 -static const u8 Dialog020[] = { - _("Dear Mario:\n" - "Please come to the\n" - "castle. I've baked\n" - "a cake for you.\n" - "Yours truly--\n" - "Princess Toadstool") -}; - - -// 0x190010A0 -static const u8 Dialog021[] = { - _("Welcome.\n" - "No one's home!\n" - "Now get lost\n" - "and don't come back!\n" - "Gwa ha ha!") -}; - - -// 0x190010E8 -static const u8 Dialog022[] = { - _("You need a key to open\n" - "this door.") -}; - - -// 0x1900110C -static const u8 Dialog023[] = { - _("This key doesn't fit!\n" - "Maybe it's for the\n" - "basement...") -}; - - -// 0x19001140 -static const u8 Dialog024[] = { - _("You need Star power to\n" - "open this door. Recover a\n" - "Power Star from an enemy\n" - "inside one of the castle's\n" - "paintings.") -}; - - -// 0x190011B0 -static const u8 Dialog025[] = { - _("It takes the power of\n" - "3 Stars to open this\n" - "door. You need [%] more\n" - "Stars.") -}; - - -// 0x190011F8 -static const u8 Dialog026[] = { - _("It takes the power of\n" - "8 Stars to open this\n" - "door. You need [%] more\n" - "Stars.") -}; - - -// 0x19001240 -static const u8 Dialog027[] = { - _("It takes the power of\n" - "30 Stars to open this\n" - "door. You need [%] more\n" - "Stars.") -}; - - -// 0x19001288 -static const u8 Dialog028[] = { - _("It takes the power of\n" - "50 Stars to open this\n" - "door. You need [%] more\n" - "Stars.") -}; - - -// 0x190012D0 -static const u8 Dialog029[] = { - _("To open the door that\n" - "leads to the 『endless』\n" - "stairs, you need 70\n" - "Stars.\n" - "Bwa ha ha!") -}; - - -// 0x19001320 -static const u8 Dialog030[] = { - _("Hello! The Lakitu Bros.,\n" - "cutting in with a live\n" - "update on Mario's\n" - "progress. He's about to\n" - "learn a technique for\n" - "sneaking up on enemies.\n" - "The trick is this: He has\n" - "to walk very slowly in\n" - "order to walk quietly.\n" - "\n" - "\n" - "\n" - "And wrapping up filming\n" - "techniques reported on\n" - "earlier, you can take a\n" - "look around using [C]> and\n" - "[C]<. Press [C]| to view the\n" - "action from a distance.\n" - "When you can't move the\n" - "camera any farther, the\n" - "buzzer will sound. This is\n" - "the Lakitu Bros.,\n" - "signing off.") -}; - - -// 0x190014E0 -static const u8 Dialog031[] = { - _("No way! You beat me...\n" - "again!! And I just spent\n" - "my entire savings on\n" - "these new Koopa\n" - "Mach 1 Sprint shoes!\n" - "Here, I guess I have to\n" - "hand over this Star to\n" - "the winner of the race.\n" - "Congrats, Mario!") -}; - - -// 0x1900159C -static const u8 Dialog032[] = { - _("If you get the Wing Cap,\n" - "you can fly! Put the cap\n" - "on, then do a Triple\n" - "Jump--jump three times\n" - "in a row--to take off.\n" - "You can fly even higher\n" - "if you blast out of a\n" - "cannon wearing the\n" - "Wing Cap!\n" - "\n" - "Use the [C] Buttons to look\n" - "around while flying, and\n" - "press [Z] to land.") -}; - - -// 0x19001694 -static const u8 Dialog033[] = { - _("Ciao! You've reached\n" - "Princess Toadstool's\n" - "castle via a warp pipe.\n" - "Using the controller is a\n" - "piece of cake. Press [A] to\n" - "jump and [B] to attack.\n" - "Press [B] to read signs,\n" - "too. Use the Control Stick\n" - "in the center of the\n" - "controller to move Mario\n" - "around. Now, head for\n" - "the castle.") -}; - - -// 0x19001798 -static const u8 Dialog034[] = { - _("Good afternoon. The\n" - "Lakitu Bros., here,\n" - "reporting live from just\n" - "outside the Princess's\n" - "castle.\n" - "\n" - "Mario has just arrived\n" - "on the scene, and we'll\n" - "be filming the action live\n" - "as he enters the castle\n" - "and pursues the missing\n" - "Power Stars.\n" - "As seasoned cameramen,\n" - "we'll be shooting from the\n" - "recommended angle, but\n" - "you can change the\n" - "camera angle by pressing\n" - "the [C] Buttons.\n" - "If we can't adjust the\n" - "view any further, we'll\n" - "buzz. To take a look at\n" - "the surroundings, stop\n" - "and press [C]^.\n" - "\n" - "Press [A] to resume play.\n" - "Switch camera modes with\n" - "the [R] Button. Signs along\n" - "the way will review these\n" - "instructions.\n" - "\n" - "For now, reporting live,\n" - "this has been the\n" - "Lakitu Bros.") -}; - - -// 0x19001A00 -static const u8 Dialog035[] = { - _("There are four camera, or\n" - "『[C],』 Buttons. Press [C]^\n" - "to look around using the\n" - "Control Stick.\n" - "\n" - "You'll usually see Mario\n" - "through Lakitu's camera.\n" - "It is the camera\n" - "recommended for normal\n" - "play.\n" - "You can change angles by\n" - "pressing [C]>. If you press\n" - "[R], the view switches to\n" - "Mario's camera, which\n" - "is directly behind him.\n" - "Press [R] again to return\n" - "to Lakitu's camera. Press\n" - "[C]| to see Mario from\n" - "afar, using either\n" - "Lakitu's or Mario's view.") -}; - - -// 0x19001BA0 -static const u8 Dialog036[] = { - _("OBSERVATION PLATFORM\n" - "Press [C]^ to take a look\n" - "around. Don't miss\n" - "anything!\n" - "\n" - "Press [R] to switch to\n" - "Mario's camera. It\n" - "always follows Mario.\n" - "Press [R] again to switch\n" - "to Lakitu's camera.\n" - "Pause the game and\n" - "switch the mode to 『fix』\n" - "the camera in place while\n" - "holding [R]. Give it a try!") -}; - - -// 0x19001CB0 -static const u8 Dialog037[] = { - _("I win! You lose!\n" - "Ha ha ha ha!\n" - "You're no slouch, but I'm\n" - "a better sledder!\n" - "Better luck next time!") -}; - - -// 0x19001D14 -static const u8 Dialog038[] = { - _("Reacting to the Star\n" - "power, the door slowly\n" - "opens.") -}; - - -// 0x19001D44 -static const u8 Dialog039[] = { - _("No visitors allowed,\n" - "by decree of\n" - "the Big Bob-omb\n" - "\n" - "I shall never surrender my\n" - "Stars, for they hold the\n" - "power of the castle in\n" - "their glow.\n" - "They were a gift from\n" - "Bowser, the Koopa King\n" - "himself, and they lie well\n" - "hidden within my realm.\n" - "Not a whisper of their\n" - "whereabouts shall leave\n" - "my lips. Oh, all right,\n" - "perhaps one hint:\n" - "Heed the Star names at\n" - "the beginning of the\n" - "course.\n" - "//--The Big Bob-omb") -}; - - -// 0x19001EBC -static const u8 Dialog040[] = { - _("Warning!\n" - "Cold, Cold Crevasse\n" - "Below!") -}; - - -// 0x19001EE0 -static const u8 Dialog041[] = { - _("I win! You lose!\n" - "Ha ha ha!\n" - "\n" - "That's what you get for\n" - "messin' with Koopa the\n" - "Quick.\n" - "Better luck next time!") -}; - - -// 0x19001F48 -static const u8 Dialog042[] = { - _("Caution! Narrow Bridge!\n" - "Cross slowly!\n" - "\n" - "\n" - "You can jump to the edge\n" - "of the cliff and hang on,\n" - "and you can climb off the\n" - "edge if you move slowly.\n" - "When you want to let go,\n" - "either press [Z] or press\n" - "the Control Stick in the\n" - "direction of Mario's back.\n" - "To climb up, press Up on\n" - "the Control Stick. To\n" - "scurry up quickly, press\n" - "the [A] Button.") -}; - - -// 0x1900207C -static const u8 Dialog043[] = { - _("If you jump and hold the\n" - "[A] Button, you can hang on\n" - "to some objects overhead.\n" - "It's the same as grabbing\n" - "a flying bird!") -}; - - -// 0x190020EC -static const u8 Dialog044[] = { - _("Whooo's there? Whooo\n" - "woke me up? It's still\n" - "daylight--I should be\n" - "sleeping!\n" - "\n" - "Hey, as long as I'm\n" - "awake, why not take a\n" - "short flight with me?\n" - "Press and hold [A] to grab\n" - "on. Release [A] to let go.\n" - "I'll take you wherever\n" - "you want to go, as long\n" - "as my wings hold out.\n" - "Watch my shadow, and\n" - "grab on.") -}; - - -// 0x19002208 -static const u8 Dialog045[] = { - _("Whew! I'm just about\n" - "flapped out. You should\n" - "lay off the pasta, Mario!\n" - "That's it for now. Press\n" - "[A] to let go. Okay,\n" - "bye byyyyyyeeee!") -}; - - -// 0x1900228C -static const u8 Dialog046[] = { - _("You have to master three\n" - "important jumping\n" - "techniques.\n" - "First try the Triple Jump.\n" - "\n" - "Run fast, then jump three\n" - "times, one, two, three.\n" - "If you time the jumps\n" - "right, you'll hop, skip,\n" - "then jump really high.\n" - "Next, go for distance\n" - "with the Long Jump. Run,\n" - "press [Z] to crouch then [A]\n" - "to jump really far.\n" - "\n" - "To do the Wall Kick, press\n" - "[A] to jump at a wall, then\n" - "jump again when you hit\n" - "the wall.\n" - "\n" - "Got that? Triple Jump,\n" - "Long Jump, Wall Kick.\n" - "Practice, practice,\n" - "practice. You don't stand\n" - "a chance without them.") -}; - - -// 0x19002464 -static const u8 Dialog047[] = { - _("Hi! I'll prepare the\n" - "cannon for you!") -}; - - -// 0x19002488 -static const u8 Dialog048[] = { - _("Snow Mountain Summit\n" - "Watch for slippery\n" - "conditions! Please enter\n" - "the cottage first.") -}; - - -// 0x190024DC -static const u8 Dialog049[] = { - _("Remember that tricky Wall\n" - "Kick jump? It's a\n" - "technique you'll have to\n" - "master in order to reach\n" - "high places.\n" - "Use it to jump from wall\n" - "to wall. Press the\n" - "Control Stick in the\n" - "direction you want to\n" - "bounce to gain momentum.\n" - "Practice makes perfect!") -}; - - -// 0x190025C8 -static const u8 Dialog050[] = { - _("Hold [Z] to crouch and\n" - "slide down a slope.\n" - "Or press [Z] while in the\n" - "air to Pound the Ground!\n" - "If you stop, crouch, then\n" - "jump, you'll do a\n" - "Backward Somersault!\n" - "Got that?\n" - "There's more. Crouch and\n" - "then jump to do a\n" - "Long Jump! Or crouch and\n" - "walk to...never mind.") -}; - - -// 0x190026BC -static const u8 Dialog051[] = { - _("Climbing's easy! When you\n" - "jump at trees, poles or\n" - "pillars, you'll grab them\n" - "automatically. Press [A] to\n" - "jump off backward.\n" - "\n" - "To rotate around the\n" - "object, press Right or\n" - "Left on the Control Stick.\n" - "When you reach the top,\n" - "press Up to do a\n" - "handstand!\n" - "Jump off from the\n" - "handstand for a high,\n" - "stylin' dismount.") -}; - - -// 0x190027DC -static const u8 Dialog052[] = { - _("Stop and press [Z] to\n" - "crouch, then press [A]\n" - "to do a high, Backward\n" - "Somersault!\n" - "\n" - "To perform a Side\n" - "Somersault, run, do a\n" - "sharp U-turn and jump.\n" - "You can catch lots of\n" - "air with both jumps.") -}; - - -// 0x19002894 -static const u8 Dialog053[] = { - _("Sometimes, if you pass\n" - "through a coin ring or\n" - "find a secret point in a\n" - "course, a red number will\n" - "appear.\n" - "If you trigger five red\n" - "numbers, a secret Star\n" - "will show up.") -}; - - -// 0x19002938 -static const u8 Dialog054[] = { - _("Welcome to the snow\n" - "slide! Hop on! To speed\n" - "up, press forward on the\n" - "Control Stick. To slow\n" - "down, pull back.") -}; - - -// 0x190029A4 -static const u8 Dialog055[] = { - _("Hey-ey, Mario, buddy,\n" - "howzit goin'? Step right\n" - "up. You look like a fast\n" - "sleddin' kind of guy.\n" - "I know speed when I see\n" - "it, yes siree--I'm the\n" - "world champion sledder,\n" - "you know. Whaddya say?\n" - "How about a race?\n" - "Ready...\n" - "\n" - "//Go//// Don't Go") -}; - - -// 0x19002A8C -static const u8 Dialog056[] = { - _("You brrrr-oke my record!\n" - "Unbelievable! I knew\n" - "that you were the coolest.\n" - "Now you've proven\n" - "that you're also the\n" - "fastest!\n" - "I can't award you a gold\n" - "medal, but here, take this\n" - "Star instead. You've\n" - "earned it!") -}; - - -// 0x19002B50 -static const u8 Dialog057[] = { - _("Egad! My baby!! Have you\n" - "seen my baby??? She's\n" - "the most precious baby in\n" - "the whole wide world.\n" - "(They say she has my\n" - "beak...) I just can't\n" - "remember where I left\n" - "her.\n" - "Let's see...I stopped\n" - "for herring and ice cubes,\n" - "then I...oohh! I just\n" - "don't know!") -}; - - -// 0x19002C40 -static const u8 Dialog058[] = { - _("You found my precious,\n" - "precious baby! Where\n" - "have you been? How can\n" - "I ever thank you, Mario?\n" - "Oh, I do have this...\n" - "...Star. Here, take it\n" - "with my eternal\n" - "gratitude.") -}; - - -// 0x19002CE0 -static const u8 Dialog059[] = { - _("That's not my baby! She\n" - "looks nothing like me!\n" - "Her parents must be\n" - "worried sick!") -}; - - -// 0x19002D34 -static const u8 Dialog060[] = { - _("ATTENTION!\n" - "Read Before Diving In!\n" - "\n" - "\n" - "If you stay under the\n" - "water for too long, you'll\n" - "run out of oxygen.\n" - "\n" - "Return to the surface for\n" - "air or find an air bubble\n" - "or coins to breathe while\n" - "underwater.\n" - "Press [A] to swim. Hold [A]\n" - "to swim slow and steady.\n" - "Tap [A] with smooth timing\n" - "to gain speed.\n" - "Press Up on the\n" - "Control Stick and press [A]\n" - "to dive.\n" - "\n" - "Press Down on the Control\n" - "Stick and press [A] to\n" - "return to the surface.\n" - "\n" - "Hold Down and press [A]\n" - "while on the surface near\n" - "the edge of the water to\n" - "jump out.") -}; - - -// 0x19002F08 -static const u8 Dialog061[] = { - _("BRRR! Frostbite Danger!\n" - "Do not swim here.\n" - "I'm serious.\n" - "/--The Penguin") -}; - - -// 0x19002F50 -static const u8 Dialog062[] = { - _("Hidden inside the green\n" - "block is the amazing\n" - "Metal Cap.\n" - "Wearing it, you won't\n" - "catch fire or be hurt\n" - "by enemy attacks.\n" - "You don't even have to\n" - "breathe while wearing it.\n" - "\n" - "The only problem:\n" - "Its too heavy to swim\n" - "with.") -}; - - -// 0x19003020 -static const u8 Dialog063[] = { - _("The Vanish Cap is inside\n" - "the blue block. Mr. I.\n" - "will be surprised, since\n" - "you'll be invisible when\n" - "you wear it!\n" - "Even the Big Boo will be\n" - "fooled--and you can walk\n" - "through secret walls, too.") -}; - - -// 0x190030D4 -static const u8 Dialog064[] = { - _("When you put on the Wing\n" - "Cap that comes from a\n" - "red block, do the Triple\n" - "Jump to soar high into\n" - "the sky.\n" - "Use the Control Stick to\n" - "guide Mario. Pull back to\n" - "to fly up, press forward\n" - "to nose down, and press [Z]\n" - "to land.") -}; - - -// 0x190031A4 -static const u8 Dialog065[] = { - _("Swimming Lessons!\n" - "Tap [A] to do the breast\n" - "stroke. If you time the\n" - "taps right, you'll swim\n" - "fast.\n" - "\n" - "Press and hold [A] to do a\n" - "slow, steady flutter kick.\n" - "Press Up on the Control\n" - "Stick to dive, and pull\n" - "back on the stick to head\n" - "for the surface.\n" - "To jump out of the water,\n" - "hold Down on the Control\n" - "Stick, then press [A].\n" - "Easy as pie, right?\n" - "\n" - "\n" - "But remember:\n" - "Mario can't breathe under\n" - "the water! Return to the\n" - "surface for air when the\n" - "Power Meter runs low.\n" - "\n" - "And one last thing: You\n" - "can't open doors that\n" - "are underwater.") -}; - - -// 0x19003384 -static const u8 Dialog066[] = { - _("Mario, it's Peach!\n" - "Please be careful! Bowser\n" - "is so wicked! He will try\n" - "to burn you with his\n" - "horrible flame breath.\n" - "Run around behind and\n" - "grab him by the tail with\n" - "the [B] Button. Once you\n" - "grab hold, swing him\n" - "around in great circles.\n" - "Rotate the Control Stick\n" - "to go faster and faster.\n" - "The faster you swing him,\n" - "the farther he'll fly.\n" - "\n" - "Use the [C] Buttons to look\n" - "around, Mario. You have\n" - "to throw Bowser into one\n" - "of the bombs in the four\n" - "corners.\n" - "Aim well, then press [B]\n" - "again to launch Bowser.\n" - "Good luck, Mario! Our\n" - "fate is in your hands.") -}; - - -// 0x19003580 -static const u8 Dialog067[] = { - _("Tough luck, Mario!\n" - "Princess Toadstool isn't\n" - "here...Gwa ha ha!! Go\n" - "ahead--just try to grab\n" - "me by the tail!\n" - "You'll never be able to\n" - "swing ME around! A wimp\n" - "like you won't throw me\n" - "out of here! Never! Ha!") -}; - - -// 0x19003648 -static const u8 Dialog068[] = { - _("It's Lethal Lava Land!\n" - "If you catch fire or fall\n" - "into a pool of flames,\n" - "you'll be hopping mad, but\n" - "don't lose your cool.\n" - "You can still control\n" - "Mario--just try to keep\n" - "calm!") -}; - - -// 0x190036F0 -static const u8 Dialog069[] = { - _("Sometimes you'll bump into\n" - "invisible walls at the\n" - "edges of the painting\n" - "worlds. If you hit a wall\n" - "while flying, you'll bounce\n" - "back.") -}; - - -// 0x1900376C -static const u8 Dialog070[] = { - _("You can return to the\n" - "castle's main hall at any\n" - "time from the painting\n" - "worlds where the enemies\n" - "live.\n" - "Just stop, stand still,\n" - "press Start to pause the\n" - "game, then select\n" - "『Exit Course.』\n" - "\n" - "You don't have to collect\n" - "all Power Stars in one\n" - "course before going on to\n" - "the next.\n" - "\n" - "Return later, when you're\n" - "more experienced, to pick\n" - "up difficult ones.\n" - "\n" - "\n" - "Whenever you find a Star,\n" - "a hint for finding the\n" - "next one will appear on\n" - "the course's start screen.\n" - "\n" - "You can, however, collect\n" - "any of the remaining\n" - "Stars next. You don't\n" - "have to recover the one\n" - "described by the hint.") -}; - - -// 0x19003984 -static const u8 Dialog071[] = { - _("Danger Ahead!\n" - "Beware of the strange\n" - "cloud! Don't inhale!\n" - "If you feel faint, run for\n" - "higher ground and fresh\n" - "air!\n" - "Circle: Shelter\n" - "Arrow: Entrance-Exit") -}; - - -// 0x19003A18 -static const u8 Dialog072[] = { - _("High winds ahead!\n" - "Pull your Cap down tight.\n" - "If it blows off, you'll\n" - "have to find it on this\n" - "mountain.") -}; - - -// 0x19003A7C -static const u8 Dialog073[] = { - _("Aarrgh! Ahoy, matey. I\n" - "have sunken treasure,\n" - "here, I do.\n" - "\n" - "But to pluck the plunder,\n" - "you must open the\n" - "Treasure Chests in the\n" - "right order.\n" - "What order is that,\n" - "ye say?\n" - "\n" - "\n" - "I'll never tell!\n" - "\n" - "//--The Cap'n") -}; - - -// 0x19003B3C -static const u8 Dialog074[] = { - _("You can grab on to the\n" - "edge of a cliff or ledge\n" - "with your fingertips and\n" - "hang down from it.\n" - "\n" - "To drop from the edge,\n" - "either press the Control\n" - "Stick in the direction of\n" - "Mario's back or press the\n" - "[Z] Button.\n" - "To get up onto the ledge,\n" - "either press Up on the\n" - "Control Stick or press [A]\n" - "as soon as you grab the\n" - "ledge to climb up quickly.") -}; - - -// 0x19003C6C -static const u8 Dialog075[] = { - _("Mario!! My castle is in\n" - "great peril. I know that\n" - "Bowser is the cause...and\n" - "I know that only you can\n" - "stop him!\n" - "The doors in the castle\n" - "that have been sealed by\n" - "Bowser can be opened only\n" - "with Star Power.\n" - "\n" - "But there are secret\n" - "paths in the castle,\n" - "paths that Bowser hasn't\n" - "found.\n" - "\n" - "One of those paths is in\n" - "this room, and it holds\n" - "one of the castle's Secret\n" - "Stars!\n" - "\n" - "Find that Secret Star,\n" - "Mario! It will help you\n" - "on your quest. Please,\n" - "Mario, you have to\n" - "help us!\n" - "Retrieve all of the\n" - "Power Stars in the castle\n" - "and free us from this\n" - "awful prison!\n" - "Please!") -}; - - -// 0x19003E7C -static const u8 Dialog076[] = { - _("Thanks to the power of\n" - "the Stars, life is\n" - "returning to the castle.\n" - "Please, Mario, you have\n" - "to give Bowser the boot!\n" - "\n" - "Here, let me tell you a\n" - "little something about the\n" - "castle. In the room with\n" - "the mirrors, look carefully\n" - "for anything that's not\n" - "reflected in the mirror.\n" - "And when you go to the\n" - "water town, you can flood\n" - "it with a high jump into\n" - "the painting. Oh, by the\n" - "way, look what I found!") -}; - - -// 0x19003FE8 -static const u8 Dialog077[] = { - _("It is decreed that one\n" - "shall pound the pillars.") -}; - - -// 0x19004018 -static const u8 Dialog078[] = { - _("Break open the Blue Coin\n" - "Block by Pounding the\n" - "Ground with the [Z] Button.\n" - "One Blue Coin is worth\n" - "five Yellow Coins.\n" - "But you have to hurry!\n" - "The coins will disappear\n" - "if you're not quick to\n" - "collect them! Too bad.") -}; - - -// 0x190040E0 -static const u8 Dialog079[] = { - _("Owwwuu! Let me go!\n" - "Uukee-kee! I was only\n" - "teasing! Can't you take\n" - "a joke?\n" - "I'll tell you what, let's\n" - "trade. If you let me go,\n" - "I'll give you something\n" - "really good.\n" - "So, how about it?\n" - "\n" - "//Free him/ Hold on") -}; - - -// 0x190041A0 -static const u8 Dialog080[] = { - _("Eeeh hee hee hee!") -}; - - -// 0x190041B4 -static const u8 Dialog081[] = { - _("The mystery is of Wet\n" - "or Dry.\n" - "And where does the\n" - "solution lie?\n" - "The city welcomes visitors\n" - "with the depth they bring\n" - "as they enter.") -}; - - -// 0x19004230 -static const u8 Dialog082[] = { - _("Hold on to your hat! If\n" - "you lose it, you'll be\n" - "injured easily.\n" - "\n" - "If you do lose your Cap,\n" - "you'll have to find it in\n" - "the course where you\n" - "lost it.\n" - "Oh, boy, it's not looking\n" - "good for Peach. She's\n" - "still trapped somewhere\n" - "inside the walls.\n" - "Please, Mario, you have\n" - "to help her! Did you know\n" - "that there are enemy\n" - "worlds inside the walls?\n" - "Yup. It's true. Bowser's\n" - "troops are there, too.\n" - "Oh, here, take this. I've\n" - "been keeping it for you.") -}; - - -// 0x190043C0 -static const u8 Dialog083[] = { - _("There's something strange\n" - "about that clock. As you\n" - "jump inside, watch the\n" - "position of the big hand.\n" - "Oh, look what I found!\n" - "Here, Mario, catch!") -}; - - -// 0x1900444C -static const u8 Dialog084[] = { - _("Yeeoww! Unhand me,\n" - "brute! I'm late, so late,\n" - "I must make haste!\n" - "This shiny thing? Mine!\n" - "It's mine. Finders,\n" - "keepers, losers...\n" - "Late, late, late...\n" - "Ouch! Take it then! A\n" - "gift from Bowser, it was.\n" - "Now let me be! I have a\n" - "date! I cannot be late\n" - "for tea!") -}; - - -// 0x19004548 -static const u8 Dialog085[] = { - _("You don't stand a ghost\n" - "of a chance in this house.\n" - "If you walk out of here,\n" - "you deserve...\n" - "...a Ghoul Medal...") -}; - - -// 0x190045B4 -static const u8 Dialog086[] = { - _("Running around in circles\n" - "makes some bad guys roll\n" - "their eyes.") -}; - - -// 0x190045F4 -static const u8 Dialog087[] = { - _("Santa Claus isn't the only\n" - "one who can go down a\n" - "chimney! Come on in!\n" - "/--Cabin Proprietor") -}; - - -// 0x1900464C -static const u8 Dialog088[] = { - _("Work Elevator\n" - "For those who get off\n" - "here: Grab the pole to the\n" - "left and slide carefully\n" - "down.") -}; - - -// 0x190046A8 -static const u8 Dialog089[] = { - _("Both ways fraught with\n" - "danger! Watch your feet!\n" - "Those who can't do the\n" - "Long Jump, tsk, tsk. Make\n" - "your way to the right.\n" - "Right: Work Elevator\n" - "/// Cloudy Maze\n" - "Left: Black Hole\n" - "///Underground Lake\n" - "\n" - "Red Circle: Elevator 2\n" - "//// Underground Lake\n" - "Arrow: You are here") -}; - - -// 0x190047A4 -static const u8 Dialog090[] = { - _("Bwa ha ha ha!\n" - "You've stepped right into\n" - "my trap, just as I knew\n" - "you would! I warn you,\n" - "『Friend,』 watch your\n" - "step!") -}; - - -// 0x19004810 -static const u8 Dialog091[] = { - _("Danger!\n" - "Strong Gusts!\n" - "But the wind makes a\n" - "comfy ride.") -}; - - -// 0x19004848 -static const u8 Dialog092[] = { - _("Pestering me again, are\n" - "you, Mario? Can't you see\n" - "that I'm having a merry\n" - "little time, making\n" - "mischief with my minions?\n" - "Now, return those Stars!\n" - "My troops in the walls\n" - "need them! Bwa ha ha!") -}; - - -// 0x19004900 -static const u8 Dialog093[] = { - _("Mario! You again! Well\n" - "that's just fine--I've\n" - "been looking for something\n" - "to fry with my fire\n" - "breath!\n" - "Your Star Power is\n" - "useless against me!\n" - "Your friends are all\n" - "trapped within the\n" - "walls...\n" - "And you'll never see the\n" - "Princess again!\n" - "Bwa ha ha ha!") -}; - - -// 0x190049F0 -static const u8 Dialog094[] = { - _("Get a good run up the\n" - "slope! Do you remember\n" - "the Long Jump? Run, press\n" - "[Z], then jump!") -}; - - -// 0x19004A40 -static const u8 Dialog095[] = { - _("To read a sign, stand in\n" - "front of it and press [B],\n" - "like you did just now.\n" - "\n" - "When you want to talk to\n" - "a Koopa Troopa or other\n" - "animal, stand right in\n" - "front of it.\n" - "Please recover the Stars\n" - "that were stolen by\n" - "Bowser in this course.") -}; - - -// 0x19004B1C -static const u8 Dialog096[] = { - _("The path is narrow here.\n" - "Easy does it! No one is\n" - "allowed on top of the\n" - "mountain!\n" - "And if you know what's\n" - "good for you, you won't\n" - "wake anyone who's\n" - "sleeping!\n" - "Move slowly,\n" - "tread lightly.") -}; - - -// 0x19004BCC -static const u8 Dialog097[] = { - _("Don't be a pushover!\n" - "If anyone tries to shove\n" - "you around, push back!\n" - "It's one-on-one, with a\n" - "fiery finish for the loser!") -}; - - -// 0x19004C44 -static const u8 Dialog098[] = { - _("Come on in here...\n" - "...heh, heh, heh...") -}; - - -// 0x19004C6C -static const u8 Dialog099[] = { - _("Eh he he...\n" - "You're mine, now, hee hee!\n" - "I'll pass right through\n" - "this wall. Can you do\n" - "that? Heh, heh, heh!") -}; - - -// 0x19004CD4 -static const u8 Dialog100[] = { - _("Ukkiki...Wakkiki...kee kee!\n" - "Ha! I snagged it!\n" - "It's mine! Heeheeheeee!") -}; - - -// 0x19004D1C -static const u8 Dialog101[] = { - _("Ackk! Let...go...\n" - "You're...choking...me...\n" - "Cough...I've been framed!\n" - "This Cap? Oh, all right,\n" - "take it. It's a cool Cap,\n" - "but I'll give it back.\n" - "I think it looks better on\n" - "me than it does on you,\n" - "though! Eeeee! Kee keee!") -}; - - -// 0x19004DF8 -static const u8 Dialog102[] = { - _("Pssst! The Boos are super\n" - "shy. If you look them\n" - "in the eyes, they fade\n" - "away, but if you turn\n" - "your back, they reappear.\n" - "It's no use trying to hit\n" - "them when they're fading\n" - "away. Instead, sneak up\n" - "behind them and punch.") -}; - - -// 0x19004EC0 -static const u8 Dialog103[] = { - _("Upon four towers\n" - "one must alight...\n" - "Then at the peak\n" - "shall shine the light...") -}; - - -// 0x19004F0C -static const u8 Dialog104[] = { - _("The shadowy star in front\n" - "of you is a 『Star\n" - "Marker.』 When you collect\n" - "all 8 Red Coins, the Star\n" - "will appear here.") -}; - - -// 0x19004F78 -static const u8 Dialog105[] = { - _("Ready for blastoff! Come\n" - "on, hop into the cannon!\n" - "\n" - "You can reach the Star on\n" - "the floating island by\n" - "using the four cannons.\n" - "Use the Control Stick to\n" - "aim, then press [A] to fire.\n" - "\n" - "If you're handy, you can\n" - "grab on to trees or poles\n" - "to land.") -}; - - -// 0x19005058 -static const u8 Dialog106[] = { - _("Ready for blastoff! Come\n" - "on, hop into the cannon!") -}; - - -// 0x19005088 -static const u8 Dialog107[] = { - _("Ghosts...\n" - "...don't...\n" - "...DIE!\n" - "Heh, heh, heh!\n" - "Can you get out of here...\n" - "...alive?") -}; - - -// 0x190050D8 -static const u8 Dialog108[] = { - _("Boooooo-m! Here comes\n" - "the master of mischief,\n" - "the tower of terror,\n" - "the Big Boo!\n" - "Ka ha ha ha...") -}; - - -// 0x19005134 -static const u8 Dialog109[] = { - _("Ooooo Nooooo!\n" - "Talk about out-of-body\n" - "experiences--my body\n" - "has melted away!\n" - "Have you run in to any\n" - "headhunters lately??\n" - "I could sure use a new\n" - "body!\n" - "Brrr! My face might\n" - "freeze like this!") -}; - - -// 0x190051EC -static const u8 Dialog110[] = { - _("I need a good head on my\n" - "shoulders. Do you know of\n" - "anybody in need of a good\n" - "body? Please! I'll follow\n" - "you if you do!") -}; - - -// 0x1900525C -static const u8 Dialog111[] = { - _("Perfect! What a great\n" - "new body! Here--this is a\n" - "present for you. It's sure\n" - "to warm you up.") -}; - - -// 0x190052B4 -static const u8 Dialog112[] = { - _("Collect as many coins as\n" - "possible! They'll refill\n" - "your Power Meter.\n" - "\n" - "You can check to see how\n" - "many coins you've\n" - "collected in each of the\n" - "15 enemy worlds.\n" - "You can also recover\n" - "power by touching the\n" - "Spinning Heart.\n" - "\n" - "The faster you run\n" - "through the heart, the\n" - "more power you'll recover.") -}; - - -// 0x190053C0 -static const u8 Dialog113[] = { - _("There are special Caps in\n" - "the red, green and blue\n" - "blocks. Step on the\n" - "switches in the hidden\n" - "courses to activate the\n" - "Cap Blocks.") -}; - - -// 0x1900543C -static const u8 Dialog114[] = { - _("It makes me so mad! We\n" - "build your houses, your\n" - "castles. We pave your\n" - "roads, and still you\n" - "walk all over us.\n" - "Do you ever say thank\n" - "you? No! Well, you're not\n" - "going to wipe your feet\n" - "on me! I think I'll crush\n" - "you just for fun!\n" - "Do you have a problem\n" - "with that? Just try to\n" - "pound me, wimp! Ha!") -}; - - -// 0x1900554C -static const u8 Dialog115[] = { - _("No! Crushed again!\n" - "I'm just a stepping stone,\n" - "after all. I won't gravel,\n" - "er, grovel. Here, you win.\n" - "Take this with you!") -}; - - -// 0x190055C0 -static const u8 Dialog116[] = { - _("Whaaa....Whaaat?\n" - "Can it be that a\n" - "pipsqueak like you has\n" - "defused the Bob-omb\n" - "king????\n" - "You might be fast enough\n" - "to ground me, but you'll\n" - "have to pick up the pace\n" - "if you want to take King\n" - "Bowser by the tail.\n" - "Methinks my troops could\n" - "learn a lesson from you!\n" - "Here is your Star, as I\n" - "promised, Mario.\n" - "\n" - "If you want to see me\n" - "again, select this Star\n" - "from the menu. For now,\n" - "farewell.") -}; - - -// 0x19005728 -static const u8 Dialog117[] = { - _("Who...walk...here?\n" - "Who...break...seal?\n" - "Wake..ancient..ones?\n" - "We no like light...\n" - "Rrrrummbbble...\n" - "We no like...intruders!\n" - "Now battle...\n" - "...hand...\n" - "...to...\n" - "...hand!") -}; - - -// 0x190057CC -static const u8 Dialog118[] = { - _("Grrrrumbbble!\n" - "What...happen?\n" - "We...crushed like pebble.\n" - "You so strong!\n" - "You rule ancient pyramid!\n" - "For today...\n" - "Now, take Star of Power.\n" - "We...sleep...darkness.") -}; - - -// 0x1900586C -static const u8 Dialog119[] = { - _("Grrr! I was a bit\n" - "careless. This is not as I\n" - "had planned...but I still\n" - "hold the power of the\n" - "Stars, and I still have\n" - "Peach.\n" - "Bwa ha ha! You'll get no\n" - "more Stars from me! I'm\n" - "not finished with you yet,\n" - "but I'll let you go for\n" - "now. You'll pay for this...\n" - "later!") -}; - - -// 0x19005968 -static const u8 Dialog120[] = { - _("Ooowaah! Can it be that\n" - "I've lost??? The power of\n" - "the Stars has failed me...\n" - "this time.\n" - "Consider this a draw.\n" - "Next time, I'll be in\n" - "perfect condition.\n" - "\n" - "Now, if you want to see\n" - "your precious Princess,\n" - "come to the top of the\n" - "tower.\n" - "I'll be waiting!\n" - "Gwa ha ha ha!") -}; - - -// 0x19005A64 -static const u8 Dialog121[] = { - _("Nooo! It can't be!\n" - "You've really beaten me,\n" - "Mario?!! I gave those\n" - "troops power, but now\n" - "it's fading away!\n" - "Arrgghh! I can see peace\n" - "returning to the world! I\n" - "can't stand it! Hmmm...\n" - "It's not over yet...\n" - "\n" - "C'mon troops! Let's watch\n" - "the ending together!\n" - "Bwa ha ha!") -}; - - -// 0x19005B64 -static const u8 Dialog122[] = { - _("The Black Hole\n" - "Right: Work Elevator\n" - "/// Cloudy Maze\n" - "Left: Underground Lake") -}; - - -// 0x19005BB0 -static const u8 Dialog123[] = { - _("Metal Cavern\n" - "Right: To Waterfall\n" - "Left: Metal Cap Switch") -}; - - -// 0x19005BE8 -static const u8 Dialog124[] = { - _("Work Elevator\n" - "Danger!!\n" - "Read instructions\n" - "thoroughly!\n" - "Elevator continues in the\n" - "direction of the arrow\n" - "activated.") -}; - - -// 0x19005C58 -static const u8 Dialog125[] = { - _("Hazy Maze-Exit\n" - "Danger! Closed.\n" - "Turn back now.") -}; - - -// 0x19005C88 -static const u8 Dialog126[] = { - _("Up: Black Hole\n" - "Right: Work Elevator\n" - "/// Hazy Maze") -}; - - -// 0x19005CBC -static const u8 Dialog127[] = { - _("Underground Lake\n" - "Right: Metal Cave\n" - "Left: Abandoned Mine\n" - "///(Closed)\n" - "A gentle sea dragon lives\n" - "here. Pound on his back to\n" - "make him lower his head.\n" - "Don't become his lunch.") -}; - - -// 0x19005D68 -static const u8 Dialog128[] = { - _("You must fight with\n" - "honor! It is against the\n" - "royal rules to throw the\n" - "king out of the ring!") -}; - - -// 0x19005DC0 -static const u8 Dialog129[] = { - _("Welcome to the Vanish\n" - "Cap Switch Course! All of\n" - "the blue blocks you find\n" - "will become solid once you\n" - "step on the Cap Switch.\n" - "You'll disappear when you\n" - "put on the Vanish Cap, so\n" - "you'll be able to elude\n" - "enemies and walk through\n" - "many things. Try it out!") -}; - - -// 0x19005EAC -static const u8 Dialog130[] = { - _("Welcome to the Metal Cap\n" - "Switch Course! Once you\n" - "step on the Cap Switch,\n" - "the green blocks will\n" - "become solid.\n" - "When you turn your body\n" - "into metal with the Metal\n" - "Cap, you can walk\n" - "underwater! Try it!") -}; - - -// 0x19005F64 -static const u8 Dialog131[] = { - _("Welcome to the Wing Cap\n" - "Course! Step on the red\n" - "switch at the top of the\n" - "tower, in the center of\n" - "the rainbow ring.\n" - "When you trigger the\n" - "switch, all of the red\n" - "blocks you find will\n" - "become solid.\n" - "\n" - "Try out the Wing Cap! Do\n" - "the Triple Jump to take\n" - "off and press [Z] to land.\n" - "\n" - "\n" - "Pull back on the Control\n" - "Stick to go up and push\n" - "forward to nose down,\n" - "just as you would when\n" - "flying an airplane.") -}; - - -// 0x190060CC -static const u8 Dialog132[] = { - _("Whoa, Mario, pal, you\n" - "aren't trying to cheat,\n" - "are you? Shortcuts aren't\n" - "allowed.\n" - "Now, I know that you\n" - "know better. You're\n" - "disqualified! Next time,\n" - "play fair!") -}; - - -// 0x19006164 -static const u8 Dialog133[] = { - _("Am I glad to see you! The\n" - "Princess...and I...and,\n" - "well, everybody...we're all\n" - "trapped inside the castle\n" - "walls.\n" - "\n" - "Bowser has stolen the\n" - "castle's Stars, and he's\n" - "using their power to\n" - "create his own world in\n" - "the paintings and walls.\n" - "\n" - "Please recover the Power\n" - "Stars! As you find them,\n" - "you can use their power\n" - "to open the doors that\n" - "Bowser has sealed.\n" - "\n" - "There are four rooms on\n" - "the first floor. Start in\n" - "the one with the painting\n" - "of Bob-omb inside. It's\n" - "the only room that Bowser\n" - "hasn't sealed.\n" - "When you collect eight\n" - "Power Stars, you'll be\n" - "able to open the door\n" - "with the big star. The\n" - "Princess must be inside!") -}; - - -// 0x1900639C -static const u8 Dialog134[] = { - _("The names of the Stars\n" - "are also hints for\n" - "finding them. They are\n" - "displayed at the beginning\n" - "of each course.\n" - "You can collect the Stars\n" - "in any order. You won't\n" - "find some Stars, enemies\n" - "or items unless you select\n" - "a specific Star.\n" - "After you collect some\n" - "Stars, you can try\n" - "another course.\n" - "We're all waiting for\n" - "your help!") -}; - - -// 0x190064C8 -static const u8 Dialog135[] = { - _("It was Bowser who stole\n" - "the Stars. I saw him with\n" - "my own eyes!\n" - "\n" - "\n" - "He's hidden six Stars in\n" - "each course, but you\n" - "won't find all of them in\n" - "some courses until you\n" - "press the Cap Switches.\n" - "The Stars you've found\n" - "will show on each course's\n" - "starting screen.\n" - "\n" - "\n" - "If you want to see some\n" - "of the enemies you've\n" - "already defeated, select\n" - "the Stars you recovered\n" - "from them.") -}; - - -// 0x19006618 -static const u8 Dialog136[] = { - _("Wow! You've already\n" - "recovered that many\n" - "Stars? Way to go, Mario!\n" - "I'll bet you'll have us out\n" - "of here in no time!\n" - "\n" - "Be careful, though.\n" - "Bowser and his band\n" - "wrote the book on 『bad.』\n" - "Take my advice: When you\n" - "need to recover from\n" - "injuries, collect coins.\n" - "Yellow Coins refill one\n" - "piece of the Power Meter,\n" - "Red Coins refill two\n" - "pieces, and Blue Coins\n" - "refill five.\n" - "\n" - "To make Blue Coins\n" - "appear, pound on Blue\n" - "Coin Blocks.\n" - "\n" - "\n" - "\n" - "Also, if you fall from\n" - "high places, you'll\n" - "minimize damage if you\n" - "Pound the Ground as you\n" - "land.") -}; - - -// 0x19006808 -static const u8 Dialog137[] = { - _("Thanks, Mario! The castle\n" - "is recovering its energy\n" - "as you retrieve Power\n" - "Stars, and you've chased\n" - "Bowser right out of here,\n" - "on to some area ahead.\n" - "Oh, by the by, are you\n" - "collecting coins? Special\n" - "Stars appear when you\n" - "collect 100 coins in each\n" - "of the 15 courses!") -}; - - -// 0x19006904 -static const u8 Dialog138[] = { - _("Down: Underground Lake\n" - "Left: Black Hole\n" - "Right: Hazy Maze (Closed)") -}; - - -// 0x19006948 -static const u8 Dialog139[] = { - _("Above: Automatic Elevator\n" - "Elevator begins\n" - "automatically and follows\n" - "pre-set course.\n" - "It disappears\n" - "automatically, too.") -}; - - -// 0x190069C0 -static const u8 Dialog140[] = { - _("Elevator Area\n" - "Right: Hazy Maze\n" - "/// Entrance\n" - "Left: Black Hole\n" - "///Elevator 1\n" - "Arrow: You are here") -}; - - -// 0x19006A20 -static const u8 Dialog141[] = { - _("You've recovered one of\n" - "the stolen Power Stars!\n" - "Now you can open some of\n" - "the sealed doors in the\n" - "castle.\n" - "Try the Princess's room\n" - "on the second floor and\n" - "the room with the\n" - "painting of Whomp's\n" - "Fortress on Floor 1.\n" - "Bowser's troops are still\n" - "gaining power, so you\n" - "can't give up. Save us,\n" - "Mario! Keep searching for\n" - "Stars!") -}; - - -// 0x19006B4C -static const u8 Dialog142[] = { - _("You've recovered three\n" - "Power Stars! Now you can\n" - "open any door with a 3\n" - "on its star.\n" - "\n" - "You can come and go from\n" - "the open courses as you\n" - "please. The enemies ahead\n" - "are even meaner, so be\n" - "careful!") -}; - - -// 0x19006C08 -static const u8 Dialog143[] = { - _("You've recovered eight of\n" - "the Power Stars! Now you\n" - "can open the door with\n" - "the big Star! But Bowser\n" - "is just ahead...can you\n" - "hear the Princess calling?") -}; - - -// 0x19006C94 -static const u8 Dialog144[] = { - _("You've recovered 30\n" - "Power Stars! Now you can\n" - "open the door with the\n" - "big Star! But before you\n" - "move on, how's it going\n" - "otherwise?\n" - "Did you pound the two\n" - "columns down? You didn't\n" - "lose your hat, did you?\n" - "If you did, you'll have to\n" - "stomp on the condor to\n" - "get it back!\n" - "They say that Bowser has\n" - "sneaked out of the sea\n" - "and into the underground.\n" - "Have you finally\n" - "cornered him?") -}; - - -// 0x19006DE8 -static const u8 Dialog145[] = { - _("You've recovered 50\n" - "Power Stars! Now you can\n" - "open the Star Door on the\n" - "third floor. Bowser's\n" - "there, you know.\n" - "\n" - "Oh! You've found all of\n" - "the Cap Switches, haven't\n" - "you? Red, green and blue?\n" - "The Caps you get from the\n" - "colored blocks are really\n" - "helpful.\n" - "Hurry along, now. The\n" - "third floor is just ahead.") -}; - - -// 0x19006F00 -static const u8 Dialog146[] = { - _("You've found 70 Power\n" - "Stars! The mystery of the\n" - "endless stairs is solved,\n" - "thanks to you--and is\n" - "Bowser ever upset! Now,\n" - "on to the final bout!") -}; - - -// 0x19006F88 -static const u8 Dialog147[] = { - _("Are you using the Cap\n" - "Blocks? You really should,\n" - "you know.\n" - "\n" - "\n" - "To make them solid so you\n" - "can break them, you have\n" - "to press the colored Cap\n" - "Switches in the castle's\n" - "hidden courses.\n" - "You'll find the hidden\n" - "courses only after\n" - "regaining some of the\n" - "Power Stars.\n" - "\n" - "The Cap Blocks are a big\n" - "help! Red for the Wing\n" - "Cap, green for the Metal\n" - "Cap, blue for the Vanish\n" - "Cap.") -}; - - -// 0x190070D4 -static const u8 Dialog148[] = { - _("Snowman Mountain ahead.\n" - "Keep out! And don't try\n" - "the Triple Jump over the\n" - "ice block shooter.\n" - "\n" - "\n" - "If you fall into the\n" - "freezing pond, your power\n" - "decreases quickly, and\n" - "you won't recover\n" - "automatically.\n" - "//--The Snowman") -}; - - -// 0x190071A0 -static const u8 Dialog149[] = { - _("Welcome to\n" - "Princess Toadstool's\n" - "secret slide!\n" - "There's a Star hidden\n" - "here that Bowser couldn't\n" - "find.\n" - "When you slide, press\n" - "forward to speed up,\n" - "pull back to slow down.\n" - "If you slide really\n" - "fast, you'll win the Star!") -}; - - -// 0x19007270 -static const u8 Dialog150[] = { - _("Waaaa! You've flooded my\n" - "house! Wh-why?? Look at\n" - "this mess! What am I\n" - "going to do now?\n" - "\n" - "The ceiling's ruined, the\n" - "floor is soaked...what to\n" - "do, what to do? Huff...\n" - "huff...it makes me so...\n" - "MAD!!!\n" - "Everything's been going\n" - "wrong ever since I got\n" - "this Star...It's so shiny,\n" - "but it makes me feel...\n" - "strange...") -}; - - -// 0x190073A0 -static const u8 Dialog151[] = { - _("I can't take this\n" - "anymore! First you get\n" - "me all wet, then you\n" - "stomp on me!\n" - "Now I'm really, really,\n" - "REALLY mad!\n" - "Waaaaaaaaaaaaaaaaa!!!") -}; - - -// 0x19007420 -static const u8 Dialog152[] = { - _("Owwch! Uncle! Uncle!\n" - "Okay, I give up. Take this\n" - "Star!\n" - "Whew! I feel better now.\n" - "I don't really need it\n" - "anymore, anyway--\n" - "I can see the stars\n" - "through my ceiling at\n" - "night.\n" - "They make me feel...\n" - "...peaceful. Please, come\n" - "back and visit anytime.") -}; - - -// 0x19007510 -static const u8 Dialog153[] = { - _("Hey! Who's there?\n" - "What's climbing on me?\n" - "Is it an ice ant?\n" - "A snow flea?\n" - "Whatever it is, it's\n" - "bugging me! I think I'll\n" - "blow it away!") -}; - - -// 0x19007594 -static const u8 Dialog154[] = { - _("Hold on to your hat! If\n" - "you lose it, you'll be\n" - "easily injured. If you\n" - "lose it, look for it in the\n" - "course where you lost it.\n" - "Speaking of lost, the\n" - "Princess is still stuck in\n" - "the walls somewhere.\n" - "Please help, Mario!\n" - "\n" - "Oh, you know that there\n" - "are secret worlds in the\n" - "walls as well as in the\n" - "paintings, right?") -}; - - -// 0x190076B0 -static const u8 Dialog155[] = { - _("Thanks to the power of\n" - "the Stars, life is\n" - "returning to the castle.\n" - "Please, Mario, you have\n" - "to give Bowser the boot!\n" - "\n" - "Here, let me tell you a\n" - "little something about the\n" - "castle. In the room with\n" - "the mirrors, look carefully\n" - "for anything that's not\n" - "reflected in the mirror.\n" - "And when you go to the\n" - "water town, you can flood\n" - "it with a high jump into\n" - "the painting.") -}; - - -// 0x190077FC -static const u8 Dialog156[] = { - _("The world inside the\n" - "clock is so strange!\n" - "When you jump inside,\n" - "watch the position of\n" - "the big hand!") -}; - - -// 0x19007858 -static const u8 Dialog157[] = { - _("Watch out! Don't let\n" - "yourself be swallowed by\n" - "quicksand.\n" - "\n" - "\n" - "If you sink into the sand,\n" - "you won't be able to\n" - "jump, and if your head\n" - "goes under, you'll be\n" - "smothered.\n" - "The dark areas are\n" - "bottomless pits.") -}; - - -// 0x19007914 -static const u8 Dialog158[] = { - _("1. If you jump repeatedly\n" - "and time it right, you'll\n" - "jump higher and higher.\n" - "If you run really fast and\n" - "time three jumps right,\n" - "you can do a Triple Jump.\n" - "2. Jump into a solid wall,\n" - "then jump again when you\n" - "hit the wall. You can\n" - "bounce to a higher level\n" - "using this Wall Kick.") -}; - - -// 0x19007A18 -static const u8 Dialog159[] = { - _("3. If you stop, press [Z]\n" - "to crouch, then jump, you\n" - "can perform a Backward\n" - "Somersault. To do a Long\n" - "Jump, run fast, press [Z],\n" - "then jump.") -}; - - -// 0x19007A98 -static const u8 Dialog160[] = { - _("Press [B] while running\n" - "fast to do a Body Slide\n" - "attack. To stand while\n" - "sliding, press [A] or [B].") -}; - - -// 0x19007AF4 -static const u8 Dialog161[] = { - _("Mario!!!\n" - "It that really you???\n" - "It has been so long since\n" - "our last adventure!\n" - "They told me that I might\n" - "see you if I waited here,\n" - "but I'd just about given\n" - "up hope!\n" - "Is it true? Have you\n" - "really beaten Bowser? And\n" - "restored the Stars to the\n" - "castle?\n" - "And saved the Princess?\n" - "I knew you could do it!\n" - "Now I have a very special\n" - "message for you.\n" - "『Thanks for playing Super\n" - "Mario 64! This is the\n" - "end of the game, but not\n" - "the end of the fun...』\n" - "\n" - "The Super Mario 64 Team") -}; - - -// 0x19007CA4 -static const u8 Dialog162[] = { - _("No, no, no! Not you\n" - "again! I'm in a great\n" - "hurry, can't you see?\n" - "\n" - "I've no time to squabble\n" - "over Stars. Here, have it.\n" - "I never meant to hide it\n" - "from you...\n" - "It's just that I'm in such\n" - "a rush. That's it, that's\n" - "all. Now, I must be off.\n" - "Owww! Let me go!") -}; - - -// 0x19007D98 -static const u8 Dialog163[] = { - _("Noooo! You've really\n" - "beaten me this time,\n" - "Mario! I can't stand\n" - "losing to you!\n" - "\n" - "My troops...worthless!\n" - "They've turned over all\n" - "the Power Stars! What?!\n" - "There are 120 in all???\n" - "\n" - "Amazing! There were some\n" - "in the castle that I\n" - "missed??!!\n" - "\n" - "\n" - "Now I see peace\n" - "returning to the world...\n" - "Oooo! I really hate that!\n" - "I can't watch--\n" - "I'm outta here!\n" - "Just you wait until next\n" - "time. Until then, keep\n" - "that Control Stick\n" - "smokin'!\n" - "Buwaa ha ha!") -}; - - -// 0x19007F34 -static const u8 Dialog164[] = { - _("Mario! What's up, pal?\n" - "I haven't been on the\n" - "slide lately, so I'm out\n" - "of shape.\n" - "Still, I'm always up for a\n" - "good race, especially\n" - "against an old sleddin'\n" - "buddy.\n" - "Whaddya say?\n" - "Ready...set...\n" - "\n" - "//Go//// Don't Go") -}; - - -// 0x19008004 -static const u8 Dialog165[] = { - _("I take no responsibility\n" - "whatsoever for those who\n" - "get dizzy and pass out\n" - "from running around\n" - "this post.") -}; - - -// 0x1900806C -static const u8 Dialog166[] = { - _("I'll be back soon.\n" - "I'm out training now,\n" - "so come back later.\n" - "//--Koopa the Quick") -}; - - -// 0x190080BC -static const u8 Dialog167[] = { - _("Princess Toadstool's\n" - "castle is just ahead.\n" - "\n" - "\n" - "Press [A] to jump, [Z] to\n" - "crouch, and [B] to punch,\n" - "read a sign, or grab\n" - "something.\n" - "Press [B] again to throw\n" - "something you're holding.") -}; - - -// 0x19008168 -static const u8 Dialog168[] = { - _("Hey! Knock it off! That's\n" - "the second time you've\n" - "nailed me. Now you're\n" - "asking for it, linguine\n" - "breath!") -}; - - -// 0x190081CC -static const u8 Dialog169[] = { - _("Keep out!\n" - "That means you!\n" - "Arrgghh!\n" - "\n" - "Anyone entering this cave\n" - "without permission will\n" - "meet certain disaster.") -}; - - -// dialog entry table 0x19008238 -static const struct DialogEntry dialog_text_000 = { - 1, 6, 30, 200, Dialog000 -}; - -static const struct DialogEntry dialog_text_001 = { - 1, 4, 95, 200, Dialog001 -}; - -static const struct DialogEntry dialog_text_002 = { - 1, 4, 95, 200, Dialog002 -}; - -static const struct DialogEntry dialog_text_003 = { - 1, 5, 95, 200, Dialog003 -}; - -static const struct DialogEntry dialog_text_004 = { - 1, 3, 95, 200, Dialog004 -}; - -static const struct DialogEntry dialog_text_005 = { - 1, 3, 30, 200, Dialog005 -}; - -static const struct DialogEntry dialog_text_006 = { - 1, 3, 30, 200, Dialog006 -}; - -static const struct DialogEntry dialog_text_007 = { - 1, 5, 30, 200, Dialog007 -}; - -static const struct DialogEntry dialog_text_008 = { - 1, 4, 30, 200, Dialog008 -}; - -static const struct DialogEntry dialog_text_009 = { - 1, 5, 30, 200, Dialog009 -}; - -static const struct DialogEntry dialog_text_010 = { - 1, 4, 30, 200, Dialog010 -}; - -static const struct DialogEntry dialog_text_011 = { - 1, 4, 30, 200, Dialog011 -}; - -static const struct DialogEntry dialog_text_012 = { - 1, 4, 30, 200, Dialog012 -}; - -static const struct DialogEntry dialog_text_013 = { - 1, 5, 30, 200, Dialog013 -}; - -static const struct DialogEntry dialog_text_014 = { - 1, 4, 30, 200, Dialog014 -}; - -static const struct DialogEntry dialog_text_015 = { - 1, 4, 30, 200, Dialog015 -}; - -static const struct DialogEntry dialog_text_016 = { - 1, 3, 30, 200, Dialog016 -}; - -static const struct DialogEntry dialog_text_017 = { - 1, 4, 30, 200, Dialog017 -}; - -static const struct DialogEntry dialog_text_018 = { - 1, 4, 30, 200, Dialog018 -}; - -static const struct DialogEntry dialog_text_019 = { - 1, 2, 30, 200, Dialog019 -}; - -static const struct DialogEntry dialog_text_020 = { - 1, 6, 95, 150, Dialog020 -}; - -static const struct DialogEntry dialog_text_021 = { - 1, 5, 95, 200, Dialog021 -}; - -static const struct DialogEntry dialog_text_022 = { - 1, 2, 95, 200, Dialog022 -}; - -static const struct DialogEntry dialog_text_023 = { - 1, 3, 95, 200, Dialog023 -}; - -static const struct DialogEntry dialog_text_024 = { - 1, 5, 95, 200, Dialog024 -}; - -static const struct DialogEntry dialog_text_025 = { - 1, 4, 95, 200, Dialog025 -}; - -static const struct DialogEntry dialog_text_026 = { - 1, 4, 95, 200, Dialog026 -}; - -static const struct DialogEntry dialog_text_027 = { - 1, 4, 95, 200, Dialog027 -}; - -static const struct DialogEntry dialog_text_028 = { - 1, 4, 95, 200, Dialog028 -}; - -static const struct DialogEntry dialog_text_029 = { - 1, 5, 95, 200, Dialog029 -}; - -static const struct DialogEntry dialog_text_030 = { - 1, 6, 30, 200, Dialog030 -}; - -static const struct DialogEntry dialog_text_031 = { - 1, 5, 30, 200, Dialog031 -}; - -static const struct DialogEntry dialog_text_032 = { - 1, 5, 30, 200, Dialog032 -}; - -static const struct DialogEntry dialog_text_033 = { - 1, 6, 30, 200, Dialog033 -}; - -static const struct DialogEntry dialog_text_034 = { - 1, 6, 30, 200, Dialog034 -}; - -static const struct DialogEntry dialog_text_035 = { - 1, 5, 30, 200, Dialog035 -}; - -static const struct DialogEntry dialog_text_036 = { - 1, 5, 30, 200, Dialog036 -}; - -static const struct DialogEntry dialog_text_037 = { - 1, 2, 30, 200, Dialog037 -}; - -static const struct DialogEntry dialog_text_038 = { - 1, 3, 95, 200, Dialog038 -}; - -static const struct DialogEntry dialog_text_039 = { - 1, 4, 30, 200, Dialog039 -}; - -static const struct DialogEntry dialog_text_040 = { - 1, 3, 30, 200, Dialog040 -}; - -static const struct DialogEntry dialog_text_041 = { - 1, 3, 30, 200, Dialog041 -}; - -static const struct DialogEntry dialog_text_042 = { - 1, 4, 30, 200, Dialog042 -}; - -static const struct DialogEntry dialog_text_043 = { - 1, 5, 30, 200, Dialog043 -}; - -static const struct DialogEntry dialog_text_044 = { - 1, 5, 95, 200, Dialog044 -}; - -static const struct DialogEntry dialog_text_045 = { - 1, 6, 95, 200, Dialog045 -}; - -static const struct DialogEntry dialog_text_046 = { - 1, 5, 30, 200, Dialog046 -}; - -static const struct DialogEntry dialog_text_047 = { - 1, 2, 95, 200, Dialog047 -}; - -static const struct DialogEntry dialog_text_048 = { - 1, 4, 30, 200, Dialog048 -}; - -static const struct DialogEntry dialog_text_049 = { - 1, 5, 30, 200, Dialog049 -}; - -static const struct DialogEntry dialog_text_050 = { - 1, 4, 30, 200, Dialog050 -}; - -static const struct DialogEntry dialog_text_051 = { - 1, 6, 30, 200, Dialog051 -}; - -static const struct DialogEntry dialog_text_052 = { - 1, 5, 30, 200, Dialog052 -}; - -static const struct DialogEntry dialog_text_053 = { - 1, 5, 30, 200, Dialog053 -}; - -static const struct DialogEntry dialog_text_054 = { - 1, 5, 30, 200, Dialog054 -}; - -static const struct DialogEntry dialog_text_055 = { - 1, 4, 30, 200, Dialog055 -}; - -static const struct DialogEntry dialog_text_056 = { - 1, 6, 30, 200, Dialog056 -}; - -static const struct DialogEntry dialog_text_057 = { - 1, 4, 30, 200, Dialog057 -}; - -static const struct DialogEntry dialog_text_058 = { - 1, 4, 30, 200, Dialog058 -}; - -static const struct DialogEntry dialog_text_059 = { - 1, 4, 30, 200, Dialog059 -}; - -static const struct DialogEntry dialog_text_060 = { - 1, 4, 30, 200, Dialog060 -}; - -static const struct DialogEntry dialog_text_061 = { - 1, 4, 30, 200, Dialog061 -}; - -static const struct DialogEntry dialog_text_062 = { - 1, 3, 30, 200, Dialog062 -}; - -static const struct DialogEntry dialog_text_063 = { - 1, 5, 30, 200, Dialog063 -}; - -static const struct DialogEntry dialog_text_064 = { - 1, 5, 30, 200, Dialog064 -}; - -static const struct DialogEntry dialog_text_065 = { - 1, 6, 30, 200, Dialog065 -}; - -static const struct DialogEntry dialog_text_066 = { - 1, 5, 30, 200, Dialog066 -}; - -static const struct DialogEntry dialog_text_067 = { - 1, 5, 30, 200, Dialog067 -}; - -static const struct DialogEntry dialog_text_068 = { - 1, 5, 30, 200, Dialog068 -}; - -static const struct DialogEntry dialog_text_069 = { - 1, 6, 30, 200, Dialog069 -}; - -static const struct DialogEntry dialog_text_070 = { - 1, 5, 30, 200, Dialog070 -}; - -static const struct DialogEntry dialog_text_071 = { - 1, 3, 30, 200, Dialog071 -}; - -static const struct DialogEntry dialog_text_072 = { - 1, 5, 30, 200, Dialog072 -}; - -static const struct DialogEntry dialog_text_073 = { - 1, 4, 95, 200, Dialog073 -}; - -static const struct DialogEntry dialog_text_074 = { - 1, 5, 30, 200, Dialog074 -}; - -static const struct DialogEntry dialog_text_075 = { - 1, 5, 30, 200, Dialog075 -}; - -static const struct DialogEntry dialog_text_076 = { - 1, 6, 30, 200, Dialog076 -}; - -static const struct DialogEntry dialog_text_077 = { - 1, 2, 150, 200, Dialog077 -}; - -static const struct DialogEntry dialog_text_078 = { - 1, 5, 30, 200, Dialog078 -}; - -static const struct DialogEntry dialog_text_079 = { - 1, 4, 30, 200, Dialog079 -}; - -static const struct DialogEntry dialog_text_080 = { - 1, 1, 30, 200, Dialog080 -}; - -static const struct DialogEntry dialog_text_081 = { - 1, 4, 30, 200, Dialog081 -}; - -static const struct DialogEntry dialog_text_082 = { - 1, 4, 30, 200, Dialog082 -}; - -static const struct DialogEntry dialog_text_083 = { - 1, 6, 30, 200, Dialog083 -}; - -static const struct DialogEntry dialog_text_084 = { - 1, 3, 30, 200, Dialog084 -}; - -static const struct DialogEntry dialog_text_085 = { - 1, 5, 30, 200, Dialog085 -}; - -static const struct DialogEntry dialog_text_086 = { - 1, 3, 30, 200, Dialog086 -}; - -static const struct DialogEntry dialog_text_087 = { - 1, 4, 30, 200, Dialog087 -}; - -static const struct DialogEntry dialog_text_088 = { - 1, 5, 30, 200, Dialog088 -}; - -static const struct DialogEntry dialog_text_089 = { - 1, 5, 95, 200, Dialog089 -}; - -static const struct DialogEntry dialog_text_090 = { - 1, 6, 30, 200, Dialog090 -}; - -static const struct DialogEntry dialog_text_091 = { - 2, 2, 30, 200, Dialog091 -}; - -static const struct DialogEntry dialog_text_092 = { - 1, 5, 30, 200, Dialog092 -}; - -static const struct DialogEntry dialog_text_093 = { - 1, 5, 30, 200, Dialog093 -}; - -static const struct DialogEntry dialog_text_094 = { - 1, 4, 30, 200, Dialog094 -}; - -static const struct DialogEntry dialog_text_095 = { - 1, 4, 30, 200, Dialog095 -}; - -static const struct DialogEntry dialog_text_096 = { - 1, 4, 30, 200, Dialog096 -}; - -static const struct DialogEntry dialog_text_097 = { - 1, 5, 30, 200, Dialog097 -}; - -static const struct DialogEntry dialog_text_098 = { - 1, 2, 95, 200, Dialog098 -}; - -static const struct DialogEntry dialog_text_099 = { - 1, 5, 95, 200, Dialog099 -}; - -static const struct DialogEntry dialog_text_100 = { - 1, 3, 95, 200, Dialog100 -}; - -static const struct DialogEntry dialog_text_101 = { - 1, 3, 95, 200, Dialog101 -}; - -static const struct DialogEntry dialog_text_102 = { - 1, 5, 30, 200, Dialog102 -}; - -static const struct DialogEntry dialog_text_103 = { - 1, 4, 95, 200, Dialog103 -}; - -static const struct DialogEntry dialog_text_104 = { - 1, 5, 30, 200, Dialog104 -}; - -static const struct DialogEntry dialog_text_105 = { - 1, 3, 95, 200, Dialog105 -}; - -static const struct DialogEntry dialog_text_106 = { - 1, 2, 95, 200, Dialog106 -}; - -static const struct DialogEntry dialog_text_107 = { - 1, 3, 95, 200, Dialog107 -}; - -static const struct DialogEntry dialog_text_108 = { - 1, 2, 95, 200, Dialog108 -}; - -static const struct DialogEntry dialog_text_109 = { - 1, 4, 95, 200, Dialog109 -}; - -static const struct DialogEntry dialog_text_110 = { - 1, 5, 95, 200, Dialog110 -}; - -static const struct DialogEntry dialog_text_111 = { - 1, 4, 95, 200, Dialog111 -}; - -static const struct DialogEntry dialog_text_112 = { - 1, 4, 30, 200, Dialog112 -}; - -static const struct DialogEntry dialog_text_113 = { - 1, 6, 30, 200, Dialog113 -}; - -static const struct DialogEntry dialog_text_114 = { - 1, 5, 95, 200, Dialog114 -}; - -static const struct DialogEntry dialog_text_115 = { - 1, 5, 95, 200, Dialog115 -}; - -static const struct DialogEntry dialog_text_116 = { - 1, 5, 95, 200, Dialog116 -}; - -static const struct DialogEntry dialog_text_117 = { - 1, 1, 95, 200, Dialog117 -}; - -static const struct DialogEntry dialog_text_118 = { - 1, 6, 95, 200, Dialog118 -}; - -static const struct DialogEntry dialog_text_119 = { - 1, 6, 30, 200, Dialog119 -}; - -static const struct DialogEntry dialog_text_120 = { - 1, 4, 30, 200, Dialog120 -}; - -static const struct DialogEntry dialog_text_121 = { - 1, 5, 30, 200, Dialog121 -}; - -static const struct DialogEntry dialog_text_122 = { - 1, 4, 30, 200, Dialog122 -}; - -static const struct DialogEntry dialog_text_123 = { - 1, 4, 30, 200, Dialog123 -}; - -static const struct DialogEntry dialog_text_124 = { - 1, 4, 30, 200, Dialog124 -}; - -static const struct DialogEntry dialog_text_125 = { - 1, 3, 30, 200, Dialog125 -}; - -static const struct DialogEntry dialog_text_126 = { - 2, 3, 30, 200, Dialog126 -}; - -static const struct DialogEntry dialog_text_127 = { - 3, 4, 30, 200, Dialog127 -}; - -static const struct DialogEntry dialog_text_128 = { - 1, 4, 95, 200, Dialog128 -}; - -static const struct DialogEntry dialog_text_129 = { - 1, 5, 30, 200, Dialog129 -}; - -static const struct DialogEntry dialog_text_130 = { - 1, 5, 30, 200, Dialog130 -}; - -static const struct DialogEntry dialog_text_131 = { - 1, 5, 30, 200, Dialog131 -}; - -static const struct DialogEntry dialog_text_132 = { - 1, 4, 30, 200, Dialog132 -}; - -static const struct DialogEntry dialog_text_133 = { - 1, 6, 30, 200, Dialog133 -}; - -static const struct DialogEntry dialog_text_134 = { - 1, 5, 30, 200, Dialog134 -}; - -static const struct DialogEntry dialog_text_135 = { - 1, 5, 30, 200, Dialog135 -}; - -static const struct DialogEntry dialog_text_136 = { - 1, 6, 30, 200, Dialog136 -}; - -static const struct DialogEntry dialog_text_137 = { - 1, 6, 30, 200, Dialog137 -}; - -static const struct DialogEntry dialog_text_138 = { - 1, 3, 30, 200, Dialog138 -}; - -static const struct DialogEntry dialog_text_139 = { - 1, 6, 30, 200, Dialog139 -}; - -static const struct DialogEntry dialog_text_140 = { - 1, 6, 30, 200, Dialog140 -}; - -static const struct DialogEntry dialog_text_141 = { - 1, 5, 150, 200, Dialog141 -}; - -static const struct DialogEntry dialog_text_142 = { - 1, 5, 150, 200, Dialog142 -}; - -static const struct DialogEntry dialog_text_143 = { - 1, 6, 150, 200, Dialog143 -}; - -static const struct DialogEntry dialog_text_144 = { - 1, 6, 150, 200, Dialog144 -}; - -static const struct DialogEntry dialog_text_145 = { - 1, 6, 150, 200, Dialog145 -}; - -static const struct DialogEntry dialog_text_146 = { - 1, 6, 150, 200, Dialog146 -}; - -static const struct DialogEntry dialog_text_147 = { - 1, 5, 30, 200, Dialog147 -}; - -static const struct DialogEntry dialog_text_148 = { - 1, 6, 30, 200, Dialog148 -}; - -static const struct DialogEntry dialog_text_149 = { - 1, 3, 30, 200, Dialog149 -}; - -static const struct DialogEntry dialog_text_150 = { - 1, 5, 30, 200, Dialog150 -}; - -static const struct DialogEntry dialog_text_151 = { - 1, 4, 30, 200, Dialog151 -}; - -static const struct DialogEntry dialog_text_152 = { - 1, 3, 30, 200, Dialog152 -}; - -static const struct DialogEntry dialog_text_153 = { - 1, 4, 30, 200, Dialog153 -}; - -static const struct DialogEntry dialog_text_154 = { - 1, 5, 30, 200, Dialog154 -}; - -static const struct DialogEntry dialog_text_155 = { - 1, 6, 30, 200, Dialog155 -}; - -static const struct DialogEntry dialog_text_156 = { - 1, 5, 30, 200, Dialog156 -}; - -static const struct DialogEntry dialog_text_157 = { - 1, 5, 30, 200, Dialog157 -}; - -static const struct DialogEntry dialog_text_158 = { - 1, 6, 30, 200, Dialog158 -}; - -static const struct DialogEntry dialog_text_159 = { - 1, 6, 30, 200, Dialog159 -}; - -static const struct DialogEntry dialog_text_160 = { - 1, 4, 30, 200, Dialog160 -}; - -static const struct DialogEntry dialog_text_161 = { - 1, 4, 30, 200, Dialog161 -}; - -static const struct DialogEntry dialog_text_162 = { - 1, 4, 30, 200, Dialog162 -}; - -static const struct DialogEntry dialog_text_163 = { - 1, 5, 30, 200, Dialog163 -}; - -static const struct DialogEntry dialog_text_164 = { - 1, 4, 30, 200, Dialog164 -}; - -static const struct DialogEntry dialog_text_165 = { - 1, 5, 30, 200, Dialog165 -}; - -static const struct DialogEntry dialog_text_166 = { - 1, 4, 30, 200, Dialog166 -}; - -static const struct DialogEntry dialog_text_167 = { - 1, 4, 30, 200, Dialog167 -}; - -static const struct DialogEntry dialog_text_168 = { - 1, 5, 30, 200, Dialog168 -}; - -static const struct DialogEntry dialog_text_169 = { - 1, 4, 30, 200, Dialog169 -}; - - -// dialog table -// 0x19008CD8 -const struct DialogEntry *const dialog_table_eu_en[] = { - &dialog_text_000, &dialog_text_001, &dialog_text_002, &dialog_text_003, - &dialog_text_004, &dialog_text_005, &dialog_text_006, &dialog_text_007, - &dialog_text_008, &dialog_text_009, &dialog_text_010, &dialog_text_011, - &dialog_text_012, &dialog_text_013, &dialog_text_014, &dialog_text_015, - &dialog_text_016, &dialog_text_017, &dialog_text_018, &dialog_text_019, - &dialog_text_020, &dialog_text_021, &dialog_text_022, &dialog_text_023, - &dialog_text_024, &dialog_text_025, &dialog_text_026, &dialog_text_027, - &dialog_text_028, &dialog_text_029, &dialog_text_030, &dialog_text_031, - &dialog_text_032, &dialog_text_033, &dialog_text_034, &dialog_text_035, - &dialog_text_036, &dialog_text_037, &dialog_text_038, &dialog_text_039, - &dialog_text_040, &dialog_text_041, &dialog_text_042, &dialog_text_043, - &dialog_text_044, &dialog_text_045, &dialog_text_046, &dialog_text_047, - &dialog_text_048, &dialog_text_049, &dialog_text_050, &dialog_text_051, - &dialog_text_052, &dialog_text_053, &dialog_text_054, &dialog_text_055, - &dialog_text_056, &dialog_text_057, &dialog_text_058, &dialog_text_059, - &dialog_text_060, &dialog_text_061, &dialog_text_062, &dialog_text_063, - &dialog_text_064, &dialog_text_065, &dialog_text_066, &dialog_text_067, - &dialog_text_068, &dialog_text_069, &dialog_text_070, &dialog_text_071, - &dialog_text_072, &dialog_text_073, &dialog_text_074, &dialog_text_075, - &dialog_text_076, &dialog_text_077, &dialog_text_078, &dialog_text_079, - &dialog_text_080, &dialog_text_081, &dialog_text_082, &dialog_text_083, - &dialog_text_084, &dialog_text_085, &dialog_text_086, &dialog_text_087, - &dialog_text_088, &dialog_text_089, &dialog_text_090, &dialog_text_091, - &dialog_text_092, &dialog_text_093, &dialog_text_094, &dialog_text_095, - &dialog_text_096, &dialog_text_097, &dialog_text_098, &dialog_text_099, - &dialog_text_100, &dialog_text_101, &dialog_text_102, &dialog_text_103, - &dialog_text_104, &dialog_text_105, &dialog_text_106, &dialog_text_107, - &dialog_text_108, &dialog_text_109, &dialog_text_110, &dialog_text_111, - &dialog_text_112, &dialog_text_113, &dialog_text_114, &dialog_text_115, - &dialog_text_116, &dialog_text_117, &dialog_text_118, &dialog_text_119, - &dialog_text_120, &dialog_text_121, &dialog_text_122, &dialog_text_123, - &dialog_text_124, &dialog_text_125, &dialog_text_126, &dialog_text_127, - &dialog_text_128, &dialog_text_129, &dialog_text_130, &dialog_text_131, - &dialog_text_132, &dialog_text_133, &dialog_text_134, &dialog_text_135, - &dialog_text_136, &dialog_text_137, &dialog_text_138, &dialog_text_139, - &dialog_text_140, &dialog_text_141, &dialog_text_142, &dialog_text_143, - &dialog_text_144, &dialog_text_145, &dialog_text_146, &dialog_text_147, - &dialog_text_148, &dialog_text_149, &dialog_text_150, &dialog_text_151, - &dialog_text_152, &dialog_text_153, &dialog_text_154, &dialog_text_155, - &dialog_text_156, &dialog_text_157, &dialog_text_158, &dialog_text_159, - &dialog_text_160, &dialog_text_161, &dialog_text_162, &dialog_text_163, - &dialog_text_164, &dialog_text_165, &dialog_text_166, &dialog_text_167, - &dialog_text_168, &dialog_text_169, NULL, -}; - diff --git a/text/eu/en/level.c.in b/text/eu/en/level.c.in deleted file mode 100644 index d5d8afe..0000000 --- a/text/eu/en/level.c.in +++ /dev/null @@ -1,169 +0,0 @@ -// level names (EU, English) -// 0x19008F84 -static const u8 level_name_01[] = { - _(" 1 BOB-OMB BATTLEFIELD") -}; - - -// 0x19008F9C -static const u8 level_name_02[] = { - _(" 2 WHOMP'S FORTRESS") -}; - - -// 0x19008FB0 -static const u8 level_name_03[] = { - _(" 3 JOLLY ROGER BAY") -}; - - -// 0x19008FC4 -static const u8 level_name_04[] = { - _(" 4 COOL, COOL MOUNTAIN") -}; - - -// 0x19008FDC -static const u8 level_name_05[] = { - _(" 5 BIG BOO'S HAUNT") -}; - - -// 0x19008FF0 -static const u8 level_name_06[] = { - _(" 6 HAZY MAZE CAVE") -}; - - -// 0x19009004 -static const u8 level_name_07[] = { - _(" 7 LETHAL LAVA LAND") -}; - - -// 0x19009018 -static const u8 level_name_08[] = { - _(" 8 SHIFTING SAND LAND") -}; - - -// 0x19009030 -static const u8 level_name_09[] = { - _(" 9 DIRE, DIRE DOCKS") -}; - - -// 0x19009044 -static const u8 level_name_10[] = { - _("10 SNOWMAN'S LAND") -}; - - -// 0x19009058 -static const u8 level_name_11[] = { - _("11 WET-DRY WORLD") -}; - - -// 0x1900906C -static const u8 level_name_12[] = { - _("12 TALL, TALL MOUNTAIN") -}; - - -// 0x19009084 -static const u8 level_name_13[] = { - _("13 TINY-HUGE ISLAND") -}; - - -// 0x19009098 -static const u8 level_name_14[] = { - _("14 TICK TOCK CLOCK") -}; - - -// 0x190090AC -static const u8 level_name_15[] = { - _("15 RAINBOW RIDE") -}; - - -// 0x190090BC -static const u8 level_name_16[] = { - _(" BOWSER IN THE DARK WORLD") -}; - - -// 0x190090D8 -static const u8 level_name_17[] = { - _(" BOWSER IN THE FIRE SEA") -}; - - -// 0x190090F4 -static const u8 level_name_18[] = { - _(" BOWSER IN THE SKY") -}; - - -// 0x1900910C -static const u8 level_name_19[] = { - _(" THE PRINCESS'S SECRET SLIDE") -}; - - -// 0x1900912C -static const u8 level_name_20[] = { - _(" CAVERN OF THE METAL CAP") -}; - - -// 0x19009148 -static const u8 level_name_21[] = { - _(" TOWER OF THE WING CAP") -}; - - -// 0x19009164 -static const u8 level_name_22[] = { - _(" VANISH CAP UNDER THE MOAT") -}; - - -// 0x19009184 -static const u8 level_name_23[] = { - _(" WING MARIO OVER THE RAINBOW") -}; - - -// 0x190091A4 -static const u8 level_name_24[] = { - _(" THE SECRET AQUARIUM") -}; - - -// 0x190091BC -static const u8 level_name_25[] = { - _("") -}; - - -// 0x190091C0 -static const u8 level_name_castle_secret_stars[] = { - _(" CASTLE SECRET STARS") -}; - - -// level name table -// 0x190091D8 -const u8 *const level_name_table_eu_en[] = { - level_name_01, level_name_02, level_name_03, level_name_04, - level_name_05, level_name_06, level_name_07, level_name_08, - level_name_09, level_name_10, level_name_11, level_name_12, - level_name_13, level_name_14, level_name_15, level_name_16, - level_name_17, level_name_18, level_name_19, level_name_20, - level_name_21, level_name_22, level_name_23, level_name_24, - level_name_25, level_name_castle_secret_stars, 0x0, -}; - diff --git a/text/eu/en/star.c.in b/text/eu/en/star.c.in deleted file mode 100644 index 0562143..0000000 --- a/text/eu/en/star.c.in +++ /dev/null @@ -1,613 +0,0 @@ -// act names (EU, English) -// 0x19009244 -static const u8 act_name_00[] = { - _("BIG BOB-OMB ON THE SUMMIT") -}; - - -// 0x19009260 -static const u8 act_name_01[] = { - _("FOOTRACE WITH KOOPA THE QUICK") -}; - - -// 0x19009280 -static const u8 act_name_02[] = { - _("SHOOT TO THE ISLAND IN THE SKY") -}; - - -// 0x190092A0 -static const u8 act_name_03[] = { - _("FIND THE 8 RED COINS") -}; - - -// 0x190092B8 -static const u8 act_name_04[] = { - _("MARIO WINGS TO THE SKY") -}; - - -// 0x190092D0 -static const u8 act_name_05[] = { - _("BEHIND CHAIN CHOMP'S GATE") -}; - - -// 0x190092EC -static const u8 act_name_06[] = { - _("CHIP OFF WHOMP'S BLOCK") -}; - - -// 0x19009304 -static const u8 act_name_07[] = { - _("TO THE TOP OF THE FORTRESS") -}; - - -// 0x19009320 -static const u8 act_name_08[] = { - _("SHOOT INTO THE WILD BLUE") -}; - - -// 0x1900933C -static const u8 act_name_09[] = { - _("RED COINS ON THE FLOATING ISLE") -}; - - -// 0x1900935C -static const u8 act_name_10[] = { - _("FALL ONTO THE CAGED ISLAND") -}; - - -// 0x19009378 -static const u8 act_name_11[] = { - _("BLAST AWAY THE WALL") -}; - - -// 0x1900938C -static const u8 act_name_12[] = { - _("PLUNDER IN THE SUNKEN SHIP") -}; - - -// 0x190093A8 -static const u8 act_name_13[] = { - _("CAN THE EEL COME OUT TO PLAY?") -}; - - -// 0x190093C8 -static const u8 act_name_14[] = { - _("TREASURE OF THE OCEAN CAVE") -}; - - -// 0x190093E4 -static const u8 act_name_15[] = { - _("RED COINS ON THE SHIP AFLOAT") -}; - - -// 0x19009404 -static const u8 act_name_16[] = { - _("BLAST TO THE STONE PILLAR") -}; - - -// 0x19009420 -static const u8 act_name_17[] = { - _("THROUGH THE JET STREAM") -}; - - -// 0x19009438 -static const u8 act_name_18[] = { - _("SLIP SLIDIN' AWAY") -}; - - -// 0x1900944C -static const u8 act_name_19[] = { - _("LI'L PENGUIN LOST") -}; - - -// 0x19009460 -static const u8 act_name_20[] = { - _("BIG PENGUIN RACE") -}; - - -// 0x19009474 -static const u8 act_name_21[] = { - _("FROSTY SLIDE FOR 8 RED COINS") -}; - - -// 0x19009494 -static const u8 act_name_22[] = { - _("SNOWMAN'S LOST HIS HEAD") -}; - - -// 0x190094AC -static const u8 act_name_23[] = { - _("WALL KICKS WILL WORK") -}; - - -// 0x190094C4 -static const u8 act_name_24[] = { - _("GO ON A GHOST HUNT") -}; - - -// 0x190094D8 -static const u8 act_name_25[] = { - _("RIDE BIG BOO'S MERRY-GO-ROUND") -}; - - -// 0x190094F8 -static const u8 act_name_26[] = { - _("SECRET OF THE HAUNTED BOOKS") -}; - - -// 0x19009514 -static const u8 act_name_27[] = { - _("SEEK THE 8 RED COINS") -}; - - -// 0x1900952C -static const u8 act_name_28[] = { - _("BIG BOO'S BALCONY") -}; - - -// 0x19009540 -static const u8 act_name_29[] = { - _("EYE TO EYE IN THE SECRET ROOM") -}; - - -// 0x19009560 -static const u8 act_name_30[] = { - _("SWIMMING BEAST IN THE CAVERN") -}; - - -// 0x19009580 -static const u8 act_name_31[] = { - _("ELEVATE FOR 8 RED COINS") -}; - - -// 0x19009598 -static const u8 act_name_32[] = { - _("METAL-HEAD MARIO CAN MOVE!") -}; - - -// 0x190095B4 -static const u8 act_name_33[] = { - _("NAVIGATING THE TOXIC MAZE") -}; - - -// 0x190095D0 -static const u8 act_name_34[] = { - _("A-MAZE-ING EMERGENCY EXIT") -}; - - -// 0x190095EC -static const u8 act_name_35[] = { - _("WATCH FOR ROLLING ROCKS") -}; - - -// 0x19009604 -static const u8 act_name_36[] = { - _("BOIL THE BIG BULLY") -}; - - -// 0x19009618 -static const u8 act_name_37[] = { - _("BULLY THE BULLIES") -}; - - -// 0x1900962C -static const u8 act_name_38[] = { - _("8-COIN PUZZLE WITH 15 PIECES") -}; - - -// 0x1900964C -static const u8 act_name_39[] = { - _("RED-HOT LOG ROLLING") -}; - - -// 0x19009660 -static const u8 act_name_40[] = { - _("HOT-FOOT-IT INTO THE VOLCANO") -}; - - -// 0x19009680 -static const u8 act_name_41[] = { - _("ELEVATOR TOUR IN THE VOLCANO") -}; - - -// 0x190096A0 -static const u8 act_name_42[] = { - _("IN THE TALONS OF THE BIG BIRD") -}; - - -// 0x190096C0 -static const u8 act_name_43[] = { - _("SHINING ATOP THE PYRAMID") -}; - - -// 0x190096DC -static const u8 act_name_44[] = { - _("INSIDE THE ANCIENT PYRAMID") -}; - - -// 0x190096F8 -static const u8 act_name_45[] = { - _("STAND TALL ON THE FOUR PILLARS") -}; - - -// 0x19009718 -static const u8 act_name_46[] = { - _("FREE FLYING FOR 8 RED COINS") -}; - - -// 0x19009734 -static const u8 act_name_47[] = { - _("PYRAMID PUZZLE") -}; - - -// 0x19009744 -static const u8 act_name_48[] = { - _("BOARD BOWSER'S SUB") -}; - - -// 0x19009758 -static const u8 act_name_49[] = { - _("CHESTS IN THE CURRENT") -}; - - -// 0x19009770 -static const u8 act_name_50[] = { - _("POLE-JUMPING FOR RED COINS") -}; - - -// 0x1900978C -static const u8 act_name_51[] = { - _("THROUGH THE JET STREAM") -}; - - -// 0x190097A4 -static const u8 act_name_52[] = { - _("THE MANTA RAY'S REWARD") -}; - - -// 0x190097BC -static const u8 act_name_53[] = { - _("COLLECT THE CAPS...") -}; - - -// 0x190097D0 -static const u8 act_name_54[] = { - _("SNOWMAN'S BIG HEAD") -}; - - -// 0x190097E4 -static const u8 act_name_55[] = { - _("CHILL WITH THE BULLY") -}; - - -// 0x190097FC -static const u8 act_name_56[] = { - _("IN THE DEEP FREEZE") -}; - - -// 0x19009810 -static const u8 act_name_57[] = { - _("WHIRL FROM THE FREEZING POND") -}; - - -// 0x19009830 -static const u8 act_name_58[] = { - _("SHELL SHREDDIN' FOR RED COINS") -}; - - -// 0x19009850 -static const u8 act_name_59[] = { - _("INTO THE IGLOO") -}; - - -// 0x19009860 -static const u8 act_name_60[] = { - _("SHOCKING ARROW LIFTS!") -}; - - -// 0x19009878 -static const u8 act_name_61[] = { - _("TOP O' THE TOWN") -}; - - -// 0x19009888 -static const u8 act_name_62[] = { - _("SECRETS IN THE SHALLOWS & SKY") -}; - - -// 0x190098A8 -static const u8 act_name_63[] = { - _("EXPRESS ELEVATOR--HURRY UP!") -}; - - -// 0x190098C4 -static const u8 act_name_64[] = { - _("GO TO TOWN FOR RED COINS") -}; - - -// 0x190098E0 -static const u8 act_name_65[] = { - _("QUICK RACE THROUGH DOWNTOWN!") -}; - - -// 0x19009900 -static const u8 act_name_66[] = { - _("SCALE THE MOUNTAIN") -}; - - -// 0x19009914 -static const u8 act_name_67[] = { - _("MYSTERY OF THE MONKEY CAGE") -}; - - -// 0x19009930 -static const u8 act_name_68[] = { - _("SCARY 'SHROOMS, RED COINS") -}; - - -// 0x1900994C -static const u8 act_name_69[] = { - _("MYSTERIOUS MOUNTAINSIDE") -}; - - -// 0x19009964 -static const u8 act_name_70[] = { - _("BREATHTAKING VIEW FROM BRIDGE") -}; - - -// 0x19009984 -static const u8 act_name_71[] = { - _("BLAST TO THE LONELY MUSHROOM") -}; - - -// 0x190099A4 -static const u8 act_name_72[] = { - _("PLUCK THE PIRANHA FLOWER") -}; - - -// 0x190099C0 -static const u8 act_name_73[] = { - _("THE TIP TOP OF THE HUGE ISLAND") -}; - - -// 0x190099E0 -static const u8 act_name_74[] = { - _("REMATCH WITH KOOPA THE QUICK") -}; - - -// 0x19009A00 -static const u8 act_name_75[] = { - _("FIVE ITTY BITTY SECRETS") -}; - - -// 0x19009A18 -static const u8 act_name_76[] = { - _("WIGGLER'S RED COINS") -}; - - -// 0x19009A2C -static const u8 act_name_77[] = { - _("MAKE WIGGLER SQUIRM") -}; - - -// 0x19009A40 -static const u8 act_name_78[] = { - _("ROLL INTO THE CAGE") -}; - - -// 0x19009A54 -static const u8 act_name_79[] = { - _("THE PIT AND THE PENDULUMS") -}; - - -// 0x19009A70 -static const u8 act_name_80[] = { - _("GET A HAND") -}; - - -// 0x19009A7C -static const u8 act_name_81[] = { - _("STOMP ON THE THWOMP") -}; - - -// 0x19009A90 -static const u8 act_name_82[] = { - _("TIMED JUMPS ON MOVING BARS") -}; - - -// 0x19009AAC -static const u8 act_name_83[] = { - _("STOP TIME FOR RED COINS") -}; - - -// 0x19009AC4 -static const u8 act_name_84[] = { - _("CRUISER CROSSING THE RAINBOW") -}; - - -// 0x19009AE4 -static const u8 act_name_85[] = { - _("THE BIG HOUSE IN THE SKY") -}; - - -// 0x19009B00 -static const u8 act_name_86[] = { - _("COINS AMASSED IN A MAZE") -}; - - -// 0x19009B18 -static const u8 act_name_87[] = { - _("SWINGIN' IN THE BREEZE") -}; - - -// 0x19009B30 -static const u8 act_name_88[] = { - _("TRICKY TRIANGLES!") -}; - - -// 0x19009B44 -static const u8 act_name_89[] = { - _("SOMEWHERE OVER THE RAINBOW") -}; - - -// 0x19009B60 -static const u8 act_name_90[] = { - _("ONE OF THE CASTLE'S SECRET STARS!") -}; - - -// 0x19009B84 -static const u8 act_name_91[] = { - _("") -}; - - -// 0x19009B88 -static const u8 act_name_92[] = { - _("") -}; - - -// 0x19009B8C -static const u8 act_name_93[] = { - _("") -}; - - -// 0x19009B90 -static const u8 act_name_94[] = { - _("") -}; - - -// 0x19009B94 -static const u8 act_name_95[] = { - _("") -}; - - -// 0x19009B98 -static const u8 act_name_96[] = { - _("") -}; - - -// act name table -// 0x19009B9C -const u8 *const act_name_table_eu_en[] = { - act_name_00, act_name_01, act_name_02, act_name_03, - act_name_04, act_name_05, act_name_06, act_name_07, - act_name_08, act_name_09, act_name_10, act_name_11, - act_name_12, act_name_13, act_name_14, act_name_15, - act_name_16, act_name_17, act_name_18, act_name_19, - act_name_20, act_name_21, act_name_22, act_name_23, - act_name_24, act_name_25, act_name_26, act_name_27, - act_name_28, act_name_29, act_name_30, act_name_31, - act_name_32, act_name_33, act_name_34, act_name_35, - act_name_36, act_name_37, act_name_38, act_name_39, - act_name_40, act_name_41, act_name_42, act_name_43, - act_name_44, act_name_45, act_name_46, act_name_47, - act_name_48, act_name_49, act_name_50, act_name_51, - act_name_52, act_name_53, act_name_54, act_name_55, - act_name_56, act_name_57, act_name_58, act_name_59, - act_name_60, act_name_61, act_name_62, act_name_63, - act_name_64, act_name_65, act_name_66, act_name_67, - act_name_68, act_name_69, act_name_70, act_name_71, - act_name_72, act_name_73, act_name_74, act_name_75, - act_name_76, act_name_77, act_name_78, act_name_79, - act_name_80, act_name_81, act_name_82, act_name_83, - act_name_84, act_name_85, act_name_86, act_name_87, - act_name_88, act_name_89, act_name_90, act_name_91, - act_name_92, act_name_93, act_name_94, act_name_95, - act_name_96, 0x0, -}; - diff --git a/text/eu/fr/dialog.c.in b/text/eu/fr/dialog.c.in deleted file mode 100644 index bd3214f..0000000 --- a/text/eu/fr/dialog.c.in +++ /dev/null @@ -1,3537 +0,0 @@ -// dialogs (EU, Français) -// 0x19000000 -static const u8 Dialog000[] = { - _("Incroyable! Vous voilà\n" - "propulsé au beau milieu\n" - "d'un champ de bataille!\n" - "\n" - "\n" - "\n" - "Vous trouverez dans les\n" - "mondes au milieu des\n" - "tableaux les étoiles que\n" - "Bowser a dérobées...\n" - "\n" - "\n" - "Tout d'abord, parlez au\n" - "gentil Bob-omb (appuyez\n" - "sur [B] pour parler). Il\n" - "vous aidera sûrement,\n" - "ainsi que ses camarades\n" - "dans d'autres niveaux...\n" - "Pour lire une pancarte:\n" - "arrêtez-vous, faites face\n" - "au panneau et appuyez sur\n" - "[B]. Appuyez sur [A] ou [B]\n" - "pour lire la suite du\n" - "texte.") -}; - - -// 0x190001B4 -static const u8 Dialog001[] = { - _("Attention! Si tu te\n" - "promènes par ici, tu\n" - "risques de te faire\n" - "écrabouiller par une bombe\n" - "à eau!\n" - "Les méchants Bob-ombs\n" - "adorent se bagarrer, et\n" - "ils trouvent toujours le\n" - "moyen d'attaquer\n" - "quelqu'un...\n" - "Cette prairie est devenue\n" - "un champ de bataille\n" - "depuis que le Roi Bob-omb\n" - "s'est approprié l'étoile de\n" - "puissance.\n" - "Peux-tu aller chercher\n" - "l'étoile pour nous?\n" - "\n" - "\n" - "\n" - "Traverse le pont, va à\n" - "gauche et prends le\n" - "chemin vers le haut pour\n" - "trouver le Roi Bob-omb.\n" - "\n" - "Reviens me voir lorsque tu\n" - "auras récupéré l'étoile de\n" - "puissance!") -}; - - -// 0x190003B4 -static const u8 Dialog002[] = { - _("Hé, toi! C'est dangereux\n" - "par ici! Alors écoute bien\n" - "mon conseil:\n" - "\n" - "\n" - "\n" - "Traverse les deux ponts\n" - "devant toi, tout en\n" - "faisant attention aux\n" - "bombes à eau.\n" - "\n" - "\n" - "Le Roi Bob-omb au\n" - "sommet de la montagne\n" - "est très puissant...\n" - "Ne le laisse pas\n" - "t'attraper!\n" - "\n" - "Nous sommes de gentils\n" - "Bob-ombs, et nous sommes\n" - "de ton côté.\n" - "N'hésite pas à venir nous\n" - "parler à chaque fois que\n" - "tu en as envie!") -}; - - -// 0x19000528 -static const u8 Dialog003[] = { - _("Merci beaucoup Mario!\n" - "Tu as éclaté le vilain Roi\n" - "Bob-omb comme une vieille\n" - "figue! Mais tout ceci\n" - "n'est qu'un début...\n" - "D'autres gros méchants\n" - "pas beaux détiennent des\n" - "étoiles de puissance.\n" - "\n" - "\n" - "Si tu récupères d'autres\n" - "étoiles, tu pourras ouvrir\n" - "de nouvelles portes menant\n" - "à de nouveaux mondes!\n" - "\n" - "Mes camarades Bob-ombs\n" - "t'attendent. Si tu leur\n" - "parles, ils te prépareront\n" - "de jolis canons!") -}; - - -// 0x190006A8 -static const u8 Dialog004[] = { - _("Nous sommes des\n" - "Bob-ombs pacifiques, nous\n" - "n'utilisons pas de canons.\n" - "\n" - "\n" - "\n" - "Mais si tu désires foncer\n" - "vers les cieux,\n" - "No Problemo: nous\n" - "nous ferons une joie de te\n" - "préparer tous les canons\n" - "de ce niveau. Bon voyage!") -}; - - -// 0x1900077C -static const u8 Dialog005[] = { - _("Hé, Mario! C'est vrai ce\n" - "qu'on raconte? Tu as\n" - "vraiment battu le Roi\n" - "Bob-omb? Cool!\n" - "\n" - "Tu dois être vachement\n" - "fort et rapide! Mais\n" - "es-tu aussi rapide que\n" - "moi, Koopa-Rapido?\n" - "Je crois bien que non...\n" - "Ça te dirait une petite\n" - "course jusqu'au sommet\n" - "de la montagne, là où\n" - "était le Roi Bob-omb?\n" - "Alors, qu'en dis-tu?\n" - "Lorsque je dis 『partez』,\n" - "la course commence...\n" - "Prêt...\n" - "\n" - "//Partez!//Heu, non.") -}; - - -// 0x190008FC -static const u8 Dialog006[] = { - _("Hé! Tu te moques de moi,\n" - "p'tit nain pas beau?\n" - "Tu dois courir du début\n" - "jusqu'à la fin!\n" - "A plus tard. Reviens me\n" - "voir lorsque tu arrêteras\n" - "de tricher...") -}; - - -// 0x19000994 -static const u8 Dialog007[] = { - _("Heuufff...fff...peufff...\n" - "Whoa! Tu...es...vraiment\n" - "rapide...pour un nabot!\n" - "Tu viens de l'espace?\n" - "Tiens, tu l'as méritée!") -}; - - -// 0x19000A10 -static const u8 Dialog008[] = { - _("ATTENTION AU CHOMP\n" - "ENCHAINE!!!\n" - "Danger! Approchez-vous\n" - "et appuyez sur [C]^ pour\n" - "jeter un oeil.\n" - "Impressionnant, non?\n" - "Avez-vous remarqué la\n" - "pièce rouge sur le rondin?\n" - "Lorsque vous collecterez 8\n" - "pièces comme celle-ci,\n" - "une étoile apparaîtra\n" - "dans le pré de l'autre\n" - "côté du pont...") -}; - - -// 0x19000B24 -static const u8 Dialog009[] = { - _("Ça fait longtemps qu'on\n" - "ne s'était pas vu, Mario!\n" - "Fouiii! Tu es devenu super\n" - "rapide!\n" - "Tu t'es entraîné aux Jeux\n" - "Olympiques ou les étoiles\n" - "te rendent ultra-méga-\n" - "puissant?\n" - "Je n'ai pas encore avalé\n" - "ma défaite de l'autre\n" - "fois... Mais ici c'est mon\n" - "territoire.\n" - "Tu veux faire le match\n" - "retour? L'arrivée est\n" - "dans la vallée Valvent...\n" - "\n" - "Prêt...\n" - "\n" - "\n" - "//Partez!// Heu, non.") -}; - - -// 0x19000C8C -static const u8 Dialog010[] = { - _("Vous venez d'actionner\n" - "l'interrupteur des\n" - "casquettes ailées...\n" - "\n" - "Si vous portez une\n" - "casquette ailée, vous\n" - "pourrez voler comme un\n" - "oiseau.\n" - "Désormais des casquettes\n" - "ailées surgiront des blocs\n" - "rouges que vous\n" - "détruirez...\n" - "Voulez-vous sauvegarder?\n" - "\n" - "//Oui////Non.") -}; - - -// 0x19000D90 -static const u8 Dialog011[] = { - _("Vous venez d'actionner\n" - "l'interrupteur des\n" - "casquettes-métal!\n" - "\n" - "Grâce aux casquettes-\n" - "métal, Mario peut devenir\n" - "invincible!\n" - "\n" - "Désormais, des\n" - "casquettes-métal\n" - "surgiront des blocs verts\n" - "que vous détruirez...\n" - "Voulez-vous sauvegarder?\n" - "\n" - "//Oui////Non.") -}; - - -// 0x19000E84 -static const u8 Dialog012[] = { - _("Vous venez d'actionner\n" - "l'interrupteur des\n" - "casquettes d'invisibilité.\n" - "\n" - "En portant une casquette\n" - "d'invisibilité, Mario\n" - "disparaîtra...\n" - "\n" - "Désormais des casquettes\n" - "d'invisibilité surgiront\n" - "des blocs bleus que vous\n" - "détruirez...\n" - "Voulez-vous sauvegarder?\n" - "\n" - "//Oui////Non.") -}; - - -// 0x19000F8C -static const u8 Dialog013[] = { - _("Vous avez récupéré 100\n" - "pièces! Mario sera\n" - "désormais plus puissant!\n" - "Voulez-vous sauvegarder?\n" - "\n" - "//Oui////Non.") -}; - - -// 0x19000FF8 -static const u8 Dialog014[] = { - _("Whoa, génial! Une autre\n" - "étoile de puissance! Mario\n" - "devient de plus en plus\n" - "courageux!\n" - "Voulez-vous sauvegarder?\n" - "//Oui////Non.") -}; - - -// 0x19001078 -static const u8 Dialog015[] = { - _("Vous pouvez frapper vos\n" - "ennemis et les assommer.\n" - "Appuyez sur [A] pour sauter\n" - "et sur [B] pour donner un\n" - "coup de poing. Appuyez sur\n" - "[A] et sur [B] pour donner un\n" - "coup de pied, et sur [B]\n" - "pour ramasser quelque\n" - "chose. Pour lancer ce que\n" - "vous portez, appuyez sur\n" - "[B] à nouveau.") -}; - - -// 0x19001180 -static const u8 Dialog016[] = { - _("Si vous sautez sur une\n" - "carapace brillante, vous\n" - "pourrez aller n'importe où\n" - "et détruire vos ennemis!") -}; - - -// 0x190011E4 -static const u8 Dialog017[] = { - _("Je suis le Roi Bob-omb,\n" - "seigneur des explosions.\n" - "Je te félicite d'être\n" - "arrivé jusqu'ici, petit.\n" - "Si tu veux l'étoile de\n" - "puissance, il va falloir me\n" - "jeter au sol.\n" - "\n" - "Es-tu capable de soulever\n" - "mon royal fessier?\n" - "En garde, moucheron!") -}; - - -// 0x190012C8 -static const u8 Dialog018[] = { - _("SILENCE! Je dors!\n" - "Gare à l'imprudent qui\n" - "oserait me reveiller...\n" - "Marchez doucement, sinon!") -}; - - -// 0x19001324 -static const u8 Dialog019[] = { - _("CHUT! Marchez doucement\n" - "dans les couloirs!!!") -}; - - -// 0x19001354 -static const u8 Dialog020[] = { - _("Mon très cher Mario:\n" - "Viens vite au château,\n" - "je t'ai préparé un\n" - "délicieux gâteau...\n" - "A bientôt,\n" - "Princesse Toadstool.") -}; - - -// 0x190013C8 -static const u8 Dialog021[] = { - _("Bienvenue l'ami!\n" - "Ici il n'y a personne,\n" - "alors dégage, moustique!\n" - "GWA HA HA HA HA HA!!!") -}; - - -// 0x19001420 -static const u8 Dialog022[] = { - _("Cette porte est fermée\n" - "à clé...") -}; - - -// 0x19001440 -static const u8 Dialog023[] = { - _("Ce n'est pas la bonne clé.\n" - "Peut-être à la cave...") -}; - - -// 0x19001474 -static const u8 Dialog024[] = { - _("Vous avez besoin de la\n" - "puissance des étoiles pour\n" - "ouvrir cette porte.\n" - "Récupérez des étoiles en\n" - "combattant des ennemis à\n" - "l'intérieur des tableaux...") -}; - - -// 0x19001508 -static const u8 Dialog025[] = { - _("Vous avez besoin de 3\n" - "étoiles pour ouvrir cette\n" - "porte. Il vous manque\n" - "encore [%] étoile(s).") -}; - - -// 0x19001564 -static const u8 Dialog026[] = { - _("Vous avez besoin de 8\n" - "étoiles pour ouvrir cette\n" - "porte. Il vous manque\n" - "encore [%] étoile(s).") -}; - - -// 0x190015C0 -static const u8 Dialog027[] = { - _("Vous avez besoin de 30\n" - "étoiles pour ouvrir cette\n" - "porte. Il vous manque\n" - "encore [%] étoile(s).") -}; - - -// 0x1900161C -static const u8 Dialog028[] = { - _("Vous avez besoin de 50\n" - "étoiles pour ouvrir cette\n" - "porte. Il vous manque\n" - "encore [%] étoile(s).") -}; - - -// 0x19001678 -static const u8 Dialog029[] = { - _("Vous avez besoin de 70\n" - "étoiles pour arriver en\n" - "haut de 『l'escalier sans\n" - "fin』... Il vous manque\n" - "encore [%] étoile(s).\n" - "GWA HA HA HA HA HA!!!") -}; - - -// 0x19001704 -static const u8 Dialog030[] = { - _("Bonjour à tous!\n" - "Ici Lakitu, le reporter de\n" - "choc et de charme! Voici\n" - "un petit conseil technique:\n" - "Marchez tout doucement\n" - "pour ne pas faire de bruit\n" - "et ainsi surprendre vos\n" - "ennemis.\n" - "Vous pouvez déplacer ma\n" - "caméra avec [C]> et [C]<.\n" - "Appuyez sur [C]| pour voir\n" - "de loin.\n" - "Lorsque ma caméra ne\n" - "peut plus se déplacer,\n" - "un signal sonore se fera\n" - "entendre...\n" - "Mes chers téléspectateurs,\n" - "à bientôt!\n" - "//// --Lakitu--") -}; - - -// 0x19001890 -static const u8 Dialog031[] = { - _("Incroyable! Tu m'as encore\n" - "battu? J'étais pourtant\n" - "certain de gagner!\n" - "Tiens, petit homme, tu as\n" - "bien mérité cette étoile...") -}; - - -// 0x1900190C -static const u8 Dialog032[] = { - _("Si en portant une\n" - "casquette ailée vous\n" - "effectuez trois sauts\n" - "consécutifs, vous pourrez\n" - "volez comme un oiseau!\n" - "Vous volerez encore plus\n" - "haut si vous êtes propulsé\n" - "par un canon!\n" - "\n" - "\n" - "Utilisez les boutons [C] pour\n" - "regarder autour de vous\n" - "en plein vol, et appuyez\n" - "sur [Z] pour atterrir.") -}; - - -// 0x19001A20 -static const u8 Dialog033[] = { - _("Ciao bello!\n" - "Vous voici arrivé au\n" - "château de la Princesse\n" - "grâce à un tuyau de\n" - "téléportation.\n" - "Contrôler Mario est très\n" - "facile: appuyez sur [A]\n" - "pour sauter et sur [B] pour\n" - "attaquer. Appuyez sur [B]\n" - "pour lire les pancartes.\n" - "Utilisez le stick multi-\n" - "directionnel pour déplacer\n" - "Mario...\n" - "Et maintenant, en route\n" - "vers le château!!!") -}; - - -// 0x19001B60 -static const u8 Dialog034[] = { - _("Bonjour! Nous sommes les\n" - "frères Lakitu et nous nous\n" - "ferons une joie de filmer\n" - "l'intrépide Mario tout au\n" - "long de son périple.\n" - "\n" - "Vous pourrez choisir\n" - "l'angle de prise de vue\n" - "grâce aux boutons [C]. S'il\n" - "est impossible de bouger\n" - "la caméra, un signal\n" - "sonore retentira.\n" - "Pour jeter un oeil autour\n" - "de Mario, arrêtez-vous\n" - "et appuyez sur [C]^.\n" - "Appuyez sur le bouton [A]\n" - "pour revenir au jeu.\n" - "\n" - "Appuyez sur [R] pour\n" - "changer de mode de vue.\n" - "Lisez les pancartes que\n" - "vous croiserez pour en\n" - "savoir d'avantage...\n" - "\n" - "C'était Lakitu,\n" - "le caméraman toujours\n" - "prêt à vous fournir les\n" - "meilleures images...") -}; - - -// 0x19001D9C -static const u8 Dialog035[] = { - _("Il existe quatre boutons\n" - "[C]. En appuyant sur [C]^ et\n" - "en bougeant le stick\n" - "multidirectionnel, vous\n" - "pourrez jeter un oeil aux\n" - "alentours...\n" - "L'angle de vue normal est\n" - "celui de la caméra de\n" - "Lakitu, mais vous pouvez\n" - "le modifier en appuyant\n" - "sur [R] et ainsi utiliser\n" - "la 『caméra-Mario』.\n" - "Appuyez sur [R] à nouveau\n" - "pour utiliser la caméra de\n" - "Lakitu. Appuyez sur [C]|\n" - "pour voir Mario de loin,\n" - "quelque soit le mode de\n" - "vue que vous utilisez.") -}; - - -// 0x19001F40 -static const u8 Dialog036[] = { - _("--PANORAMA--\n" - "Appuyez sur [C]^ pour jeter\n" - "un coup d'oeil. Profitez\n" - "de la vue!\n" - "Appuyez sur [R] pour\n" - "utiliser la caméra-Mario\n" - "qui suivra toujours de\n" - "près notre petit ami.\n" - "Appuyez à nouveau sur [R]\n" - "pour revenir à la caméra\n" - "de Lakitu.\n" - "\n" - "Mettez le jeu en pause et\n" - "choisissez le mode 『Fixe』\n" - "puis maintenez [R] pour que\n" - "la caméra reste en place.") -}; - - -// 0x1900208C -static const u8 Dialog037[] = { - _("Bwa ha ha ha ha!\n" - "Je t'ai battu gros nain!\n" - "Tu es aussi rapide qu'une\n" - "vieille limace malade!\n" - "Reviens me voir si tu\n" - "veux prendre ta revanche!") -}; - - -// 0x19002118 -static const u8 Dialog038[] = { - _("Grâce à la puissance des\n" - "étoiles, la porte s'ouvre\n" - "doucement...") -}; - - -// 0x19002158 -static const u8 Dialog039[] = { - _("ROYAUME DE BOB-OMB\n" - "\n" - "Interdit aux touristes!!!\n" - "\n" - "\n" - "Personne ne pourra me\n" - "voler mes étoiles de\n" - "puissance! Elles m'ont été\n" - "offertes par le grand\n" - "Bowser en personne.\n" - "Je ne dirai jamais où\n" - "elles se trouvent, mais\n" - "voici un indice:\n" - "\n" - "\n" - "lisez attentivement le nom\n" - "de chaque étoile au début\n" - "des niveaux.\n" - "\n" - "/// --Roi Bob-omb--") -}; - - -// 0x19002290 -static const u8 Dialog040[] = { - _("ATTENTION!\n" - "Crevasse de glace juste\n" - "en dessous!") -}; - - -// 0x190022C0 -static const u8 Dialog041[] = { - _("J'ai gagné! J'ai gagné!\n" - "Ha! Ha! Pauv'nul!\n" - "Ça t'apprendra à défier\n" - "le grand Koopa-Rapido!\n" - "Reviens me voir si tu\n" - "veux une autre raclée!") -}; - - -// 0x19002348 -static const u8 Dialog042[] = { - _("ATTENTION!\n" - "\n" - "Pont étroit!!!\n" - "Traversez doucement...\n" - "\n" - "\n" - "Vous pouvez sauter et\n" - "vous accrocher au bord de\n" - "la falaise ou vous\n" - "suspendre en vous\n" - "déplaçant lentement près\n" - "du vide...\n" - "Si vous voulez lâcher\n" - "prise, appuyez sur [Z] ou\n" - "vers le bas sur le stick\n" - "multidirectionnel.\n" - "\n" - "\n" - "Pour vous hisser, appuyez\n" - "vers le haut sur le stick\n" - "multidirectionnel ou sur le\n" - "bouton [A] pour aller plus\n" - "vite.") -}; - - -// 0x190024C0 -static const u8 Dialog043[] = { - _("Si vous sautez en\n" - "maintenant le bouton [A],\n" - "vous pourrez vous\n" - "accrocher à des objets\n" - "au-dessus de vous...\n" - "Vous pourrez même vous\n" - "accrocher à un oiseau!") -}; - - -// 0x19002558 -static const u8 Dialog044[] = { - _("Mmm? Hein? Qui m'a\n" - "réveillé? Quoi!?! Il fait\n" - "encore jour? Je devrais\n" - "dormir!\n" - "Maintenant que je suis\n" - "réveillé, ça te dirait de\n" - "faire un petit tour avec\n" - "moi?\n" - "Maintiens le bouton [A]\n" - "pour t'accrocher et\n" - "lâche-le pour te laisser\n" - "tomber.\n" - "Je t'emmènerai où tu veux\n" - "aussi longtemps que mes\n" - "ailes pourront supporter\n" - "ton poids!\n" - "Regarde bien mon ombre\n" - "et accroche-toi!!!") -}; - - -// 0x190026C0 -static const u8 Dialog045[] = { - _("Fouiii! J'suis naze!!!\n" - "Tu devrais peut-être\n" - "arrêter les pâtes aux\n" - "oeufs...\n" - "Allez, ciao Mario!\n" - "Lâche le bouton [A] sinon\n" - "j'te balance dans le vide\n" - "mon gros...") -}; - - -// 0x1900275C -static const u8 Dialog046[] = { - _("Il existe trois sauts\n" - "différents que vous\n" - "devez maîtriser:\n" - "Tout d'abord, le Triple\n" - "Saut...\n" - "\n" - "En pleine course, sautez\n" - "trois fois de suite.\n" - "Si votre synchronisation\n" - "est correcte, vous\n" - "sauterez de plus en plus\n" - "haut...\n" - "Ensuite, pour sauter le\n" - "plus loin possible, vous\n" - "devrez effectuer le Saut\n" - "en Longueur:\n" - "\n" - "\n" - "Courez, appuyez sur [Z] pour\n" - "vous accroupir, puis\n" - "appuyez sur [A] pour\n" - "sauter...\n" - "\n" - "\n" - "Enfin, pour créer une\n" - "『Impulsion』, appuyez sur\n" - "[A] vers un mur puis sautez\n" - "à nouveau lorsque vous\n" - "touchez la paroi...\n" - "\n" - "C'est compris?\n" - "Triple Saut, Saut en\n" - "Longueur et Impulsion?\n" - "Pour y arriver à chaque\n" - "fois il faut s'entraîner\n" - "encore et encore et...?") -}; - - -// 0x190029D4 -static const u8 Dialog047[] = { - _("Salut l'ami! Je vais te\n" - "préparer un joli canon!") -}; - - -// 0x19002A04 -static const u8 Dialog048[] = { - _("Sommet du glacier...\n" - "Attention à ne pas\n" - "glisser!\n" - "Tout d'abord, visitez ce\n" - "chalet...") -}; - - -// 0x19002A58 -static const u8 Dialog049[] = { - _("Vous vous souvenez de\n" - "l'Impulsion? Utilisez cette\n" - "technique pour atteindre\n" - "des lieux en hauteur...\n" - "Rebondissez de mur en\n" - "mur, en appuyant sur le\n" - "stick multidirectionnel\n" - "vers la direction desirée.\n" - "Entraînez-vous encore et\n" - "encore et encore et...?") -}; - - -// 0x19002B50 -static const u8 Dialog050[] = { - _("Maintenez le bouton [Z] pour\n" - "vous accroupir et ainsi\n" - "glisser le long d'une\n" - "pente...\n" - "Appuyez sur [Z] pendant un\n" - "saut pour faire l'Attaque\n" - "Rodéo!\n" - "\n" - "A l'arrêt, si vous appuyez\n" - "sur [Z] pour vous accroupir,\n" - "puis sur [A], vous ferez un\n" - "Saut Périlleux!\n" - "C'est compris? Mais il\n" - "existe encore d'autres\n" - "mouvements...\n" - "\n" - "Vous pouvez courir, vous\n" - "accroupir puis faire un\n" - "Saut en Longueur...\n" - "\n" - "Vous pouvez aussi marcher\n" - "en maintenant le bouton [Z].\n" - "Mais c'est une autre\n" - "histoire...") -}; - - -// 0x19002D18 -static const u8 Dialog051[] = { - _("Vous pouvez facilement\n" - "vous accrocher aux arbres\n" - "et aux poteaux...\n" - "\n" - "\n" - "\n" - "Appuyez sur [Z] pour lâcher\n" - "prise, sur [A] pour sauter\n" - "en arrière ou sur le stick\n" - "multidirectionnel pour\n" - "descendre doucement.\n" - "\n" - "Une fois au sommet,\n" - "appuyez vers la droite ou\n" - "vers la gauche sur le\n" - "stick multidirectionnel\n" - "pour pivoter, ou vers le\n" - "haut pour faire le poirier.\n" - "Appuyez alors sur [A] pour\n" - "faire un méga-saut vers\n" - "l'arrière, digne des plus\n" - "grands athlètes!") -}; - - -// 0x19002EC8 -static const u8 Dialog052[] = { - _("Arrêtez-vous et appuyez\n" - "sur [Z] pour vous accroupir,\n" - "puis appuyez sur [A] pour\n" - "faire un Saut Périlleux\n" - "en arrière!\n" - "Pour faire un Saut\n" - "Périlleux de côté, courez,\n" - "changez de direction, puis\n" - "sautez.\n" - "\n" - "Ces deux types de saut\n" - "vous permettent de\n" - "sauter beaucoup plus haut\n" - "qu'un saut normal...") -}; - - -// 0x19002FE4 -static const u8 Dialog053[] = { - _("Quelques fois, en\n" - "traversant un anneau ou\n" - "en découvrant un passage\n" - "secret dans un niveau, un\n" - "chiffre rouge apparaîtra.\n" - "Si vous faites apparaître\n" - "cinq chiffres rouges, une\n" - "étoile secrète apparaîtra.") -}; - - -// 0x190030AC -static const u8 Dialog054[] = { - _("Attention:\n" - "Glissade Périlleuse!\n" - "En voiture Simone...\n" - "Appuyez vers l'avant sur\n" - "le stick multidirectionnel\n" - "pour accélérer.\n" - "Appuyez vers l'arrière\n" - "pour ralentir...\n" - "Roulez jeunesse!") -}; - - -// 0x19003160 -static const u8 Dialog055[] = { - _("Salut mon tout petit\n" - "Mario...\n" - "Alors, il paraît que tu es\n" - "un rapide?\n" - "Mais es-tu aussi rapide\n" - "que moi?\n" - "On fait la course,\n" - "mon petit biquet?\n" - "Prêt...\n" - "//Partez!//Heu, non.") -}; - - -// 0x19003208 -static const u8 Dialog056[] = { - _("Qu-qu-quoi? T-t-tu as\n" - "battu mon record?\n" - "Je l'admets, tu es très\n" - "rapide pour un humain.\n" - "Je n'ai pas de médaille\n" - "d'or sur moi mais...\n" - "Cette étoile fera\n" - "l'affaire...") -}; - - -// 0x190032AC -static const u8 Dialog057[] = { - _("Mon bébé! J'ai perdu mon\n" - "bébé... Mon p'tit chou...\n" - "Ma puce à moi...\n" - "Mon chocolat...\n" - "JE VEUX MON BÉBÉ!!!\n" - "GNAAAAAAAAAAAAAA!!!\n" - "MON BÉBÉ!") -}; - - -// 0x19003334 -static const u8 Dialog058[] = { - _("Tu as trouvé mon bébé!!!\n" - "Mon chou...\n" - "Mon p'tit chou...\n" - "Comment te prouver ma\n" - "gratitude, gros Mario?\n" - "Tu es formidable...\n" - "Tiens, prends cette étoile.\n" - "Tu l'as bien méritée...\n" - "Encore merci, petit!") -}; - - -// 0x190033F8 -static const u8 Dialog059[] = { - _("C'est pas mon bébé!!!\n" - "Où est mon bébé?\n" - "JE VEUX MON BÉBÉ!!!!\n" - "GNAAAAAAAAAAAAAA!!!!") -}; - - -// 0x1900344C -static const u8 Dialog060[] = { - _("ATTENTION!\n" - "A lire avant de plonger!\n" - "Si vous restez sous l'eau\n" - "pendant trop longtemps,\n" - "vous pouvez vous noyer...\n" - "\n" - "Remonter à la surface,\n" - "traverser une bulle d'air\n" - "ou récupérer des pièces\n" - "vous fera regagner de\n" - "l'oxygène.\n" - "\n" - "Appuyez sur [A] pour nager.\n" - "Maintenez le bouton [A]\n" - "pour battre des pieds.\n" - "Appuyez régulièrement sur\n" - "[A] pour gagner de la\n" - "vitesse.\n" - "Appuyez vers le haut sur\n" - "le stick multidirectionnel\n" - "pour plonger.\n" - "Appuyez vers le bas et sur\n" - "[A] pour remonter à la\n" - "surface.\n" - "Lorsque vous êtes à la\n" - "surface, maintenez la\n" - "flèche vers le bas sur le\n" - "stick multidirectionnel et\n" - "appuyez sur [A] pour sortir\n" - "de l'eau.") -}; - - -// 0x190036A8 -static const u8 Dialog061[] = { - _("Brrrrr!!!\n" - "Baignade déconseillée!!!\n" - "Trop froid...\n" - "// ---Le Pingouin---") -}; - - -// 0x190036F0 -static const u8 Dialog062[] = { - _("A l'intérieur des\n" - "blocs verts se cache la\n" - "casquette-métal...\n" - "\n" - "En la portant, vous\n" - "deviendrez insensible au\n" - "feu et aux attaques de\n" - "vos ennemis.\n" - "Vous n'aurez même plus\n" - "besoin de respirer!\n" - "Mais il y a un problème:\n" - "vous ne pouvez pas nager!") -}; - - -// 0x190037E0 -static const u8 Dialog063[] = { - _("La casquette d'invisibilité\n" - "se trouve dans les blocs\n" - "bleus.\n" - "\n" - "En la portant, vos\n" - "ennemis, y compris les\n" - "terribles Boos, ne\n" - "pourront pas vous voir!\n" - "En plus, vous pourrez\n" - "traverser des murs\n" - "secrets!") -}; - - -// 0x190038A4 -static const u8 Dialog064[] = { - _("Si vous portez une\n" - "casquette ailée provenant\n" - "d'un bloc rouge, faites le\n" - "Triple Saut pour vous\n" - "envoler comme un oiseau!\n" - "\n" - "Utilisez le stick multi-\n" - "directionnel pour diriger\n" - "Mario. Appuyez vers le\n" - "bas pour prendre de\n" - "l'altitude, et vers le haut\n" - "pour piquer du nez.\n" - "Et enfin, appuyez sur [Z]\n" - "pour atterrir.") -}; - - -// 0x190039D4 -static const u8 Dialog065[] = { - _("Leçons de natation...\n" - "Appuyez sur [A] pour nager\n" - "la brasse. Si votre\n" - "synchronisation est bonne,\n" - "vous pourrez nager très\n" - "vite.\n" - "Maintenez le bouton [A]\n" - "pour battre des pieds\n" - "d'une façon régulière.\n" - "\n" - "\n" - "\n" - "Appuyez vers le haut sur\n" - "le stick multidirectionnel\n" - "pour plonger, et vers le\n" - "bas pour remonter à la\n" - "surface.\n" - "\n" - "Pour sortir de l'eau,\n" - "appuyez vers le bas sur\n" - "le stick multidirectionnel\n" - "et appuyez sur [A]. Ensuite,\n" - "relâcher le stick pour ne\n" - "pas retomber dans l'eau.\n" - "Attention: Mario ne peut\n" - "pas respirer sous l'eau!\n" - "Remontez à la surface\n" - "lorsque vous manquez\n" - "d'oxygène...\n" - "\n" - "Dernière chose:\n" - "vous ne pouvez pas ouvrir\n" - "les portes se trouvant\n" - "sous l'eau.") -}; - - -// 0x19003C54 -static const u8 Dialog066[] = { - _("Mario! Fais attention:\n" - "Bowser est un gros\n" - "vicieux! Il va tenter de\n" - "te brûler les fesses avec\n" - "son souffle de feu!\n" - "\n" - "Tourne autour de lui et\n" - "attrape sa queue en\n" - "appuyant sur [B]. Une fois\n" - "que tu l'as attrapé,\n" - "fais-le tourner autour\n" - "de toi.\n" - "Fais des rotations avec le\n" - "stick multidirectionnel\n" - "pour aller de plus en plus\n" - "vite.\n" - "\n" - "\n" - "Si tu le fais tourner très\n" - "vite, tu pourras l'envoyer\n" - "très loin.\n" - "\n" - "\n" - "\n" - "Utilise les boutons [C] pour\n" - "regarder autour de toi.\n" - "Tu dois jeter Bowser sur\n" - "une des bombes...\n" - "\n" - "\n" - "Vise bien! Appuie sur [B]\n" - "pour lancer Bowser.\n" - "Bonne chance, Mario!\n" - "Tu en auras besoin...\n" - "\n" - "// ---Peach---") -}; - - -// 0x19003EA0 -static const u8 Dialog067[] = { - _("HA HA! Dommage pour toi,\n" - "Mario! La P'tite Peach\n" - "n'est pas là...\n" - "Mais si tu veux un gros\n" - "bisou, on peut toujours\n" - "s'arranger!\n" - "Je parie que tu n'es pas\n" - "capable d'attraper ma\n" - "queue...\n" - "Tu es trop faible pour me\n" - "faire tourner autour de\n" - "ta tête!\n" - "Tu n'arriveras jamais à\n" - "me faire décoller d'ici...\n" - "GWA HA! A table!!!!!!!") -}; - - -// 0x19003FDC -static const u8 Dialog068[] = { - _("Voici les Laves Fatales!\n" - "Si vous touchez de la lave\n" - "ou des flammes, vous\n" - "aurez le feu aux fesses!\n" - "Mais pas de panique:\n" - "vous pourrez toujours\n" - "contrôler Mario...\n" - "Restez calme!") -}; - - -// 0x1900408C -static const u8 Dialog069[] = { - _("A l'intérieur des tableaux\n" - "vous pourrez touchez des\n" - "murs invisibles marquant\n" - "les limites du niveau.\n" - "Si vous touchez un mur en\n" - "volant, vous serez bloqué.") -}; - - -// 0x19004128 -static const u8 Dialog070[] = { - _("Vous pouvez retourner\n" - "dans le hall du château\n" - "depuis n'importe quel\n" - "niveau.\n" - "\n" - "\n" - "Vous devez vous arrêter,\n" - "appuyer sur Start pour\n" - "mettre le jeu en pause,\n" - "puis choisir l'option\n" - "『Quitter Niveau』.\n" - "\n" - "Vous n'avez pas besoin de\n" - "récupérer toutes les\n" - "étoiles d'un niveau pour\n" - "accéder à un autre monde.\n" - "\n" - "\n" - "Vous pouvez retourner\n" - "dans un niveau plus tard,\n" - "et ainsi récupérer les\n" - "étoiles difficiles à\n" - "attraper.\n" - "\n" - "Après avoir récupéré une\n" - "étoile, un indice\n" - "concernant l'étoile\n" - "suivante apparaîtra à\n" - "l'écran au début du\n" - "niveau...\n" - "Toutefois, vous n'êtes pas\n" - "obligé d'attraper l'étoile\n" - "décrite par l'indice.") -}; - - -// 0x19004374 -static const u8 Dialog071[] = { - _("DANGER!\n" - "Attention au brouillard\n" - "toxique!\n" - "\n" - "Si vous perdez de\n" - "l'énergie, courez vers une\n" - "plate-forme en hauteur\n" - "pour respirer.\n" - "\n" - "Cercle: Abri\n" - "Flèche: Entrée - Sortie") -}; - - -// 0x19004418 -static const u8 Dialog072[] = { - _("Attention: vents violents!\n" - "Accrochez-vous à votre\n" - "casquette!\n" - "Si vous la perdez, vous\n" - "devrez revenir la chercher\n" - "là où vous l'avez perdue...") -}; - - -// 0x190044A4 -static const u8 Dialog073[] = { - _("Souquez ferme, matelot!\n" - "J'ai caché un trésor\n" - "par ici, moussaillon.\n" - "Mais pour le découvrir,\n" - "vous devrez ouvrir les\n" - "coffres dans l'ordre...\n" - "Y arriveras-tu, petit?\n" - "\n" - "// -- Le capitaine --") -}; - - -// 0x1900455C -static const u8 Dialog074[] = { - _("Vous pouvez vous\n" - "accrocher au rebord d'une\n" - "falaise.\n" - "\n" - "\n" - "Pour lâcher prise, appuyez\n" - "vers le bas sur le stick\n" - "multidirectionnel ou sur le\n" - "bouton [Z].\n" - "\n" - "Pour vous hisser, appuyez\n" - "vers le haut sur le stick\n" - "multidirectionnel ou sur le\n" - "bouton [A] pour monter plus\n" - "vite.") -}; - - -// 0x19004660 -static const u8 Dialog075[] = { - _("Mario! Mon château est\n" - "en danger, et Bowser en\n" - "est le responsable...\n" - "Toi seul peut contrecarrer\n" - "ses plans diaboliques!\n" - "Les portes du château ont\n" - "été scellées par Bowser et\n" - "ne peuvent être ouvertes\n" - "qu'à l'aide du pouvoir des\n" - "étoiles...\n" - "Bowser a caché les étoiles\n" - "de puissance dans les\n" - "tableaux et les murs du\n" - "château.\n" - "\n" - "Mais Bowser n'a pas\n" - "découvert tous les\n" - "passages secrets du\n" - "château.\n" - "\n" - "Un passage secret se\n" - "trouve dans cette pièce et\n" - "il mène à une des étoiles\n" - "secrètes du château!\n" - "\n" - "Trouve cette étoile, mon\n" - "petit Mario! Elle te sera\n" - "très utile. Je t'en prie,\n" - "aide-nous!\n" - "\n" - "Retrouve toutes les étoiles\n" - "du château et tu pourras\n" - "nous délivrer!\n" - "Je t'en prie, Mario!\n" - "Sauve-nous!") -}; - - -// 0x19004904 -static const u8 Dialog076[] = { - _("Grâce au pouvoir des\n" - "étoiles, le château\n" - "revient à la vie...\n" - "Je t'en prie Mario,\n" - "botte les fesses du\n" - "vilain Bowser pas beau!\n" - "As-tu visité la pièce du\n" - "château dans laquelle un\n" - "grand miroir est au mur?\n" - "Prends garde à tout ce\n" - "qui n'a pas de reflet...\n" - "\n" - "Connais-tu le monde\n" - "『Trempé-Séché』?\n" - "\n" - "Rentre dans ce niveau en\n" - "sautant très haut...\n" - "\n" - "Au fait! Regarde ce que\n" - "j'ai pour toi!") -}; - - -// 0x19004A78 -static const u8 Dialog077[] = { - _("Il est dit que les piliers\n" - "doivent être enfoncés...") -}; - - -// 0x19004AAC -static const u8 Dialog078[] = { - _("Enfoncez le bloc des\n" - "pièces bleues grâce à\n" - "l'Attaque Rodéo, en\n" - "appuyant sur [Z].\n" - "Une pièce bleue vaut 5\n" - "pièces jaunes.\n" - "\n" - "\n" - "Dépêchez-vous de les\n" - "attraper, sinon elles\n" - "disparaîtront!") -}; - - -// 0x19004B60 -static const u8 Dialog079[] = { - _("GNIIIIIIIII!!!\n" - "LACHE-MOI!\n" - "Je blaguais! Tu n'as\n" - "aucun sens de l'humour.\n" - "Lâche-moi et je te\n" - "donnerais un truc cool.\n" - "Ça marche?\n" - "//OK//// Jamais!") -}; - - -// 0x19004BF0 -static const u8 Dialog080[] = { - _("Gnii hi hi hi hi hi!!!") -}; - - -// 0x19004C08 -static const u8 Dialog081[] = { - _("Bienvenue dans le monde\n" - "『Trempé-Séché』...\n" - "\n" - "Ici, il est dit qu'un saut\n" - "altère le niveau d'eau...\n" - "\n" - "En y pénétrant,\n" - "serez-vous assez\n" - "intelligent?") -}; - - -// 0x19004C98 -static const u8 Dialog082[] = { - _("Accroche-toi à ta\n" - "casquette, gentil petit\n" - "Mario...\n" - "\n" - "Si jamais tu la perds, tu\n" - "devras retourner la\n" - "chercher là où tu l'as\n" - "perdue...\n" - "Sans casquette, tes\n" - "ennemis pourront te faire\n" - "beaucoup plus de dégâts!\n" - "\n" - "La princesse Peach a\n" - "de sérieux ennuis...\n" - "Elle est enfermée dans un\n" - "des murs du château.\n" - "Tu dois absolument l'aider\n" - "mon gros Mario! Savais-\n" - "tu qu'il existe des\n" - "mondes dans les murs?\n" - "Les sbires du Bowser pas\n" - "beau y font régner la\n" - "terreur!\n" - "\n" - "Tiens, j'ai un petit\n" - "cadeau pour toi...") -}; - - -// 0x19004E7C -static const u8 Dialog083[] = { - _("Cette grosse horloge est\n" - "étrange...\n" - "\n" - "\n" - "Fais attention à la\n" - "position de la grande\n" - "aiguille lorsque tu sautes\n" - "à l'intérieur...\n" - "Au fait, regarde ce que\n" - "j'ai là pour toi!") -}; - - -// 0x19004F24 -static const u8 Dialog084[] = { - _("GNAAAAAAAAA!!!\n" - "LACHE-MOI!!!\n" - "GROSSE BRUTE!\n" - "Ne me mange pas!\n" - "Ne me mange pas!\n" - "Au secours!!!!!!\n" - "Tiens, voilà une étoile.\n" - "Prends-la, mais tu dois\n" - "me laisser partir...") -}; - - -// 0x19004FC8 -static const u8 Dialog085[] = { - _("Va-t'en, simple mortel!\n" - "Si tu tiens à ton âme,\n" - "retourne chez toi...\n" - "Si tu oses rentrer,\n" - "tu seras damné!!!") -}; - - -// 0x19005034 -static const u8 Dialog086[] = { - _("Tourner autour de\n" - "certains ennemis peut\n" - "faire tourner de l'oeil...") -}; - - -// 0x19005078 -static const u8 Dialog087[] = { - _("Le Père Noël n'est pas le\n" - "seul à passer par les\n" - "cheminées...\n" - "Avis aux curieux...\n" - "- Le bonhomme de neige -") -}; - - -// 0x190050E4 -static const u8 Dialog088[] = { - _("-Plate-forme de travail-\n" - "Pour descendre, utilisez\n" - "le poteau sur la gauche et\n" - "glissez jusqu'en bas...") -}; - - -// 0x1900514C -static const u8 Dialog089[] = { - _("Les deux routes sont très\n" - "dangereuses...\n" - "Ceux qui ne sont pas\n" - "encore capables de faire\n" - "le Saut en Longueur\n" - "doivent aller à droite.\n" - "Droite: Plate-forme de\n" - "////travail.\n" - "////Labyrinthe\n" - "////toxique.\n" - "Gauche: Trou Noir.\n" - "////Lac souterrain.\n" - "Cercle rouge:\n" - "////Ascenseur 2.\n" - "////Lac souterrain.\n" - "Flèche:\n" - "////Votre position\n" - "////actuelle.") -}; - - -// 0x19005290 -static const u8 Dialog090[] = { - _("BWA HA HA HA HA HA!!!\n" - "Tu es tombé dans mon\n" - "piège, petit Mario!\n" - "Mais voici un conseil\n" - "d'ami: prends garde à ne\n" - "pas tomber!") -}; - - -// 0x1900530C -static const u8 Dialog091[] = { - _("Danger!!!\n" - "Vents violents!\n" - "Sachez utiliser les\n" - "courants à votre\n" - "avantage...") -}; - - -// 0x19005358 -static const u8 Dialog092[] = { - _("Mario...\n" - "Mon p'tit Mario...\n" - "Tu m'cherches ou quoi?\n" - "Tu la veux ta baffe?\n" - "Alors tu vas l'avoir!\n" - "Mais d'abord tu vas me\n" - "rendre mes étoiles,\n" - "voleur!\n" - "BWA HA HA HA HA HA!!!\n" - "C'est l'heure du goûter!") -}; - - -// 0x19005418 -static const u8 Dialog093[] = { - _("Mario?!?\n" - "Tu es encore là, toi?\n" - "Très bien, tu l'auras\n" - "voulu! Cette fois-ci, je\n" - "vais faire frire ta\n" - "vieille moustache!\n" - "Malgré tes étoiles de\n" - "puissance, tu n'arriveras\n" - "jamais à sauver Peach et\n" - "ses amis...\n" - "Allez... En garde!\n" - "BWA HA HA HA HA HA HA!") -}; - - -// 0x1900550C -static const u8 Dialog094[] = { - _("Pourquoi ne pas escalader\n" - "cette pente en courant?\n" - "Petit rappel: pour faire\n" - "un Saut en Longueur,\n" - "courir, appuyer sur [Z],\n" - "puis sauter...") -}; - - -// 0x19005594 -static const u8 Dialog095[] = { - _("Pour lire une pancarte,\n" - "il faut se tenir devant\n" - "l'écriteau et appuyer [B].\n" - "Vous le saviez déjà?\n" - "Ah bon... Désolé.\n" - "Pour parler à une tortue\n" - "ou à un autre animal,\n" - "vous devez vous tenir en\n" - "face de lui ou elle.\n" - "\n" - "Retrouvez vite les étoiles\n" - "que Bowser a caché dans\n" - "ce niveau!") -}; - - -// 0x190056A0 -static const u8 Dialog096[] = { - _("Le sommet de la montagne\n" - "est interdit au public!\n" - "Alors n'essayez pas d'y\n" - "aller, à moins d'être à la\n" - "recherche des étoiles...\n" - "Autre conseil: ne réveillez\n" - "jamais quelqu'un qui dort.\n" - "Marchez doucement...\n" - "Et sans bruit...") -}; - - -// 0x1900577C -static const u8 Dialog097[] = { - _("Si quelqu'un vous pousse,\n" - "n'ayez pas peur!\n" - "Poussez-le vous aussi!\n" - "Le perdant aura plutôt\n" - "chaud aux fesses...") -}; - - -// 0x190057EC -static const u8 Dialog098[] = { - _("Viens...\n" - "...entre donc...\n" - "Mon biquet...\n" - "...viens dîner...\n" - "Hin...hin...hin...") -}; - - -// 0x1900583C -static const u8 Dialog099[] = { - _("Hé...hé...hé...\n" - "Ciao bello Mario!\n" - "Moi j'traverse les murs!\n" - "Tu peux le faire, toi?\n" - "Hin...hin...hin...") -}; - - -// 0x190058A4 -static const u8 Dialog100[] = { - _("GNIIIIII! KIIIII!\n" - "J'l'ai eue!!!\n" - "HI KI KI KI KI KI!\n" - "C'est à moi!!!") -}; - - -// 0x190058E8 -static const u8 Dialog101[] = { - _("Aaaak...kiiii!!!\n" - "Arrête! Tu m'étrangles!\n" - "Quoi? Cette casquette?\n" - "OK, prends-la...\n" - "Grande brute, va!\n" - "De toutes façons,\n" - "tu as l'air débile avec ça\n" - "sur la tête...") -}; - - -// 0x19005988 -static const u8 Dialog102[] = { - _("Les Boos sont timides! Si\n" - "vous les regardez dans les\n" - "yeux, ils disparaîtront...\n" - "\n" - "Mais si vous leur tournez\n" - "le dos, ils réapparaîtront.\n" - "Invisibles, ils sont\n" - "invincibles...\n" - "Tentez de vous faufiler\n" - "derrière eux et de leur\n" - "botter les fesses!") -}; - - -// 0x19005A78 -static const u8 Dialog103[] = { - _("Au sommet des quatre\n" - "piliers l'on doit se tenir,\n" - "pour que la lumière puisse\n" - "enfin jaillir...") -}; - - -// 0x19005AD8 -static const u8 Dialog104[] = { - _("L'ombre de l'étoile en\n" - "face de vous est un\n" - "『Marqueur d'étoile』.\n" - "\n" - "Lorsque vous récupérerez\n" - "8 pièces rouges, une\n" - "étoile apparaîtra à cet\n" - "emplacement.") -}; - - -// 0x19005B6C -static const u8 Dialog105[] = { - _("Canon prêt à tirer!\n" - "Allez, saute à l'intérieur!\n" - "Tu peux atteindre l'étoile\n" - "sur l'île flottante en\n" - "utilisant les quatre\n" - "canons.\n" - "Utilise le stick multi-\n" - "directionnel pour viser et\n" - "appuie sur [A] pour tirer.\n" - "Si tu es habile, sers-toi\n" - "des arbres et des poteaux\n" - "pour atterrir...") -}; - - -// 0x19005C7C -static const u8 Dialog106[] = { - _("Canon prêt à tirer!\n" - "Allez, saute à l'intérieur!") -}; - - -// 0x19005CAC -static const u8 Dialog107[] = { - _("Les fantômes sont...\n" - "...immortels!\n" - "Hin hin hin hin...\n" - "Pourras-tu sortir d'ici...\n" - "...vivant?\n" - "Gni hi hi hi hi hi...") -}; - - -// 0x19005D20 -static const u8 Dialog108[] = { - _("GNI HI HI HI HI HOU!\n" - "Voici le seigneur des\n" - "supplices!\n" - "Le maître des ombres...\n" - "Le souverain des\n" - "cauchemars...\n" - "Le Big Boo en personne!\n" - "Tremblez humains!!!\n" - "GNA HI HOU HA HIN HU !") -}; - - -// 0x19005DD0 -static const u8 Dialog109[] = { - _("Oooooh Noooon!\n" - "Mon corps a fondu!\n" - "Tu ne pourrais pas\n" - "m'aider, petit homme?\n" - "J'ai besoin d'un nouveau\n" - "corps!\n" - "Je dois faire un golf\n" - "demain...") -}; - - -// 0x19005E5C -static const u8 Dialog110[] = { - _("J'ai perdu la tête, on\n" - "dirait...\n" - "Connais-tu quelqu'un à la\n" - "recherche d'un corps?\n" - "Je suis peut-être petit,\n" - "mais je grandis vite!\n" - "Guide-moi, je te suivrai\n" - "n'importe où!") -}; - - -// 0x19005F04 -static const u8 Dialog111[] = { - _("Coooooool!\n" - "Quel super corps!\n" - "Maintenant je vais\n" - "pouvoir aller draguer!\n" - "Tiens, voici un petit\n" - "quelque chose pour toi...") -}; - - -// 0x19005F7C -static const u8 Dialog112[] = { - _("Ramassez le plus de pièces\n" - "possible! Elles rempliront\n" - "votre énergie!\n" - "\n" - "Vous pouvez jeter un oeil\n" - "au nombre de pièces que\n" - "vous avez récupérées dans\n" - "les 15 mondes.\n" - "Vous pouvez aussi remplir\n" - "votre énergie en touchant\n" - "un coeur!\n" - "\n" - "Si vous faites tourner le\n" - "coeur très vite, il vous\n" - "donnera beaucoup\n" - "d'énergie...") -}; - - -// 0x190060B0 -static const u8 Dialog113[] = { - _("Il existe des casquettes\n" - "spéciales dans les blocs\n" - "rouges, verts et bleus.\n" - "\n" - "\n" - "Marchez sur les\n" - "interrupteurs dans les\n" - "niveaux cachés pour faire\n" - "apparaître les blocs de\n" - "couleur.") -}; - - -// 0x19006160 -static const u8 Dialog114[] = { - _("Ah c'est pas le moment\n" - "de venir m'embêter!\n" - "\n" - "Nous les pierres, on\n" - "construit des maisons et\n" - "des châteaux...\n" - "Et vous les humains, vous\n" - "ne pensez jamais à nous\n" - "dire merci!\n" - "Si tu restes là, je m'en\n" - "vais t'écraser la face\n" - "comme une vieille prune...\n" - "Crois-tu pouvoir faire\n" - "une Attaque Rodéo sur\n" - "mon dos?\n" - "Ça m'étonnerais!\n" - "Allez... En garde, nabot\n" - "rouge et bleu!") -}; - - -// 0x190062C4 -static const u8 Dialog115[] = { - _("Quoi? J'ai perdu?!?\n" - "Sacré nom d'un pétard!\n" - "Vous les humains, vous\n" - "n'avez aucun coeur...\n" - "Tiens, prends ça...\n" - "Et va-t'en!") -}; - - -// 0x1900633C -static const u8 Dialog116[] = { - _("Hein?/De quoi?\n" - "Moi? J'ai perdu?\n" - "Battu par un tout petit\n" - "bonhomme de rien du tout!\n" - "Mais cela ne sera pas\n" - "aussi facile contre le\n" - "grand Bowser!\n" - "Oh que non!\n" - "Tiens, voici l'étoile.\n" - "Dette de jeu...\n" - "Dette d'honneur...\n" - "Ciao petit Mario!\n" - "Si tu veux me revoir,\n" - "choisis cette étoile sur\n" - "l'écran du départ.\n" - "A bientôt!") -}; - - -// 0x19006470 -static const u8 Dialog117[] = { - _("Qui...dérange...mon...\n" - "...sommeil...éternel...?\n" - "Tout...bruit...doit...\n" - "...être...puni...!\n" - "Intrus...va...être...\n" - "...détruit...!\n" - "...COMBAT...!!!\n" - "...A...MAINS...NUES...!!!") -}; - - -// 0x1900651C -static const u8 Dialog118[] = { - _("Qu...qu...qu...Hein?\n" - "Moi...perdu?...Hein?\n" - "Moi...faible...nul.\n" - "Toi...nouveau pharaon...\n" - "Tiens...pour toi...\n" - "Moi...dormir...dodo. Ciao.") -}; - - -// 0x190065A4 -static const u8 Dialog119[] = { - _("Grrrrr! Tu m'as surpris...\n" - "Je t'ai sous-estimé!\n" - "Petit mais costaud, hein?\n" - "Mais Peach est toujours\n" - "ma prisonnière! Ha Ha!\n" - "Ne t'inquiète pas, on se\n" - "reverra! Et la prochaine\n" - "fois, je te mangerai les\n" - "doigts!\n" - "Allez, à bientôt! GWA HA!") -}; - - -// 0x1900668C -static const u8 Dialog120[] = { - _("Moi? Le grand Bowser?\n" - "Vaincu? Non, non!\n" - "Ça ne compte pas!\n" - "Je dormais! Tu as triché!\n" - "La prochaine fois, je te\n" - "mangerai les oreilles!\n" - "Si tu veux revoir ta\n" - "p'tite Peach, rejoins-moi\n" - "en haut de la tour...\n" - "Allez, à la prochaine!\n" - "GWA HA HA HA HA HA HA!\n" - "GWA HI HOU HÉ HEU...HA!") -}; - - -// 0x1900679C -static const u8 Dialog121[] = { - _("NOoOoOoOoOoOoOoOon!\n" - "Mario... Méchant petit!\n" - "Cette fois-ci...\n" - "...je suis cuit!!!\n" - "Mes pouvoirs maléfiques\n" - "disparaissent!\n" - "Toutes mes troupes sont\n" - "anéanties!\n" - "La paix, l'amour et\n" - "l'amitié sont de retour!\n" - "AaAaAaAaAargh!\n" - "C'est insupportable!\n" - "Mais je reviendrai...\n" - "Un jour... Je reviendrai!\n" - "Et ce jour-là...\n" - "Bye Bye Mario! BWA HA!!") -}; - - -// 0x190068E0 -static const u8 Dialog122[] = { - _("-Le Trou Noir-\n" - "Droite: Plate-forme de\n" - "////travail.\n" - "////Labyrinthe\n" - "////toxique.\n" - "Gauche: Lac souterrain.") -}; - - -// 0x19006948 -static const u8 Dialog123[] = { - _("-Caverne Métallique-\n" - "Droite: Vers la cascade.\n" - "Gauche: Interrupteur des\n" - "////casquettes-métal.") -}; - - -// 0x190069A8 -static const u8 Dialog124[] = { - _("Plate-forme de travail:\n" - "Danger!\n" - "Lire le mode d'emploi\n" - "attentivement!!!\n" - "Appuyez sur une flèche\n" - "pour déplacer la plate-\n" - "forme.\n" - "\n" - "Si jamais vous tombez de\n" - "la plate-forme, retournez\n" - "là où vous l'avez vue pour\n" - "la première fois.") -}; - - -// 0x19006A88 -static const u8 Dialog125[] = { - _("Sortie du Labyrinthe\n" - "toxique... Fermée!\n" - "Faites demi-tour!") -}; - - -// 0x19006AC0 -static const u8 Dialog126[] = { - _("-Ascenseur 1-\n" - "Haut:/ Trou Noir.\n" - "Droite: Plate-forme de\n" - "////travail.\n" - "////Labyrinthe\n" - "////toxique.") -}; - - -// 0x19006B20 -static const u8 Dialog127[] = { - _("-Lac Souterrain-\n" - "Droite: Caverne\n" - "////métallique.\n" - "Gauche: Mine abandonnée\n" - "////(Fermée).\n" - "Gros Bibi, un gentil\n" - "dragon, vit ici.\n" - "Faites l'Attaque Rodéo\n" - "sur son dos pour qu'il\n" - "baisse la tête...") -}; - - -// 0x19006BE0 -static const u8 Dialog128[] = { - _("Tu dois te battre avec\n" - "honneur! Il est interdit\n" - "de jeter une personnalité\n" - "royale hors de la surface\n" - "de combat!") -}; - - -// 0x19006C50 -static const u8 Dialog129[] = { - _("Bienvenue dans\n" - "le niveau des casquettes\n" - "d'invisibilité!!!\n" - "\n" - "\n" - "Si vous marchez sur\n" - "l'interrupteur bleu, tous\n" - "les blocs bleus deviendront\n" - "solides...\n" - "\n" - "Si vous portez une\n" - "casquette d'invisibilité,\n" - "vous pourrez traverser vos\n" - "ennemis et pleins d'autres\n" - "choses...") -}; - - -// 0x19006D50 -static const u8 Dialog130[] = { - _("Bienvenue dans le niveau\n" - "des casquettes-métal!!!\n" - "Si vous marchez sur\n" - "l'interrupteur vert, tous\n" - "les blocs verts\n" - "deviendront solides...\n" - "Si vous portez une\n" - "casquette-métal, vous\n" - "vous transformerez en\n" - "Métal Mario! Vous pourrez\n" - "alors marcher sous l'eau.\n" - "Faites un essai pour voir!") -}; - - -// 0x19006E64 -static const u8 Dialog131[] = { - _("Bienvenue dans le niveau\n" - "des casquettes ailées!!!\n" - "Marchez sur l'interrupteur\n" - "rouge au sommet de la\n" - "tour, au centre des\n" - "anneaux arc-en-ciel.\n" - "En actionnant\n" - "l'interrupteur, tous les\n" - "blocs rouges deviendront\n" - "solides...\n" - "\n" - "\n" - "Lorsque vous êtes en\n" - "possession de la casquette\n" - "ailée, faites un Triple\n" - "Saut pour vous envoler et\n" - "appuyez sur [Z] pour\n" - "atterrir.\n" - "Appuyez vers le bas sur le\n" - "stick multidirectionnel\n" - "pour prendre de l'altitude\n" - "et vers le haut pour\n" - "piquer du nez. Imaginez-\n" - "vous à bord d'un 747!!!") -}; - - -// 0x19007050 -static const u8 Dialog132[] = { - _("Non, mais?\n" - "Tu...tu...t'es fou?\n" - "Tu triches?\n" - "OK! T'es disqualifié!\n" - "Tu l'auras pas volé!\n" - "Houuuuuu! Le tricheur!") -}; - - -// 0x190070C0 -static const u8 Dialog133[] = { - _("Mario! C'est toi?\n" - "Comme je suis heureux de\n" - "te voir!\n" - "La Princesse, comme nous\n" - "tous, a été emprisonnée\n" - "dans les murs du château.\n" - "Bowser a volé les étoiles\n" - "du château, et il utilise\n" - "leur puissance pour se\n" - "créer un monde dans les\n" - "tableaux et les murs!\n" - "\n" - "Je t'en prie, retrouve les\n" - "étoiles de puissance!\n" - "Grâce à elles, tu pourras\n" - "ouvrir les portes du\n" - "château que Bowser a\n" - "fermées...\n" - "Il existe quatre pièces\n" - "au rez-de-chaussée.\n" - "Commence par celle dans\n" - "laquelle tu trouveras le\n" - "tableau représentant des\n" - "Bob-ombs...\n" - "Bowser a oublié de fermer\n" - "cette porte. Lorsque tu\n" - "auras récupéré 8 étoiles,\n" - "va ouvrir la porte avec la\n" - "grosse étoile: la Princesse\n" - "doit être de l'autre côté!") -}; - - -// 0x1900735C -static const u8 Dialog134[] = { - _("Le nom des étoiles inscrit\n" - "au début de chaque monde\n" - "est un indice!\n" - "\n" - "Tu peux récupérer les\n" - "étoiles dans n'importe\n" - "quel ordre.\n" - "\n" - "Mais la sélection d'une\n" - "étoile peut impliquer\n" - "l'apparition de nouveaux\n" - "décors ou personnages...\n" - "Après avoir récupéré des\n" - "étoiles, tu peux tenter ta\n" - "chance dans d'autres\n" - "niveaux...\n" - "Aide-nous le plus vite\n" - "possible, mon mignon petit\n" - "Mario en sucre...") -}; - - -// 0x190074D4 -static const u8 Dialog135[] = { - _("Bowser a volé les étoiles!\n" - "Je l'ai vu!\n" - "De mes propres yeux!\n" - "Il faut que tu nous\n" - "viennes en aide, Mario...\n" - "\n" - "Il a caché 6 étoiles dans\n" - "chaque monde, mais tu ne\n" - "pourras pas toutes les\n" - "récupérer sans avoir\n" - "actionné les interrupteurs\n" - "de casquettes...\n" - "Les étoiles que tu as\n" - "récupérées apparaîtront à\n" - "l'écran au début de\n" - "chaque niveau...\n" - "\n" - "\n" - "Si tu désires revoir les\n" - "ennemis que tu as déjà\n" - "vaincu, sélectionne les\n" - "étoiles en relation avec\n" - "ces ennemis...") -}; - - -// 0x19007694 -static const u8 Dialog136[] = { - _("Whoa!!! Tu as déjà\n" - "récupéré autant d'étoiles?\n" - "Incroyable! T'es fort, toi!\n" - "Mais fais attention:\n" - "Bowser et ses sbires sont\n" - "des durs à cuire...\n" - "N'oublie pas de récupérer\n" - "des pièces pour regagner\n" - "de l'énergie.\n" - "Les pièces jaunes te\n" - "rempliront une portion de\n" - "ton énergie...\n" - "Les pièces rouges t'en\n" - "donneront deux et les\n" - "pièces bleues, cinq.\n" - "\n" - "\n" - "\n" - "Pour faire apparaître des\n" - "pièces bleues, fais une\n" - "Attaque Rodéo sur un Bloc\n" - "de pièces bleues.\n" - "\n" - "\n" - "D'autre part, tu peux\n" - "te faire moins mal en\n" - "tombant d'une falaise, en\n" - "effectuant une Attaque\n" - "Rodéo juste avant de\n" - "toucher le sol...") -}; - - -// 0x190078CC -static const u8 Dialog137[] = { - _("Merci Mario!\n" - "Grâce à tes étoiles de\n" - "puissance, Bowser est allé\n" - "se réfugier dans une\n" - "autre partie du château!\n" - "Au fait, savais-tu qu'une\n" - "étoile de puissance\n" - "apparaît à chaque fois\n" - "que tu récupères 100\n" - "pièces dans un niveau?") -}; - - -// 0x190079AC -static const u8 Dialog138[] = { - _("-Ascenseur 2-\n" - "Bas://Lac souterrain.\n" - "Gauche: Trou Noir.\n" - "Droite: Labyrinthe\n" - "////toxique\n" - "////(fermé).") -}; - - -// 0x19007A10 -static const u8 Dialog139[] = { - _("\n" - "Au dessus:\n" - "Chariot automatique.\n" - "\n" - "Le chariot se met en\n" - "route automatiquement et\n" - "suit un chemin pré-\n" - "déterminé...\n" - "Le chariot disparaîtra\n" - "automatiquement lorsque\n" - "vous tomberez...") -}; - - -// 0x19007AC4 -static const u8 Dialog140[] = { - _("-Plate-forme de travail-\n" - "Droite: Entrée du\n" - "////Labyrinthe\n" - "////toxique.\n" - "Gauche: Trou Noir.\n" - "////Ascenseur 1.\n" - "Flèche: Votre position\n" - "////actuelle.") -}; - - -// 0x19007B54 -static const u8 Dialog141[] = { - _("Vous avez récupéré une\n" - "des étoiles du château!\n" - "Vous pouvez désormais\n" - "ouvrir certaines portes!\n" - "Essayez celle de la\n" - "chambre de la Princesse\n" - "Peach, en haut à droite\n" - "dans le hall d'entrée...\n" - "Essayez aussi celle menant\n" - "au tableau de la\n" - "Forteresse de Whomp,\n" - "au rez-de-chaussée...\n" - "Les troupes de Bowser\n" - "sont encore nombreuses!\n" - "Il faut les arrêter à tout\n" - "prix! Courage...") -}; - - -// 0x19007CC0 -static const u8 Dialog142[] = { - _("Vous avez récupéré trois\n" - "étoiles de puissance!\n" - "Désormais, vous pouvez\n" - "ouvrir les portes marquées\n" - "d'un 『3』.\n" - "Vous pouvez aller et venir\n" - "dans les niveaux comme\n" - "bon vous semble...\n" - "\n" - "\n" - "Les ennemis qui vous\n" - "attendent seront de plus\n" - "en plus costauds!\n" - "Alors, prudence...") -}; - - -// 0x19007DC8 -static const u8 Dialog143[] = { - _("Vous avez récupéré huit\n" - "étoiles de puissance!\n" - "Vous pouvez désormais\n" - "ouvrir la porte marquée\n" - "d'une grosse étoile!\n" - "La Princesse est juste de\n" - "l'autre côté...\n" - "Pouvez-vous l'entendre\n" - "crier votre nom?\n" - "『Marioooooo!』") -}; - - -// 0x19007E9C -static const u8 Dialog144[] = { - _("Vous avez récupéré 30\n" - "étoiles de puissance!\n" - "Vous pouvez désormais\n" - "ouvrir la porte marquée\n" - "d'une grosse étoile!\n" - "Mais avant de foncer\n" - "comme un dingue vers la\n" - "porte, êtes-vous sûr de\n" - "n'avoir rien oublié?\n" - "\n" - "Avez-vous enfoncé les\n" - "deux piliers? Avez-vous\n" - "toujours votre casquette?\n" - "\n" - "\n" - "Si vous l'avez perdue\n" - "dans le desert, allez\n" - "botter le croupion du\n" - "vilain vautour...\n" - "\n" - "On dit que Bowser s'est\n" - "réfugié dans les\n" - "profondeurs de l'océan...\n" - "L'avez-vous rencontré?") -}; - - -// 0x19008060 -static const u8 Dialog145[] = { - _("Vous avez récupéré 50\n" - "étoiles de puissance!\n" - "Vous pouvez désormais\n" - "ouvrir la porte marquée\n" - "d'une grosse étoile au\n" - "deuxième étage...\n" - "Avez-vous trouvé les trois\n" - "interrupteurs: rouge, vert\n" - "et bleu?\n" - "Les casquettes provenant\n" - "des blocs de couleur\n" - "peuvent être très utiles...\n" - "Allez, en route Mario...\n" - "Et que la force soit avec\n" - "toi, petit homme.") -}; - - -// 0x190081B4 -static const u8 Dialog146[] = { - _("Vous avez récupéré 70\n" - "étoiles de puissance!\n" - "Désormais, vous pouvez\n" - "accéder en haut de\n" - "『l'escalier sans fin』...\n" - "Le terrible Bowser vous y\n" - "attend...\n" - "Etes-vous prêt à\n" - "l'affronter?") -}; - - -// 0x19008268 -static const u8 Dialog147[] = { - _("Faites-vous bon usage\n" - "des casquettes spéciales?\n" - "Elles peuvent vous être\n" - "très utiles...\n" - "\n" - "\n" - "Vous devez tout d'abord\n" - "rendre les blocs de couleur\n" - "solides en actionnant des\n" - "interrupteurs secrets...\n" - "\n" - "\n" - "Les blocs rouges vous\n" - "fourniront des casquettes\n" - "ailées, les bleus des\n" - "casquettes d'invisibilité,\n" - "et les verts des\n" - "casquettes-métal...") -}; - - -// 0x190083B0 -static const u8 Dialog148[] = { - _("Montagne du Bonhomme de\n" - "neige.../DANGER!\n" - "Ne pas tenter le Triple\n" - "Saut au-dessus de la\n" - "machine à cracher des\n" - "glaçons...\n" - "Tomber dans le lac gelé\n" - "vous fera vite perdre de\n" - "l'énergie de façon\n" - "permanente.\n" - "Alors, attention!\n" - "-Le Bonhomme de neige-") -}; - - -// 0x190084A0 -static const u8 Dialog149[] = { - _("Voici la Glissade Secrète\n" - "de la Princesse Peach!\n" - "Vous y trouverez une\n" - "étoile secrète que Bowser\n" - "n'a pas pu voler...\n" - "Pendant que vous\n" - "glisserez, appuyez vers\n" - "l'avant pour accélérer, et\n" - "vers l'arrière pour\n" - "ralentir...\n" - "Si vous glissez très vite,\n" - "vous découvrirez une\n" - "des étoiles secrètes du\n" - "château!") -}; - - -// 0x190085CC -static const u8 Dialog150[] = { - _("Whoa! Va-z'y, lui!\n" - "T' as inondé ma zon-mé!!!\n" - "Pourquoi t'as fait ça, yo!\n" - "T'es pas cool, toi?\n" - "Regarde! Mon toit est\n" - "fichu, et mon plancher\n" - "est trempé!\n" - "NoOoOoOoOoOoOon!!!\n" - "Ça me rend ouf de voir\n" - "ça! Complètement chtarbé!\n" - "C'est à cause de cette\n" - "étoile...\n" - "Je suis sûr qu'elle me\n" - "porte la poisse...\n" - "Saleté, va!") -}; - - -// 0x190086FC -static const u8 Dialog151[] = { - _("Ah non! Ça suffit!\n" - "D'abord tu me mouilles,\n" - "ensuite tu m'écrases la\n" - "face...\n" - "Grrrr! Pas cool, Bob.\n" - "Tu cherches le contact?") -}; - - -// 0x19008778 -static const u8 Dialog152[] = { - _("Gnaaaaa! Pov'type, va!\n" - "Tiens, la v'là ton étoile!\n" - "J'm'en fiche...\n" - "J'peux en avoir d'autres.\n" - "Allez, à la prochaine...\n" - "Cool, Abdoul.") -}; - - -// 0x190087FC -static const u8 Dialog153[] = { - _("Hé! Qui va là?\n" - "Qui me grimpe dessus?\n" - "Une mouche?\n" - "Un moustique?\n" - "Un cafard?\n" - "T'as intérêt à dégager!\n" - "Sinon j'te souffle dessus!") -}; - - -// 0x1900887C -static const u8 Dialog154[] = { - _("Accroche-toi à ta\n" - "casquette! Si jamais tu\n" - "la perds, retourne la\n" - "chercher là où tu l'as\n" - "perdue...\n" - "Sans elle tu peux te faire\n" - "très mal...\n" - "Alors, fais-y attention!\n" - "\n" - "\n" - "Au fait, la Princesse est\n" - "toujours emprisonnée dans\n" - "les murs du château!\n" - "Sauve-la, mon mignon\n" - "Mario rouge et bleu...\n" - "Heu... Tu savais qu'il\n" - "existe aussi des niveaux\n" - "dans les murs, hein?") -}; - - -// 0x190089DC -static const u8 Dialog155[] = { - _("Grâce au pouvoir des\n" - "étoiles, le château revient\n" - "peu à peu à la vie...\n" - "Je t'en prie Mario,\n" - "va affronter Bowser!\n" - "Connais-tu la salle du\n" - "miroir? Fais attention à\n" - "tout ce qui n'a pas de\n" - "reflet...\n" - "\n" - "Autre chose: rentre dans\n" - "le niveau Trempé-Séché\n" - "à l'aide d'un grand saut.\n" - "\n" - "Allez, courage camarade!") -}; - - -// 0x19008B04 -static const u8 Dialog156[] = { - _("Le niveau de la pendule\n" - "est étrange...\n" - "\n" - "Fais attention à la\n" - "grande aiguille lorsque\n" - "tu rentres dans l'horloge.") -}; - - -// 0x19008B74 -static const u8 Dialog157[] = { - _("Attention aux sables\n" - "mouvants!\n" - "Si vous vous faites\n" - "avaler, tâchez de ne pas\n" - "boire la tasse!\n" - "Les zones sombres sont\n" - "des trous sans fond...\n" - "Alors, prudence jeune\n" - "aventurier...") -}; - - -// 0x19008C24 -static const u8 Dialog158[] = { - _("1. Si vous sautez de\n" - "façon répétée, vous\n" - "sauterez de plus en plus\n" - "haut. En courant et en\n" - "sautant trois fois, vous\n" - "ferez un Triple Saut.\n" - "2. Sautez contre un mur\n" - "et sautez à nouveau pour\n" - "créer une Impulsion.\n" - "Grâce à cette technique,\n" - "vous pourrez accéder à\n" - "des lieux en hauteur.") -}; - - -// 0x19008D38 -static const u8 Dialog159[] = { - _("3. En vous arrêtant, en\n" - "appuyant sur [Z] et en\n" - "sautant, vous ferez un\n" - "Saut Périlleux en arrière.\n" - "Pour faire un Saut en\n" - "Longueur, courez, appuyez\n" - "sur [Z], puis sautez.") -}; - - -// 0x19008DDC -static const u8 Dialog160[] = { - _("Appuyez sur [B] lorsque\n" - "vous courez pour faire\n" - "une attaque en glissade.\n" - "Pour vous remettre\n" - "debout, appuyez sur [A] ou\n" - "sur [B].") -}; - - -// 0x19008E58 -static const u8 Dialog161[] = { - _("Mario!?!?!\n" - "C'est toi? Vraiment toi?\n" - "Ça fait un bout de temps\n" - "que je ne t'avais pas vu!\n" - "Tu as grossi, non?\n" - "On m'a dit de t'attendre\n" - "ici, mais je commençais\n" - "à perdre espoir...\n" - "Alors c'est vrai? Tu as\n" - "battu Bowser? Encore une\n" - "fois? Il n'abandonne\n" - "jamais ce gros reptile...\n" - "Tu as récupéré toutes les\n" - "étoiles? Tu as sauvé la\n" - "Princesse Peach?\n" - "T'es amoureux, non?\n" - "Tiens...\n" - "J'ai une lettre pour toi...\n" - "C'est peut-être une\n" - "admiratrice, qui sait?\n" - "『Merci d'avoir joué au\n" - "plus beau jeu de toute la\n" - "galaxie:\n" - "MARIO 64!!!\n" - "Il reste sûrement des\n" - "niveaux que vous ne\n" - "connaissez pas par coeur,\n" - "alors...\n" - "Voici quelques munitions!\n" - "A bientôt et merci!\n" - "--Les créateurs de\n" - "/Mario 64...") -}; - - -// 0x190090F0 -static const u8 Dialog162[] = { - _("Oh, non!\n" - "Encore toi?\n" - "T'es amoureux, ou quoi?\n" - "Tu veux m'épouser?\n" - "Désolé, mais tu n'es pas\n" - "mon type...\n" - "Mon truc à moi, c'est les\n" - "femelles...\n" - "Ah! Tu veux peut-être\n" - "une étoile?\n" - "OK. Mais j'te préviens:\n" - "c'est la dernière fois!\n" - "Ah... Autre chose...\n" - "\n" - "LACHE-MOI!!!!!\n" - "GRANDE BRUTE!!!!!") -}; - - -// 0x19009204 -static const u8 Dialog163[] = { - _("NoOoOoOoOoOoOoOon!!!\n" - "Tu...tu...tu m'as battu?\n" - "Moi?!? C'est illogique!\n" - "C'est moi le plus grand!\n" - "Quoi? Il y avait 120\n" - "étoiles en tout?!?\n" - "Heu......\n" - "Je le savais!\n" - "Aaaargh! Le château\n" - "regagne tous ses pouvoirs,\n" - "c'est insupportable!\n" - "GnAaAaAaAaAaAaAaArgh!\n" - "A la prochaine, Mario...\n" - "Tu sais bien que je ne\n" - "suis pas du genre à\n" - "abandonner si facilement!\n" - "BWA HA HA HA HA HA HA!\n" - "GWA HI HA HI HOU HEU!\n" - "..... Atcha!") -}; - - -// 0x19009398 -static const u8 Dialog164[] = { - _("Beuuuuuuuu...\n" - "J'ai trop mangé, moi...\n" - "Beuuuuuuuu...\n" - "Mm? Qui es-tu?\n" - "Mario! Te voilà, rigolo!\n" - "Ça te dit une petite\n" - "course?\n" - "A moins que tu aies peur!\n" - "Alors, c'est d'accord?\n" - "Prêt...\n" - "\n" - "//Partez!//Heu, non!") -}; - - -// 0x19009460 -static const u8 Dialog165[] = { - _("Tourner autour du poteau\n" - "peut faire tourner les\n" - "têtes...") -}; - - -// 0x1900949C -static const u8 Dialog166[] = { - _("Je m'entraîne...\n" - "Je reviens plus tard...\n" - "\n" - "-- Koopa-Rapido --") -}; - - -// 0x190094DC -static const u8 Dialog167[] = { - _("En route vers le château!\n" - "\n" - "Appuyez sur [A] pour sauter\n" - "et sur [Z] pour vous\n" - "accroupir.\n" - "Appuyez sur [B] pour\n" - "attaquer ou pour attraper\n" - "quelque chose. Appuyez à\n" - "nouveau sur [B] pour lancer\n" - "ce que vous portez.") -}; - - -// 0x190095A4 -static const u8 Dialog168[] = { - _("Hé! Lâche-moi un peu!\n" - "Ça fait deux fois que tu\n" - "t'essuies les pieds sur\n" - "ma tête!\n" - "Tu m'cherches ou quoi?\n" - "Coup d'boule!!!!") -}; - - -// 0x1900961C -static const u8 Dialog169[] = { - _("Dehors les touristes!\n" - "Cette caverne est très\n" - "dangereuse!!!\n" - "Alors... DE-HORS!\n" - "/ -- Le capitaine --") -}; - - -// dialog entry table 0x19009680 -static const struct DialogEntry dialog_text_000 = { - 1, 6, 30, 200, Dialog000 -}; - -static const struct DialogEntry dialog_text_001 = { - 1, 5, 95, 200, Dialog001 -}; - -static const struct DialogEntry dialog_text_002 = { - 1, 6, 95, 200, Dialog002 -}; - -static const struct DialogEntry dialog_text_003 = { - 1, 5, 95, 200, Dialog003 -}; - -static const struct DialogEntry dialog_text_004 = { - 1, 6, 95, 200, Dialog004 -}; - -static const struct DialogEntry dialog_text_005 = { - 1, 5, 30, 200, Dialog005 -}; - -static const struct DialogEntry dialog_text_006 = { - 1, 4, 30, 200, Dialog006 -}; - -static const struct DialogEntry dialog_text_007 = { - 1, 5, 30, 200, Dialog007 -}; - -static const struct DialogEntry dialog_text_008 = { - 1, 5, 30, 200, Dialog008 -}; - -static const struct DialogEntry dialog_text_009 = { - 1, 4, 30, 200, Dialog009 -}; - -static const struct DialogEntry dialog_text_010 = { - 1, 4, 30, 200, Dialog010 -}; - -static const struct DialogEntry dialog_text_011 = { - 1, 4, 30, 200, Dialog011 -}; - -static const struct DialogEntry dialog_text_012 = { - 1, 4, 30, 200, Dialog012 -}; - -static const struct DialogEntry dialog_text_013 = { - 1, 6, 30, 200, Dialog013 -}; - -static const struct DialogEntry dialog_text_014 = { - 1, 6, 30, 200, Dialog014 -}; - -static const struct DialogEntry dialog_text_015 = { - 1, 6, 30, 200, Dialog015 -}; - -static const struct DialogEntry dialog_text_016 = { - 1, 4, 30, 200, Dialog016 -}; - -static const struct DialogEntry dialog_text_017 = { - 1, 4, 30, 200, Dialog017 -}; - -static const struct DialogEntry dialog_text_018 = { - 1, 4, 30, 200, Dialog018 -}; - -static const struct DialogEntry dialog_text_019 = { - 1, 2, 30, 200, Dialog019 -}; - -static const struct DialogEntry dialog_text_020 = { - 1, 6, 95, 150, Dialog020 -}; - -static const struct DialogEntry dialog_text_021 = { - 1, 4, 95, 200, Dialog021 -}; - -static const struct DialogEntry dialog_text_022 = { - 1, 2, 95, 200, Dialog022 -}; - -static const struct DialogEntry dialog_text_023 = { - 1, 2, 95, 200, Dialog023 -}; - -static const struct DialogEntry dialog_text_024 = { - 1, 6, 95, 200, Dialog024 -}; - -static const struct DialogEntry dialog_text_025 = { - 1, 4, 95, 200, Dialog025 -}; - -static const struct DialogEntry dialog_text_026 = { - 1, 4, 95, 200, Dialog026 -}; - -static const struct DialogEntry dialog_text_027 = { - 1, 4, 95, 200, Dialog027 -}; - -static const struct DialogEntry dialog_text_028 = { - 1, 4, 95, 200, Dialog028 -}; - -static const struct DialogEntry dialog_text_029 = { - 1, 6, 95, 200, Dialog029 -}; - -static const struct DialogEntry dialog_text_030 = { - 1, 4, 30, 200, Dialog030 -}; - -static const struct DialogEntry dialog_text_031 = { - 1, 5, 30, 200, Dialog031 -}; - -static const struct DialogEntry dialog_text_032 = { - 1, 5, 30, 200, Dialog032 -}; - -static const struct DialogEntry dialog_text_033 = { - 1, 5, 30, 200, Dialog033 -}; - -static const struct DialogEntry dialog_text_034 = { - 1, 6, 30, 200, Dialog034 -}; - -static const struct DialogEntry dialog_text_035 = { - 1, 6, 30, 200, Dialog035 -}; - -static const struct DialogEntry dialog_text_036 = { - 1, 4, 30, 200, Dialog036 -}; - -static const struct DialogEntry dialog_text_037 = { - 1, 2, 30, 200, Dialog037 -}; - -static const struct DialogEntry dialog_text_038 = { - 1, 3, 95, 200, Dialog038 -}; - -static const struct DialogEntry dialog_text_039 = { - 1, 5, 30, 200, Dialog039 -}; - -static const struct DialogEntry dialog_text_040 = { - 1, 3, 30, 200, Dialog040 -}; - -static const struct DialogEntry dialog_text_041 = { - 1, 2, 30, 200, Dialog041 -}; - -static const struct DialogEntry dialog_text_042 = { - 1, 6, 30, 200, Dialog042 -}; - -static const struct DialogEntry dialog_text_043 = { - 1, 5, 30, 200, Dialog043 -}; - -static const struct DialogEntry dialog_text_044 = { - 1, 4, 95, 200, Dialog044 -}; - -static const struct DialogEntry dialog_text_045 = { - 1, 4, 95, 200, Dialog045 -}; - -static const struct DialogEntry dialog_text_046 = { - 1, 6, 30, 200, Dialog046 -}; - -static const struct DialogEntry dialog_text_047 = { - 1, 2, 95, 200, Dialog047 -}; - -static const struct DialogEntry dialog_text_048 = { - 1, 5, 30, 200, Dialog048 -}; - -static const struct DialogEntry dialog_text_049 = { - 1, 4, 30, 200, Dialog049 -}; - -static const struct DialogEntry dialog_text_050 = { - 1, 4, 30, 200, Dialog050 -}; - -static const struct DialogEntry dialog_text_051 = { - 1, 6, 30, 200, Dialog051 -}; - -static const struct DialogEntry dialog_text_052 = { - 1, 5, 30, 200, Dialog052 -}; - -static const struct DialogEntry dialog_text_053 = { - 1, 5, 30, 200, Dialog053 -}; - -static const struct DialogEntry dialog_text_054 = { - 1, 3, 30, 200, Dialog054 -}; - -static const struct DialogEntry dialog_text_055 = { - 1, 2, 30, 200, Dialog055 -}; - -static const struct DialogEntry dialog_text_056 = { - 1, 2, 30, 200, Dialog056 -}; - -static const struct DialogEntry dialog_text_057 = { - 1, 4, 30, 200, Dialog057 -}; - -static const struct DialogEntry dialog_text_058 = { - 1, 3, 30, 200, Dialog058 -}; - -static const struct DialogEntry dialog_text_059 = { - 1, 2, 30, 200, Dialog059 -}; - -static const struct DialogEntry dialog_text_060 = { - 1, 6, 30, 200, Dialog060 -}; - -static const struct DialogEntry dialog_text_061 = { - 1, 4, 30, 200, Dialog061 -}; - -static const struct DialogEntry dialog_text_062 = { - 1, 4, 30, 200, Dialog062 -}; - -static const struct DialogEntry dialog_text_063 = { - 1, 4, 30, 200, Dialog063 -}; - -static const struct DialogEntry dialog_text_064 = { - 1, 6, 30, 200, Dialog064 -}; - -static const struct DialogEntry dialog_text_065 = { - 1, 6, 30, 200, Dialog065 -}; - -static const struct DialogEntry dialog_text_066 = { - 1, 6, 30, 200, Dialog066 -}; - -static const struct DialogEntry dialog_text_067 = { - 1, 3, 30, 200, Dialog067 -}; - -static const struct DialogEntry dialog_text_068 = { - 1, 4, 30, 200, Dialog068 -}; - -static const struct DialogEntry dialog_text_069 = { - 1, 6, 30, 200, Dialog069 -}; - -static const struct DialogEntry dialog_text_070 = { - 1, 6, 30, 200, Dialog070 -}; - -static const struct DialogEntry dialog_text_071 = { - 1, 4, 30, 200, Dialog071 -}; - -static const struct DialogEntry dialog_text_072 = { - 1, 3, 30, 200, Dialog072 -}; - -static const struct DialogEntry dialog_text_073 = { - 1, 3, 95, 200, Dialog073 -}; - -static const struct DialogEntry dialog_text_074 = { - 1, 5, 30, 200, Dialog074 -}; - -static const struct DialogEntry dialog_text_075 = { - 1, 5, 30, 200, Dialog075 -}; - -static const struct DialogEntry dialog_text_076 = { - 1, 3, 30, 200, Dialog076 -}; - -static const struct DialogEntry dialog_text_077 = { - 1, 2, 150, 200, Dialog077 -}; - -static const struct DialogEntry dialog_text_078 = { - 1, 4, 30, 200, Dialog078 -}; - -static const struct DialogEntry dialog_text_079 = { - 1, 2, 30, 200, Dialog079 -}; - -static const struct DialogEntry dialog_text_080 = { - 1, 1, 30, 200, Dialog080 -}; - -static const struct DialogEntry dialog_text_081 = { - 1, 3, 30, 200, Dialog081 -}; - -static const struct DialogEntry dialog_text_082 = { - 1, 4, 30, 200, Dialog082 -}; - -static const struct DialogEntry dialog_text_083 = { - 1, 4, 30, 200, Dialog083 -}; - -static const struct DialogEntry dialog_text_084 = { - 1, 3, 30, 200, Dialog084 -}; - -static const struct DialogEntry dialog_text_085 = { - 1, 3, 30, 200, Dialog085 -}; - -static const struct DialogEntry dialog_text_086 = { - 1, 3, 30, 200, Dialog086 -}; - -static const struct DialogEntry dialog_text_087 = { - 1, 5, 30, 200, Dialog087 -}; - -static const struct DialogEntry dialog_text_088 = { - 1, 4, 30, 200, Dialog088 -}; - -static const struct DialogEntry dialog_text_089 = { - 1, 6, 95, 200, Dialog089 -}; - -static const struct DialogEntry dialog_text_090 = { - 1, 6, 30, 200, Dialog090 -}; - -static const struct DialogEntry dialog_text_091 = { - 1, 5, 30, 200, Dialog091 -}; - -static const struct DialogEntry dialog_text_092 = { - 1, 5, 30, 200, Dialog092 -}; - -static const struct DialogEntry dialog_text_093 = { - 1, 6, 30, 200, Dialog093 -}; - -static const struct DialogEntry dialog_text_094 = { - 1, 6, 30, 200, Dialog094 -}; - -static const struct DialogEntry dialog_text_095 = { - 1, 5, 30, 200, Dialog095 -}; - -static const struct DialogEntry dialog_text_096 = { - 1, 5, 30, 200, Dialog096 -}; - -static const struct DialogEntry dialog_text_097 = { - 1, 5, 30, 200, Dialog097 -}; - -static const struct DialogEntry dialog_text_098 = { - 1, 5, 95, 200, Dialog098 -}; - -static const struct DialogEntry dialog_text_099 = { - 1, 3, 95, 200, Dialog099 -}; - -static const struct DialogEntry dialog_text_100 = { - 1, 4, 95, 200, Dialog100 -}; - -static const struct DialogEntry dialog_text_101 = { - 1, 5, 95, 200, Dialog101 -}; - -static const struct DialogEntry dialog_text_102 = { - 1, 4, 30, 200, Dialog102 -}; - -static const struct DialogEntry dialog_text_103 = { - 1, 4, 95, 200, Dialog103 -}; - -static const struct DialogEntry dialog_text_104 = { - 1, 4, 30, 200, Dialog104 -}; - -static const struct DialogEntry dialog_text_105 = { - 1, 6, 95, 200, Dialog105 -}; - -static const struct DialogEntry dialog_text_106 = { - 1, 2, 95, 200, Dialog106 -}; - -static const struct DialogEntry dialog_text_107 = { - 1, 3, 95, 200, Dialog107 -}; - -static const struct DialogEntry dialog_text_108 = { - 1, 3, 95, 200, Dialog108 -}; - -static const struct DialogEntry dialog_text_109 = { - 1, 2, 95, 200, Dialog109 -}; - -static const struct DialogEntry dialog_text_110 = { - 1, 2, 95, 200, Dialog110 -}; - -static const struct DialogEntry dialog_text_111 = { - 1, 2, 95, 200, Dialog111 -}; - -static const struct DialogEntry dialog_text_112 = { - 1, 4, 30, 200, Dialog112 -}; - -static const struct DialogEntry dialog_text_113 = { - 1, 5, 30, 200, Dialog113 -}; - -static const struct DialogEntry dialog_text_114 = { - 1, 3, 95, 200, Dialog114 -}; - -static const struct DialogEntry dialog_text_115 = { - 1, 2, 95, 200, Dialog115 -}; - -static const struct DialogEntry dialog_text_116 = { - 1, 4, 95, 200, Dialog116 -}; - -static const struct DialogEntry dialog_text_117 = { - 1, 2, 95, 200, Dialog117 -}; - -static const struct DialogEntry dialog_text_118 = { - 1, 3, 95, 200, Dialog118 -}; - -static const struct DialogEntry dialog_text_119 = { - 1, 5, 30, 200, Dialog119 -}; - -static const struct DialogEntry dialog_text_120 = { - 1, 3, 30, 200, Dialog120 -}; - -static const struct DialogEntry dialog_text_121 = { - 1, 4, 30, 200, Dialog121 -}; - -static const struct DialogEntry dialog_text_122 = { - 1, 6, 30, 200, Dialog122 -}; - -static const struct DialogEntry dialog_text_123 = { - 1, 5, 30, 200, Dialog123 -}; - -static const struct DialogEntry dialog_text_124 = { - 1, 4, 30, 200, Dialog124 -}; - -static const struct DialogEntry dialog_text_125 = { - 1, 3, 30, 200, Dialog125 -}; - -static const struct DialogEntry dialog_text_126 = { - 1, 6, 30, 200, Dialog126 -}; - -static const struct DialogEntry dialog_text_127 = { - 1, 5, 30, 200, Dialog127 -}; - -static const struct DialogEntry dialog_text_128 = { - 1, 5, 95, 200, Dialog128 -}; - -static const struct DialogEntry dialog_text_129 = { - 1, 5, 30, 200, Dialog129 -}; - -static const struct DialogEntry dialog_text_130 = { - 1, 6, 30, 200, Dialog130 -}; - -static const struct DialogEntry dialog_text_131 = { - 1, 6, 30, 200, Dialog131 -}; - -static const struct DialogEntry dialog_text_132 = { - 1, 1, 30, 200, Dialog132 -}; - -static const struct DialogEntry dialog_text_133 = { - 1, 6, 30, 200, Dialog133 -}; - -static const struct DialogEntry dialog_text_134 = { - 1, 4, 30, 200, Dialog134 -}; - -static const struct DialogEntry dialog_text_135 = { - 1, 6, 30, 200, Dialog135 -}; - -static const struct DialogEntry dialog_text_136 = { - 1, 6, 30, 200, Dialog136 -}; - -static const struct DialogEntry dialog_text_137 = { - 1, 5, 30, 200, Dialog137 -}; - -static const struct DialogEntry dialog_text_138 = { - 1, 6, 30, 200, Dialog138 -}; - -static const struct DialogEntry dialog_text_139 = { - 1, 4, 30, 200, Dialog139 -}; - -static const struct DialogEntry dialog_text_140 = { - 1, 6, 30, 200, Dialog140 -}; - -static const struct DialogEntry dialog_text_141 = { - 1, 4, 150, 200, Dialog141 -}; - -static const struct DialogEntry dialog_text_142 = { - 1, 5, 150, 200, Dialog142 -}; - -static const struct DialogEntry dialog_text_143 = { - 1, 5, 150, 200, Dialog143 -}; - -static const struct DialogEntry dialog_text_144 = { - 1, 5, 150, 200, Dialog144 -}; - -static const struct DialogEntry dialog_text_145 = { - 1, 6, 150, 200, Dialog145 -}; - -static const struct DialogEntry dialog_text_146 = { - 1, 5, 150, 200, Dialog146 -}; - -static const struct DialogEntry dialog_text_147 = { - 1, 6, 30, 200, Dialog147 -}; - -static const struct DialogEntry dialog_text_148 = { - 1, 6, 30, 200, Dialog148 -}; - -static const struct DialogEntry dialog_text_149 = { - 1, 5, 30, 200, Dialog149 -}; - -static const struct DialogEntry dialog_text_150 = { - 1, 4, 30, 200, Dialog150 -}; - -static const struct DialogEntry dialog_text_151 = { - 1, 6, 30, 200, Dialog151 -}; - -static const struct DialogEntry dialog_text_152 = { - 1, 2, 30, 200, Dialog152 -}; - -static const struct DialogEntry dialog_text_153 = { - 1, 1, 30, 200, Dialog153 -}; - -static const struct DialogEntry dialog_text_154 = { - 1, 5, 30, 200, Dialog154 -}; - -static const struct DialogEntry dialog_text_155 = { - 1, 5, 30, 200, Dialog155 -}; - -static const struct DialogEntry dialog_text_156 = { - 1, 3, 30, 200, Dialog156 -}; - -static const struct DialogEntry dialog_text_157 = { - 1, 5, 30, 200, Dialog157 -}; - -static const struct DialogEntry dialog_text_158 = { - 1, 6, 30, 200, Dialog158 -}; - -static const struct DialogEntry dialog_text_159 = { - 1, 4, 30, 200, Dialog159 -}; - -static const struct DialogEntry dialog_text_160 = { - 1, 3, 30, 200, Dialog160 -}; - -static const struct DialogEntry dialog_text_161 = { - 1, 4, 30, 200, Dialog161 -}; - -static const struct DialogEntry dialog_text_162 = { - 1, 2, 30, 200, Dialog162 -}; - -static const struct DialogEntry dialog_text_163 = { - 1, 4, 30, 200, Dialog163 -}; - -static const struct DialogEntry dialog_text_164 = { - 1, 4, 30, 200, Dialog164 -}; - -static const struct DialogEntry dialog_text_165 = { - 1, 3, 30, 200, Dialog165 -}; - -static const struct DialogEntry dialog_text_166 = { - 1, 4, 30, 200, Dialog166 -}; - -static const struct DialogEntry dialog_text_167 = { - 1, 5, 30, 200, Dialog167 -}; - -static const struct DialogEntry dialog_text_168 = { - 1, 6, 30, 200, Dialog168 -}; - -static const struct DialogEntry dialog_text_169 = { - 1, 5, 30, 200, Dialog169 -}; - - -// dialog table -// 0x0200A120 -const struct DialogEntry *const dialog_table_eu_fr[] = { - &dialog_text_000, &dialog_text_001, &dialog_text_002, &dialog_text_003, - &dialog_text_004, &dialog_text_005, &dialog_text_006, &dialog_text_007, - &dialog_text_008, &dialog_text_009, &dialog_text_010, &dialog_text_011, - &dialog_text_012, &dialog_text_013, &dialog_text_014, &dialog_text_015, - &dialog_text_016, &dialog_text_017, &dialog_text_018, &dialog_text_019, - &dialog_text_020, &dialog_text_021, &dialog_text_022, &dialog_text_023, - &dialog_text_024, &dialog_text_025, &dialog_text_026, &dialog_text_027, - &dialog_text_028, &dialog_text_029, &dialog_text_030, &dialog_text_031, - &dialog_text_032, &dialog_text_033, &dialog_text_034, &dialog_text_035, - &dialog_text_036, &dialog_text_037, &dialog_text_038, &dialog_text_039, - &dialog_text_040, &dialog_text_041, &dialog_text_042, &dialog_text_043, - &dialog_text_044, &dialog_text_045, &dialog_text_046, &dialog_text_047, - &dialog_text_048, &dialog_text_049, &dialog_text_050, &dialog_text_051, - &dialog_text_052, &dialog_text_053, &dialog_text_054, &dialog_text_055, - &dialog_text_056, &dialog_text_057, &dialog_text_058, &dialog_text_059, - &dialog_text_060, &dialog_text_061, &dialog_text_062, &dialog_text_063, - &dialog_text_064, &dialog_text_065, &dialog_text_066, &dialog_text_067, - &dialog_text_068, &dialog_text_069, &dialog_text_070, &dialog_text_071, - &dialog_text_072, &dialog_text_073, &dialog_text_074, &dialog_text_075, - &dialog_text_076, &dialog_text_077, &dialog_text_078, &dialog_text_079, - &dialog_text_080, &dialog_text_081, &dialog_text_082, &dialog_text_083, - &dialog_text_084, &dialog_text_085, &dialog_text_086, &dialog_text_087, - &dialog_text_088, &dialog_text_089, &dialog_text_090, &dialog_text_091, - &dialog_text_092, &dialog_text_093, &dialog_text_094, &dialog_text_095, - &dialog_text_096, &dialog_text_097, &dialog_text_098, &dialog_text_099, - &dialog_text_100, &dialog_text_101, &dialog_text_102, &dialog_text_103, - &dialog_text_104, &dialog_text_105, &dialog_text_106, &dialog_text_107, - &dialog_text_108, &dialog_text_109, &dialog_text_110, &dialog_text_111, - &dialog_text_112, &dialog_text_113, &dialog_text_114, &dialog_text_115, - &dialog_text_116, &dialog_text_117, &dialog_text_118, &dialog_text_119, - &dialog_text_120, &dialog_text_121, &dialog_text_122, &dialog_text_123, - &dialog_text_124, &dialog_text_125, &dialog_text_126, &dialog_text_127, - &dialog_text_128, &dialog_text_129, &dialog_text_130, &dialog_text_131, - &dialog_text_132, &dialog_text_133, &dialog_text_134, &dialog_text_135, - &dialog_text_136, &dialog_text_137, &dialog_text_138, &dialog_text_139, - &dialog_text_140, &dialog_text_141, &dialog_text_142, &dialog_text_143, - &dialog_text_144, &dialog_text_145, &dialog_text_146, &dialog_text_147, - &dialog_text_148, &dialog_text_149, &dialog_text_150, &dialog_text_151, - &dialog_text_152, &dialog_text_153, &dialog_text_154, &dialog_text_155, - &dialog_text_156, &dialog_text_157, &dialog_text_158, &dialog_text_159, - &dialog_text_160, &dialog_text_161, &dialog_text_162, &dialog_text_163, - &dialog_text_164, &dialog_text_165, &dialog_text_166, &dialog_text_167, - &dialog_text_168, &dialog_text_169, NULL, -}; - diff --git a/text/eu/fr/level.c.in b/text/eu/fr/level.c.in deleted file mode 100644 index d25f331..0000000 --- a/text/eu/fr/level.c.in +++ /dev/null @@ -1,169 +0,0 @@ -// level names (EU, Français) -// 0x1900A3CC -static const u8 level_name_01[] = { - _(" 1 BATAILLE DE BOB-OMB") -}; - - -// 0x1900A3E4 -static const u8 level_name_02[] = { - _(" 2 FORTERESSE DE WHOMP") -}; - - -// 0x1900A3FC -static const u8 level_name_03[] = { - _(" 3 BAIE DES PIRATES") -}; - - -// 0x1900A410 -static const u8 level_name_04[] = { - _(" 4 MONTAGNE GLA-GLA") -}; - - -// 0x1900A424 -static const u8 level_name_05[] = { - _(" 5 MANOIR DE BIG BOO") -}; - - -// 0x1900A43C -static const u8 level_name_06[] = { - _(" 6 CAVERNE BRUMEUSE") -}; - - -// 0x1900A450 -static const u8 level_name_07[] = { - _(" 7 LAVES FATALES") -}; - - -// 0x1900A464 -static const u8 level_name_08[] = { - _(" 8 SABLES TROP MOUVANTS") -}; - - -// 0x1900A47C -static const u8 level_name_09[] = { - _(" 9 AFFREUX BASSIN") -}; - - -// 0x1900A490 -static const u8 level_name_10[] = { - _("10 CHEZ LE ROI DES NEIGES") -}; - - -// 0x1900A4AC -static const u8 level_name_11[] = { - _("11 MONDE TREMPE-SECHE") -}; - - -// 0x1900A4C4 -static const u8 level_name_12[] = { - _("12 TROP HAUTE MONTAGNE") -}; - - -// 0x1900A4DC -static const u8 level_name_13[] = { - _("13 ILE GRANDS-PETITS") -}; - - -// 0x1900A4F4 -static const u8 level_name_14[] = { - _("14 HORLOGE TIC-TAC") -}; - - -// 0x1900A508 -static const u8 level_name_15[] = { - _("15 COURSE ARC-EN-CIEL") -}; - - -// 0x1900A520 -static const u8 level_name_16[] = { - _(" BOWSER DES TENEBRES") -}; - - -// 0x1900A538 -static const u8 level_name_17[] = { - _(" BOWSER DES LAVES") -}; - - -// 0x1900A54C -static const u8 level_name_18[] = { - _(" BOWSER DES CIEUX") -}; - - -// 0x1900A560 -static const u8 level_name_19[] = { - _(" GLISSADE DE LA PRINCESSE") -}; - - -// 0x1900A57C -static const u8 level_name_20[] = { - _(" MINE DES CASQUETTES-METAL") -}; - - -// 0x1900A59C -static const u8 level_name_21[] = { - _(" INTERRUPTEUR DE LA TOUR AILEE") -}; - - -// 0x1900A5C0 -static const u8 level_name_22[] = { - _(" INVISIBLE SOUS LES DOUVES") -}; - - -// 0x1900A5E0 -static const u8 level_name_23[] = { - _(" AU-DELA DE L'ARC-EN-CIEL") -}; - - -// 0x1900A5FC -static const u8 level_name_24[] = { - _(" AQUARIUM SECRET") -}; - - -// 0x1900A610 -static const u8 level_name_25[] = { - _("") -}; - - -// 0x1900A614 -static const u8 level_name_castle_secret_stars[] = { - _(" ETOILES SECRETES") -}; - - -// level name table -// 0x1900A628 -const u8 *const level_name_table_eu_fr[] = { - level_name_01, level_name_02, level_name_03, level_name_04, - level_name_05, level_name_06, level_name_07, level_name_08, - level_name_09, level_name_10, level_name_11, level_name_12, - level_name_13, level_name_14, level_name_15, level_name_16, - level_name_17, level_name_18, level_name_19, level_name_20, - level_name_21, level_name_22, level_name_23, level_name_24, - level_name_25, level_name_castle_secret_stars, 0x0, -}; - diff --git a/text/eu/fr/star.c.in b/text/eu/fr/star.c.in deleted file mode 100644 index 027af3a..0000000 --- a/text/eu/fr/star.c.in +++ /dev/null @@ -1,613 +0,0 @@ -// act names (EU, Français) -// 0x1900A694 -static const u8 act_name_00[] = { - _("ROI BOB-OMB DU SOMMET") -}; - - -// 0x1900A6AC -static const u8 act_name_01[] = { - _("COURSE CONTRE KOOPA-RAPIDO") -}; - - -// 0x1900A6C8 -static const u8 act_name_02[] = { - _("CANON VERS L'ILE PERCHEE") -}; - - -// 0x1900A6E4 -static const u8 act_name_03[] = { - _("LES 8 PIECES ROUGES") -}; - - -// 0x1900A6F8 -static const u8 act_name_04[] = { - _("VOL DU MARIO AILE") -}; - - -// 0x1900A70C -static const u8 act_name_05[] = { - _("DERRIERE LA CAGE DE CHOMP") -}; - - -// 0x1900A728 -static const u8 act_name_06[] = { - _("DESTRUCTION DU GROS WHOMP") -}; - - -// 0x1900A744 -static const u8 act_name_07[] = { - _("EN HAUT DE LA FORTERESSE") -}; - - -// 0x1900A760 -static const u8 act_name_08[] = { - _("CANON VERS LES CIEUX") -}; - - -// 0x1900A778 -static const u8 act_name_09[] = { - _("PIECES ROUGES DANS LES AIRS") -}; - - -// 0x1900A794 -static const u8 act_name_10[] = { - _("TOMBEZ DANS LA CAGE PERCHEE") -}; - - -// 0x1900A7B0 -static const u8 act_name_11[] = { - _("CANON VERS UN MUR...") -}; - - -// 0x1900A7C8 -static const u8 act_name_12[] = { - _("PILLEZ LE BATEAU COULE") -}; - - -// 0x1900A7E0 -static const u8 act_name_13[] = { - _("L'ANGUILLE VEUT FAIRE JOUJOU?") -}; - - -// 0x1900A800 -static const u8 act_name_14[] = { - _("TRESOR DANS LA CAVERNE") -}; - - -// 0x1900A818 -static const u8 act_name_15[] = { - _("PIECES ROUGES A BORD!") -}; - - -// 0x1900A830 -static const u8 act_name_16[] = { - _("CANON VERS LES PILIERS") -}; - - -// 0x1900A848 -static const u8 act_name_17[] = { - _("DANS LE GEYSER") -}; - - -// 0x1900A858 -static const u8 act_name_18[] = { - _("GLISSADE SUR GLACE") -}; - - -// 0x1900A86C -static const u8 act_name_19[] = { - _("PETIT PINGOUIN PERDU") -}; - - -// 0x1900A884 -static const u8 act_name_20[] = { - _("COURSE DU PINGOUIN") -}; - - -// 0x1900A898 -static const u8 act_name_21[] = { - _("8 PIECES ROUGES GIVREES") -}; - - -// 0x1900A8B0 -static const u8 act_name_22[] = { - _("BONHOMME DE NEIGE SANS TETE") -}; - - -// 0x1900A8CC -static const u8 act_name_23[] = { - _("MURS POUR REBONDIR") -}; - - -// 0x1900A8E0 -static const u8 act_name_24[] = { - _("CHERCHEZ LE BIG BOO") -}; - - -// 0x1900A8F4 -static const u8 act_name_25[] = { - _("MANEGE DES BOOS PAS BEAUX") -}; - - -// 0x1900A910 -static const u8 act_name_26[] = { - _("SECRET DES LIVRES HANTES") -}; - - -// 0x1900A92C -static const u8 act_name_27[] = { - _("TROUVEZ LES 8 PIECES ROUGES") -}; - - -// 0x1900A948 -static const u8 act_name_28[] = { - _("BALCON DE BIG BOO") -}; - - -// 0x1900A95C -static const u8 act_name_29[] = { - _("UN OEIL SUR LES SALLES SECRETES") -}; - - -// 0x1900A97C -static const u8 act_name_30[] = { - _("GROS BIBI DE LA CAVERNE") -}; - - -// 0x1900A994 -static const u8 act_name_31[] = { - _("CHARIOT POUR PIECES ROUGES") -}; - - -// 0x1900A9B0 -static const u8 act_name_32[] = { - _("COURSE DE METAL MARIO") -}; - - -// 0x1900A9C8 -static const u8 act_name_33[] = { - _("DANS LE LABYRINTHE TOXIQUE") -}; - - -// 0x1900A9E4 -static const u8 act_name_34[] = { - _("AU-DESSUS DES GAZ...") -}; - - -// 0x1900A9FC -static const u8 act_name_35[] = { - _("ATTENTION AUX BOULETS") -}; - - -// 0x1900AA14 -static const u8 act_name_36[] = { - _("CRAMEZ LE GROS MOCHE") -}; - - -// 0x1900AA2C -static const u8 act_name_37[] = { - _("POUSSEZ LES PETITS MOCHES") -}; - - -// 0x1900AA48 -static const u8 act_name_38[] = { - _("PUZZLE DE 8 PIECES ROUGES") -}; - - -// 0x1900AA64 -static const u8 act_name_39[] = { - _("BALADE SUR LA BUCHE") -}; - - -// 0x1900AA78 -static const u8 act_name_40[] = { - _("CHAUD DANS LE VOLCAN") -}; - - -// 0x1900AA90 -static const u8 act_name_41[] = { - _("ASCENCEUR DANS LE VOLCAN") -}; - - -// 0x1900AAAC -static const u8 act_name_42[] = { - _("DANS LES GRIFFES DU VAUTOUR") -}; - - -// 0x1900AAC8 -static const u8 act_name_43[] = { - _("AU SOMMET DE LA PYRAMIDE") -}; - - -// 0x1900AAE4 -static const u8 act_name_44[] = { - _("DANS L'ANCIENNE PYRAMIDE") -}; - - -// 0x1900AB00 -static const u8 act_name_45[] = { - _("LES QUATRE PILIERS DE LA FOI") -}; - - -// 0x1900AB20 -static const u8 act_name_46[] = { - _("VOL VERS LES PIECES ROUGES") -}; - - -// 0x1900AB3C -static const u8 act_name_47[] = { - _("ENIGME DE LA PYRAMIDE") -}; - - -// 0x1900AB54 -static const u8 act_name_48[] = { - _("SOUS-MARIN DE BOWSER") -}; - - -// 0x1900AB6C -static const u8 act_name_49[] = { - _("COFFRES DANS LE COURANT") -}; - - -// 0x1900AB84 -static const u8 act_name_50[] = { - _("PERCHES POUR PIECES ROUGES") -}; - - -// 0x1900ABA0 -static const u8 act_name_51[] = { - _("DANS LE GEYSER") -}; - - -// 0x1900ABB0 -static const u8 act_name_52[] = { - _("RECOMPENSE DE LA RAIE") -}; - - -// 0x1900ABC8 -static const u8 act_name_53[] = { - _("ASSOCIATION DE CASQUETTES...") -}; - - -// 0x1900ABE8 -static const u8 act_name_54[] = { - _("GROSSE TETE DU BONHOMME") -}; - - -// 0x1900AC00 -static const u8 act_name_55[] = { - _("COMBATTEZ LE GROS MOCHE GIVRE") -}; - - -// 0x1900AC20 -static const u8 act_name_56[] = { - _("DANS LE GLAÇON") -}; - - -// 0x1900AC30 -static const u8 act_name_57[] = { - _("VRILLE DEPUIS LE LAC") -}; - - -// 0x1900AC48 -static const u8 act_name_58[] = { - _("CARAPACE POUR PIECES ROUGES") -}; - - -// 0x1900AC64 -static const u8 act_name_59[] = { - _("DANS L'IGLOO") -}; - - -// 0x1900AC74 -static const u8 act_name_60[] = { - _("MINI PLATES-FORMES FLECHEES!") -}; - - -// 0x1900AC94 -static const u8 act_name_61[] = { - _("SUR LES TOITS") -}; - - -// 0x1900ACA4 -static const u8 act_name_62[] = { - _("ENIGME DES CHIFFRES CACHES") -}; - - -// 0x1900ACC0 -static const u8 act_name_63[] = { - _("ASCENSEUR EXPRESS!") -}; - - -// 0x1900ACD4 -static const u8 act_name_64[] = { - _("PIECES ROUGES: VILLE ENGLOUTIE") -}; - - -// 0x1900ACF4 -static const u8 act_name_65[] = { - _("COURSE EN VILLE") -}; - - -// 0x1900AD04 -static const u8 act_name_66[] = { - _("ESCALADEZ LA MONTAGNE") -}; - - -// 0x1900AD1C -static const u8 act_name_67[] = { - _("MYSTERE DE LA CAGE DU SINGE") -}; - - -// 0x1900AD38 -static const u8 act_name_68[] = { - _("PIECES ROUGES SUR CHAMPIGNON") -}; - - -// 0x1900AD58 -static const u8 act_name_69[] = { - _("PAROI MYSTERIEUSE") -}; - - -// 0x1900AD6C -static const u8 act_name_70[] = { - _("PANORAMA DU PONT") -}; - - -// 0x1900AD80 -static const u8 act_name_71[] = { - _("CANON VERS LE CHAMPIGNON") -}; - - -// 0x1900AD9C -static const u8 act_name_72[] = { - _("DETRUISEZ LES MAXI-CARNIVORES") -}; - - -// 0x1900ADBC -static const u8 act_name_73[] = { - _("AU SOMMET DE L'ILE DES GEANTS") -}; - - -// 0x1900ADDC -static const u8 act_name_74[] = { - _("KOOPA-RAPIDO, LA VENGEANCE") -}; - - -// 0x1900ADF8 -static const u8 act_name_75[] = { - _("CINQ TOUT PETITS SECRETS") -}; - - -// 0x1900AE14 -static const u8 act_name_76[] = { - _("LES PIECES ROUGES DU GIGOTEUR") -}; - - -// 0x1900AE34 -static const u8 act_name_77[] = { - _("ENERVEZ LE GIGOTEUR") -}; - - -// 0x1900AE48 -static const u8 act_name_78[] = { - _("ROULEMENTS DANS LA CAGE") -}; - - -// 0x1900AE60 -static const u8 act_name_79[] = { - _("LES TROUS ET LE PENDULE") -}; - - -// 0x1900AE78 -static const u8 act_name_80[] = { - _("CHEVAUCHEZ L'AIGUILLE") -}; - - -// 0x1900AE90 -static const u8 act_name_81[] = { - _("L'ECRABOUILLEUR") -}; - - -// 0x1900AEA0 -static const u8 act_name_82[] = { - _("SAUTS SYNCHRONISES") -}; - - -// 0x1900AEB4 -static const u8 act_name_83[] = { - _("L'HEURE PILE POUR LES PIECES") -}; - - -// 0x1900AED4 -static const u8 act_name_84[] = { - _("CROISIERE SUR L'ARC-EN-CIEL") -}; - - -// 0x1900AEF0 -static const u8 act_name_85[] = { - _("MANOIR DANS LES AIRS") -}; - - -// 0x1900AF08 -static const u8 act_name_86[] = { - _("LABYRINTHE DES PIECES ROUGES") -}; - - -// 0x1900AF28 -static const u8 act_name_87[] = { - _("BALANÇOIRE CELESTE") -}; - - -// 0x1900AF3C -static const u8 act_name_88[] = { - _("VICIEUX TRIANGLES!") -}; - - -// 0x1900AF50 -static const u8 act_name_89[] = { - _("L'ARC-EN-CIEL ET AU-DELA") -}; - - -// 0x1900AF6C -static const u8 act_name_90[] = { - _("UNE ETOILE SECRETE DU CHATEAU") -}; - - -// 0x1900AF8C -static const u8 act_name_91[] = { - _("") -}; - - -// 0x1900AF90 -static const u8 act_name_92[] = { - _("") -}; - - -// 0x1900AF94 -static const u8 act_name_93[] = { - _("") -}; - - -// 0x1900AF98 -static const u8 act_name_94[] = { - _("") -}; - - -// 0x1900AF9C -static const u8 act_name_95[] = { - _("") -}; - - -// 0x1900AFA0 -static const u8 act_name_96[] = { - _("") -}; - - -// act name table -// 0x1900AFA4 -const u8 *const act_name_table_eu_fr[] = { - act_name_00, act_name_01, act_name_02, act_name_03, - act_name_04, act_name_05, act_name_06, act_name_07, - act_name_08, act_name_09, act_name_10, act_name_11, - act_name_12, act_name_13, act_name_14, act_name_15, - act_name_16, act_name_17, act_name_18, act_name_19, - act_name_20, act_name_21, act_name_22, act_name_23, - act_name_24, act_name_25, act_name_26, act_name_27, - act_name_28, act_name_29, act_name_30, act_name_31, - act_name_32, act_name_33, act_name_34, act_name_35, - act_name_36, act_name_37, act_name_38, act_name_39, - act_name_40, act_name_41, act_name_42, act_name_43, - act_name_44, act_name_45, act_name_46, act_name_47, - act_name_48, act_name_49, act_name_50, act_name_51, - act_name_52, act_name_53, act_name_54, act_name_55, - act_name_56, act_name_57, act_name_58, act_name_59, - act_name_60, act_name_61, act_name_62, act_name_63, - act_name_64, act_name_65, act_name_66, act_name_67, - act_name_68, act_name_69, act_name_70, act_name_71, - act_name_72, act_name_73, act_name_74, act_name_75, - act_name_76, act_name_77, act_name_78, act_name_79, - act_name_80, act_name_81, act_name_82, act_name_83, - act_name_84, act_name_85, act_name_86, act_name_87, - act_name_88, act_name_89, act_name_90, act_name_91, - act_name_92, act_name_93, act_name_94, act_name_95, - act_name_96, 0x0, -}; - diff --git a/text/fr/courses.h b/text/fr/courses.h new file mode 100644 index 0000000..96351ff --- /dev/null +++ b/text/fr/courses.h @@ -0,0 +1,80 @@ +COURSE_ACTS(COURSE_BOB, _(" 1 BATAILLE DE BOB-OMB"), + _("ROI BOB-OMB DU SOMMET") , _("COURSE CONTRE KOOPA-RAPIDO") , _("CANON VERS L'ILE PERCHEE"), + _("LES 8 PIECES ROUGES") , _("VOL DU MARIO AILE") , _("DERRIERE LA CAGE DE CHOMP")) + +COURSE_ACTS(COURSE_WF, _(" 2 FORTERESSE DE WHOMP"), + _("DESTRUCTION DU GROS WHOMP") , _("EN HAUT DE LA FORTERESSE") , _("CANON VERS LES CIEUX"), + _("PIECES ROUGES DANS LES AIRS") , _("TOMBEZ DANS LA CAGE PERCHEE") , _("CANON VERS UN MUR...")) + +COURSE_ACTS(COURSE_JRB, _(" 3 BAIE DES PIRATES"), + _("PILLEZ LE BATEAU COULE") , _("L'ANGUILLE VEUT FAIRE JOUJOU?") , _("TRESOR DANS LA CAVERNE"), + _("PIECES ROUGES A BORD!") , _("CANON VERS LES PILIERS") , _("DANS LE GEYSER")) + +COURSE_ACTS(COURSE_CCM, _(" 4 MONTAGNE GLA-GLA"), + _("GLISSADE SUR GLACE") , _("PETIT PINGOUIN PERDU") , _("COURSE DU PINGOUIN"), + _("8 PIECES ROUGES GIVREES") , _("BONHOMME DE NEIGE SANS TETE") , _("MURS POUR REBONDIR")) + +COURSE_ACTS(COURSE_BBH, _(" 5 MANOIR DE BIG BOO"), + _("CHERCHEZ LE BIG BOO") , _("MANEGE DES BOOS PAS BEAUX") , _("SECRET DES LIVRES HANTES"), + _("TROUVEZ LES 8 PIECES ROUGES") , _("BALCON DE BIG BOO") , _("UN OEIL SUR LES SALLES SECRETES")) + +COURSE_ACTS(COURSE_HMC, _(" 6 CAVERNE BRUMEUSE"), + _("GROS BIBI DE LA CAVERNE") , _("CHARIOT POUR PIECES ROUGES") , _("COURSE DE METAL MARIO"), + _("DANS LE LABYRINTHE TOXIQUE") , _("AU-DESSUS DES GAZ...") , _("ATTENTION AUX BOULETS")) + +COURSE_ACTS(COURSE_LLL, _(" 7 LAVES FATALES"), + _("CRAMEZ LE GROS MOCHE") , _("POUSSEZ LES PETITS MOCHES") , _("PUZZLE DE 8 PIECES ROUGES"), + _("BALADE SUR LA BUCHE") , _("CHAUD DANS LE VOLCAN") , _("ASCENCEUR DANS LE VOLCAN")) + +COURSE_ACTS(COURSE_SSL, _(" 8 SABLES TROP MOUVANTS"), + _("DANS LES GRIFFES DU VAUTOUR") , _("AU SOMMET DE LA PYRAMIDE") , _("DANS L'ANCIENNE PYRAMIDE"), + _("LES QUATRE PILIERS DE LA FOI") , _("VOL VERS LES PIECES ROUGES") , _("ENIGME DE LA PYRAMIDE")) + +COURSE_ACTS(COURSE_DDD, _(" 9 AFFREUX BASSIN"), + _("SOUS-MARIN DE BOWSER") , _("COFFRES DANS LE COURANT") , _("PERCHES POUR PIECES ROUGES"), + _("DANS LE GEYSER") , _("RECOMPENSE DE LA RAIE") , _("ASSOCIATION DE CASQUETTES...")) + +COURSE_ACTS(COURSE_SL, _("10 CHEZ LE ROI DES NEIGES"), + _("GROSSE TETE DU BONHOMME") , _("COMBATTEZ LE GROS MOCHE GIVRE") , _("DANS LE GLAÇON"), + _("VRILLE DEPUIS LE LAC") , _("CARAPACE POUR PIECES ROUGES") , _("DANS L'IGLOO")) + +COURSE_ACTS(COURSE_WDW, _("11 MONDE TREMPE-SECHE"), + _("MINI PLATES-FORMES FLECHEES!") , _("SUR LES TOITS") , _("ENIGME DES CHIFFRES CACHES"), + _("ASCENSEUR EXPRESS!") , _("PIECES ROUGES: VILLE ENGLOUTIE"), _("COURSE EN VILLE")) + +COURSE_ACTS(COURSE_TTM, _("12 TROP HAUTE MONTAGNE"), + _("ESCALADEZ LA MONTAGNE") , _("MYSTERE DE LA CAGE DU SINGE") , _("PIECES ROUGES SUR CHAMPIGNON"), + _("PAROI MYSTERIEUSE") , _("PANORAMA DU PONT") , _("CANON VERS LE CHAMPIGNON")) + +COURSE_ACTS(COURSE_THI, _("13 ILE GRANDS-PETITS"), + _("DETRUISEZ LES MAXI-CARNIVORES") , _("AU SOMMET DE L'ILE DES GEANTS") , _("KOOPA-RAPIDO, LA VENGEANCE"), + _("CINQ TOUT PETITS SECRETS") , _("LES PIECES ROUGES DU GIGOTEUR") , _("ENERVEZ LE GIGOTEUR")) + +COURSE_ACTS(COURSE_TTC, _("14 HORLOGE TIC-TAC"), + _("ROULEMENTS DANS LA CAGE") , _("LES TROUS ET LE PENDULE") , _("CHEVAUCHEZ L'AIGUILLE"), + _("L'ECRABOUILLEUR") , _("SAUTS SYNCHRONISES") , _("L'HEURE PILE POUR LES PIECES")) + +COURSE_ACTS(COURSE_RR, _("15 COURSE ARC-EN-CIEL"), + _("CROISIERE SUR L'ARC-EN-CIEL") , _("MANOIR DANS LES AIRS") , _("LABYRINTHE DES PIECES ROUGES"), + _("BALANÇOIRE CELESTE") , _("VICIEUX TRIANGLES!") , _("L'ARC-EN-CIEL ET AU-DELA")) + +SECRET_STAR(COURSE_BITDW, _(" BOWSER DES TENEBRES")) +SECRET_STAR(COURSE_BITFS, _(" BOWSER DES LAVES")) +SECRET_STAR(COURSE_BITS, _(" BOWSER DES CIEUX")) +SECRET_STAR(COURSE_PSS, _(" GLISSADE DE LA PRINCESSE")) +SECRET_STAR(COURSE_COTMC, _(" MINE DES CASQUETTES-METAL")) +SECRET_STAR(COURSE_TOTWC, _(" INTERRUPTEUR DE LA TOUR AILEE")) +SECRET_STAR(COURSE_VCUTM, _(" INVISIBLE SOUS LES DOUVES")) +SECRET_STAR(COURSE_WMOTR, _(" AU-DELA DE L'ARC-EN-CIEL")) +SECRET_STAR(COURSE_SA, _(" AQUARIUM SECRET")) +SECRET_STAR(COURSE_CAKE_END, _("")) + +CASTLE_SECRET_STARS(_(" ETOILES SECRETES")) + +EXTRA_TEXT(0, _("UNE ETOILE SECRETE DU CHATEAU")) +EXTRA_TEXT(1, _("")) +EXTRA_TEXT(2, _("")) +EXTRA_TEXT(3, _("")) +EXTRA_TEXT(4, _("")) +EXTRA_TEXT(5, _("")) +EXTRA_TEXT(6, _("")) diff --git a/text/fr/dialogs.h b/text/fr/dialogs.h new file mode 100644 index 0000000..26e8c1f --- /dev/null +++ b/text/fr/dialogs.h @@ -0,0 +1,2297 @@ +// Parameters: dialog enum ID, (unused), lines per box, left offset, width + +DEFINE_DIALOG(DIALOG_000, 1, 6, 30, 200, _("\ +Incroyable! Vous voilà\n\ +propulsé au beau milieu\n\ +d'un champ de bataille!\n\ +\n\ +\n\ +\n\ +Vous trouverez dans les\n\ +mondes au milieu des\n\ +tableaux les étoiles que\n\ +Bowser a dérobées...\n\ +\n\ +\n\ +Tout d'abord, parlez au\n\ +gentil Bob-omb (appuyez\n\ +sur [B] pour parler). Il\n\ +vous aidera sûrement,\n\ +ainsi que ses camarades\n\ +dans d'autres niveaux...\n\ +Pour lire une pancarte:\n\ +arrêtez-vous, faites face\n\ +au panneau et appuyez sur\n\ +[B]. Appuyez sur [A] ou [B]\n\ +pour lire la suite du\n\ +texte.")) + +DEFINE_DIALOG(DIALOG_001, 1, 5, 95, 200, _("\ +Attention! Si tu te\n\ +promènes par ici, tu\n\ +risques de te faire\n\ +écrabouiller par une bombe\n\ +à eau!\n\ +Les méchants Bob-ombs\n\ +adorent se bagarrer, et\n\ +ils trouvent toujours le\n\ +moyen d'attaquer\n\ +quelqu'un...\n\ +Cette prairie est devenue\n\ +un champ de bataille\n\ +depuis que le Roi Bob-omb\n\ +s'est approprié l'étoile de\n\ +puissance.\n\ +Peux-tu aller chercher\n\ +l'étoile pour nous?\n\ +\n\ +\n\ +\n\ +Traverse le pont, va à\n\ +gauche et prends le\n\ +chemin vers le haut pour\n\ +trouver le Roi Bob-omb.\n\ +\n\ +Reviens me voir lorsque tu\n\ +auras récupéré l'étoile de\n\ +puissance!")) + +DEFINE_DIALOG(DIALOG_002, 1, 6, 95, 200, _("\ +Hé, toi! C'est dangereux\n\ +par ici! Alors écoute bien\n\ +mon conseil:\n\ +\n\ +\n\ +\n\ +Traverse les deux ponts\n\ +devant toi, tout en\n\ +faisant attention aux\n\ +bombes à eau.\n\ +\n\ +\n\ +Le Roi Bob-omb au\n\ +sommet de la montagne\n\ +est très puissant...\n\ +Ne le laisse pas\n\ +t'attraper!\n\ +\n\ +Nous sommes de gentils\n\ +Bob-ombs, et nous sommes\n\ +de ton côté.\n\ +N'hésite pas à venir nous\n\ +parler à chaque fois que\n\ +tu en as envie!")) + +DEFINE_DIALOG(DIALOG_003, 1, 5, 95, 200, _("\ +Merci beaucoup Mario!\n\ +Tu as éclaté le vilain Roi\n\ +Bob-omb comme une vieille\n\ +figue! Mais tout ceci\n\ +n'est qu'un début...\n\ +D'autres gros méchants\n\ +pas beaux détiennent des\n\ +étoiles de puissance.\n\ +\n\ +\n\ +Si tu récupères d'autres\n\ +étoiles, tu pourras ouvrir\n\ +de nouvelles portes menant\n\ +à de nouveaux mondes!\n\ +\n\ +Mes camarades Bob-ombs\n\ +t'attendent. Si tu leur\n\ +parles, ils te prépareront\n\ +de jolis canons!")) + +DEFINE_DIALOG(DIALOG_004, 1, 6, 95, 200, _("\ +Nous sommes des\n\ +Bob-ombs pacifiques, nous\n\ +n'utilisons pas de canons.\n\ +\n\ +\n\ +\n\ +Mais si tu désires foncer\n\ +vers les cieux,\n\ +No Problemo: nous\n\ +nous ferons une joie de te\n\ +préparer tous les canons\n\ +de ce niveau. Bon voyage!")) + +DEFINE_DIALOG(DIALOG_005, 1, 5, 30, 200, _("\ +Hé, Mario! C'est vrai ce\n\ +qu'on raconte? Tu as\n\ +vraiment battu le Roi\n\ +Bob-omb? Cool!\n\ +\n\ +Tu dois être vachement\n\ +fort et rapide! Mais\n\ +es-tu aussi rapide que\n\ +moi, Koopa-Rapido?\n\ +Je crois bien que non...\n\ +Ça te dirait une petite\n\ +course jusqu'au sommet\n\ +de la montagne, là où\n\ +était le Roi Bob-omb?\n\ +Alors, qu'en dis-tu?\n\ +Lorsque je dis 『partez』,\n\ +la course commence...\n\ +Prêt...\n\ +\n\ +//Partez!//Heu, non.")) + +DEFINE_DIALOG(DIALOG_006, 1, 4, 30, 200, _("\ +Hé! Tu te moques de moi,\n\ +p'tit nain pas beau?\n\ +Tu dois courir du début\n\ +jusqu'à la fin!\n\ +A plus tard. Reviens me\n\ +voir lorsque tu arrêteras\n\ +de tricher...")) + +DEFINE_DIALOG(DIALOG_007, 1, 5, 30, 200, _("\ +Heuufff...fff...peufff...\n\ +Whoa! Tu...es...vraiment\n\ +rapide...pour un nabot!\n\ +Tu viens de l'espace?\n\ +Tiens, tu l'as méritée!")) + +DEFINE_DIALOG(DIALOG_008, 1, 5, 30, 200, _("\ +ATTENTION AU CHOMP\n\ +ENCHAINE!!!\n\ +Danger! Approchez-vous\n\ +et appuyez sur [C]^ pour\n\ +jeter un oeil.\n\ +Impressionnant, non?\n\ +Avez-vous remarqué la\n\ +pièce rouge sur le rondin?\n\ +Lorsque vous collecterez 8\n\ +pièces comme celle-ci,\n\ +une étoile apparaîtra\n\ +dans le pré de l'autre\n\ +côté du pont...")) + +DEFINE_DIALOG(DIALOG_009, 1, 4, 30, 200, _("\ +Ça fait longtemps qu'on\n\ +ne s'était pas vu, Mario!\n\ +Fouiii! Tu es devenu super\n\ +rapide!\n\ +Tu t'es entraîné aux Jeux\n\ +Olympiques ou les étoiles\n\ +te rendent ultra-méga-\n\ +puissant?\n\ +Je n'ai pas encore avalé\n\ +ma défaite de l'autre\n\ +fois... Mais ici c'est mon\n\ +territoire.\n\ +Tu veux faire le match\n\ +retour? L'arrivée est\n\ +dans la vallée Valvent...\n\ +\n\ +Prêt...\n\ +\n\ +\n\ +//Partez!// Heu, non.")) + +DEFINE_DIALOG(DIALOG_010, 1, 4, 30, 200, _("\ +Vous venez d'actionner\n\ +l'interrupteur des\n\ +casquettes ailées...\n\ +\n\ +Si vous portez une\n\ +casquette ailée, vous\n\ +pourrez voler comme un\n\ +oiseau.\n\ +Désormais des casquettes\n\ +ailées surgiront des blocs\n\ +rouges que vous\n\ +détruirez...\n\ +Voulez-vous sauvegarder?\n\ +\n\ +//Oui////Non.")) + +DEFINE_DIALOG(DIALOG_011, 1, 4, 30, 200, _("\ +Vous venez d'actionner\n\ +l'interrupteur des\n\ +casquettes-métal!\n\ +\n\ +Grâce aux casquettes-\n\ +métal, Mario peut devenir\n\ +invincible!\n\ +\n\ +Désormais, des\n\ +casquettes-métal\n\ +surgiront des blocs verts\n\ +que vous détruirez...\n\ +Voulez-vous sauvegarder?\n\ +\n\ +//Oui////Non.")) + +DEFINE_DIALOG(DIALOG_012, 1, 4, 30, 200, _("\ +Vous venez d'actionner\n\ +l'interrupteur des\n\ +casquettes d'invisibilité.\n\ +\n\ +En portant une casquette\n\ +d'invisibilité, Mario\n\ +disparaîtra...\n\ +\n\ +Désormais des casquettes\n\ +d'invisibilité surgiront\n\ +des blocs bleus que vous\n\ +détruirez...\n\ +Voulez-vous sauvegarder?\n\ +\n\ +//Oui////Non.")) + +DEFINE_DIALOG(DIALOG_013, 1, 6, 30, 200, _("\ +Vous avez récupéré 100\n\ +pièces! Mario sera\n\ +désormais plus puissant!\n\ +Voulez-vous sauvegarder?\n\ +\n\ +//Oui////Non.")) + +DEFINE_DIALOG(DIALOG_014, 1, 6, 30, 200, _("\ +Whoa, génial! Une autre\n\ +étoile de puissance! Mario\n\ +devient de plus en plus\n\ +courageux!\n\ +Voulez-vous sauvegarder?\n\ +//Oui////Non.")) + +DEFINE_DIALOG(DIALOG_015, 1, 6, 30, 200, _("\ +Vous pouvez frapper vos\n\ +ennemis et les assommer.\n\ +Appuyez sur [A] pour sauter\n\ +et sur [B] pour donner un\n\ +coup de poing. Appuyez sur\n\ +[A] et sur [B] pour donner un\n\ +coup de pied, et sur [B]\n\ +pour ramasser quelque\n\ +chose. Pour lancer ce que\n\ +vous portez, appuyez sur\n\ +[B] à nouveau.")) + +DEFINE_DIALOG(DIALOG_016, 1, 4, 30, 200, _("\ +Si vous sautez sur une\n\ +carapace brillante, vous\n\ +pourrez aller n'importe où\n\ +et détruire vos ennemis!")) + +DEFINE_DIALOG(DIALOG_017, 1, 4, 30, 200, _("\ +Je suis le Roi Bob-omb,\n\ +seigneur des explosions.\n\ +Je te félicite d'être\n\ +arrivé jusqu'ici, petit.\n\ +Si tu veux l'étoile de\n\ +puissance, il va falloir me\n\ +jeter au sol.\n\ +\n\ +Es-tu capable de soulever\n\ +mon royal fessier?\n\ +En garde, moucheron!")) + +DEFINE_DIALOG(DIALOG_018, 1, 4, 30, 200, _("\ +SILENCE! Je dors!\n\ +Gare à l'imprudent qui\n\ +oserait me reveiller...\n\ +Marchez doucement, sinon!")) + +DEFINE_DIALOG(DIALOG_019, 1, 2, 30, 200, _("\ +CHUT! Marchez doucement\n\ +dans les couloirs!!!")) + +DEFINE_DIALOG(DIALOG_020, 1, 6, 95, 150, _("\ +Mon très cher Mario:\n\ +Viens vite au château,\n\ +je t'ai préparé un\n\ +délicieux gâteau...\n\ +A bientôt,\n\ +Princesse Toadstool.")) + +DEFINE_DIALOG(DIALOG_021, 1, 4, 95, 200, _("\ +Bienvenue l'ami!\n\ +Ici il n'y a personne,\n\ +alors dégage, moustique!\n\ +GWA HA HA HA HA HA!!!")) + +DEFINE_DIALOG(DIALOG_022, 1, 2, 95, 200, _("\ +Cette porte est fermée\n\ +à clé...")) + +DEFINE_DIALOG(DIALOG_023, 1, 2, 95, 200, _("\ +Ce n'est pas la bonne clé.\n\ +Peut-être à la cave...")) + +DEFINE_DIALOG(DIALOG_024, 1, 6, 95, 200, _("\ +Vous avez besoin de la\n\ +puissance des étoiles pour\n\ +ouvrir cette porte.\n\ +Récupérez des étoiles en\n\ +combattant des ennemis à\n\ +l'intérieur des tableaux...")) + +DEFINE_DIALOG(DIALOG_025, 1, 4, 95, 200, _("\ +Vous avez besoin de 3\n\ +étoiles pour ouvrir cette\n\ +porte. Il vous manque\n\ +encore [%] étoile(s).")) + +DEFINE_DIALOG(DIALOG_026, 1, 4, 95, 200, _("\ +Vous avez besoin de 8\n\ +étoiles pour ouvrir cette\n\ +porte. Il vous manque\n\ +encore [%] étoile(s).")) + +DEFINE_DIALOG(DIALOG_027, 1, 4, 95, 200, _("\ +Vous avez besoin de 30\n\ +étoiles pour ouvrir cette\n\ +porte. Il vous manque\n\ +encore [%] étoile(s).")) + +DEFINE_DIALOG(DIALOG_028, 1, 4, 95, 200, _("\ +Vous avez besoin de 50\n\ +étoiles pour ouvrir cette\n\ +porte. Il vous manque\n\ +encore [%] étoile(s).")) + +DEFINE_DIALOG(DIALOG_029, 1, 6, 95, 200, _("\ +Vous avez besoin de 70\n\ +étoiles pour arriver en\n\ +haut de 『l'escalier sans\n\ +fin』... Il vous manque\n\ +encore [%] étoile(s).\n\ +GWA HA HA HA HA HA!!!")) + +DEFINE_DIALOG(DIALOG_030, 1, 4, 30, 200, _("\ +Bonjour à tous!\n\ +Ici Lakitu, le reporter de\n\ +choc et de charme! Voici\n\ +un petit conseil technique:\n\ +Marchez tout doucement\n\ +pour ne pas faire de bruit\n\ +et ainsi surprendre vos\n\ +ennemis.\n\ +Vous pouvez déplacer ma\n\ +caméra avec [C]> et [C]<.\n\ +Appuyez sur [C]| pour voir\n\ +de loin.\n\ +Lorsque ma caméra ne\n\ +peut plus se déplacer,\n\ +un signal sonore se fera\n\ +entendre...\n\ +Mes chers téléspectateurs,\n\ +à bientôt!\n\ +//// --Lakitu--")) + +DEFINE_DIALOG(DIALOG_031, 1, 5, 30, 200, _("\ +Incroyable! Tu m'as encore\n\ +battu? J'étais pourtant\n\ +certain de gagner!\n\ +Tiens, petit homme, tu as\n\ +bien mérité cette étoile...")) + +DEFINE_DIALOG(DIALOG_032, 1, 5, 30, 200, _("\ +Si en portant une\n\ +casquette ailée vous\n\ +effectuez trois sauts\n\ +consécutifs, vous pourrez\n\ +volez comme un oiseau!\n\ +Vous volerez encore plus\n\ +haut si vous êtes propulsé\n\ +par un canon!\n\ +\n\ +\n\ +Utilisez les boutons [C] pour\n\ +regarder autour de vous\n\ +en plein vol, et appuyez\n\ +sur [Z] pour atterrir.")) + +DEFINE_DIALOG(DIALOG_033, 1, 5, 30, 200, _("\ +Ciao bello!\n\ +Vous voici arrivé au\n\ +château de la Princesse\n\ +grâce à un tuyau de\n\ +téléportation.\n\ +Contrôler Mario est très\n\ +facile: appuyez sur [A]\n\ +pour sauter et sur [B] pour\n\ +attaquer. Appuyez sur [B]\n\ +pour lire les pancartes.\n\ +Utilisez le stick multi-\n\ +directionnel pour déplacer\n\ +Mario...\n\ +Et maintenant, en route\n\ +vers le château!!!")) + +DEFINE_DIALOG(DIALOG_034, 1, 6, 30, 200, _("\ +Bonjour! Nous sommes les\n\ +frères Lakitu et nous nous\n\ +ferons une joie de filmer\n\ +l'intrépide Mario tout au\n\ +long de son périple.\n\ +\n\ +Vous pourrez choisir\n\ +l'angle de prise de vue\n\ +grâce aux boutons [C]. S'il\n\ +est impossible de bouger\n\ +la caméra, un signal\n\ +sonore retentira.\n\ +Pour jeter un oeil autour\n\ +de Mario, arrêtez-vous\n\ +et appuyez sur [C]^.\n\ +Appuyez sur le bouton [A]\n\ +pour revenir au jeu.\n\ +\n\ +Appuyez sur [R] pour\n\ +changer de mode de vue.\n\ +Lisez les pancartes que\n\ +vous croiserez pour en\n\ +savoir d'avantage...\n\ +\n\ +C'était Lakitu,\n\ +le caméraman toujours\n\ +prêt à vous fournir les\n\ +meilleures images...")) + +DEFINE_DIALOG(DIALOG_035, 1, 6, 30, 200, _("\ +Il existe quatre boutons\n\ +[C]. En appuyant sur [C]^ et\n\ +en bougeant le stick\n\ +multidirectionnel, vous\n\ +pourrez jeter un oeil aux\n\ +alentours...\n\ +L'angle de vue normal est\n\ +celui de la caméra de\n\ +Lakitu, mais vous pouvez\n\ +le modifier en appuyant\n\ +sur [R] et ainsi utiliser\n\ +la 『caméra-Mario』.\n\ +Appuyez sur [R] à nouveau\n\ +pour utiliser la caméra de\n\ +Lakitu. Appuyez sur [C]|\n\ +pour voir Mario de loin,\n\ +quelque soit le mode de\n\ +vue que vous utilisez.")) + +DEFINE_DIALOG(DIALOG_036, 1, 4, 30, 200, _("\ +--PANORAMA--\n\ +Appuyez sur [C]^ pour jeter\n\ +un coup d'oeil. Profitez\n\ +de la vue!\n\ +Appuyez sur [R] pour\n\ +utiliser la caméra-Mario\n\ +qui suivra toujours de\n\ +près notre petit ami.\n\ +Appuyez à nouveau sur [R]\n\ +pour revenir à la caméra\n\ +de Lakitu.\n\ +\n\ +Mettez le jeu en pause et\n\ +choisissez le mode 『Fixe』\n\ +puis maintenez [R] pour que\n\ +la caméra reste en place.")) + +DEFINE_DIALOG(DIALOG_037, 1, 2, 30, 200, _("\ +Bwa ha ha ha ha!\n\ +Je t'ai battu gros nain!\n\ +Tu es aussi rapide qu'une\n\ +vieille limace malade!\n\ +Reviens me voir si tu\n\ +veux prendre ta revanche!")) + +DEFINE_DIALOG(DIALOG_038, 1, 3, 95, 200, _("\ +Grâce à la puissance des\n\ +étoiles, la porte s'ouvre\n\ +doucement...")) + +DEFINE_DIALOG(DIALOG_039, 1, 5, 30, 200, _("\ +ROYAUME DE BOB-OMB\n\ +\n\ +Interdit aux touristes!!!\n\ +\n\ +\n\ +Personne ne pourra me\n\ +voler mes étoiles de\n\ +puissance! Elles m'ont été\n\ +offertes par le grand\n\ +Bowser en personne.\n\ +Je ne dirai jamais où\n\ +elles se trouvent, mais\n\ +voici un indice:\n\ +\n\ +\n\ +lisez attentivement le nom\n\ +de chaque étoile au début\n\ +des niveaux.\n\ +\n\ +/// --Roi Bob-omb--")) + +DEFINE_DIALOG(DIALOG_040, 1, 3, 30, 200, _("\ +ATTENTION!\n\ +Crevasse de glace juste\n\ +en dessous!")) + +DEFINE_DIALOG(DIALOG_041, 1, 2, 30, 200, _("\ +J'ai gagné! J'ai gagné!\n\ +Ha! Ha! Pauv'nul!\n\ +Ça t'apprendra à défier\n\ +le grand Koopa-Rapido!\n\ +Reviens me voir si tu\n\ +veux une autre raclée!")) + +DEFINE_DIALOG(DIALOG_042, 1, 6, 30, 200, _("\ +ATTENTION!\n\ +\n\ +Pont étroit!!!\n\ +Traversez doucement...\n\ +\n\ +\n\ +Vous pouvez sauter et\n\ +vous accrocher au bord de\n\ +la falaise ou vous\n\ +suspendre en vous\n\ +déplaçant lentement près\n\ +du vide...\n\ +Si vous voulez lâcher\n\ +prise, appuyez sur [Z] ou\n\ +vers le bas sur le stick\n\ +multidirectionnel.\n\ +\n\ +\n\ +Pour vous hisser, appuyez\n\ +vers le haut sur le stick\n\ +multidirectionnel ou sur le\n\ +bouton [A] pour aller plus\n\ +vite.")) + +DEFINE_DIALOG(DIALOG_043, 1, 5, 30, 200, _("\ +Si vous sautez en\n\ +maintenant le bouton [A],\n\ +vous pourrez vous\n\ +accrocher à des objets\n\ +au-dessus de vous...\n\ +Vous pourrez même vous\n\ +accrocher à un oiseau!")) + +DEFINE_DIALOG(DIALOG_044, 1, 4, 95, 200, _("\ +Mmm? Hein? Qui m'a\n\ +réveillé? Quoi!?! Il fait\n\ +encore jour? Je devrais\n\ +dormir!\n\ +Maintenant que je suis\n\ +réveillé, ça te dirait de\n\ +faire un petit tour avec\n\ +moi?\n\ +Maintiens le bouton [A]\n\ +pour t'accrocher et\n\ +lâche-le pour te laisser\n\ +tomber.\n\ +Je t'emmènerai où tu veux\n\ +aussi longtemps que mes\n\ +ailes pourront supporter\n\ +ton poids!\n\ +Regarde bien mon ombre\n\ +et accroche-toi!!!")) + +DEFINE_DIALOG(DIALOG_045, 1, 4, 95, 200, _("\ +Fouiii! J'suis naze!!!\n\ +Tu devrais peut-être\n\ +arrêter les pâtes aux\n\ +oeufs...\n\ +Allez, ciao Mario!\n\ +Lâche le bouton [A] sinon\n\ +j'te balance dans le vide\n\ +mon gros...")) + +DEFINE_DIALOG(DIALOG_046, 1, 6, 30, 200, _("\ +Il existe trois sauts\n\ +différents que vous\n\ +devez maîtriser:\n\ +Tout d'abord, le Triple\n\ +Saut...\n\ +\n\ +En pleine course, sautez\n\ +trois fois de suite.\n\ +Si votre synchronisation\n\ +est correcte, vous\n\ +sauterez de plus en plus\n\ +haut...\n\ +Ensuite, pour sauter le\n\ +plus loin possible, vous\n\ +devrez effectuer le Saut\n\ +en Longueur:\n\ +\n\ +\n\ +Courez, appuyez sur [Z] pour\n\ +vous accroupir, puis\n\ +appuyez sur [A] pour\n\ +sauter...\n\ +\n\ +\n\ +Enfin, pour créer une\n\ +『Impulsion』, appuyez sur\n\ +[A] vers un mur puis sautez\n\ +à nouveau lorsque vous\n\ +touchez la paroi...\n\ +\n\ +C'est compris?\n\ +Triple Saut, Saut en\n\ +Longueur et Impulsion?\n\ +Pour y arriver à chaque\n\ +fois il faut s'entraîner\n\ +encore et encore et...?")) + +DEFINE_DIALOG(DIALOG_047, 1, 2, 95, 200, _("\ +Salut l'ami! Je vais te\n\ +préparer un joli canon!")) + +DEFINE_DIALOG(DIALOG_048, 1, 5, 30, 200, _("\ +Sommet du glacier...\n\ +Attention à ne pas\n\ +glisser!\n\ +Tout d'abord, visitez ce\n\ +chalet...")) + +DEFINE_DIALOG(DIALOG_049, 1, 4, 30, 200, _("\ +Vous vous souvenez de\n\ +l'Impulsion? Utilisez cette\n\ +technique pour atteindre\n\ +des lieux en hauteur...\n\ +Rebondissez de mur en\n\ +mur, en appuyant sur le\n\ +stick multidirectionnel\n\ +vers la direction desirée.\n\ +Entraînez-vous encore et\n\ +encore et encore et...?")) + +DEFINE_DIALOG(DIALOG_050, 1, 4, 30, 200, _("\ +Maintenez le bouton [Z] pour\n\ +vous accroupir et ainsi\n\ +glisser le long d'une\n\ +pente...\n\ +Appuyez sur [Z] pendant un\n\ +saut pour faire l'Attaque\n\ +Rodéo!\n\ +\n\ +A l'arrêt, si vous appuyez\n\ +sur [Z] pour vous accroupir,\n\ +puis sur [A], vous ferez un\n\ +Saut Périlleux!\n\ +C'est compris? Mais il\n\ +existe encore d'autres\n\ +mouvements...\n\ +\n\ +Vous pouvez courir, vous\n\ +accroupir puis faire un\n\ +Saut en Longueur...\n\ +\n\ +Vous pouvez aussi marcher\n\ +en maintenant le bouton [Z].\n\ +Mais c'est une autre\n\ +histoire...")) + +DEFINE_DIALOG(DIALOG_051, 1, 6, 30, 200, _("\ +Vous pouvez facilement\n\ +vous accrocher aux arbres\n\ +et aux poteaux...\n\ +\n\ +\n\ +\n\ +Appuyez sur [Z] pour lâcher\n\ +prise, sur [A] pour sauter\n\ +en arrière ou sur le stick\n\ +multidirectionnel pour\n\ +descendre doucement.\n\ +\n\ +Une fois au sommet,\n\ +appuyez vers la droite ou\n\ +vers la gauche sur le\n\ +stick multidirectionnel\n\ +pour pivoter, ou vers le\n\ +haut pour faire le poirier.\n\ +Appuyez alors sur [A] pour\n\ +faire un méga-saut vers\n\ +l'arrière, digne des plus\n\ +grands athlètes!")) + +DEFINE_DIALOG(DIALOG_052, 1, 5, 30, 200, _("\ +Arrêtez-vous et appuyez\n\ +sur [Z] pour vous accroupir,\n\ +puis appuyez sur [A] pour\n\ +faire un Saut Périlleux\n\ +en arrière!\n\ +Pour faire un Saut\n\ +Périlleux de côté, courez,\n\ +changez de direction, puis\n\ +sautez.\n\ +\n\ +Ces deux types de saut\n\ +vous permettent de\n\ +sauter beaucoup plus haut\n\ +qu'un saut normal...")) + +DEFINE_DIALOG(DIALOG_053, 1, 5, 30, 200, _("\ +Quelques fois, en\n\ +traversant un anneau ou\n\ +en découvrant un passage\n\ +secret dans un niveau, un\n\ +chiffre rouge apparaîtra.\n\ +Si vous faites apparaître\n\ +cinq chiffres rouges, une\n\ +étoile secrète apparaîtra.")) + +DEFINE_DIALOG(DIALOG_054, 1, 3, 30, 200, _("\ +Attention:\n\ +Glissade Périlleuse!\n\ +En voiture Simone...\n\ +Appuyez vers l'avant sur\n\ +le stick multidirectionnel\n\ +pour accélérer.\n\ +Appuyez vers l'arrière\n\ +pour ralentir...\n\ +Roulez jeunesse!")) + +DEFINE_DIALOG(DIALOG_055, 1, 2, 30, 200, _("\ +Salut mon tout petit\n\ +Mario...\n\ +Alors, il paraît que tu es\n\ +un rapide?\n\ +Mais es-tu aussi rapide\n\ +que moi?\n\ +On fait la course,\n\ +mon petit biquet?\n\ +Prêt...\n\ +//Partez!//Heu, non.")) + +DEFINE_DIALOG(DIALOG_056, 1, 2, 30, 200, _("\ +Qu-qu-quoi? T-t-tu as\n\ +battu mon record?\n\ +Je l'admets, tu es très\n\ +rapide pour un humain.\n\ +Je n'ai pas de médaille\n\ +d'or sur moi mais...\n\ +Cette étoile fera\n\ +l'affaire...")) + +DEFINE_DIALOG(DIALOG_057, 1, 4, 30, 200, _("\ +Mon bébé! J'ai perdu mon\n\ +bébé... Mon p'tit chou...\n\ +Ma puce à moi...\n\ +Mon chocolat...\n\ +JE VEUX MON BÉBÉ!!!\n\ +GNAAAAAAAAAAAAAA!!!\n\ +MON BÉBÉ!")) + +DEFINE_DIALOG(DIALOG_058, 1, 3, 30, 200, _("\ +Tu as trouvé mon bébé!!!\n\ +Mon chou...\n\ +Mon p'tit chou...\n\ +Comment te prouver ma\n\ +gratitude, gros Mario?\n\ +Tu es formidable...\n\ +Tiens, prends cette étoile.\n\ +Tu l'as bien méritée...\n\ +Encore merci, petit!")) + +DEFINE_DIALOG(DIALOG_059, 1, 2, 30, 200, _("\ +C'est pas mon bébé!!!\n\ +Où est mon bébé?\n\ +JE VEUX MON BÉBÉ!!!!\n\ +GNAAAAAAAAAAAAAA!!!!")) + +DEFINE_DIALOG(DIALOG_060, 1, 6, 30, 200, _("\ +ATTENTION!\n\ +A lire avant de plonger!\n\ +Si vous restez sous l'eau\n\ +pendant trop longtemps,\n\ +vous pouvez vous noyer...\n\ +\n\ +Remonter à la surface,\n\ +traverser une bulle d'air\n\ +ou récupérer des pièces\n\ +vous fera regagner de\n\ +l'oxygène.\n\ +\n\ +Appuyez sur [A] pour nager.\n\ +Maintenez le bouton [A]\n\ +pour battre des pieds.\n\ +Appuyez régulièrement sur\n\ +[A] pour gagner de la\n\ +vitesse.\n\ +Appuyez vers le haut sur\n\ +le stick multidirectionnel\n\ +pour plonger.\n\ +Appuyez vers le bas et sur\n\ +[A] pour remonter à la\n\ +surface.\n\ +Lorsque vous êtes à la\n\ +surface, maintenez la\n\ +flèche vers le bas sur le\n\ +stick multidirectionnel et\n\ +appuyez sur [A] pour sortir\n\ +de l'eau.")) + +DEFINE_DIALOG(DIALOG_061, 1, 4, 30, 200, _("\ +Brrrrr!!!\n\ +Baignade déconseillée!!!\n\ +Trop froid...\n\ +// ---Le Pingouin---")) + +DEFINE_DIALOG(DIALOG_062, 1, 4, 30, 200, _("\ +A l'intérieur des\n\ +blocs verts se cache la\n\ +casquette-métal...\n\ +\n\ +En la portant, vous\n\ +deviendrez insensible au\n\ +feu et aux attaques de\n\ +vos ennemis.\n\ +Vous n'aurez même plus\n\ +besoin de respirer!\n\ +Mais il y a un problème:\n\ +vous ne pouvez pas nager!")) + +DEFINE_DIALOG(DIALOG_063, 1, 4, 30, 200, _("\ +La casquette d'invisibilité\n\ +se trouve dans les blocs\n\ +bleus.\n\ +\n\ +En la portant, vos\n\ +ennemis, y compris les\n\ +terribles Boos, ne\n\ +pourront pas vous voir!\n\ +En plus, vous pourrez\n\ +traverser des murs\n\ +secrets!")) + +DEFINE_DIALOG(DIALOG_064, 1, 6, 30, 200, _("\ +Si vous portez une\n\ +casquette ailée provenant\n\ +d'un bloc rouge, faites le\n\ +Triple Saut pour vous\n\ +envoler comme un oiseau!\n\ +\n\ +Utilisez le stick multi-\n\ +directionnel pour diriger\n\ +Mario. Appuyez vers le\n\ +bas pour prendre de\n\ +l'altitude, et vers le haut\n\ +pour piquer du nez.\n\ +Et enfin, appuyez sur [Z]\n\ +pour atterrir.")) + +DEFINE_DIALOG(DIALOG_065, 1, 6, 30, 200, _("\ +Leçons de natation...\n\ +Appuyez sur [A] pour nager\n\ +la brasse. Si votre\n\ +synchronisation est bonne,\n\ +vous pourrez nager très\n\ +vite.\n\ +Maintenez le bouton [A]\n\ +pour battre des pieds\n\ +d'une façon régulière.\n\ +\n\ +\n\ +\n\ +Appuyez vers le haut sur\n\ +le stick multidirectionnel\n\ +pour plonger, et vers le\n\ +bas pour remonter à la\n\ +surface.\n\ +\n\ +Pour sortir de l'eau,\n\ +appuyez vers le bas sur\n\ +le stick multidirectionnel\n\ +et appuyez sur [A]. Ensuite,\n\ +relâcher le stick pour ne\n\ +pas retomber dans l'eau.\n\ +Attention: Mario ne peut\n\ +pas respirer sous l'eau!\n\ +Remontez à la surface\n\ +lorsque vous manquez\n\ +d'oxygène...\n\ +\n\ +Dernière chose:\n\ +vous ne pouvez pas ouvrir\n\ +les portes se trouvant\n\ +sous l'eau.")) + +DEFINE_DIALOG(DIALOG_066, 1, 6, 30, 200, _("\ +Mario! Fais attention:\n\ +Bowser est un gros\n\ +vicieux! Il va tenter de\n\ +te brûler les fesses avec\n\ +son souffle de feu!\n\ +\n\ +Tourne autour de lui et\n\ +attrape sa queue en\n\ +appuyant sur [B]. Une fois\n\ +que tu l'as attrapé,\n\ +fais-le tourner autour\n\ +de toi.\n\ +Fais des rotations avec le\n\ +stick multidirectionnel\n\ +pour aller de plus en plus\n\ +vite.\n\ +\n\ +\n\ +Si tu le fais tourner très\n\ +vite, tu pourras l'envoyer\n\ +très loin.\n\ +\n\ +\n\ +\n\ +Utilise les boutons [C] pour\n\ +regarder autour de toi.\n\ +Tu dois jeter Bowser sur\n\ +une des bombes...\n\ +\n\ +\n\ +Vise bien! Appuie sur [B]\n\ +pour lancer Bowser.\n\ +Bonne chance, Mario!\n\ +Tu en auras besoin...\n\ +\n\ +// ---Peach---")) + +DEFINE_DIALOG(DIALOG_067, 1, 3, 30, 200, _("\ +HA HA! Dommage pour toi,\n\ +Mario! La P'tite Peach\n\ +n'est pas là...\n\ +Mais si tu veux un gros\n\ +bisou, on peut toujours\n\ +s'arranger!\n\ +Je parie que tu n'es pas\n\ +capable d'attraper ma\n\ +queue...\n\ +Tu es trop faible pour me\n\ +faire tourner autour de\n\ +ta tête!\n\ +Tu n'arriveras jamais à\n\ +me faire décoller d'ici...\n\ +GWA HA! A table!!!!!!!")) + +DEFINE_DIALOG(DIALOG_068, 1, 4, 30, 200, _("\ +Voici les Laves Fatales!\n\ +Si vous touchez de la lave\n\ +ou des flammes, vous\n\ +aurez le feu aux fesses!\n\ +Mais pas de panique:\n\ +vous pourrez toujours\n\ +contrôler Mario...\n\ +Restez calme!")) + +DEFINE_DIALOG(DIALOG_069, 1, 6, 30, 200, _("\ +A l'intérieur des tableaux\n\ +vous pourrez touchez des\n\ +murs invisibles marquant\n\ +les limites du niveau.\n\ +Si vous touchez un mur en\n\ +volant, vous serez bloqué.")) + +DEFINE_DIALOG(DIALOG_070, 1, 6, 30, 200, _("\ +Vous pouvez retourner\n\ +dans le hall du château\n\ +depuis n'importe quel\n\ +niveau.\n\ +\n\ +\n\ +Vous devez vous arrêter,\n\ +appuyer sur Start pour\n\ +mettre le jeu en pause,\n\ +puis choisir l'option\n\ +『Quitter Niveau』.\n\ +\n\ +Vous n'avez pas besoin de\n\ +récupérer toutes les\n\ +étoiles d'un niveau pour\n\ +accéder à un autre monde.\n\ +\n\ +\n\ +Vous pouvez retourner\n\ +dans un niveau plus tard,\n\ +et ainsi récupérer les\n\ +étoiles difficiles à\n\ +attraper.\n\ +\n\ +Après avoir récupéré une\n\ +étoile, un indice\n\ +concernant l'étoile\n\ +suivante apparaîtra à\n\ +l'écran au début du\n\ +niveau...\n\ +Toutefois, vous n'êtes pas\n\ +obligé d'attraper l'étoile\n\ +décrite par l'indice.")) + +DEFINE_DIALOG(DIALOG_071, 1, 4, 30, 200, _("\ +DANGER!\n\ +Attention au brouillard\n\ +toxique!\n\ +\n\ +Si vous perdez de\n\ +l'énergie, courez vers une\n\ +plate-forme en hauteur\n\ +pour respirer.\n\ +\n\ +Cercle: Abri\n\ +Flèche: Entrée - Sortie")) + +DEFINE_DIALOG(DIALOG_072, 1, 3, 30, 200, _("\ +Attention: vents violents!\n\ +Accrochez-vous à votre\n\ +casquette!\n\ +Si vous la perdez, vous\n\ +devrez revenir la chercher\n\ +là où vous l'avez perdue...")) + +DEFINE_DIALOG(DIALOG_073, 1, 3, 95, 200, _("\ +Souquez ferme, matelot!\n\ +J'ai caché un trésor\n\ +par ici, moussaillon.\n\ +Mais pour le découvrir,\n\ +vous devrez ouvrir les\n\ +coffres dans l'ordre...\n\ +Y arriveras-tu, petit?\n\ +\n\ +// -- Le capitaine --")) + +DEFINE_DIALOG(DIALOG_074, 1, 5, 30, 200, _("\ +Vous pouvez vous\n\ +accrocher au rebord d'une\n\ +falaise.\n\ +\n\ +\n\ +Pour lâcher prise, appuyez\n\ +vers le bas sur le stick\n\ +multidirectionnel ou sur le\n\ +bouton [Z].\n\ +\n\ +Pour vous hisser, appuyez\n\ +vers le haut sur le stick\n\ +multidirectionnel ou sur le\n\ +bouton [A] pour monter plus\n\ +vite.")) + +DEFINE_DIALOG(DIALOG_075, 1, 5, 30, 200, _("\ +Mario! Mon château est\n\ +en danger, et Bowser en\n\ +est le responsable...\n\ +Toi seul peut contrecarrer\n\ +ses plans diaboliques!\n\ +Les portes du château ont\n\ +été scellées par Bowser et\n\ +ne peuvent être ouvertes\n\ +qu'à l'aide du pouvoir des\n\ +étoiles...\n\ +Bowser a caché les étoiles\n\ +de puissance dans les\n\ +tableaux et les murs du\n\ +château.\n\ +\n\ +Mais Bowser n'a pas\n\ +découvert tous les\n\ +passages secrets du\n\ +château.\n\ +\n\ +Un passage secret se\n\ +trouve dans cette pièce et\n\ +il mène à une des étoiles\n\ +secrètes du château!\n\ +\n\ +Trouve cette étoile, mon\n\ +petit Mario! Elle te sera\n\ +très utile. Je t'en prie,\n\ +aide-nous!\n\ +\n\ +Retrouve toutes les étoiles\n\ +du château et tu pourras\n\ +nous délivrer!\n\ +Je t'en prie, Mario!\n\ +Sauve-nous!")) + +DEFINE_DIALOG(DIALOG_076, 1, 3, 30, 200, _("\ +Grâce au pouvoir des\n\ +étoiles, le château\n\ +revient à la vie...\n\ +Je t'en prie Mario,\n\ +botte les fesses du\n\ +vilain Bowser pas beau!\n\ +As-tu visité la pièce du\n\ +château dans laquelle un\n\ +grand miroir est au mur?\n\ +Prends garde à tout ce\n\ +qui n'a pas de reflet...\n\ +\n\ +Connais-tu le monde\n\ +『Trempé-Séché』?\n\ +\n\ +Rentre dans ce niveau en\n\ +sautant très haut...\n\ +\n\ +Au fait! Regarde ce que\n\ +j'ai pour toi!")) + +DEFINE_DIALOG(DIALOG_077, 1, 2, 150, 200, _("\ +Il est dit que les piliers\n\ +doivent être enfoncés...")) + +DEFINE_DIALOG(DIALOG_078, 1, 4, 30, 200, _("\ +Enfoncez le bloc des\n\ +pièces bleues grâce à\n\ +l'Attaque Rodéo, en\n\ +appuyant sur [Z].\n\ +Une pièce bleue vaut 5\n\ +pièces jaunes.\n\ +\n\ +\n\ +Dépêchez-vous de les\n\ +attraper, sinon elles\n\ +disparaîtront!")) + +DEFINE_DIALOG(DIALOG_079, 1, 2, 30, 200, _("\ +GNIIIIIIIII!!!\n\ +LACHE-MOI!\n\ +Je blaguais! Tu n'as\n\ +aucun sens de l'humour.\n\ +Lâche-moi et je te\n\ +donnerais un truc cool.\n\ +Ça marche?\n\ +//OK//// Jamais!")) + +DEFINE_DIALOG(DIALOG_080, 1, 1, 30, 200, _("\ +Gnii hi hi hi hi hi!!!")) + +DEFINE_DIALOG(DIALOG_081, 1, 3, 30, 200, _("\ +Bienvenue dans le monde\n\ +『Trempé-Séché』...\n\ +\n\ +Ici, il est dit qu'un saut\n\ +altère le niveau d'eau...\n\ +\n\ +En y pénétrant,\n\ +serez-vous assez\n\ +intelligent?")) + +DEFINE_DIALOG(DIALOG_082, 1, 4, 30, 200, _("\ +Accroche-toi à ta\n\ +casquette, gentil petit\n\ +Mario...\n\ +\n\ +Si jamais tu la perds, tu\n\ +devras retourner la\n\ +chercher là où tu l'as\n\ +perdue...\n\ +Sans casquette, tes\n\ +ennemis pourront te faire\n\ +beaucoup plus de dégâts!\n\ +\n\ +La princesse Peach a\n\ +de sérieux ennuis...\n\ +Elle est enfermée dans un\n\ +des murs du château.\n\ +Tu dois absolument l'aider\n\ +mon gros Mario! Savais-\n\ +tu qu'il existe des\n\ +mondes dans les murs?\n\ +Les sbires du Bowser pas\n\ +beau y font régner la\n\ +terreur!\n\ +\n\ +Tiens, j'ai un petit\n\ +cadeau pour toi...")) + +DEFINE_DIALOG(DIALOG_083, 1, 4, 30, 200, _("\ +Cette grosse horloge est\n\ +étrange...\n\ +\n\ +\n\ +Fais attention à la\n\ +position de la grande\n\ +aiguille lorsque tu sautes\n\ +à l'intérieur...\n\ +Au fait, regarde ce que\n\ +j'ai là pour toi!")) + +DEFINE_DIALOG(DIALOG_084, 1, 3, 30, 200, _("\ +GNAAAAAAAAA!!!\n\ +LACHE-MOI!!!\n\ +GROSSE BRUTE!\n\ +Ne me mange pas!\n\ +Ne me mange pas!\n\ +Au secours!!!!!!\n\ +Tiens, voilà une étoile.\n\ +Prends-la, mais tu dois\n\ +me laisser partir...")) + +DEFINE_DIALOG(DIALOG_085, 1, 3, 30, 200, _("\ +Va-t'en, simple mortel!\n\ +Si tu tiens à ton âme,\n\ +retourne chez toi...\n\ +Si tu oses rentrer,\n\ +tu seras damné!!!")) + +DEFINE_DIALOG(DIALOG_086, 1, 3, 30, 200, _("\ +Tourner autour de\n\ +certains ennemis peut\n\ +faire tourner de l'oeil...")) + +DEFINE_DIALOG(DIALOG_087, 1, 5, 30, 200, _("\ +Le Père Noël n'est pas le\n\ +seul à passer par les\n\ +cheminées...\n\ +Avis aux curieux...\n\ +- Le bonhomme de neige -")) + +DEFINE_DIALOG(DIALOG_088, 1, 4, 30, 200, _("\ +-Plate-forme de travail-\n\ +Pour descendre, utilisez\n\ +le poteau sur la gauche et\n\ +glissez jusqu'en bas...")) + +DEFINE_DIALOG(DIALOG_089, 1, 6, 95, 200, _("\ +Les deux routes sont très\n\ +dangereuses...\n\ +Ceux qui ne sont pas\n\ +encore capables de faire\n\ +le Saut en Longueur\n\ +doivent aller à droite.\n\ +Droite: Plate-forme de\n\ +////travail.\n\ +////Labyrinthe\n\ +////toxique.\n\ +Gauche: Trou Noir.\n\ +////Lac souterrain.\n\ +Cercle rouge:\n\ +////Ascenseur 2.\n\ +////Lac souterrain.\n\ +Flèche:\n\ +////Votre position\n\ +////actuelle.")) + +DEFINE_DIALOG(DIALOG_090, 1, 6, 30, 200, _("\ +BWA HA HA HA HA HA!!!\n\ +Tu es tombé dans mon\n\ +piège, petit Mario!\n\ +Mais voici un conseil\n\ +d'ami: prends garde à ne\n\ +pas tomber!")) + +DEFINE_DIALOG(DIALOG_091, 1, 5, 30, 200, _("\ +Danger!!!\n\ +Vents violents!\n\ +Sachez utiliser les\n\ +courants à votre\n\ +avantage...")) + +DEFINE_DIALOG(DIALOG_092, 1, 5, 30, 200, _("\ +Mario...\n\ +Mon p'tit Mario...\n\ +Tu m'cherches ou quoi?\n\ +Tu la veux ta baffe?\n\ +Alors tu vas l'avoir!\n\ +Mais d'abord tu vas me\n\ +rendre mes étoiles,\n\ +voleur!\n\ +BWA HA HA HA HA HA!!!\n\ +C'est l'heure du goûter!")) + +DEFINE_DIALOG(DIALOG_093, 1, 6, 30, 200, _("\ +Mario?!?\n\ +Tu es encore là, toi?\n\ +Très bien, tu l'auras\n\ +voulu! Cette fois-ci, je\n\ +vais faire frire ta\n\ +vieille moustache!\n\ +Malgré tes étoiles de\n\ +puissance, tu n'arriveras\n\ +jamais à sauver Peach et\n\ +ses amis...\n\ +Allez... En garde!\n\ +BWA HA HA HA HA HA HA!")) + +DEFINE_DIALOG(DIALOG_094, 1, 6, 30, 200, _("\ +Pourquoi ne pas escalader\n\ +cette pente en courant?\n\ +Petit rappel: pour faire\n\ +un Saut en Longueur,\n\ +courir, appuyer sur [Z],\n\ +puis sauter...")) + +DEFINE_DIALOG(DIALOG_095, 1, 5, 30, 200, _("\ +Pour lire une pancarte,\n\ +il faut se tenir devant\n\ +l'écriteau et appuyer [B].\n\ +Vous le saviez déjà?\n\ +Ah bon... Désolé.\n\ +Pour parler à une tortue\n\ +ou à un autre animal,\n\ +vous devez vous tenir en\n\ +face de lui ou elle.\n\ +\n\ +Retrouvez vite les étoiles\n\ +que Bowser a caché dans\n\ +ce niveau!")) + +DEFINE_DIALOG(DIALOG_096, 1, 5, 30, 200, _("\ +Le sommet de la montagne\n\ +est interdit au public!\n\ +Alors n'essayez pas d'y\n\ +aller, à moins d'être à la\n\ +recherche des étoiles...\n\ +Autre conseil: ne réveillez\n\ +jamais quelqu'un qui dort.\n\ +Marchez doucement...\n\ +Et sans bruit...")) + +DEFINE_DIALOG(DIALOG_097, 1, 5, 30, 200, _("\ +Si quelqu'un vous pousse,\n\ +n'ayez pas peur!\n\ +Poussez-le vous aussi!\n\ +Le perdant aura plutôt\n\ +chaud aux fesses...")) + +DEFINE_DIALOG(DIALOG_098, 1, 5, 95, 200, _("\ +Viens...\n\ +...entre donc...\n\ +Mon biquet...\n\ +...viens dîner...\n\ +Hin...hin...hin...")) + +DEFINE_DIALOG(DIALOG_099, 1, 3, 95, 200, _("\ +Hé...hé...hé...\n\ +Ciao bello Mario!\n\ +Moi j'traverse les murs!\n\ +Tu peux le faire, toi?\n\ +Hin...hin...hin...")) + +DEFINE_DIALOG(DIALOG_100, 1, 4, 95, 200, _("\ +GNIIIIII! KIIIII!\n\ +J'l'ai eue!!!\n\ +HI KI KI KI KI KI!\n\ +C'est à moi!!!")) + +DEFINE_DIALOG(DIALOG_101, 1, 5, 95, 200, _("\ +Aaaak...kiiii!!!\n\ +Arrête! Tu m'étrangles!\n\ +Quoi? Cette casquette?\n\ +OK, prends-la...\n\ +Grande brute, va!\n\ +De toutes façons,\n\ +tu as l'air débile avec ça\n\ +sur la tête...")) + +DEFINE_DIALOG(DIALOG_102, 1, 4, 30, 200, _("\ +Les Boos sont timides! Si\n\ +vous les regardez dans les\n\ +yeux, ils disparaîtront...\n\ +\n\ +Mais si vous leur tournez\n\ +le dos, ils réapparaîtront.\n\ +Invisibles, ils sont\n\ +invincibles...\n\ +Tentez de vous faufiler\n\ +derrière eux et de leur\n\ +botter les fesses!")) + +DEFINE_DIALOG(DIALOG_103, 1, 4, 95, 200, _("\ +Au sommet des quatre\n\ +piliers l'on doit se tenir,\n\ +pour que la lumière puisse\n\ +enfin jaillir...")) + +DEFINE_DIALOG(DIALOG_104, 1, 4, 30, 200, _("\ +L'ombre de l'étoile en\n\ +face de vous est un\n\ +『Marqueur d'étoile』.\n\ +\n\ +Lorsque vous récupérerez\n\ +8 pièces rouges, une\n\ +étoile apparaîtra à cet\n\ +emplacement.")) + +DEFINE_DIALOG(DIALOG_105, 1, 6, 95, 200, _("\ +Canon prêt à tirer!\n\ +Allez, saute à l'intérieur!\n\ +Tu peux atteindre l'étoile\n\ +sur l'île flottante en\n\ +utilisant les quatre\n\ +canons.\n\ +Utilise le stick multi-\n\ +directionnel pour viser et\n\ +appuie sur [A] pour tirer.\n\ +Si tu es habile, sers-toi\n\ +des arbres et des poteaux\n\ +pour atterrir...")) + +DEFINE_DIALOG(DIALOG_106, 1, 2, 95, 200, _("\ +Canon prêt à tirer!\n\ +Allez, saute à l'intérieur!")) + +DEFINE_DIALOG(DIALOG_107, 1, 3, 95, 200, _("\ +Les fantômes sont...\n\ +...immortels!\n\ +Hin hin hin hin...\n\ +Pourras-tu sortir d'ici...\n\ +...vivant?\n\ +Gni hi hi hi hi hi...")) + +DEFINE_DIALOG(DIALOG_108, 1, 3, 95, 200, _("\ +GNI HI HI HI HI HOU!\n\ +Voici le seigneur des\n\ +supplices!\n\ +Le maître des ombres...\n\ +Le souverain des\n\ +cauchemars...\n\ +Le Big Boo en personne!\n\ +Tremblez humains!!!\n\ +GNA HI HOU HA HIN HU !")) + +DEFINE_DIALOG(DIALOG_109, 1, 2, 95, 200, _("\ +Oooooh Noooon!\n\ +Mon corps a fondu!\n\ +Tu ne pourrais pas\n\ +m'aider, petit homme?\n\ +J'ai besoin d'un nouveau\n\ +corps!\n\ +Je dois faire un golf\n\ +demain...")) + +DEFINE_DIALOG(DIALOG_110, 1, 2, 95, 200, _("\ +J'ai perdu la tête, on\n\ +dirait...\n\ +Connais-tu quelqu'un à la\n\ +recherche d'un corps?\n\ +Je suis peut-être petit,\n\ +mais je grandis vite!\n\ +Guide-moi, je te suivrai\n\ +n'importe où!")) + +DEFINE_DIALOG(DIALOG_111, 1, 2, 95, 200, _("\ +Coooooool!\n\ +Quel super corps!\n\ +Maintenant je vais\n\ +pouvoir aller draguer!\n\ +Tiens, voici un petit\n\ +quelque chose pour toi...")) + +DEFINE_DIALOG(DIALOG_112, 1, 4, 30, 200, _("\ +Ramassez le plus de pièces\n\ +possible! Elles rempliront\n\ +votre énergie!\n\ +\n\ +Vous pouvez jeter un oeil\n\ +au nombre de pièces que\n\ +vous avez récupérées dans\n\ +les 15 mondes.\n\ +Vous pouvez aussi remplir\n\ +votre énergie en touchant\n\ +un coeur!\n\ +\n\ +Si vous faites tourner le\n\ +coeur très vite, il vous\n\ +donnera beaucoup\n\ +d'énergie...")) + +DEFINE_DIALOG(DIALOG_113, 1, 5, 30, 200, _("\ +Il existe des casquettes\n\ +spéciales dans les blocs\n\ +rouges, verts et bleus.\n\ +\n\ +\n\ +Marchez sur les\n\ +interrupteurs dans les\n\ +niveaux cachés pour faire\n\ +apparaître les blocs de\n\ +couleur.")) + +DEFINE_DIALOG(DIALOG_114, 1, 3, 95, 200, _("\ +Ah c'est pas le moment\n\ +de venir m'embêter!\n\ +\n\ +Nous les pierres, on\n\ +construit des maisons et\n\ +des châteaux...\n\ +Et vous les humains, vous\n\ +ne pensez jamais à nous\n\ +dire merci!\n\ +Si tu restes là, je m'en\n\ +vais t'écraser la face\n\ +comme une vieille prune...\n\ +Crois-tu pouvoir faire\n\ +une Attaque Rodéo sur\n\ +mon dos?\n\ +Ça m'étonnerais!\n\ +Allez... En garde, nabot\n\ +rouge et bleu!")) + +DEFINE_DIALOG(DIALOG_115, 1, 2, 95, 200, _("\ +Quoi? J'ai perdu?!?\n\ +Sacré nom d'un pétard!\n\ +Vous les humains, vous\n\ +n'avez aucun coeur...\n\ +Tiens, prends ça...\n\ +Et va-t'en!")) + +DEFINE_DIALOG(DIALOG_116, 1, 4, 95, 200, _("\ +Hein?/De quoi?\n\ +Moi? J'ai perdu?\n\ +Battu par un tout petit\n\ +bonhomme de rien du tout!\n\ +Mais cela ne sera pas\n\ +aussi facile contre le\n\ +grand Bowser!\n\ +Oh que non!\n\ +Tiens, voici l'étoile.\n\ +Dette de jeu...\n\ +Dette d'honneur...\n\ +Ciao petit Mario!\n\ +Si tu veux me revoir,\n\ +choisis cette étoile sur\n\ +l'écran du départ.\n\ +A bientôt!")) + +DEFINE_DIALOG(DIALOG_117, 1, 2, 95, 200, _("\ +Qui...dérange...mon...\n\ +...sommeil...éternel...?\n\ +Tout...bruit...doit...\n\ +...être...puni...!\n\ +Intrus...va...être...\n\ +...détruit...!\n\ +...COMBAT...!!!\n\ +...A...MAINS...NUES...!!!")) + +DEFINE_DIALOG(DIALOG_118, 1, 3, 95, 200, _("\ +Qu...qu...qu...Hein?\n\ +Moi...perdu?...Hein?\n\ +Moi...faible...nul.\n\ +Toi...nouveau pharaon...\n\ +Tiens...pour toi...\n\ +Moi...dormir...dodo. Ciao.")) + +DEFINE_DIALOG(DIALOG_119, 1, 5, 30, 200, _("\ +Grrrrr! Tu m'as surpris...\n\ +Je t'ai sous-estimé!\n\ +Petit mais costaud, hein?\n\ +Mais Peach est toujours\n\ +ma prisonnière! Ha Ha!\n\ +Ne t'inquiète pas, on se\n\ +reverra! Et la prochaine\n\ +fois, je te mangerai les\n\ +doigts!\n\ +Allez, à bientôt! GWA HA!")) + +DEFINE_DIALOG(DIALOG_120, 1, 3, 30, 200, _("\ +Moi? Le grand Bowser?\n\ +Vaincu? Non, non!\n\ +Ça ne compte pas!\n\ +Je dormais! Tu as triché!\n\ +La prochaine fois, je te\n\ +mangerai les oreilles!\n\ +Si tu veux revoir ta\n\ +p'tite Peach, rejoins-moi\n\ +en haut de la tour...\n\ +Allez, à la prochaine!\n\ +GWA HA HA HA HA HA HA!\n\ +GWA HI HOU HÉ HEU...HA!")) + +DEFINE_DIALOG(DIALOG_121, 1, 4, 30, 200, _("\ +NOoOoOoOoOoOoOoOon!\n\ +Mario... Méchant petit!\n\ +Cette fois-ci...\n\ +...je suis cuit!!!\n\ +Mes pouvoirs maléfiques\n\ +disparaissent!\n\ +Toutes mes troupes sont\n\ +anéanties!\n\ +La paix, l'amour et\n\ +l'amitié sont de retour!\n\ +AaAaAaAaAargh!\n\ +C'est insupportable!\n\ +Mais je reviendrai...\n\ +Un jour... Je reviendrai!\n\ +Et ce jour-là...\n\ +Bye Bye Mario! BWA HA!!")) + +DEFINE_DIALOG(DIALOG_122, 1, 6, 30, 200, _("\ +-Le Trou Noir-\n\ +Droite: Plate-forme de\n\ +////travail.\n\ +////Labyrinthe\n\ +////toxique.\n\ +Gauche: Lac souterrain.")) + +DEFINE_DIALOG(DIALOG_123, 1, 5, 30, 200, _("\ +-Caverne Métallique-\n\ +Droite: Vers la cascade.\n\ +Gauche: Interrupteur des\n\ +////casquettes-métal.")) + +DEFINE_DIALOG(DIALOG_124, 1, 4, 30, 200, _("\ +Plate-forme de travail:\n\ +Danger!\n\ +Lire le mode d'emploi\n\ +attentivement!!!\n\ +Appuyez sur une flèche\n\ +pour déplacer la plate-\n\ +forme.\n\ +\n\ +Si jamais vous tombez de\n\ +la plate-forme, retournez\n\ +là où vous l'avez vue pour\n\ +la première fois.")) + +DEFINE_DIALOG(DIALOG_125, 1, 3, 30, 200, _("\ +Sortie du Labyrinthe\n\ +toxique... Fermée!\n\ +Faites demi-tour!")) + +DEFINE_DIALOG(DIALOG_126, 1, 6, 30, 200, _("\ +-Ascenseur 1-\n\ +Haut:/ Trou Noir.\n\ +Droite: Plate-forme de\n\ +////travail.\n\ +////Labyrinthe\n\ +////toxique.")) + +DEFINE_DIALOG(DIALOG_127, 1, 5, 30, 200, _("\ +-Lac Souterrain-\n\ +Droite: Caverne\n\ +////métallique.\n\ +Gauche: Mine abandonnée\n\ +////(Fermée).\n\ +Gros Bibi, un gentil\n\ +dragon, vit ici.\n\ +Faites l'Attaque Rodéo\n\ +sur son dos pour qu'il\n\ +baisse la tête...")) + +DEFINE_DIALOG(DIALOG_128, 1, 5, 95, 200, _("\ +Tu dois te battre avec\n\ +honneur! Il est interdit\n\ +de jeter une personnalité\n\ +royale hors de la surface\n\ +de combat!")) + +DEFINE_DIALOG(DIALOG_129, 1, 5, 30, 200, _("\ +Bienvenue dans\n\ +le niveau des casquettes\n\ +d'invisibilité!!!\n\ +\n\ +\n\ +Si vous marchez sur\n\ +l'interrupteur bleu, tous\n\ +les blocs bleus deviendront\n\ +solides...\n\ +\n\ +Si vous portez une\n\ +casquette d'invisibilité,\n\ +vous pourrez traverser vos\n\ +ennemis et pleins d'autres\n\ +choses...")) + +DEFINE_DIALOG(DIALOG_130, 1, 6, 30, 200, _("\ +Bienvenue dans le niveau\n\ +des casquettes-métal!!!\n\ +Si vous marchez sur\n\ +l'interrupteur vert, tous\n\ +les blocs verts\n\ +deviendront solides...\n\ +Si vous portez une\n\ +casquette-métal, vous\n\ +vous transformerez en\n\ +Métal Mario! Vous pourrez\n\ +alors marcher sous l'eau.\n\ +Faites un essai pour voir!")) + +DEFINE_DIALOG(DIALOG_131, 1, 6, 30, 200, _("\ +Bienvenue dans le niveau\n\ +des casquettes ailées!!!\n\ +Marchez sur l'interrupteur\n\ +rouge au sommet de la\n\ +tour, au centre des\n\ +anneaux arc-en-ciel.\n\ +En actionnant\n\ +l'interrupteur, tous les\n\ +blocs rouges deviendront\n\ +solides...\n\ +\n\ +\n\ +Lorsque vous êtes en\n\ +possession de la casquette\n\ +ailée, faites un Triple\n\ +Saut pour vous envoler et\n\ +appuyez sur [Z] pour\n\ +atterrir.\n\ +Appuyez vers le bas sur le\n\ +stick multidirectionnel\n\ +pour prendre de l'altitude\n\ +et vers le haut pour\n\ +piquer du nez. Imaginez-\n\ +vous à bord d'un 747!!!")) + +DEFINE_DIALOG(DIALOG_132, 1, 1, 30, 200, _("\ +Non, mais?\n\ +Tu...tu...t'es fou?\n\ +Tu triches?\n\ +OK! T'es disqualifié!\n\ +Tu l'auras pas volé!\n\ +Houuuuuu! Le tricheur!")) + +DEFINE_DIALOG(DIALOG_133, 1, 6, 30, 200, _("\ +Mario! C'est toi?\n\ +Comme je suis heureux de\n\ +te voir!\n\ +La Princesse, comme nous\n\ +tous, a été emprisonnée\n\ +dans les murs du château.\n\ +Bowser a volé les étoiles\n\ +du château, et il utilise\n\ +leur puissance pour se\n\ +créer un monde dans les\n\ +tableaux et les murs!\n\ +\n\ +Je t'en prie, retrouve les\n\ +étoiles de puissance!\n\ +Grâce à elles, tu pourras\n\ +ouvrir les portes du\n\ +château que Bowser a\n\ +fermées...\n\ +Il existe quatre pièces\n\ +au rez-de-chaussée.\n\ +Commence par celle dans\n\ +laquelle tu trouveras le\n\ +tableau représentant des\n\ +Bob-ombs...\n\ +Bowser a oublié de fermer\n\ +cette porte. Lorsque tu\n\ +auras récupéré 8 étoiles,\n\ +va ouvrir la porte avec la\n\ +grosse étoile: la Princesse\n\ +doit être de l'autre côté!")) + +DEFINE_DIALOG(DIALOG_134, 1, 4, 30, 200, _("\ +Le nom des étoiles inscrit\n\ +au début de chaque monde\n\ +est un indice!\n\ +\n\ +Tu peux récupérer les\n\ +étoiles dans n'importe\n\ +quel ordre.\n\ +\n\ +Mais la sélection d'une\n\ +étoile peut impliquer\n\ +l'apparition de nouveaux\n\ +décors ou personnages...\n\ +Après avoir récupéré des\n\ +étoiles, tu peux tenter ta\n\ +chance dans d'autres\n\ +niveaux...\n\ +Aide-nous le plus vite\n\ +possible, mon mignon petit\n\ +Mario en sucre...")) + +DEFINE_DIALOG(DIALOG_135, 1, 6, 30, 200, _("\ +Bowser a volé les étoiles!\n\ +Je l'ai vu!\n\ +De mes propres yeux!\n\ +Il faut que tu nous\n\ +viennes en aide, Mario...\n\ +\n\ +Il a caché 6 étoiles dans\n\ +chaque monde, mais tu ne\n\ +pourras pas toutes les\n\ +récupérer sans avoir\n\ +actionné les interrupteurs\n\ +de casquettes...\n\ +Les étoiles que tu as\n\ +récupérées apparaîtront à\n\ +l'écran au début de\n\ +chaque niveau...\n\ +\n\ +\n\ +Si tu désires revoir les\n\ +ennemis que tu as déjà\n\ +vaincu, sélectionne les\n\ +étoiles en relation avec\n\ +ces ennemis...")) + +DEFINE_DIALOG(DIALOG_136, 1, 6, 30, 200, _("\ +Whoa!!! Tu as déjà\n\ +récupéré autant d'étoiles?\n\ +Incroyable! T'es fort, toi!\n\ +Mais fais attention:\n\ +Bowser et ses sbires sont\n\ +des durs à cuire...\n\ +N'oublie pas de récupérer\n\ +des pièces pour regagner\n\ +de l'énergie.\n\ +Les pièces jaunes te\n\ +rempliront une portion de\n\ +ton énergie...\n\ +Les pièces rouges t'en\n\ +donneront deux et les\n\ +pièces bleues, cinq.\n\ +\n\ +\n\ +\n\ +Pour faire apparaître des\n\ +pièces bleues, fais une\n\ +Attaque Rodéo sur un Bloc\n\ +de pièces bleues.\n\ +\n\ +\n\ +D'autre part, tu peux\n\ +te faire moins mal en\n\ +tombant d'une falaise, en\n\ +effectuant une Attaque\n\ +Rodéo juste avant de\n\ +toucher le sol...")) + +DEFINE_DIALOG(DIALOG_137, 1, 5, 30, 200, _("\ +Merci Mario!\n\ +Grâce à tes étoiles de\n\ +puissance, Bowser est allé\n\ +se réfugier dans une\n\ +autre partie du château!\n\ +Au fait, savais-tu qu'une\n\ +étoile de puissance\n\ +apparaît à chaque fois\n\ +que tu récupères 100\n\ +pièces dans un niveau?")) + +DEFINE_DIALOG(DIALOG_138, 1, 6, 30, 200, _("\ +-Ascenseur 2-\n\ +Bas://Lac souterrain.\n\ +Gauche: Trou Noir.\n\ +Droite: Labyrinthe\n\ +////toxique\n\ +////(fermé).")) + +DEFINE_DIALOG(DIALOG_139, 1, 4, 30, 200, _("\ +\n\ +Au dessus:\n\ +Chariot automatique.\n\ +\n\ +Le chariot se met en\n\ +route automatiquement et\n\ +suit un chemin pré-\n\ +déterminé...\n\ +Le chariot disparaîtra\n\ +automatiquement lorsque\n\ +vous tomberez...")) + +DEFINE_DIALOG(DIALOG_140, 1, 6, 30, 200, _("\ +-Plate-forme de travail-\n\ +Droite: Entrée du\n\ +////Labyrinthe\n\ +////toxique.\n\ +Gauche: Trou Noir.\n\ +////Ascenseur 1.\n\ +Flèche: Votre position\n\ +////actuelle.")) + +DEFINE_DIALOG(DIALOG_141, 1, 4, 150, 200, _("\ +Vous avez récupéré une\n\ +des étoiles du château!\n\ +Vous pouvez désormais\n\ +ouvrir certaines portes!\n\ +Essayez celle de la\n\ +chambre de la Princesse\n\ +Peach, en haut à droite\n\ +dans le hall d'entrée...\n\ +Essayez aussi celle menant\n\ +au tableau de la\n\ +Forteresse de Whomp,\n\ +au rez-de-chaussée...\n\ +Les troupes de Bowser\n\ +sont encore nombreuses!\n\ +Il faut les arrêter à tout\n\ +prix! Courage...")) + +DEFINE_DIALOG(DIALOG_142, 1, 5, 150, 200, _("\ +Vous avez récupéré trois\n\ +étoiles de puissance!\n\ +Désormais, vous pouvez\n\ +ouvrir les portes marquées\n\ +d'un 『3』.\n\ +Vous pouvez aller et venir\n\ +dans les niveaux comme\n\ +bon vous semble...\n\ +\n\ +\n\ +Les ennemis qui vous\n\ +attendent seront de plus\n\ +en plus costauds!\n\ +Alors, prudence...")) + +DEFINE_DIALOG(DIALOG_143, 1, 5, 150, 200, _("\ +Vous avez récupéré huit\n\ +étoiles de puissance!\n\ +Vous pouvez désormais\n\ +ouvrir la porte marquée\n\ +d'une grosse étoile!\n\ +La Princesse est juste de\n\ +l'autre côté...\n\ +Pouvez-vous l'entendre\n\ +crier votre nom?\n\ +『Marioooooo!』")) + +DEFINE_DIALOG(DIALOG_144, 1, 5, 150, 200, _("\ +Vous avez récupéré 30\n\ +étoiles de puissance!\n\ +Vous pouvez désormais\n\ +ouvrir la porte marquée\n\ +d'une grosse étoile!\n\ +Mais avant de foncer\n\ +comme un dingue vers la\n\ +porte, êtes-vous sûr de\n\ +n'avoir rien oublié?\n\ +\n\ +Avez-vous enfoncé les\n\ +deux piliers? Avez-vous\n\ +toujours votre casquette?\n\ +\n\ +\n\ +Si vous l'avez perdue\n\ +dans le desert, allez\n\ +botter le croupion du\n\ +vilain vautour...\n\ +\n\ +On dit que Bowser s'est\n\ +réfugié dans les\n\ +profondeurs de l'océan...\n\ +L'avez-vous rencontré?")) + +DEFINE_DIALOG(DIALOG_145, 1, 6, 150, 200, _("\ +Vous avez récupéré 50\n\ +étoiles de puissance!\n\ +Vous pouvez désormais\n\ +ouvrir la porte marquée\n\ +d'une grosse étoile au\n\ +deuxième étage...\n\ +Avez-vous trouvé les trois\n\ +interrupteurs: rouge, vert\n\ +et bleu?\n\ +Les casquettes provenant\n\ +des blocs de couleur\n\ +peuvent être très utiles...\n\ +Allez, en route Mario...\n\ +Et que la force soit avec\n\ +toi, petit homme.")) + +DEFINE_DIALOG(DIALOG_146, 1, 5, 150, 200, _("\ +Vous avez récupéré 70\n\ +étoiles de puissance!\n\ +Désormais, vous pouvez\n\ +accéder en haut de\n\ +『l'escalier sans fin』...\n\ +Le terrible Bowser vous y\n\ +attend...\n\ +Etes-vous prêt à\n\ +l'affronter?")) + +DEFINE_DIALOG(DIALOG_147, 1, 6, 30, 200, _("\ +Faites-vous bon usage\n\ +des casquettes spéciales?\n\ +Elles peuvent vous être\n\ +très utiles...\n\ +\n\ +\n\ +Vous devez tout d'abord\n\ +rendre les blocs de couleur\n\ +solides en actionnant des\n\ +interrupteurs secrets...\n\ +\n\ +\n\ +Les blocs rouges vous\n\ +fourniront des casquettes\n\ +ailées, les bleus des\n\ +casquettes d'invisibilité,\n\ +et les verts des\n\ +casquettes-métal...")) + +DEFINE_DIALOG(DIALOG_148, 1, 6, 30, 200, _("\ +Montagne du Bonhomme de\n\ +neige.../DANGER!\n\ +Ne pas tenter le Triple\n\ +Saut au-dessus de la\n\ +machine à cracher des\n\ +glaçons...\n\ +Tomber dans le lac gelé\n\ +vous fera vite perdre de\n\ +l'énergie de façon\n\ +permanente.\n\ +Alors, attention!\n\ +-Le Bonhomme de neige-")) + +DEFINE_DIALOG(DIALOG_149, 1, 5, 30, 200, _("\ +Voici la Glissade Secrète\n\ +de la Princesse Peach!\n\ +Vous y trouverez une\n\ +étoile secrète que Bowser\n\ +n'a pas pu voler...\n\ +Pendant que vous\n\ +glisserez, appuyez vers\n\ +l'avant pour accélérer, et\n\ +vers l'arrière pour\n\ +ralentir...\n\ +Si vous glissez très vite,\n\ +vous découvrirez une\n\ +des étoiles secrètes du\n\ +château!")) + +DEFINE_DIALOG(DIALOG_150, 1, 4, 30, 200, _("\ +Whoa! Va-z'y, lui!\n\ +T' as inondé ma zon-mé!!!\n\ +Pourquoi t'as fait ça, yo!\n\ +T'es pas cool, toi?\n\ +Regarde! Mon toit est\n\ +fichu, et mon plancher\n\ +est trempé!\n\ +NoOoOoOoOoOoOon!!!\n\ +Ça me rend ouf de voir\n\ +ça! Complètement chtarbé!\n\ +C'est à cause de cette\n\ +étoile...\n\ +Je suis sûr qu'elle me\n\ +porte la poisse...\n\ +Saleté, va!")) + +DEFINE_DIALOG(DIALOG_151, 1, 6, 30, 200, _("\ +Ah non! Ça suffit!\n\ +D'abord tu me mouilles,\n\ +ensuite tu m'écrases la\n\ +face...\n\ +Grrrr! Pas cool, Bob.\n\ +Tu cherches le contact?")) + +DEFINE_DIALOG(DIALOG_152, 1, 2, 30, 200, _("\ +Gnaaaaa! Pov'type, va!\n\ +Tiens, la v'là ton étoile!\n\ +J'm'en fiche...\n\ +J'peux en avoir d'autres.\n\ +Allez, à la prochaine...\n\ +Cool, Abdoul.")) + +DEFINE_DIALOG(DIALOG_153, 1, 1, 30, 200, _("\ +Hé! Qui va là?\n\ +Qui me grimpe dessus?\n\ +Une mouche?\n\ +Un moustique?\n\ +Un cafard?\n\ +T'as intérêt à dégager!\n\ +Sinon j'te souffle dessus!")) + +DEFINE_DIALOG(DIALOG_154, 1, 5, 30, 200, _("\ +Accroche-toi à ta\n\ +casquette! Si jamais tu\n\ +la perds, retourne la\n\ +chercher là où tu l'as\n\ +perdue...\n\ +Sans elle tu peux te faire\n\ +très mal...\n\ +Alors, fais-y attention!\n\ +\n\ +\n\ +Au fait, la Princesse est\n\ +toujours emprisonnée dans\n\ +les murs du château!\n\ +Sauve-la, mon mignon\n\ +Mario rouge et bleu...\n\ +Heu... Tu savais qu'il\n\ +existe aussi des niveaux\n\ +dans les murs, hein?")) + +DEFINE_DIALOG(DIALOG_155, 1, 5, 30, 200, _("\ +Grâce au pouvoir des\n\ +étoiles, le château revient\n\ +peu à peu à la vie...\n\ +Je t'en prie Mario,\n\ +va affronter Bowser!\n\ +Connais-tu la salle du\n\ +miroir? Fais attention à\n\ +tout ce qui n'a pas de\n\ +reflet...\n\ +\n\ +Autre chose: rentre dans\n\ +le niveau Trempé-Séché\n\ +à l'aide d'un grand saut.\n\ +\n\ +Allez, courage camarade!")) + +DEFINE_DIALOG(DIALOG_156, 1, 3, 30, 200, _("\ +Le niveau de la pendule\n\ +est étrange...\n\ +\n\ +Fais attention à la\n\ +grande aiguille lorsque\n\ +tu rentres dans l'horloge.")) + +DEFINE_DIALOG(DIALOG_157, 1, 5, 30, 200, _("\ +Attention aux sables\n\ +mouvants!\n\ +Si vous vous faites\n\ +avaler, tâchez de ne pas\n\ +boire la tasse!\n\ +Les zones sombres sont\n\ +des trous sans fond...\n\ +Alors, prudence jeune\n\ +aventurier...")) + +DEFINE_DIALOG(DIALOG_158, 1, 6, 30, 200, _("\ +1. Si vous sautez de\n\ +façon répétée, vous\n\ +sauterez de plus en plus\n\ +haut. En courant et en\n\ +sautant trois fois, vous\n\ +ferez un Triple Saut.\n\ +2. Sautez contre un mur\n\ +et sautez à nouveau pour\n\ +créer une Impulsion.\n\ +Grâce à cette technique,\n\ +vous pourrez accéder à\n\ +des lieux en hauteur.")) + +DEFINE_DIALOG(DIALOG_159, 1, 4, 30, 200, _("\ +3. En vous arrêtant, en\n\ +appuyant sur [Z] et en\n\ +sautant, vous ferez un\n\ +Saut Périlleux en arrière.\n\ +Pour faire un Saut en\n\ +Longueur, courez, appuyez\n\ +sur [Z], puis sautez.")) + +DEFINE_DIALOG(DIALOG_160, 1, 3, 30, 200, _("\ +Appuyez sur [B] lorsque\n\ +vous courez pour faire\n\ +une attaque en glissade.\n\ +Pour vous remettre\n\ +debout, appuyez sur [A] ou\n\ +sur [B].")) + +DEFINE_DIALOG(DIALOG_161, 1, 4, 30, 200, _("\ +Mario!?!?!\n\ +C'est toi? Vraiment toi?\n\ +Ça fait un bout de temps\n\ +que je ne t'avais pas vu!\n\ +Tu as grossi, non?\n\ +On m'a dit de t'attendre\n\ +ici, mais je commençais\n\ +à perdre espoir...\n\ +Alors c'est vrai? Tu as\n\ +battu Bowser? Encore une\n\ +fois? Il n'abandonne\n\ +jamais ce gros reptile...\n\ +Tu as récupéré toutes les\n\ +étoiles? Tu as sauvé la\n\ +Princesse Peach?\n\ +T'es amoureux, non?\n\ +Tiens...\n\ +J'ai une lettre pour toi...\n\ +C'est peut-être une\n\ +admiratrice, qui sait?\n\ +『Merci d'avoir joué au\n\ +plus beau jeu de toute la\n\ +galaxie:\n\ +MARIO 64!!!\n\ +Il reste sûrement des\n\ +niveaux que vous ne\n\ +connaissez pas par coeur,\n\ +alors...\n\ +Voici quelques munitions!\n\ +A bientôt et merci!\n\ +--Les créateurs de\n\ +/Mario 64...")) + +DEFINE_DIALOG(DIALOG_162, 1, 2, 30, 200, _("\ +Oh, non!\n\ +Encore toi?\n\ +T'es amoureux, ou quoi?\n\ +Tu veux m'épouser?\n\ +Désolé, mais tu n'es pas\n\ +mon type...\n\ +Mon truc à moi, c'est les\n\ +femelles...\n\ +Ah! Tu veux peut-être\n\ +une étoile?\n\ +OK. Mais j'te préviens:\n\ +c'est la dernière fois!\n\ +Ah... Autre chose...\n\ +\n\ +LACHE-MOI!!!!!\n\ +GRANDE BRUTE!!!!!")) + +DEFINE_DIALOG(DIALOG_163, 1, 4, 30, 200, _("\ +NoOoOoOoOoOoOoOon!!!\n\ +Tu...tu...tu m'as battu?\n\ +Moi?!? C'est illogique!\n\ +C'est moi le plus grand!\n\ +Quoi? Il y avait 120\n\ +étoiles en tout?!?\n\ +Heu......\n\ +Je le savais!\n\ +Aaaargh! Le château\n\ +regagne tous ses pouvoirs,\n\ +c'est insupportable!\n\ +GnAaAaAaAaAaAaAaArgh!\n\ +A la prochaine, Mario...\n\ +Tu sais bien que je ne\n\ +suis pas du genre à\n\ +abandonner si facilement!\n\ +BWA HA HA HA HA HA HA!\n\ +GWA HI HA HI HOU HEU!\n\ +..... Atcha!")) + +DEFINE_DIALOG(DIALOG_164, 1, 4, 30, 200, _("\ +Beuuuuuuuu...\n\ +J'ai trop mangé, moi...\n\ +Beuuuuuuuu...\n\ +Mm? Qui es-tu?\n\ +Mario! Te voilà, rigolo!\n\ +Ça te dit une petite\n\ +course?\n\ +A moins que tu aies peur!\n\ +Alors, c'est d'accord?\n\ +Prêt...\n\ +\n\ +//Partez!//Heu, non!")) + +DEFINE_DIALOG(DIALOG_165, 1, 3, 30, 200, _("\ +Tourner autour du poteau\n\ +peut faire tourner les\n\ +têtes...")) + +DEFINE_DIALOG(DIALOG_166, 1, 4, 30, 200, _("\ +Je m'entraîne...\n\ +Je reviens plus tard...\n\ +\n\ +-- Koopa-Rapido --")) + +DEFINE_DIALOG(DIALOG_167, 1, 5, 30, 200, _("\ +En route vers le château!\n\ +\n\ +Appuyez sur [A] pour sauter\n\ +et sur [Z] pour vous\n\ +accroupir.\n\ +Appuyez sur [B] pour\n\ +attaquer ou pour attraper\n\ +quelque chose. Appuyez à\n\ +nouveau sur [B] pour lancer\n\ +ce que vous portez.")) + +DEFINE_DIALOG(DIALOG_168, 1, 6, 30, 200, _("\ +Hé! Lâche-moi un peu!\n\ +Ça fait deux fois que tu\n\ +t'essuies les pieds sur\n\ +ma tête!\n\ +Tu m'cherches ou quoi?\n\ +Coup d'boule!!!!")) + +DEFINE_DIALOG(DIALOG_169, 1, 5, 30, 200, _("\ +Dehors les touristes!\n\ +Cette caverne est très\n\ +dangereuse!!!\n\ +Alors... DE-HORS!\n\ +/ -- Le capitaine --")) diff --git a/text/jp/courses.h b/text/jp/courses.h new file mode 100644 index 0000000..53e81ff --- /dev/null +++ b/text/jp/courses.h @@ -0,0 +1,80 @@ +COURSE_ACTS(COURSE_BOB, _(" 1 ボムへいの せんじょう"), + _("やまのうえの ボムキング") , _("はくねつ ノコノコレ-ス") , _("そらのしままで ぶっとべ"), + _("8まいの あかコイン") , _("そらにはばたけ はねマリオ") , _("ワンワンの いぬごやで")) + +COURSE_ACTS(COURSE_WF, _(" 2 バッタンキングの とりで"), + _("いかりのバッタン キング") , _("とりでの てっぺんへ") , _("たいほうで ひとっとび"), + _("うきしまの 8まいコイン") , _("とりかごへ スト-ン") , _("たいほうで ぶっこわせ!")) + +COURSE_ACTS(COURSE_JRB, _(" 3 かいぞくの いりえ"), + _("ちんぼつせんの おたから") , _("でてこい きょだいウツボ") , _("かいていどうくつの おたから"), + _("うかんだフネの あかコイン") , _("いわのはしらへ ひとっとび") , _("ふきだす みずを くぐれ")) + +COURSE_ACTS(COURSE_CCM, _(" 4 さむいさむい マウンテン"), + _("ス-パ-スノ-スライダ-") , _("まいごの こペンギン") , _("ペンギン チャンピオンレ-ス"), + _("すべって 8まいあかコイン") , _("ゴロゴロ ゆきダルマ") , _("かくれ ス-パ- カベキック")) + +COURSE_ACTS(COURSE_BBH, _(" 5 テレサの ホラ-ハウス"), + _("おやかたテレサを さがせ") , _("テレサの メリ-ゴ-ランド") , _("ほんだなオバケの ナゾ"), + _("8まいコインは どこだ") , _("バルコニ-の ボステレサ") , _("かくしべやの おおめだま")) + +COURSE_ACTS(COURSE_HMC, _(" 6 やみにとける どうくつ"), + _("ドッシ-のいる ちていこ") , _("そうさリフトの あかコイン") , _("メタルで ダッシュ"), + _("ケムリめいろを ぬけて") , _("ケムリめいろの ひじょうぐち") , _("ゴロゴロいわの ひみつ")) + +COURSE_ACTS(COURSE_LLL, _(" 7 ファイアバブル ランド"), + _("おとせ ボスどんけつ") , _("たたかえ!どんけつたい") , _("15パズルの 8まいコイン"), + _("コロコロ まるたわたり") , _("かざんの パワ-スタ-") , _("かざんの リフトツア-")) + +COURSE_ACTS(COURSE_SSL, _(" 8 あっちっち さばく"), + _("いたずらハゲたか ジャンゴ") , _("ピラミッドの てっぺんで") , _("きょだいピラミッドの ないぶ"), + _("4つのはしらに たつものへ") , _("とびまわれ 8まいコイン") , _("きょだいピラミッドのナゾ")) + +COURSE_ACTS(COURSE_DDD, _(" 9 ウォ-タ- ランド"), + _("クッパの せんすいかん") , _("うずしおの たからばこ") , _("にげたクッパの あかコイン"), + _("ふきだす みずを くぐれ") , _("マンタの おくりもの") , _("ボウシが そろったら")) + +COURSE_ACTS(COURSE_SL, _("10 スノ-マンズ ランド"), + _("おおゆきダルマの おでこ") , _("こおりのくにの どんけつ") , _("こおりの オブジェ"), + _("つめたい いけを こえて") , _("コウラにのって あかコイン") , _("フワフワさんの おうち")) + +COURSE_ACTS(COURSE_WDW, _("11 みずびたシティ-"), + _("ビリビリの まめリフト") , _("トップオブ ザ シティ-") , _("あさせと そらのシ-クレット"), + _("いそげ!かなあみエレベ-タ-") , _("ダウンタウンの あかコイン") , _("ダウンタウンを かけろ")) + +COURSE_ACTS(COURSE_TTM, _("12 たかいたかいマウンテン"), + _("たかいたかい やまのうえ") , _("いたずらザル ウッキィのオリ") , _("おばけキノコの あかコイン"), + _("マウンテン スライダ-") , _("はしのうえから みわたせば") , _("ぶっとべ はなれキノコへ")) + +COURSE_ACTS(COURSE_THI, _("13 ちびでか アイランド"), + _("きょだいパックンフラワ-") , _("デカじまの てっぺんで") , _("ノコノコ リタ-ンマッチ"), + _("チビじまの 5シ-クレット") , _("ハナチャンの あかコイン") , _("イカリの ハナチャン")) + +COURSE_ACTS(COURSE_TTC, _("14 チックタックロック"), + _("グルグル かごのなかへ") , _("ふりこの へや") , _("チックタックはりの うえ"), + _("えっへん てっぺん ドッスン") , _("つきだしを のりこえて") , _("00ふんの あかコイン")) + +COURSE_ACTS(COURSE_RR, _("15 レインボ- クル-ズ"), + _("にじを わたる ふね") , _("てんくうの おやしき") , _("タテめいろの あかコイン"), + _("カゼきる きょだいブランコ") , _("おおぞら アスレチック") , _("にじの かなたの しま")) + +SECRET_STAR(COURSE_BITDW, _(" やみの せかいの クッパ")) +SECRET_STAR(COURSE_BITFS, _(" ほのおの うみの クッパ")) +SECRET_STAR(COURSE_BITS, _(" てんくうの たたかい!")) +SECRET_STAR(COURSE_PSS, _(" ピ-チのかくれスライダ-")) +SECRET_STAR(COURSE_COTMC, _(" メタルスイッチの たき")) +SECRET_STAR(COURSE_TOTWC, _(" はばたけ!はねスイッチへ")) +SECRET_STAR(COURSE_VCUTM, _(" おほりのとうめいスイッチ")) +SECRET_STAR(COURSE_WMOTR, _(" にじ かける はねマリオ")) +SECRET_STAR(COURSE_SA, _(" おさかなと いっしょ")) +SECRET_STAR(COURSE_CAKE_END, _(" おいしいケ-キ")) + +CASTLE_SECRET_STARS(_(" おしろのかくれスタ-")) + +EXTRA_TEXT(0, _("おしろのかくれスタ-")) +EXTRA_TEXT(1, _("100まいコインの スタ-")) +EXTRA_TEXT(2, _("マウンテンのへやが ひらく!")) +EXTRA_TEXT(3, _("みずとゆき2つのへやが ひらく!")) +EXTRA_TEXT(4, _("おおきなほしの ドアがひらく!")) +EXTRA_TEXT(5, _("クッパへの とびらがひらく!")) +EXTRA_TEXT(6, _("3がいへの とびらがひらく!")) diff --git a/text/jp/debug.c.in b/text/jp/debug.c.in deleted file mode 100644 index c76fc1a..0000000 --- a/text/jp/debug.c.in +++ /dev/null @@ -1,35 +0,0 @@ -// 0x020087E4 -static const u8 Debug0[] = { - _("STAGE SELECT\n" - " つづける?\n" - " 1 マウンテン\n" - " 2 ファイア-バブル\n" - " 3 スノ-スライダ-\n" - " 4 ウォ-タ-ランド\n" - " クッパ1ごう\n" - " もどる") -}; - - -// 0x0200883C -static const u8 Debug1[] = { - _("PAUSE \n" - " つづける?\n" - " やめる ?") -}; - - -// debug text table -static const struct DialogEntry debug_text_entry_0 = { - 1, 8, 30, 200, Debug0 -}; - -static const struct DialogEntry debug_text_entry_1 = { - 1, 3, 100, 150, Debug1 -}; - - -const struct DialogEntry *const seg2_debug_text_table[] = { - &debug_text_entry_0, &debug_text_entry_1, NULL, -}; - diff --git a/text/jp/dialog.c.in b/text/jp/dialog.c.in deleted file mode 100644 index cbf9503..0000000 --- a/text/jp/dialog.c.in +++ /dev/null @@ -1,3127 +0,0 @@ -// dialogs -// 0x02008884 -static const u8 Dialog000[] = { - _("おおっと,ここはキケンな\n" - "せんじょうの どまんなか。\n" - "『え』のなかのせかいには\n" - "クッパが ぬすんだ\n" - "パワ-スタ-がある。\n" - "まずは,あかいボムへいに\n" - "はなしかけてみるといい!\n" - "Bボタンではなしができる。\n" - "きっと,ちからになって\n" - "くれるはずだ。\n" - "カンバンを よむときも\n" - "たちどまって Bボタン!\n" - "AかBボタンですすめる!\n" - "まえにたつだけで はなし\n" - "かける,どうぶつもいます。") -}; - - -// 0x02008958 -static const u8 Dialog001[] = { - _("あぶない あぶない!!\n" - "こんなところを うろうろ\n" - "してると,みずばくだんが\n" - "ふってきますよ。\n" - "くろいボムへいたちは\n" - "たたかいが だいすきで,\n" - "いつも ぼくらを\n" - "こうげきしてきます。\n" - "ボムキングという ボスが\n" - "スタ-を てにいれてから\n" - "ここは せんじょうに\n" - "なってしまいました。\n" - "ボムキングから スタ-を\n" - "とりあげてくれませんか?\n" - "このさきの はしをわたり\n" - "みちぞいにひだりにいけば,\n" - "ボムとりでの いりぐちに\n" - "つきます。キングのスタ-\n" - "を とりもどしたら また\n" - "あいに きてください。") -}; - - -// 0x02008A68 -static const u8 Dialog002[] = { - _("ちょっと あなた!\n" - "このさきはキケンですよ!\n" - "\n" - "そこで,アドバイスです。\n" - "そらから ふってくる\n" - "みずばくだんをよけて,\n" - "はしを『2つ』わたると\n" - "あちらの『じんち』です。\n" - "やまのうえのボムキングは\n" - "すごく ちからもちです。\n" - "かつぎあげられないように\n" - "きをつけてください。\n" - "ぼくら あかボムへいは\n" - "あなたのみかたです。\n" - "いつでも はなしかけて\n" - "きてくださいね!") -}; - - -// 0x02008B34 -static const u8 Dialog003[] = { - _("おかげで ボムキングは\n" - "おとなしくなりました!\n" - "でも,たたかいは おわり\n" - "ません。 かいぶつたちが\n" - "まだスタ-をもっています。\n" - "スタ-をいくつかとったら\n" - "あたらしい へやのドアを\n" - "ひらくことが できます。\n" - "つぎのへやの せかいへと\n" - "すすんでください!\n" - "ぼくらのなかまが\n" - "おまちしています。\n" - "はなしかけて くださいね。\n" - "いつでも たいほうを\n" - "じゅんびしますよ。") -}; - - -// 0x02008BFC -static const u8 Dialog004[] = { - _("ぼくたちは へいわを\n" - "ねがっています。 だから\n" - "たいほうは つかいません。\n" - "けれど あなたをどこかに\n" - "とばすなら へいきです。\n" - "どうぞ つかってください。\n" - "このコ-スにあるすべての\n" - "あかボムぐん たいほうを\n" - "つかえるように します。") -}; - - -// 0x02008C80 -static const u8 Dialog005[] = { - _("な-んだ,マリオさんじゃ\n" - "ないッスか!\n" - "ボムキングやっつけたって\n" - "ほんと-ッスか?\n" - "いや- すごいッス!\n" - "さっすが つよいし,\n" - "オイラほどではないけど,\n" - "あしも はやいッスよね!\n" - "ひとつオイラと,\n" - "ボムキングのヤツがいた\n" - "おやまのちょうじょうまで\n" - "かけっこでもしませんか?\n" - "それでは オイラが,\n" - "『ドン!』といったら\n" - "スタ-ト ッスよ。\n" - "\n" - " ヨ---イ!\n" - "\n" - " ドン! やめる") -}; - - -// 0x02008D54 -static const u8 Dialog006[] = { - _("ははっ ズルッコは\n" - "なしッス! マリオさん。\n" - "またこんど\n" - "あそびましょうね。") -}; - - -// 0x02008D80 -static const u8 Dialog007[] = { - _("ハア ハア ハア\n" - "いや-まいったッス!\n" - "ほんと はえ-ッスね!\n" - "オイラに かったきねんに,\n" - "これ,あげるッス。\n" - "ホイ!") -}; - - -// 0x02008DC0 -static const u8 Dialog008[] = { - _("もうけんワンワン キケン\n" - "Cボタンの うえをおして\n" - "『マリオのちかく』から\n" - "ながめて ください。\n" - "とても コワイです。\n" - "クイのうえの あかコイン。\n" - "おなじコインを さがして\n" - "8まいあつめると,はしを\n" - "わたったひだりのはやしに\n" - "スタ-がでます。") -}; - - -// 0x02008E44 -static const u8 Dialog009[] = { - _("ひっさしぶりッス! いま\n" - "ちょ-どかえったとこッス。\n" - "パワ-スタ-のせいか\n" - "いちだんと はやくなった\n" - "ようッスね!\n" - "このまえは まけちゃって\n" - "ほ-んと くやしいッス。\n" - "ここは オイラのホ-ム\n" - "グランド!じしんあるッス。\n" - "もいちどやりましょうよ!\n" - "ゴ-ルはカゼふきのたに!\n" - "しってるッスよね!?\n" - "そんじゃ\n" - " ヨ---イ!\n" - " ドン! やめる") -}; - - -// 0x02008EFC -static const u8 Dialog010[] = { - _("そらを じゆうにとべる\n" - "『はねのぼうし』の\n" - "スイッチを ふみました。\n" - "せかいじゅうにある\n" - "あかブロックから,はねの\n" - "ぼうしがとびだします。\n" - "ここまでをセ-ブする?\n" - "\n" - " はい いいえ") -}; - - -// 0x02008F68 -static const u8 Dialog011[] = { - _("むてきの からだになれる\n" - "『メタルのぼうし』の\n" - "スイッチを ふみました。\n" - "せかいじゅうの みどりの\n" - "ブロックから,メタルの\n" - "ぼうしが とびだします。\n" - "ここまでをセ-ブする?\n" - "\n" - " はい いいえ") -}; - - -// 0x02008FD8 -static const u8 Dialog012[] = { - _("すがたをけせる まほうの\n" - "『とうめいのぼうし』の\n" - "スイッチを ふみました。\n" - "せかいじゅうの あおい\n" - "ブロックから,とうめい\n" - "ぼうしが とびだします。\n" - "ここまでをセ-ブする?\n" - "\n" - " はい いいえ") -}; - - -// 0x02009048 -static const u8 Dialog013[] = { - _("100まいコインの\n" - "スタ-を てにいれた!\n" - "おしろのパワ-が\n" - "またひとつマリオに\n" - " ちからを あたえた。\n" - "\n" - "ここまでセ-ブしますか?\n" - "\n" - " はい いいえ") -}; - - -// 0x020090A0 -static const u8 Dialog014[] = { - _("おもわぬところで\n" - "スタ-をてにいれた。\n" - "そして おしろのパワ-が\n" - "またひとつ マリオに\n" - " ゆうきを あたえた。\n" - "\n" - "ここまでセ-ブしますか?\n" - "\n" - " はい いいえ") -}; - - -// 0x020090FC -static const u8 Dialog015[] = { - _("てきはパンチでたおせるよ。\n" - "Aボタンは『ジャンプ』\n" - "Bボタンは『パンチ』です。\n" - "AとBボタンで『キック』。\n" - "『ものをもつ』ときも\n" - " Bボタン!\n" - "『なげる』は もういちど\n" - "Bボタンをおしてください。") -}; - - -// 0x02009174 -static const u8 Dialog016[] = { - _("キラキラひかったコウラに\n" - "のると,どんなところも\n" - "スイスイすすめる!\n" - "てきをけちらし すすめ!") -}; - - -// 0x020091A8 -static const u8 Dialog017[] = { - _("ワシがボムキング,つまり\n" - "ばくだんの おうさまだ。\n" - "よくここまできた。その\n" - "ゆうきは ほめてやろう。\n" - "とはいえ,おまえにタダで\n" - "だいじな パワ-スタ-を\n" - "やるわけには いかん。\n" - "そこで チャンスをやろう。\n" - "パワ-スタ-がほしければ\n" - "ワシを なげとばしてみろ。\n" - "うしろから かつげるか?\n" - "さあ,かかってこい!") -}; - - -// 0x02009258 -static const u8 Dialog018[] = { - _("ねむいので,ねています。\n" - "おこすと おこります。\n" - "\n" - "しずかに あるきましょう。") -}; - - -// 0x02009284 -static const u8 Dialog019[] = { - _("ろうかは しずかに\n" - "あるきましょう。") -}; - - -// 0x02009298 -static const u8 Dialog020[] = { - _("おしろへ あそびに\n" - "きてください。\n" - "ケ-キを つくって\n" - "まってます。\n" - " -ピ-チより-") -}; - - -// 0x020092CC -static const u8 Dialog021[] = { - _("ようこそいらっしゃいませ\n" - "・・だれも いませんので\n" - "とっとと\n" - " おかえりください。\n" - "ガハハハッ!") -}; - - -// 0x02009304 -static const u8 Dialog022[] = { - _("カギが かかっている・・") -}; - - -// 0x02009314 -static const u8 Dialog023[] = { - _("・・・カギがあわない!\n" - "このカギは『ちか』への\n" - "カギのようだ。") -}; - - -// 0x0200933C -static const u8 Dialog024[] = { - _("クッパがとじたこのドアを\n" - "ひらくには,スタ-の\n" - "パワ-が ひつようです。\n" - "どこかのへやの『え』の\n" - "なかの モンスタ-から\n" - "とりもどしてきてください") -}; - - -// 0x02009390 -static const u8 Dialog025[] = { - _("このドアを ひらくには\n" - "スタ-3まいの パワ-が\n" - "ひつようです。\n" - "あと[%]まいの スタ-が\n" - "ひつようです。") -}; - - -// 0x020093CC -static const u8 Dialog026[] = { - _("このドアを ひらくには\n" - "スタ-8まいの パワ-が\n" - "ひつようです。\n" - "あと[%]まいの スタ-が\n" - "ひつようです。") -}; - - -// 0x02009408 -static const u8 Dialog027[] = { - _("このドアを ひらくには\n" - "スタ-30まいのパワ-が\n" - "ひつようです。\n" - "スタ-があと\n" - "[%]まいひつようです。") -}; - - -// 0x02009444 -static const u8 Dialog028[] = { - _("このドアを ひらくには\n" - "スタ-50まいのパワ-が\n" - "ひつようです。\n" - "あと[%]まいの スタ-が\n" - "ひつようです。") -}; - - -// 0x02009480 -static const u8 Dialog029[] = { - _("はてしない かいだんの\n" - "ドアを ひらくには\n" - "スタ-70まいのパワ-が\n" - "ひつようです・・・・・\n" - "あと[%]まいの スタ-が\n" - "たりません・・・\n" - "ガハハッ!") -}; - - -// 0x020094D4 -static const u8 Dialog030[] = { - _("カメラマンのジュゲムです。\n" - "ちょっと アドバイス!\n" - "しずかにあるきたいときは\n" - "ゆっくり あるくことです。\n" - "まわりを みたいときは\n" - "Cボタンのみぎとひだりで\n" - "カメラをすこしまわせます。\n" - "Cのしたで とおくから。\n" - "できないところでは\n" - "『ブ-ッ!』といいます。\n" - "よろしく!! \n" - " -ジュゲム") -}; - - -// 0x0200957C -static const u8 Dialog031[] = { - _("またまた まけちゃったよ。\n" - "こんどはスッゴい じしん\n" - "あったんッスけどね・・・\n" - "ほんと すごいッスね!\n" - "このスタ-も\n" - "あげちゃいます!") -}; - - -// 0x020095C8 -static const u8 Dialog032[] = { - _("はねぼうしの あるひとは\n" - "3かいれんぞくでジャンプ\n" - "しよう。 おおぞらたかく\n" - "とびあがれます。\n" - "たいほうでとぶと\n" - "さらに たかくとべます。\n" - "まわりをみるのはCボタン。\n" - "おりたいときはZボタン。") -}; - - -// 0x02009638 -static const u8 Dialog033[] = { - _("ワ-プどかんを\n" - "くぐりぬけ,\n" - "ピ-チの おしろに\n" - "つきました。\n" - "そうさは カンタン。\n" - "Aボタンが ジャンプ!\n" - "Bボタンで こうげき!\n" - "カンバンも よめます。\n" - "マリオを うごかすのは\n" - "まんなかに ついてる\n" - "『3Dスティック』。\n" - "まずはおしろへ すすめ!") -}; - - -// 0x020096C4 -static const u8 Dialog034[] = { - _("こんにちは! \n" - "ぼくたちカメラマンの\n" - "ジュゲムブラザ-ズです。\n" - "これから,カメラをもって\n" - "あなたに ついていきます。\n" - "カメラは おすすめのいち\n" - "から さつえいしてます。\n" - "むきをかえるのはCボタン,\n" - "かえられない ときは\n" - "『ブ-ッ!』といいます。\n" - "ちょっと たちどまったら\n" - "Cボタンのうえ!\n" - "まわりを ながめられます。\n" - "ゲ-ムに もどすときは\n" - "『Aボタン』です。\n" - "『Rボタン』をつかうと\n" - "いろんなカメラモ-ドに\n" - "きりかえられます。\n" - "また,かんばんなどをみて\n" - "おぼえてください!\n" - "いじょう!! カメラマン\n" - "ジュゲムブラザ-ズからの\n" - "おしらせでした。\n" - "それじゃ,きをつけて!") -}; - - -// 0x02009800 -static const u8 Dialog035[] = { - _("きいろい4つの Cボタン。\n" - "『うえ』をおすと\n" - "3Dスティックで\n" - "まわりを みわたせます。\n" - "ふだんマリオをみてるのは\n" - "おすすめのジュゲムカメラ。\n" - "Cボタンで すこし,\n" - "かくどが かえられます。\n" - "Rボタンをおすと\n" - "マリオの うしろからみる\n" - "マリオカメラに なります。\n" - "もどすときはもういちどR。\n" - "『ジュゲムカメラ』と\n" - "『マリオカメラ』どちらも\n" - "Cボタンの したをおすと,\n" - "とおくへ はなれます。\n" - "いまつかっている\n" - "カメラを しりたいときは,\n" - "がめん みぎしたの\n" - "アイコンを みてください。") -}; - - -// 0x02009908 -static const u8 Dialog036[] = { - _(" 『てんぼうだい』\n" - "Cボタンの うえをおすと,\n" - "まわりを みわたせます。\n" - "みえないところは よ-く\n" - "たしかめてからすすめ-!\n" - "Rボタンはマリオのカメラ。\n" - "いつも マリオのうしろを\n" - "ついていくぞ。ジュゲムに\n" - "もどすときは もういちど\n" - "Rボタンをおすこと。\n" - "ポ-ズがめんで モ-ドを\n" - "かえると,Rボタンを\n" - "おしてるあいだ カメラを\n" - "『とめる』こともできる!\n" - "ためしてみよう。\n" - "つかってるカメラモ-ドは\n" - "みぎしたのアイコンで\n" - "たしかめよう。\n" - "マリオとの きょりは\n" - "きいろやじるしを みよう。") -}; - - -// 0x02009A14 -static const u8 Dialog037[] = { - _("あたしの『かち』です。\n" - "あなたの『まけ』です。\n" - "ははははは!!!\n" - "マリオさん,と-っても\n" - "おしかったですね。\n" - "また あそびましょう!") -}; - - -// 0x02009A5C -static const u8 Dialog038[] = { - _("パワ-スタ-の ちからで\n" - "つぎの せかいへのドアは\n" - "しずかにひらいた。") -}; - - -// 0x02009A88 -static const u8 Dialog039[] = { - _("-ボムとりで いりぐち-\n" - " だれも はいるな!\n" - "\n" - "ワシのパワ-スタ-は\n" - "だれにも わたさぬ。\n" - "クッパどのからいただいた\n" - "だいじな だいじな\n" - "たからものだ。\n" - "なんまいか かくしたが\n" - "ばしょは おしえぬ。\n" - "コ-スはじめの スタ-の\n" - "なまえを,ヒントにする\n" - "ぐらいなら ゆるす。\n" - "\n" - "おやまのうえのボムキング") -}; - - -// 0x02009B34 -static const u8 Dialog040[] = { - _("このさき キケン!\n" - "リフトのたにぞこ です。") -}; - - -// 0x02009B50 -static const u8 Dialog041[] = { - _("オイラがかっちゃいました。\n" - "ハッハッハッ\n" - "たいしたことないッスね!\n" - "じゃ,またこんどね!") -}; - - -// 0x02009B80 -static const u8 Dialog042[] = { - _("この『はし』せまい。\n" - "ゆっくりわたろう!\n" - "ガケのカドにとびついたり\n" - "ゆっくりと おりると\n" - "ぶらさがれます。\n" - "『て』を はなすときは\n" - "Zボタンか スティックを\n" - "マリオのうしろへ。\n" - "のぼるときには まえへ\n" - "たおしてください。\n" - "ぶらさがって すぐに\n" - "Aボタンをおすと\n" - "すばやく あがれます。") -}; - - -// 0x02009C20 -static const u8 Dialog043[] = { - _("ジャンプしてAボタンを\n" - "おしっぱなしに すると\n" - "ぶらさがれる ところが\n" - "あります。\n" - "『とり』につかまるとき\n" - "と おなじです。") -}; - - -// 0x02009C68 -static const u8 Dialog044[] = { - _("だれだい! せっかく\n" - "いいきもちで ねてたのに。\n" - "あ- カラダがおもいな-\n" - "ちょ-どいいや!わたしと\n" - "ひと-っとび しません?\n" - "ジャンプボタンを\n" - "おしているあいだ\n" - "ぶらさがれますよ-。\n" - "おりたいときに\n" - "はなせばい-です。\n" - "お-すきなところへ\n" - "おつれしま-す。\n" - "かげを よ-くみて\n" - "Aボタンで つかまって\n" - "くださいね-!") -}; - - -// 0x02009D1C -static const u8 Dialog045[] = { - _("あ-あ,つかれた-・・\n" - "や-っぱり おもいな-。\n" - "きょうは このあたりで!\n" - "『もういちどAボタンを\n" - "おしなおしてください。』\n" - "もうすこし とんだら\n" - "ほんとに てをはなしてね\n" - "\n" - "じゃあ,さよなら-!") -}; - - -// 0x02009D88 -static const u8 Dialog046[] = { - _("ジャンプのワザ まとめて\n" - "せいりしておきます。\n" - "とてもだいじな3つのワザ。\n" - "おぼえて つかって\n" - "みてください。\n" - "タイミングよく つづけて\n" - "とぶと たかくとべます。\n" - "はやく はしっていると\n" - "さらに たかくとべます。\n" - "『3だんとび』です。\n" - "はしりながら Zボタンで\n" - "しゃがんでジャンプすると\n" - "とおくへ とべます。\n" - "『はばとび』です。\n" - "とてもべんりです。\n" - "まっすぐたった カベに\n" - "むかって ジャンプして,\n" - "ぶつかった ところから\n" - "また ジャンプできます。\n" - "『カベキック』といいます。\n" - "だいじな テクニック\n" - "『3だんとび』\n" - "『はばとび』\n" - "『カベキック』\n" - " わかった?") -}; - - -// 0x02009ED4 -static const u8 Dialog047[] = { - _("こんにちは!\n" - "たいほうの じゅんびに\n" - "かかります!・・・・・") -}; - - -// 0x02009EF8 -static const u8 Dialog048[] = { - _("ここは ツルツルすべる\n" - "ゆきやまの ちょうじょう。\n" - "まずはそこの\n" - "やまごやへ どうぞ。") -}; - - -// 0x02009F2C -static const u8 Dialog049[] = { - _("ジャンプわざカベキックを\n" - "おぼえていますか?\n" - "たかいところへ あがる\n" - "とてもだいじなテクニック。\n" - "カベからカベへジャンプ!\n" - "スティックをつかって\n" - "はねかえったほうに\n" - "かそくする。\n" - "よ-く\n" - "れんしゅう しておこう!") -}; - - -// 0x02009FA4 -static const u8 Dialog050[] = { - _("Zボタンで しゃがめます。\n" - "『さか』では すべれます。\n" - "ジャンプの とちゅうなら\n" - "『ヒップドロップ』!!\n" - "とまって しゃがんでから\n" - "ジャンプすると\n" - "『バックちゅう』できる!\n" - "わかった? まだあります。\n" - "はしりながら しゃがんで\n" - "ジャンプで『はばとび』!\n" - "しゃがんでから あるくと\n" - "・・・ひみつです。") -}; - - -// 0x0200A058 -static const u8 Dialog051[] = { - _("『き』や『ぼう』には\n" - "ジャンプで つかまれます。\n" - "『のぼる』『おりる』は\n" - "スティックで,やめるのは\n" - "Zボタンで『て』をはなす。\n" - "『むきをかえる』ときは\n" - " 3Dスティックの\n" - " みぎ と ひだり。\n" - "Aボタンで『せなか』の\n" - "ほうこうにジャンプします。\n" - "テッペンで もういちど\n" - "スティックを うえにいれ,\n" - "『さかだち』ができる。\n" - "むきをきめて せなかの\n" - "ほうこうに ジャンプだ!") -}; - - -// 0x0200A12C -static const u8 Dialog052[] = { - _("Zボタンで しゃがめます。\n" - "とまって しゃがんでから\n" - "ジャンプすると,\n" - "『バックちゅう』できる!\n" - "すばやくユ-タ-ンを\n" - "しながら,ジャンプすると\n" - "『ちゅうがえり』!\n" - "どちらも たかくとべます。") -}; - - -// 0x0200A1A0 -static const u8 Dialog053[] = { - _("コインリングや かくれた\n" - "シ-クレットポイントを\n" - "とおると あかいすうじが\n" - "でてきます。5こつづけて\n" - "とおると ひみつのスタ-\n" - "が あらわれます。") -}; - - -// 0x0200A1F4 -static const u8 Dialog054[] = { - _("スライダ-へようこそ!!\n" - "さかを すべりはじめたら\n" - "スティックまえで かそく,\n" - "うしろで げんそくできる。") -}; - - -// 0x0200A234 -static const u8 Dialog055[] = { - _("あたし,このスライダ-の\n" - "せかいチャンピオン!!!\n" - "からだ,デカイけど\n" - "とっても はやいよ!\n" - "あなたチャレンジします?\n" - "それでは!\n" - "\n" - " レディ---・・・!\n" - " ・・・ \n" - " ゴ-!! やめとく") -}; - - -// 0x0200A2A0 -static const u8 Dialog056[] = { - _("ヒエ---ッ!!!\n" - "セカイきろくだよ!\n" - "スゴイよ!あなた!!\n" - "きんメダルの かわりに\n" - "コレ あげます!\n" - "いや--スゴイスゴイ!!") -}; - - -// 0x0200A2E8 -static const u8 Dialog057[] = { - _("どこかで うちのこどもを\n" - "みかけません でしたか?\n" - "・・・わたしんち こども\n" - "いっぱい いましてね・・\n" - "なんびき いたのかも\n" - "おぼえてなくて・・・・\n" - "ほんとに・・\n" - "どこへ いったんでしょう。\n" - "だいてやると\n" - "とても いいこえで\n" - "なくんですけどね・・・\n" - "ヤレヤレ・・・・・") -}; - - -// 0x0200A380 -static const u8 Dialog058[] = { - _("ああ--っ!!たしかに\n" - "うちの こどもです・・・\n" - "『こらっ! いつも\n" - "ちかくで あそびなさいと\n" - "いってるだろ!』\n" - "あなた とっても\n" - "いいひとです。 おれいに\n" - "これを さしあげます。\n" - "あったかくって とても\n" - "げんきに なりますよ。") -}; - - -// 0x0200A3FC -static const u8 Dialog059[] = { - _("このこは うちのこじゃ-\n" - "ないようだなあ・・・\n" - "かわいそうに・・・\n" - "おやはいったい\n" - "なにをしてるんだろう・・") -}; - - -// 0x0200A438 -static const u8 Dialog060[] = { - _("-みずにはいるちゅうい-\n" - "\n" - "もぐっていると しぬほど\n" - "くるしくなってきます。\n" - "すいめんに あがるか\n" - "アブクをみつけて\n" - "さわってください。\n" - "ひといき つけます。\n" - "およぐときは Aボタン!\n" - "おしてるだけでも すすみ\n" - "タイミングよく おすと\n" - "スピ-ドがでます。\n" - "もぐるときはスティックを\n" - "まえにたおして Aボタン。\n" - "うかぶときはスティックを\n" - "てまえにひいて Aボタン。\n" - "すいめんに いるときは\n" - "ジャンプします。\n" - " 『じゅんびたいそう\n" - " わすれずに!!』") -}; - - -// 0x0200A534 -static const u8 Dialog061[] = { - _("つめたいみず キケン!!\n" - "およいでは いけません!\n" - "この こおりのいけは\n" - "とびあがるぐらい\n" - "つめたいです!\n" - " ペンギン") -}; - - -// 0x0200A580 -static const u8 Dialog062[] = { - _("みどりの ブロックに\n" - "かくされている\n" - "ふしぎな ふしぎな\n" - "『メタルのぼうし』。\n" - "\n" - "ひをつけたってもえないし\n" - "てきのたまも はねかえす。\n" - "いきを とめても\n" - "へいきです。\n" - "こまったことにおよげない。") -}; - - -// 0x0200A5EC -static const u8 Dialog063[] = { - _("あおいブロックには\n" - "『とうめいぼうし』。\n" - "メダマも ビックリ\n" - "すがたをけせる。\n" - "テレサも まっさお\n" - "『ひみつのカベ』を\n" - "とおりぬけるぞ。") -}; - - -// 0x0200A638 -static const u8 Dialog064[] = { - _("あかいブロックのなかの\n" - "はねのぼうしを かぶると,\n" - "3かいジャンプで\n" - "そらたかく とびあがれる。\n" - "そうさはスティックで!\n" - "てまえにひくと あがる。\n" - "まえにたおすと さがる。\n" - "やめるときはZボタンで!") -}; - - -// 0x0200A6AC -static const u8 Dialog065[] = { - _("およぎかた おしえます。\n" - "\n" - "みずにはいるとおよげます。\n" - "ながいあいだ『もぐる』と\n" - "くるしくなります。\n" - "すすむためには Aボタン。\n" - "タイミングよく おすと\n" - "スピ-ドが でます。\n" - "3Dスティックを まえに\n" - "たおすと もぐります。\n" - "すいめんに もどったり,\n" - "みずから あがるときは\n" - "てまえにひいて Aボタン。\n" - "すいめんでジャンプだ!\n" - "\n" - "Aボタン おしっぱなしに\n" - "していても,およげます。\n" - "らくちんです。\n" - "およいでいるあいだは\n" - "ドアを あけられません。") -}; - - -// 0x0200A7A8 -static const u8 Dialog066[] = { - _("マリオ! クッパのはく\n" - "ほのおに きをつけて!\n" - "クッパを こらしめるには\n" - "うしろにまわりBボタンで\n" - "シッポをつかむのよ!\n" - "なげとばす まえには\n" - "3Dスティックで\n" - "グリグリふりまわすの。\n" - "はやく まわすほど\n" - "とおくまで とぶわ!\n" - "Cボタンで まわりを\n" - "よ-くみて!\n" - "なげとばした クッパは\n" - "4すみの バクダンに\n" - "ぶつけてやるの!\n" - "ねらいを\n" - "よ-くさだめて・・・\n" - "\n" - "もういちどBボタンよ!") -}; - - -// 0x0200A884 -static const u8 Dialog067[] = { - _("ざんねんだったなマリオ!\n" - "ここには ピ-チちゃんは\n" - "いませんでした。\n" - " ガハハッ!!\n" - "わがはいの うしろに\n" - "まわりこんで シッポを\n" - "つかめるものなら\n" - "つかんでみるんだな。\n" - "スティックでグリグリ\n" - "まわして なげるなど\n" - "できるわけが ない!!\n" - " ガハハッ!!") -}; - - -// 0x0200A91C -static const u8 Dialog068[] = { - _("ここは しゃくねつの\n" - "ファイアバブル ランド!\n" - "からだに ひがついても\n" - "おちないように あわてず\n" - "そうさしよう。\n" - "ほのおのいけに おちると\n" - "はねあがる! そうさは\n" - "できるので,おちついて。\n" - "あまりうごきまわらないで\n" - "ガンバレ!") -}; - - -// 0x0200A99C -static const u8 Dialog069[] = { - _("『え』のなかのカイブツの\n" - "せかいには,せかいの\n" - "はてがあります。\n" - "みえないカベにあたったら\n" - "きっと そこが\n" - "『え』のせかいのはてです。\n" - "そらを とんでいるときも\n" - "そこから さきには\n" - "すすめません。") -}; - - -// 0x0200AA08 -static const u8 Dialog070[] = { - _("かいぶつたちの すんでる\n" - "『え』のなかのせかいから,\n" - "おしろの いりぐちの\n" - "メインホ-ルに\n" - "いつでも もどれます。\n" - "かならず きちんと\n" - "たちどまってから!\n" - "スタ-トボタンでポ-ズし,\n" - "『コ-スからでる』を\n" - "えらんでください。\n" - "ひとつのせかいのスタ-は\n" - "ぜんぶ とらなくても,\n" - "つぎのせかいにすすめます。\n" - "じょうずになったら,また\n" - "もどってきてください。\n" - "スタ-を1つ とるごとに\n" - "つぎのスタ-のヒントが\n" - "スタ-トがめんに でます。\n" - "えらんだヒントいがいの\n" - "スタ-をとってもOKです。") -}; - - -// 0x0200AB18 -static const u8 Dialog071[] = { - _(" -このさきキケン-\n" - " あやしいケムリに\n" - " ちゅうい!\n" - " いきができません!\n" - "くるしくなったら\n" - "たかいところへ!\n" - "まる・・・・・ひなんじょ\n" - "やじるし・・・でいりぐち") -}; - - -// 0x0200AB74 -static const u8 Dialog072[] = { - _("カゼつよし! ぼうしは\n" - "しっかり かぶりましょう。\n" - "もし ぼうしをなくしても\n" - "ここでなくした ぼうしは\n" - "このやまで みつかります。") -}; - - -// 0x0200ABC0 -static const u8 Dialog073[] = { - _("ただしい じゅんばんで\n" - "はこを ひらくこと。\n" - "こたえは だれにも\n" - "おしえてやらない。\n" - " --せんちょう--") -}; - - -// 0x0200AC00 -static const u8 Dialog074[] = { - _("ガケのカドに とびつくと\n" - "ぶらさがれます。\n" - "おりるときはスティックを\n" - "マリオのうしろへいれるか,\n" - "Zボタンをおしてください。\n" - "のぼるときはスティックを\n" - "まえに たおしてください。\n" - "ぶらさがって\n" - "すぐに Aボタンをおすと\n" - "すばやく のぼれます!") -}; - - -// 0x0200AC8C -static const u8 Dialog075[] = { - _("マリオ!!たいへんです。\n" - "クッパがまた・・・・\n" - "おしろの パワ-スタ-を\n" - "ぬすんで カベのなかへ!\n" - "わたしたちも・・・\n" - "みんなカベのなかへ・・・\n" - "すいこまれていくわ・・・\n" - "『カベ』や『え』のなか\n" - "から パワ-スタ-を\n" - "とりもどして!\n" - "クッパの ふさいだドアは\n" - "パワ-スタ-の ちからで\n" - "ひらくことが できるわ!\n" - "このへやには ひみつの\n" - "つうろがあるの。\n" - "クッパにみつからなかった\n" - "かくしつうろの ひとつよ。\n" - "そこには おしろの\n" - "かくれスタ-が あるわ!\n" - "きっと やくにたつはずよ。") -}; - - -// 0x0200AD94 -static const u8 Dialog076[] = { - _("パワ-スタ-のおかげで\n" - "おしろに,げんきが\n" - "もどってきました。\n" - "クッパなんか\n" - "おいはらってください。\n" - "おやくに たつなら\n" - "おしろの はなしをします。\n" - "『カガミのへや』では\n" - "カガミにうつらないものを\n" - "よくみてください。\n" - "みずのまちへ いくときは,\n" - "『え』にとびこむ たかさ\n" - "によって,まちをすっかり\n" - "みずびたしに できます。\n" - "アッ,これ みつけました。") -}; - - -// 0x0200AE58 -static const u8 Dialog077[] = { - _("とびらを ひらくまえに\n" - "2つの はしらを\n" - "おしさげて おくこと。") -}; - - -// 0x0200AE7C -static const u8 Dialog078[] = { - _("あおコインのブロックを\n" - "ジャンプちゅうにZボタン\n" - "『ヒップドロップ』で\n" - " ぶっつぶすと\n" - "あおコインがでてきます。\n" - "あおコイン1まいで\n" - "きいろコイン5まいぶん\n" - "とてもラッキ-!\n" - "でも じかんがたつと\n" - "きえてしまう・・ザンネン") -}; - - -// 0x0200AF04 -static const u8 Dialog079[] = { - _("いててて!\n" - "はなしてくれよ。\n" - "ウッキッキ-!\n" - "チョットからかった\n" - "だけなのに!\n" - "はなしてくれたら,\n" - "いいもの あげるからさ。\n" - "ネ-ネ- はなしてくれよ。\n" - "\n" - " はなす いやだ") -}; - - -// 0x0200AF64 -static const u8 Dialog080[] = { - _("ヘッヘッヘッ!") -}; - - -// 0x0200AF6C -static const u8 Dialog081[] = { - _("ここは みずにみちたまち。\n" - "このまちは,あなたが\n" - "ここを おとずれるときの\n" - "たかさと,おなじだけの\n" - "みずをもって\n" - "あなたをむかえる。") -}; - - -// 0x0200AFB8 -static const u8 Dialog082[] = { - _("ぼうしを なくすと\n" - "ダメ-ジがおおくなるので\n" - "だいじに してください。\n" - "なくしたら,なくした\n" - "コ-スで みつかります。\n" - "アア-どうしよう・・・\n" - "ピ-チひめは,カベに\n" - "ひきこまれた ままだし。\n" - "はやく クッパを\n" - "やっつけてください。\n" - "えのほかにカベのなかにも\n" - "モンスタ-の せかいが\n" - "あります。 あっ!これ\n" - "もっていって ください。\n" - "かくして もってました。") -}; - - -// 0x0200B080 -static const u8 Dialog083[] = { - _("とけいがとても へんです。\n" - "とけいに はいるとき,\n" - "ながいはりの ばしょに\n" - "ちゅういしてください!\n" - "これ,とりもどしました。\n" - "もっていって ください。\n" - "かっこよく\n" - "うけとってくださいね!") -}; - - -// 0x0200B0E8 -static const u8 Dialog084[] = { - _("イテテ らんぼうなひとだ。\n" - "このスタ-は クッパって\n" - "ヤツが くれたんだよ。\n" - "あんたのものだ なんて\n" - "しらなかったよ。\n" - "かえすって,かえすってば,\n" - "かえせば いいんでしょ。\n" - "はなしてくれたら\n" - "スタ-ぐらい かえすから。\n" - "ホイ!!") -}; - - -// 0x0200B168 -static const u8 Dialog085[] = { - _("この やかたから\n" - " ぶじにでられたら\n" - "\n" - "・・・エライ。・・") -}; - - -// 0x0200B18C -static const u8 Dialog086[] = { - _("まわりをクルクルまわると\n" - "めをまわす ヤツがいます。") -}; - - -// 0x0200B1A8 -static const u8 Dialog087[] = { - _("えんとつから はいるのは\n" - "サンタだけではありません。\n" - " ごえんりょなく\n" - " おはいりください。\n" - "スノ-マンハウスお-な-") -}; - - -// 0x0200B1EC -static const u8 Dialog088[] = { - _("-さぎょうリフトじょう-\n" - "\n" - "ここから おりるひとは\n" - "ひだりのぼうにつかまって,\n" - "きをつけて おりること。") -}; - - -// 0x0200B228 -static const u8 Dialog089[] = { - _("どちらのみちも キケン!\n" - "くらいあしもとにチュウイ。\n" - "はばとび できないひとは\n" - "みぎのみちを すすめ。\n" - "みぎ・・さぎょうリフト\n" - " ケムリめいろ\n" - "ひだり・・やみのおおあな\n" - " ちていこ ヘ\n" - "あかまる\n" - " ・・2ごうエレベ-タ-\n" - " ちていこ へ\n" - "やじるし・・げんざいち") -}; - - -// 0x0200B2C4 -static const u8 Dialog090[] = { - _("ガハハッ!\n" - "ワナにはまったなマリオ!\n" - "また ジャマをしにきた\n" - "ようだが,ともだちからの\n" - "ちゅうこくだ。\n" - "あしもとには きをつけな。") -}; - - -// 0x0200B30C -static const u8 Dialog091[] = { - _("つよいカゼに チュウイ!\n" - "でも,カゼにのると\n" - "フワフワきもちいいです。") -}; - - -// 0x0200B334 -static const u8 Dialog092[] = { - _("いいかげんにしろマリオ!\n" - "いつもいつも,わがはいの\n" - "ジャマをしおって!\n" - "せっかく かいぶつたちと\n" - "たのしくやっているのに。\n" - "スタ-をかえすんだ!\n" - "カベのなかのヤツらには,\n" - "そいつが いるんだよ!!\n" - "ガハハッ!!") -}; - - -// 0x0200B3A8 -static const u8 Dialog093[] = { - _("アララ!いつのまにきた?\n" - "・・・・・・ムム\n" - "どちらにしろ わがはいの\n" - "ほのおの えじきだっ!\n" - "どれだけスタ-のちからを\n" - "かりても,わがはいには\n" - "かなうわけがないわ!\n" - "ガハハッ!! マリオ!\n" - "キサマの おともだちも\n" - "み-んな カベのなかさ。\n" - "ピ-チちゃんも わたさん\n" - "もんね! いくぞ!!") -}; - - -// 0x0200B448 -static const u8 Dialog094[] = { - _("のぼりにくい さかみちは\n" - "じょそうをつけて\n" - "げんきよく のぼる!\n" - "はばとび おぼえてるか?\n" - "はしりながら Zボタンで\n" - "しゃがんで ジャンプだ!") -}; - - -// 0x0200B4A0 -static const u8 Dialog095[] = { - _("このように カンバンの\n" - "まえで Bボタンをおすと\n" - "よむことができます。\n" - "ノコノコや どうぶつたち\n" - "と はなすときは,まえに\n" - "たちどまってください。\n" - "このコ-スにあるクッパに\n" - "ぬすまれたパワ-スタ-を\n" - "とりかえしてください。") -}; - - -// 0x0200B51C -static const u8 Dialog096[] = { - _("このあたり みちせまし。\n" - "ゆっくり あるこう!\n" - "だれも ちょうじょうまで\n" - "たどりつかせない。\n" - "フフフ。\n" - "きもちよくねているひとを\n" - "おこすと,とっても\n" - "ふきげんに なります。\n" - "ゆっくりと しずかに\n" - "あるきましょう。フフフ。") -}; - - -// 0x0200B594 -static const u8 Dialog097[] = { - _("たいあたり されたら\n" - "たいあたりで かえせ!\n" - "ほのおのうみにつきおとす\n" - "1たい1のデスマッチだ!") -}; - - -// 0x0200B5C8 -static const u8 Dialog098[] = { - _("ここまでおいで・・・・\n" - "ケッケッケ・・") -}; - - -// 0x0200B5E0 -static const u8 Dialog099[] = { - _("クックック・・\n" - " とりついてやる。\n" - " ヒッヒッヒ!\n" - "カベも とおりぬけてやる。\n" - "こんなこと できるか?\n" - " ケッケッケ!") -}; - - -// 0x0200B628 -static const u8 Dialog100[] = { - _("ウッキッキ-\n" - " ワッキッキ-!\n" - " ホヨホヨ。\n" - "いっただき-。") -}; - - -// 0x0200B64C -static const u8 Dialog101[] = { - _("ヘッヘッヘッ!\n" - "つかまっちゃいました。\n" - "きにいってたのになあ・・\n" - "かえしますよ。\n" - " ウッキッキ-!!") -}; - - -// 0x0200B680 -static const u8 Dialog102[] = { - _("テレサの たおしかた\n" - "おしえます。\n" - "はずかしがりやの\n" - "テレサです。\n" - "『めとめがあう』と\n" - "すがたをけします。\n" - "『とうめいのとき』は\n" - "あたりません。\n" - "『せなかをむける』と\n" - "あらわれます。\n" - "うしろにまわって\n" - "なぐると よわい。") -}; - - -// 0x0200B6F8 -static const u8 Dialog103[] = { - _("4ほんの はしらのうえに\n" - "たつものに,わたしは,\n" - "このやかたを おとずれる\n" - "しかくを あたえよう。") -}; - - -// 0x0200B72C -static const u8 Dialog104[] = { - _("めのまえのブル-グレ-の\n" - "はんとうめいの ほしは\n" - "『パワ-スタ-のだい』だ。\n" - "あかコインを みつけて\n" - "8まいぜんぶ あつめると,\n" - "スタ-が あらわれる。") -}; - - -// 0x0200B784 -static const u8 Dialog105[] = { - _("じゅんび かんりょう!\n" - "そこの あなに\n" - "はいってみてください。\n" - "4つのたいほうをつかって\n" - "そらのしまにあるスタ-を\n" - "とれるはずです。\n" - "スティックでねらいをつけ,\n" - "Aではっしゃ!とびながら\n" - "『き』にも つかまれます。") -}; - - -// 0x0200B7FC -static const u8 Dialog106[] = { - _("じゅんびが\n" - "かんりょう しました!\n" - "それでは,おきをつけて!") -}; - - -// 0x0200B820 -static const u8 Dialog107[] = { - _("おばけは し な な い\n" - "ケッケッケ・・\n" - "ぶじに でられるかな?") -}; - - -// 0x0200B848 -static const u8 Dialog108[] = { - _("ぼよよ-ん\n" - "おやかたの おでましだ。\n" - "カッカッカ・・") -}; - - -// 0x0200B868 -static const u8 Dialog109[] = { - _("カラダが とけちゃったヨ。\n" - "いいカラダ いないかな-\n" - "なにか おちつかなくてネ。\n" - "ア- かおがつめたいな-") -}; - - -// 0x0200B8A4 -static const u8 Dialog110[] = { - _("しょうらい きっと\n" - "りっぱなカラダになろうと\n" - "おもってま-す!\n" - "いいアタマ いないかな-\n" - "もししっていたら そこへ\n" - "つれてってくれませんか?\n" - "まえを すべってくれれば\n" - "うしろをついていきま-す。\n" - " ヨロシク-!") -}; - - -// 0x0200B914 -static const u8 Dialog111[] = { - _("ヤッリ-!\n" - "きぶんスッキリ!りっぱな\n" - "カラダが みつかった!\n" - "おれいに これあげます!\n" - "もっていって ください。\n" - "とってもアッタカイですよ。") -}; - - -// 0x0200B964 -static const u8 Dialog112[] = { - _("コインいっぱいあつめよう。\n" - "ちからが かいふくする。\n" - "えのなかの15コ-スでは\n" - "きろくにも のこるよ。\n" - "あかいハ-トにさわっても\n" - "ちからが かいふくする。\n" - "はやく かけぬけるほど\n" - "たくさん かいふくする!") -}; - - -// 0x0200B9D0 -static const u8 Dialog113[] = { - _("あか・あお・みどりの\n" - "ブロックには アイテムの\n" - "『ぼうし』が はいってる。\n" - "おしろの どこかにある\n" - "スイッチを ふんでくると\n" - "つかえるように なります。") -}; - - -// 0x0200BA24 -static const u8 Dialog114[] = { - _("ああ~ きにいらねえ!\n" - "おれたち,いしのおかげで\n" - "『いえ』も『しろ』も\n" - "できてるって-のに。\n" - "いつも ふみつけるばっか\n" - "りで, ちった-ありがた\n" - "がったら どうなんでぃ!\n" - "おうおうっ!\n" - "おい! そこのニイサン!\n" - "ふらふらしてんじゃね-や。\n" - "きげんが わるいんでぃ!\n" - "おしつぶしちまうぞぉ!!\n" - "もんくが あんなら\n" - "ヒップドロップで この\n" - "バッタンキングさまを\n" - "ふみつけて みやがれっ!") -}; - - -// 0x0200BAFC -static const u8 Dialog115[] = { - _("ああ くやしいぞ!\n" - "またまた\n" - "ふみつけられちまった!\n" - "しょせん いしは\n" - " いしなのか・・・\n" - "おめぇの かちでぇ!\n" - "これ もっていきやがれ!\n" - "ガクッ!") -}; - - -// 0x0200BB50 -static const u8 Dialog116[] = { - _("おおっ!いてて! まわり\n" - "こみのはやさは まだまだ\n" - "だが,なかなか つよいな。\n" - "おまえのような けらいが\n" - "ほしかったぞ・・\n" - "はじめの やくそくどおり\n" - "パワ-スタ-をやろう。\n" - "また ワシにあいたいとき\n" - "このスタ-をメニュ-から\n" - "えらぶがよい。さらばじゃ") -}; - - -// 0x0200BBDC -static const u8 Dialog117[] = { - _("ジャジャジャ-ン!\n" - "どうだ!\n" - "おどろいたか??・・・\n" - "ムム・・・・ ならば\n" - "もっとオドロカセテやる!\n" - "イクゾ! カカッテコイ!") -}; - - -// 0x0200BC28 -static const u8 Dialog118[] = { - _("オオオッ・・・\n" - "オマエ,いがいとツヨイ!\n" - "このヤカタは,きょうから\n" - "オマエのものダッ・・\n" - "ジユウニつかエ。ガクッ!") -}; - - -// 0x0200BC68 -static const u8 Dialog119[] = { - _("グウウッ! ちょっと\n" - "ゆだん しておったわ!\n" - "せっかくのケイカクが\n" - "ぶちこわしだ・・・しかし\n" - "パワ-スタ-もピ-チも\n" - "わがはいの てのなかに\n" - "あるのだ。ガハハハ!\n" - "まだまだ まけてはおらん。\n" - "これいじょうスタ-は\n" - "わたさんぞ。きょうはここ\n" - "らで かんべんしてやる!\n" - "おおぉ,おぼえてろよ!!") -}; - - -// 0x0200BD0C -static const u8 Dialog120[] = { - _("グググッワッ!\n" - "こうも かんたんに\n" - "やられるとは,スタ-の\n" - "ちからが たりんのかな?\n" - "わがはいがゼッコ-チョ-\n" - "のときなら,キサマなんか\n" - "てきではない。\n" - "こんかいは ひきわけだっ\n" - "ピ-チに あいたければ,\n" - "とうのてっぺんまで\n" - "のぼってきてみろ。\n" - "まってるぞ!ガハハッ!!") -}; - - -// 0x0200BDA4 -static const u8 Dialog121[] = { - _("あああっ・・またこんども\n" - "キサマのかちか マリオ!\n" - "キサマはな,わがはいが\n" - "せかいで い-ちばん\n" - "まけたくないヤツなのに!\n" - "せっかく なかまにした\n" - "モンスタ-たちのちからも\n" - "なくなり このままでは\n" - "またまた,わがはいの\n" - "だ-いきらいな\n" - "へいわが もどってしまう\n" - "ではないか! \n" - "ムムムッ・・・・\n" - "しかし,このゲ-ムは\n" - "まだまだ おわらんぞ。\n" - "みんなで あつまって,\n" - "なかよくエンディングでも\n" - "みるんだな!\n" - "\n" - "ガハハハッ!") -}; - - -// 0x0200BE8C -static const u8 Dialog122[] = { - _("-やみにとけるおおあな-\n" - "\n" - "みぎ・・・さぎょうリフト\n" - " ケムリめいろ\n" - "ひだり・・ちていこ") -}; - - -// 0x0200BEC0 -static const u8 Dialog123[] = { - _(" -メタルのどうくつ-\n" - "\n" - "みぎ・・・ちじょうへ\n" - "ひだり・・メタルスイッチ") -}; - - -// 0x0200BEEC -static const u8 Dialog124[] = { - _("-さぎょうようリフト-\n" - "\n" - " キケン!!\n" - " そうさほうほうを\n" - " よく よむこと。\n" - "ふんだ,やじるしのほうに\n" - "すすみつづけます。\n" - "\n" - "おりると もとのばしょに\n" - "もどります。") -}; - - -// 0x0200BF48 -static const u8 Dialog125[] = { - _("-ケムリめいろ・でぐち-\n" - "\n" - "キケン! ヘイサちゅう。\n" - "ここからは はいれません。") -}; - - -// 0x0200BF74 -static const u8 Dialog126[] = { - _("・1ごうエレベ-タ-・\n" - "\n" - "うえ・・やみのおおあな\n" - "みぎ・・さぎょうリフト\n" - " ケムリめいろ") -}; - - -// 0x0200BFA8 -static const u8 Dialog127[] = { - _(" -ちていこ-\n" - "\n" - "みぎ・・メタルのどうくつ\n" - "ひだり・・はいこう\n" - " へいさちゅう\n" - "おとなしい かいりゅう\n" - "ドッシ-が すんでます\n" - "せなかでヒップドロップを\n" - "すると,あたまをさげます。\n" - "エサにならないでください。") -}; - - -// 0x0200C024 -static const u8 Dialog128[] = { - _("おっとっと!じょうがいに\n" - "なげるのは はんそくだ!\n" - "リングのうえでフェア-に\n" - "たたかおうでは ないか!") -}; - - -// 0x0200C060 -static const u8 Dialog129[] = { - _("とうめいスイッチの\n" - " コ-スへ ようこそ!\n" - "あおいスイッチを ふむと\n" - "すべての あおブロックが\n" - "『じったい』になる。\n" - "とうめいぼうしで\n" - "とうめいに なると\n" - "いろんな ものを\n" - "とおりぬけられます。\n" - "まずは おためしください。") -}; - - -// 0x0200C0DC -static const u8 Dialog130[] = { - _("メタルのスイッチの\n" - " コ-スヘ ようこそ!\n" - "みどりのスイッチを\n" - "ふめば みどりブロックが\n" - "『じったい』になる。\n" - "メタルのぼうしで\n" - "メタルになれば,\n" - "みずのなかでも\n" - "あるけてしまう。\n" - "まずは おためしください。") -}; - - -// 0x0200C154 -static const u8 Dialog131[] = { - _("はねのスイッチの\n" - " コ-スヘ ようこそ!\n" - "にじのリングのまんなかの\n" - "とうの うえにある\n" - "あかいスイッチを ふもう。\n" - "このせかいの すべての\n" - "あかいブロックが\n" - "『じったい』になる。\n" - "3だんとびで そらへとび,\n" - "Zボタンで ランディング。\n" - "そうさは ひこうきの\n" - "そうじゅうかん のように\n" - "まえにたおすと『さがる』\n" - "てまえにひくと『あがる』\n" - "まずは おためしを!") -}; - - -// 0x0200C21C -static const u8 Dialog132[] = { - _("ダメダメ!\n" - "それは きていいはんです。\n" - "『しっか-く!』\n" - "こんどはフェア-に\n" - "いきましょう。") -}; - - -// 0x0200C250 -static const u8 Dialog133[] = { - _("ああよかった。\n" - "きてくれたんですね!\n" - "ピ-チひめも ぼくたちも\n" - "みんな『カベ』のなかに\n" - "とじこめられちゃいました。\n" - "クッパは パワ-スタ-を\n" - "つかって『カベ』や『え』\n" - "のなかにカイブツのくにを\n" - "つくろうと しています。\n" - "スタ-をとりかえして!\n" - "『スタ-』をいくつか\n" - "とりかえしたら,クッパの\n" - "とじたドアが ひらきます。\n" - "1かいの 4つのへやを\n" - "さがし,すすんでください。\n" - "まずは,ヒダリがわの\n" - "ボムへいの『え』の\n" - "へやに はいれます。\n" - "このへやだけは クッパの\n" - "ふういんを のがれました。\n" - "8まい たまったら\n" - "おおきな ほしのドアを\n" - "ひらくことが できます。\n" - "きっと ピ-チひめは\n" - "そのなかです!") -}; - - -// 0x0200C398 -static const u8 Dialog134[] = { - _("コ-スのはじめにえらべる\n" - "スタ-のなまえは,\n" - "つぎに みつけられそうな\n" - "スタ-のヒントです。\n" - "ヒントにでてくる\n" - "じゅんばんと,ちがう\n" - "スタ-を とりもどしても\n" - "かまわないですよ。\n" - "『スタ-』や『てき』や\n" - "『アイテム』のなかには\n" - "そのスタ-をえらばないと\n" - "でないものも あります。\n" - "いくつか とりかえしたら\n" - "つぎのコ-スのドアへと\n" - "すすんでください。みんな\n" - "たすけを まっています!") -}; - - -// 0x0200C468 -static const u8 Dialog135[] = { - _("クッパがスタ-をもって\n" - "いっちゃいました。\n" - "ここにかくれてみてました。\n" - "スタ-はひとつのコ-スに\n" - "6こあるはずです。\n" - "でも アイテムスイッチを\n" - "ぜんぶおしてからでないと\n" - "とれないスタ-もあります。\n" - "どんどん さきのコ-スへ\n" - "すすんでください。\n" - "スタ-トがめんでスタ-の\n" - "なまえが みられます。\n" - "むかしのてきに あいたい\n" - "とき,そのほしをえらぶと\n" - "またあえる てきもいます。") -}; - - -// 0x0200C534 -static const u8 Dialog136[] = { - _("ワァすごい!もうそんなに\n" - "スタ-をもってるんですね。\n" - "もうすぐ ぼくらのことも\n" - "たすけだしてくれますね!\n" - "クッパたちは ひっしです。\n" - "きをつけてください。\n" - "コインをとると ちからが\n" - "かいふくします。\n" - "あかコインは2まいぶん。\n" - "あおコインは5まいぶん。\n" - "あおコインのブロックを\n" - "こわすと でてきます。\n" - "たかいところからおちても\n" - "ちじょうの ちかくで\n" - "『ヒップドロップ』すると\n" - "ダメ-ジを ふせげます。") -}; - - -// 0x0200C614 -static const u8 Dialog137[] = { - _("パワ-スタ-が もどって,\n" - "おしろのちからが\n" - "かいふく してきました!\n" - "ありがとう。 クッパは\n" - "このさきに にげました。\n" - "そうだ!コインをあつめて\n" - "ますか?15のコ-スでは\n" - "コイン100まい とると\n" - "スペシャルスタ-が\n" - "あらわれます。") -}; - - -// 0x0200C698 -static const u8 Dialog138[] = { - _("・2ごうエレベ-タ-・\n" - "した・・ちていこ\n" - "ひだり・・やみのおおあな\n" - "みぎ・・・ケムリめいろ\n" - " へいさちゅう!") -}; - - -// 0x0200C6D8 -static const u8 Dialog139[] = { - _("このうえ・・じどうリフト\n" - "じどうリフトは のると\n" - "じどうてきに うごきだし,\n" - "コ-スにそってすすみます。\n" - "おりて ほうっておくと\n" - "きえてしまいます。") -}; - - -// 0x0200C72C -static const u8 Dialog140[] = { - _("-そうさリフトじょう-\n" - "みぎ・・・ケムリめいろ\n" - " いりぐち\n" - "ひだり・・やみのおおあな\n" - " 1ごうエレベ-タ-へ\n" - "やじるし・・げんざいち") -}; - - -// 0x0200C780 -static const u8 Dialog141[] = { - _("ぬすまれたパワ-スタ-を\n" - "とりかえした!\n" - "クッパが とじてしまった\n" - "ドアを あけられるように\n" - "なったぞ!\n" - "2かいの ピ-チのへや,\n" - "1かいの とりでのへや,\n" - "2つのへやのドアがひらく。\n" - "つぎのスタ-をとりかえし\n" - "おしろのみんなをすくえ!\n" - "モンスタ-たちはどんどん\n" - "ちからを つけてきている。\n" - "いそげ マリオ!!\n" - "おしろの いちだいじだ!") -}; - - -// 0x0200C83C -static const u8 Dialog142[] = { - _("3このスタ-を\n" - "とりもどしたぞ! \n" - "そして スタ-に『3』の\n" - "すうじが ついたドアを\n" - "ひらけるように なった!\n" - "4つのへやの せかいを\n" - "じゆうに いききできる。\n" - "あたらしいカイブツたちは\n" - "もっと てごわいぞ。\n" - "きをつけて すすめ!") -}; - - -// 0x0200C8BC -static const u8 Dialog143[] = { - _("8このパワ-スタ-を\n" - "ぶじ とりもどし,\n" - "おおきな ほしのドアが\n" - "ひらくようになった。\n" - "クッパは すぐそこだ!\n" - "ピ-チのこえがきこえる。") -}; - - -// 0x0200C90C -static const u8 Dialog144[] = { - _("30この パワ-スタ-を\n" - "とりもどし,\n" - "おおきなスタ-のドアが\n" - "ひらくようになった!\n" - "ここですこし てんけんだ。\n" - "2ほんのはしらを ヒップ\n" - "ドロップしてみたか?\n" - "ぼうしはなくしてないか?\n" - "さばくで なくしたなら\n" - "ハゲたかジャンゴをさがせ。\n" - "クッパは うみから\n" - "このちかにせんにゅう\n" - "したらしい。\n" - "とうとうやつを\n" - "おいつめたぞ!") -}; - - -// 0x0200C9C4 -static const u8 Dialog145[] = { - _("50このパワ-スタ-を\n" - "とりもどした!\n" - "3かいへの ほしのドアが\n" - "ひらくぞ!\n" - "クッパはすぐそこだ!\n" - "アイテムスイッチは\n" - "ぜんぶおしてきたか?\n" - "かくにん しておこう。\n" - "あか・あお・みどりの\n" - "3つのアイテムブロックは\n" - "とてもだいじな みかただ。\n" - "さあ『3かい』へすすめ!") -}; - - -// 0x0200CA5C -static const u8 Dialog146[] = { - _("70このパワ-スタ-を\n" - "とりもどした!\n" - "はてしない かいだんの\n" - "ナゾがとかれた。\n" - "クッパはかなりあせってる。\n" - "さあ!さいごのたたかいだ。") -}; - - -// 0x0200CAAC -static const u8 Dialog147[] = { - _("あか・あお・みどりの\n" - "『アイテムブロック』を\n" - "つかっていますか?\n" - "スタ-をとりもどすと\n" - "いりぐちがみつかる,\n" - "おしろのかくしコ-スで,\n" - "3つのスイッチを おすと\n" - "そのいろのブロックが\n" - "『じったい』となり,\n" - "つかえるようになります。\n" - "あかは はねのぼうし\n" - "みどりは メタルのぼうし\n" - "あおは とうめいのぼうし\n" - "\n" - "とてもつよい みかたです。") -}; - - -// 0x0200CB64 -static const u8 Dialog148[] = { - _("このさきスノ-マンのやま\n" - "だれも はいるな!\n" - "アイスブロックシュ-タ-\n" - "を 3だんとびなどして\n" - "とびこえては イケマセン。\n" - "つめたい いけでは\n" - "はやく たいりょくが\n" - "へります!\n" - "かいふくも しません。\n" - " スノ-マン") -}; - - -// 0x0200CBE0 -static const u8 Dialog149[] = { - _("ピ-チのかくれスライダ-\n" - "へ ようこそ!\n" - "ここには クッパにみつけ\n" - "られなかった おしろの\n" - "かくれスタ-がのこってる。\n" - "さかを すべりはじめたら\n" - "スティックまえで かそく,\n" - "うしろで げんそくできる。\n" - "はやくすべれば スタ-が\n" - "みつかるはずだ!") -}; - - -// 0x0200CC6C -static const u8 Dialog150[] = { - _("あ--ん,だれだい?\n" - "とつぜん ビショぬれに\n" - "なっちゃいました!\n" - "キチンと てんじょう\n" - "なおしてもらうです。") -}; - - -// 0x0200CCAC -static const u8 Dialog151[] = { - _("みずをかけられた つぎは\n" - "ふんづけられました。\n" - "もう ほんと-に\n" - "おこったです!") -}; - - -// 0x0200CCDC -static const u8 Dialog152[] = { - _("いててて!!!\n" - "らんぼうなひとだなあ。\n" - "なぜかイライラしてたけど,\n" - "まあ,そらがみえるのも\n" - "わるくはないです。\n" - "よるには いっぱいほしが\n" - "みえるしね!\n" - "このほしは かえします。\n" - "あ-,なんだか きもちが\n" - "おちついてきたです。") -}; - - -// 0x0200CD58 -static const u8 Dialog153[] = { - _("わしの カラダに\n" - "のぼっては いか-ん!\n" - "そういうヤツは みんな\n" - "ふきっとばしちまうぞ-!") -}; - - -// 0x0200CD8C -static const u8 Dialog154[] = { - _("ぼうしを なくすと\n" - "ダメ-ジがおおくなるので\n" - "だいじに してください。\n" - "なくしたら,なくした\n" - "コ-スで みつかります。\n" - "アア-どうしよう・・・\n" - "ピ-チひめは,カベに\n" - "ひきこまれたままだし。\n" - "はやく クッパを\n" - "やっつけてください。\n" - "ああ,そうだ!\n" - "えのほかにカベのなかにも\n" - "モンスタ-の せかいが\n" - "あります。\n" - "よ-く,しらべてください。") -}; - - -// 0x0200CE48 -static const u8 Dialog155[] = { - _("パワ-スタ-のおかげで\n" - "おしろに,げんきが\n" - "もどってきました。\n" - "クッパなんか\n" - "おいはらってください。\n" - "おやくに たつなら\n" - "おしろの はなしをします。\n" - "『カガミのへや』では\n" - "カガミにうつらないものを\n" - "よくみてください。\n" - "みずのまちへ いくときは,\n" - "『え』にとびこむ たかさ\n" - "によって,まちをすっかり\n" - "みずびたしに できます。") -}; - - -// 0x0200CEFC -static const u8 Dialog156[] = { - _("とけいがとても へんです。\n" - "とけいに はいるとき,\n" - "ながいはりの ばしょに\n" - "ちゅういしてください!") -}; - - -// 0x0200CF34 -static const u8 Dialog157[] = { - _("ながれる『すな』に\n" - "ながされないように\n" - "きをつけて!\n" - "からだが しずんで\n" - "ジャンプできません。\n" - "あたままでしずむと\n" - "いきが できません。\n" - "くらいいろの ところは\n" - "とくに キケン!!\n" - "そこなしの じごくです!") -}; - - -// 0x0200CFAC -static const u8 Dialog158[] = { - _("ジャンプのテクニック\n" - "その1\n" - "タイミングよく,\n" - "れんぞくでジャンプすると\n" - "だんだん たかくとべる。\n" - "スピ-ドがはやいほど\n" - "たかく とびあがれる。\n" - "れんぞく3かいめに\n" - "たかくとべるわざを\n" - "『3だんとび』といいます。\n" - "その2 カベにむかって\n" - "ジャンプして,そこから\n" - "もういちどジャンプできる。\n" - "『カベキック』といって,\n" - "たかいところにのぼれます。") -}; - - -// 0x0200D078 -static const u8 Dialog159[] = { - _("ジャンプのテクニック\n" - "その3 Zボタンわざ\n" - "たちどまって しゃがんで\n" - "から ジャンプすると,\n" - "『バックちゅう』できます。\n" - "はやくはしりながら\n" - "しゃがんでジャンプすると\n" - "とおくまで とべる。\n" - "『はばとび』です。") -}; - - -// 0x0200D0F8 -static const u8 Dialog160[] = { - _("はやく はしりながら\n" - "Bボタンをおすと\n" - "『ボディアタック』が\n" - "できます。\n" - "おなかで\n" - "すべっているあいだは,\n" - "A・Bどちらのボタンでも\n" - "おきあがることができます。") -}; - - -// 0x0200D158 -static const u8 Dialog161[] = { - _("いや- すごいです!!\n" - "ここにいれば あえると\n" - "きいてたけど,ほんとに\n" - "あえてしまいました!!\n" - "でんごんが あります。\n" - "『これで,おしまいですが\n" - "もっとあそんでほしいので\n" - "つまらないものですが\n" - "うけとって ください。』\n" - "-マリオ・スタッフより-") -}; - - -// 0x0200D1E4 -static const u8 Dialog162[] = { - _("イテテ あいかわらず\n" - "らんぼうなひとだな。\n" - "このスタ-は べつに\n" - "かくしてたわけじゃ\n" - "ないんだってば!\n" - "かえせば いいんでしょ。\n" - "はなしてくれたら\n" - "スタ-ぐらい かえすから。\n" - "これで ほんとに\n" - "さいごだよ! ホイ!") -}; - - -// 0x0200D260 -static const u8 Dialog163[] = { - _("あああっ・・またこんども\n" - "キサマのかちか マリオ!\n" - "キサマはな,わがはいが\n" - "せかいで い-ちばん\n" - "まけたくないヤツなのに!\n" - "ほんとうに やくにたたぬ\n" - "カイブツどもだ!\n" - "キサマごときに\n" - "パワ-スタ-をぜ-んぶ\n" - "とりもどされるとは・・・\n" - "ぜんぶで『120こ』も\n" - "あったのか!?\n" - "『しろ』に わがはいも\n" - "きづかなかったスタ-が\n" - "のこって おったとは・・\n" - "またまた わがはいの\n" - "だ-いきらいな へいわが,\n" - "もどってしまうではないか。\n" - "わがはいは くやし-ぞ!\n" - "きょうは ひきあげてやる。\n" - "だが,こんどあうときは\n" - "ぜ-ったい まけないぞ!\n" - "3Dスティックをみがいて\n" - "まってろよ!\n" - " ガハハッ!") -}; - - -// 0x0200D3A8 -static const u8 Dialog164[] = { - _("しばらく やすんでたので\n" - "こんなにみごとに,\n" - "ふとっちゃいました。\n" - "ひさしぶりに やります?\n" - "では! いつものように,\n" - "レディ-!\n" - "\n" - " ゴ-!! やめとく") -}; - - -// 0x0200D400 -static const u8 Dialog165[] = { - _("このクイの まわりを\n" - "クルクルまわって\n" - "めをまわしても\n" - "しりません。") -}; - - -// 0x0200D424 -static const u8 Dialog166[] = { - _("きょうは トレ-ニングで\n" - "るすに してるッス!\n" - "オイラに ちょ-せん\n" - "したいひとは,またこんど\n" - "くるといいッス!\n" - " ノコノコ") -}; - - -// 0x0200D46C -static const u8 Dialog167[] = { - _("『ピ-チの おしろ』\n" - " すぐそこ\n" - "Aボタン『ジャンプ』\n" - "Zボタン『しゃがむ』\n" - "Bボタン『カンバンよむ』\n" - " 『パンチ』\n" - " 『ものをもつ』\n" - "もういちどおす『なげる』") -}; - - -// 0x0200D4D4 -static const u8 Dialog168[] = { - _("ア-ン,またまた \n" - "ふんづけられちゃいました。\n" - "ハナチャン かんぜんに\n" - "おこったです!") -}; - - -// 0x0200D504 -static const u8 Dialog169[] = { - _("かってに はいるな!\n" - "この『どうくつ』に\n" - "むだんで はいるものには,\n" - "わざわいが おとずれる!\n" - " --せんちょうより") -}; - - -// dialog table 0x0200D548 -static const struct DialogEntry dialog_text_000 = { - 1, 5, 30, 200, Dialog000 -}; - -static const struct DialogEntry dialog_text_001 = { - 1, 4, 95, 200, Dialog001 -}; - -static const struct DialogEntry dialog_text_002 = { - 1, 4, 95, 200, Dialog002 -}; - -static const struct DialogEntry dialog_text_003 = { - 1, 5, 95, 200, Dialog003 -}; - -static const struct DialogEntry dialog_text_004 = { - 1, 3, 95, 200, Dialog004 -}; - -static const struct DialogEntry dialog_text_005 = { - 1, 4, 30, 200, Dialog005 -}; - -static const struct DialogEntry dialog_text_006 = { - 1, 4, 30, 200, Dialog006 -}; - -static const struct DialogEntry dialog_text_007 = { - 1, 6, 30, 200, Dialog007 -}; - -static const struct DialogEntry dialog_text_008 = { - 1, 5, 30, 200, Dialog008 -}; - -static const struct DialogEntry dialog_text_009 = { - 1, 5, 30, 200, Dialog009 -}; - -static const struct DialogEntry dialog_text_010 = { - 1, 3, 30, 200, Dialog010 -}; - -static const struct DialogEntry dialog_text_011 = { - 1, 3, 30, 200, Dialog011 -}; - -static const struct DialogEntry dialog_text_012 = { - 1, 3, 30, 200, Dialog012 -}; - -static const struct DialogEntry dialog_text_013 = { - 1, 5, 30, 200, Dialog013 -}; - -static const struct DialogEntry dialog_text_014 = { - 1, 5, 30, 200, Dialog014 -}; - -static const struct DialogEntry dialog_text_015 = { - 1, 4, 30, 200, Dialog015 -}; - -static const struct DialogEntry dialog_text_016 = { - 1, 4, 30, 200, Dialog016 -}; - -static const struct DialogEntry dialog_text_017 = { - 1, 4, 30, 200, Dialog017 -}; - -static const struct DialogEntry dialog_text_018 = { - 1, 4, 30, 200, Dialog018 -}; - -static const struct DialogEntry dialog_text_019 = { - 1, 2, 30, 200, Dialog019 -}; - -static const struct DialogEntry dialog_text_020 = { - 1, 5, 95, 150, Dialog020 -}; - -static const struct DialogEntry dialog_text_021 = { - 1, 5, 95, 200, Dialog021 -}; - -static const struct DialogEntry dialog_text_022 = { - 1, 3, 95, 200, Dialog022 -}; - -static const struct DialogEntry dialog_text_023 = { - 1, 3, 95, 200, Dialog023 -}; - -static const struct DialogEntry dialog_text_024 = { - 1, 3, 95, 200, Dialog024 -}; - -static const struct DialogEntry dialog_text_025 = { - 1, 3, 95, 200, Dialog025 -}; - -static const struct DialogEntry dialog_text_026 = { - 1, 3, 95, 200, Dialog026 -}; - -static const struct DialogEntry dialog_text_027 = { - 1, 3, 95, 200, Dialog027 -}; - -static const struct DialogEntry dialog_text_028 = { - 1, 3, 95, 200, Dialog028 -}; - -static const struct DialogEntry dialog_text_029 = { - 1, 4, 95, 200, Dialog029 -}; - -static const struct DialogEntry dialog_text_030 = { - 1, 4, 30, 200, Dialog030 -}; - -static const struct DialogEntry dialog_text_031 = { - 1, 3, 30, 200, Dialog031 -}; - -static const struct DialogEntry dialog_text_032 = { - 1, 4, 30, 200, Dialog032 -}; - -static const struct DialogEntry dialog_text_033 = { - 1, 4, 30, 200, Dialog033 -}; - -static const struct DialogEntry dialog_text_034 = { - 1, 5, 30, 200, Dialog034 -}; - -static const struct DialogEntry dialog_text_035 = { - 1, 4, 30, 200, Dialog035 -}; - -static const struct DialogEntry dialog_text_036 = { - 1, 5, 30, 200, Dialog036 -}; - -static const struct DialogEntry dialog_text_037 = { - 1, 3, 30, 200, Dialog037 -}; - -static const struct DialogEntry dialog_text_038 = { - 1, 3, 95, 200, Dialog038 -}; - -static const struct DialogEntry dialog_text_039 = { - 1, 5, 30, 200, Dialog039 -}; - -static const struct DialogEntry dialog_text_040 = { - 1, 3, 30, 200, Dialog040 -}; - -static const struct DialogEntry dialog_text_041 = { - 1, 4, 30, 200, Dialog041 -}; - -static const struct DialogEntry dialog_text_042 = { - 1, 5, 30, 200, Dialog042 -}; - -static const struct DialogEntry dialog_text_043 = { - 1, 4, 30, 200, Dialog043 -}; - -static const struct DialogEntry dialog_text_044 = { - 1, 5, 95, 200, Dialog044 -}; - -static const struct DialogEntry dialog_text_045 = { - 1, 5, 95, 200, Dialog045 -}; - -static const struct DialogEntry dialog_text_046 = { - 1, 5, 30, 200, Dialog046 -}; - -static const struct DialogEntry dialog_text_047 = { - 1, 3, 95, 200, Dialog047 -}; - -static const struct DialogEntry dialog_text_048 = { - 1, 4, 30, 200, Dialog048 -}; - -static const struct DialogEntry dialog_text_049 = { - 1, 5, 30, 200, Dialog049 -}; - -static const struct DialogEntry dialog_text_050 = { - 1, 4, 30, 200, Dialog050 -}; - -static const struct DialogEntry dialog_text_051 = { - 1, 5, 30, 200, Dialog051 -}; - -static const struct DialogEntry dialog_text_052 = { - 1, 4, 30, 200, Dialog052 -}; - -static const struct DialogEntry dialog_text_053 = { - 1, 6, 30, 200, Dialog053 -}; - -static const struct DialogEntry dialog_text_054 = { - 1, 4, 30, 200, Dialog054 -}; - -static const struct DialogEntry dialog_text_055 = { - 1, 5, 30, 200, Dialog055 -}; - -static const struct DialogEntry dialog_text_056 = { - 1, 3, 30, 200, Dialog056 -}; - -static const struct DialogEntry dialog_text_057 = { - 1, 4, 30, 200, Dialog057 -}; - -static const struct DialogEntry dialog_text_058 = { - 1, 5, 30, 200, Dialog058 -}; - -static const struct DialogEntry dialog_text_059 = { - 1, 5, 30, 200, Dialog059 -}; - -static const struct DialogEntry dialog_text_060 = { - 1, 4, 30, 200, Dialog060 -}; - -static const struct DialogEntry dialog_text_061 = { - 1, 6, 30, 200, Dialog061 -}; - -static const struct DialogEntry dialog_text_062 = { - 1, 5, 30, 200, Dialog062 -}; - -static const struct DialogEntry dialog_text_063 = { - 1, 4, 30, 200, Dialog063 -}; - -static const struct DialogEntry dialog_text_064 = { - 1, 4, 30, 200, Dialog064 -}; - -static const struct DialogEntry dialog_text_065 = { - 1, 5, 30, 200, Dialog065 -}; - -static const struct DialogEntry dialog_text_066 = { - 1, 5, 30, 200, Dialog066 -}; - -static const struct DialogEntry dialog_text_067 = { - 1, 4, 30, 200, Dialog067 -}; - -static const struct DialogEntry dialog_text_068 = { - 1, 5, 30, 200, Dialog068 -}; - -static const struct DialogEntry dialog_text_069 = { - 1, 3, 30, 200, Dialog069 -}; - -static const struct DialogEntry dialog_text_070 = { - 1, 5, 30, 200, Dialog070 -}; - -static const struct DialogEntry dialog_text_071 = { - 1, 4, 30, 200, Dialog071 -}; - -static const struct DialogEntry dialog_text_072 = { - 1, 5, 30, 200, Dialog072 -}; - -static const struct DialogEntry dialog_text_073 = { - 1, 5, 95, 200, Dialog073 -}; - -static const struct DialogEntry dialog_text_074 = { - 1, 5, 30, 200, Dialog074 -}; - -static const struct DialogEntry dialog_text_075 = { - 1, 5, 30, 200, Dialog075 -}; - -static const struct DialogEntry dialog_text_076 = { - 1, 5, 30, 200, Dialog076 -}; - -static const struct DialogEntry dialog_text_077 = { - 1, 3, 150, 200, Dialog077 -}; - -static const struct DialogEntry dialog_text_078 = { - 1, 5, 30, 200, Dialog078 -}; - -static const struct DialogEntry dialog_text_079 = { - 1, 5, 30, 200, Dialog079 -}; - -static const struct DialogEntry dialog_text_080 = { - 1, 3, 30, 200, Dialog080 -}; - -static const struct DialogEntry dialog_text_081 = { - 1, 6, 30, 200, Dialog081 -}; - -static const struct DialogEntry dialog_text_082 = { - 1, 5, 30, 200, Dialog082 -}; - -static const struct DialogEntry dialog_text_083 = { - 1, 4, 30, 200, Dialog083 -}; - -static const struct DialogEntry dialog_text_084 = { - 1, 5, 30, 200, Dialog084 -}; - -static const struct DialogEntry dialog_text_085 = { - 1, 4, 30, 200, Dialog085 -}; - -static const struct DialogEntry dialog_text_086 = { - 1, 3, 30, 200, Dialog086 -}; - -static const struct DialogEntry dialog_text_087 = { - 1, 5, 30, 200, Dialog087 -}; - -static const struct DialogEntry dialog_text_088 = { - 1, 5, 30, 200, Dialog088 -}; - -static const struct DialogEntry dialog_text_089 = { - 1, 4, 95, 200, Dialog089 -}; - -static const struct DialogEntry dialog_text_090 = { - 1, 6, 30, 200, Dialog090 -}; - -static const struct DialogEntry dialog_text_091 = { - 1, 3, 30, 200, Dialog091 -}; - -static const struct DialogEntry dialog_text_092 = { - 1, 3, 30, 200, Dialog092 -}; - -static const struct DialogEntry dialog_text_093 = { - 1, 4, 30, 200, Dialog093 -}; - -static const struct DialogEntry dialog_text_094 = { - 1, 3, 30, 200, Dialog094 -}; - -static const struct DialogEntry dialog_text_095 = { - 1, 3, 30, 200, Dialog095 -}; - -static const struct DialogEntry dialog_text_096 = { - 1, 5, 30, 200, Dialog096 -}; - -static const struct DialogEntry dialog_text_097 = { - 1, 4, 30, 200, Dialog097 -}; - -static const struct DialogEntry dialog_text_098 = { - 1, 3, 95, 200, Dialog098 -}; - -static const struct DialogEntry dialog_text_099 = { - 1, 3, 95, 200, Dialog099 -}; - -static const struct DialogEntry dialog_text_100 = { - 1, 4, 95, 200, Dialog100 -}; - -static const struct DialogEntry dialog_text_101 = { - 1, 5, 95, 200, Dialog101 -}; - -static const struct DialogEntry dialog_text_102 = { - 1, 4, 30, 200, Dialog102 -}; - -static const struct DialogEntry dialog_text_103 = { - 1, 4, 95, 200, Dialog103 -}; - -static const struct DialogEntry dialog_text_104 = { - 1, 6, 30, 200, Dialog104 -}; - -static const struct DialogEntry dialog_text_105 = { - 1, 3, 95, 200, Dialog105 -}; - -static const struct DialogEntry dialog_text_106 = { - 1, 3, 95, 200, Dialog106 -}; - -static const struct DialogEntry dialog_text_107 = { - 1, 3, 95, 200, Dialog107 -}; - -static const struct DialogEntry dialog_text_108 = { - 1, 3, 95, 200, Dialog108 -}; - -static const struct DialogEntry dialog_text_109 = { - 1, 4, 95, 200, Dialog109 -}; - -static const struct DialogEntry dialog_text_110 = { - 1, 3, 95, 200, Dialog110 -}; - -static const struct DialogEntry dialog_text_111 = { - 1, 3, 95, 200, Dialog111 -}; - -static const struct DialogEntry dialog_text_112 = { - 1, 4, 30, 200, Dialog112 -}; - -static const struct DialogEntry dialog_text_113 = { - 1, 6, 30, 200, Dialog113 -}; - -static const struct DialogEntry dialog_text_114 = { - 1, 4, 95, 200, Dialog114 -}; - -static const struct DialogEntry dialog_text_115 = { - 1, 5, 95, 200, Dialog115 -}; - -static const struct DialogEntry dialog_text_116 = { - 1, 5, 95, 200, Dialog116 -}; - -static const struct DialogEntry dialog_text_117 = { - 1, 3, 95, 200, Dialog117 -}; - -static const struct DialogEntry dialog_text_118 = { - 1, 5, 95, 200, Dialog118 -}; - -static const struct DialogEntry dialog_text_119 = { - 1, 4, 30, 200, Dialog119 -}; - -static const struct DialogEntry dialog_text_120 = { - 1, 4, 30, 200, Dialog120 -}; - -static const struct DialogEntry dialog_text_121 = { - 1, 5, 30, 200, Dialog121 -}; - -static const struct DialogEntry dialog_text_122 = { - 1, 6, 30, 200, Dialog122 -}; - -static const struct DialogEntry dialog_text_123 = { - 1, 5, 30, 200, Dialog123 -}; - -static const struct DialogEntry dialog_text_124 = { - 1, 5, 30, 200, Dialog124 -}; - -static const struct DialogEntry dialog_text_125 = { - 1, 5, 30, 200, Dialog125 -}; - -static const struct DialogEntry dialog_text_126 = { - 1, 6, 30, 200, Dialog126 -}; - -static const struct DialogEntry dialog_text_127 = { - 1, 5, 30, 200, Dialog127 -}; - -static const struct DialogEntry dialog_text_128 = { - 1, 4, 95, 200, Dialog128 -}; - -static const struct DialogEntry dialog_text_129 = { - 1, 5, 30, 200, Dialog129 -}; - -static const struct DialogEntry dialog_text_130 = { - 1, 5, 30, 200, Dialog130 -}; - -static const struct DialogEntry dialog_text_131 = { - 1, 5, 30, 200, Dialog131 -}; - -static const struct DialogEntry dialog_text_132 = { - 1, 5, 30, 200, Dialog132 -}; - -static const struct DialogEntry dialog_text_133 = { - 1, 5, 30, 200, Dialog133 -}; - -static const struct DialogEntry dialog_text_134 = { - 1, 4, 30, 200, Dialog134 -}; - -static const struct DialogEntry dialog_text_135 = { - 1, 5, 30, 200, Dialog135 -}; - -static const struct DialogEntry dialog_text_136 = { - 1, 4, 30, 200, Dialog136 -}; - -static const struct DialogEntry dialog_text_137 = { - 1, 5, 30, 200, Dialog137 -}; - -static const struct DialogEntry dialog_text_138 = { - 1, 5, 30, 200, Dialog138 -}; - -static const struct DialogEntry dialog_text_139 = { - 1, 6, 30, 200, Dialog139 -}; - -static const struct DialogEntry dialog_text_140 = { - 1, 6, 30, 200, Dialog140 -}; - -static const struct DialogEntry dialog_text_141 = { - 1, 5, 150, 200, Dialog141 -}; - -static const struct DialogEntry dialog_text_142 = { - 1, 5, 150, 200, Dialog142 -}; - -static const struct DialogEntry dialog_text_143 = { - 1, 6, 150, 200, Dialog143 -}; - -static const struct DialogEntry dialog_text_144 = { - 1, 5, 150, 200, Dialog144 -}; - -static const struct DialogEntry dialog_text_145 = { - 1, 4, 150, 200, Dialog145 -}; - -static const struct DialogEntry dialog_text_146 = { - 1, 6, 150, 200, Dialog146 -}; - -static const struct DialogEntry dialog_text_147 = { - 1, 5, 30, 200, Dialog147 -}; - -static const struct DialogEntry dialog_text_148 = { - 1, 5, 30, 200, Dialog148 -}; - -static const struct DialogEntry dialog_text_149 = { - 1, 5, 30, 200, Dialog149 -}; - -static const struct DialogEntry dialog_text_150 = { - 1, 5, 30, 200, Dialog150 -}; - -static const struct DialogEntry dialog_text_151 = { - 1, 4, 30, 200, Dialog151 -}; - -static const struct DialogEntry dialog_text_152 = { - 1, 5, 30, 200, Dialog152 -}; - -static const struct DialogEntry dialog_text_153 = { - 1, 4, 30, 200, Dialog153 -}; - -static const struct DialogEntry dialog_text_154 = { - 1, 5, 30, 200, Dialog154 -}; - -static const struct DialogEntry dialog_text_155 = { - 1, 5, 30, 200, Dialog155 -}; - -static const struct DialogEntry dialog_text_156 = { - 1, 4, 30, 200, Dialog156 -}; - -static const struct DialogEntry dialog_text_157 = { - 1, 5, 30, 200, Dialog157 -}; - -static const struct DialogEntry dialog_text_158 = { - 1, 5, 30, 200, Dialog158 -}; - -static const struct DialogEntry dialog_text_159 = { - 1, 5, 30, 200, Dialog159 -}; - -static const struct DialogEntry dialog_text_160 = { - 1, 4, 30, 200, Dialog160 -}; - -static const struct DialogEntry dialog_text_161 = { - 1, 5, 30, 200, Dialog161 -}; - -static const struct DialogEntry dialog_text_162 = { - 1, 5, 30, 200, Dialog162 -}; - -static const struct DialogEntry dialog_text_163 = { - 1, 5, 30, 200, Dialog163 -}; - -static const struct DialogEntry dialog_text_164 = { - 1, 4, 30, 200, Dialog164 -}; - -static const struct DialogEntry dialog_text_165 = { - 1, 4, 30, 200, Dialog165 -}; - -static const struct DialogEntry dialog_text_166 = { - 1, 6, 30, 200, Dialog166 -}; - -static const struct DialogEntry dialog_text_167 = { - 1, 4, 30, 200, Dialog167 -}; - -static const struct DialogEntry dialog_text_168 = { - 1, 4, 30, 200, Dialog168 -}; - -static const struct DialogEntry dialog_text_169 = { - 1, 5, 30, 200, Dialog169 -}; - - -// dialog table -// 0x0200DFE8 -const struct DialogEntry *const seg2_dialog_table[] = { - &dialog_text_000, &dialog_text_001, &dialog_text_002, &dialog_text_003, - &dialog_text_004, &dialog_text_005, &dialog_text_006, &dialog_text_007, - &dialog_text_008, &dialog_text_009, &dialog_text_010, &dialog_text_011, - &dialog_text_012, &dialog_text_013, &dialog_text_014, &dialog_text_015, - &dialog_text_016, &dialog_text_017, &dialog_text_018, &dialog_text_019, - &dialog_text_020, &dialog_text_021, &dialog_text_022, &dialog_text_023, - &dialog_text_024, &dialog_text_025, &dialog_text_026, &dialog_text_027, - &dialog_text_028, &dialog_text_029, &dialog_text_030, &dialog_text_031, - &dialog_text_032, &dialog_text_033, &dialog_text_034, &dialog_text_035, - &dialog_text_036, &dialog_text_037, &dialog_text_038, &dialog_text_039, - &dialog_text_040, &dialog_text_041, &dialog_text_042, &dialog_text_043, - &dialog_text_044, &dialog_text_045, &dialog_text_046, &dialog_text_047, - &dialog_text_048, &dialog_text_049, &dialog_text_050, &dialog_text_051, - &dialog_text_052, &dialog_text_053, &dialog_text_054, &dialog_text_055, - &dialog_text_056, &dialog_text_057, &dialog_text_058, &dialog_text_059, - &dialog_text_060, &dialog_text_061, &dialog_text_062, &dialog_text_063, - &dialog_text_064, &dialog_text_065, &dialog_text_066, &dialog_text_067, - &dialog_text_068, &dialog_text_069, &dialog_text_070, &dialog_text_071, - &dialog_text_072, &dialog_text_073, &dialog_text_074, &dialog_text_075, - &dialog_text_076, &dialog_text_077, &dialog_text_078, &dialog_text_079, - &dialog_text_080, &dialog_text_081, &dialog_text_082, &dialog_text_083, - &dialog_text_084, &dialog_text_085, &dialog_text_086, &dialog_text_087, - &dialog_text_088, &dialog_text_089, &dialog_text_090, &dialog_text_091, - &dialog_text_092, &dialog_text_093, &dialog_text_094, &dialog_text_095, - &dialog_text_096, &dialog_text_097, &dialog_text_098, &dialog_text_099, - &dialog_text_100, &dialog_text_101, &dialog_text_102, &dialog_text_103, - &dialog_text_104, &dialog_text_105, &dialog_text_106, &dialog_text_107, - &dialog_text_108, &dialog_text_109, &dialog_text_110, &dialog_text_111, - &dialog_text_112, &dialog_text_113, &dialog_text_114, &dialog_text_115, - &dialog_text_116, &dialog_text_117, &dialog_text_118, &dialog_text_119, - &dialog_text_120, &dialog_text_121, &dialog_text_122, &dialog_text_123, - &dialog_text_124, &dialog_text_125, &dialog_text_126, &dialog_text_127, - &dialog_text_128, &dialog_text_129, &dialog_text_130, &dialog_text_131, - &dialog_text_132, &dialog_text_133, &dialog_text_134, &dialog_text_135, - &dialog_text_136, &dialog_text_137, &dialog_text_138, &dialog_text_139, - &dialog_text_140, &dialog_text_141, &dialog_text_142, &dialog_text_143, - &dialog_text_144, &dialog_text_145, &dialog_text_146, &dialog_text_147, - &dialog_text_148, &dialog_text_149, &dialog_text_150, &dialog_text_151, - &dialog_text_152, &dialog_text_153, &dialog_text_154, &dialog_text_155, - &dialog_text_156, &dialog_text_157, &dialog_text_158, &dialog_text_159, - &dialog_text_160, &dialog_text_161, &dialog_text_162, &dialog_text_163, - &dialog_text_164, &dialog_text_165, &dialog_text_166, &dialog_text_167, - &dialog_text_168, &dialog_text_169, NULL, -}; - diff --git a/text/jp/dialogs.h b/text/jp/dialogs.h new file mode 100644 index 0000000..4a5821c --- /dev/null +++ b/text/jp/dialogs.h @@ -0,0 +1,1887 @@ +// Parameters: dialog enum ID, (unused), lines per box, left offset, width + +DEFINE_DIALOG(DIALOG_000, 1, 5, 30, 200, _("\ +おおっと,ここはキケンな\n\ +せんじょうの どまんなか。\n\ +『え』のなかのせかいには\n\ +クッパが ぬすんだ\n\ +パワ-スタ-がある。\n\ +まずは,あかいボムへいに\n\ +はなしかけてみるといい!\n\ +Bボタンではなしができる。\n\ +きっと,ちからになって\n\ +くれるはずだ。\n\ +カンバンを よむときも\n\ +たちどまって Bボタン!\n\ +AかBボタンですすめる!\n\ +まえにたつだけで はなし\n\ +かける,どうぶつもいます。")) + +DEFINE_DIALOG(DIALOG_001, 1, 4, 95, 200, _("\ +あぶない あぶない!!\n\ +こんなところを うろうろ\n\ +してると,みずばくだんが\n\ +ふってきますよ。\n\ +くろいボムへいたちは\n\ +たたかいが だいすきで,\n\ +いつも ぼくらを\n\ +こうげきしてきます。\n\ +ボムキングという ボスが\n\ +スタ-を てにいれてから\n\ +ここは せんじょうに\n\ +なってしまいました。\n\ +ボムキングから スタ-を\n\ +とりあげてくれませんか?\n\ +このさきの はしをわたり\n\ +みちぞいにひだりにいけば,\n\ +ボムとりでの いりぐちに\n\ +つきます。キングのスタ-\n\ +を とりもどしたら また\n\ +あいに きてください。")) + +DEFINE_DIALOG(DIALOG_002, 1, 4, 95, 200, _("\ +ちょっと あなた!\n\ +このさきはキケンですよ!\n\ +\n\ +そこで,アドバイスです。\n\ +そらから ふってくる\n\ +みずばくだんをよけて,\n\ +はしを『2つ』わたると\n\ +あちらの『じんち』です。\n\ +やまのうえのボムキングは\n\ +すごく ちからもちです。\n\ +かつぎあげられないように\n\ +きをつけてください。\n\ +ぼくら あかボムへいは\n\ +あなたのみかたです。\n\ +いつでも はなしかけて\n\ +きてくださいね!")) + +DEFINE_DIALOG(DIALOG_003, 1, 5, 95, 200, _("\ +おかげで ボムキングは\n\ +おとなしくなりました!\n\ +でも,たたかいは おわり\n\ +ません。 かいぶつたちが\n\ +まだスタ-をもっています。\n\ +スタ-をいくつかとったら\n\ +あたらしい へやのドアを\n\ +ひらくことが できます。\n\ +つぎのへやの せかいへと\n\ +すすんでください!\n\ +ぼくらのなかまが\n\ +おまちしています。\n\ +はなしかけて くださいね。\n\ +いつでも たいほうを\n\ +じゅんびしますよ。")) + +DEFINE_DIALOG(DIALOG_004, 1, 3, 95, 200, _("\ +ぼくたちは へいわを\n\ +ねがっています。 だから\n\ +たいほうは つかいません。\n\ +けれど あなたをどこかに\n\ +とばすなら へいきです。\n\ +どうぞ つかってください。\n\ +このコ-スにあるすべての\n\ +あかボムぐん たいほうを\n\ +つかえるように します。")) + +DEFINE_DIALOG(DIALOG_005, 1, 4, 30, 200, _("\ +な-んだ,マリオさんじゃ\n\ +ないッスか!\n\ +ボムキングやっつけたって\n\ +ほんと-ッスか?\n\ +いや- すごいッス!\n\ +さっすが つよいし,\n\ +オイラほどではないけど,\n\ +あしも はやいッスよね!\n\ +ひとつオイラと,\n\ +ボムキングのヤツがいた\n\ +おやまのちょうじょうまで\n\ +かけっこでもしませんか?\n\ +それでは オイラが,\n\ +『ドン!』といったら\n\ +スタ-ト ッスよ。\n\ +\n\ + ヨ---イ!\n\ +\n\ + ドン! やめる")) + +DEFINE_DIALOG(DIALOG_006, 1, 4, 30, 200, _("\ +ははっ ズルッコは\n\ +なしッス! マリオさん。\n\ +またこんど\n\ +あそびましょうね。")) + +DEFINE_DIALOG(DIALOG_007, 1, 6, 30, 200, _("\ +ハア ハア ハア\n\ +いや-まいったッス!\n\ +ほんと はえ-ッスね!\n\ +オイラに かったきねんに,\n\ +これ,あげるッス。\n\ +ホイ!")) + +DEFINE_DIALOG(DIALOG_008, 1, 5, 30, 200, _("\ +もうけんワンワン キケン\n\ +Cボタンの うえをおして\n\ +『マリオのちかく』から\n\ +ながめて ください。\n\ +とても コワイです。\n\ +クイのうえの あかコイン。\n\ +おなじコインを さがして\n\ +8まいあつめると,はしを\n\ +わたったひだりのはやしに\n\ +スタ-がでます。")) + +DEFINE_DIALOG(DIALOG_009, 1, 5, 30, 200, _("\ +ひっさしぶりッス! いま\n\ +ちょ-どかえったとこッス。\n\ +パワ-スタ-のせいか\n\ +いちだんと はやくなった\n\ +ようッスね!\n\ +このまえは まけちゃって\n\ +ほ-んと くやしいッス。\n\ +ここは オイラのホ-ム\n\ +グランド!じしんあるッス。\n\ +もいちどやりましょうよ!\n\ +ゴ-ルはカゼふきのたに!\n\ +しってるッスよね!?\n\ +そんじゃ\n\ + ヨ---イ!\n\ + ドン! やめる")) + +DEFINE_DIALOG(DIALOG_010, 1, 3, 30, 200, _("\ +そらを じゆうにとべる\n\ +『はねのぼうし』の\n\ +スイッチを ふみました。\n\ +せかいじゅうにある\n\ +あかブロックから,はねの\n\ +ぼうしがとびだします。\n\ +ここまでをセ-ブする?\n\ +\n\ + はい いいえ")) + +DEFINE_DIALOG(DIALOG_011, 1, 3, 30, 200, _("\ +むてきの からだになれる\n\ +『メタルのぼうし』の\n\ +スイッチを ふみました。\n\ +せかいじゅうの みどりの\n\ +ブロックから,メタルの\n\ +ぼうしが とびだします。\n\ +ここまでをセ-ブする?\n\ +\n\ + はい いいえ")) + +DEFINE_DIALOG(DIALOG_012, 1, 3, 30, 200, _("\ +すがたをけせる まほうの\n\ +『とうめいのぼうし』の\n\ +スイッチを ふみました。\n\ +せかいじゅうの あおい\n\ +ブロックから,とうめい\n\ +ぼうしが とびだします。\n\ +ここまでをセ-ブする?\n\ +\n\ + はい いいえ")) + +DEFINE_DIALOG(DIALOG_013, 1, 5, 30, 200, _("\ +100まいコインの\n\ +スタ-を てにいれた!\n\ +おしろのパワ-が\n\ +またひとつマリオに\n\ + ちからを あたえた。\n\ +\n\ +ここまでセ-ブしますか?\n\ +\n\ + はい いいえ")) + +DEFINE_DIALOG(DIALOG_014, 1, 5, 30, 200, _("\ +おもわぬところで\n\ +スタ-をてにいれた。\n\ +そして おしろのパワ-が\n\ +またひとつ マリオに\n\ + ゆうきを あたえた。\n\ +\n\ +ここまでセ-ブしますか?\n\ +\n\ + はい いいえ")) + +DEFINE_DIALOG(DIALOG_015, 1, 4, 30, 200, _("\ +てきはパンチでたおせるよ。\n\ +Aボタンは『ジャンプ』\n\ +Bボタンは『パンチ』です。\n\ +AとBボタンで『キック』。\n\ +『ものをもつ』ときも\n\ + Bボタン!\n\ +『なげる』は もういちど\n\ +Bボタンをおしてください。")) + +DEFINE_DIALOG(DIALOG_016, 1, 4, 30, 200, _("\ +キラキラひかったコウラに\n\ +のると,どんなところも\n\ +スイスイすすめる!\n\ +てきをけちらし すすめ!")) + +DEFINE_DIALOG(DIALOG_017, 1, 4, 30, 200, _("\ +ワシがボムキング,つまり\n\ +ばくだんの おうさまだ。\n\ +よくここまできた。その\n\ +ゆうきは ほめてやろう。\n\ +とはいえ,おまえにタダで\n\ +だいじな パワ-スタ-を\n\ +やるわけには いかん。\n\ +そこで チャンスをやろう。\n\ +パワ-スタ-がほしければ\n\ +ワシを なげとばしてみろ。\n\ +うしろから かつげるか?\n\ +さあ,かかってこい!")) + +DEFINE_DIALOG(DIALOG_018, 1, 4, 30, 200, _("\ +ねむいので,ねています。\n\ +おこすと おこります。\n\ +\n\ +しずかに あるきましょう。")) + +DEFINE_DIALOG(DIALOG_019, 1, 2, 30, 200, _("\ +ろうかは しずかに\n\ +あるきましょう。")) + +DEFINE_DIALOG(DIALOG_020, 1, 5, 95, 150, _("\ +おしろへ あそびに\n\ +きてください。\n\ +ケ-キを つくって\n\ +まってます。\n\ + -ピ-チより-")) + +DEFINE_DIALOG(DIALOG_021, 1, 5, 95, 200, _("\ +ようこそいらっしゃいませ\n\ +・・だれも いませんので\n\ +とっとと\n\ + おかえりください。\n\ +ガハハハッ!")) + +DEFINE_DIALOG(DIALOG_022, 1, 3, 95, 200, _("\ +カギが かかっている・・")) + +DEFINE_DIALOG(DIALOG_023, 1, 3, 95, 200, _("\ +・・・カギがあわない!\n\ +このカギは『ちか』への\n\ +カギのようだ。")) + +DEFINE_DIALOG(DIALOG_024, 1, 3, 95, 200, _("\ +クッパがとじたこのドアを\n\ +ひらくには,スタ-の\n\ +パワ-が ひつようです。\n\ +どこかのへやの『え』の\n\ +なかの モンスタ-から\n\ +とりもどしてきてください")) + +DEFINE_DIALOG(DIALOG_025, 1, 3, 95, 200, _("\ +このドアを ひらくには\n\ +スタ-3まいの パワ-が\n\ +ひつようです。\n\ +あと[%]まいの スタ-が\n\ +ひつようです。")) + +DEFINE_DIALOG(DIALOG_026, 1, 3, 95, 200, _("\ +このドアを ひらくには\n\ +スタ-8まいの パワ-が\n\ +ひつようです。\n\ +あと[%]まいの スタ-が\n\ +ひつようです。")) + +DEFINE_DIALOG(DIALOG_027, 1, 3, 95, 200, _("\ +このドアを ひらくには\n\ +スタ-30まいのパワ-が\n\ +ひつようです。\n\ +スタ-があと\n\ +[%]まいひつようです。")) + +DEFINE_DIALOG(DIALOG_028, 1, 3, 95, 200, _("\ +このドアを ひらくには\n\ +スタ-50まいのパワ-が\n\ +ひつようです。\n\ +あと[%]まいの スタ-が\n\ +ひつようです。")) + +DEFINE_DIALOG(DIALOG_029, 1, 4, 95, 200, _("\ +はてしない かいだんの\n\ +ドアを ひらくには\n\ +スタ-70まいのパワ-が\n\ +ひつようです・・・・・\n\ +あと[%]まいの スタ-が\n\ +たりません・・・\n\ +ガハハッ!")) + +DEFINE_DIALOG(DIALOG_030, 1, 4, 30, 200, _("\ +カメラマンのジュゲムです。\n\ +ちょっと アドバイス!\n\ +しずかにあるきたいときは\n\ +ゆっくり あるくことです。\n\ +まわりを みたいときは\n\ +Cボタンのみぎとひだりで\n\ +カメラをすこしまわせます。\n\ +Cのしたで とおくから。\n\ +できないところでは\n\ +『ブ-ッ!』といいます。\n\ +よろしく!! \n\ + -ジュゲム")) + +DEFINE_DIALOG(DIALOG_031, 1, 3, 30, 200, _("\ +またまた まけちゃったよ。\n\ +こんどはスッゴい じしん\n\ +あったんッスけどね・・・\n\ +ほんと すごいッスね!\n\ +このスタ-も\n\ +あげちゃいます!")) + +DEFINE_DIALOG(DIALOG_032, 1, 4, 30, 200, _("\ +はねぼうしの あるひとは\n\ +3かいれんぞくでジャンプ\n\ +しよう。 おおぞらたかく\n\ +とびあがれます。\n\ +たいほうでとぶと\n\ +さらに たかくとべます。\n\ +まわりをみるのはCボタン。\n\ +おりたいときはZボタン。")) + +DEFINE_DIALOG(DIALOG_033, 1, 4, 30, 200, _("\ +ワ-プどかんを\n\ +くぐりぬけ,\n\ +ピ-チの おしろに\n\ +つきました。\n\ +そうさは カンタン。\n\ +Aボタンが ジャンプ!\n\ +Bボタンで こうげき!\n\ +カンバンも よめます。\n\ +マリオを うごかすのは\n\ +まんなかに ついてる\n\ +『3Dスティック』。\n\ +まずはおしろへ すすめ!")) + +DEFINE_DIALOG(DIALOG_034, 1, 5, 30, 200, _("\ +こんにちは! \n\ +ぼくたちカメラマンの\n\ +ジュゲムブラザ-ズです。\n\ +これから,カメラをもって\n\ +あなたに ついていきます。\n\ +カメラは おすすめのいち\n\ +から さつえいしてます。\n\ +むきをかえるのはCボタン,\n\ +かえられない ときは\n\ +『ブ-ッ!』といいます。\n\ +ちょっと たちどまったら\n\ +Cボタンのうえ!\n\ +まわりを ながめられます。\n\ +ゲ-ムに もどすときは\n\ +『Aボタン』です。\n\ +『Rボタン』をつかうと\n\ +いろんなカメラモ-ドに\n\ +きりかえられます。\n\ +また,かんばんなどをみて\n\ +おぼえてください!\n\ +いじょう!! カメラマン\n\ +ジュゲムブラザ-ズからの\n\ +おしらせでした。\n\ +それじゃ,きをつけて!")) + +DEFINE_DIALOG(DIALOG_035, 1, 4, 30, 200, _("\ +きいろい4つの Cボタン。\n\ +『うえ』をおすと\n\ +3Dスティックで\n\ +まわりを みわたせます。\n\ +ふだんマリオをみてるのは\n\ +おすすめのジュゲムカメラ。\n\ +Cボタンで すこし,\n\ +かくどが かえられます。\n\ +Rボタンをおすと\n\ +マリオの うしろからみる\n\ +マリオカメラに なります。\n\ +もどすときはもういちどR。\n\ +『ジュゲムカメラ』と\n\ +『マリオカメラ』どちらも\n\ +Cボタンの したをおすと,\n\ +とおくへ はなれます。\n\ +いまつかっている\n\ +カメラを しりたいときは,\n\ +がめん みぎしたの\n\ +アイコンを みてください。")) + +DEFINE_DIALOG(DIALOG_036, 1, 5, 30, 200, _("\ + 『てんぼうだい』\n\ +Cボタンの うえをおすと,\n\ +まわりを みわたせます。\n\ +みえないところは よ-く\n\ +たしかめてからすすめ-!\n\ +Rボタンはマリオのカメラ。\n\ +いつも マリオのうしろを\n\ +ついていくぞ。ジュゲムに\n\ +もどすときは もういちど\n\ +Rボタンをおすこと。\n\ +ポ-ズがめんで モ-ドを\n\ +かえると,Rボタンを\n\ +おしてるあいだ カメラを\n\ +『とめる』こともできる!\n\ +ためしてみよう。\n\ +つかってるカメラモ-ドは\n\ +みぎしたのアイコンで\n\ +たしかめよう。\n\ +マリオとの きょりは\n\ +きいろやじるしを みよう。")) + +DEFINE_DIALOG(DIALOG_037, 1, 3, 30, 200, _("\ +あたしの『かち』です。\n\ +あなたの『まけ』です。\n\ +ははははは!!!\n\ +マリオさん,と-っても\n\ +おしかったですね。\n\ +また あそびましょう!")) + +DEFINE_DIALOG(DIALOG_038, 1, 3, 95, 200, _("\ +パワ-スタ-の ちからで\n\ +つぎの せかいへのドアは\n\ +しずかにひらいた。")) + +DEFINE_DIALOG(DIALOG_039, 1, 5, 30, 200, _("\ +-ボムとりで いりぐち-\n\ + だれも はいるな!\n\ +\n\ +ワシのパワ-スタ-は\n\ +だれにも わたさぬ。\n\ +クッパどのからいただいた\n\ +だいじな だいじな\n\ +たからものだ。\n\ +なんまいか かくしたが\n\ +ばしょは おしえぬ。\n\ +コ-スはじめの スタ-の\n\ +なまえを,ヒントにする\n\ +ぐらいなら ゆるす。\n\ +\n\ +おやまのうえのボムキング")) + +DEFINE_DIALOG(DIALOG_040, 1, 3, 30, 200, _("\ +このさき キケン!\n\ +リフトのたにぞこ です。")) + +DEFINE_DIALOG(DIALOG_041, 1, 4, 30, 200, _("\ +オイラがかっちゃいました。\n\ +ハッハッハッ\n\ +たいしたことないッスね!\n\ +じゃ,またこんどね!")) + +DEFINE_DIALOG(DIALOG_042, 1, 5, 30, 200, _("\ +この『はし』せまい。\n\ +ゆっくりわたろう!\n\ +ガケのカドにとびついたり\n\ +ゆっくりと おりると\n\ +ぶらさがれます。\n\ +『て』を はなすときは\n\ +Zボタンか スティックを\n\ +マリオのうしろへ。\n\ +のぼるときには まえへ\n\ +たおしてください。\n\ +ぶらさがって すぐに\n\ +Aボタンをおすと\n\ +すばやく あがれます。")) + +DEFINE_DIALOG(DIALOG_043, 1, 4, 30, 200, _("\ +ジャンプしてAボタンを\n\ +おしっぱなしに すると\n\ +ぶらさがれる ところが\n\ +あります。\n\ +『とり』につかまるとき\n\ +と おなじです。")) + +DEFINE_DIALOG(DIALOG_044, 1, 5, 95, 200, _("\ +だれだい! せっかく\n\ +いいきもちで ねてたのに。\n\ +あ- カラダがおもいな-\n\ +ちょ-どいいや!わたしと\n\ +ひと-っとび しません?\n\ +ジャンプボタンを\n\ +おしているあいだ\n\ +ぶらさがれますよ-。\n\ +おりたいときに\n\ +はなせばい-です。\n\ +お-すきなところへ\n\ +おつれしま-す。\n\ +かげを よ-くみて\n\ +Aボタンで つかまって\n\ +くださいね-!")) + +DEFINE_DIALOG(DIALOG_045, 1, 5, 95, 200, _("\ +あ-あ,つかれた-・・\n\ +や-っぱり おもいな-。\n\ +きょうは このあたりで!\n\ +『もういちどAボタンを\n\ +おしなおしてください。』\n\ +もうすこし とんだら\n\ +ほんとに てをはなしてね\n\ +\n\ +じゃあ,さよなら-!")) + +DEFINE_DIALOG(DIALOG_046, 1, 5, 30, 200, _("\ +ジャンプのワザ まとめて\n\ +せいりしておきます。\n\ +とてもだいじな3つのワザ。\n\ +おぼえて つかって\n\ +みてください。\n\ +タイミングよく つづけて\n\ +とぶと たかくとべます。\n\ +はやく はしっていると\n\ +さらに たかくとべます。\n\ +『3だんとび』です。\n\ +はしりながら Zボタンで\n\ +しゃがんでジャンプすると\n\ +とおくへ とべます。\n\ +『はばとび』です。\n\ +とてもべんりです。\n\ +まっすぐたった カベに\n\ +むかって ジャンプして,\n\ +ぶつかった ところから\n\ +また ジャンプできます。\n\ +『カベキック』といいます。\n\ +だいじな テクニック\n\ +『3だんとび』\n\ +『はばとび』\n\ +『カベキック』\n\ + わかった?")) + +DEFINE_DIALOG(DIALOG_047, 1, 3, 95, 200, _("\ +こんにちは!\n\ +たいほうの じゅんびに\n\ +かかります!・・・・・")) + +DEFINE_DIALOG(DIALOG_048, 1, 4, 30, 200, _("\ +ここは ツルツルすべる\n\ +ゆきやまの ちょうじょう。\n\ +まずはそこの\n\ +やまごやへ どうぞ。")) + +DEFINE_DIALOG(DIALOG_049, 1, 5, 30, 200, _("\ +ジャンプわざカベキックを\n\ +おぼえていますか?\n\ +たかいところへ あがる\n\ +とてもだいじなテクニック。\n\ +カベからカベへジャンプ!\n\ +スティックをつかって\n\ +はねかえったほうに\n\ +かそくする。\n\ +よ-く\n\ +れんしゅう しておこう!")) + +DEFINE_DIALOG(DIALOG_050, 1, 4, 30, 200, _("\ +Zボタンで しゃがめます。\n\ +『さか』では すべれます。\n\ +ジャンプの とちゅうなら\n\ +『ヒップドロップ』!!\n\ +とまって しゃがんでから\n\ +ジャンプすると\n\ +『バックちゅう』できる!\n\ +わかった? まだあります。\n\ +はしりながら しゃがんで\n\ +ジャンプで『はばとび』!\n\ +しゃがんでから あるくと\n\ +・・・ひみつです。")) + +DEFINE_DIALOG(DIALOG_051, 1, 5, 30, 200, _("\ +『き』や『ぼう』には\n\ +ジャンプで つかまれます。\n\ +『のぼる』『おりる』は\n\ +スティックで,やめるのは\n\ +Zボタンで『て』をはなす。\n\ +『むきをかえる』ときは\n\ + 3Dスティックの\n\ + みぎ と ひだり。\n\ +Aボタンで『せなか』の\n\ +ほうこうにジャンプします。\n\ +テッペンで もういちど\n\ +スティックを うえにいれ,\n\ +『さかだち』ができる。\n\ +むきをきめて せなかの\n\ +ほうこうに ジャンプだ!")) + +DEFINE_DIALOG(DIALOG_052, 1, 4, 30, 200, _("\ +Zボタンで しゃがめます。\n\ +とまって しゃがんでから\n\ +ジャンプすると,\n\ +『バックちゅう』できる!\n\ +すばやくユ-タ-ンを\n\ +しながら,ジャンプすると\n\ +『ちゅうがえり』!\n\ +どちらも たかくとべます。")) + +DEFINE_DIALOG(DIALOG_053, 1, 6, 30, 200, _("\ +コインリングや かくれた\n\ +シ-クレットポイントを\n\ +とおると あかいすうじが\n\ +でてきます。5こつづけて\n\ +とおると ひみつのスタ-\n\ +が あらわれます。")) + +DEFINE_DIALOG(DIALOG_054, 1, 4, 30, 200, _("\ +スライダ-へようこそ!!\n\ +さかを すべりはじめたら\n\ +スティックまえで かそく,\n\ +うしろで げんそくできる。")) + +DEFINE_DIALOG(DIALOG_055, 1, 5, 30, 200, _("\ +あたし,このスライダ-の\n\ +せかいチャンピオン!!!\n\ +からだ,デカイけど\n\ +とっても はやいよ!\n\ +あなたチャレンジします?\n\ +それでは!\n\ +\n\ + レディ---・・・!\n\ + ・・・ \n\ + ゴ-!! やめとく")) + +DEFINE_DIALOG(DIALOG_056, 1, 3, 30, 200, _("\ +ヒエ---ッ!!!\n\ +セカイきろくだよ!\n\ +スゴイよ!あなた!!\n\ +きんメダルの かわりに\n\ +コレ あげます!\n\ +いや--スゴイスゴイ!!")) + +DEFINE_DIALOG(DIALOG_057, 1, 4, 30, 200, _("\ +どこかで うちのこどもを\n\ +みかけません でしたか?\n\ +・・・わたしんち こども\n\ +いっぱい いましてね・・\n\ +なんびき いたのかも\n\ +おぼえてなくて・・・・\n\ +ほんとに・・\n\ +どこへ いったんでしょう。\n\ +だいてやると\n\ +とても いいこえで\n\ +なくんですけどね・・・\n\ +ヤレヤレ・・・・・")) + +DEFINE_DIALOG(DIALOG_058, 1, 5, 30, 200, _("\ +ああ--っ!!たしかに\n\ +うちの こどもです・・・\n\ +『こらっ! いつも\n\ +ちかくで あそびなさいと\n\ +いってるだろ!』\n\ +あなた とっても\n\ +いいひとです。 おれいに\n\ +これを さしあげます。\n\ +あったかくって とても\n\ +げんきに なりますよ。")) + +DEFINE_DIALOG(DIALOG_059, 1, 5, 30, 200, _("\ +このこは うちのこじゃ-\n\ +ないようだなあ・・・\n\ +かわいそうに・・・\n\ +おやはいったい\n\ +なにをしてるんだろう・・")) + +DEFINE_DIALOG(DIALOG_060, 1, 4, 30, 200, _("\ +-みずにはいるちゅうい-\n\ +\n\ +もぐっていると しぬほど\n\ +くるしくなってきます。\n\ +すいめんに あがるか\n\ +アブクをみつけて\n\ +さわってください。\n\ +ひといき つけます。\n\ +およぐときは Aボタン!\n\ +おしてるだけでも すすみ\n\ +タイミングよく おすと\n\ +スピ-ドがでます。\n\ +もぐるときはスティックを\n\ +まえにたおして Aボタン。\n\ +うかぶときはスティックを\n\ +てまえにひいて Aボタン。\n\ +すいめんに いるときは\n\ +ジャンプします。\n\ + 『じゅんびたいそう\n\ + わすれずに!!』")) + +DEFINE_DIALOG(DIALOG_061, 1, 6, 30, 200, _("\ +つめたいみず キケン!!\n\ +およいでは いけません!\n\ +この こおりのいけは\n\ +とびあがるぐらい\n\ +つめたいです!\n\ + ペンギン")) + +DEFINE_DIALOG(DIALOG_062, 1, 5, 30, 200, _("\ +みどりの ブロックに\n\ +かくされている\n\ +ふしぎな ふしぎな\n\ +『メタルのぼうし』。\n\ +\n\ +ひをつけたってもえないし\n\ +てきのたまも はねかえす。\n\ +いきを とめても\n\ +へいきです。\n\ +こまったことにおよげない。")) + +DEFINE_DIALOG(DIALOG_063, 1, 4, 30, 200, _("\ +あおいブロックには\n\ +『とうめいぼうし』。\n\ +メダマも ビックリ\n\ +すがたをけせる。\n\ +テレサも まっさお\n\ +『ひみつのカベ』を\n\ +とおりぬけるぞ。")) + +DEFINE_DIALOG(DIALOG_064, 1, 4, 30, 200, _("\ +あかいブロックのなかの\n\ +はねのぼうしを かぶると,\n\ +3かいジャンプで\n\ +そらたかく とびあがれる。\n\ +そうさはスティックで!\n\ +てまえにひくと あがる。\n\ +まえにたおすと さがる。\n\ +やめるときはZボタンで!")) + +DEFINE_DIALOG(DIALOG_065, 1, 5, 30, 200, _("\ +およぎかた おしえます。\n\ +\n\ +みずにはいるとおよげます。\n\ +ながいあいだ『もぐる』と\n\ +くるしくなります。\n\ +すすむためには Aボタン。\n\ +タイミングよく おすと\n\ +スピ-ドが でます。\n\ +3Dスティックを まえに\n\ +たおすと もぐります。\n\ +すいめんに もどったり,\n\ +みずから あがるときは\n\ +てまえにひいて Aボタン。\n\ +すいめんでジャンプだ!\n\ +\n\ +Aボタン おしっぱなしに\n\ +していても,およげます。\n\ +らくちんです。\n\ +およいでいるあいだは\n\ +ドアを あけられません。")) + +DEFINE_DIALOG(DIALOG_066, 1, 5, 30, 200, _("\ +マリオ! クッパのはく\n\ +ほのおに きをつけて!\n\ +クッパを こらしめるには\n\ +うしろにまわりBボタンで\n\ +シッポをつかむのよ!\n\ +なげとばす まえには\n\ +3Dスティックで\n\ +グリグリふりまわすの。\n\ +はやく まわすほど\n\ +とおくまで とぶわ!\n\ +Cボタンで まわりを\n\ +よ-くみて!\n\ +なげとばした クッパは\n\ +4すみの バクダンに\n\ +ぶつけてやるの!\n\ +ねらいを\n\ +よ-くさだめて・・・\n\ +\n\ +もういちどBボタンよ!")) + +DEFINE_DIALOG(DIALOG_067, 1, 4, 30, 200, _("\ +ざんねんだったなマリオ!\n\ +ここには ピ-チちゃんは\n\ +いませんでした。\n\ + ガハハッ!!\n\ +わがはいの うしろに\n\ +まわりこんで シッポを\n\ +つかめるものなら\n\ +つかんでみるんだな。\n\ +スティックでグリグリ\n\ +まわして なげるなど\n\ +できるわけが ない!!\n\ + ガハハッ!!")) + +DEFINE_DIALOG(DIALOG_068, 1, 5, 30, 200, _("\ +ここは しゃくねつの\n\ +ファイアバブル ランド!\n\ +からだに ひがついても\n\ +おちないように あわてず\n\ +そうさしよう。\n\ +ほのおのいけに おちると\n\ +はねあがる! そうさは\n\ +できるので,おちついて。\n\ +あまりうごきまわらないで\n\ +ガンバレ!")) + +DEFINE_DIALOG(DIALOG_069, 1, 3, 30, 200, _("\ +『え』のなかのカイブツの\n\ +せかいには,せかいの\n\ +はてがあります。\n\ +みえないカベにあたったら\n\ +きっと そこが\n\ +『え』のせかいのはてです。\n\ +そらを とんでいるときも\n\ +そこから さきには\n\ +すすめません。")) + +DEFINE_DIALOG(DIALOG_070, 1, 5, 30, 200, _("\ +かいぶつたちの すんでる\n\ +『え』のなかのせかいから,\n\ +おしろの いりぐちの\n\ +メインホ-ルに\n\ +いつでも もどれます。\n\ +かならず きちんと\n\ +たちどまってから!\n\ +スタ-トボタンでポ-ズし,\n\ +『コ-スからでる』を\n\ +えらんでください。\n\ +ひとつのせかいのスタ-は\n\ +ぜんぶ とらなくても,\n\ +つぎのせかいにすすめます。\n\ +じょうずになったら,また\n\ +もどってきてください。\n\ +スタ-を1つ とるごとに\n\ +つぎのスタ-のヒントが\n\ +スタ-トがめんに でます。\n\ +えらんだヒントいがいの\n\ +スタ-をとってもOKです。")) + +DEFINE_DIALOG(DIALOG_071, 1, 4, 30, 200, _("\ + -このさきキケン-\n\ + あやしいケムリに\n\ + ちゅうい!\n\ + いきができません!\n\ +くるしくなったら\n\ +たかいところへ!\n\ +まる・・・・・ひなんじょ\n\ +やじるし・・・でいりぐち")) + +DEFINE_DIALOG(DIALOG_072, 1, 5, 30, 200, _("\ +カゼつよし! ぼうしは\n\ +しっかり かぶりましょう。\n\ +もし ぼうしをなくしても\n\ +ここでなくした ぼうしは\n\ +このやまで みつかります。")) + +DEFINE_DIALOG(DIALOG_073, 1, 5, 95, 200, _("\ +ただしい じゅんばんで\n\ +はこを ひらくこと。\n\ +こたえは だれにも\n\ +おしえてやらない。\n\ + --せんちょう--")) + +DEFINE_DIALOG(DIALOG_074, 1, 5, 30, 200, _("\ +ガケのカドに とびつくと\n\ +ぶらさがれます。\n\ +おりるときはスティックを\n\ +マリオのうしろへいれるか,\n\ +Zボタンをおしてください。\n\ +のぼるときはスティックを\n\ +まえに たおしてください。\n\ +ぶらさがって\n\ +すぐに Aボタンをおすと\n\ +すばやく のぼれます!")) + +DEFINE_DIALOG(DIALOG_075, 1, 5, 30, 200, _("\ +マリオ!!たいへんです。\n\ +クッパがまた・・・・\n\ +おしろの パワ-スタ-を\n\ +ぬすんで カベのなかへ!\n\ +わたしたちも・・・\n\ +みんなカベのなかへ・・・\n\ +すいこまれていくわ・・・\n\ +『カベ』や『え』のなか\n\ +から パワ-スタ-を\n\ +とりもどして!\n\ +クッパの ふさいだドアは\n\ +パワ-スタ-の ちからで\n\ +ひらくことが できるわ!\n\ +このへやには ひみつの\n\ +つうろがあるの。\n\ +クッパにみつからなかった\n\ +かくしつうろの ひとつよ。\n\ +そこには おしろの\n\ +かくれスタ-が あるわ!\n\ +きっと やくにたつはずよ。")) + +DEFINE_DIALOG(DIALOG_076, 1, 5, 30, 200, _("\ +パワ-スタ-のおかげで\n\ +おしろに,げんきが\n\ +もどってきました。\n\ +クッパなんか\n\ +おいはらってください。\n\ +おやくに たつなら\n\ +おしろの はなしをします。\n\ +『カガミのへや』では\n\ +カガミにうつらないものを\n\ +よくみてください。\n\ +みずのまちへ いくときは,\n\ +『え』にとびこむ たかさ\n\ +によって,まちをすっかり\n\ +みずびたしに できます。\n\ +アッ,これ みつけました。")) + +DEFINE_DIALOG(DIALOG_077, 1, 3, 150, 200, _("\ +とびらを ひらくまえに\n\ +2つの はしらを\n\ +おしさげて おくこと。")) + +DEFINE_DIALOG(DIALOG_078, 1, 5, 30, 200, _("\ +あおコインのブロックを\n\ +ジャンプちゅうにZボタン\n\ +『ヒップドロップ』で\n\ + ぶっつぶすと\n\ +あおコインがでてきます。\n\ +あおコイン1まいで\n\ +きいろコイン5まいぶん\n\ +とてもラッキ-!\n\ +でも じかんがたつと\n\ +きえてしまう・・ザンネン")) + +DEFINE_DIALOG(DIALOG_079, 1, 5, 30, 200, _("\ +いててて!\n\ +はなしてくれよ。\n\ +ウッキッキ-!\n\ +チョットからかった\n\ +だけなのに!\n\ +はなしてくれたら,\n\ +いいもの あげるからさ。\n\ +ネ-ネ- はなしてくれよ。\n\ +\n\ + はなす いやだ")) + +DEFINE_DIALOG(DIALOG_080, 1, 3, 30, 200, _("\ +ヘッヘッヘッ!")) + +DEFINE_DIALOG(DIALOG_081, 1, 6, 30, 200, _("\ +ここは みずにみちたまち。\n\ +このまちは,あなたが\n\ +ここを おとずれるときの\n\ +たかさと,おなじだけの\n\ +みずをもって\n\ +あなたをむかえる。")) + +DEFINE_DIALOG(DIALOG_082, 1, 5, 30, 200, _("\ +ぼうしを なくすと\n\ +ダメ-ジがおおくなるので\n\ +だいじに してください。\n\ +なくしたら,なくした\n\ +コ-スで みつかります。\n\ +アア-どうしよう・・・\n\ +ピ-チひめは,カベに\n\ +ひきこまれた ままだし。\n\ +はやく クッパを\n\ +やっつけてください。\n\ +えのほかにカベのなかにも\n\ +モンスタ-の せかいが\n\ +あります。 あっ!これ\n\ +もっていって ください。\n\ +かくして もってました。")) + +DEFINE_DIALOG(DIALOG_083, 1, 4, 30, 200, _("\ +とけいがとても へんです。\n\ +とけいに はいるとき,\n\ +ながいはりの ばしょに\n\ +ちゅういしてください!\n\ +これ,とりもどしました。\n\ +もっていって ください。\n\ +かっこよく\n\ +うけとってくださいね!")) + +DEFINE_DIALOG(DIALOG_084, 1, 5, 30, 200, _("\ +イテテ らんぼうなひとだ。\n\ +このスタ-は クッパって\n\ +ヤツが くれたんだよ。\n\ +あんたのものだ なんて\n\ +しらなかったよ。\n\ +かえすって,かえすってば,\n\ +かえせば いいんでしょ。\n\ +はなしてくれたら\n\ +スタ-ぐらい かえすから。\n\ +ホイ!!")) + +DEFINE_DIALOG(DIALOG_085, 1, 4, 30, 200, _("\ +この やかたから\n\ + ぶじにでられたら\n\ +\n\ +・・・エライ。・・")) + +DEFINE_DIALOG(DIALOG_086, 1, 3, 30, 200, _("\ +まわりをクルクルまわると\n\ +めをまわす ヤツがいます。")) + +DEFINE_DIALOG(DIALOG_087, 1, 5, 30, 200, _("\ +えんとつから はいるのは\n\ +サンタだけではありません。\n\ + ごえんりょなく\n\ + おはいりください。\n\ +スノ-マンハウスお-な-")) + +DEFINE_DIALOG(DIALOG_088, 1, 5, 30, 200, _("\ +-さぎょうリフトじょう-\n\ +\n\ +ここから おりるひとは\n\ +ひだりのぼうにつかまって,\n\ +きをつけて おりること。")) + +DEFINE_DIALOG(DIALOG_089, 1, 4, 95, 200, _("\ +どちらのみちも キケン!\n\ +くらいあしもとにチュウイ。\n\ +はばとび できないひとは\n\ +みぎのみちを すすめ。\n\ +みぎ・・さぎょうリフト\n\ + ケムリめいろ\n\ +ひだり・・やみのおおあな\n\ + ちていこ ヘ\n\ +あかまる\n\ + ・・2ごうエレベ-タ-\n\ + ちていこ へ\n\ +やじるし・・げんざいち")) + +DEFINE_DIALOG(DIALOG_090, 1, 6, 30, 200, _("\ +ガハハッ!\n\ +ワナにはまったなマリオ!\n\ +また ジャマをしにきた\n\ +ようだが,ともだちからの\n\ +ちゅうこくだ。\n\ +あしもとには きをつけな。")) + +DEFINE_DIALOG(DIALOG_091, 1, 3, 30, 200, _("\ +つよいカゼに チュウイ!\n\ +でも,カゼにのると\n\ +フワフワきもちいいです。")) + +DEFINE_DIALOG(DIALOG_092, 1, 3, 30, 200, _("\ +いいかげんにしろマリオ!\n\ +いつもいつも,わがはいの\n\ +ジャマをしおって!\n\ +せっかく かいぶつたちと\n\ +たのしくやっているのに。\n\ +スタ-をかえすんだ!\n\ +カベのなかのヤツらには,\n\ +そいつが いるんだよ!!\n\ +ガハハッ!!")) + +DEFINE_DIALOG(DIALOG_093, 1, 4, 30, 200, _("\ +アララ!いつのまにきた?\n\ +・・・・・・ムム\n\ +どちらにしろ わがはいの\n\ +ほのおの えじきだっ!\n\ +どれだけスタ-のちからを\n\ +かりても,わがはいには\n\ +かなうわけがないわ!\n\ +ガハハッ!! マリオ!\n\ +キサマの おともだちも\n\ +み-んな カベのなかさ。\n\ +ピ-チちゃんも わたさん\n\ +もんね! いくぞ!!")) + +DEFINE_DIALOG(DIALOG_094, 1, 3, 30, 200, _("\ +のぼりにくい さかみちは\n\ +じょそうをつけて\n\ +げんきよく のぼる!\n\ +はばとび おぼえてるか?\n\ +はしりながら Zボタンで\n\ +しゃがんで ジャンプだ!")) + +DEFINE_DIALOG(DIALOG_095, 1, 3, 30, 200, _("\ +このように カンバンの\n\ +まえで Bボタンをおすと\n\ +よむことができます。\n\ +ノコノコや どうぶつたち\n\ +と はなすときは,まえに\n\ +たちどまってください。\n\ +このコ-スにあるクッパに\n\ +ぬすまれたパワ-スタ-を\n\ +とりかえしてください。")) + +DEFINE_DIALOG(DIALOG_096, 1, 5, 30, 200, _("\ +このあたり みちせまし。\n\ +ゆっくり あるこう!\n\ +だれも ちょうじょうまで\n\ +たどりつかせない。\n\ +フフフ。\n\ +きもちよくねているひとを\n\ +おこすと,とっても\n\ +ふきげんに なります。\n\ +ゆっくりと しずかに\n\ +あるきましょう。フフフ。")) + +DEFINE_DIALOG(DIALOG_097, 1, 4, 30, 200, _("\ +たいあたり されたら\n\ +たいあたりで かえせ!\n\ +ほのおのうみにつきおとす\n\ +1たい1のデスマッチだ!")) + +DEFINE_DIALOG(DIALOG_098, 1, 3, 95, 200, _("\ +ここまでおいで・・・・\n\ +ケッケッケ・・")) + +DEFINE_DIALOG(DIALOG_099, 1, 3, 95, 200, _("\ +クックック・・\n\ + とりついてやる。\n\ + ヒッヒッヒ!\n\ +カベも とおりぬけてやる。\n\ +こんなこと できるか?\n\ + ケッケッケ!")) + +DEFINE_DIALOG(DIALOG_100, 1, 4, 95, 200, _("\ +ウッキッキ-\n\ + ワッキッキ-!\n\ + ホヨホヨ。\n\ +いっただき-。")) + +DEFINE_DIALOG(DIALOG_101, 1, 5, 95, 200, _("\ +ヘッヘッヘッ!\n\ +つかまっちゃいました。\n\ +きにいってたのになあ・・\n\ +かえしますよ。\n\ + ウッキッキ-!!")) + +DEFINE_DIALOG(DIALOG_102, 1, 4, 30, 200, _("\ +テレサの たおしかた\n\ +おしえます。\n\ +はずかしがりやの\n\ +テレサです。\n\ +『めとめがあう』と\n\ +すがたをけします。\n\ +『とうめいのとき』は\n\ +あたりません。\n\ +『せなかをむける』と\n\ +あらわれます。\n\ +うしろにまわって\n\ +なぐると よわい。")) + +DEFINE_DIALOG(DIALOG_103, 1, 4, 95, 200, _("\ +4ほんの はしらのうえに\n\ +たつものに,わたしは,\n\ +このやかたを おとずれる\n\ +しかくを あたえよう。")) + +DEFINE_DIALOG(DIALOG_104, 1, 6, 30, 200, _("\ +めのまえのブル-グレ-の\n\ +はんとうめいの ほしは\n\ +『パワ-スタ-のだい』だ。\n\ +あかコインを みつけて\n\ +8まいぜんぶ あつめると,\n\ +スタ-が あらわれる。")) + +DEFINE_DIALOG(DIALOG_105, 1, 3, 95, 200, _("\ +じゅんび かんりょう!\n\ +そこの あなに\n\ +はいってみてください。\n\ +4つのたいほうをつかって\n\ +そらのしまにあるスタ-を\n\ +とれるはずです。\n\ +スティックでねらいをつけ,\n\ +Aではっしゃ!とびながら\n\ +『き』にも つかまれます。")) + +DEFINE_DIALOG(DIALOG_106, 1, 3, 95, 200, _("\ +じゅんびが\n\ +かんりょう しました!\n\ +それでは,おきをつけて!")) + +DEFINE_DIALOG(DIALOG_107, 1, 3, 95, 200, _("\ +おばけは し な な い\n\ +ケッケッケ・・\n\ +ぶじに でられるかな?")) + +DEFINE_DIALOG(DIALOG_108, 1, 3, 95, 200, _("\ +ぼよよ-ん\n\ +おやかたの おでましだ。\n\ +カッカッカ・・")) + +DEFINE_DIALOG(DIALOG_109, 1, 4, 95, 200, _("\ +カラダが とけちゃったヨ。\n\ +いいカラダ いないかな-\n\ +なにか おちつかなくてネ。\n\ +ア- かおがつめたいな-")) + +DEFINE_DIALOG(DIALOG_110, 1, 3, 95, 200, _("\ +しょうらい きっと\n\ +りっぱなカラダになろうと\n\ +おもってま-す!\n\ +いいアタマ いないかな-\n\ +もししっていたら そこへ\n\ +つれてってくれませんか?\n\ +まえを すべってくれれば\n\ +うしろをついていきま-す。\n\ + ヨロシク-!")) + +DEFINE_DIALOG(DIALOG_111, 1, 3, 95, 200, _("\ +ヤッリ-!\n\ +きぶんスッキリ!りっぱな\n\ +カラダが みつかった!\n\ +おれいに これあげます!\n\ +もっていって ください。\n\ +とってもアッタカイですよ。")) + +DEFINE_DIALOG(DIALOG_112, 1, 4, 30, 200, _("\ +コインいっぱいあつめよう。\n\ +ちからが かいふくする。\n\ +えのなかの15コ-スでは\n\ +きろくにも のこるよ。\n\ +あかいハ-トにさわっても\n\ +ちからが かいふくする。\n\ +はやく かけぬけるほど\n\ +たくさん かいふくする!")) + +DEFINE_DIALOG(DIALOG_113, 1, 6, 30, 200, _("\ +あか・あお・みどりの\n\ +ブロックには アイテムの\n\ +『ぼうし』が はいってる。\n\ +おしろの どこかにある\n\ +スイッチを ふんでくると\n\ +つかえるように なります。")) + +DEFINE_DIALOG(DIALOG_114, 1, 4, 95, 200, _("\ +ああ~ きにいらねえ!\n\ +おれたち,いしのおかげで\n\ +『いえ』も『しろ』も\n\ +できてるって-のに。\n\ +いつも ふみつけるばっか\n\ +りで, ちった-ありがた\n\ +がったら どうなんでぃ!\n\ +おうおうっ!\n\ +おい! そこのニイサン!\n\ +ふらふらしてんじゃね-や。\n\ +きげんが わるいんでぃ!\n\ +おしつぶしちまうぞぉ!!\n\ +もんくが あんなら\n\ +ヒップドロップで この\n\ +バッタンキングさまを\n\ +ふみつけて みやがれっ!")) + +DEFINE_DIALOG(DIALOG_115, 1, 5, 95, 200, _("\ +ああ くやしいぞ!\n\ +またまた\n\ +ふみつけられちまった!\n\ +しょせん いしは\n\ + いしなのか・・・\n\ +おめぇの かちでぇ!\n\ +これ もっていきやがれ!\n\ +ガクッ!")) + +DEFINE_DIALOG(DIALOG_116, 1, 5, 95, 200, _("\ +おおっ!いてて! まわり\n\ +こみのはやさは まだまだ\n\ +だが,なかなか つよいな。\n\ +おまえのような けらいが\n\ +ほしかったぞ・・\n\ +はじめの やくそくどおり\n\ +パワ-スタ-をやろう。\n\ +また ワシにあいたいとき\n\ +このスタ-をメニュ-から\n\ +えらぶがよい。さらばじゃ")) + +DEFINE_DIALOG(DIALOG_117, 1, 3, 95, 200, _("\ +ジャジャジャ-ン!\n\ +どうだ!\n\ +おどろいたか??・・・\n\ +ムム・・・・ ならば\n\ +もっとオドロカセテやる!\n\ +イクゾ! カカッテコイ!")) + +DEFINE_DIALOG(DIALOG_118, 1, 5, 95, 200, _("\ +オオオッ・・・\n\ +オマエ,いがいとツヨイ!\n\ +このヤカタは,きょうから\n\ +オマエのものダッ・・\n\ +ジユウニつかエ。ガクッ!")) + +DEFINE_DIALOG(DIALOG_119, 1, 4, 30, 200, _("\ +グウウッ! ちょっと\n\ +ゆだん しておったわ!\n\ +せっかくのケイカクが\n\ +ぶちこわしだ・・・しかし\n\ +パワ-スタ-もピ-チも\n\ +わがはいの てのなかに\n\ +あるのだ。ガハハハ!\n\ +まだまだ まけてはおらん。\n\ +これいじょうスタ-は\n\ +わたさんぞ。きょうはここ\n\ +らで かんべんしてやる!\n\ +おおぉ,おぼえてろよ!!")) + +DEFINE_DIALOG(DIALOG_120, 1, 4, 30, 200, _("\ +グググッワッ!\n\ +こうも かんたんに\n\ +やられるとは,スタ-の\n\ +ちからが たりんのかな?\n\ +わがはいがゼッコ-チョ-\n\ +のときなら,キサマなんか\n\ +てきではない。\n\ +こんかいは ひきわけだっ\n\ +ピ-チに あいたければ,\n\ +とうのてっぺんまで\n\ +のぼってきてみろ。\n\ +まってるぞ!ガハハッ!!")) + +DEFINE_DIALOG(DIALOG_121, 1, 5, 30, 200, _("\ +あああっ・・またこんども\n\ +キサマのかちか マリオ!\n\ +キサマはな,わがはいが\n\ +せかいで い-ちばん\n\ +まけたくないヤツなのに!\n\ +せっかく なかまにした\n\ +モンスタ-たちのちからも\n\ +なくなり このままでは\n\ +またまた,わがはいの\n\ +だ-いきらいな\n\ +へいわが もどってしまう\n\ +ではないか! \n\ +ムムムッ・・・・\n\ +しかし,このゲ-ムは\n\ +まだまだ おわらんぞ。\n\ +みんなで あつまって,\n\ +なかよくエンディングでも\n\ +みるんだな!\n\ +\n\ +ガハハハッ!")) + +DEFINE_DIALOG(DIALOG_122, 1, 6, 30, 200, _("\ +-やみにとけるおおあな-\n\ +\n\ +みぎ・・・さぎょうリフト\n\ + ケムリめいろ\n\ +ひだり・・ちていこ")) + +DEFINE_DIALOG(DIALOG_123, 1, 5, 30, 200, _("\ + -メタルのどうくつ-\n\ +\n\ +みぎ・・・ちじょうへ\n\ +ひだり・・メタルスイッチ")) + +DEFINE_DIALOG(DIALOG_124, 1, 5, 30, 200, _("\ +-さぎょうようリフト-\n\ +\n\ + キケン!!\n\ + そうさほうほうを\n\ + よく よむこと。\n\ +ふんだ,やじるしのほうに\n\ +すすみつづけます。\n\ +\n\ +おりると もとのばしょに\n\ +もどります。")) + +DEFINE_DIALOG(DIALOG_125, 1, 5, 30, 200, _("\ +-ケムリめいろ・でぐち-\n\ +\n\ +キケン! ヘイサちゅう。\n\ +ここからは はいれません。")) + +DEFINE_DIALOG(DIALOG_126, 1, 6, 30, 200, _("\ +・1ごうエレベ-タ-・\n\ +\n\ +うえ・・やみのおおあな\n\ +みぎ・・さぎょうリフト\n\ + ケムリめいろ")) + +DEFINE_DIALOG(DIALOG_127, 1, 5, 30, 200, _("\ + -ちていこ-\n\ +\n\ +みぎ・・メタルのどうくつ\n\ +ひだり・・はいこう\n\ + へいさちゅう\n\ +おとなしい かいりゅう\n\ +ドッシ-が すんでます\n\ +せなかでヒップドロップを\n\ +すると,あたまをさげます。\n\ +エサにならないでください。")) + +DEFINE_DIALOG(DIALOG_128, 1, 4, 95, 200, _("\ +おっとっと!じょうがいに\n\ +なげるのは はんそくだ!\n\ +リングのうえでフェア-に\n\ +たたかおうでは ないか!")) + +DEFINE_DIALOG(DIALOG_129, 1, 5, 30, 200, _("\ +とうめいスイッチの\n\ + コ-スへ ようこそ!\n\ +あおいスイッチを ふむと\n\ +すべての あおブロックが\n\ +『じったい』になる。\n\ +とうめいぼうしで\n\ +とうめいに なると\n\ +いろんな ものを\n\ +とおりぬけられます。\n\ +まずは おためしください。")) + +DEFINE_DIALOG(DIALOG_130, 1, 5, 30, 200, _("\ +メタルのスイッチの\n\ + コ-スヘ ようこそ!\n\ +みどりのスイッチを\n\ +ふめば みどりブロックが\n\ +『じったい』になる。\n\ +メタルのぼうしで\n\ +メタルになれば,\n\ +みずのなかでも\n\ +あるけてしまう。\n\ +まずは おためしください。")) + +DEFINE_DIALOG(DIALOG_131, 1, 5, 30, 200, _("\ +はねのスイッチの\n\ + コ-スヘ ようこそ!\n\ +にじのリングのまんなかの\n\ +とうの うえにある\n\ +あかいスイッチを ふもう。\n\ +このせかいの すべての\n\ +あかいブロックが\n\ +『じったい』になる。\n\ +3だんとびで そらへとび,\n\ +Zボタンで ランディング。\n\ +そうさは ひこうきの\n\ +そうじゅうかん のように\n\ +まえにたおすと『さがる』\n\ +てまえにひくと『あがる』\n\ +まずは おためしを!")) + +DEFINE_DIALOG(DIALOG_132, 1, 5, 30, 200, _("\ +ダメダメ!\n\ +それは きていいはんです。\n\ +『しっか-く!』\n\ +こんどはフェア-に\n\ +いきましょう。")) + +DEFINE_DIALOG(DIALOG_133, 1, 5, 30, 200, _("\ +ああよかった。\n\ +きてくれたんですね!\n\ +ピ-チひめも ぼくたちも\n\ +みんな『カベ』のなかに\n\ +とじこめられちゃいました。\n\ +クッパは パワ-スタ-を\n\ +つかって『カベ』や『え』\n\ +のなかにカイブツのくにを\n\ +つくろうと しています。\n\ +スタ-をとりかえして!\n\ +『スタ-』をいくつか\n\ +とりかえしたら,クッパの\n\ +とじたドアが ひらきます。\n\ +1かいの 4つのへやを\n\ +さがし,すすんでください。\n\ +まずは,ヒダリがわの\n\ +ボムへいの『え』の\n\ +へやに はいれます。\n\ +このへやだけは クッパの\n\ +ふういんを のがれました。\n\ +8まい たまったら\n\ +おおきな ほしのドアを\n\ +ひらくことが できます。\n\ +きっと ピ-チひめは\n\ +そのなかです!")) + +DEFINE_DIALOG(DIALOG_134, 1, 4, 30, 200, _("\ +コ-スのはじめにえらべる\n\ +スタ-のなまえは,\n\ +つぎに みつけられそうな\n\ +スタ-のヒントです。\n\ +ヒントにでてくる\n\ +じゅんばんと,ちがう\n\ +スタ-を とりもどしても\n\ +かまわないですよ。\n\ +『スタ-』や『てき』や\n\ +『アイテム』のなかには\n\ +そのスタ-をえらばないと\n\ +でないものも あります。\n\ +いくつか とりかえしたら\n\ +つぎのコ-スのドアへと\n\ +すすんでください。みんな\n\ +たすけを まっています!")) + +DEFINE_DIALOG(DIALOG_135, 1, 5, 30, 200, _("\ +クッパがスタ-をもって\n\ +いっちゃいました。\n\ +ここにかくれてみてました。\n\ +スタ-はひとつのコ-スに\n\ +6こあるはずです。\n\ +でも アイテムスイッチを\n\ +ぜんぶおしてからでないと\n\ +とれないスタ-もあります。\n\ +どんどん さきのコ-スへ\n\ +すすんでください。\n\ +スタ-トがめんでスタ-の\n\ +なまえが みられます。\n\ +むかしのてきに あいたい\n\ +とき,そのほしをえらぶと\n\ +またあえる てきもいます。")) + +DEFINE_DIALOG(DIALOG_136, 1, 4, 30, 200, _("\ +ワァすごい!もうそんなに\n\ +スタ-をもってるんですね。\n\ +もうすぐ ぼくらのことも\n\ +たすけだしてくれますね!\n\ +クッパたちは ひっしです。\n\ +きをつけてください。\n\ +コインをとると ちからが\n\ +かいふくします。\n\ +あかコインは2まいぶん。\n\ +あおコインは5まいぶん。\n\ +あおコインのブロックを\n\ +こわすと でてきます。\n\ +たかいところからおちても\n\ +ちじょうの ちかくで\n\ +『ヒップドロップ』すると\n\ +ダメ-ジを ふせげます。")) + +DEFINE_DIALOG(DIALOG_137, 1, 5, 30, 200, _("\ +パワ-スタ-が もどって,\n\ +おしろのちからが\n\ +かいふく してきました!\n\ +ありがとう。 クッパは\n\ +このさきに にげました。\n\ +そうだ!コインをあつめて\n\ +ますか?15のコ-スでは\n\ +コイン100まい とると\n\ +スペシャルスタ-が\n\ +あらわれます。")) + +DEFINE_DIALOG(DIALOG_138, 1, 5, 30, 200, _("\ +・2ごうエレベ-タ-・\n\ +した・・ちていこ\n\ +ひだり・・やみのおおあな\n\ +みぎ・・・ケムリめいろ\n\ + へいさちゅう!")) + +DEFINE_DIALOG(DIALOG_139, 1, 6, 30, 200, _("\ +このうえ・・じどうリフト\n\ +じどうリフトは のると\n\ +じどうてきに うごきだし,\n\ +コ-スにそってすすみます。\n\ +おりて ほうっておくと\n\ +きえてしまいます。")) + +DEFINE_DIALOG(DIALOG_140, 1, 6, 30, 200, _("\ +-そうさリフトじょう-\n\ +みぎ・・・ケムリめいろ\n\ + いりぐち\n\ +ひだり・・やみのおおあな\n\ + 1ごうエレベ-タ-へ\n\ +やじるし・・げんざいち")) + +DEFINE_DIALOG(DIALOG_141, 1, 5, 150, 200, _("\ +ぬすまれたパワ-スタ-を\n\ +とりかえした!\n\ +クッパが とじてしまった\n\ +ドアを あけられるように\n\ +なったぞ!\n\ +2かいの ピ-チのへや,\n\ +1かいの とりでのへや,\n\ +2つのへやのドアがひらく。\n\ +つぎのスタ-をとりかえし\n\ +おしろのみんなをすくえ!\n\ +モンスタ-たちはどんどん\n\ +ちからを つけてきている。\n\ +いそげ マリオ!!\n\ +おしろの いちだいじだ!")) + +DEFINE_DIALOG(DIALOG_142, 1, 5, 150, 200, _("\ +3このスタ-を\n\ +とりもどしたぞ! \n\ +そして スタ-に『3』の\n\ +すうじが ついたドアを\n\ +ひらけるように なった!\n\ +4つのへやの せかいを\n\ +じゆうに いききできる。\n\ +あたらしいカイブツたちは\n\ +もっと てごわいぞ。\n\ +きをつけて すすめ!")) + +DEFINE_DIALOG(DIALOG_143, 1, 6, 150, 200, _("\ +8このパワ-スタ-を\n\ +ぶじ とりもどし,\n\ +おおきな ほしのドアが\n\ +ひらくようになった。\n\ +クッパは すぐそこだ!\n\ +ピ-チのこえがきこえる。")) + +DEFINE_DIALOG(DIALOG_144, 1, 5, 150, 200, _("\ +30この パワ-スタ-を\n\ +とりもどし,\n\ +おおきなスタ-のドアが\n\ +ひらくようになった!\n\ +ここですこし てんけんだ。\n\ +2ほんのはしらを ヒップ\n\ +ドロップしてみたか?\n\ +ぼうしはなくしてないか?\n\ +さばくで なくしたなら\n\ +ハゲたかジャンゴをさがせ。\n\ +クッパは うみから\n\ +このちかにせんにゅう\n\ +したらしい。\n\ +とうとうやつを\n\ +おいつめたぞ!")) + +DEFINE_DIALOG(DIALOG_145, 1, 4, 150, 200, _("\ +50このパワ-スタ-を\n\ +とりもどした!\n\ +3かいへの ほしのドアが\n\ +ひらくぞ!\n\ +クッパはすぐそこだ!\n\ +アイテムスイッチは\n\ +ぜんぶおしてきたか?\n\ +かくにん しておこう。\n\ +あか・あお・みどりの\n\ +3つのアイテムブロックは\n\ +とてもだいじな みかただ。\n\ +さあ『3かい』へすすめ!")) + +DEFINE_DIALOG(DIALOG_146, 1, 6, 150, 200, _("\ +70このパワ-スタ-を\n\ +とりもどした!\n\ +はてしない かいだんの\n\ +ナゾがとかれた。\n\ +クッパはかなりあせってる。\n\ +さあ!さいごのたたかいだ。")) + +DEFINE_DIALOG(DIALOG_147, 1, 5, 30, 200, _("\ +あか・あお・みどりの\n\ +『アイテムブロック』を\n\ +つかっていますか?\n\ +スタ-をとりもどすと\n\ +いりぐちがみつかる,\n\ +おしろのかくしコ-スで,\n\ +3つのスイッチを おすと\n\ +そのいろのブロックが\n\ +『じったい』となり,\n\ +つかえるようになります。\n\ +あかは はねのぼうし\n\ +みどりは メタルのぼうし\n\ +あおは とうめいのぼうし\n\ +\n\ +とてもつよい みかたです。")) + +DEFINE_DIALOG(DIALOG_148, 1, 5, 30, 200, _("\ +このさきスノ-マンのやま\n\ +だれも はいるな!\n\ +アイスブロックシュ-タ-\n\ +を 3だんとびなどして\n\ +とびこえては イケマセン。\n\ +つめたい いけでは\n\ +はやく たいりょくが\n\ +へります!\n\ +かいふくも しません。\n\ + スノ-マン")) + +DEFINE_DIALOG(DIALOG_149, 1, 5, 30, 200, _("\ +ピ-チのかくれスライダ-\n\ +へ ようこそ!\n\ +ここには クッパにみつけ\n\ +られなかった おしろの\n\ +かくれスタ-がのこってる。\n\ +さかを すべりはじめたら\n\ +スティックまえで かそく,\n\ +うしろで げんそくできる。\n\ +はやくすべれば スタ-が\n\ +みつかるはずだ!")) + +DEFINE_DIALOG(DIALOG_150, 1, 5, 30, 200, _("\ +あ--ん,だれだい?\n\ +とつぜん ビショぬれに\n\ +なっちゃいました!\n\ +キチンと てんじょう\n\ +なおしてもらうです。")) + +DEFINE_DIALOG(DIALOG_151, 1, 4, 30, 200, _("\ +みずをかけられた つぎは\n\ +ふんづけられました。\n\ +もう ほんと-に\n\ +おこったです!")) + +DEFINE_DIALOG(DIALOG_152, 1, 5, 30, 200, _("\ +いててて!!!\n\ +らんぼうなひとだなあ。\n\ +なぜかイライラしてたけど,\n\ +まあ,そらがみえるのも\n\ +わるくはないです。\n\ +よるには いっぱいほしが\n\ +みえるしね!\n\ +このほしは かえします。\n\ +あ-,なんだか きもちが\n\ +おちついてきたです。")) + +DEFINE_DIALOG(DIALOG_153, 1, 4, 30, 200, _("\ +わしの カラダに\n\ +のぼっては いか-ん!\n\ +そういうヤツは みんな\n\ +ふきっとばしちまうぞ-!")) + +DEFINE_DIALOG(DIALOG_154, 1, 5, 30, 200, _("\ +ぼうしを なくすと\n\ +ダメ-ジがおおくなるので\n\ +だいじに してください。\n\ +なくしたら,なくした\n\ +コ-スで みつかります。\n\ +アア-どうしよう・・・\n\ +ピ-チひめは,カベに\n\ +ひきこまれたままだし。\n\ +はやく クッパを\n\ +やっつけてください。\n\ +ああ,そうだ!\n\ +えのほかにカベのなかにも\n\ +モンスタ-の せかいが\n\ +あります。\n\ +よ-く,しらべてください。")) + +DEFINE_DIALOG(DIALOG_155, 1, 5, 30, 200, _("\ +パワ-スタ-のおかげで\n\ +おしろに,げんきが\n\ +もどってきました。\n\ +クッパなんか\n\ +おいはらってください。\n\ +おやくに たつなら\n\ +おしろの はなしをします。\n\ +『カガミのへや』では\n\ +カガミにうつらないものを\n\ +よくみてください。\n\ +みずのまちへ いくときは,\n\ +『え』にとびこむ たかさ\n\ +によって,まちをすっかり\n\ +みずびたしに できます。")) + +DEFINE_DIALOG(DIALOG_156, 1, 4, 30, 200, _("\ +とけいがとても へんです。\n\ +とけいに はいるとき,\n\ +ながいはりの ばしょに\n\ +ちゅういしてください!")) + +DEFINE_DIALOG(DIALOG_157, 1, 5, 30, 200, _("\ +ながれる『すな』に\n\ +ながされないように\n\ +きをつけて!\n\ +からだが しずんで\n\ +ジャンプできません。\n\ +あたままでしずむと\n\ +いきが できません。\n\ +くらいいろの ところは\n\ +とくに キケン!!\n\ +そこなしの じごくです!")) + +DEFINE_DIALOG(DIALOG_158, 1, 5, 30, 200, _("\ +ジャンプのテクニック\n\ +その1\n\ +タイミングよく,\n\ +れんぞくでジャンプすると\n\ +だんだん たかくとべる。\n\ +スピ-ドがはやいほど\n\ +たかく とびあがれる。\n\ +れんぞく3かいめに\n\ +たかくとべるわざを\n\ +『3だんとび』といいます。\n\ +その2 カベにむかって\n\ +ジャンプして,そこから\n\ +もういちどジャンプできる。\n\ +『カベキック』といって,\n\ +たかいところにのぼれます。")) + +DEFINE_DIALOG(DIALOG_159, 1, 5, 30, 200, _("\ +ジャンプのテクニック\n\ +その3 Zボタンわざ\n\ +たちどまって しゃがんで\n\ +から ジャンプすると,\n\ +『バックちゅう』できます。\n\ +はやくはしりながら\n\ +しゃがんでジャンプすると\n\ +とおくまで とべる。\n\ +『はばとび』です。")) + +DEFINE_DIALOG(DIALOG_160, 1, 4, 30, 200, _("\ +はやく はしりながら\n\ +Bボタンをおすと\n\ +『ボディアタック』が\n\ +できます。\n\ +おなかで\n\ +すべっているあいだは,\n\ +A・Bどちらのボタンでも\n\ +おきあがることができます。")) + +DEFINE_DIALOG(DIALOG_161, 1, 5, 30, 200, _("\ +いや- すごいです!!\n\ +ここにいれば あえると\n\ +きいてたけど,ほんとに\n\ +あえてしまいました!!\n\ +でんごんが あります。\n\ +『これで,おしまいですが\n\ +もっとあそんでほしいので\n\ +つまらないものですが\n\ +うけとって ください。』\n\ +-マリオ・スタッフより-")) + +DEFINE_DIALOG(DIALOG_162, 1, 5, 30, 200, _("\ +イテテ あいかわらず\n\ +らんぼうなひとだな。\n\ +このスタ-は べつに\n\ +かくしてたわけじゃ\n\ +ないんだってば!\n\ +かえせば いいんでしょ。\n\ +はなしてくれたら\n\ +スタ-ぐらい かえすから。\n\ +これで ほんとに\n\ +さいごだよ! ホイ!")) + +DEFINE_DIALOG(DIALOG_163, 1, 5, 30, 200, _("\ +あああっ・・またこんども\n\ +キサマのかちか マリオ!\n\ +キサマはな,わがはいが\n\ +せかいで い-ちばん\n\ +まけたくないヤツなのに!\n\ +ほんとうに やくにたたぬ\n\ +カイブツどもだ!\n\ +キサマごときに\n\ +パワ-スタ-をぜ-んぶ\n\ +とりもどされるとは・・・\n\ +ぜんぶで『120こ』も\n\ +あったのか!?\n\ +『しろ』に わがはいも\n\ +きづかなかったスタ-が\n\ +のこって おったとは・・\n\ +またまた わがはいの\n\ +だ-いきらいな へいわが,\n\ +もどってしまうではないか。\n\ +わがはいは くやし-ぞ!\n\ +きょうは ひきあげてやる。\n\ +だが,こんどあうときは\n\ +ぜ-ったい まけないぞ!\n\ +3Dスティックをみがいて\n\ +まってろよ!\n\ + ガハハッ!")) + +DEFINE_DIALOG(DIALOG_164, 1, 4, 30, 200, _("\ +しばらく やすんでたので\n\ +こんなにみごとに,\n\ +ふとっちゃいました。\n\ +ひさしぶりに やります?\n\ +では! いつものように,\n\ +レディ-!\n\ +\n\ + ゴ-!! やめとく")) + +DEFINE_DIALOG(DIALOG_165, 1, 4, 30, 200, _("\ +このクイの まわりを\n\ +クルクルまわって\n\ +めをまわしても\n\ +しりません。")) + +DEFINE_DIALOG(DIALOG_166, 1, 6, 30, 200, _("\ +きょうは トレ-ニングで\n\ +るすに してるッス!\n\ +オイラに ちょ-せん\n\ +したいひとは,またこんど\n\ +くるといいッス!\n\ + ノコノコ")) + +DEFINE_DIALOG(DIALOG_167, 1, 4, 30, 200, _("\ +『ピ-チの おしろ』\n\ + すぐそこ\n\ +Aボタン『ジャンプ』\n\ +Zボタン『しゃがむ』\n\ +Bボタン『カンバンよむ』\n\ + 『パンチ』\n\ + 『ものをもつ』\n\ +もういちどおす『なげる』")) + +DEFINE_DIALOG(DIALOG_168, 1, 4, 30, 200, _("\ +ア-ン,またまた \n\ +ふんづけられちゃいました。\n\ +ハナチャン かんぜんに\n\ +おこったです!")) + +DEFINE_DIALOG(DIALOG_169, 1, 5, 30, 200, _("\ +かってに はいるな!\n\ +この『どうくつ』に\n\ +むだんで はいるものには,\n\ +わざわいが おとずれる!\n\ + --せんちょうより")) diff --git a/text/jp/level.c.in b/text/jp/level.c.in deleted file mode 100644 index 57de31e..0000000 --- a/text/jp/level.c.in +++ /dev/null @@ -1,169 +0,0 @@ -// level names -// 0x0200E294 -static const u8 level_name_01[] = { - _(" 1 ボムへいの せんじょう") -}; - - -// 0x0200E2A8 -static const u8 level_name_02[] = { - _(" 2 バッタンキングの とりで") -}; - - -// 0x0200E2BC -static const u8 level_name_03[] = { - _(" 3 かいぞくの いりえ") -}; - - -// 0x0200E2CC -static const u8 level_name_04[] = { - _(" 4 さむいさむい マウンテン") -}; - - -// 0x0200E2DC -static const u8 level_name_05[] = { - _(" 5 テレサの ホラ-ハウス") -}; - - -// 0x0200E2EC -static const u8 level_name_06[] = { - _(" 6 やみにとける どうくつ") -}; - - -// 0x0200E2FC -static const u8 level_name_07[] = { - _(" 7 ファイアバブル ランド") -}; - - -// 0x0200E310 -static const u8 level_name_08[] = { - _(" 8 あっちっち さばく") -}; - - -// 0x0200E320 -static const u8 level_name_09[] = { - _(" 9 ウォ-タ- ランド") -}; - - -// 0x0200E330 -static const u8 level_name_10[] = { - _("10 スノ-マンズ ランド") -}; - - -// 0x0200E340 -static const u8 level_name_11[] = { - _("11 みずびたシティ-") -}; - - -// 0x0200E350 -static const u8 level_name_12[] = { - _("12 たかいたかいマウンテン") -}; - - -// 0x0200E360 -static const u8 level_name_13[] = { - _("13 ちびでか アイランド") -}; - - -// 0x0200E374 -static const u8 level_name_14[] = { - _("14 チックタックロック") -}; - - -// 0x0200E384 -static const u8 level_name_15[] = { - _("15 レインボ- クル-ズ") -}; - - -// 0x0200E394 -static const u8 level_name_16[] = { - _(" やみの せかいの クッパ") -}; - - -// 0x0200E3A8 -static const u8 level_name_17[] = { - _(" ほのおの うみの クッパ") -}; - - -// 0x0200E3BC -static const u8 level_name_18[] = { - _(" てんくうの たたかい!") -}; - - -// 0x0200E3CC -static const u8 level_name_19[] = { - _(" ピ-チのかくれスライダ-") -}; - - -// 0x0200E3E0 -static const u8 level_name_20[] = { - _(" メタルスイッチの たき") -}; - - -// 0x0200E3F0 -static const u8 level_name_21[] = { - _(" はばたけ!はねスイッチへ") -}; - - -// 0x0200E404 -static const u8 level_name_22[] = { - _(" おほりのとうめいスイッチ") -}; - - -// 0x0200E414 -static const u8 level_name_23[] = { - _(" にじ かける はねマリオ") -}; - - -// 0x0200E428 -static const u8 level_name_24[] = { - _(" おさかなと いっしょ") -}; - - -// 0x0200E438 -static const u8 level_name_25[] = { - _(" おいしいケ-キ") -}; - - -// 0x0200E444 -static const u8 level_name_castle_secret_stars[] = { - _(" おしろのかくれスタ-") -}; - - -// level name table -// 0x0200E454 -const u8 *const seg2_level_name_table[] = { - level_name_01, level_name_02, level_name_03, level_name_04, - level_name_05, level_name_06, level_name_07, level_name_08, - level_name_09, level_name_10, level_name_11, level_name_12, - level_name_13, level_name_14, level_name_15, level_name_16, - level_name_17, level_name_18, level_name_19, level_name_20, - level_name_21, level_name_22, level_name_23, level_name_24, - level_name_25, level_name_castle_secret_stars, 0x0, -}; - diff --git a/text/jp/star.c.in b/text/jp/star.c.in deleted file mode 100644 index 7b9b4db..0000000 --- a/text/jp/star.c.in +++ /dev/null @@ -1,612 +0,0 @@ -// act_name_ Names -// 0x0200E4C0 -static const u8 act_name_00[] = { - _("やまのうえの ボムキング") -}; - - -// 0x0200E4D0 -static const u8 act_name_01[] = { - _("はくねつ ノコノコレ-ス") -}; - - -// 0x0200E4E0 -static const u8 act_name_02[] = { - _("そらのしままで ぶっとべ") -}; - - -// 0x0200E4F0 -static const u8 act_name_03[] = { - _("8まいの あかコイン") -}; - - -// 0x0200E4FC -static const u8 act_name_04[] = { - _("そらにはばたけ はねマリオ") -}; - - -// 0x0200E50C -static const u8 act_name_05[] = { - _("ワンワンの いぬごやで") -}; - - -// 0x0200E51C -static const u8 act_name_06[] = { - _("いかりのバッタン キング") -}; - - -// 0x0200E52C -static const u8 act_name_07[] = { - _("とりでの てっぺんへ") -}; - - -// 0x0200E53C -static const u8 act_name_08[] = { - _("たいほうで ひとっとび") -}; - - -// 0x0200E54C -static const u8 act_name_09[] = { - _("うきしまの 8まいコイン") -}; - - -// 0x0200E55C -static const u8 act_name_10[] = { - _("とりかごへ スト-ン") -}; - - -// 0x0200E568 -static const u8 act_name_11[] = { - _("たいほうで ぶっこわせ!") -}; - - -// 0x0200E578 -static const u8 act_name_12[] = { - _("ちんぼつせんの おたから") -}; - - -// 0x0200E588 -static const u8 act_name_13[] = { - _("でてこい きょだいウツボ") -}; - - -// 0x0200E598 -static const u8 act_name_14[] = { - _("かいていどうくつの おたから") -}; - - -// 0x0200E5A8 -static const u8 act_name_15[] = { - _("うかんだフネの あかコイン") -}; - - -// 0x0200E5B8 -static const u8 act_name_16[] = { - _("いわのはしらへ ひとっとび") -}; - - -// 0x0200E5C8 -static const u8 act_name_17[] = { - _("ふきだす みずを くぐれ") -}; - - -// 0x0200E5D8 -static const u8 act_name_18[] = { - _("ス-パ-スノ-スライダ-") -}; - - -// 0x0200E5E8 -static const u8 act_name_19[] = { - _("まいごの こペンギン") -}; - - -// 0x0200E5F8 -static const u8 act_name_20[] = { - _("ペンギン チャンピオンレ-ス") -}; - - -// 0x0200E60C -static const u8 act_name_21[] = { - _("すべって 8まいあかコイン") -}; - - -// 0x0200E61C -static const u8 act_name_22[] = { - _("ゴロゴロ ゆきダルマ") -}; - - -// 0x0200E62C -static const u8 act_name_23[] = { - _("かくれ ス-パ- カベキック") -}; - - -// 0x0200E640 -static const u8 act_name_24[] = { - _("おやかたテレサを さがせ") -}; - - -// 0x0200E650 -static const u8 act_name_25[] = { - _("テレサの メリ-ゴ-ランド") -}; - - -// 0x0200E660 -static const u8 act_name_26[] = { - _("ほんだなオバケの ナゾ") -}; - - -// 0x0200E670 -static const u8 act_name_27[] = { - _("8まいコインは どこだ") -}; - - -// 0x0200E680 -static const u8 act_name_28[] = { - _("バルコニ-の ボステレサ") -}; - - -// 0x0200E690 -static const u8 act_name_29[] = { - _("かくしべやの おおめだま") -}; - - -// 0x0200E6A0 -static const u8 act_name_30[] = { - _("ドッシ-のいる ちていこ") -}; - - -// 0x0200E6B0 -static const u8 act_name_31[] = { - _("そうさリフトの あかコイン") -}; - - -// 0x0200E6C0 -static const u8 act_name_32[] = { - _("メタルで ダッシュ") -}; - - -// 0x0200E6CC -static const u8 act_name_33[] = { - _("ケムリめいろを ぬけて") -}; - - -// 0x0200E6D8 -static const u8 act_name_34[] = { - _("ケムリめいろの ひじょうぐち") -}; - - -// 0x0200E6EC -static const u8 act_name_35[] = { - _("ゴロゴロいわの ひみつ") -}; - - -// 0x0200E6FC -static const u8 act_name_36[] = { - _("おとせ ボスどんけつ") -}; - - -// 0x0200E70C -static const u8 act_name_37[] = { - _("たたかえ!どんけつたい") -}; - - -// 0x0200E71C -static const u8 act_name_38[] = { - _("15パズルの 8まいコイン") -}; - - -// 0x0200E72C -static const u8 act_name_39[] = { - _("コロコロ まるたわたり") -}; - - -// 0x0200E738 -static const u8 act_name_40[] = { - _("かざんの パワ-スタ-") -}; - - -// 0x0200E748 -static const u8 act_name_41[] = { - _("かざんの リフトツア-") -}; - - -// 0x0200E758 -static const u8 act_name_42[] = { - _("いたずらハゲたか ジャンゴ") -}; - - -// 0x0200E76C -static const u8 act_name_43[] = { - _("ピラミッドの てっぺんで") -}; - - -// 0x0200E780 -static const u8 act_name_44[] = { - _("きょだいピラミッドの ないぶ") -}; - - -// 0x0200E794 -static const u8 act_name_45[] = { - _("4つのはしらに たつものへ") -}; - - -// 0x0200E7A4 -static const u8 act_name_46[] = { - _("とびまわれ 8まいコイン") -}; - - -// 0x0200E7B4 -static const u8 act_name_47[] = { - _("きょだいピラミッドのナゾ") -}; - - -// 0x0200E7C8 -static const u8 act_name_48[] = { - _("クッパの せんすいかん") -}; - - -// 0x0200E7D8 -static const u8 act_name_49[] = { - _("うずしおの たからばこ") -}; - - -// 0x0200E7E8 -static const u8 act_name_50[] = { - _("にげたクッパの あかコイン") -}; - - -// 0x0200E7F8 -static const u8 act_name_51[] = { - _("ふきだす みずを くぐれ") -}; - - -// 0x0200E808 -static const u8 act_name_52[] = { - _("マンタの おくりもの") -}; - - -// 0x0200E814 -static const u8 act_name_53[] = { - _("ボウシが そろったら") -}; - - -// 0x0200E824 -static const u8 act_name_54[] = { - _("おおゆきダルマの おでこ") -}; - - -// 0x0200E834 -static const u8 act_name_55[] = { - _("こおりのくにの どんけつ") -}; - - -// 0x0200E844 -static const u8 act_name_56[] = { - _("こおりの オブジェ") -}; - - -// 0x0200E850 -static const u8 act_name_57[] = { - _("つめたい いけを こえて") -}; - - -// 0x0200E860 -static const u8 act_name_58[] = { - _("コウラにのって あかコイン") -}; - - -// 0x0200E870 -static const u8 act_name_59[] = { - _("フワフワさんの おうち") -}; - - -// 0x0200E87C -static const u8 act_name_60[] = { - _("ビリビリの まめリフト") -}; - - -// 0x0200E88C -static const u8 act_name_61[] = { - _("トップオブ ザ シティ-") -}; - - -// 0x0200E89C -static const u8 act_name_62[] = { - _("あさせと そらのシ-クレット") -}; - - -// 0x0200E8AC -static const u8 act_name_63[] = { - _("いそげ!かなあみエレベ-タ-") -}; - - -// 0x0200E8C0 -static const u8 act_name_64[] = { - _("ダウンタウンの あかコイン") -}; - - -// 0x0200E8D0 -static const u8 act_name_65[] = { - _("ダウンタウンを かけろ") -}; - - -// 0x0200E8E0 -static const u8 act_name_66[] = { - _("たかいたかい やまのうえ") -}; - - -// 0x0200E8F0 -static const u8 act_name_67[] = { - _("いたずらザル ウッキィのオリ") -}; - - -// 0x0200E904 -static const u8 act_name_68[] = { - _("おばけキノコの あかコイン") -}; - - -// 0x0200E914 -static const u8 act_name_69[] = { - _("マウンテン スライダ-") -}; - - -// 0x0200E924 -static const u8 act_name_70[] = { - _("はしのうえから みわたせば") -}; - - -// 0x0200E934 -static const u8 act_name_71[] = { - _("ぶっとべ はなれキノコへ") -}; - - -// 0x0200E944 -static const u8 act_name_72[] = { - _("きょだいパックンフラワ-") -}; - - -// 0x0200E954 -static const u8 act_name_73[] = { - _("デカじまの てっぺんで") -}; - - -// 0x0200E964 -static const u8 act_name_74[] = { - _("ノコノコ リタ-ンマッチ") -}; - - -// 0x0200E974 -static const u8 act_name_75[] = { - _("チビじまの 5シ-クレット") -}; - - -// 0x0200E984 -static const u8 act_name_76[] = { - _("ハナチャンの あかコイン") -}; - - -// 0x0200E994 -static const u8 act_name_77[] = { - _("イカリの ハナチャン") -}; - - -// 0x0200E9A0 -static const u8 act_name_78[] = { - _("グルグル かごのなかへ") -}; - - -// 0x0200E9B0 -static const u8 act_name_79[] = { - _("ふりこの へや") -}; - - -// 0x0200E9B8 -static const u8 act_name_80[] = { - _("チックタックはりの うえ") -}; - - -// 0x0200E9C8 -static const u8 act_name_81[] = { - _("えっへん てっぺん ドッスン") -}; - - -// 0x0200E9DC -static const u8 act_name_82[] = { - _("つきだしを のりこえて") -}; - - -// 0x0200E9EC -static const u8 act_name_83[] = { - _("00ふんの あかコイン") -}; - - -// 0x0200E9F8 -static const u8 act_name_84[] = { - _("にじを わたる ふね") -}; - - -// 0x0200EA04 -static const u8 act_name_85[] = { - _("てんくうの おやしき") -}; - - -// 0x0200EA10 -static const u8 act_name_86[] = { - _("タテめいろの あかコイン") -}; - - -// 0x0200EA20 -static const u8 act_name_87[] = { - _("カゼきる きょだいブランコ") -}; - - -// 0x0200EA34 -static const u8 act_name_88[] = { - _("おおぞら アスレチック") -}; - - -// 0x0200EA44 -static const u8 act_name_89[] = { - _("にじの かなたの しま") -}; - - -// 0x0200EA54 -static const u8 act_name_90[] = { - _("おしろのかくれスタ-") -}; - - -// 0x0200EA60 -static const u8 act_name_91[] = { - _("100まいコインの スタ-") -}; - - -// 0x0200EA70 -static const u8 act_name_92[] = { - _("マウンテンのへやが ひらく!") -}; - - -// 0x0200EA80 -static const u8 act_name_93[] = { - _("みずとゆき2つのへやが ひらく!") -}; - - -// 0x0200EA94 -static const u8 act_name_94[] = { - _("おおきなほしの ドアがひらく!") -}; - - -// 0x0200EAA8 -static const u8 act_name_95[] = { - _("クッパへの とびらがひらく!") -}; - - -// 0x0200EABC -static const u8 act_name_96[] = { - _("3がいへの とびらがひらく!") -}; - - -// act names table 0x0200EAD0 -const u8 *const seg2_act_name_table[] = { - act_name_00, act_name_01, act_name_02, act_name_03, - act_name_04, act_name_05, act_name_06, act_name_07, - act_name_08, act_name_09, act_name_10, act_name_11, - act_name_12, act_name_13, act_name_14, act_name_15, - act_name_16, act_name_17, act_name_18, act_name_19, - act_name_20, act_name_21, act_name_22, act_name_23, - act_name_24, act_name_25, act_name_26, act_name_27, - act_name_28, act_name_29, act_name_30, act_name_31, - act_name_32, act_name_33, act_name_34, act_name_35, - act_name_36, act_name_37, act_name_38, act_name_39, - act_name_40, act_name_41, act_name_42, act_name_43, - act_name_44, act_name_45, act_name_46, act_name_47, - act_name_48, act_name_49, act_name_50, act_name_51, - act_name_52, act_name_53, act_name_54, act_name_55, - act_name_56, act_name_57, act_name_58, act_name_59, - act_name_60, act_name_61, act_name_62, act_name_63, - act_name_64, act_name_65, act_name_66, act_name_67, - act_name_68, act_name_69, act_name_70, act_name_71, - act_name_72, act_name_73, act_name_74, act_name_75, - act_name_76, act_name_77, act_name_78, act_name_79, - act_name_80, act_name_81, act_name_82, act_name_83, - act_name_84, act_name_85, act_name_86, act_name_87, - act_name_88, act_name_89, act_name_90, act_name_91, - act_name_92, act_name_93, act_name_94, act_name_95, - act_name_96, 0x0, -}; - diff --git a/text/us/courses.h b/text/us/courses.h new file mode 100644 index 0000000..34dc254 --- /dev/null +++ b/text/us/courses.h @@ -0,0 +1,80 @@ +COURSE_ACTS(COURSE_BOB, _(" 1 BOB-OMB BATTLEFIELD"), + _("BIG BOB-OMB ON THE SUMMIT") , _("FOOTRACE WITH KOOPA THE QUICK") , _("SHOOT TO THE ISLAND IN THE SKY"), + _("FIND THE 8 RED COINS") , _("MARIO WINGS TO THE SKY") , _("BEHIND CHAIN CHOMP'S GATE")) + +COURSE_ACTS(COURSE_WF, _(" 2 WHOMP'S FORTRESS"), + _("CHIP OFF WHOMP'S BLOCK") , _("TO THE TOP OF THE FORTRESS") , _("SHOOT INTO THE WILD BLUE"), + _("RED COINS ON THE FLOATING ISLE"), _("FALL ONTO THE CAGED ISLAND") , _("BLAST AWAY THE WALL")) + +COURSE_ACTS(COURSE_JRB, _(" 3 JOLLY ROGER BAY"), + _("PLUNDER IN THE SUNKEN SHIP") , _("CAN THE EEL COME OUT TO PLAY?") , _("TREASURE OF THE OCEAN CAVE"), + _("RED COINS ON THE SHIP AFLOAT") , _("BLAST TO THE STONE PILLAR") , _("THROUGH THE JET STREAM")) + +COURSE_ACTS(COURSE_CCM, _(" 4 COOL, COOL MOUNTAIN"), + _("SLIP SLIDIN' AWAY") , _("LI'L PENGUIN LOST") , _("BIG PENGUIN RACE"), + _("FROSTY SLIDE FOR 8 RED COINS") , _("SNOWMAN'S LOST HIS HEAD") , _("WALL KICKS WILL WORK")) + +COURSE_ACTS(COURSE_BBH, _(" 5 BIG BOO'S HAUNT"), + _("GO ON A GHOST HUNT") , _("RIDE BIG BOO'S MERRY-GO-ROUND") , _("SECRET OF THE HAUNTED BOOKS"), + _("SEEK THE 8 RED COINS") , _("BIG BOO'S BALCONY") , _("EYE TO EYE IN THE SECRET ROOM")) + +COURSE_ACTS(COURSE_HMC, _(" 6 HAZY MAZE CAVE"), + _("SWIMMING BEAST IN THE CAVERN") , _("ELEVATE FOR 8 RED COINS") , _("METAL-HEAD MARIO CAN MOVE!"), + _("NAVIGATING THE TOXIC MAZE") , _("A-MAZE-ING EMERGENCY EXIT") , _("WATCH FOR ROLLING ROCKS")) + +COURSE_ACTS(COURSE_LLL, _(" 7 LETHAL LAVA LAND"), + _("BOIL THE BIG BULLY") , _("BULLY THE BULLIES") , _("8-COIN PUZZLE WITH 15 PIECES"), + _("RED-HOT LOG ROLLING") , _("HOT-FOOT-IT INTO THE VOLCANO") , _("ELEVATOR TOUR IN THE VOLCANO")) + +COURSE_ACTS(COURSE_SSL, _(" 8 SHIFTING SAND LAND"), + _("IN THE TALONS OF THE BIG BIRD") , _("SHINING ATOP THE PYRAMID") , _("INSIDE THE ANCIENT PYRAMID"), + _("STAND TALL ON THE FOUR PILLARS"), _("FREE FLYING FOR 8 RED COINS") , _("PYRAMID PUZZLE")) + +COURSE_ACTS(COURSE_DDD, _(" 9 DIRE, DIRE DOCKS"), + _("BOARD BOWSER'S SUB") , _("CHESTS IN THE CURRENT") , _("POLE-JUMPING FOR RED COINS"), + _("THROUGH THE JET STREAM") , _("THE MANTA RAY'S REWARD") , _("COLLECT THE CAPS...")) + +COURSE_ACTS(COURSE_SL, _("10 SNOWMAN'S LAND"), + _("SNOWMAN'S BIG HEAD") , _("CHILL WITH THE BULLY") , _("IN THE DEEP FREEZE"), + _("WHIRL FROM THE FREEZING POND") , _("SHELL SHREDDIN' FOR RED COINS") , _("INTO THE IGLOO")) + +COURSE_ACTS(COURSE_WDW, _("11 WET-DRY WORLD"), + _("SHOCKING ARROW LIFTS!") , _("TOP O' THE TOWN") , _("SECRETS IN THE SHALLOWS & SKY"), + _("EXPRESS ELEVATOR--HURRY UP!") , _("GO TO TOWN FOR RED COINS") , _("QUICK RACE THROUGH DOWNTOWN!")) + +COURSE_ACTS(COURSE_TTM, _("12 TALL, TALL MOUNTAIN"), + _("SCALE THE MOUNTAIN") , _("MYSTERY OF THE MONKEY CAGE") , _("SCARY 'SHROOMS, RED COINS"), + _("MYSTERIOUS MOUNTAINSIDE") , _("BREATHTAKING VIEW FROM BRIDGE") , _("BLAST TO THE LONELY MUSHROOM")) + +COURSE_ACTS(COURSE_THI, _("13 TINY-HUGE ISLAND"), + _("PLUCK THE PIRANHA FLOWER") , _("THE TIP TOP OF THE HUGE ISLAND"), _("REMATCH WITH KOOPA THE QUICK"), + _("FIVE ITTY BITTY SECRETS") , _("WIGGLER'S RED COINS") , _("MAKE WIGGLER SQUIRM")) + +COURSE_ACTS(COURSE_TTC, _("14 TICK TOCK CLOCK"), + _("ROLL INTO THE CAGE") , _("THE PIT AND THE PENDULUMS") , _("GET A HAND"), + _("STOMP ON THE THWOMP") , _("TIMED JUMPS ON MOVING BARS") , _("STOP TIME FOR RED COINS")) + +COURSE_ACTS(COURSE_RR, _("15 RAINBOW RIDE"), + _("CRUISER CROSSING THE RAINBOW") , _("THE BIG HOUSE IN THE SKY") , _("COINS AMASSED IN A MAZE"), + _("SWINGIN' IN THE BREEZE") , _("TRICKY TRIANGLES!") , _("SOMEWHERE OVER THE RAINBOW")) + +SECRET_STAR(COURSE_BITDW, _(" BOWSER IN THE DARK WORLD")) +SECRET_STAR(COURSE_BITFS, _(" BOWSER IN THE FIRE SEA")) +SECRET_STAR(COURSE_BITS, _(" BOWSER IN THE SKY")) +SECRET_STAR(COURSE_PSS, _(" THE PRINCESS'S SECRET SLIDE")) +SECRET_STAR(COURSE_COTMC, _(" CAVERN OF THE METAL CAP")) +SECRET_STAR(COURSE_TOTWC, _(" TOWER OF THE WING CAP")) +SECRET_STAR(COURSE_VCUTM, _(" VANISH CAP UNDER THE MOAT")) +SECRET_STAR(COURSE_WMOTR, _(" WING MARIO OVER THE RAINBOW")) +SECRET_STAR(COURSE_SA, _(" THE SECRET AQUARIUM")) +SECRET_STAR(COURSE_CAKE_END, _("")) + +CASTLE_SECRET_STARS(_(" CASTLE SECRET STARS")) + +EXTRA_TEXT(0, _("ONE OF THE CASTLE'S SECRET STARS!")) +EXTRA_TEXT(1, _("")) +EXTRA_TEXT(2, _("")) +EXTRA_TEXT(3, _("")) +EXTRA_TEXT(4, _("")) +EXTRA_TEXT(5, _("")) +EXTRA_TEXT(6, _("")) diff --git a/text/us/debug.c.in b/text/us/debug.c.in deleted file mode 100644 index 64c5328..0000000 --- a/text/us/debug.c.in +++ /dev/null @@ -1,37 +0,0 @@ -// This debug dialog wasn't translated for US. - -// 0x020087E4 -static const u8 Debug0[] = { - _("STAGE SELECT\n" - " つづける?\n" - " 1 マウンテン\n" - " 2 ファイア-バブル\n" - " 3 スノ-スライダ-\n" - " 4 ウォ-タ-ランド\n" - " クッパ1ごう\n" - " もどる") -}; - - -// 0x0200883C -static const u8 Debug1[] = { - _("PAUSE \n" - " つづける?\n" - " やめる ?") -}; - - -// debug text table -static const struct DialogEntry debug_text_entry_0 = { - 1, 8, 30, 200, Debug0 -}; - -static const struct DialogEntry debug_text_entry_1 = { - 1, 3, 100, 150, Debug1 -}; - - -const struct DialogEntry *const seg2_debug_text_table[] = { - &debug_text_entry_0, &debug_text_entry_1, NULL, -}; - diff --git a/text/us/dialog.c.in b/text/us/dialog.c.in deleted file mode 100644 index 4e78680..0000000 --- a/text/us/dialog.c.in +++ /dev/null @@ -1,3318 +0,0 @@ -// dialogs -// 0x02008884 -static const u8 Dialog000[] = { - _("Wow! You're smack in the\n" - "middle of the battlefield.\n" - "You'll find the Power\n" - "Stars that Bowser stole\n" - "inside the painting\n" - "worlds.\n" - "First, talk to the\n" - "Bob-omb Buddy. (Press [B]\n" - "to talk.) He'll certainly\n" - "help you out, and so will\n" - "his comrades in other\n" - "areas.\n" - "To read signs, stop, face\n" - "them and press [B]. Press [A]\n" - "or [B] to scroll ahead. You\n" - "can talk to some other\n" - "characters by facing them\n" - "and pressing [B].") -}; - - -// 0x02008958 -static const u8 Dialog001[] = { - _("Watch out! If you wander\n" - "around here, you're liable\n" - "to be plastered by a\n" - "water bomb!\n" - "Those enemy Bob-ombs love\n" - "to fight, and they're\n" - "always finding ways to\n" - "attack.\n" - "This meadow has become\n" - "a battlefield ever since\n" - "the Big Bob-omb got his\n" - "paws on the Power Star.\n" - "Can you recover the Star\n" - "for us? Cross the bridge\n" - "and go left up the path\n" - "to find the Big Bob-omb.\n" - "Please come back to see\n" - "me after you've retrieved\n" - "the Power Star!") -}; - - -// 0x02008A68 -static const u8 Dialog002[] = { - _("Hey, you! It's dangerous\n" - "ahead, so listen up! Take\n" - "my advice.\n" - "\n" - "Cross the two\n" - "bridges ahead, then\n" - "watch for falling\n" - "water bombs.\n" - "The Big Bob-omb at the\n" - "top of the mountain is\n" - "very powerful--don't let\n" - "him grab you!\n" - "We're Bob-omb Buddies,\n" - "and we're on your side.\n" - "You can talk to us\n" - "whenever you'd like to!") -}; - - -// 0x02008B34 -static const u8 Dialog003[] = { - _("Thank you, Mario! The Big\n" - "Bob-omb is nothing but a\n" - "big dud now! But the\n" - "battle for the castle has\n" - "just begun.\n" - "Other enemies are holding\n" - "the other Power Stars. If\n" - "you recover more Stars,\n" - "you can open new doors\n" - "that lead to new worlds!\n" - "My Bob-omb Buddies are\n" - "waiting for you. Be sure\n" - "to talk to them--they'll\n" - "set up cannons for you.") -}; - - -// 0x02008BFC -static const u8 Dialog004[] = { - _("We're peace-loving\n" - "Bob-ombs, so we don't use\n" - "cannons.\n" - "But if you'd like\n" - "to blast off, we don't\n" - "mind. Help yourself.\n" - "We'll prepare all of the\n" - "cannons in this course for\n" - "you to use. Bon Voyage!") -}; - - -// 0x02008C80 -static const u8 Dialog005[] = { - _("Hey, Mario! Is it true\n" - "that you beat the Big\n" - "Bob-omb? Cool!\n" - "You must be strong. And\n" - "pretty fast. So, how fast\n" - "are you, anyway?\n" - "Fast enough to beat me...\n" - "Koopa the Quick? I don't\n" - "think so. Just try me.\n" - "How about a race to the\n" - "mountaintop, where the\n" - "Big Bob-omb was?\n" - "Whaddya say? When I say\n" - "『Go,』 let the race begin!\n" - "\n" - "Ready....\n" - "\n" - "//Go!////Don't Go") -}; - - -// 0x02008D54 -static const u8 Dialog006[] = { - _("Hey!!! Don't try to scam\n" - "ME. You've gotta run\n" - "the whole course.\n" - "Later. Look me up when\n" - "you want to race for\n" - "real.") -}; - - -// 0x02008D80 -static const u8 Dialog007[] = { - _("Hufff...fff...pufff...\n" - "Whoa! You...really...are...\n" - "fast! A human blur!\n" - "Here you go--you've won\n" - "it, fair and square!") -}; - - -// 0x02008DC0 -static const u8 Dialog008[] = { - _("BEWARE OF CHAIN CHOMP\n" - "Extreme Danger!\n" - "Get close and press [C]^\n" - "for a better look.\n" - "Scary, huh?\n" - "See the Red Coin on top\n" - "of the stake?\n" - "\n" - "When you collect eight of\n" - "them, a Power Star will\n" - "appear in the meadow\n" - "across the bridge.") -}; - - -// 0x02008E44 -static const u8 Dialog009[] = { - _("Long time, no see! Wow,\n" - "have you gotten fast!\n" - "Have you been training\n" - "on the sly, or is it the\n" - "power of the Stars?\n" - "I've been feeling down\n" - "about losing the last\n" - "race. This is my home\n" - "course--how about a\n" - "rematch?\n" - "The goal is in\n" - "Windswept Valley.\n" - "Ready?\n" - "\n" - "//Go//// Don't Go") -}; - - -// 0x02008EFC -static const u8 Dialog010[] = { - _("You've stepped on the\n" - "Wing Cap Switch. Wearing\n" - "the Wing Cap, you can\n" - "soar through the sky.\n" - "Now Wing Caps will pop\n" - "out of all the red blocks\n" - "you find.\n" - "\n" - "Would you like to Save?\n" - "\n" - "//Yes////No") -}; - - -// 0x02008F68 -static const u8 Dialog011[] = { - _("You've just stepped on\n" - "the Metal Cap Switch!\n" - "The Metal Cap makes\n" - "Mario invincible.\n" - "Now Metal Caps will\n" - "pop out of all of the\n" - "green blocks you find.\n" - "\n" - "Would you like to Save?\n" - "\n" - "//Yes////No") -}; - - -// 0x02008FD8 -static const u8 Dialog012[] = { - _("You've just stepped on\n" - "the Vanish Cap Switch.\n" - "The Vanish Cap makes\n" - "Mario disappear.\n" - "Now Vanish Caps will pop\n" - "from all of the blue\n" - "blocks you find.\n" - "\n" - "Would you like to Save?\n" - "\n" - "//Yes////No") -}; - - -// 0x02009048 -static const u8 Dialog013[] = { - _("You've collected 100\n" - "coins! Mario gains more\n" - "power from the castle.\n" - "Do you want to Save?\n" - "//Yes////No") -}; - - -// 0x020090A0 -static const u8 Dialog014[] = { - _("Wow! Another Power Star!\n" - "Mario gains more courage\n" - "from the power of the\n" - "castle.\n" - "Do you want to Save?\n" - "\n" - "//You Bet//Not Now") -}; - - -// 0x020090FC -static const u8 Dialog015[] = { - _("You can punch enemies to\n" - "knock them down. Press [A]\n" - "to jump, [B] to punch.\n" - "Press [A] then [B] to Kick.\n" - "To pick something up,\n" - "press [B], too. To throw\n" - "something you're holding,\n" - "press [B] again.") -}; - - -// 0x02009174 -static const u8 Dialog016[] = { - _("Hop on the shiny shell and\n" - "ride wherever you want to\n" - "go! Shred those enemies!") -}; - - -// 0x020091A8 -static const u8 Dialog017[] = { - _("I'm the Big Bob-omb, lord\n" - "of all blasting matter,\n" - "king of ka-booms the\n" - "world over!\n" - "How dare you scale my\n" - "mountain? By what right\n" - "do you set foot on my\n" - "imperial mountaintop?\n" - "You may have eluded my\n" - "guards, but you'll never\n" - "escape my grasp...\n" - "\n" - "...and you'll never take\n" - "away my Power Star. I\n" - "hereby challenge you,\n" - "Mario!\n" - "If you want the Star I\n" - "hold, you must prove\n" - "yourself in battle.\n" - "\n" - "Can you pick me up from\n" - "the back and hurl me to\n" - "this royal turf? I think\n" - "that you cannot!") -}; - - -// 0x02009258 -static const u8 Dialog018[] = { - _("I'm sleeping because...\n" - "...I'm sleepy. I don't\n" - "like being disturbed.\n" - "Please walk quietly.") -}; - - -// 0x02009284 -static const u8 Dialog019[] = { - _("Shhh! Please walk\n" - "quietly in the hallway!") -}; - - -// 0x02009298 -static const u8 Dialog020[] = { - _("Dear Mario:\n" - "Please come to the\n" - "castle. I've baked\n" - "a cake for you.\n" - "Yours truly--\n" - "Princess Toadstool") -}; - - -// 0x020092CC -static const u8 Dialog021[] = { - _("Welcome.\n" - "No one's home!\n" - "Now scram--\n" - "and don't come back!\n" - "Gwa ha ha!") -}; - - -// 0x02009304 -static const u8 Dialog022[] = { - _("You need a key to open\n" - "this door.") -}; - - -// 0x02009314 -static const u8 Dialog023[] = { - _("This key doesn't fit!\n" - "Maybe it's for the\n" - "basement...") -}; - - -// 0x0200933C -static const u8 Dialog024[] = { - _("You need Star power to\n" - "open this door. Recover a\n" - "Power Star from an enemy\n" - "inside one of the castle's\n" - "paintings.") -}; - - -// 0x02009390 -static const u8 Dialog025[] = { - _("It takes the power of\n" - "3 Stars to open this\n" - "door. You need [%] more\n" - "Stars.") -}; - - -// 0x020093CC -static const u8 Dialog026[] = { - _("It takes the power of\n" - "8 Stars to open this\n" - "door. You need [%] more\n" - "Stars.") -}; - - -// 0x02009408 -static const u8 Dialog027[] = { - _("It takes the power of\n" - "30 Stars to open this\n" - "door. You need [%] more\n" - "Stars.") -}; - - -// 0x02009444 -static const u8 Dialog028[] = { - _("It takes the power of\n" - "50 Stars to open this\n" - "door. You need [%] more\n" - "Stars.") -}; - - -// 0x02009480 -static const u8 Dialog029[] = { - _("To open the door that\n" - "leads to the 『endless』\n" - "stairs, you need 70\n" - "Stars.\n" - "Bwa ha ha!") -}; - - -// 0x020094D4 -static const u8 Dialog030[] = { - _("Hello! The Lakitu Bros.,\n" - "cutting in with a live\n" - "update on Mario's\n" - "progress. He's about to\n" - "learn a technique for\n" - "sneaking up on enemies.\n" - "The trick is this: He has\n" - "to walk very slowly in\n" - "order to walk quietly.\n" - "\n" - "\n" - "\n" - "And wrapping up filming\n" - "techniques reported on\n" - "earlier, you can take a\n" - "look around using [C]> and\n" - "[C]<. Press [C]| to view the\n" - "action from a distance.\n" - "When you can't move the\n" - "camera any farther, the\n" - "buzzer will sound. This is\n" - "the Lakitu Bros.,\n" - "signing off.") -}; - - -// 0x0200957C -static const u8 Dialog031[] = { - _("No way! You beat me...\n" - "again!! And I just spent\n" - "my entire savings on\n" - "these new Koopa\n" - "Mach 1 Sprint shoes!\n" - "Here, I guess I have to\n" - "hand over this Star to\n" - "the winner of the race.\n" - "Congrats, Mario!") -}; - - -// 0x020095C8 -static const u8 Dialog032[] = { - _("If you get the Wing Cap,\n" - "you can fly! Put the cap\n" - "on, then do a Triple\n" - "Jump--jump three times\n" - "in a row--to take off.\n" - "You can fly even higher\n" - "if you blast out of a\n" - "cannon wearing the\n" - "Wing Cap!\n" - "\n" - "Use the [C] Buttons to look\n" - "around while flying, and\n" - "press [Z] to land.") -}; - - -// 0x02009638 -static const u8 Dialog033[] = { - _("Ciao! You've reached\n" - "Princess Toadstool's\n" - "castle via a warp pipe.\n" - "Using the controller is a\n" - "piece of cake. Press [A] to\n" - "jump and [B] to attack.\n" - "Press [B] to read signs,\n" - "too. Use the Control Stick\n" - "in the center of the\n" - "controller to move Mario\n" - "around. Now, head for\n" - "the castle.") -}; - - -// 0x020096C4 -static const u8 Dialog034[] = { - _("Good afternoon. The\n" - "Lakitu Bros., here,\n" - "reporting live from just\n" - "outside the Princess's\n" - "castle.\n" - "\n" - "Mario has just arrived\n" - "on the scene, and we'll\n" - "be filming the action live\n" - "as he enters the castle\n" - "and pursues the missing\n" - "Power Stars.\n" - "As seasoned cameramen,\n" - "we'll be shooting from the\n" - "recommended angle, but\n" - "you can change the\n" - "camera angle by pressing\n" - "the [C] Buttons.\n" - "If we can't adjust the\n" - "view any further, we'll\n" - "buzz. To take a look at\n" - "the surroundings, stop\n" - "and press [C]^.\n" - "\n" - "Press [A] to resume play.\n" - "Switch camera modes with\n" - "the [R] Button. Signs along\n" - "the way will review these\n" - "instructions.\n" - "\n" - "For now, reporting live,\n" - "this has been the\n" - "Lakitu Bros.") -}; - - -// 0x02009800 -static const u8 Dialog035[] = { - _("There are four camera, or\n" - "『[C],』 Buttons. Press [C]^\n" - "to look around using the\n" - "Control Stick.\n" - "\n" - "You'll usually see Mario\n" - "through Lakitu's camera.\n" - "It is the camera\n" - "recommended for normal\n" - "play.\n" - "You can change angles by\n" - "pressing [C]>. If you press\n" - "[R], the view switches to\n" - "Mario's camera, which\n" - "is directly behind him.\n" - "Press [R] again to return\n" - "to Lakitu's camera. Press\n" - "[C]| to see Mario from\n" - "afar, using either\n" - "Lakitu's or Mario's view.") -}; - - -// 0x02009908 -static const u8 Dialog036[] = { - _("OBSERVATION PLATFORM\n" - "Press [C]^ to take a look\n" - "around. Don't miss\n" - "anything!\n" - "\n" - "Press [R] to switch to\n" - "Mario's camera. It\n" - "always follows Mario.\n" - "Press [R] again to switch\n" - "to Lakitu's camera.\n" - "Pause the game and\n" - "switch the mode to 『fix』\n" - "the camera in place while\n" - "holding [R]. Give it a try!") -}; - - -// 0x02009A14 -static const u8 Dialog037[] = { - _("I win! You lose!\n" - "Ha ha ha ha!\n" - "You're no slouch, but I'm\n" - "a better sledder!\n" - "Better luck next time!") -}; - - -// 0x02009A5C -static const u8 Dialog038[] = { - _("Reacting to the Star\n" - "power, the door slowly\n" - "opens.") -}; - - -// 0x02009A88 -static const u8 Dialog039[] = { - _("No visitors allowed,\n" - "by decree of\n" - "the Big Bob-omb\n" - "\n" - "I shall never surrender my\n" - "Stars, for they hold the\n" - "power of the castle in\n" - "their glow.\n" - "They were a gift from\n" - "Bowser, the Koopa King\n" - "himself, and they lie well\n" - "hidden within my realm.\n" - "Not a whisper of their\n" - "whereabouts shall leave\n" - "my lips. Oh, all right,\n" - "perhaps one hint:\n" - "Heed the Star names at\n" - "the beginning of the\n" - "course.\n" - "//--The Big Bob-omb") -}; - - -// 0x02009B34 -static const u8 Dialog040[] = { - _("Warning!\n" - "Cold, Cold Crevasse\n" - "Below!") -}; - - -// 0x02009B50 -static const u8 Dialog041[] = { - _("I win! You lose!\n" - "Ha ha ha!\n" - "\n" - "That's what you get for\n" - "messin' with Koopa the\n" - "Quick.\n" - "Better luck next time!") -}; - - -// 0x02009B80 -static const u8 Dialog042[] = { - _("Caution! Narrow Bridge!\n" - "Cross slowly!\n" - "\n" - "\n" - "You can jump to the edge\n" - "of the cliff and hang on,\n" - "and you can climb off the\n" - "edge if you move slowly.\n" - "When you want to let go,\n" - "either press [Z] or press\n" - "the Control Stick in the\n" - "direction of Mario's back.\n" - "To climb up, press Up on\n" - "the Control Stick. To\n" - "scurry up quickly, press\n" - "the [A] Button.") -}; - - -// 0x02009C20 -static const u8 Dialog043[] = { - _("If you jump and hold the\n" - "[A] Button, you can hang on\n" - "to some objects overhead.\n" - "It's the same as grabbing\n" - "a flying bird!") -}; - - -// 0x02009C68 -static const u8 Dialog044[] = { - _("Whooo's there? Whooo\n" - "woke me up? It's still\n" - "daylight--I should be\n" - "sleeping!\n" - "\n" - "Hey, as long as I'm\n" - "awake, why not take a\n" - "short flight with me?\n" - "Press and hold [A] to grab\n" - "on. Release [A] to let go.\n" - "I'll take you wherever\n" - "you want to go, as long\n" - "as my wings hold out.\n" - "Watch my shadow, and\n" - "grab on.") -}; - - -// 0x02009D1C -static const u8 Dialog045[] = { - _("Whew! I'm just about\n" - "flapped out. You should\n" - "lay off the pasta, Mario!\n" - "That's it for now. Press\n" - "[A] to let go. Okay,\n" - "bye byyyyyyeeee!") -}; - - -// 0x02009D88 -static const u8 Dialog046[] = { - _("You have to master three\n" - "important jumping\n" - "techniques.\n" - "First try the Triple Jump.\n" - "\n" - "Run fast, then jump three\n" - "times, one, two, three.\n" - "If you time the jumps\n" - "right, you'll hop, skip,\n" - "then jump really high.\n" - "Next, go for distance\n" - "with the Long Jump. Run,\n" - "press [Z] to crouch then [A]\n" - "to jump really far.\n" - "\n" - "To do the Wall Kick, press\n" - "[A] to jump at a wall, then\n" - "jump again when you hit\n" - "the wall.\n" - "\n" - "Got that? Triple Jump,\n" - "Long Jump, Wall Kick.\n" - "Practice, practice,\n" - "practice. You don't stand\n" - "a chance without them.") -}; - - -// 0x02009ED4 -static const u8 Dialog047[] = { - _("Hi! I'll prepare the\n" - "cannon for you!") -}; - - -// 0x02009EF8 -static const u8 Dialog048[] = { - _("Snow Mountain Summit\n" - "Watch for slippery\n" - "conditions! Please enter\n" - "the cottage first.") -}; - - -// 0x02009F2C -static const u8 Dialog049[] = { - _("Remember that tricky Wall\n" - "Kick jump? It's a\n" - "technique you'll have to\n" - "master in order to reach\n" - "high places.\n" - "Use it to jump from wall\n" - "to wall. Press the\n" - "Control Stick in the\n" - "direction you want to\n" - "bounce to gain momentum.\n" - "Practice makes perfect!") -}; - - -// 0x02009FA4 -static const u8 Dialog050[] = { - _("Hold [Z] to crouch and\n" - "slide down a slope.\n" - "Or press [Z] while in the\n" - "air to Pound the Ground!\n" - "If you stop, crouch, then\n" - "jump, you'll do a\n" - "Backward Somersault!\n" - "Got that?\n" - "There's more. Crouch and\n" - "then jump to do a\n" - "Long Jump! Or crouch and\n" - "walk to...never mind.") -}; - - -// 0x0200A058 -static const u8 Dialog051[] = { - _("Climbing's easy! When you\n" - "jump at trees, poles or\n" - "pillars, you'll grab them\n" - "automatically. Press [A] to\n" - "jump off backward.\n" - "\n" - "To rotate around the\n" - "object, press Right or\n" - "Left on the Control Stick.\n" - "When you reach the top,\n" - "press Up to do a\n" - "handstand!\n" - "Jump off from the\n" - "handstand for a high,\n" - "stylin' dismount.") -}; - - -// 0x0200A12C -static const u8 Dialog052[] = { - _("Stop and press [Z] to\n" - "crouch, then press [A]\n" - "to do a high, Backward\n" - "Somersault!\n" - "\n" - "To perform a Side\n" - "Somersault, run, do a\n" - "sharp U-turn and jump.\n" - "You can catch lots of\n" - "air with both jumps.") -}; - - -// 0x0200A1A0 -static const u8 Dialog053[] = { - _("Sometimes, if you pass\n" - "through a coin ring or\n" - "find a secret point in a\n" - "course, a red number will\n" - "appear.\n" - "If you trigger five red\n" - "numbers, a secret Star\n" - "will show up.") -}; - - -// 0x0200A1F4 -static const u8 Dialog054[] = { - _("Welcome to the snow\n" - "slide! Hop on! To speed\n" - "up, press forward on the\n" - "Control Stick. To slow\n" - "down, pull back.") -}; - - -// 0x0200A234 -static const u8 Dialog055[] = { - _("Hey-ey, Mario, buddy,\n" - "howzit goin'? Step right\n" - "up. You look like a fast\n" - "sleddin' kind of guy.\n" - "I know speed when I see\n" - "it, yes siree--I'm the\n" - "world champion sledder,\n" - "you know. Whaddya say?\n" - "How about a race?\n" - "Ready...\n" - "\n" - "//Go//// Don't Go") -}; - - -// 0x0200A2A0 -static const u8 Dialog056[] = { - _("You brrrr-oke my record!\n" - "Unbelievable! I knew\n" - "that you were the coolest.\n" - "Now you've proven\n" - "that you're also the\n" - "fastest!\n" - "I can't award you a gold\n" - "medal, but here, take this\n" - "Star instead. You've\n" - "earned it!") -}; - - -// 0x0200A2E8 -static const u8 Dialog057[] = { - _("Egad! My baby!! Have you\n" - "seen my baby??? She's\n" - "the most precious baby in\n" - "the whole wide world.\n" - "(They say she has my\n" - "beak...) I just can't\n" - "remember where I left\n" - "her.\n" - "Let's see...I stopped\n" - "for herring and ice cubes,\n" - "then I...oohh! I just\n" - "don't know!") -}; - - -// 0x0200A380 -static const u8 Dialog058[] = { - _("You found my precious,\n" - "precious baby! Where\n" - "have you been? How can\n" - "I ever thank you, Mario?\n" - "Oh, I do have this...\n" - "...Star. Here, take it\n" - "with my eternal\n" - "gratitude.") -}; - - -// 0x0200A3FC -static const u8 Dialog059[] = { - _("That's not my baby! She\n" - "looks nothing like me!\n" - "Her parents must be\n" - "worried sick!") -}; - - -// 0x0200A438 -static const u8 Dialog060[] = { - _("ATTENTION!\n" - "Read Before Diving In!\n" - "\n" - "\n" - "If you stay under the\n" - "water for too long, you'll\n" - "run out of oxygen.\n" - "\n" - "Return to the surface for\n" - "air or find an air bubble\n" - "or coins to breathe while\n" - "underwater.\n" - "Press [A] to swim. Hold [A]\n" - "to swim slow and steady.\n" - "Tap [A] with smooth timing\n" - "to gain speed.\n" - "Press Up on the\n" - "Control Stick and press [A]\n" - "to dive.\n" - "\n" - "Press Down on the Control\n" - "Stick and press [A] to\n" - "return to the surface.\n" - "\n" - "Hold Down and press [A]\n" - "while on the surface near\n" - "the edge of the water to\n" - "jump out.") -}; - - -// 0x0200A534 -static const u8 Dialog061[] = { - _("BRRR! Frostbite Danger!\n" - "Do not swim here.\n" - "I'm serious.\n" - "/--The Penguin") -}; - - -// 0x0200A580 -static const u8 Dialog062[] = { - _("Hidden inside the green\n" - "block is the amazing\n" - "Metal Cap.\n" - "Wearing it, you won't\n" - "catch fire or be hurt\n" - "by enemy attacks.\n" - "You don't even have to\n" - "breathe while wearing it.\n" - "\n" - "The only problem:\n" - "You can't swim in it.") -}; - - -// 0x0200A5EC -static const u8 Dialog063[] = { - _("The Vanish Cap is inside\n" - "the blue block. Mr. I.\n" - "will be surprised, since\n" - "you'll be invisible when\n" - "you wear it!\n" - "Even the Big Boo will be\n" - "fooled--and you can walk\n" - "through secret walls, too.") -}; - - -// 0x0200A638 -static const u8 Dialog064[] = { - _("When you put on the Wing\n" - "Cap that comes from a\n" - "red block, do the Triple\n" - "Jump to soar high into\n" - "the sky.\n" - "Use the Control Stick to\n" - "guide Mario. Pull back to\n" - "to fly up, press forward\n" - "to nose down, and press [Z]\n" - "to land.") -}; - - -// 0x0200A6AC -static const u8 Dialog065[] = { - _("Swimming Lessons!\n" - "Tap [A] to do the breast\n" - "stroke. If you time the\n" - "taps right, you'll swim\n" - "fast.\n" - "\n" - "Press and hold [A] to do a\n" - "slow, steady flutter kick.\n" - "Press Up on the Control\n" - "Stick to dive, and pull\n" - "back on the stick to head\n" - "for the surface.\n" - "To jump out of the water,\n" - "hold Down on the Control\n" - "Stick, then press [A].\n" - "Easy as pie, right?\n" - "\n" - "\n" - "But remember:\n" - "Mario can't breathe under\n" - "the water! Return to the\n" - "surface for air when the\n" - "Power Meter runs low.\n" - "\n" - "And one last thing: You\n" - "can't open doors that\n" - "are underwater.") -}; - - -// 0x0200A7A8 -static const u8 Dialog066[] = { - _("Mario, it's Peach!\n" - "Please be careful! Bowser\n" - "is so wicked! He will try\n" - "to burn you with his\n" - "horrible flame breath.\n" - "Run around behind and\n" - "grab him by the tail with\n" - "the [B] Button. Once you\n" - "grab hold, swing him\n" - "around in great circles.\n" - "Rotate the Control Stick\n" - "to go faster and faster.\n" - "The faster you swing him,\n" - "the farther he'll fly.\n" - "\n" - "Use the [C] Buttons to look\n" - "around, Mario. You have\n" - "to throw Bowser into one\n" - "of the bombs in the four\n" - "corners.\n" - "Aim well, then press [B]\n" - "again to launch Bowser.\n" - "Good luck, Mario! Our\n" - "fate is in your hands.") -}; - - -// 0x0200A884 -static const u8 Dialog067[] = { - _("Tough luck, Mario!\n" - "Princess Toadstool isn't\n" - "here...Gwa ha ha!! Go\n" - "ahead--just try to grab\n" - "me by the tail!\n" - "You'll never be able to\n" - "swing ME around! A wimp\n" - "like you won't throw me\n" - "out of here! Never! Ha!") -}; - - -// 0x0200A91C -static const u8 Dialog068[] = { - _("It's Lethal Lava Land!\n" - "If you catch fire or fall\n" - "into a pool of flames,\n" - "you'll be hopping mad, but\n" - "don't lose your cool.\n" - "You can still control\n" - "Mario--just try to keep\n" - "calm!") -}; - - -// 0x0200A99C -static const u8 Dialog069[] = { - _("Sometimes you'll bump into\n" - "invisible walls at the\n" - "edges of the painting\n" - "worlds. If you hit a wall\n" - "while flying, you'll bounce\n" - "back.") -}; - - -// 0x0200AA08 -static const u8 Dialog070[] = { - _("You can return to the\n" - "castle's main hall at any\n" - "time from the painting\n" - "worlds where the enemies\n" - "live.\n" - "Just stop, stand still,\n" - "press Start to pause the\n" - "game, then select\n" - "『Exit Course.』\n" - "\n" - "You don't have to collect\n" - "all Power Stars in one\n" - "course before going on to\n" - "the next.\n" - "\n" - "Return later, when you're\n" - "more experienced, to pick\n" - "up difficult ones.\n" - "\n" - "\n" - "Whenever you find a Star,\n" - "a hint for finding the\n" - "next one will appear on\n" - "the course's start screen.\n" - "\n" - "You can, however, collect\n" - "any of the remaining\n" - "Stars next. You don't\n" - "have to recover the one\n" - "described by the hint.") -}; - - -// 0x0200AB18 -static const u8 Dialog071[] = { - _("Danger Ahead!\n" - "Beware of the strange\n" - "cloud! Don't inhale!\n" - "If you feel faint, run for\n" - "higher ground and fresh\n" - "air!\n" - "Circle: Shelter\n" - "Arrow: Entrance-Exit") -}; - - -// 0x0200AB74 -static const u8 Dialog072[] = { - _("High winds ahead!\n" - "Pull your Cap down tight.\n" - "If it blows off, you'll\n" - "have to find it on this\n" - "mountain.") -}; - - -// 0x0200ABC0 -static const u8 Dialog073[] = { - _("Aarrgh! Ahoy, matey. I\n" - "have sunken treasure,\n" - "here, I do.\n" - "\n" - "But to pluck the plunder,\n" - "you must open the\n" - "Treasure Chests in the\n" - "right order.\n" - "What order is that,\n" - "ye say?\n" - "\n" - "\n" - "I'll never tell!\n" - "\n" - "//--The Cap'n") -}; - - -// 0x0200AC00 -static const u8 Dialog074[] = { - _("You can grab on to the\n" - "edge of a cliff or ledge\n" - "with your fingertips and\n" - "hang down from it.\n" - "\n" - "To drop from the edge,\n" - "either press the Control\n" - "Stick in the direction of\n" - "Mario's back or press the\n" - "[Z] Button.\n" - "To get up onto the ledge,\n" - "either press Up on the\n" - "Control Stick or press [A]\n" - "as soon as you grab the\n" - "ledge to climb up quickly.") -}; - - -// 0x0200AC8C -static const u8 Dialog075[] = { - _("Mario!! My castle is in\n" - "great peril. I know that\n" - "Bowser is the cause...and\n" - "I know that only you can\n" - "stop him!\n" - "The doors in the castle\n" - "that have been sealed by\n" - "Bowser can be opened only\n" - "with Star Power.\n" - "\n" - "But there are secret\n" - "paths in the castle,\n" - "paths that Bowser hasn't\n" - "found.\n" - "\n" - "One of those paths is in\n" - "this room, and it holds\n" - "one of the castle's Secret\n" - "Stars!\n" - "\n" - "Find that Secret Star,\n" - "Mario! It will help you\n" - "on your quest. Please,\n" - "Mario, you have to\n" - "help us!\n" - "Retrieve all of the\n" - "Power Stars in the castle\n" - "and free us from this\n" - "awful prison!\n" - "Please!") -}; - - -// 0x0200AD94 -static const u8 Dialog076[] = { - _("Thanks to the power of\n" - "the Stars, life is\n" - "returning to the castle.\n" - "Please, Mario, you have\n" - "to give Bowser the boot!\n" - "\n" - "Here, let me tell you a\n" - "little something about the\n" - "castle. In the room with\n" - "the mirrors, look carefully\n" - "for anything that's not\n" - "reflected in the mirror.\n" - "And when you go to the\n" - "water town, you can flood\n" - "it with a high jump into\n" - "the painting. Oh, by the\n" - "way, look what I found!") -}; - - -// 0x0200AE58 -static const u8 Dialog077[] = { - _("It is decreed that one\n" - "shall pound the pillars.") -}; - - -// 0x0200AE7C -static const u8 Dialog078[] = { - _("Break open the Blue Coin\n" - "Block by Pounding the\n" - "Ground with the [Z] Button.\n" - "One Blue Coin is worth\n" - "five Yellow Coins.\n" - "But you have to hurry!\n" - "The coins will disappear\n" - "if you're not quick to\n" - "collect them! Too bad.") -}; - - -// 0x0200AF04 -static const u8 Dialog079[] = { - _("Owwwuu! Let me go!\n" - "Uukee-kee! I was only\n" - "teasing! Can't you take\n" - "a joke?\n" - "I'll tell you what, let's\n" - "trade. If you let me go,\n" - "I'll give you something\n" - "really good.\n" - "So, how about it?\n" - "\n" - "//Free him/ Hold on") -}; - - -// 0x0200AF64 -static const u8 Dialog080[] = { - _("Eeeh hee hee hee!") -}; - - -// 0x0200AF6C -static const u8 Dialog081[] = { - _("The mystery is of Wet\n" - "or Dry.\n" - "And where does the\n" - "solution lie?\n" - "The city welcomes visitors\n" - "with the depth they bring\n" - "as they enter.") -}; - - -// 0x0200AFB8 -static const u8 Dialog082[] = { - _("Hold on to your hat! If\n" - "you lose it, you'll be\n" - "injured easily.\n" - "\n" - "If you do lose your Cap,\n" - "you'll have to find it in\n" - "the course where you\n" - "lost it.\n" - "Oh, boy, it's not looking\n" - "good for Peach. She's\n" - "still trapped somewhere\n" - "inside the walls.\n" - "Please, Mario, you have\n" - "to help her! Did you know\n" - "that there are enemy\n" - "worlds inside the walls?\n" - "Yup. It's true. Bowser's\n" - "troops are there, too.\n" - "Oh, here, take this. I've\n" - "been keeping it for you.") -}; - - -// 0x0200B080 -static const u8 Dialog083[] = { - _("There's something strange\n" - "about that clock. As you\n" - "jump inside, watch the\n" - "position of the big hand.\n" - "Oh, look what I found!\n" - "Here, Mario, catch!") -}; - - -// 0x0200B0E8 -static const u8 Dialog084[] = { - _("Yeeoww! Unhand me,\n" - "brute! I'm late, so late,\n" - "I must make haste!\n" - "This shiny thing? Mine!\n" - "It's mine. Finders,\n" - "keepers, losers...\n" - "Late, late, late...\n" - "Ouch! Take it then! A\n" - "gift from Bowser, it was.\n" - "Now let me be! I have a\n" - "date! I cannot be late\n" - "for tea!") -}; - - -// 0x0200B168 -static const u8 Dialog085[] = { - _("You don't stand a ghost\n" - "of a chance in this house.\n" - "If you walk out of here,\n" - "you deserve...\n" - "...a Ghoul Medal...") -}; - - -// 0x0200B18C -static const u8 Dialog086[] = { - _("Running around in circles\n" - "makes some bad guys roll\n" - "their eyes.") -}; - - -// 0x0200B1A8 -static const u8 Dialog087[] = { - _("Santa Claus isn't the only\n" - "one who can go down a\n" - "chimney! Come on in!\n" - "/--Cabin Proprietor") -}; - - -// 0x0200B1EC -static const u8 Dialog088[] = { - _("Work Elevator\n" - "For those who get off\n" - "here: Grab the pole to the\n" - "left and slide carefully\n" - "down.") -}; - - -// 0x0200B228 -static const u8 Dialog089[] = { - _("Both ways fraught with\n" - "danger! Watch your feet!\n" - "Those who can't do the\n" - "Long Jump, tsk, tsk. Make\n" - "your way to the right.\n" - "Right: Work Elevator\n" - "/// Cloudy Maze\n" - "Left: Black Hole\n" - "///Underground Lake\n" - "\n" - "Red Circle: Elevator 2\n" - "//// Underground Lake\n" - "Arrow: You are here") -}; - - -// 0x0200B2C4 -static const u8 Dialog090[] = { - _("Bwa ha ha ha!\n" - "You've stepped right into\n" - "my trap, just as I knew\n" - "you would! I warn you,\n" - "『Friend,』 watch your\n" - "step!") -}; - - -// 0x0200B30C -static const u8 Dialog091[] = { - _("Danger!\n" - "Strong Gusts!\n" - "But the wind makes a\n" - "comfy ride.") -}; - - -// 0x0200B334 -static const u8 Dialog092[] = { - _("Pestering me again, are\n" - "you, Mario? Can't you see\n" - "that I'm having a merry\n" - "little time, making\n" - "mischief with my minions?\n" - "Now, return those Stars!\n" - "My troops in the walls\n" - "need them! Bwa ha ha!") -}; - - -// 0x0200B3A8 -static const u8 Dialog093[] = { - _("Mario! You again! Well\n" - "that's just fine--I've\n" - "been looking for something\n" - "to fry with my fire\n" - "breath!\n" - "Your Star Power is\n" - "useless against me!\n" - "Your friends are all\n" - "trapped within the\n" - "walls...\n" - "And you'll never see the\n" - "Princess again!\n" - "Bwa ha ha ha!") -}; - - -// 0x0200B448 -static const u8 Dialog094[] = { - _("Get a good run up the\n" - "slope! Do you remember\n" - "the Long Jump? Run, press\n" - "[Z], then jump!") -}; - - -// 0x0200B4A0 -static const u8 Dialog095[] = { - _("To read a sign, stand in\n" - "front of it and press [B],\n" - "like you did just now.\n" - "\n" - "When you want to talk to\n" - "a Koopa Troopa or other\n" - "animal, stand right in\n" - "front of it.\n" - "Please recover the Stars\n" - "that were stolen by\n" - "Bowser in this course.") -}; - - -// 0x0200B51C -static const u8 Dialog096[] = { - _("The path is narrow here.\n" - "Easy does it! No one is\n" - "allowed on top of the\n" - "mountain!\n" - "And if you know what's\n" - "good for you, you won't\n" - "wake anyone who's\n" - "sleeping!\n" - "Move slowly,\n" - "tread lightly.") -}; - - -// 0x0200B594 -static const u8 Dialog097[] = { - _("Don't be a pushover!\n" - "If anyone tries to shove\n" - "you around, push back!\n" - "It's one-on-one, with a\n" - "fiery finish for the loser!") -}; - - -// 0x0200B5C8 -static const u8 Dialog098[] = { - _("Come on in here...\n" - "...heh, heh, heh...") -}; - - -// 0x0200B5E0 -static const u8 Dialog099[] = { - _("Eh he he...\n" - "You're mine, now, hee hee!\n" - "I'll pass right through\n" - "this wall. Can you do\n" - "that? Heh, heh, heh!") -}; - - -// 0x0200B628 -static const u8 Dialog100[] = { - _("Ukkiki...Wakkiki...kee kee!\n" - "Ha! I snagged it!\n" - "It's mine! Heeheeheeee!") -}; - - -// 0x0200B64C -static const u8 Dialog101[] = { - _("Ackk! Let...go...\n" - "You're...choking...me...\n" - "Cough...I've been framed!\n" - "This Cap? Oh, all right,\n" - "take it. It's a cool Cap,\n" - "but I'll give it back.\n" - "I think it looks better on\n" - "me than it does on you,\n" - "though! Eeeee! Kee keee!") -}; - - -// 0x0200B680 -static const u8 Dialog102[] = { - _("Pssst! The Boos are super\n" - "shy. If you look them\n" - "in the eyes, they fade\n" - "away, but if you turn\n" - "your back, they reappear.\n" - "It's no use trying to hit\n" - "them when they're fading\n" - "away. Instead, sneak up\n" - "behind them and punch.") -}; - - -// 0x0200B6F8 -static const u8 Dialog103[] = { - _("Upon four towers\n" - "one must alight...\n" - "Then at the peak\n" - "shall shine the light...") -}; - - -// 0x0200B72C -static const u8 Dialog104[] = { - _("The shadowy star in front\n" - "of you is a 『Star\n" - "Marker.』 When you collect\n" - "all 8 Red Coins, the Star\n" - "will appear here.") -}; - - -// 0x0200B784 -static const u8 Dialog105[] = { - _("Ready for blastoff! Come\n" - "on, hop into the cannon!\n" - "\n" - "You can reach the Star on\n" - "the floating island by\n" - "using the four cannons.\n" - "Use the Control Stick to\n" - "aim, then press [A] to fire.\n" - "\n" - "If you're handy, you can\n" - "grab on to trees or poles\n" - "to land.") -}; - - -// 0x0200B7FC -static const u8 Dialog106[] = { - _("Ready for blastoff! Come\n" - "on, hop into the cannon!") -}; - - -// 0x0200B820 -static const u8 Dialog107[] = { - _("Ghosts...\n" - "...don't...\n" - "...DIE!\n" - "Heh, heh, heh!\n" - "Can you get out of here...\n" - "...alive?") -}; - - -// 0x0200B848 -static const u8 Dialog108[] = { - _("Boooooo-m! Here comes\n" - "the master of mischief,\n" - "the tower of terror,\n" - "the Big Boo!\n" - "Ka ha ha ha...") -}; - - -// 0x0200B868 -static const u8 Dialog109[] = { - _("Ooooo Nooooo!\n" - "Talk about out-of-body\n" - "experiences--my body\n" - "has melted away!\n" - "Have you run in to any\n" - "headhunters lately??\n" - "I could sure use a new\n" - "body!\n" - "Brrr! My face might\n" - "freeze like this!") -}; - - -// 0x0200B8A4 -static const u8 Dialog110[] = { - _("I need a good head on my\n" - "shoulders. Do you know of\n" - "anybody in need of a good\n" - "body? Please! I'll follow\n" - "you if you do!") -}; - - -// 0x0200B914 -static const u8 Dialog111[] = { - _("Perfect! What a great\n" - "new body! Here--this is a\n" - "present for you. It's sure\n" - "to warm you up.") -}; - - -// 0x0200B964 -static const u8 Dialog112[] = { - _("Collect as many coins as\n" - "possible! They'll refill\n" - "your Power Meter.\n" - "\n" - "You can check to see how\n" - "many coins you've\n" - "collected in each of the\n" - "15 enemy worlds.\n" - "You can also recover\n" - "power by touching the\n" - "Spinning Heart.\n" - "\n" - "The faster you run\n" - "through the heart, the\n" - "more power you'll recover.") -}; - - -// 0x0200B9D0 -static const u8 Dialog113[] = { - _("There are special Caps in\n" - "the red, green and blue\n" - "blocks. Step on the\n" - "switches in the hidden\n" - "courses to activate the\n" - "Cap Blocks.") -}; - - -// 0x0200BA24 -static const u8 Dialog114[] = { - _("It makes me so mad! We\n" - "build your houses, your\n" - "castles. We pave your\n" - "roads, and still you\n" - "walk all over us.\n" - "Do you ever say thank\n" - "you? No! Well, you're not\n" - "going to wipe your feet\n" - "on me! I think I'll crush\n" - "you just for fun!\n" - "Do you have a problem\n" - "with that? Just try to\n" - "pound me, wimp! Ha!") -}; - - -// 0x0200BAFC -static const u8 Dialog115[] = { - _("No! Crushed again!\n" - "I'm just a stepping stone,\n" - "after all. I won't gravel,\n" - "er, grovel. Here, you win.\n" - "Take this with you!") -}; - - -// 0x0200BB50 -static const u8 Dialog116[] = { - _("Whaaa....Whaaat?\n" - "Can it be that a\n" - "pipsqueak like you has\n" - "defused the Bob-omb\n" - "king????\n" - "You might be fast enough\n" - "to ground me, but you'll\n" - "have to pick up the pace\n" - "if you want to take King\n" - "Bowser by the tail.\n" - "Methinks my troops could\n" - "learn a lesson from you!\n" - "Here is your Star, as I\n" - "promised, Mario.\n" - "\n" - "If you want to see me\n" - "again, select this Star\n" - "from the menu. For now,\n" - "farewell.") -}; - - -// 0x0200BBDC -static const u8 Dialog117[] = { - _("Who...walk...here?\n" - "Who...break...seal?\n" - "Wake..ancient..ones?\n" - "We no like light...\n" - "Rrrrummbbble...\n" - "We no like...intruders!\n" - "Now battle...\n" - "...hand...\n" - "...to...\n" - "...hand!") -}; - - -// 0x0200BC28 -static const u8 Dialog118[] = { - _("Grrrrumbbble!\n" - "What...happen?\n" - "We...crushed like pebble.\n" - "You so strong!\n" - "You rule ancient pyramid!\n" - "For today...\n" - "Now, take Star of Power.\n" - "We...sleep...darkness.") -}; - - -// 0x0200BC68 -static const u8 Dialog119[] = { - _("Grrr! I was a bit\n" - "careless. This is not as I\n" - "had planned...but I still\n" - "hold the power of the\n" - "Stars, and I still have\n" - "Peach.\n" - "Bwa ha ha! You'll get no\n" - "more Stars from me! I'm\n" - "not finished with you yet,\n" - "but I'll let you go for\n" - "now. You'll pay for this...\n" - "later!") -}; - - -// 0x0200BD0C -static const u8 Dialog120[] = { - _("Ooowaah! Can it be that\n" - "I've lost??? The power of\n" - "the Stars has failed me...\n" - "this time.\n" - "Consider this a draw.\n" - "Next time, I'll be in\n" - "perfect condition.\n" - "\n" - "Now, if you want to see\n" - "your precious Princess,\n" - "come to the top of the\n" - "tower.\n" - "I'll be waiting!\n" - "Gwa ha ha ha!") -}; - - -// 0x0200BDA4 -static const u8 Dialog121[] = { - _("Nooo! It can't be!\n" - "You've really beaten me,\n" - "Mario?!! I gave those\n" - "troops power, but now\n" - "it's fading away!\n" - "Arrgghh! I can see peace\n" - "returning to the world! I\n" - "can't stand it! Hmmm...\n" - "It's not over yet...\n" - "\n" - "C'mon troops! Let's watch\n" - "the ending together!\n" - "Bwa ha ha!") -}; - - -// 0x0200BE8C -static const u8 Dialog122[] = { - _("The Black Hole\n" - "Right: Work Elevator\n" - "/// Cloudy Maze\n" - "Left: Underground Lake") -}; - - -// 0x0200BEC0 -static const u8 Dialog123[] = { - _("Metal Cavern\n" - "Right: To Waterfall\n" - "Left: Metal Cap Switch") -}; - - -// 0x0200BEEC -static const u8 Dialog124[] = { - _("Work Elevator\n" - "Danger!!\n" - "Read instructions\n" - "thoroughly!\n" - "Elevator continues in the\n" - "direction of the arrow\n" - "activated.") -}; - - -// 0x0200BF48 -static const u8 Dialog125[] = { - _("Hazy Maze-Exit\n" - "Danger! Closed.\n" - "Turn back now.") -}; - - -// 0x0200BF74 -static const u8 Dialog126[] = { - _("Up: Black Hole\n" - "Right: Work Elevator\n" - "/// Hazy Maze") -}; - - -// 0x0200BFA8 -static const u8 Dialog127[] = { - _("Underground Lake\n" - "Right: Metal Cave\n" - "Left: Abandoned Mine\n" - "///(Closed)\n" - "A gentle sea dragon lives\n" - "here. Pound on his back to\n" - "make him lower his head.\n" - "Don't become his lunch.") -}; - - -// 0x0200C024 -static const u8 Dialog128[] = { - _("You must fight with\n" - "honor! It is against the\n" - "royal rules to throw the\n" - "king out of the ring!") -}; - - -// 0x0200C060 -static const u8 Dialog129[] = { - _("Welcome to the Vanish\n" - "Cap Switch Course! All of\n" - "the blue blocks you find\n" - "will become solid once you\n" - "step on the Cap Switch.\n" - "You'll disappear when you\n" - "put on the Vanish Cap, so\n" - "you'll be able to elude\n" - "enemies and walk through\n" - "many things. Try it out!") -}; - - -// 0x0200C0DC -static const u8 Dialog130[] = { - _("Welcome to the Metal Cap\n" - "Switch Course! Once you\n" - "step on the Cap Switch,\n" - "the green blocks will\n" - "become solid.\n" - "When you turn your body\n" - "into metal with the Metal\n" - "Cap, you can walk\n" - "underwater! Try it!") -}; - - -// 0x0200C154 -static const u8 Dialog131[] = { - _("Welcome to the Wing Cap\n" - "Course! Step on the red\n" - "switch at the top of the\n" - "tower, in the center of\n" - "the rainbow ring.\n" - "When you trigger the\n" - "switch, all of the red\n" - "blocks you find will\n" - "become solid.\n" - "\n" - "Try out the Wing Cap! Do\n" - "the Triple Jump to take\n" - "off and press [Z] to land.\n" - "\n" - "\n" - "Pull back on the Control\n" - "Stick to go up and push\n" - "forward to nose down,\n" - "just as you would when\n" - "flying an airplane.") -}; - - -// 0x0200C21C -static const u8 Dialog132[] = { - _("Whoa, Mario, pal, you\n" - "aren't trying to cheat,\n" - "are you? Shortcuts aren't\n" - "allowed.\n" - "Now, I know that you\n" - "know better. You're\n" - "disqualified! Next time,\n" - "play fair!") -}; - - -// 0x0200C250 -static const u8 Dialog133[] = { - _("Am I glad to see you! The\n" - "Princess...and I...and,\n" - "well, everybody...we're all\n" - "trapped inside the castle\n" - "walls.\n" - "\n" - "Bowser has stolen the\n" - "castle's Stars, and he's\n" - "using their power to\n" - "create his own world in\n" - "the paintings and walls.\n" - "\n" - "Please recover the Power\n" - "Stars! As you find them,\n" - "you can use their power\n" - "to open the doors that\n" - "Bowser has sealed.\n" - "\n" - "There are four rooms on\n" - "the first floor. Start in\n" - "the one with the painting\n" - "of Bob-omb inside. It's\n" - "the only room that Bowser\n" - "hasn't sealed.\n" - "When you collect eight\n" - "Power Stars, you'll be\n" - "able to open the door\n" - "with the big star. The\n" - "Princess must be inside!") -}; - - -// 0x0200C398 -static const u8 Dialog134[] = { - _("The names of the Stars\n" - "are also hints for\n" - "finding them. They are\n" - "displayed at the beginning\n" - "of each course.\n" - "You can collect the Stars\n" - "in any order. You won't\n" - "find some Stars, enemies\n" - "or items unless you select\n" - "a specific Star.\n" - "After you collect some\n" - "Stars, you can try\n" - "another course.\n" - "We're all waiting for\n" - "your help!") -}; - - -// 0x0200C468 -static const u8 Dialog135[] = { - _("It was Bowser who stole\n" - "the Stars. I saw him with\n" - "my own eyes!\n" - "\n" - "\n" - "He's hidden six Stars in\n" - "each course, but you\n" - "won't find all of them in\n" - "some courses until you\n" - "press the Cap Switches.\n" - "The Stars you've found\n" - "will show on each course's\n" - "starting screen.\n" - "\n" - "\n" - "If you want to see some\n" - "of the enemies you've\n" - "already defeated, select\n" - "the Stars you recovered\n" - "from them.") -}; - - -// 0x0200C534 -static const u8 Dialog136[] = { - _("Wow! You've already\n" - "recovered that many\n" - "Stars? Way to go, Mario!\n" - "I'll bet you'll have us out\n" - "of here in no time!\n" - "\n" - "Be careful, though.\n" - "Bowser and his band\n" - "wrote the book on 『bad.』\n" - "Take my advice: When you\n" - "need to recover from\n" - "injuries, collect coins.\n" - "Yellow Coins refill one\n" - "piece of the Power Meter,\n" - "Red Coins refill two\n" - "pieces, and Blue Coins\n" - "refill five.\n" - "\n" - "To make Blue Coins\n" - "appear, pound on Blue\n" - "Coin Blocks.\n" - "\n" - "\n" - "\n" - "Also, if you fall from\n" - "high places, you'll\n" - "minimize damage if you\n" - "Pound the Ground as you\n" - "land.") -}; - - -// 0x0200C614 -static const u8 Dialog137[] = { - _("Thanks, Mario! The castle\n" - "is recovering its energy\n" - "as you retrieve Power\n" - "Stars, and you've chased\n" - "Bowser right out of here,\n" - "on to some area ahead.\n" - "Oh, by the by, are you\n" - "collecting coins? Special\n" - "Stars appear when you\n" - "collect 100 coins in each\n" - "of the 15 courses!") -}; - - -// 0x0200C698 -static const u8 Dialog138[] = { - _("Down: Underground Lake\n" - "Left: Black Hole\n" - "Right: Hazy Maze (Closed)") -}; - - -// 0x0200C6D8 -static const u8 Dialog139[] = { - _("Above: Automatic Elevator\n" - "Elevator begins\n" - "automatically and follows\n" - "pre-set course.\n" - "It disappears\n" - "automatically, too.") -}; - - -// 0x0200C72C -static const u8 Dialog140[] = { - _("Elevator Area\n" - "Right: Hazy Maze\n" - "/// Entrance\n" - "Left: Black Hole\n" - "///Elevator 1\n" - "Arrow: You are here") -}; - - -// 0x0200C780 -static const u8 Dialog141[] = { - _("You've recovered one of\n" - "the stolen Power Stars!\n" - "Now you can open some of\n" - "the sealed doors in the\n" - "castle.\n" - "Try the Princess's room\n" - "on the second floor and\n" - "the room with the\n" - "painting of Whomp's\n" - "Fortress on Floor 1.\n" - "Bowser's troops are still\n" - "gaining power, so you\n" - "can't give up. Save us,\n" - "Mario! Keep searching for\n" - "Stars!") -}; - - -// 0x0200C83C -static const u8 Dialog142[] = { - _("You've recovered three\n" - "Power Stars! Now you can\n" - "open any door with a 3\n" - "on its star.\n" - "\n" - "You can come and go from\n" - "the open courses as you\n" - "please. The enemies ahead\n" - "are even meaner, so be\n" - "careful!") -}; - - -// 0x0200C8BC -static const u8 Dialog143[] = { - _("You've recovered eight of\n" - "the Power Stars! Now you\n" - "can open the door with\n" - "the big Star! But Bowser\n" - "is just ahead...can you\n" - "hear the Princess calling?") -}; - - -// 0x0200C90C -static const u8 Dialog144[] = { - _("You've recovered 30\n" - "Power Stars! Now you can\n" - "open the door with the\n" - "big Star! But before you\n" - "move on, how's it going\n" - "otherwise?\n" - "Did you pound the two\n" - "columns down? You didn't\n" - "lose your hat, did you?\n" - "If you did, you'll have to\n" - "stomp on the condor to\n" - "get it back!\n" - "They say that Bowser has\n" - "sneaked out of the sea\n" - "and into the underground.\n" - "Have you finally\n" - "cornered him?") -}; - - -// 0x0200C9C4 -static const u8 Dialog145[] = { - _("You've recovered 50\n" - "Power Stars! Now you can\n" - "open the Star Door on the\n" - "third floor. Bowser's\n" - "there, you know.\n" - "\n" - "Oh! You've found all of\n" - "the Cap Switches, haven't\n" - "you? Red, green and blue?\n" - "The Caps you get from the\n" - "colored blocks are really\n" - "helpful.\n" - "Hurry along, now. The\n" - "third floor is just ahead.") -}; - - -// 0x0200CA5C -static const u8 Dialog146[] = { - _("You've found 70 Power\n" - "Stars! The mystery of the\n" - "endless stairs is solved,\n" - "thanks to you--and is\n" - "Bowser ever upset! Now,\n" - "on to the final bout!") -}; - - -// 0x0200CAAC -static const u8 Dialog147[] = { - _("Are you using the Cap\n" - "Blocks? You really should,\n" - "you know.\n" - "\n" - "\n" - "To make them solid so you\n" - "can break them, you have\n" - "to press the colored Cap\n" - "Switches in the castle's\n" - "hidden courses.\n" - "You'll find the hidden\n" - "courses only after\n" - "regaining some of the\n" - "Power Stars.\n" - "\n" - "The Cap Blocks are a big\n" - "help! Red for the Wing\n" - "Cap, green for the Metal\n" - "Cap, blue for the Vanish\n" - "Cap.") -}; - - -// 0x0200CB64 -static const u8 Dialog148[] = { - _("Snowman Mountain ahead.\n" - "Keep out! And don't try\n" - "the Triple Jump over the\n" - "ice block shooter.\n" - "\n" - "\n" - "If you fall into the\n" - "freezing pond, your power\n" - "decreases quickly, and\n" - "you won't recover\n" - "automatically.\n" - "//--The Snowman") -}; - - -// 0x0200CBE0 -static const u8 Dialog149[] = { - _("Welcome to\n" - "Princess Toadstool's\n" - "secret slide!\n" - "There's a Star hidden\n" - "here that Bowser couldn't\n" - "find.\n" - "When you slide, press\n" - "forward to speed up,\n" - "pull back to slow down.\n" - "If you slide really\n" - "fast, you'll win the Star!") -}; - - -// 0x0200CC6C -static const u8 Dialog150[] = { - _("Waaaa! You've flooded my\n" - "house! Wh-why?? Look at\n" - "this mess! What am I\n" - "going to do now?\n" - "\n" - "The ceiling's ruined, the\n" - "floor is soaked...what to\n" - "do, what to do? Huff...\n" - "huff...it makes me so...\n" - "MAD!!!\n" - "Everything's been going\n" - "wrong ever since I got\n" - "this Star...It's so shiny,\n" - "but it makes me feel...\n" - "strange...") -}; - - -// 0x0200CCAC -static const u8 Dialog151[] = { - _("I can't take this\n" - "anymore! First you get\n" - "me all wet, then you\n" - "stomp on me!\n" - "Now I'm really, really,\n" - "REALLY mad!\n" - "Waaaaaaaaaaaaaaaaa!!!") -}; - - -// 0x0200CCDC -static const u8 Dialog152[] = { - _("Owwch! Uncle! Uncle!\n" - "Okay, I give. Take this\n" - "Star!\n" - "Whew! I feel better now.\n" - "I don't really need it\n" - "anymore, anyway--\n" - "I can see the stars\n" - "through my ceiling at\n" - "night.\n" - "They make me feel...\n" - "...peaceful. Please, come\n" - "back and visit anytime.") -}; - - -// 0x0200CD58 -static const u8 Dialog153[] = { - _("Hey! Who's there?\n" - "What's climbing on me?\n" - "Is it an ice ant?\n" - "A snow flea?\n" - "Whatever it is, it's\n" - "bugging me! I think I'll\n" - "blow it away!") -}; - - -// 0x0200CD8C -static const u8 Dialog154[] = { - _("Hold on to your hat! If\n" - "you lose it, you'll be\n" - "easily injured. If you\n" - "lose it, look for it in the\n" - "course where you lost it.\n" - "Speaking of lost, the\n" - "Princess is still stuck in\n" - "the walls somewhere.\n" - "Please help, Mario!\n" - "\n" - "Oh, you know that there\n" - "are secret worlds in the\n" - "walls as well as in the\n" - "paintings, right?") -}; - - -// 0x0200CE48 -static const u8 Dialog155[] = { - _("Thanks to the power of\n" - "the Stars, life is\n" - "returning to the castle.\n" - "Please, Mario, you have\n" - "to give Bowser the boot!\n" - "\n" - "Here, let me tell you a\n" - "little something about the\n" - "castle. In the room with\n" - "the mirrors, look carefully\n" - "for anything that's not\n" - "reflected in the mirror.\n" - "And when you go to the\n" - "water town, you can flood\n" - "it with a high jump into\n" - "the painting.") -}; - - -// 0x0200CEFC -static const u8 Dialog156[] = { - _("The world inside the\n" - "clock is so strange!\n" - "When you jump inside,\n" - "watch the position of\n" - "the big hand!") -}; - - -// 0x0200CF34 -static const u8 Dialog157[] = { - _("Watch out! Don't let\n" - "yourself be swallowed by\n" - "quicksand.\n" - "\n" - "\n" - "If you sink into the sand,\n" - "you won't be able to\n" - "jump, and if your head\n" - "goes under, you'll be\n" - "smothered.\n" - "The dark areas are\n" - "bottomless pits.") -}; - - -// 0x0200CFAC -static const u8 Dialog158[] = { - _("1. If you jump repeatedly\n" - "and time it right, you'll\n" - "jump higher and higher.\n" - "If you run really fast and\n" - "time three jumps right,\n" - "you can do a Triple Jump.\n" - "2. Jump into a solid wall,\n" - "then jump again when you\n" - "hit the wall. You can\n" - "bounce to a higher level\n" - "using this Wall Kick.") -}; - - -// 0x0200D078 -static const u8 Dialog159[] = { - _("3. If you stop, press [Z]\n" - "to crouch, then jump, you\n" - "can perform a Backward\n" - "Somersault. To do a Long\n" - "Jump, run fast, press [Z],\n" - "then jump.") -}; - - -// 0x0200D0F8 -static const u8 Dialog160[] = { - _("Press [B] while running\n" - "fast to do a Body Slide\n" - "attack. To stand while\n" - "sliding, press [A] or [B].") -}; - - -// 0x0200D158 -static const u8 Dialog161[] = { - _("Mario!!!\n" - "It that really you???\n" - "It has been so long since\n" - "our last adventure!\n" - "They told me that I might\n" - "see you if I waited here,\n" - "but I'd just about given\n" - "up hope!\n" - "Is it true? Have you\n" - "really beaten Bowser? And\n" - "restored the Stars to the\n" - "castle?\n" - "And saved the Princess?\n" - "I knew you could do it!\n" - "Now I have a very special\n" - "message for you.\n" - "『Thanks for playing Super\n" - "Mario 64! This is the\n" - "end of the game, but not\n" - "the end of the fun.\n" - "We want you to keep on\n" - "playing, so we have a\n" - "little something for you.\n" - "We hope that you like it!\n" - "Enjoy!!!』\n" - "\n" - "The Super Mario 64 Team") -}; - - -// 0x0200D1E4 -static const u8 Dialog162[] = { - _("No, no, no! Not you\n" - "again! I'm in a great\n" - "hurry, can't you see?\n" - "\n" - "I've no time to squabble\n" - "over Stars. Here, have it.\n" - "I never meant to hide it\n" - "from you...\n" - "It's just that I'm in such\n" - "a rush. That's it, that's\n" - "all. Now, I must be off.\n" - "Owww! Let me go!") -}; - - -// 0x0200D260 -static const u8 Dialog163[] = { - _("Noooo! You've really\n" - "beaten me this time,\n" - "Mario! I can't stand\n" - "losing to you!\n" - "\n" - "My troops...worthless!\n" - "They've turned over all\n" - "the Power Stars! What?!\n" - "There are 120 in all???\n" - "\n" - "Amazing! There were some\n" - "in the castle that I\n" - "missed??!!\n" - "\n" - "\n" - "Now I see peace\n" - "returning to the world...\n" - "Oooo! I really hate that!\n" - "I can't watch--\n" - "I'm outta here!\n" - "Just you wait until next\n" - "time. Until then, keep\n" - "that Control Stick\n" - "smokin'!\n" - "Buwaa ha ha!") -}; - - -// 0x0200D3A8 -static const u8 Dialog164[] = { - _("Mario! What's up, pal?\n" - "I haven't been on the\n" - "slide lately, so I'm out\n" - "of shape.\n" - "Still, I'm always up for a\n" - "good race, especially\n" - "against an old sleddin'\n" - "buddy.\n" - "Whaddya say?\n" - "Ready...set...\n" - "\n" - "//Go//// Don't Go") -}; - - -// 0x0200D400 -static const u8 Dialog165[] = { - _("I take no responsibility\n" - "whatsoever for those who\n" - "get dizzy and pass out\n" - "from running around\n" - "this post.") -}; - - -// 0x0200D424 -static const u8 Dialog166[] = { - _("I'll be back soon.\n" - "I'm out training now,\n" - "so come back later.\n" - "//--Koopa the Quick") -}; - - -// 0x0200D46C -static const u8 Dialog167[] = { - _("Princess Toadstool's\n" - "castle is just ahead.\n" - "\n" - "\n" - "Press [A] to jump, [Z] to\n" - "crouch, and [B] to punch,\n" - "read a sign, or grab\n" - "something.\n" - "Press [B] again to throw\n" - "something you're holding.") -}; - - -// 0x0200D4D4 -static const u8 Dialog168[] = { - _("Hey! Knock it off! That's\n" - "the second time you've\n" - "nailed me. Now you're\n" - "asking for it, linguine\n" - "breath!") -}; - - -// 0x0200D504 -static const u8 Dialog169[] = { - _("Keep out!\n" - "That means you!\n" - "Arrgghh!\n" - "\n" - "Anyone entering this cave\n" - "without permission will\n" - "meet certain disaster.") -}; - - -// dialog table 0x0200D548 -static const struct DialogEntry dialog_text_000 = { - 1, 6, 30, 200, Dialog000 -}; - -static const struct DialogEntry dialog_text_001 = { - 1, 4, 95, 200, Dialog001 -}; - -static const struct DialogEntry dialog_text_002 = { - 1, 4, 95, 200, Dialog002 -}; - -static const struct DialogEntry dialog_text_003 = { - 1, 5, 95, 200, Dialog003 -}; - -static const struct DialogEntry dialog_text_004 = { - 1, 3, 95, 200, Dialog004 -}; - -static const struct DialogEntry dialog_text_005 = { - 1, 3, 30, 200, Dialog005 -}; - -static const struct DialogEntry dialog_text_006 = { - 1, 3, 30, 200, Dialog006 -}; - -static const struct DialogEntry dialog_text_007 = { - 1, 5, 30, 200, Dialog007 -}; - -static const struct DialogEntry dialog_text_008 = { - 1, 4, 30, 200, Dialog008 -}; - -static const struct DialogEntry dialog_text_009 = { - 1, 5, 30, 200, Dialog009 -}; - -static const struct DialogEntry dialog_text_010 = { - 1, 4, 30, 200, Dialog010 -}; - -static const struct DialogEntry dialog_text_011 = { - 1, 4, 30, 200, Dialog011 -}; - -static const struct DialogEntry dialog_text_012 = { - 1, 4, 30, 200, Dialog012 -}; - -static const struct DialogEntry dialog_text_013 = { - 1, 5, 30, 200, Dialog013 -}; - -static const struct DialogEntry dialog_text_014 = { - 1, 4, 30, 200, Dialog014 -}; - -static const struct DialogEntry dialog_text_015 = { - 1, 4, 30, 200, Dialog015 -}; - -static const struct DialogEntry dialog_text_016 = { - 1, 3, 30, 200, Dialog016 -}; - -static const struct DialogEntry dialog_text_017 = { - 1, 4, 30, 200, Dialog017 -}; - -static const struct DialogEntry dialog_text_018 = { - 1, 4, 30, 200, Dialog018 -}; - -static const struct DialogEntry dialog_text_019 = { - 1, 2, 30, 200, Dialog019 -}; - -static const struct DialogEntry dialog_text_020 = { - 1, 6, 95, 150, Dialog020 -}; - -static const struct DialogEntry dialog_text_021 = { - 1, 5, 95, 200, Dialog021 -}; - -static const struct DialogEntry dialog_text_022 = { - 1, 2, 95, 200, Dialog022 -}; - -static const struct DialogEntry dialog_text_023 = { - 1, 3, 95, 200, Dialog023 -}; - -static const struct DialogEntry dialog_text_024 = { - 1, 5, 95, 200, Dialog024 -}; - -static const struct DialogEntry dialog_text_025 = { - 1, 4, 95, 200, Dialog025 -}; - -static const struct DialogEntry dialog_text_026 = { - 1, 4, 95, 200, Dialog026 -}; - -static const struct DialogEntry dialog_text_027 = { - 1, 4, 95, 200, Dialog027 -}; - -static const struct DialogEntry dialog_text_028 = { - 1, 4, 95, 200, Dialog028 -}; - -static const struct DialogEntry dialog_text_029 = { - 1, 5, 95, 200, Dialog029 -}; - -static const struct DialogEntry dialog_text_030 = { - 1, 6, 30, 200, Dialog030 -}; - -static const struct DialogEntry dialog_text_031 = { - 1, 5, 30, 200, Dialog031 -}; - -static const struct DialogEntry dialog_text_032 = { - 1, 5, 30, 200, Dialog032 -}; - -static const struct DialogEntry dialog_text_033 = { - 1, 6, 30, 200, Dialog033 -}; - -static const struct DialogEntry dialog_text_034 = { - 1, 6, 30, 200, Dialog034 -}; - -static const struct DialogEntry dialog_text_035 = { - 1, 5, 30, 200, Dialog035 -}; - -static const struct DialogEntry dialog_text_036 = { - 1, 5, 30, 200, Dialog036 -}; - -static const struct DialogEntry dialog_text_037 = { - 1, 2, 30, 200, Dialog037 -}; - -static const struct DialogEntry dialog_text_038 = { - 1, 3, 95, 200, Dialog038 -}; - -static const struct DialogEntry dialog_text_039 = { - 1, 4, 30, 200, Dialog039 -}; - -static const struct DialogEntry dialog_text_040 = { - 1, 3, 30, 200, Dialog040 -}; - -static const struct DialogEntry dialog_text_041 = { - 1, 3, 30, 200, Dialog041 -}; - -static const struct DialogEntry dialog_text_042 = { - 1, 4, 30, 200, Dialog042 -}; - -static const struct DialogEntry dialog_text_043 = { - 1, 5, 30, 200, Dialog043 -}; - -static const struct DialogEntry dialog_text_044 = { - 1, 5, 95, 200, Dialog044 -}; - -static const struct DialogEntry dialog_text_045 = { - 1, 6, 95, 200, Dialog045 -}; - -static const struct DialogEntry dialog_text_046 = { - 1, 5, 30, 200, Dialog046 -}; - -static const struct DialogEntry dialog_text_047 = { - 1, 2, 95, 200, Dialog047 -}; - -static const struct DialogEntry dialog_text_048 = { - 1, 4, 30, 200, Dialog048 -}; - -static const struct DialogEntry dialog_text_049 = { - 1, 5, 30, 200, Dialog049 -}; - -static const struct DialogEntry dialog_text_050 = { - 1, 4, 30, 200, Dialog050 -}; - -static const struct DialogEntry dialog_text_051 = { - 1, 6, 30, 200, Dialog051 -}; - -static const struct DialogEntry dialog_text_052 = { - 1, 5, 30, 200, Dialog052 -}; - -static const struct DialogEntry dialog_text_053 = { - 1, 5, 30, 200, Dialog053 -}; - -static const struct DialogEntry dialog_text_054 = { - 1, 5, 30, 200, Dialog054 -}; - -static const struct DialogEntry dialog_text_055 = { - 1, 4, 30, 200, Dialog055 -}; - -static const struct DialogEntry dialog_text_056 = { - 1, 6, 30, 200, Dialog056 -}; - -static const struct DialogEntry dialog_text_057 = { - 1, 4, 30, 200, Dialog057 -}; - -static const struct DialogEntry dialog_text_058 = { - 1, 4, 30, 200, Dialog058 -}; - -static const struct DialogEntry dialog_text_059 = { - 1, 4, 30, 200, Dialog059 -}; - -static const struct DialogEntry dialog_text_060 = { - 1, 4, 30, 200, Dialog060 -}; - -static const struct DialogEntry dialog_text_061 = { - 1, 4, 30, 200, Dialog061 -}; - -static const struct DialogEntry dialog_text_062 = { - 1, 3, 30, 200, Dialog062 -}; - -static const struct DialogEntry dialog_text_063 = { - 1, 5, 30, 200, Dialog063 -}; - -static const struct DialogEntry dialog_text_064 = { - 1, 5, 30, 200, Dialog064 -}; - -static const struct DialogEntry dialog_text_065 = { - 1, 6, 30, 200, Dialog065 -}; - -static const struct DialogEntry dialog_text_066 = { - 1, 5, 30, 200, Dialog066 -}; - -static const struct DialogEntry dialog_text_067 = { - 1, 5, 30, 200, Dialog067 -}; - -static const struct DialogEntry dialog_text_068 = { - 1, 5, 30, 200, Dialog068 -}; - -static const struct DialogEntry dialog_text_069 = { - 1, 6, 30, 200, Dialog069 -}; - -static const struct DialogEntry dialog_text_070 = { - 1, 5, 30, 200, Dialog070 -}; - -static const struct DialogEntry dialog_text_071 = { - 1, 3, 30, 200, Dialog071 -}; - -static const struct DialogEntry dialog_text_072 = { - 1, 5, 30, 200, Dialog072 -}; - -static const struct DialogEntry dialog_text_073 = { - 1, 4, 95, 200, Dialog073 -}; - -static const struct DialogEntry dialog_text_074 = { - 1, 5, 30, 200, Dialog074 -}; - -static const struct DialogEntry dialog_text_075 = { - 1, 5, 30, 200, Dialog075 -}; - -static const struct DialogEntry dialog_text_076 = { - 1, 6, 30, 200, Dialog076 -}; - -static const struct DialogEntry dialog_text_077 = { - 1, 2, 150, 200, Dialog077 -}; - -static const struct DialogEntry dialog_text_078 = { - 1, 5, 30, 200, Dialog078 -}; - -static const struct DialogEntry dialog_text_079 = { - 1, 4, 30, 200, Dialog079 -}; - -static const struct DialogEntry dialog_text_080 = { - 1, 1, 30, 200, Dialog080 -}; - -static const struct DialogEntry dialog_text_081 = { - 1, 4, 30, 200, Dialog081 -}; - -static const struct DialogEntry dialog_text_082 = { - 1, 4, 30, 200, Dialog082 -}; - -static const struct DialogEntry dialog_text_083 = { - 1, 6, 30, 200, Dialog083 -}; - -static const struct DialogEntry dialog_text_084 = { - 1, 3, 30, 200, Dialog084 -}; - -static const struct DialogEntry dialog_text_085 = { - 1, 5, 30, 200, Dialog085 -}; - -static const struct DialogEntry dialog_text_086 = { - 1, 3, 30, 200, Dialog086 -}; - -static const struct DialogEntry dialog_text_087 = { - 1, 4, 30, 200, Dialog087 -}; - -static const struct DialogEntry dialog_text_088 = { - 1, 5, 30, 200, Dialog088 -}; - -static const struct DialogEntry dialog_text_089 = { - 1, 5, 95, 200, Dialog089 -}; - -static const struct DialogEntry dialog_text_090 = { - 1, 6, 30, 200, Dialog090 -}; - -static const struct DialogEntry dialog_text_091 = { - 2, 2, 30, 200, Dialog091 -}; - -static const struct DialogEntry dialog_text_092 = { - 1, 5, 30, 200, Dialog092 -}; - -static const struct DialogEntry dialog_text_093 = { - 1, 5, 30, 200, Dialog093 -}; - -static const struct DialogEntry dialog_text_094 = { - 1, 4, 30, 200, Dialog094 -}; - -static const struct DialogEntry dialog_text_095 = { - 1, 4, 30, 200, Dialog095 -}; - -static const struct DialogEntry dialog_text_096 = { - 1, 4, 30, 200, Dialog096 -}; - -static const struct DialogEntry dialog_text_097 = { - 1, 5, 30, 200, Dialog097 -}; - -static const struct DialogEntry dialog_text_098 = { - 1, 2, 95, 200, Dialog098 -}; - -static const struct DialogEntry dialog_text_099 = { - 1, 5, 95, 200, Dialog099 -}; - -static const struct DialogEntry dialog_text_100 = { - 1, 3, 95, 200, Dialog100 -}; - -static const struct DialogEntry dialog_text_101 = { - 1, 3, 95, 200, Dialog101 -}; - -static const struct DialogEntry dialog_text_102 = { - 1, 5, 30, 200, Dialog102 -}; - -static const struct DialogEntry dialog_text_103 = { - 1, 4, 95, 200, Dialog103 -}; - -static const struct DialogEntry dialog_text_104 = { - 1, 5, 30, 200, Dialog104 -}; - -static const struct DialogEntry dialog_text_105 = { - 1, 3, 95, 200, Dialog105 -}; - -static const struct DialogEntry dialog_text_106 = { - 1, 2, 95, 200, Dialog106 -}; - -static const struct DialogEntry dialog_text_107 = { - 1, 3, 95, 200, Dialog107 -}; - -static const struct DialogEntry dialog_text_108 = { - 1, 2, 95, 200, Dialog108 -}; - -static const struct DialogEntry dialog_text_109 = { - 1, 4, 95, 200, Dialog109 -}; - -static const struct DialogEntry dialog_text_110 = { - 1, 5, 95, 200, Dialog110 -}; - -static const struct DialogEntry dialog_text_111 = { - 1, 4, 95, 200, Dialog111 -}; - -static const struct DialogEntry dialog_text_112 = { - 1, 4, 30, 200, Dialog112 -}; - -static const struct DialogEntry dialog_text_113 = { - 1, 6, 30, 200, Dialog113 -}; - -static const struct DialogEntry dialog_text_114 = { - 1, 5, 95, 200, Dialog114 -}; - -static const struct DialogEntry dialog_text_115 = { - 1, 5, 95, 200, Dialog115 -}; - -static const struct DialogEntry dialog_text_116 = { - 1, 5, 95, 200, Dialog116 -}; - -static const struct DialogEntry dialog_text_117 = { - 1, 1, 95, 200, Dialog117 -}; - -static const struct DialogEntry dialog_text_118 = { - 1, 6, 95, 200, Dialog118 -}; - -static const struct DialogEntry dialog_text_119 = { - 1, 6, 30, 200, Dialog119 -}; - -static const struct DialogEntry dialog_text_120 = { - 1, 4, 30, 200, Dialog120 -}; - -static const struct DialogEntry dialog_text_121 = { - 1, 5, 30, 200, Dialog121 -}; - -static const struct DialogEntry dialog_text_122 = { - 1, 4, 30, 200, Dialog122 -}; - -static const struct DialogEntry dialog_text_123 = { - 1, 4, 30, 200, Dialog123 -}; - -static const struct DialogEntry dialog_text_124 = { - 1, 4, 30, 200, Dialog124 -}; - -static const struct DialogEntry dialog_text_125 = { - 1, 3, 30, 200, Dialog125 -}; - -static const struct DialogEntry dialog_text_126 = { - 2, 3, 30, 200, Dialog126 -}; - -static const struct DialogEntry dialog_text_127 = { - 3, 4, 30, 200, Dialog127 -}; - -static const struct DialogEntry dialog_text_128 = { - 1, 4, 95, 200, Dialog128 -}; - -static const struct DialogEntry dialog_text_129 = { - 1, 5, 30, 200, Dialog129 -}; - -static const struct DialogEntry dialog_text_130 = { - 1, 5, 30, 200, Dialog130 -}; - -static const struct DialogEntry dialog_text_131 = { - 1, 5, 30, 200, Dialog131 -}; - -static const struct DialogEntry dialog_text_132 = { - 1, 4, 30, 200, Dialog132 -}; - -static const struct DialogEntry dialog_text_133 = { - 1, 6, 30, 200, Dialog133 -}; - -static const struct DialogEntry dialog_text_134 = { - 1, 5, 30, 200, Dialog134 -}; - -static const struct DialogEntry dialog_text_135 = { - 1, 5, 30, 200, Dialog135 -}; - -static const struct DialogEntry dialog_text_136 = { - 1, 6, 30, 200, Dialog136 -}; - -static const struct DialogEntry dialog_text_137 = { - 1, 6, 30, 200, Dialog137 -}; - -static const struct DialogEntry dialog_text_138 = { - 1, 3, 30, 200, Dialog138 -}; - -static const struct DialogEntry dialog_text_139 = { - 1, 6, 30, 200, Dialog139 -}; - -static const struct DialogEntry dialog_text_140 = { - 1, 6, 30, 200, Dialog140 -}; - -static const struct DialogEntry dialog_text_141 = { - 1, 5, 150, 200, Dialog141 -}; - -static const struct DialogEntry dialog_text_142 = { - 1, 5, 150, 200, Dialog142 -}; - -static const struct DialogEntry dialog_text_143 = { - 1, 6, 150, 200, Dialog143 -}; - -static const struct DialogEntry dialog_text_144 = { - 1, 6, 150, 200, Dialog144 -}; - -static const struct DialogEntry dialog_text_145 = { - 1, 6, 150, 200, Dialog145 -}; - -static const struct DialogEntry dialog_text_146 = { - 1, 6, 150, 200, Dialog146 -}; - -static const struct DialogEntry dialog_text_147 = { - 1, 5, 30, 200, Dialog147 -}; - -static const struct DialogEntry dialog_text_148 = { - 1, 6, 30, 200, Dialog148 -}; - -static const struct DialogEntry dialog_text_149 = { - 1, 3, 30, 200, Dialog149 -}; - -static const struct DialogEntry dialog_text_150 = { - 1, 5, 30, 200, Dialog150 -}; - -static const struct DialogEntry dialog_text_151 = { - 1, 4, 30, 200, Dialog151 -}; - -static const struct DialogEntry dialog_text_152 = { - 1, 3, 30, 200, Dialog152 -}; - -static const struct DialogEntry dialog_text_153 = { - 1, 4, 30, 200, Dialog153 -}; - -static const struct DialogEntry dialog_text_154 = { - 1, 5, 30, 200, Dialog154 -}; - -static const struct DialogEntry dialog_text_155 = { - 1, 6, 30, 200, Dialog155 -}; - -static const struct DialogEntry dialog_text_156 = { - 1, 5, 30, 200, Dialog156 -}; - -static const struct DialogEntry dialog_text_157 = { - 1, 5, 30, 200, Dialog157 -}; - -static const struct DialogEntry dialog_text_158 = { - 1, 6, 30, 200, Dialog158 -}; - -static const struct DialogEntry dialog_text_159 = { - 1, 6, 30, 200, Dialog159 -}; - -static const struct DialogEntry dialog_text_160 = { - 1, 4, 30, 200, Dialog160 -}; - -static const struct DialogEntry dialog_text_161 = { - 1, 4, 30, 200, Dialog161 -}; - -static const struct DialogEntry dialog_text_162 = { - 1, 4, 30, 200, Dialog162 -}; - -static const struct DialogEntry dialog_text_163 = { - 1, 5, 30, 200, Dialog163 -}; - -static const struct DialogEntry dialog_text_164 = { - 1, 4, 30, 200, Dialog164 -}; - -static const struct DialogEntry dialog_text_165 = { - 1, 5, 30, 200, Dialog165 -}; - -static const struct DialogEntry dialog_text_166 = { - 1, 4, 30, 200, Dialog166 -}; - -static const struct DialogEntry dialog_text_167 = { - 1, 4, 30, 200, Dialog167 -}; - -static const struct DialogEntry dialog_text_168 = { - 1, 5, 30, 200, Dialog168 -}; - -static const struct DialogEntry dialog_text_169 = { - 1, 4, 30, 200, Dialog169 -}; - - -// dialog table -// 0x0200DFE8 -const struct DialogEntry *const seg2_dialog_table[] = { - &dialog_text_000, &dialog_text_001, &dialog_text_002, &dialog_text_003, - &dialog_text_004, &dialog_text_005, &dialog_text_006, &dialog_text_007, - &dialog_text_008, &dialog_text_009, &dialog_text_010, &dialog_text_011, - &dialog_text_012, &dialog_text_013, &dialog_text_014, &dialog_text_015, - &dialog_text_016, &dialog_text_017, &dialog_text_018, &dialog_text_019, - &dialog_text_020, &dialog_text_021, &dialog_text_022, &dialog_text_023, - &dialog_text_024, &dialog_text_025, &dialog_text_026, &dialog_text_027, - &dialog_text_028, &dialog_text_029, &dialog_text_030, &dialog_text_031, - &dialog_text_032, &dialog_text_033, &dialog_text_034, &dialog_text_035, - &dialog_text_036, &dialog_text_037, &dialog_text_038, &dialog_text_039, - &dialog_text_040, &dialog_text_041, &dialog_text_042, &dialog_text_043, - &dialog_text_044, &dialog_text_045, &dialog_text_046, &dialog_text_047, - &dialog_text_048, &dialog_text_049, &dialog_text_050, &dialog_text_051, - &dialog_text_052, &dialog_text_053, &dialog_text_054, &dialog_text_055, - &dialog_text_056, &dialog_text_057, &dialog_text_058, &dialog_text_059, - &dialog_text_060, &dialog_text_061, &dialog_text_062, &dialog_text_063, - &dialog_text_064, &dialog_text_065, &dialog_text_066, &dialog_text_067, - &dialog_text_068, &dialog_text_069, &dialog_text_070, &dialog_text_071, - &dialog_text_072, &dialog_text_073, &dialog_text_074, &dialog_text_075, - &dialog_text_076, &dialog_text_077, &dialog_text_078, &dialog_text_079, - &dialog_text_080, &dialog_text_081, &dialog_text_082, &dialog_text_083, - &dialog_text_084, &dialog_text_085, &dialog_text_086, &dialog_text_087, - &dialog_text_088, &dialog_text_089, &dialog_text_090, &dialog_text_091, - &dialog_text_092, &dialog_text_093, &dialog_text_094, &dialog_text_095, - &dialog_text_096, &dialog_text_097, &dialog_text_098, &dialog_text_099, - &dialog_text_100, &dialog_text_101, &dialog_text_102, &dialog_text_103, - &dialog_text_104, &dialog_text_105, &dialog_text_106, &dialog_text_107, - &dialog_text_108, &dialog_text_109, &dialog_text_110, &dialog_text_111, - &dialog_text_112, &dialog_text_113, &dialog_text_114, &dialog_text_115, - &dialog_text_116, &dialog_text_117, &dialog_text_118, &dialog_text_119, - &dialog_text_120, &dialog_text_121, &dialog_text_122, &dialog_text_123, - &dialog_text_124, &dialog_text_125, &dialog_text_126, &dialog_text_127, - &dialog_text_128, &dialog_text_129, &dialog_text_130, &dialog_text_131, - &dialog_text_132, &dialog_text_133, &dialog_text_134, &dialog_text_135, - &dialog_text_136, &dialog_text_137, &dialog_text_138, &dialog_text_139, - &dialog_text_140, &dialog_text_141, &dialog_text_142, &dialog_text_143, - &dialog_text_144, &dialog_text_145, &dialog_text_146, &dialog_text_147, - &dialog_text_148, &dialog_text_149, &dialog_text_150, &dialog_text_151, - &dialog_text_152, &dialog_text_153, &dialog_text_154, &dialog_text_155, - &dialog_text_156, &dialog_text_157, &dialog_text_158, &dialog_text_159, - &dialog_text_160, &dialog_text_161, &dialog_text_162, &dialog_text_163, - &dialog_text_164, &dialog_text_165, &dialog_text_166, &dialog_text_167, - &dialog_text_168, &dialog_text_169, NULL, -}; - diff --git a/text/us/dialogs.h b/text/us/dialogs.h new file mode 100644 index 0000000..7b9a790 --- /dev/null +++ b/text/us/dialogs.h @@ -0,0 +1,2079 @@ +// Parameters: dialog enum ID, (unused), lines per box, left offset, width + +DEFINE_DIALOG(DIALOG_000, 1, 6, 30, 200, _("\ +Wow! You're smack in the\n\ +middle of the battlefield.\n\ +You'll find the Power\n\ +Stars that Bowser stole\n\ +inside the painting\n\ +worlds.\n\ +First, talk to the\n\ +Bob-omb Buddy. (Press [B]\n\ +to talk.) He'll certainly\n\ +help you out, and so will\n\ +his comrades in other\n\ +areas.\n\ +To read signs, stop, face\n\ +them and press [B]. Press [A]\n\ +or [B] to scroll ahead. You\n\ +can talk to some other\n\ +characters by facing them\n\ +and pressing [B].")) + +DEFINE_DIALOG(DIALOG_001, 1, 4, 95, 200, _("\ +Watch out! If you wander\n\ +around here, you're liable\n\ +to be plastered by a\n\ +water bomb!\n\ +Those enemy Bob-ombs love\n\ +to fight, and they're\n\ +always finding ways to\n\ +attack.\n\ +This meadow has become\n\ +a battlefield ever since\n\ +the Big Bob-omb got his\n\ +paws on the Power Star.\n\ +Can you recover the Star\n\ +for us? Cross the bridge\n\ +and go left up the path\n\ +to find the Big Bob-omb.\n\ +Please come back to see\n\ +me after you've retrieved\n\ +the Power Star!")) + +DEFINE_DIALOG(DIALOG_002, 1, 4, 95, 200, _("\ +Hey, you! It's dangerous\n\ +ahead, so listen up! Take\n\ +my advice.\n\ +\n\ +Cross the two\n\ +bridges ahead, then\n\ +watch for falling\n\ +water bombs.\n\ +The Big Bob-omb at the\n\ +top of the mountain is\n\ +very powerful--don't let\n\ +him grab you!\n\ +We're Bob-omb Buddies,\n\ +and we're on your side.\n\ +You can talk to us\n\ +whenever you'd like to!")) + +DEFINE_DIALOG(DIALOG_003, 1, 5, 95, 200, _("\ +Thank you, Mario! The Big\n\ +Bob-omb is nothing but a\n\ +big dud now! But the\n\ +battle for the castle has\n\ +just begun.\n\ +Other enemies are holding\n\ +the other Power Stars. If\n\ +you recover more Stars,\n\ +you can open new doors\n\ +that lead to new worlds!\n\ +My Bob-omb Buddies are\n\ +waiting for you. Be sure\n\ +to talk to them--they'll\n\ +set up cannons for you.")) + +DEFINE_DIALOG(DIALOG_004, 1, 3, 95, 200, _("\ +We're peace-loving\n\ +Bob-ombs, so we don't use\n\ +cannons.\n\ +But if you'd like\n\ +to blast off, we don't\n\ +mind. Help yourself.\n\ +We'll prepare all of the\n\ +cannons in this course for\n\ +you to use. Bon Voyage!")) + +DEFINE_DIALOG(DIALOG_005, 1, 3, 30, 200, _("\ +Hey, Mario! Is it true\n\ +that you beat the Big\n\ +Bob-omb? Cool!\n\ +You must be strong. And\n\ +pretty fast. So, how fast\n\ +are you, anyway?\n\ +Fast enough to beat me...\n\ +Koopa the Quick? I don't\n\ +think so. Just try me.\n\ +How about a race to the\n\ +mountaintop, where the\n\ +Big Bob-omb was?\n\ +Whaddya say? When I say\n\ +『Go,』 let the race begin!\n\ +\n\ +Ready....\n\ +\n\ +//Go!////Don't Go")) + +DEFINE_DIALOG(DIALOG_006, 1, 3, 30, 200, _("\ +Hey!!! Don't try to scam\n\ +ME. You've gotta run\n\ +the whole course.\n\ +Later. Look me up when\n\ +you want to race for\n\ +real.")) + +DEFINE_DIALOG(DIALOG_007, 1, 5, 30, 200, _("\ +Hufff...fff...pufff...\n\ +Whoa! You...really...are...\n\ +fast! A human blur!\n\ +Here you go--you've won\n\ +it, fair and square!")) + +DEFINE_DIALOG(DIALOG_008, 1, 4, 30, 200, _("\ +BEWARE OF CHAIN CHOMP\n\ +Extreme Danger!\n\ +Get close and press [C]^\n\ +for a better look.\n\ +Scary, huh?\n\ +See the Red Coin on top\n\ +of the stake?\n\ +\n\ +When you collect eight of\n\ +them, a Power Star will\n\ +appear in the meadow\n\ +across the bridge.")) + +DEFINE_DIALOG(DIALOG_009, 1, 5, 30, 200, _("\ +Long time, no see! Wow,\n\ +have you gotten fast!\n\ +Have you been training\n\ +on the sly, or is it the\n\ +power of the Stars?\n\ +I've been feeling down\n\ +about losing the last\n\ +race. This is my home\n\ +course--how about a\n\ +rematch?\n\ +The goal is in\n\ +Windswept Valley.\n\ +Ready?\n\ +\n\ +//Go//// Don't Go")) + +DEFINE_DIALOG(DIALOG_010, 1, 4, 30, 200, _("\ +You've stepped on the\n\ +Wing Cap Switch. Wearing\n\ +the Wing Cap, you can\n\ +soar through the sky.\n\ +Now Wing Caps will pop\n\ +out of all the red blocks\n\ +you find.\n\ +\n\ +Would you like to Save?\n\ +\n\ +//Yes////No")) + +DEFINE_DIALOG(DIALOG_011, 1, 4, 30, 200, _("\ +You've just stepped on\n\ +the Metal Cap Switch!\n\ +The Metal Cap makes\n\ +Mario invincible.\n\ +Now Metal Caps will\n\ +pop out of all of the\n\ +green blocks you find.\n\ +\n\ +Would you like to Save?\n\ +\n\ +//Yes////No")) + +DEFINE_DIALOG(DIALOG_012, 1, 4, 30, 200, _("\ +You've just stepped on\n\ +the Vanish Cap Switch.\n\ +The Vanish Cap makes\n\ +Mario disappear.\n\ +Now Vanish Caps will pop\n\ +from all of the blue\n\ +blocks you find.\n\ +\n\ +Would you like to Save?\n\ +\n\ +//Yes////No")) + +DEFINE_DIALOG(DIALOG_013, 1, 5, 30, 200, _("\ +You've collected 100\n\ +coins! Mario gains more\n\ +power from the castle.\n\ +Do you want to Save?\n\ +//Yes////No")) + +DEFINE_DIALOG(DIALOG_014, 1, 4, 30, 200, _("\ +Wow! Another Power Star!\n\ +Mario gains more courage\n\ +from the power of the\n\ +castle.\n\ +Do you want to Save?\n\ +\n\ +//You Bet//Not Now")) + +DEFINE_DIALOG(DIALOG_015, 1, 4, 30, 200, _("\ +You can punch enemies to\n\ +knock them down. Press [A]\n\ +to jump, [B] to punch.\n\ +Press [A] then [B] to Kick.\n\ +To pick something up,\n\ +press [B], too. To throw\n\ +something you're holding,\n\ +press [B] again.")) + +DEFINE_DIALOG(DIALOG_016, 1, 3, 30, 200, _("\ +Hop on the shiny shell and\n\ +ride wherever you want to\n\ +go! Shred those enemies!")) + +DEFINE_DIALOG(DIALOG_017, 1, 4, 30, 200, _("\ +I'm the Big Bob-omb, lord\n\ +of all blasting matter,\n\ +king of ka-booms the\n\ +world over!\n\ +How dare you scale my\n\ +mountain? By what right\n\ +do you set foot on my\n\ +imperial mountaintop?\n\ +You may have eluded my\n\ +guards, but you'll never\n\ +escape my grasp...\n\ +\n\ +...and you'll never take\n\ +away my Power Star. I\n\ +hereby challenge you,\n\ +Mario!\n\ +If you want the Star I\n\ +hold, you must prove\n\ +yourself in battle.\n\ +\n\ +Can you pick me up from\n\ +the back and hurl me to\n\ +this royal turf? I think\n\ +that you cannot!")) + +DEFINE_DIALOG(DIALOG_018, 1, 4, 30, 200, _("\ +I'm sleeping because...\n\ +...I'm sleepy. I don't\n\ +like being disturbed.\n\ +Please walk quietly.")) + +DEFINE_DIALOG(DIALOG_019, 1, 2, 30, 200, _("\ +Shhh! Please walk\n\ +quietly in the hallway!")) + +DEFINE_DIALOG(DIALOG_020, 1, 6, 95, 150, _("\ +Dear Mario:\n\ +Please come to the\n\ +castle. I've baked\n\ +a cake for you.\n\ +Yours truly--\n\ +Princess Toadstool")) + +DEFINE_DIALOG(DIALOG_021, 1, 5, 95, 200, _("\ +Welcome.\n\ +No one's home!\n\ +Now scram--\n\ +and don't come back!\n\ +Gwa ha ha!")) + +DEFINE_DIALOG(DIALOG_022, 1, 2, 95, 200, _("\ +You need a key to open\n\ +this door.")) + +DEFINE_DIALOG(DIALOG_023, 1, 3, 95, 200, _("\ +This key doesn't fit!\n\ +Maybe it's for the\n\ +basement...")) + +DEFINE_DIALOG(DIALOG_024, 1, 5, 95, 200, _("\ +You need Star power to\n\ +open this door. Recover a\n\ +Power Star from an enemy\n\ +inside one of the castle's\n\ +paintings.")) + +DEFINE_DIALOG(DIALOG_025, 1, 4, 95, 200, _("\ +It takes the power of\n\ +3 Stars to open this\n\ +door. You need [%] more\n\ +Stars.")) + +DEFINE_DIALOG(DIALOG_026, 1, 4, 95, 200, _("\ +It takes the power of\n\ +8 Stars to open this\n\ +door. You need [%] more\n\ +Stars.")) + +DEFINE_DIALOG(DIALOG_027, 1, 4, 95, 200, _("\ +It takes the power of\n\ +30 Stars to open this\n\ +door. You need [%] more\n\ +Stars.")) + +DEFINE_DIALOG(DIALOG_028, 1, 4, 95, 200, _("\ +It takes the power of\n\ +50 Stars to open this\n\ +door. You need [%] more\n\ +Stars.")) + +DEFINE_DIALOG(DIALOG_029, 1, 5, 95, 200, _("\ +To open the door that\n\ +leads to the 『endless』\n\ +stairs, you need 70\n\ +Stars.\n\ +Bwa ha ha!")) + +DEFINE_DIALOG(DIALOG_030, 1, 6, 30, 200, _("\ +Hello! The Lakitu Bros.,\n\ +cutting in with a live\n\ +update on Mario's\n\ +progress. He's about to\n\ +learn a technique for\n\ +sneaking up on enemies.\n\ +The trick is this: He has\n\ +to walk very slowly in\n\ +order to walk quietly.\n\ +\n\ +\n\ +\n\ +And wrapping up filming\n\ +techniques reported on\n\ +earlier, you can take a\n\ +look around using [C]> and\n\ +[C]<. Press [C]| to view the\n\ +action from a distance.\n\ +When you can't move the\n\ +camera any farther, the\n\ +buzzer will sound. This is\n\ +the Lakitu Bros.,\n\ +signing off.")) + +DEFINE_DIALOG(DIALOG_031, 1, 5, 30, 200, _("\ +No way! You beat me...\n\ +again!! And I just spent\n\ +my entire savings on\n\ +these new Koopa\n\ +Mach 1 Sprint shoes!\n\ +Here, I guess I have to\n\ +hand over this Star to\n\ +the winner of the race.\n\ +Congrats, Mario!")) + +DEFINE_DIALOG(DIALOG_032, 1, 5, 30, 200, _("\ +If you get the Wing Cap,\n\ +you can fly! Put the cap\n\ +on, then do a Triple\n\ +Jump--jump three times\n\ +in a row--to take off.\n\ +You can fly even higher\n\ +if you blast out of a\n\ +cannon wearing the\n\ +Wing Cap!\n\ +\n\ +Use the [C] Buttons to look\n\ +around while flying, and\n\ +press [Z] to land.")) + +DEFINE_DIALOG(DIALOG_033, 1, 6, 30, 200, _("\ +Ciao! You've reached\n\ +Princess Toadstool's\n\ +castle via a warp pipe.\n\ +Using the controller is a\n\ +piece of cake. Press [A] to\n\ +jump and [B] to attack.\n\ +Press [B] to read signs,\n\ +too. Use the Control Stick\n\ +in the center of the\n\ +controller to move Mario\n\ +around. Now, head for\n\ +the castle.")) + +DEFINE_DIALOG(DIALOG_034, 1, 6, 30, 200, _("\ +Good afternoon. The\n\ +Lakitu Bros., here,\n\ +reporting live from just\n\ +outside the Princess's\n\ +castle.\n\ +\n\ +Mario has just arrived\n\ +on the scene, and we'll\n\ +be filming the action live\n\ +as he enters the castle\n\ +and pursues the missing\n\ +Power Stars.\n\ +As seasoned cameramen,\n\ +we'll be shooting from the\n\ +recommended angle, but\n\ +you can change the\n\ +camera angle by pressing\n\ +the [C] Buttons.\n\ +If we can't adjust the\n\ +view any further, we'll\n\ +buzz. To take a look at\n\ +the surroundings, stop\n\ +and press [C]^.\n\ +\n\ +Press [A] to resume play.\n\ +Switch camera modes with\n\ +the [R] Button. Signs along\n\ +the way will review these\n\ +instructions.\n\ +\n\ +For now, reporting live,\n\ +this has been the\n\ +Lakitu Bros.")) + +DEFINE_DIALOG(DIALOG_035, 1, 5, 30, 200, _("\ +There are four camera, or\n\ +『[C],』 Buttons. Press [C]^\n\ +to look around using the\n\ +Control Stick.\n\ +\n\ +You'll usually see Mario\n\ +through Lakitu's camera.\n\ +It is the camera\n\ +recommended for normal\n\ +play.\n\ +You can change angles by\n\ +pressing [C]>. If you press\n\ +[R], the view switches to\n\ +Mario's camera, which\n\ +is directly behind him.\n\ +Press [R] again to return\n\ +to Lakitu's camera. Press\n\ +[C]| to see Mario from\n\ +afar, using either\n\ +Lakitu's or Mario's view.")) + +DEFINE_DIALOG(DIALOG_036, 1, 5, 30, 200, _("\ +OBSERVATION PLATFORM\n\ +Press [C]^ to take a look\n\ +around. Don't miss\n\ +anything!\n\ +\n\ +Press [R] to switch to\n\ +Mario's camera. It\n\ +always follows Mario.\n\ +Press [R] again to switch\n\ +to Lakitu's camera.\n\ +Pause the game and\n\ +switch the mode to 『fix』\n\ +the camera in place while\n\ +holding [R]. Give it a try!")) + +DEFINE_DIALOG(DIALOG_037, 1, 2, 30, 200, _("\ +I win! You lose!\n\ +Ha ha ha ha!\n\ +You're no slouch, but I'm\n\ +a better sledder!\n\ +Better luck next time!")) + +DEFINE_DIALOG(DIALOG_038, 1, 3, 95, 200, _("\ +Reacting to the Star\n\ +power, the door slowly\n\ +opens.")) + +DEFINE_DIALOG(DIALOG_039, 1, 4, 30, 200, _("\ +No visitors allowed,\n\ +by decree of\n\ +the Big Bob-omb\n\ +\n\ +I shall never surrender my\n\ +Stars, for they hold the\n\ +power of the castle in\n\ +their glow.\n\ +They were a gift from\n\ +Bowser, the Koopa King\n\ +himself, and they lie well\n\ +hidden within my realm.\n\ +Not a whisper of their\n\ +whereabouts shall leave\n\ +my lips. Oh, all right,\n\ +perhaps one hint:\n\ +Heed the Star names at\n\ +the beginning of the\n\ +course.\n\ +//--The Big Bob-omb")) + +DEFINE_DIALOG(DIALOG_040, 1, 3, 30, 200, _("\ +Warning!\n\ +Cold, Cold Crevasse\n\ +Below!")) + +DEFINE_DIALOG(DIALOG_041, 1, 3, 30, 200, _("\ +I win! You lose!\n\ +Ha ha ha!\n\ +\n\ +That's what you get for\n\ +messin' with Koopa the\n\ +Quick.\n\ +Better luck next time!")) + +DEFINE_DIALOG(DIALOG_042, 1, 4, 30, 200, _("\ +Caution! Narrow Bridge!\n\ +Cross slowly!\n\ +\n\ +\n\ +You can jump to the edge\n\ +of the cliff and hang on,\n\ +and you can climb off the\n\ +edge if you move slowly.\n\ +When you want to let go,\n\ +either press [Z] or press\n\ +the Control Stick in the\n\ +direction of Mario's back.\n\ +To climb up, press Up on\n\ +the Control Stick. To\n\ +scurry up quickly, press\n\ +the [A] Button.")) + +DEFINE_DIALOG(DIALOG_043, 1, 5, 30, 200, _("\ +If you jump and hold the\n\ +[A] Button, you can hang on\n\ +to some objects overhead.\n\ +It's the same as grabbing\n\ +a flying bird!")) + +DEFINE_DIALOG(DIALOG_044, 1, 5, 95, 200, _("\ +Whooo's there? Whooo\n\ +woke me up? It's still\n\ +daylight--I should be\n\ +sleeping!\n\ +\n\ +Hey, as long as I'm\n\ +awake, why not take a\n\ +short flight with me?\n\ +Press and hold [A] to grab\n\ +on. Release [A] to let go.\n\ +I'll take you wherever\n\ +you want to go, as long\n\ +as my wings hold out.\n\ +Watch my shadow, and\n\ +grab on.")) + +DEFINE_DIALOG(DIALOG_045, 1, 6, 95, 200, _("\ +Whew! I'm just about\n\ +flapped out. You should\n\ +lay off the pasta, Mario!\n\ +That's it for now. Press\n\ +[A] to let go. Okay,\n\ +bye byyyyyyeeee!")) + +DEFINE_DIALOG(DIALOG_046, 1, 5, 30, 200, _("\ +You have to master three\n\ +important jumping\n\ +techniques.\n\ +First try the Triple Jump.\n\ +\n\ +Run fast, then jump three\n\ +times, one, two, three.\n\ +If you time the jumps\n\ +right, you'll hop, skip,\n\ +then jump really high.\n\ +Next, go for distance\n\ +with the Long Jump. Run,\n\ +press [Z] to crouch then [A]\n\ +to jump really far.\n\ +\n\ +To do the Wall Kick, press\n\ +[A] to jump at a wall, then\n\ +jump again when you hit\n\ +the wall.\n\ +\n\ +Got that? Triple Jump,\n\ +Long Jump, Wall Kick.\n\ +Practice, practice,\n\ +practice. You don't stand\n\ +a chance without them.")) + +DEFINE_DIALOG(DIALOG_047, 1, 2, 95, 200, _("\ +Hi! I'll prepare the\n\ +cannon for you!")) + +DEFINE_DIALOG(DIALOG_048, 1, 4, 30, 200, _("\ +Snow Mountain Summit\n\ +Watch for slippery\n\ +conditions! Please enter\n\ +the cottage first.")) + +DEFINE_DIALOG(DIALOG_049, 1, 5, 30, 200, _("\ +Remember that tricky Wall\n\ +Kick jump? It's a\n\ +technique you'll have to\n\ +master in order to reach\n\ +high places.\n\ +Use it to jump from wall\n\ +to wall. Press the\n\ +Control Stick in the\n\ +direction you want to\n\ +bounce to gain momentum.\n\ +Practice makes perfect!")) + +DEFINE_DIALOG(DIALOG_050, 1, 4, 30, 200, _("\ +Hold [Z] to crouch and\n\ +slide down a slope.\n\ +Or press [Z] while in the\n\ +air to Pound the Ground!\n\ +If you stop, crouch, then\n\ +jump, you'll do a\n\ +Backward Somersault!\n\ +Got that?\n\ +There's more. Crouch and\n\ +then jump to do a\n\ +Long Jump! Or crouch and\n\ +walk to...never mind.")) + +DEFINE_DIALOG(DIALOG_051, 1, 6, 30, 200, _("\ +Climbing's easy! When you\n\ +jump at trees, poles or\n\ +pillars, you'll grab them\n\ +automatically. Press [A] to\n\ +jump off backward.\n\ +\n\ +To rotate around the\n\ +object, press Right or\n\ +Left on the Control Stick.\n\ +When you reach the top,\n\ +press Up to do a\n\ +handstand!\n\ +Jump off from the\n\ +handstand for a high,\n\ +stylin' dismount.")) + +DEFINE_DIALOG(DIALOG_052, 1, 5, 30, 200, _("\ +Stop and press [Z] to\n\ +crouch, then press [A]\n\ +to do a high, Backward\n\ +Somersault!\n\ +\n\ +To perform a Side\n\ +Somersault, run, do a\n\ +sharp U-turn and jump.\n\ +You can catch lots of\n\ +air with both jumps.")) + +DEFINE_DIALOG(DIALOG_053, 1, 5, 30, 200, _("\ +Sometimes, if you pass\n\ +through a coin ring or\n\ +find a secret point in a\n\ +course, a red number will\n\ +appear.\n\ +If you trigger five red\n\ +numbers, a secret Star\n\ +will show up.")) + +DEFINE_DIALOG(DIALOG_054, 1, 5, 30, 200, _("\ +Welcome to the snow\n\ +slide! Hop on! To speed\n\ +up, press forward on the\n\ +Control Stick. To slow\n\ +down, pull back.")) + +DEFINE_DIALOG(DIALOG_055, 1, 4, 30, 200, _("\ +Hey-ey, Mario, buddy,\n\ +howzit goin'? Step right\n\ +up. You look like a fast\n\ +sleddin' kind of guy.\n\ +I know speed when I see\n\ +it, yes siree--I'm the\n\ +world champion sledder,\n\ +you know. Whaddya say?\n\ +How about a race?\n\ +Ready...\n\ +\n\ +//Go//// Don't Go")) + +DEFINE_DIALOG(DIALOG_056, 1, 6, 30, 200, _("\ +You brrrr-oke my record!\n\ +Unbelievable! I knew\n\ +that you were the coolest.\n\ +Now you've proven\n\ +that you're also the\n\ +fastest!\n\ +I can't award you a gold\n\ +medal, but here, take this\n\ +Star instead. You've\n\ +earned it!")) + +DEFINE_DIALOG(DIALOG_057, 1, 4, 30, 200, _("\ +Egad! My baby!! Have you\n\ +seen my baby??? She's\n\ +the most precious baby in\n\ +the whole wide world.\n\ +(They say she has my\n\ +beak...) I just can't\n\ +remember where I left\n\ +her.\n\ +Let's see...I stopped\n\ +for herring and ice cubes,\n\ +then I...oohh! I just\n\ +don't know!")) + +DEFINE_DIALOG(DIALOG_058, 1, 4, 30, 200, _("\ +You found my precious,\n\ +precious baby! Where\n\ +have you been? How can\n\ +I ever thank you, Mario?\n\ +Oh, I do have this...\n\ +...Star. Here, take it\n\ +with my eternal\n\ +gratitude.")) + +DEFINE_DIALOG(DIALOG_059, 1, 4, 30, 200, _("\ +That's not my baby! She\n\ +looks nothing like me!\n\ +Her parents must be\n\ +worried sick!")) + +DEFINE_DIALOG(DIALOG_060, 1, 4, 30, 200, _("\ +ATTENTION!\n\ +Read Before Diving In!\n\ +\n\ +\n\ +If you stay under the\n\ +water for too long, you'll\n\ +run out of oxygen.\n\ +\n\ +Return to the surface for\n\ +air or find an air bubble\n\ +or coins to breathe while\n\ +underwater.\n\ +Press [A] to swim. Hold [A]\n\ +to swim slow and steady.\n\ +Tap [A] with smooth timing\n\ +to gain speed.\n\ +Press Up on the\n\ +Control Stick and press [A]\n\ +to dive.\n\ +\n\ +Press Down on the Control\n\ +Stick and press [A] to\n\ +return to the surface.\n\ +\n\ +Hold Down and press [A]\n\ +while on the surface near\n\ +the edge of the water to\n\ +jump out.")) + +DEFINE_DIALOG(DIALOG_061, 1, 4, 30, 200, _("\ +BRRR! Frostbite Danger!\n\ +Do not swim here.\n\ +I'm serious.\n\ +/--The Penguin")) + +DEFINE_DIALOG(DIALOG_062, 1, 3, 30, 200, _("\ +Hidden inside the green\n\ +block is the amazing\n\ +Metal Cap.\n\ +Wearing it, you won't\n\ +catch fire or be hurt\n\ +by enemy attacks.\n\ +You don't even have to\n\ +breathe while wearing it.\n\ +\n\ +The only problem:\n\ +You can't swim in it.")) + +DEFINE_DIALOG(DIALOG_063, 1, 5, 30, 200, _("\ +The Vanish Cap is inside\n\ +the blue block. Mr. I.\n\ +will be surprised, since\n\ +you'll be invisible when\n\ +you wear it!\n\ +Even the Big Boo will be\n\ +fooled--and you can walk\n\ +through secret walls, too.")) + +DEFINE_DIALOG(DIALOG_064, 1, 5, 30, 200, _("\ +When you put on the Wing\n\ +Cap that comes from a\n\ +red block, do the Triple\n\ +Jump to soar high into\n\ +the sky.\n\ +Use the Control Stick to\n\ +guide Mario. Pull back to\n\ +to fly up, press forward\n\ +to nose down, and press [Z]\n\ +to land.")) + +DEFINE_DIALOG(DIALOG_065, 1, 6, 30, 200, _("\ +Swimming Lessons!\n\ +Tap [A] to do the breast\n\ +stroke. If you time the\n\ +taps right, you'll swim\n\ +fast.\n\ +\n\ +Press and hold [A] to do a\n\ +slow, steady flutter kick.\n\ +Press Up on the Control\n\ +Stick to dive, and pull\n\ +back on the stick to head\n\ +for the surface.\n\ +To jump out of the water,\n\ +hold Down on the Control\n\ +Stick, then press [A].\n\ +Easy as pie, right?\n\ +\n\ +\n\ +But remember:\n\ +Mario can't breathe under\n\ +the water! Return to the\n\ +surface for air when the\n\ +Power Meter runs low.\n\ +\n\ +And one last thing: You\n\ +can't open doors that\n\ +are underwater.")) + +DEFINE_DIALOG(DIALOG_066, 1, 5, 30, 200, _("\ +Mario, it's Peach!\n\ +Please be careful! Bowser\n\ +is so wicked! He will try\n\ +to burn you with his\n\ +horrible flame breath.\n\ +Run around behind and\n\ +grab him by the tail with\n\ +the [B] Button. Once you\n\ +grab hold, swing him\n\ +around in great circles.\n\ +Rotate the Control Stick\n\ +to go faster and faster.\n\ +The faster you swing him,\n\ +the farther he'll fly.\n\ +\n\ +Use the [C] Buttons to look\n\ +around, Mario. You have\n\ +to throw Bowser into one\n\ +of the bombs in the four\n\ +corners.\n\ +Aim well, then press [B]\n\ +again to launch Bowser.\n\ +Good luck, Mario! Our\n\ +fate is in your hands.")) + +DEFINE_DIALOG(DIALOG_067, 1, 5, 30, 200, _("\ +Tough luck, Mario!\n\ +Princess Toadstool isn't\n\ +here...Gwa ha ha!! Go\n\ +ahead--just try to grab\n\ +me by the tail!\n\ +You'll never be able to\n\ +swing ME around! A wimp\n\ +like you won't throw me\n\ +out of here! Never! Ha!")) + +DEFINE_DIALOG(DIALOG_068, 1, 5, 30, 200, _("\ +It's Lethal Lava Land!\n\ +If you catch fire or fall\n\ +into a pool of flames,\n\ +you'll be hopping mad, but\n\ +don't lose your cool.\n\ +You can still control\n\ +Mario--just try to keep\n\ +calm!")) + +DEFINE_DIALOG(DIALOG_069, 1, 6, 30, 200, _("\ +Sometimes you'll bump into\n\ +invisible walls at the\n\ +edges of the painting\n\ +worlds. If you hit a wall\n\ +while flying, you'll bounce\n\ +back.")) + +DEFINE_DIALOG(DIALOG_070, 1, 5, 30, 200, _("\ +You can return to the\n\ +castle's main hall at any\n\ +time from the painting\n\ +worlds where the enemies\n\ +live.\n\ +Just stop, stand still,\n\ +press Start to pause the\n\ +game, then select\n\ +『Exit Course.』\n\ +\n\ +You don't have to collect\n\ +all Power Stars in one\n\ +course before going on to\n\ +the next.\n\ +\n\ +Return later, when you're\n\ +more experienced, to pick\n\ +up difficult ones.\n\ +\n\ +\n\ +Whenever you find a Star,\n\ +a hint for finding the\n\ +next one will appear on\n\ +the course's start screen.\n\ +\n\ +You can, however, collect\n\ +any of the remaining\n\ +Stars next. You don't\n\ +have to recover the one\n\ +described by the hint.")) + +DEFINE_DIALOG(DIALOG_071, 1, 3, 30, 200, _("\ +Danger Ahead!\n\ +Beware of the strange\n\ +cloud! Don't inhale!\n\ +If you feel faint, run for\n\ +higher ground and fresh\n\ +air!\n\ +Circle: Shelter\n\ +Arrow: Entrance-Exit")) + +DEFINE_DIALOG(DIALOG_072, 1, 5, 30, 200, _("\ +High winds ahead!\n\ +Pull your Cap down tight.\n\ +If it blows off, you'll\n\ +have to find it on this\n\ +mountain.")) + +DEFINE_DIALOG(DIALOG_073, 1, 4, 95, 200, _("\ +Aarrgh! Ahoy, matey. I\n\ +have sunken treasure,\n\ +here, I do.\n\ +\n\ +But to pluck the plunder,\n\ +you must open the\n\ +Treasure Chests in the\n\ +right order.\n\ +What order is that,\n\ +ye say?\n\ +\n\ +\n\ +I'll never tell!\n\ +\n\ +//--The Cap'n")) + +DEFINE_DIALOG(DIALOG_074, 1, 5, 30, 200, _("\ +You can grab on to the\n\ +edge of a cliff or ledge\n\ +with your fingertips and\n\ +hang down from it.\n\ +\n\ +To drop from the edge,\n\ +either press the Control\n\ +Stick in the direction of\n\ +Mario's back or press the\n\ +[Z] Button.\n\ +To get up onto the ledge,\n\ +either press Up on the\n\ +Control Stick or press [A]\n\ +as soon as you grab the\n\ +ledge to climb up quickly.")) + +DEFINE_DIALOG(DIALOG_075, 1, 5, 30, 200, _("\ +Mario!! My castle is in\n\ +great peril. I know that\n\ +Bowser is the cause...and\n\ +I know that only you can\n\ +stop him!\n\ +The doors in the castle\n\ +that have been sealed by\n\ +Bowser can be opened only\n\ +with Star Power.\n\ +\n\ +But there are secret\n\ +paths in the castle,\n\ +paths that Bowser hasn't\n\ +found.\n\ +\n\ +One of those paths is in\n\ +this room, and it holds\n\ +one of the castle's Secret\n\ +Stars!\n\ +\n\ +Find that Secret Star,\n\ +Mario! It will help you\n\ +on your quest. Please,\n\ +Mario, you have to\n\ +help us!\n\ +Retrieve all of the\n\ +Power Stars in the castle\n\ +and free us from this\n\ +awful prison!\n\ +Please!")) + +DEFINE_DIALOG(DIALOG_076, 1, 6, 30, 200, _("\ +Thanks to the power of\n\ +the Stars, life is\n\ +returning to the castle.\n\ +Please, Mario, you have\n\ +to give Bowser the boot!\n\ +\n\ +Here, let me tell you a\n\ +little something about the\n\ +castle. In the room with\n\ +the mirrors, look carefully\n\ +for anything that's not\n\ +reflected in the mirror.\n\ +And when you go to the\n\ +water town, you can flood\n\ +it with a high jump into\n\ +the painting. Oh, by the\n\ +way, look what I found!")) + +DEFINE_DIALOG(DIALOG_077, 1, 2, 150, 200, _("\ +It is decreed that one\n\ +shall pound the pillars.")) + +DEFINE_DIALOG(DIALOG_078, 1, 5, 30, 200, _("\ +Break open the Blue Coin\n\ +Block by Pounding the\n\ +Ground with the [Z] Button.\n\ +One Blue Coin is worth\n\ +five Yellow Coins.\n\ +But you have to hurry!\n\ +The coins will disappear\n\ +if you're not quick to\n\ +collect them! Too bad.")) + +DEFINE_DIALOG(DIALOG_079, 1, 4, 30, 200, _("\ +Owwwuu! Let me go!\n\ +Uukee-kee! I was only\n\ +teasing! Can't you take\n\ +a joke?\n\ +I'll tell you what, let's\n\ +trade. If you let me go,\n\ +I'll give you something\n\ +really good.\n\ +So, how about it?\n\ +\n\ +//Free him/ Hold on")) + +DEFINE_DIALOG(DIALOG_080, 1, 1, 30, 200, _("\ +Eeeh hee hee hee!")) + +DEFINE_DIALOG(DIALOG_081, 1, 4, 30, 200, _("\ +The mystery is of Wet\n\ +or Dry.\n\ +And where does the\n\ +solution lie?\n\ +The city welcomes visitors\n\ +with the depth they bring\n\ +as they enter.")) + +DEFINE_DIALOG(DIALOG_082, 1, 4, 30, 200, _("\ +Hold on to your hat! If\n\ +you lose it, you'll be\n\ +injured easily.\n\ +\n\ +If you do lose your Cap,\n\ +you'll have to find it in\n\ +the course where you\n\ +lost it.\n\ +Oh, boy, it's not looking\n\ +good for Peach. She's\n\ +still trapped somewhere\n\ +inside the walls.\n\ +Please, Mario, you have\n\ +to help her! Did you know\n\ +that there are enemy\n\ +worlds inside the walls?\n\ +Yup. It's true. Bowser's\n\ +troops are there, too.\n\ +Oh, here, take this. I've\n\ +been keeping it for you.")) + +DEFINE_DIALOG(DIALOG_083, 1, 6, 30, 200, _("\ +There's something strange\n\ +about that clock. As you\n\ +jump inside, watch the\n\ +position of the big hand.\n\ +Oh, look what I found!\n\ +Here, Mario, catch!")) + +DEFINE_DIALOG(DIALOG_084, 1, 3, 30, 200, _("\ +Yeeoww! Unhand me,\n\ +brute! I'm late, so late,\n\ +I must make haste!\n\ +This shiny thing? Mine!\n\ +It's mine. Finders,\n\ +keepers, losers...\n\ +Late, late, late...\n\ +Ouch! Take it then! A\n\ +gift from Bowser, it was.\n\ +Now let me be! I have a\n\ +date! I cannot be late\n\ +for tea!")) + +DEFINE_DIALOG(DIALOG_085, 1, 5, 30, 200, _("\ +You don't stand a ghost\n\ +of a chance in this house.\n\ +If you walk out of here,\n\ +you deserve...\n\ +...a Ghoul Medal...")) + +DEFINE_DIALOG(DIALOG_086, 1, 3, 30, 200, _("\ +Running around in circles\n\ +makes some bad guys roll\n\ +their eyes.")) + +DEFINE_DIALOG(DIALOG_087, 1, 4, 30, 200, _("\ +Santa Claus isn't the only\n\ +one who can go down a\n\ +chimney! Come on in!\n\ +/--Cabin Proprietor")) + +DEFINE_DIALOG(DIALOG_088, 1, 5, 30, 200, _("\ +Work Elevator\n\ +For those who get off\n\ +here: Grab the pole to the\n\ +left and slide carefully\n\ +down.")) + +DEFINE_DIALOG(DIALOG_089, 1, 5, 95, 200, _("\ +Both ways fraught with\n\ +danger! Watch your feet!\n\ +Those who can't do the\n\ +Long Jump, tsk, tsk. Make\n\ +your way to the right.\n\ +Right: Work Elevator\n\ +/// Cloudy Maze\n\ +Left: Black Hole\n\ +///Underground Lake\n\ +\n\ +Red Circle: Elevator 2\n\ +//// Underground Lake\n\ +Arrow: You are here")) + +DEFINE_DIALOG(DIALOG_090, 1, 6, 30, 200, _("\ +Bwa ha ha ha!\n\ +You've stepped right into\n\ +my trap, just as I knew\n\ +you would! I warn you,\n\ +『Friend,』 watch your\n\ +step!")) + +DEFINE_DIALOG(DIALOG_091, 2, 2, 30, 200, _("\ +Danger!\n\ +Strong Gusts!\n\ +But the wind makes a\n\ +comfy ride.")) + +DEFINE_DIALOG(DIALOG_092, 1, 5, 30, 200, _("\ +Pestering me again, are\n\ +you, Mario? Can't you see\n\ +that I'm having a merry\n\ +little time, making\n\ +mischief with my minions?\n\ +Now, return those Stars!\n\ +My troops in the walls\n\ +need them! Bwa ha ha!")) + +DEFINE_DIALOG(DIALOG_093, 1, 5, 30, 200, _("\ +Mario! You again! Well\n\ +that's just fine--I've\n\ +been looking for something\n\ +to fry with my fire\n\ +breath!\n\ +Your Star Power is\n\ +useless against me!\n\ +Your friends are all\n\ +trapped within the\n\ +walls...\n\ +And you'll never see the\n\ +Princess again!\n\ +Bwa ha ha ha!")) + +DEFINE_DIALOG(DIALOG_094, 1, 4, 30, 200, _("\ +Get a good run up the\n\ +slope! Do you remember\n\ +the Long Jump? Run, press\n\ +[Z], then jump!")) + +DEFINE_DIALOG(DIALOG_095, 1, 4, 30, 200, _("\ +To read a sign, stand in\n\ +front of it and press [B],\n\ +like you did just now.\n\ +\n\ +When you want to talk to\n\ +a Koopa Troopa or other\n\ +animal, stand right in\n\ +front of it.\n\ +Please recover the Stars\n\ +that were stolen by\n\ +Bowser in this course.")) + +DEFINE_DIALOG(DIALOG_096, 1, 4, 30, 200, _("\ +The path is narrow here.\n\ +Easy does it! No one is\n\ +allowed on top of the\n\ +mountain!\n\ +And if you know what's\n\ +good for you, you won't\n\ +wake anyone who's\n\ +sleeping!\n\ +Move slowly,\n\ +tread lightly.")) + +DEFINE_DIALOG(DIALOG_097, 1, 5, 30, 200, _("\ +Don't be a pushover!\n\ +If anyone tries to shove\n\ +you around, push back!\n\ +It's one-on-one, with a\n\ +fiery finish for the loser!")) + +DEFINE_DIALOG(DIALOG_098, 1, 2, 95, 200, _("\ +Come on in here...\n\ +...heh, heh, heh...")) + +// unused +DEFINE_DIALOG(DIALOG_099, 1, 5, 95, 200, _("\ +Eh he he...\n\ +You're mine, now, hee hee!\n\ +I'll pass right through\n\ +this wall. Can you do\n\ +that? Heh, heh, heh!")) + +DEFINE_DIALOG(DIALOG_100, 1, 3, 95, 200, _("\ +Ukkiki...Wakkiki...kee kee!\n\ +Ha! I snagged it!\n\ +It's mine! Heeheeheeee!")) + +DEFINE_DIALOG(DIALOG_101, 1, 3, 95, 200, _("\ +Ackk! Let...go...\n\ +You're...choking...me...\n\ +Cough...I've been framed!\n\ +This Cap? Oh, all right,\n\ +take it. It's a cool Cap,\n\ +but I'll give it back.\n\ +I think it looks better on\n\ +me than it does on you,\n\ +though! Eeeee! Kee keee!")) + +DEFINE_DIALOG(DIALOG_102, 1, 5, 30, 200, _("\ +Pssst! The Boos are super\n\ +shy. If you look them\n\ +in the eyes, they fade\n\ +away, but if you turn\n\ +your back, they reappear.\n\ +It's no use trying to hit\n\ +them when they're fading\n\ +away. Instead, sneak up\n\ +behind them and punch.")) + +DEFINE_DIALOG(DIALOG_103, 1, 4, 95, 200, _("\ +Upon four towers\n\ +one must alight...\n\ +Then at the peak\n\ +shall shine the light...")) + +DEFINE_DIALOG(DIALOG_104, 1, 5, 30, 200, _("\ +The shadowy star in front\n\ +of you is a 『Star\n\ +Marker.』 When you collect\n\ +all 8 Red Coins, the Star\n\ +will appear here.")) + +DEFINE_DIALOG(DIALOG_105, 1, 3, 95, 200, _("\ +Ready for blastoff! Come\n\ +on, hop into the cannon!\n\ +\n\ +You can reach the Star on\n\ +the floating island by\n\ +using the four cannons.\n\ +Use the Control Stick to\n\ +aim, then press [A] to fire.\n\ +\n\ +If you're handy, you can\n\ +grab on to trees or poles\n\ +to land.")) + +DEFINE_DIALOG(DIALOG_106, 1, 2, 95, 200, _("\ +Ready for blastoff! Come\n\ +on, hop into the cannon!")) + +DEFINE_DIALOG(DIALOG_107, 1, 3, 95, 200, _("\ +Ghosts...\n\ +...don't...\n\ +...DIE!\n\ +Heh, heh, heh!\n\ +Can you get out of here...\n\ +...alive?")) + +DEFINE_DIALOG(DIALOG_108, 1, 2, 95, 200, _("\ +Boooooo-m! Here comes\n\ +the master of mischief,\n\ +the tower of terror,\n\ +the Big Boo!\n\ +Ka ha ha ha...")) + +DEFINE_DIALOG(DIALOG_109, 1, 4, 95, 200, _("\ +Ooooo Nooooo!\n\ +Talk about out-of-body\n\ +experiences--my body\n\ +has melted away!\n\ +Have you run in to any\n\ +headhunters lately??\n\ +I could sure use a new\n\ +body!\n\ +Brrr! My face might\n\ +freeze like this!")) + +DEFINE_DIALOG(DIALOG_110, 1, 5, 95, 200, _("\ +I need a good head on my\n\ +shoulders. Do you know of\n\ +anybody in need of a good\n\ +body? Please! I'll follow\n\ +you if you do!")) + +DEFINE_DIALOG(DIALOG_111, 1, 4, 95, 200, _("\ +Perfect! What a great\n\ +new body! Here--this is a\n\ +present for you. It's sure\n\ +to warm you up.")) + +DEFINE_DIALOG(DIALOG_112, 1, 4, 30, 200, _("\ +Collect as many coins as\n\ +possible! They'll refill\n\ +your Power Meter.\n\ +\n\ +You can check to see how\n\ +many coins you've\n\ +collected in each of the\n\ +15 enemy worlds.\n\ +You can also recover\n\ +power by touching the\n\ +Spinning Heart.\n\ +\n\ +The faster you run\n\ +through the heart, the\n\ +more power you'll recover.")) + +DEFINE_DIALOG(DIALOG_113, 1, 6, 30, 200, _("\ +There are special Caps in\n\ +the red, green and blue\n\ +blocks. Step on the\n\ +switches in the hidden\n\ +courses to activate the\n\ +Cap Blocks.")) + +DEFINE_DIALOG(DIALOG_114, 1, 5, 95, 200, _("\ +It makes me so mad! We\n\ +build your houses, your\n\ +castles. We pave your\n\ +roads, and still you\n\ +walk all over us.\n\ +Do you ever say thank\n\ +you? No! Well, you're not\n\ +going to wipe your feet\n\ +on me! I think I'll crush\n\ +you just for fun!\n\ +Do you have a problem\n\ +with that? Just try to\n\ +pound me, wimp! Ha!")) + +DEFINE_DIALOG(DIALOG_115, 1, 5, 95, 200, _("\ +No! Crushed again!\n\ +I'm just a stepping stone,\n\ +after all. I won't gravel,\n\ +er, grovel. Here, you win.\n\ +Take this with you!")) + +DEFINE_DIALOG(DIALOG_116, 1, 5, 95, 200, _("\ +Whaaa....Whaaat?\n\ +Can it be that a\n\ +pipsqueak like you has\n\ +defused the Bob-omb\n\ +king????\n\ +You might be fast enough\n\ +to ground me, but you'll\n\ +have to pick up the pace\n\ +if you want to take King\n\ +Bowser by the tail.\n\ +Methinks my troops could\n\ +learn a lesson from you!\n\ +Here is your Star, as I\n\ +promised, Mario.\n\ +\n\ +If you want to see me\n\ +again, select this Star\n\ +from the menu. For now,\n\ +farewell.")) + +DEFINE_DIALOG(DIALOG_117, 1, 1, 95, 200, _("\ +Who...walk...here?\n\ +Who...break...seal?\n\ +Wake..ancient..ones?\n\ +We no like light...\n\ +Rrrrummbbble...\n\ +We no like...intruders!\n\ +Now battle...\n\ +...hand...\n\ +...to...\n\ +...hand!")) + +DEFINE_DIALOG(DIALOG_118, 1, 6, 95, 200, _("\ +Grrrrumbbble!\n\ +What...happen?\n\ +We...crushed like pebble.\n\ +You so strong!\n\ +You rule ancient pyramid!\n\ +For today...\n\ +Now, take Star of Power.\n\ +We...sleep...darkness.")) + +DEFINE_DIALOG(DIALOG_119, 1, 6, 30, 200, _("\ +Grrr! I was a bit\n\ +careless. This is not as I\n\ +had planned...but I still\n\ +hold the power of the\n\ +Stars, and I still have\n\ +Peach.\n\ +Bwa ha ha! You'll get no\n\ +more Stars from me! I'm\n\ +not finished with you yet,\n\ +but I'll let you go for\n\ +now. You'll pay for this...\n\ +later!")) + +DEFINE_DIALOG(DIALOG_120, 1, 4, 30, 200, _("\ +Ooowaah! Can it be that\n\ +I've lost??? The power of\n\ +the Stars has failed me...\n\ +this time.\n\ +Consider this a draw.\n\ +Next time, I'll be in\n\ +perfect condition.\n\ +\n\ +Now, if you want to see\n\ +your precious Princess,\n\ +come to the top of the\n\ +tower.\n\ +I'll be waiting!\n\ +Gwa ha ha ha!")) + +DEFINE_DIALOG(DIALOG_121, 1, 5, 30, 200, _("\ +Nooo! It can't be!\n\ +You've really beaten me,\n\ +Mario?!! I gave those\n\ +troops power, but now\n\ +it's fading away!\n\ +Arrgghh! I can see peace\n\ +returning to the world! I\n\ +can't stand it! Hmmm...\n\ +It's not over yet...\n\ +\n\ +C'mon troops! Let's watch\n\ +the ending together!\n\ +Bwa ha ha!")) + +DEFINE_DIALOG(DIALOG_122, 1, 4, 30, 200, _("\ +The Black Hole\n\ +Right: Work Elevator\n\ +/// Cloudy Maze\n\ +Left: Underground Lake")) + +DEFINE_DIALOG(DIALOG_123, 1, 4, 30, 200, _("\ +Metal Cavern\n\ +Right: To Waterfall\n\ +Left: Metal Cap Switch")) + +DEFINE_DIALOG(DIALOG_124, 1, 4, 30, 200, _("\ +Work Elevator\n\ +Danger!!\n\ +Read instructions\n\ +thoroughly!\n\ +Elevator continues in the\n\ +direction of the arrow\n\ +activated.")) + +DEFINE_DIALOG(DIALOG_125, 1, 3, 30, 200, _("\ +Hazy Maze-Exit\n\ +Danger! Closed.\n\ +Turn back now.")) + +DEFINE_DIALOG(DIALOG_126, 2, 3, 30, 200, _("\ +Up: Black Hole\n\ +Right: Work Elevator\n\ +/// Hazy Maze")) + +DEFINE_DIALOG(DIALOG_127, 3, 4, 30, 200, _("\ +Underground Lake\n\ +Right: Metal Cave\n\ +Left: Abandoned Mine\n\ +///(Closed)\n\ +A gentle sea dragon lives\n\ +here. Pound on his back to\n\ +make him lower his head.\n\ +Don't become his lunch.")) + +DEFINE_DIALOG(DIALOG_128, 1, 4, 95, 200, _("\ +You must fight with\n\ +honor! It is against the\n\ +royal rules to throw the\n\ +king out of the ring!")) + +DEFINE_DIALOG(DIALOG_129, 1, 5, 30, 200, _("\ +Welcome to the Vanish\n\ +Cap Switch Course! All of\n\ +the blue blocks you find\n\ +will become solid once you\n\ +step on the Cap Switch.\n\ +You'll disappear when you\n\ +put on the Vanish Cap, so\n\ +you'll be able to elude\n\ +enemies and walk through\n\ +many things. Try it out!")) + +DEFINE_DIALOG(DIALOG_130, 1, 5, 30, 200, _("\ +Welcome to the Metal Cap\n\ +Switch Course! Once you\n\ +step on the Cap Switch,\n\ +the green blocks will\n\ +become solid.\n\ +When you turn your body\n\ +into metal with the Metal\n\ +Cap, you can walk\n\ +underwater! Try it!")) + +DEFINE_DIALOG(DIALOG_131, 1, 5, 30, 200, _("\ +Welcome to the Wing Cap\n\ +Course! Step on the red\n\ +switch at the top of the\n\ +tower, in the center of\n\ +the rainbow ring.\n\ +When you trigger the\n\ +switch, all of the red\n\ +blocks you find will\n\ +become solid.\n\ +\n\ +Try out the Wing Cap! Do\n\ +the Triple Jump to take\n\ +off and press [Z] to land.\n\ +\n\ +\n\ +Pull back on the Control\n\ +Stick to go up and push\n\ +forward to nose down,\n\ +just as you would when\n\ +flying an airplane.")) + +DEFINE_DIALOG(DIALOG_132, 1, 4, 30, 200, _("\ +Whoa, Mario, pal, you\n\ +aren't trying to cheat,\n\ +are you? Shortcuts aren't\n\ +allowed.\n\ +Now, I know that you\n\ +know better. You're\n\ +disqualified! Next time,\n\ +play fair!")) + +DEFINE_DIALOG(DIALOG_133, 1, 6, 30, 200, _("\ +Am I glad to see you! The\n\ +Princess...and I...and,\n\ +well, everybody...we're all\n\ +trapped inside the castle\n\ +walls.\n\ +\n\ +Bowser has stolen the\n\ +castle's Stars, and he's\n\ +using their power to\n\ +create his own world in\n\ +the paintings and walls.\n\ +\n\ +Please recover the Power\n\ +Stars! As you find them,\n\ +you can use their power\n\ +to open the doors that\n\ +Bowser has sealed.\n\ +\n\ +There are four rooms on\n\ +the first floor. Start in\n\ +the one with the painting\n\ +of Bob-omb inside. It's\n\ +the only room that Bowser\n\ +hasn't sealed.\n\ +When you collect eight\n\ +Power Stars, you'll be\n\ +able to open the door\n\ +with the big star. The\n\ +Princess must be inside!")) + +DEFINE_DIALOG(DIALOG_134, 1, 5, 30, 200, _("\ +The names of the Stars\n\ +are also hints for\n\ +finding them. They are\n\ +displayed at the beginning\n\ +of each course.\n\ +You can collect the Stars\n\ +in any order. You won't\n\ +find some Stars, enemies\n\ +or items unless you select\n\ +a specific Star.\n\ +After you collect some\n\ +Stars, you can try\n\ +another course.\n\ +We're all waiting for\n\ +your help!")) + +DEFINE_DIALOG(DIALOG_135, 1, 5, 30, 200, _("\ +It was Bowser who stole\n\ +the Stars. I saw him with\n\ +my own eyes!\n\ +\n\ +\n\ +He's hidden six Stars in\n\ +each course, but you\n\ +won't find all of them in\n\ +some courses until you\n\ +press the Cap Switches.\n\ +The Stars you've found\n\ +will show on each course's\n\ +starting screen.\n\ +\n\ +\n\ +If you want to see some\n\ +of the enemies you've\n\ +already defeated, select\n\ +the Stars you recovered\n\ +from them.")) + +DEFINE_DIALOG(DIALOG_136, 1, 6, 30, 200, _("\ +Wow! You've already\n\ +recovered that many\n\ +Stars? Way to go, Mario!\n\ +I'll bet you'll have us out\n\ +of here in no time!\n\ +\n\ +Be careful, though.\n\ +Bowser and his band\n\ +wrote the book on 『bad.』\n\ +Take my advice: When you\n\ +need to recover from\n\ +injuries, collect coins.\n\ +Yellow Coins refill one\n\ +piece of the Power Meter,\n\ +Red Coins refill two\n\ +pieces, and Blue Coins\n\ +refill five.\n\ +\n\ +To make Blue Coins\n\ +appear, pound on Blue\n\ +Coin Blocks.\n\ +\n\ +\n\ +\n\ +Also, if you fall from\n\ +high places, you'll\n\ +minimize damage if you\n\ +Pound the Ground as you\n\ +land.")) + +DEFINE_DIALOG(DIALOG_137, 1, 6, 30, 200, _("\ +Thanks, Mario! The castle\n\ +is recovering its energy\n\ +as you retrieve Power\n\ +Stars, and you've chased\n\ +Bowser right out of here,\n\ +on to some area ahead.\n\ +Oh, by the by, are you\n\ +collecting coins? Special\n\ +Stars appear when you\n\ +collect 100 coins in each\n\ +of the 15 courses!")) + +DEFINE_DIALOG(DIALOG_138, 1, 3, 30, 200, _("\ +Down: Underground Lake\n\ +Left: Black Hole\n\ +Right: Hazy Maze (Closed)")) + +DEFINE_DIALOG(DIALOG_139, 1, 6, 30, 200, _("\ +Above: Automatic Elevator\n\ +Elevator begins\n\ +automatically and follows\n\ +pre-set course.\n\ +It disappears\n\ +automatically, too.")) + +DEFINE_DIALOG(DIALOG_140, 1, 6, 30, 200, _("\ +Elevator Area\n\ +Right: Hazy Maze\n\ +/// Entrance\n\ +Left: Black Hole\n\ +///Elevator 1\n\ +Arrow: You are here")) + +DEFINE_DIALOG(DIALOG_141, 1, 5, 150, 200, _("\ +You've recovered one of\n\ +the stolen Power Stars!\n\ +Now you can open some of\n\ +the sealed doors in the\n\ +castle.\n\ +Try the Princess's room\n\ +on the second floor and\n\ +the room with the\n\ +painting of Whomp's\n\ +Fortress on Floor 1.\n\ +Bowser's troops are still\n\ +gaining power, so you\n\ +can't give up. Save us,\n\ +Mario! Keep searching for\n\ +Stars!")) + +DEFINE_DIALOG(DIALOG_142, 1, 5, 150, 200, _("\ +You've recovered three\n\ +Power Stars! Now you can\n\ +open any door with a 3\n\ +on its star.\n\ +\n\ +You can come and go from\n\ +the open courses as you\n\ +please. The enemies ahead\n\ +are even meaner, so be\n\ +careful!")) + +DEFINE_DIALOG(DIALOG_143, 1, 6, 150, 200, _("\ +You've recovered eight of\n\ +the Power Stars! Now you\n\ +can open the door with\n\ +the big Star! But Bowser\n\ +is just ahead...can you\n\ +hear the Princess calling?")) + +DEFINE_DIALOG(DIALOG_144, 1, 6, 150, 200, _("\ +You've recovered 30\n\ +Power Stars! Now you can\n\ +open the door with the\n\ +big Star! But before you\n\ +move on, how's it going\n\ +otherwise?\n\ +Did you pound the two\n\ +columns down? You didn't\n\ +lose your hat, did you?\n\ +If you did, you'll have to\n\ +stomp on the condor to\n\ +get it back!\n\ +They say that Bowser has\n\ +sneaked out of the sea\n\ +and into the underground.\n\ +Have you finally\n\ +cornered him?")) + +DEFINE_DIALOG(DIALOG_145, 1, 6, 150, 200, _("\ +You've recovered 50\n\ +Power Stars! Now you can\n\ +open the Star Door on the\n\ +third floor. Bowser's\n\ +there, you know.\n\ +\n\ +Oh! You've found all of\n\ +the Cap Switches, haven't\n\ +you? Red, green and blue?\n\ +The Caps you get from the\n\ +colored blocks are really\n\ +helpful.\n\ +Hurry along, now. The\n\ +third floor is just ahead.")) + +DEFINE_DIALOG(DIALOG_146, 1, 6, 150, 200, _("\ +You've found 70 Power\n\ +Stars! The mystery of the\n\ +endless stairs is solved,\n\ +thanks to you--and is\n\ +Bowser ever upset! Now,\n\ +on to the final bout!")) + +DEFINE_DIALOG(DIALOG_147, 1, 5, 30, 200, _("\ +Are you using the Cap\n\ +Blocks? You really should,\n\ +you know.\n\ +\n\ +\n\ +To make them solid so you\n\ +can break them, you have\n\ +to press the colored Cap\n\ +Switches in the castle's\n\ +hidden courses.\n\ +You'll find the hidden\n\ +courses only after\n\ +regaining some of the\n\ +Power Stars.\n\ +\n\ +The Cap Blocks are a big\n\ +help! Red for the Wing\n\ +Cap, green for the Metal\n\ +Cap, blue for the Vanish\n\ +Cap.")) + +DEFINE_DIALOG(DIALOG_148, 1, 6, 30, 200, _("\ +Snowman Mountain ahead.\n\ +Keep out! And don't try\n\ +the Triple Jump over the\n\ +ice block shooter.\n\ +\n\ +\n\ +If you fall into the\n\ +freezing pond, your power\n\ +decreases quickly, and\n\ +you won't recover\n\ +automatically.\n\ +//--The Snowman")) + +DEFINE_DIALOG(DIALOG_149, 1, 3, 30, 200, _("\ +Welcome to\n\ +Princess Toadstool's\n\ +secret slide!\n\ +There's a Star hidden\n\ +here that Bowser couldn't\n\ +find.\n\ +When you slide, press\n\ +forward to speed up,\n\ +pull back to slow down.\n\ +If you slide really\n\ +fast, you'll win the Star!")) + +DEFINE_DIALOG(DIALOG_150, 1, 5, 30, 200, _("\ +Waaaa! You've flooded my\n\ +house! Wh-why?? Look at\n\ +this mess! What am I\n\ +going to do now?\n\ +\n\ +The ceiling's ruined, the\n\ +floor is soaked...what to\n\ +do, what to do? Huff...\n\ +huff...it makes me so...\n\ +MAD!!!\n\ +Everything's been going\n\ +wrong ever since I got\n\ +this Star...It's so shiny,\n\ +but it makes me feel...\n\ +strange...")) + +DEFINE_DIALOG(DIALOG_151, 1, 4, 30, 200, _("\ +I can't take this\n\ +anymore! First you get\n\ +me all wet, then you\n\ +stomp on me!\n\ +Now I'm really, really,\n\ +REALLY mad!\n\ +Waaaaaaaaaaaaaaaaa!!!")) + +DEFINE_DIALOG(DIALOG_152, 1, 3, 30, 200, _("\ +Owwch! Uncle! Uncle!\n\ +Okay, I give. Take this\n\ +Star!\n\ +Whew! I feel better now.\n\ +I don't really need it\n\ +anymore, anyway--\n\ +I can see the stars\n\ +through my ceiling at\n\ +night.\n\ +They make me feel...\n\ +...peaceful. Please, come\n\ +back and visit anytime.")) + +DEFINE_DIALOG(DIALOG_153, 1, 4, 30, 200, _("\ +Hey! Who's there?\n\ +What's climbing on me?\n\ +Is it an ice ant?\n\ +A snow flea?\n\ +Whatever it is, it's\n\ +bugging me! I think I'll\n\ +blow it away!")) + +DEFINE_DIALOG(DIALOG_154, 1, 5, 30, 200, _("\ +Hold on to your hat! If\n\ +you lose it, you'll be\n\ +easily injured. If you\n\ +lose it, look for it in the\n\ +course where you lost it.\n\ +Speaking of lost, the\n\ +Princess is still stuck in\n\ +the walls somewhere.\n\ +Please help, Mario!\n\ +\n\ +Oh, you know that there\n\ +are secret worlds in the\n\ +walls as well as in the\n\ +paintings, right?")) + +DEFINE_DIALOG(DIALOG_155, 1, 6, 30, 200, _("\ +Thanks to the power of\n\ +the Stars, life is\n\ +returning to the castle.\n\ +Please, Mario, you have\n\ +to give Bowser the boot!\n\ +\n\ +Here, let me tell you a\n\ +little something about the\n\ +castle. In the room with\n\ +the mirrors, look carefully\n\ +for anything that's not\n\ +reflected in the mirror.\n\ +And when you go to the\n\ +water town, you can flood\n\ +it with a high jump into\n\ +the painting.")) + +DEFINE_DIALOG(DIALOG_156, 1, 5, 30, 200, _("\ +The world inside the\n\ +clock is so strange!\n\ +When you jump inside,\n\ +watch the position of\n\ +the big hand!")) + +DEFINE_DIALOG(DIALOG_157, 1, 5, 30, 200, _("\ +Watch out! Don't let\n\ +yourself be swallowed by\n\ +quicksand.\n\ +\n\ +\n\ +If you sink into the sand,\n\ +you won't be able to\n\ +jump, and if your head\n\ +goes under, you'll be\n\ +smothered.\n\ +The dark areas are\n\ +bottomless pits.")) + +DEFINE_DIALOG(DIALOG_158, 1, 6, 30, 200, _("\ +1. If you jump repeatedly\n\ +and time it right, you'll\n\ +jump higher and higher.\n\ +If you run really fast and\n\ +time three jumps right,\n\ +you can do a Triple Jump.\n\ +2. Jump into a solid wall,\n\ +then jump again when you\n\ +hit the wall. You can\n\ +bounce to a higher level\n\ +using this Wall Kick.")) + +DEFINE_DIALOG(DIALOG_159, 1, 6, 30, 200, _("\ +3. If you stop, press [Z]\n\ +to crouch, then jump, you\n\ +can perform a Backward\n\ +Somersault. To do a Long\n\ +Jump, run fast, press [Z],\n\ +then jump.")) + +DEFINE_DIALOG(DIALOG_160, 1, 4, 30, 200, _("\ +Press [B] while running\n\ +fast to do a Body Slide\n\ +attack. To stand while\n\ +sliding, press [A] or [B].")) + +DEFINE_DIALOG(DIALOG_161, 1, 4, 30, 200, _("\ +Mario!!!\n\ +It that really you???\n\ +It has been so long since\n\ +our last adventure!\n\ +They told me that I might\n\ +see you if I waited here,\n\ +but I'd just about given\n\ +up hope!\n\ +Is it true? Have you\n\ +really beaten Bowser? And\n\ +restored the Stars to the\n\ +castle?\n\ +And saved the Princess?\n\ +I knew you could do it!\n\ +Now I have a very special\n\ +message for you.\n\ +『Thanks for playing Super\n\ +Mario 64! This is the\n\ +end of the game, but not\n\ +the end of the fun.\n\ +We want you to keep on\n\ +playing, so we have a\n\ +little something for you.\n\ +We hope that you like it!\n\ +Enjoy!!!』\n\ +\n\ +The Super Mario 64 Team")) + +DEFINE_DIALOG(DIALOG_162, 1, 4, 30, 200, _("\ +No, no, no! Not you\n\ +again! I'm in a great\n\ +hurry, can't you see?\n\ +\n\ +I've no time to squabble\n\ +over Stars. Here, have it.\n\ +I never meant to hide it\n\ +from you...\n\ +It's just that I'm in such\n\ +a rush. That's it, that's\n\ +all. Now, I must be off.\n\ +Owww! Let me go!")) + +DEFINE_DIALOG(DIALOG_163, 1, 5, 30, 200, _("\ +Noooo! You've really\n\ +beaten me this time,\n\ +Mario! I can't stand\n\ +losing to you!\n\ +\n\ +My troops...worthless!\n\ +They've turned over all\n\ +the Power Stars! What?!\n\ +There are 120 in all???\n\ +\n\ +Amazing! There were some\n\ +in the castle that I\n\ +missed??!!\n\ +\n\ +\n\ +Now I see peace\n\ +returning to the world...\n\ +Oooo! I really hate that!\n\ +I can't watch--\n\ +I'm outta here!\n\ +Just you wait until next\n\ +time. Until then, keep\n\ +that Control Stick\n\ +smokin'!\n\ +Buwaa ha ha!")) + +DEFINE_DIALOG(DIALOG_164, 1, 4, 30, 200, _("\ +Mario! What's up, pal?\n\ +I haven't been on the\n\ +slide lately, so I'm out\n\ +of shape.\n\ +Still, I'm always up for a\n\ +good race, especially\n\ +against an old sleddin'\n\ +buddy.\n\ +Whaddya say?\n\ +Ready...set...\n\ +\n\ +//Go//// Don't Go")) + +DEFINE_DIALOG(DIALOG_165, 1, 5, 30, 200, _("\ +I take no responsibility\n\ +whatsoever for those who\n\ +get dizzy and pass out\n\ +from running around\n\ +this post.")) + +DEFINE_DIALOG(DIALOG_166, 1, 4, 30, 200, _("\ +I'll be back soon.\n\ +I'm out training now,\n\ +so come back later.\n\ +//--Koopa the Quick")) + +DEFINE_DIALOG(DIALOG_167, 1, 4, 30, 200, _("\ +Princess Toadstool's\n\ +castle is just ahead.\n\ +\n\ +\n\ +Press [A] to jump, [Z] to\n\ +crouch, and [B] to punch,\n\ +read a sign, or grab\n\ +something.\n\ +Press [B] again to throw\n\ +something you're holding.")) + +DEFINE_DIALOG(DIALOG_168, 1, 5, 30, 200, _("\ +Hey! Knock it off! That's\n\ +the second time you've\n\ +nailed me. Now you're\n\ +asking for it, linguine\n\ +breath!")) + +DEFINE_DIALOG(DIALOG_169, 1, 4, 30, 200, _("\ +Keep out!\n\ +That means you!\n\ +Arrgghh!\n\ +\n\ +Anyone entering this cave\n\ +without permission will\n\ +meet certain disaster.")) diff --git a/text/us/level.c.in b/text/us/level.c.in deleted file mode 100644 index 5ed4d4e..0000000 --- a/text/us/level.c.in +++ /dev/null @@ -1,169 +0,0 @@ -// level names -// 0x0200E294 -static const u8 level_name_01[] = { - _(" 1 BOB-OMB BATTLEFIELD") -}; - - -// 0x0200E2A8 -static const u8 level_name_02[] = { - _(" 2 WHOMP'S FORTRESS") -}; - - -// 0x0200E2BC -static const u8 level_name_03[] = { - _(" 3 JOLLY ROGER BAY") -}; - - -// 0x0200E2CC -static const u8 level_name_04[] = { - _(" 4 COOL, COOL MOUNTAIN") -}; - - -// 0x0200E2DC -static const u8 level_name_05[] = { - _(" 5 BIG BOO'S HAUNT") -}; - - -// 0x0200E2EC -static const u8 level_name_06[] = { - _(" 6 HAZY MAZE CAVE") -}; - - -// 0x0200E2FC -static const u8 level_name_07[] = { - _(" 7 LETHAL LAVA LAND") -}; - - -// 0x0200E310 -static const u8 level_name_08[] = { - _(" 8 SHIFTING SAND LAND") -}; - - -// 0x0200E320 -static const u8 level_name_09[] = { - _(" 9 DIRE, DIRE DOCKS") -}; - - -// 0x0200E330 -static const u8 level_name_10[] = { - _("10 SNOWMAN'S LAND") -}; - - -// 0x0200E340 -static const u8 level_name_11[] = { - _("11 WET-DRY WORLD") -}; - - -// 0x0200E350 -static const u8 level_name_12[] = { - _("12 TALL, TALL MOUNTAIN") -}; - - -// 0x0200E360 -static const u8 level_name_13[] = { - _("13 TINY-HUGE ISLAND") -}; - - -// 0x0200E374 -static const u8 level_name_14[] = { - _("14 TICK TOCK CLOCK") -}; - - -// 0x0200E384 -static const u8 level_name_15[] = { - _("15 RAINBOW RIDE") -}; - - -// 0x0200E394 -static const u8 level_name_16[] = { - _(" BOWSER IN THE DARK WORLD") -}; - - -// 0x0200E3A8 -static const u8 level_name_17[] = { - _(" BOWSER IN THE FIRE SEA") -}; - - -// 0x0200E3BC -static const u8 level_name_18[] = { - _(" BOWSER IN THE SKY") -}; - - -// 0x0200E3CC -static const u8 level_name_19[] = { - _(" THE PRINCESS'S SECRET SLIDE") -}; - - -// 0x0200E3E0 -static const u8 level_name_20[] = { - _(" CAVERN OF THE METAL CAP") -}; - - -// 0x0200E3F0 -static const u8 level_name_21[] = { - _(" TOWER OF THE WING CAP") -}; - - -// 0x0200E404 -static const u8 level_name_22[] = { - _(" VANISH CAP UNDER THE MOAT") -}; - - -// 0x0200E414 -static const u8 level_name_23[] = { - _(" WING MARIO OVER THE RAINBOW") -}; - - -// 0x0200E428 -static const u8 level_name_24[] = { - _(" THE SECRET AQUARIUM") -}; - - -// 0x0200E438 -static const u8 level_name_25[] = { - _("") -}; - - -// 0x0200E444 -static const u8 level_name_castle_secret_stars[] = { - _(" CASTLE SECRET STARS") -}; - - -// level name table -// 0x0200E454 -const u8 *const seg2_level_name_table[] = { - level_name_01, level_name_02, level_name_03, level_name_04, - level_name_05, level_name_06, level_name_07, level_name_08, - level_name_09, level_name_10, level_name_11, level_name_12, - level_name_13, level_name_14, level_name_15, level_name_16, - level_name_17, level_name_18, level_name_19, level_name_20, - level_name_21, level_name_22, level_name_23, level_name_24, - level_name_25, level_name_castle_secret_stars, 0x0, -}; - diff --git a/text/us/star.c.in b/text/us/star.c.in deleted file mode 100644 index 899ecab..0000000 --- a/text/us/star.c.in +++ /dev/null @@ -1,612 +0,0 @@ -// act_name_ Names -// 0x0200E4C0 -static const u8 act_name_00[] = { - _("BIG BOB-OMB ON THE SUMMIT") -}; - - -// 0x0200E4D0 -static const u8 act_name_01[] = { - _("FOOTRACE WITH KOOPA THE QUICK") -}; - - -// 0x0200E4E0 -static const u8 act_name_02[] = { - _("SHOOT TO THE ISLAND IN THE SKY") -}; - - -// 0x0200E4F0 -static const u8 act_name_03[] = { - _("FIND THE 8 RED COINS") -}; - - -// 0x0200E4FC -static const u8 act_name_04[] = { - _("MARIO WINGS TO THE SKY") -}; - - -// 0x0200E50C -static const u8 act_name_05[] = { - _("BEHIND CHAIN CHOMP'S GATE") -}; - - -// 0x0200E51C -static const u8 act_name_06[] = { - _("CHIP OFF WHOMP'S BLOCK") -}; - - -// 0x0200E52C -static const u8 act_name_07[] = { - _("TO THE TOP OF THE FORTRESS") -}; - - -// 0x0200E53C -static const u8 act_name_08[] = { - _("SHOOT INTO THE WILD BLUE") -}; - - -// 0x0200E54C -static const u8 act_name_09[] = { - _("RED COINS ON THE FLOATING ISLE") -}; - - -// 0x0200E55C -static const u8 act_name_10[] = { - _("FALL ONTO THE CAGED ISLAND") -}; - - -// 0x0200E568 -static const u8 act_name_11[] = { - _("BLAST AWAY THE WALL") -}; - - -// 0x0200E578 -static const u8 act_name_12[] = { - _("PLUNDER IN THE SUNKEN SHIP") -}; - - -// 0x0200E588 -static const u8 act_name_13[] = { - _("CAN THE EEL COME OUT TO PLAY?") -}; - - -// 0x0200E598 -static const u8 act_name_14[] = { - _("TREASURE OF THE OCEAN CAVE") -}; - - -// 0x0200E5A8 -static const u8 act_name_15[] = { - _("RED COINS ON THE SHIP AFLOAT") -}; - - -// 0x0200E5B8 -static const u8 act_name_16[] = { - _("BLAST TO THE STONE PILLAR") -}; - - -// 0x0200E5C8 -static const u8 act_name_17[] = { - _("THROUGH THE JET STREAM") -}; - - -// 0x0200E5D8 -static const u8 act_name_18[] = { - _("SLIP SLIDIN' AWAY") -}; - - -// 0x0200E5E8 -static const u8 act_name_19[] = { - _("LI'L PENGUIN LOST") -}; - - -// 0x0200E5F8 -static const u8 act_name_20[] = { - _("BIG PENGUIN RACE") -}; - - -// 0x0200E60C -static const u8 act_name_21[] = { - _("FROSTY SLIDE FOR 8 RED COINS") -}; - - -// 0x0200E61C -static const u8 act_name_22[] = { - _("SNOWMAN'S LOST HIS HEAD") -}; - - -// 0x0200E62C -static const u8 act_name_23[] = { - _("WALL KICKS WILL WORK") -}; - - -// 0x0200E640 -static const u8 act_name_24[] = { - _("GO ON A GHOST HUNT") -}; - - -// 0x0200E650 -static const u8 act_name_25[] = { - _("RIDE BIG BOO'S MERRY-GO-ROUND") -}; - - -// 0x0200E660 -static const u8 act_name_26[] = { - _("SECRET OF THE HAUNTED BOOKS") -}; - - -// 0x0200E670 -static const u8 act_name_27[] = { - _("SEEK THE 8 RED COINS") -}; - - -// 0x0200E680 -static const u8 act_name_28[] = { - _("BIG BOO'S BALCONY") -}; - - -// 0x0200E690 -static const u8 act_name_29[] = { - _("EYE TO EYE IN THE SECRET ROOM") -}; - - -// 0x0200E6A0 -static const u8 act_name_30[] = { - _("SWIMMING BEAST IN THE CAVERN") -}; - - -// 0x0200E6B0 -static const u8 act_name_31[] = { - _("ELEVATE FOR 8 RED COINS") -}; - - -// 0x0200E6C0 -static const u8 act_name_32[] = { - _("METAL-HEAD MARIO CAN MOVE!") -}; - - -// 0x0200E6CC -static const u8 act_name_33[] = { - _("NAVIGATING THE TOXIC MAZE") -}; - - -// 0x0200E6D8 -static const u8 act_name_34[] = { - _("A-MAZE-ING EMERGENCY EXIT") -}; - - -// 0x0200E6EC -static const u8 act_name_35[] = { - _("WATCH FOR ROLLING ROCKS") -}; - - -// 0x0200E6FC -static const u8 act_name_36[] = { - _("BOIL THE BIG BULLY") -}; - - -// 0x0200E70C -static const u8 act_name_37[] = { - _("BULLY THE BULLIES") -}; - - -// 0x0200E71C -static const u8 act_name_38[] = { - _("8-COIN PUZZLE WITH 15 PIECES") -}; - - -// 0x0200E72C -static const u8 act_name_39[] = { - _("RED-HOT LOG ROLLING") -}; - - -// 0x0200E738 -static const u8 act_name_40[] = { - _("HOT-FOOT-IT INTO THE VOLCANO") -}; - - -// 0x0200E748 -static const u8 act_name_41[] = { - _("ELEVATOR TOUR IN THE VOLCANO") -}; - - -// 0x0200E758 -static const u8 act_name_42[] = { - _("IN THE TALONS OF THE BIG BIRD") -}; - - -// 0x0200E76C -static const u8 act_name_43[] = { - _("SHINING ATOP THE PYRAMID") -}; - - -// 0x0200E780 -static const u8 act_name_44[] = { - _("INSIDE THE ANCIENT PYRAMID") -}; - - -// 0x0200E794 -static const u8 act_name_45[] = { - _("STAND TALL ON THE FOUR PILLARS") -}; - - -// 0x0200E7A4 -static const u8 act_name_46[] = { - _("FREE FLYING FOR 8 RED COINS") -}; - - -// 0x0200E7B4 -static const u8 act_name_47[] = { - _("PYRAMID PUZZLE") -}; - - -// 0x0200E7C8 -static const u8 act_name_48[] = { - _("BOARD BOWSER'S SUB") -}; - - -// 0x0200E7D8 -static const u8 act_name_49[] = { - _("CHESTS IN THE CURRENT") -}; - - -// 0x0200E7E8 -static const u8 act_name_50[] = { - _("POLE-JUMPING FOR RED COINS") -}; - - -// 0x0200E7F8 -static const u8 act_name_51[] = { - _("THROUGH THE JET STREAM") -}; - - -// 0x0200E808 -static const u8 act_name_52[] = { - _("THE MANTA RAY'S REWARD") -}; - - -// 0x0200E814 -static const u8 act_name_53[] = { - _("COLLECT THE CAPS...") -}; - - -// 0x0200E824 -static const u8 act_name_54[] = { - _("SNOWMAN'S BIG HEAD") -}; - - -// 0x0200E834 -static const u8 act_name_55[] = { - _("CHILL WITH THE BULLY") -}; - - -// 0x0200E844 -static const u8 act_name_56[] = { - _("IN THE DEEP FREEZE") -}; - - -// 0x0200E850 -static const u8 act_name_57[] = { - _("WHIRL FROM THE FREEZING POND") -}; - - -// 0x0200E860 -static const u8 act_name_58[] = { - _("SHELL SHREDDIN' FOR RED COINS") -}; - - -// 0x0200E870 -static const u8 act_name_59[] = { - _("INTO THE IGLOO") -}; - - -// 0x0200E87C -static const u8 act_name_60[] = { - _("SHOCKING ARROW LIFTS!") -}; - - -// 0x0200E88C -static const u8 act_name_61[] = { - _("TOP O' THE TOWN") -}; - - -// 0x0200E89C -static const u8 act_name_62[] = { - _("SECRETS IN THE SHALLOWS & SKY") -}; - - -// 0x0200E8AC -static const u8 act_name_63[] = { - _("EXPRESS ELEVATOR--HURRY UP!") -}; - - -// 0x0200E8C0 -static const u8 act_name_64[] = { - _("GO TO TOWN FOR RED COINS") -}; - - -// 0x0200E8D0 -static const u8 act_name_65[] = { - _("QUICK RACE THROUGH DOWNTOWN!") -}; - - -// 0x0200E8E0 -static const u8 act_name_66[] = { - _("SCALE THE MOUNTAIN") -}; - - -// 0x0200E8F0 -static const u8 act_name_67[] = { - _("MYSTERY OF THE MONKEY CAGE") -}; - - -// 0x0200E904 -static const u8 act_name_68[] = { - _("SCARY 'SHROOMS, RED COINS") -}; - - -// 0x0200E914 -static const u8 act_name_69[] = { - _("MYSTERIOUS MOUNTAINSIDE") -}; - - -// 0x0200E924 -static const u8 act_name_70[] = { - _("BREATHTAKING VIEW FROM BRIDGE") -}; - - -// 0x0200E934 -static const u8 act_name_71[] = { - _("BLAST TO THE LONELY MUSHROOM") -}; - - -// 0x0200E944 -static const u8 act_name_72[] = { - _("PLUCK THE PIRANHA FLOWER") -}; - - -// 0x0200E954 -static const u8 act_name_73[] = { - _("THE TIP TOP OF THE HUGE ISLAND") -}; - - -// 0x0200E964 -static const u8 act_name_74[] = { - _("REMATCH WITH KOOPA THE QUICK") -}; - - -// 0x0200E974 -static const u8 act_name_75[] = { - _("FIVE ITTY BITTY SECRETS") -}; - - -// 0x0200E984 -static const u8 act_name_76[] = { - _("WIGGLER'S RED COINS") -}; - - -// 0x0200E994 -static const u8 act_name_77[] = { - _("MAKE WIGGLER SQUIRM") -}; - - -// 0x0200E9A0 -static const u8 act_name_78[] = { - _("ROLL INTO THE CAGE") -}; - - -// 0x0200E9B0 -static const u8 act_name_79[] = { - _("THE PIT AND THE PENDULUMS") -}; - - -// 0x0200E9B8 -static const u8 act_name_80[] = { - _("GET A HAND") -}; - - -// 0x0200E9C8 -static const u8 act_name_81[] = { - _("STOMP ON THE THWOMP") -}; - - -// 0x0200E9DC -static const u8 act_name_82[] = { - _("TIMED JUMPS ON MOVING BARS") -}; - - -// 0x0200E9EC -static const u8 act_name_83[] = { - _("STOP TIME FOR RED COINS") -}; - - -// 0x0200E9F8 -static const u8 act_name_84[] = { - _("CRUISER CROSSING THE RAINBOW") -}; - - -// 0x0200EA04 -static const u8 act_name_85[] = { - _("THE BIG HOUSE IN THE SKY") -}; - - -// 0x0200EA10 -static const u8 act_name_86[] = { - _("COINS AMASSED IN A MAZE") -}; - - -// 0x0200EA20 -static const u8 act_name_87[] = { - _("SWINGIN' IN THE BREEZE") -}; - - -// 0x0200EA34 -static const u8 act_name_88[] = { - _("TRICKY TRIANGLES!") -}; - - -// 0x0200EA44 -static const u8 act_name_89[] = { - _("SOMEWHERE OVER THE RAINBOW") -}; - - -// 0x0200EA54 -static const u8 act_name_90[] = { - _("ONE OF THE CASTLE'S SECRET STARS!") -}; - - -// 0x0200EA60 -static const u8 act_name_91[] = { - _("") -}; - - -// 0x0200EA70 -static const u8 act_name_92[] = { - _("") -}; - - -// 0x0200EA80 -static const u8 act_name_93[] = { - _("") -}; - - -// 0x0200EA94 -static const u8 act_name_94[] = { - _("") -}; - - -// 0x0200EAA8 -static const u8 act_name_95[] = { - _("") -}; - - -// 0x0200EABC -static const u8 act_name_96[] = { - _("") -}; - - -// act names table 0x0200EAD0 -const u8 *const seg2_act_name_table[] = { - act_name_00, act_name_01, act_name_02, act_name_03, - act_name_04, act_name_05, act_name_06, act_name_07, - act_name_08, act_name_09, act_name_10, act_name_11, - act_name_12, act_name_13, act_name_14, act_name_15, - act_name_16, act_name_17, act_name_18, act_name_19, - act_name_20, act_name_21, act_name_22, act_name_23, - act_name_24, act_name_25, act_name_26, act_name_27, - act_name_28, act_name_29, act_name_30, act_name_31, - act_name_32, act_name_33, act_name_34, act_name_35, - act_name_36, act_name_37, act_name_38, act_name_39, - act_name_40, act_name_41, act_name_42, act_name_43, - act_name_44, act_name_45, act_name_46, act_name_47, - act_name_48, act_name_49, act_name_50, act_name_51, - act_name_52, act_name_53, act_name_54, act_name_55, - act_name_56, act_name_57, act_name_58, act_name_59, - act_name_60, act_name_61, act_name_62, act_name_63, - act_name_64, act_name_65, act_name_66, act_name_67, - act_name_68, act_name_69, act_name_70, act_name_71, - act_name_72, act_name_73, act_name_74, act_name_75, - act_name_76, act_name_77, act_name_78, act_name_79, - act_name_80, act_name_81, act_name_82, act_name_83, - act_name_84, act_name_85, act_name_86, act_name_87, - act_name_88, act_name_89, act_name_90, act_name_91, - act_name_92, act_name_93, act_name_94, act_name_95, - act_name_96, 0x0, -}; - diff --git a/tools/assemble_sound.py b/tools/assemble_sound.py index b163a5a..6e81af4 100755 --- a/tools/assemble_sound.py +++ b/tools/assemble_sound.py @@ -12,6 +12,8 @@ TYPE_TBL = 2 STACK_TRACES = False DUMP_INDIVIDUAL_BINS = False +ENDIAN_MARKER = ">" +WORD_BYTES = 4 orderedJsonDecoder = JSONDecoder(object_pairs_hook=OrderedDict) @@ -66,6 +68,14 @@ def strip_comments(string): return re.sub(re.compile("//.*?\n"), "", string) +def pack(fmt, *args): + if WORD_BYTES == 4: + fmt = fmt.replace('P', 'I').replace('X', '') + else: + fmt = fmt.replace('P', 'Q').replace('X', 'xxxx') + return struct.pack(ENDIAN_MARKER + fmt, *args) + + def to_bcd(num): assert num >= 0 shift = 0 @@ -488,8 +498,8 @@ def serialize_ctl(bank, base_ser): y, m, d = map(int, json.get("date", "0000-00-00").split("-")) date = y * 10000 + m * 100 + d base_ser.add( - struct.pack( - ">IIII", + pack( + "IIII", len(json["instrument_list"]), len(drums), 1 if len(bank.sample_bank.uses) > 1 else 0, @@ -499,12 +509,12 @@ def serialize_ctl(bank, base_ser): ser = ReserveSerializer() if drums: - drum_pos_buf = ser.reserve(4) + drum_pos_buf = ser.reserve(WORD_BYTES) else: - ser.add(b"\0" * 4) + ser.add(b"\0" * WORD_BYTES) drum_pos_buf = None - inst_pos_buf = ser.reserve(4 * len(json["instrument_list"])) + inst_pos_buf = ser.reserve(WORD_BYTES * len(json["instrument_list"])) ser.align(16) used_samples = [] @@ -528,32 +538,30 @@ def serialize_ctl(bank, base_ser): sample_len = len(aifc.data) # Sample - ser.add(struct.pack(">II", 0, aifc.offset)) - loop_addr_buf = ser.reserve(4) - book_addr_buf = ser.reserve(4) - ser.add(struct.pack(">I", align(sample_len, 2))) + ser.add(pack("PP", 0, aifc.offset)) + loop_addr_buf = ser.reserve(WORD_BYTES) + book_addr_buf = ser.reserve(WORD_BYTES) + ser.add(pack("I", align(sample_len, 2))) ser.align(16) # Book - book_addr_buf.append(struct.pack(">I", ser.size)) - ser.add(struct.pack(">ii", aifc.book.order, aifc.book.npredictors)) + book_addr_buf.append(pack("P", ser.size)) + ser.add(pack("ii", aifc.book.order, aifc.book.npredictors)) for x in aifc.book.table: - ser.add(struct.pack(">h", x)) + ser.add(pack("h", x)) ser.align(16) # Loop - loop_addr_buf.append(struct.pack(">I", ser.size)) + loop_addr_buf.append(pack("P", ser.size)) if aifc.loop is None: assert sample_len % 9 in [0, 1] end = sample_len // 9 * 16 + (sample_len % 2) + (sample_len % 9) - ser.add(struct.pack(">IIiI", 0, end, 0, 0)) + ser.add(pack("IIiI", 0, end, 0, 0)) else: - ser.add( - struct.pack(">IIiI", aifc.loop.start, aifc.loop.end, aifc.loop.count, 0) - ) + ser.add(pack("IIiI", aifc.loop.start, aifc.loop.end, aifc.loop.count, 0)) assert aifc.loop.count != 0 for x in aifc.loop.state: - ser.add(struct.pack(">h", x)) + ser.add(pack("h", x)) ser.align(16) env_name_to_addr = {} @@ -568,6 +576,8 @@ def serialize_ctl(bank, base_ser): entry = [2 ** 16 - 3, 0] elif entry[0] == "goto": entry[0] = 2 ** 16 - 2 + # Envelopes are always written as big endian, to match sequence files + # which are byte blobs and can embed envelopes. ser.add(struct.pack(">HH", *entry)) ser.align(16) @@ -580,7 +590,7 @@ def serialize_ctl(bank, base_ser): else: aifc = bank.sample_bank.name_to_entry[sound["sample"]] tuning = aifc.sample_rate / 32000 - ser.add(struct.pack(">If", sample_addr, tuning)) + ser.add(pack("PfX", sample_addr, tuning)) no_sound = {"sample": None, "tuning": 0.0} @@ -591,8 +601,8 @@ def serialize_ctl(bank, base_ser): inst_name_to_pos[name] = ser.size env_addr = env_name_to_addr[inst["envelope"]] ser.add( - struct.pack( - ">BBBBI", + pack( + "BBBBXP", 0, inst.get("normal_range_lo", 0), inst.get("normal_range_hi", 127), @@ -607,23 +617,23 @@ def serialize_ctl(bank, base_ser): for name in json["instrument_list"]: if name is None: - inst_pos_buf.append(struct.pack(">I", 0)) + inst_pos_buf.append(pack("P", 0)) continue - inst_pos_buf.append(struct.pack(">I", inst_name_to_pos[name])) + inst_pos_buf.append(pack("P", inst_name_to_pos[name])) if drums: drum_poses = [] for drum in drums: drum_poses.append(ser.size) - ser.add(struct.pack(">BBBB", drum["release_rate"], drum["pan"], 0, 0)) + ser.add(pack("BBBBX", drum["release_rate"], drum["pan"], 0, 0)) ser_sound(drum["sound"]) env_addr = env_name_to_addr[drum["envelope"]] - ser.add(struct.pack(">I", env_addr)) + ser.add(pack("P", env_addr)) ser.align(16) - drum_pos_buf.append(struct.pack(">I", ser.size)) + drum_pos_buf.append(pack("P", ser.size)) for pos in drum_poses: - ser.add(struct.pack(">I", pos)) + ser.add(pack("P", pos)) ser.align(16) base_ser.add(ser.finish()) @@ -644,8 +654,8 @@ def serialize_tbl(sample_bank, ser): def serialize_seqfile(entries, serialize_entry, entry_list, magic, extra_padding=True): ser = ReserveSerializer() - ser.add(struct.pack(">HH", magic, len(entry_list))) - table = ser.reserve(len(entry_list) * 8) + ser.add(pack("HHX", magic, len(entry_list))) + table = ser.reserve(len(entry_list) * 2 * WORD_BYTES) ser.align(16) data_start = ser.size @@ -662,8 +672,8 @@ def serialize_seqfile(entries, serialize_entry, entry_list, magic, extra_padding ser.align(64) for ent in entry_list: - table.append(struct.pack(">I", entry_offsets[ent] + data_start)) - table.append(struct.pack(">I", entry_lens[ent])) + table.append(pack("P", entry_offsets[ent] + data_start)) + table.append(pack("IX", entry_lens[ent])) return ser.finish() @@ -779,15 +789,18 @@ def write_sequences( bank_set = json.get(name, None) if bank_set is None: bank_set = [] - table.append(struct.pack(">H", ser.size)) + table.append(pack("H", ser.size)) ser.add(bytes([len(bank_set)])) for bank in bank_set[::-1]: ser.add(bytes([bank_names.index(bank)])) + ser.align(16) f.write(ser.finish()) def main(): global STACK_TRACES + global ENDIAN_MARKER + global WORD_BYTES need_help = False skip_next = 0 cpp_command = None @@ -807,6 +820,26 @@ def main(): elif a == "-D": defines.append(sys.argv[i + 1]) skip_next = 1 + elif a == "--endian": + endian = sys.argv[i + 1] + if endian == "big": + ENDIAN_MARKER = ">" + elif endian == "little": + ENDIAN_MARKER = "<" + elif endian == "native": + ENDIAN_MARKER = "=" + else: + fail("--endian takes argument big, little or native") + skip_next = 1 + elif a == "--bitwidth": + bitwidth = sys.argv[i + 1] + if bitwidth == 'native': + WORD_BYTES = struct.calcsize('P') + else: + if bitwidth not in ['32', '64']: + fail("--bitwidth takes argument 32, 64 or native") + WORD_BYTES = int(bitwidth) // 8 + skip_next = 1 elif a.startswith("-D"): defines.append(a[2:]) elif a == "--stack-trace": diff --git a/tools/demo_data_converter.py b/tools/demo_data_converter.py index bd243af..ab656bd 100755 --- a/tools/demo_data_converter.py +++ b/tools/demo_data_converter.py @@ -63,7 +63,7 @@ def main(): structobj.append("{" + ",".join(hex(x) for x in demobytes) + "},") print("#include \"types.h\"") - print("#include \"stddef.h\"") + print("#include ") print("") print("struct DemoInputsObj {") diff --git a/tools/determine-endian-bitwidth.c b/tools/determine-endian-bitwidth.c new file mode 100644 index 0000000..15efe99 --- /dev/null +++ b/tools/determine-endian-bitwidth.c @@ -0,0 +1,11 @@ +#include "platform_info.h" + +#if IS_BIG_ENDIAN && IS_64_BIT +#error msgbegin --endian big --bitwidth 64 msgend +#elif IS_BIG_ENDIAN && !IS_64_BIT +#error msgbegin --endian big --bitwidth 32 msgend +#elif !IS_BIG_ENDIAN && IS_64_BIT +#error msgbegin --endian little --bitwidth 64 msgend +#else +#error msgbegin --endian little --bitwidth 32 msgend +#endif diff --git a/tools/mario_anims_converter.py b/tools/mario_anims_converter.py index 3afb7ed..361662a 100755 --- a/tools/mario_anims_converter.py +++ b/tools/mario_anims_converter.py @@ -137,7 +137,7 @@ try: structobj.append("{" + ",".join(arr) + "},") print("#include \"types.h\"") - print("#include \"stddef.h\"") + print("#include ") print("") print("const struct MarioAnimsObj {") diff --git a/tools/output_level_headers.py b/tools/output_level_headers.py new file mode 100644 index 0000000..a1ea4aa --- /dev/null +++ b/tools/output_level_headers.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python3 +import sys +for line in sys.stdin: + if line.strip(): + print('#include "{}"'.format(line.strip())) diff --git a/tools/textconv.c b/tools/textconv.c index 5159775..595835a 100644 --- a/tools/textconv.c +++ b/tools/textconv.c @@ -179,6 +179,13 @@ static void read_charmap(const char *filename) else if (*line == '\\') { line++; // advance to get the character being escaped + if (*line == '\r') + line++; + if (*line == '\n') + { + // Backslash at end of line is ignored + continue; + } entry.unicode[len] = get_escape_char(*line); if (entry.unicode[len] == 0) parse_error(filename, lineNum, "unknown escape sequence \\%c", *line); diff --git a/undefined_syms.txt b/undefined_syms.txt index 8aeec54..a9504c9 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -4,7 +4,6 @@ osRomBase = 0x80000308; osResetType = 0x8000030C; osMemSize = 0x80000318; osAppNmiBuffer = 0x8000031C; -gZBuffer = 0x80000400; /* boot location */ /* boot and osException symbols */ D_80000000 = 0x80000000;