Refresh 16
This commit is contained in:
parent
66018e9f3c
commit
ae770e0df5
1326 changed files with 73566 additions and 26397 deletions
26
CHANGES
26
CHANGES
|
@ -1,3 +1,29 @@
|
|||
Refresh 16 (Two years later...)
|
||||
1.) remove capstone from readme, slight update (#1212)
|
||||
2.) Update ido static recomp (#1211)
|
||||
3.) Fix misleading pointer (#1209)
|
||||
4.) update outdated link (#1208)
|
||||
5.) Match iQue (#1207)
|
||||
6.) iQue matching except BSS (#1124)
|
||||
7.) Create LICENSE.md
|
||||
8.) Reorganize and apply licenses to some of the tools/ programs per discussions with their author(s). (#1203)
|
||||
9.) Fix rumble_init libultra includes and checks (#1195)
|
||||
10.) Stacksize moved to defines (#1199)
|
||||
11.) Renamings we were too lazy to make a PR for for 3 years (#1198)
|
||||
12.) Fix spelling error in sound.h comment (#1197)
|
||||
13.) Update instrument sample names (#1196)
|
||||
14.) Object Labeling, Behavior Params, and Cleanup (#1193)
|
||||
15.) Significantly more Libultra Cleanup (#1192)
|
||||
16.) Typedefs for area Terrain Data and Rooms (#1178)
|
||||
17.) Allow spaces in filename for vadpcm_enc (#1175)
|
||||
18.) Label all warp nodes (#1191)
|
||||
19.) Remove hardware.h (#1190)
|
||||
20.) Document __osSetHWintrRoutine (#1186)
|
||||
21.) Change 3 space indent to 4 space indent and cleanup (#1189)
|
||||
22.) Libultra cleanup and labelling (#1188)
|
||||
23.) in-game menu renaming (#1187)
|
||||
24.) AVOID_UB fixes and cleanup (#1185)
|
||||
|
||||
Refresh 15 (mostly a hotfix for RSP microcode selection)
|
||||
|
||||
1.) Renamed frame_buffer funcs and _ZBUFFER (#1184)
|
||||
|
|
|
@ -3,9 +3,8 @@ FROM ubuntu:18.04 as build
|
|||
RUN apt-get update && \
|
||||
apt-get install -y \
|
||||
binutils-mips-linux-gnu \
|
||||
bsdmainutils \
|
||||
build-essential \
|
||||
libcapstone-dev \
|
||||
git \
|
||||
pkgconf \
|
||||
python3
|
||||
|
||||
|
|
16
Jenkinsfile
vendored
16
Jenkinsfile
vendored
|
@ -12,32 +12,38 @@ pipeline {
|
|||
sh 'ln -s "$ROMS_DIR/Super Mario 64 (U) [!].z64" baserom.us.z64'
|
||||
sh 'ln -s "$ROMS_DIR/Super Mario 64 (E) (M3) [!].z64" baserom.eu.z64'
|
||||
sh 'ln -s "$ROMS_DIR/Super Mario 64 - Shindou Edition (J) [!].z64" baserom.sh.z64'
|
||||
sh 'ln -s "$ROMS_DIR/Super Mario 64 - iQue (Ch).z64" baserom.cn.z64'
|
||||
// verify no assets were committed to repo
|
||||
sh '[ -z "$(find {actors,levels,textures}/ -name \'*.png\')" ]'
|
||||
sh '[ -z "$(find assets/ -name \'*.m64\' -or \'*.bin\')" ]'
|
||||
sh './extract_assets.py jp us eu sh'
|
||||
sh './extract_assets.py jp us eu sh cn'
|
||||
}
|
||||
}
|
||||
stage('Build U Source') {
|
||||
stage('Build US Source') {
|
||||
steps {
|
||||
sh 'make -j4 VERSION=us VERBOSE=1 COLOR=0'
|
||||
}
|
||||
}
|
||||
stage('Build S Source') {
|
||||
stage('Build SH Source') {
|
||||
steps {
|
||||
sh 'make -j4 VERSION=sh VERBOSE=1 COLOR=0'
|
||||
}
|
||||
}
|
||||
stage('Build E Source') {
|
||||
stage('Build EU Source') {
|
||||
steps {
|
||||
sh 'make -j4 VERSION=eu VERBOSE=1 COLOR=0'
|
||||
}
|
||||
}
|
||||
stage('Build J Source') {
|
||||
stage('Build JP Source') {
|
||||
steps {
|
||||
sh 'make -j4 VERSION=jp VERBOSE=1 COLOR=0'
|
||||
}
|
||||
}
|
||||
stage('Build CN Source') {
|
||||
steps {
|
||||
sh 'make -j4 VERSION=cn VERBOSE=1 COLOR=0 COMPARE=0'
|
||||
}
|
||||
}
|
||||
stage('Test Enhancements') {
|
||||
steps {
|
||||
sh '''
|
||||
|
|
241
Makefile
241
Makefile
|
@ -32,29 +32,40 @@ $(eval $(call validate-option,COMPILER,ido gcc))
|
|||
# us - builds the 1996 North American version
|
||||
# eu - builds the 1997 PAL version
|
||||
# sh - builds the 1997 Japanese Shindou version, with rumble pak support
|
||||
# cn - builds the 2003 Chinese iQue version
|
||||
VERSION ?= us
|
||||
$(eval $(call validate-option,VERSION,jp us eu sh))
|
||||
$(eval $(call validate-option,VERSION,jp us eu sh cn))
|
||||
|
||||
ifeq ($(VERSION),jp)
|
||||
DEFINES += VERSION_JP=1
|
||||
OPT_FLAGS := -g
|
||||
GRUCODE ?= f3d_old
|
||||
VERSION_JP_US ?= true
|
||||
VERSION_SH_CN ?= false
|
||||
else ifeq ($(VERSION),us)
|
||||
DEFINES += VERSION_US=1
|
||||
OPT_FLAGS := -g
|
||||
GRUCODE ?= f3d_old
|
||||
VERSION_JP_US ?= true
|
||||
VERSION_SH_CN ?= false
|
||||
else ifeq ($(VERSION),eu)
|
||||
DEFINES += VERSION_EU=1
|
||||
OPT_FLAGS := -O2
|
||||
GRUCODE ?= f3d_new
|
||||
VERSION_JP_US ?= false
|
||||
VERSION_SH_CN ?= false
|
||||
else ifeq ($(VERSION),sh)
|
||||
DEFINES += VERSION_SH=1
|
||||
OPT_FLAGS := -O2
|
||||
GRUCODE ?= f3d_new
|
||||
VERSION_JP_US ?= false
|
||||
VERSION_SH_CN ?= true
|
||||
else ifeq ($(VERSION),cn)
|
||||
DEFINES += VERSION_CN=1
|
||||
OPT_FLAGS := -O2
|
||||
GRUCODE ?= f3d_new
|
||||
VERSION_JP_US ?= false
|
||||
VERSION_SH_CN ?= true
|
||||
endif
|
||||
|
||||
TARGET := sm64.$(VERSION)
|
||||
|
@ -129,7 +140,7 @@ $(eval $(call validate-option,COMPARE,0 1))
|
|||
|
||||
TARGET_STRING := sm64.$(VERSION).$(GRUCODE)
|
||||
# If non-default settings were chosen, disable COMPARE
|
||||
ifeq ($(filter $(TARGET_STRING), sm64.jp.f3d_old sm64.us.f3d_old sm64.eu.f3d_new sm64.sh.f3d_new),)
|
||||
ifeq ($(filter $(TARGET_STRING), sm64.jp.f3d_old sm64.us.f3d_old sm64.eu.f3d_new sm64.sh.f3d_new sm64.cn.f3d_new),)
|
||||
COMPARE := 0
|
||||
endif
|
||||
|
||||
|
@ -161,6 +172,7 @@ ifeq ($(filter clean distclean,$(MAKECMDGOALS)),)
|
|||
$(info =======================)
|
||||
endif
|
||||
|
||||
DEFINES += _FINALROM=1
|
||||
|
||||
#==============================================================================#
|
||||
# Universal Dependencies #
|
||||
|
@ -186,11 +198,16 @@ ifeq ($(filter clean distclean print-%,$(MAKECMDGOALS)),)
|
|||
endif
|
||||
|
||||
# Make tools if out of date
|
||||
$(info Building tools...)
|
||||
$(info Building general tools...)
|
||||
DUMMY != $(MAKE) -s -C $(TOOLS_DIR) $(if $(filter-out ido0,$(COMPILER)$(USE_QEMU_IRIX)),all-except-recomp,) >&2 || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to build tools)
|
||||
endif
|
||||
$(info Building sm64tools...)
|
||||
DUMMY != $(MAKE) -s -C $(TOOLS_DIR)/sm64tools $(if $(filter-out ido0,$(COMPILER)$(USE_QEMU_IRIX)),) >&2 || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to build tools)
|
||||
endif
|
||||
$(info Building ROM...)
|
||||
|
||||
endif
|
||||
|
@ -207,6 +224,8 @@ ROM := $(BUILD_DIR)/$(TARGET).z64
|
|||
ELF := $(BUILD_DIR)/$(TARGET).elf
|
||||
LIBULTRA := $(BUILD_DIR)/libultra.a
|
||||
LD_SCRIPT := sm64.ld
|
||||
CHARMAP := charmap.txt
|
||||
CHARMAP_DEBUG := charmap.debug.txt
|
||||
MIO0_DIR := $(BUILD_DIR)/bin
|
||||
SOUND_BIN_DIR := $(BUILD_DIR)/sound
|
||||
TEXTURE_DIR := textures
|
||||
|
@ -217,6 +236,10 @@ LEVEL_DIRS := $(patsubst levels/%,%,$(dir $(wildcard levels/*/header.h)))
|
|||
SRC_DIRS := src src/engine src/game src/audio src/menu src/buffers actors levels bin data assets asm lib sound
|
||||
BIN_DIRS := bin bin/$(VERSION)
|
||||
|
||||
ifeq ($(VERSION),cn)
|
||||
LIBGCC_SRC_DIRS += lib/src/libgcc
|
||||
endif
|
||||
|
||||
ULTRA_SRC_DIRS := lib/src lib/src/math lib/asm lib/data
|
||||
ULTRA_BIN_DIRS := lib/bin
|
||||
|
||||
|
@ -232,6 +255,7 @@ S_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.s))
|
|||
ULTRA_C_FILES := $(foreach dir,$(ULTRA_SRC_DIRS),$(wildcard $(dir)/*.c))
|
||||
GODDARD_C_FILES := $(foreach dir,$(GODDARD_SRC_DIRS),$(wildcard $(dir)/*.c))
|
||||
ULTRA_S_FILES := $(foreach dir,$(ULTRA_SRC_DIRS),$(wildcard $(dir)/*.s))
|
||||
LIBGCC_C_FILES := $(foreach dir,$(LIBGCC_SRC_DIRS),$(wildcard $(dir)/*.c))
|
||||
GENERATED_C_FILES := $(BUILD_DIR)/assets/mario_anim_data.c $(BUILD_DIR)/assets/demo_data.c
|
||||
|
||||
# Sound files
|
||||
|
@ -240,7 +264,11 @@ SOUND_SAMPLE_DIRS := $(wildcard sound/samples/*)
|
|||
SOUND_SAMPLE_AIFFS := $(foreach dir,$(SOUND_SAMPLE_DIRS),$(wildcard $(dir)/*.aiff))
|
||||
SOUND_SAMPLE_TABLES := $(foreach file,$(SOUND_SAMPLE_AIFFS),$(BUILD_DIR)/$(file:.aiff=.table))
|
||||
SOUND_SAMPLE_AIFCS := $(foreach file,$(SOUND_SAMPLE_AIFFS),$(BUILD_DIR)/$(file:.aiff=.aifc))
|
||||
ifeq ($(VERSION),cn)
|
||||
SOUND_SEQUENCE_DIRS := sound/sequences sound/sequences/sh
|
||||
else
|
||||
SOUND_SEQUENCE_DIRS := sound/sequences sound/sequences/$(VERSION)
|
||||
endif
|
||||
# all .m64 files in SOUND_SEQUENCE_DIRS, plus all .m64 files that are generated from .s files in SOUND_SEQUENCE_DIRS
|
||||
SOUND_SEQUENCE_FILES := \
|
||||
$(foreach dir,$(SOUND_SEQUENCE_DIRS),\
|
||||
|
@ -258,16 +286,14 @@ ULTRA_O_FILES := $(foreach file,$(ULTRA_S_FILES),$(BUILD_DIR)/$(file:.s=.o)) \
|
|||
|
||||
GODDARD_O_FILES := $(foreach file,$(GODDARD_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
|
||||
LIBGCC_O_FILES := $(foreach file,$(LIBGCC_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
|
||||
DEP_FILES := $(O_FILES:.o=.d) $(ULTRA_O_FILES:.o=.d) $(GODDARD_O_FILES:.o=.d) $(LIBGCC_O_FILES:.o=.d) $(BUILD_DIR)/$(LD_SCRIPT).d
|
||||
|
||||
# Files with GLOBAL_ASM blocks
|
||||
ifeq ($(NON_MATCHING),0)
|
||||
ifeq ($(VERSION),sh)
|
||||
GLOBAL_ASM_C_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/**/*.c) $(wildcard lib/src/*.c)
|
||||
else
|
||||
GLOBAL_ASM_C_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/**/*.c)
|
||||
endif
|
||||
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
|
||||
endif
|
||||
|
@ -277,6 +303,9 @@ endif
|
|||
# Compiler Options #
|
||||
#==============================================================================#
|
||||
|
||||
IQUE_EGCS_PATH := $(TOOLS_DIR)/ique_egcs
|
||||
IQUE_LD_PATH := $(TOOLS_DIR)/ique_ld
|
||||
|
||||
# detect prefix for MIPS toolchain
|
||||
ifneq ($(call find-command,mips-linux-gnu-ld),)
|
||||
CROSS := mips-linux-gnu-
|
||||
|
@ -298,13 +327,17 @@ else
|
|||
ACPP := $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/lib/acpp
|
||||
COPT := $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/lib/copt
|
||||
else
|
||||
IDO_ROOT := $(TOOLS_DIR)/ido5.3_recomp
|
||||
IDO_ROOT := $(TOOLS_DIR)/ido-static-recomp/build/out
|
||||
CC := $(IDO_ROOT)/cc
|
||||
ACPP := $(IDO_ROOT)/acpp
|
||||
COPT := $(IDO_ROOT)/copt
|
||||
endif
|
||||
endif
|
||||
ifeq ($(VERSION),cn)
|
||||
LD := LD_LIBRARY_PATH=$(IQUE_LD_PATH) $(IQUE_LD_PATH)/mips64-elf-ld
|
||||
else
|
||||
LD := $(CROSS)ld
|
||||
endif
|
||||
AR := $(CROSS)ar
|
||||
OBJDUMP := $(CROSS)objdump
|
||||
OBJCOPY := $(CROSS)objcopy
|
||||
|
@ -322,13 +355,41 @@ endif
|
|||
C_DEFINES := $(foreach d,$(DEFINES),-D$(d))
|
||||
DEF_INC_CFLAGS := $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(C_DEFINES)
|
||||
|
||||
IQUE_AS := $(IQUE_EGCS_PATH)/as
|
||||
IQUE_ASFLAGS = -mcpu=r4300 -mabi=32 $(MIPSISET) $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(foreach d,$(DEFINES),--defsym $(d))
|
||||
|
||||
ifeq ($(VERSION),cn)
|
||||
IQUE_REASSEMBLED_ASM_FILES := $(wildcard asm/*.s) $(wildcard lib/asm/*.s)
|
||||
IQUE_REASSEMBLED_ASM_FILES := $(filter-out asm/ipl3_font.s,$(IQUE_REASSEMBLED_ASM_FILES))
|
||||
IQUE_REASSEMBLED := $(foreach file,$(IQUE_REASSEMBLED_ASM_FILES),$(BUILD_DIR)/$(file:.s=.o))
|
||||
$(IQUE_REASSEMBLED): AS := $(IQUE_AS)
|
||||
$(IQUE_REASSEMBLED): MIPSISET :=
|
||||
$(IQUE_REASSEMBLED): ASFLAGS = $(IQUE_ASFLAGS)
|
||||
endif
|
||||
|
||||
IQUE_CC := COMPILER_PATH=$(IQUE_EGCS_PATH) $(IQUE_EGCS_PATH)/gcc
|
||||
IQUE_CFLAGS = -G 0 $(TARGET_CFLAGS) $(OPT_FLAGS) -D__sgi -DBBPLAYER -mcpu=r4300 -mgp32 -fno-pic -Wa,--strip-local-absolute $(MIPSISET) $(DEF_INC_CFLAGS)
|
||||
|
||||
# iQue recompiled some files with a different compiler
|
||||
ifeq ($(VERSION),cn)
|
||||
IQUE_RECOMPILED_SRC_GAME := $(addprefix $(BUILD_DIR)/src/game/,rumble_init.o level_update.o memory.o area.o print.o ingame_menu.o hud.o cn_common_syms_1.o cn_common_syms_2.o) $(addprefix $(BUILD_DIR)/src/menu/,title_screen.o intro_geo.o file_select.o star_select.o)
|
||||
IQUE_RECOMPILED_LIB_SRC := $(ULTRA_O_FILES)
|
||||
# osDriveRomInit is weird
|
||||
IQUE_RECOMPILED_LIB_SRC := $(filter-out $(addprefix $(BUILD_DIR)/lib/src/,osDriveRomInit.o),$(IQUE_RECOMPILED_LIB_SRC))
|
||||
IQUE_RECOMPILED_LIBGCC_SRC := $(LIBGCC_O_FILES)
|
||||
IQUE_RECOMPILED = $(IQUE_RECOMPILED_SRC_GAME) $(IQUE_RECOMPILED_LIB_SRC) $(IQUE_RECOMPILED_LIBGCC_SRC)
|
||||
$(IQUE_RECOMPILED): CC := $(IQUE_CC)
|
||||
$(IQUE_RECOMPILED): MIPSISET :=
|
||||
$(IQUE_RECOMPILED): CFLAGS = $(IQUE_CFLAGS)
|
||||
endif
|
||||
|
||||
# Prefer clang as C preprocessor if installed on the system
|
||||
ifneq (,$(call find-command,clang))
|
||||
CPP := clang
|
||||
CPPFLAGS := -E -P -x c -Wno-trigraphs $(DEF_INC_CFLAGS)
|
||||
CPPFLAGS := -E -P -x c -Wno-trigraphs -D_LANGUAGE_ASSEMBLY $(DEF_INC_CFLAGS)
|
||||
else
|
||||
CPP := cpp
|
||||
CPPFLAGS := -P -Wno-trigraphs $(DEF_INC_CFLAGS)
|
||||
CPPFLAGS := -P -Wno-trigraphs -D_LANGUAGE_ASSEMBLY $(DEF_INC_CFLAGS)
|
||||
endif
|
||||
|
||||
# Check code syntax with host compiler
|
||||
|
@ -362,10 +423,10 @@ export LANG := C
|
|||
#==============================================================================#
|
||||
|
||||
# N64 tools
|
||||
MIO0TOOL := $(TOOLS_DIR)/mio0
|
||||
N64CKSUM := $(TOOLS_DIR)/n64cksum
|
||||
N64GRAPHICS := $(TOOLS_DIR)/n64graphics
|
||||
N64GRAPHICS_CI := $(TOOLS_DIR)/n64graphics_ci
|
||||
MIO0TOOL := $(TOOLS_DIR)/sm64tools/mio0
|
||||
N64CKSUM := $(TOOLS_DIR)/sm64tools/n64cksum
|
||||
N64GRAPHICS := $(TOOLS_DIR)/sm64tools/n64graphics
|
||||
N64GRAPHICS_CI := $(TOOLS_DIR)/sm64tools/n64graphics_ci
|
||||
TEXTCONV := $(TOOLS_DIR)/textconv
|
||||
AIFF_EXTRACT_CODEBOOK := $(TOOLS_DIR)/aiff_extract_codebook
|
||||
VADPCM_ENC := $(TOOLS_DIR)/vadpcm_enc
|
||||
|
@ -394,10 +455,13 @@ YELLOW := \033[0;33m
|
|||
BLINK := \033[33;5m
|
||||
endif
|
||||
|
||||
# Use Objcopy instead of extract_data_for_mio
|
||||
# Use objcopy instead of extract_data_for_mio to get 16-byte aligned padding
|
||||
ifeq ($(COMPILER),gcc)
|
||||
EXTRACT_DATA_FOR_MIO := $(OBJCOPY) -O binary --only-section=.data
|
||||
endif
|
||||
ifeq ($(VERSION),cn)
|
||||
EXTRACT_DATA_FOR_MIO := $(OBJCOPY) -O binary --only-section=.data
|
||||
endif
|
||||
|
||||
# Common build print status function
|
||||
define print
|
||||
|
@ -420,6 +484,7 @@ clean:
|
|||
distclean: clean
|
||||
$(PYTHON) extract_assets.py --clean
|
||||
$(MAKE) -C $(TOOLS_DIR) clean
|
||||
$(MAKE) -C $(TOOLS_DIR)/sm64tools clean
|
||||
|
||||
test: $(ROM)
|
||||
$(EMULATOR) $(EMU_FLAGS) $<
|
||||
|
@ -430,13 +495,13 @@ load: $(ROM)
|
|||
libultra: $(BUILD_DIR)/libultra.a
|
||||
|
||||
# Extra object file dependencies
|
||||
$(BUILD_DIR)/asm/boot.o: $(IPL3_RAW_FILES)
|
||||
$(BUILD_DIR)/asm/ipl3_font.o: $(IPL3_RAW_FILES)
|
||||
$(BUILD_DIR)/src/game/crash_screen.o: $(CRASH_TEXTURE_C_FILES)
|
||||
$(BUILD_DIR)/lib/rsp.o: $(BUILD_DIR)/rsp/rspboot.bin $(BUILD_DIR)/rsp/fast3d.bin $(BUILD_DIR)/rsp/audio.bin
|
||||
$(SOUND_BIN_DIR)/sound_data.o: $(SOUND_BIN_DIR)/sound_data.ctl.inc.c $(SOUND_BIN_DIR)/sound_data.tbl.inc.c $(SOUND_BIN_DIR)/sequences.bin.inc.c $(SOUND_BIN_DIR)/bank_sets.inc.c
|
||||
$(BUILD_DIR)/levels/scripts.o: $(BUILD_DIR)/include/level_headers.h
|
||||
|
||||
ifeq ($(VERSION),sh)
|
||||
ifeq ($(VERSION_SH_CN),true)
|
||||
$(BUILD_DIR)/src/audio/load_sh.o: $(SOUND_BIN_DIR)/bank_sets.inc.c $(SOUND_BIN_DIR)/sequences_header.inc.c $(SOUND_BIN_DIR)/ctl_header.inc.c $(SOUND_BIN_DIR)/tbl_header.inc.c
|
||||
endif
|
||||
|
||||
|
@ -468,8 +533,9 @@ else
|
|||
$(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/$(VERSION)/define_text.inc.c
|
||||
endif
|
||||
endif
|
||||
$(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/debug_text.raw.inc.c
|
||||
|
||||
ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(GODDARD_SRC_DIRS) $(ULTRA_SRC_DIRS) $(ULTRA_BIN_DIRS) $(BIN_DIRS) $(TEXTURE_DIRS) $(TEXT_DIRS) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) rsp include) $(MIO0_DIR) $(addprefix $(MIO0_DIR)/,$(VERSION)) $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/sequences/$(VERSION)
|
||||
ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(GODDARD_SRC_DIRS) $(ULTRA_SRC_DIRS) $(ULTRA_BIN_DIRS) $(LIBGCC_SRC_DIRS) $(BIN_DIRS) $(TEXTURE_DIRS) $(TEXT_DIRS) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) rsp 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)
|
||||
|
@ -608,18 +674,27 @@ $(BUILD_DIR)/assets/demo_data.c: assets/demo_data.json $(wildcard assets/demos/*
|
|||
$(V)$(PYTHON) $(TOOLS_DIR)/demo_data_converter.py assets/demo_data.json $(DEF_INC_CFLAGS) > $@
|
||||
|
||||
# Encode in-game text strings
|
||||
$(BUILD_DIR)/include/text_strings.h: include/text_strings.h.in
|
||||
$(BUILD_DIR)/$(CHARMAP): $(CHARMAP)
|
||||
$(call print,Preprocessing charmap:,$<,$@)
|
||||
$(V)$(CPP) $(CPPFLAGS) -DBUILD_DIR=$(BUILD_DIR) -MMD -MP -MT $@ -MF $@.d -o $@ $<
|
||||
$(BUILD_DIR)/$(CHARMAP_DEBUG): $(CHARMAP)
|
||||
$(call print,Preprocessing charmap:,$<,$@)
|
||||
$(V)$(CPP) $(CPPFLAGS) -DCHARMAP_DEBUG -DBUILD_DIR=$(BUILD_DIR) -MMD -MP -MT $@ -MF $@.d -o $@ $<
|
||||
$(BUILD_DIR)/include/text_strings.h: include/text_strings.h.in $(BUILD_DIR)/$(CHARMAP)
|
||||
$(call print,Encoding:,$<,$@)
|
||||
$(V)$(TEXTCONV) charmap.txt $< $@
|
||||
$(V)$(TEXTCONV) $(BUILD_DIR)/$(CHARMAP) $< $@
|
||||
$(BUILD_DIR)/include/text_menu_strings.h: include/text_menu_strings.h.in
|
||||
$(call print,Encoding:,$<,$@)
|
||||
$(V)$(TEXTCONV) charmap_menu.txt $< $@
|
||||
$(BUILD_DIR)/text/%/define_courses.inc.c: text/define_courses.inc.c text/%/courses.h
|
||||
@$(PRINT) "$(GREEN)Preprocessing: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(CPP) $(CPPFLAGS) $< -o - -I text/$*/ | $(TEXTCONV) charmap.txt - $@
|
||||
$(V)$(CPP) $(CPPFLAGS) $< -o - -I text/$*/ | $(TEXTCONV) $(BUILD_DIR)/$(CHARMAP) - $@
|
||||
$(BUILD_DIR)/text/%/define_text.inc.c: text/define_text.inc.c text/%/courses.h text/%/dialogs.h
|
||||
@$(PRINT) "$(GREEN)Preprocessing: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(CPP) $(CPPFLAGS) $< -o - -I text/$*/ | $(TEXTCONV) charmap.txt - $@
|
||||
$(V)$(CPP) $(CPPFLAGS) $< -o - -I text/$*/ | $(TEXTCONV) $(BUILD_DIR)/$(CHARMAP) - $@
|
||||
$(BUILD_DIR)/text/debug_text.raw.inc.c: text/debug_text.inc.c $(BUILD_DIR)/$(CHARMAP_DEBUG)
|
||||
@$(PRINT) "$(GREEN)Preprocessing: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(CPP) $(CPPFLAGS) $< -o - -I text/$*/ | $(TEXTCONV) $(BUILD_DIR)/$(CHARMAP_DEBUG) - $@
|
||||
|
||||
# Level headers
|
||||
$(BUILD_DIR)/include/level_headers.h: levels/level_headers.h.in
|
||||
|
@ -645,12 +720,18 @@ $(GLOBAL_ASM_DEP).$(NON_MATCHING):
|
|||
# Compile C code
|
||||
$(BUILD_DIR)/%.o: %.c
|
||||
$(call print,Compiling:,$<,$@)
|
||||
@$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(V)$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(V)$(CC) -c $(CFLAGS) -o $@ $<
|
||||
ifeq ($(VERSION),cn)
|
||||
$(V)$(TOOLS_DIR)/patch_elf_32bit $@
|
||||
endif
|
||||
$(BUILD_DIR)/%.o: $(BUILD_DIR)/%.c
|
||||
$(call print,Compiling:,$<,$@)
|
||||
@$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(V)$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(V)$(CC) -c $(CFLAGS) -o $@ $<
|
||||
ifeq ($(VERSION),cn)
|
||||
$(V)$(TOOLS_DIR)/patch_elf_32bit $@
|
||||
endif
|
||||
|
||||
# Alternate compiler flags needed for matching
|
||||
ifeq ($(COMPILER),ido)
|
||||
|
@ -659,6 +740,8 @@ ifeq ($(COMPILER),ido)
|
|||
$(BUILD_DIR)/bin/%.o: OPT_FLAGS := -g
|
||||
$(BUILD_DIR)/src/goddard/%.o: OPT_FLAGS := -g
|
||||
$(BUILD_DIR)/src/goddard/%.o: MIPSISET := -mips1
|
||||
$(BUILD_DIR)/lib/asm/__osDisableInt.o: MIPSISET := -mips2
|
||||
$(BUILD_DIR)/lib/asm/bcopy.o: MIPSISET := -mips2
|
||||
$(BUILD_DIR)/lib/src/%.o: OPT_FLAGS :=
|
||||
$(BUILD_DIR)/lib/src/math/%.o: OPT_FLAGS := -O2
|
||||
$(BUILD_DIR)/lib/src/math/ll%.o: OPT_FLAGS :=
|
||||
|
@ -667,14 +750,97 @@ ifeq ($(COMPILER),ido)
|
|||
$(BUILD_DIR)/lib/src/string.o: OPT_FLAGS := -O2
|
||||
$(BUILD_DIR)/lib/src/gu%.o: OPT_FLAGS := -O3
|
||||
$(BUILD_DIR)/lib/src/al%.o: OPT_FLAGS := -O3
|
||||
|
||||
ifeq ($(VERSION),sh)
|
||||
ifeq ($(VERSION_SH_CN),true)
|
||||
$(BUILD_DIR)/lib/src/_Ldtob.o: OPT_FLAGS := -O3
|
||||
$(BUILD_DIR)/lib/src/_Litob.o: OPT_FLAGS := -O3
|
||||
$(BUILD_DIR)/lib/src/_Printf.o: OPT_FLAGS := -O3
|
||||
$(BUILD_DIR)/lib/src/sprintf.o: OPT_FLAGS := -O3
|
||||
$(BUILD_DIR)/lib/src/osDriveRomInit.o: OPT_FLAGS := -g
|
||||
endif
|
||||
ifeq ($(VERSION),cn)
|
||||
$(BUILD_DIR)/lib/src/osAiSetFrequency.o: MIPSISET := -mips2
|
||||
$(BUILD_DIR)/lib/src/osVirtualToPhysical.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osInitializeIQueWrapper.o: OPT_FLAGS := -O2
|
||||
$(BUILD_DIR)/lib/src/osAiGetLength.o: OPT_FLAGS := -O2
|
||||
$(BUILD_DIR)/lib/src/osAiSetFrequency.o: OPT_FLAGS := -O2
|
||||
$(BUILD_DIR)/lib/src/math/cosf.o: OPT_FLAGS := -O2 -mips2
|
||||
$(BUILD_DIR)/lib/src/guOrthoF.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/guPerspectiveF.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osAiSetNextBuffer.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osContStartReadData.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osContInit.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/math/sinf.o: OPT_FLAGS := -O2 -mips2
|
||||
$(BUILD_DIR)/lib/src/math/ll%.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/string.o: OPT_FLAGS := -O2 -mips2
|
||||
$(BUILD_DIR)/lib/src/sprintf.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osSyncPrintf.o: OPT_FLAGS := -O2
|
||||
$(BUILD_DIR)/lib/src/_Printf.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osCreateMesgQueue.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osRecvMesg.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osSendMesg.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osSetEventMesg.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osSpTaskLoadGo.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osSpTaskYield.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osSpTaskYielded.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osSiRawStartDma.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osSiCreateAccessQueue.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osCreateThread.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osSetThreadPri.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osStartThread.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osDequeueThread.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osGetCurrFaultedThread.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osGetTime.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osSetTime.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osSetTimer.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osTimer.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osCreateViManager.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osViSetEvent.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osViSetMode.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osViSetSpecialFeatures.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osViSwapBuffer.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osViSwapContext.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osViBlack.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/guRotateF.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osEepromProbe.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osEepromLongWrite.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osEepromLongRead.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osCreatePiManager.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osEPiRawStartDma.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/epidma.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osCartRomInit.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osDevMgrMain.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osPiCreateAccessQueue.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osPiStartDma.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/motor.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osInitialize.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osAiDeviceBusy.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/_Litob.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/_Ldtob.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osJamMesg.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osSpDeviceBusy.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osSpGetStatus.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osSpSetStatus.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osSpSetPc.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osSpRawStartDma.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osSiRawReadIo.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osSiRawWriteIo.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osDestroyThread.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osGetThreadPri.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osYieldThread.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osViInit.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osViGetCurrentContext.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osEepromRead.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osEepromWrite.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osSetGlobalIntMask.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osResetGlobalIntMask.o: OPT_FLAGS := -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osPiRawStartDma.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osPiGetCmdQueue.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osEPiRawReadIo.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/osEPiRawWriteIo.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/ldiv.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/__osSiDeviceBusy.o: OPT_FLAGS := -O2 -mno-abicalls -mips2
|
||||
$(BUILD_DIR)/lib/src/libgcc/%.o: OPT_FLAGS := -O2 -g -mips2
|
||||
endif
|
||||
ifeq ($(VERSION),eu)
|
||||
$(BUILD_DIR)/lib/src/_Ldtob.o: OPT_FLAGS := -O3
|
||||
$(BUILD_DIR)/lib/src/_Litob.o: OPT_FLAGS := -O3
|
||||
|
@ -733,16 +899,31 @@ $(BUILD_DIR)/libgoddard.a: $(GODDARD_O_FILES)
|
|||
@$(PRINT) "$(GREEN)Linking libgoddard: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(AR) rcs -o $@ $(GODDARD_O_FILES)
|
||||
|
||||
# Link libgcc
|
||||
$(BUILD_DIR)/libgcc.a: $(LIBGCC_O_FILES)
|
||||
@$(PRINT) "$(GREEN)Linking libgcc: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(AR) rcs -o $@ $(LIBGCC_O_FILES)
|
||||
|
||||
# Link SM64 ELF file
|
||||
$(ELF): $(O_FILES) $(MIO0_OBJ_FILES) $(SEG_FILES) $(BUILD_DIR)/$(LD_SCRIPT) undefined_syms.txt $(BUILD_DIR)/libultra.a $(BUILD_DIR)/libgoddard.a
|
||||
$(ELF): $(O_FILES) $(MIO0_OBJ_FILES) $(SEG_FILES) $(BUILD_DIR)/$(LD_SCRIPT) undefined_syms.txt $(BUILD_DIR)/libultra.a $(BUILD_DIR)/libgoddard.a $(BUILD_DIR)/libgcc.a
|
||||
@$(PRINT) "$(GREEN)Linking ELF file: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(LD) -L $(BUILD_DIR) -T undefined_syms.txt -T $(BUILD_DIR)/$(LD_SCRIPT) -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -lultra -lgoddard
|
||||
$(V)$(LD) -L $(BUILD_DIR) -T undefined_syms.txt -T $(BUILD_DIR)/$(LD_SCRIPT) -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -lultra -lgoddard -lgcc
|
||||
|
||||
# Build ROM
|
||||
ifeq ($(VERSION),cn)
|
||||
PAD_TO_GAP_FILL := --pad-to=0x7B0000 --gap-fill=0x00
|
||||
else
|
||||
PAD_TO_GAP_FILL := --pad-to=0x800000 --gap-fill=0xFF
|
||||
endif
|
||||
|
||||
$(ROM): $(ELF)
|
||||
$(call print,Building ROM:,$<,$@)
|
||||
$(V)$(OBJCOPY) --pad-to=0x800000 --gap-fill=0xFF $< $(@:.z64=.bin) -O binary
|
||||
ifeq ($(VERSION),cn) # cn has no checksums
|
||||
$(V)$(OBJCOPY) $(PAD_TO_GAP_FILL) $< $(@) -O binary
|
||||
else
|
||||
$(V)$(OBJCOPY) $(PAD_TO_GAP_FILL) $< $(@:.z64=.bin) -O binary
|
||||
$(V)$(N64CKSUM) $(@:.z64=.bin) $@
|
||||
endif
|
||||
|
||||
$(BUILD_DIR)/$(TARGET).objdump: $(ELF)
|
||||
$(OBJDUMP) -D $< > $@
|
||||
|
|
|
@ -178,6 +178,9 @@ $(eval $(call level_rules,menu,generic)) # Menu (File Select)
|
|||
# --------------------------------------
|
||||
|
||||
# Ending cake textures are generated in a special way
|
||||
$(BUILD_DIR)/levels/ending/cake_cn.inc.c: levels/ending/cake_cn.png
|
||||
$(call print,Splitting:,$<,$@)
|
||||
$(V)$(SKYCONV) --type cake-cn --split $^ $(BUILD_DIR)/levels/ending
|
||||
$(BUILD_DIR)/levels/ending/cake_eu.inc.c: levels/ending/cake_eu.png
|
||||
$(call print,Splitting:,$<,$@)
|
||||
$(V)$(SKYCONV) --type cake-eu --split $^ $(BUILD_DIR)/levels/ending
|
||||
|
|
25
README.md
25
README.md
|
@ -1,6 +1,6 @@
|
|||
# Super Mario 64
|
||||
|
||||
- This repo contains a full decompilation of Super Mario 64 (J), (U), (E), and (SH).
|
||||
- This repo contains a full decompilation of Super Mario 64 of the following releases: Japan (jp), North America (us), Europe (eu), Shindou (sh) and iQue Player (cn).
|
||||
- Naming and documentation of the source code and data structures are in progress.
|
||||
|
||||
It builds the following ROMs:
|
||||
|
@ -9,16 +9,17 @@ It builds the following ROMs:
|
|||
* sm64.us.z64 `sha1: 9bef1128717f958171a4afac3ed78ee2bb4e86ce`
|
||||
* sm64.eu.z64 `sha1: 4ac5721683d0e0b6bbb561b58a71740845dceea9`
|
||||
* sm64.sh.z64 `sha1: 3f319ae697533a255a1003d09202379d78d5a2e0`
|
||||
* sm64.cn.z64 `sha1: 2e1db2780985a1f068077dc0444b685f39cd90ec`
|
||||
|
||||
This repo does not include all assets necessary for compiling the ROMs.
|
||||
A prior copy of the game is required to extract the assets.
|
||||
|
||||
## Quick Start (for Ubuntu)
|
||||
|
||||
1. Install prerequisites: `sudo apt install -y build-essential git binutils-mips-linux-gnu python3`
|
||||
1. Install prerequisites: `sudo apt install -y binutils-mips-linux-gnu build-essential git pkgconf python3`
|
||||
2. Clone the repo from within Linux: `git clone https://github.com/n64decomp/sm64.git`
|
||||
3. Place a Super Mario 64 ROM called `baserom.<VERSION>.z64` into the project folder for asset extraction, where `VERSION` can be `us`, `jp`, `eu`, or `sh`.
|
||||
4. Run `make` to build. Qualify the version through `make VERSION=<VERSION>`. Add `-j4` to improve build speed (hardware dependent).
|
||||
3. Place a Super Mario 64 ROM called `baserom.<VERSION>.z64` into the project folder for asset extraction, where `VERSION` can be `jp`, `us`, `eu`, `sh`, or `cn`.
|
||||
4. Run `make` to build. Specify the version through `make VERSION=<VERSION>`. Add `-j4` to improve build speed (hardware dependent).
|
||||
|
||||
Ensure the repo path length does not exceed 255 characters. Long path names result in build errors.
|
||||
|
||||
|
@ -44,7 +45,6 @@ There are 3 steps to set up a working build.
|
|||
|
||||
The build system has the following package requirements:
|
||||
* binutils-mips
|
||||
* capstone
|
||||
* pkgconf
|
||||
* python3 >= 3.6
|
||||
|
||||
|
@ -53,18 +53,17 @@ Dependency installation instructions for common Linux distros are provided below
|
|||
##### Debian / Ubuntu
|
||||
To install build dependencies:
|
||||
```
|
||||
sudo apt install -y binutils-mips-linux-gnu build-essential git libcapstone-dev pkgconf python3
|
||||
sudo apt install -y binutils-mips-linux-gnu build-essential git pkgconf python3
|
||||
```
|
||||
|
||||
##### Arch Linux
|
||||
To install build dependencies:
|
||||
```
|
||||
sudo pacman -S base-devel capstone python
|
||||
sudo pacman -S base-devel python
|
||||
```
|
||||
Install the following AUR packages:
|
||||
* [mips64-elf-binutils](https://aur.archlinux.org/packages/mips64-elf-binutils) (AUR)
|
||||
|
||||
|
||||
##### Other Linux distributions
|
||||
|
||||
Most modern Linux distributions should have equivalent packages to the other two listed above.
|
||||
|
@ -79,7 +78,7 @@ You may also use [Docker](#docker-installation) to handle installing an image wi
|
|||
|
||||
#### Step 2: Copy baserom(s) for asset extraction
|
||||
|
||||
For each version (jp/us/eu/sh) for which you want to build a ROM, put an existing ROM at
|
||||
For each version (jp/us/eu/sh/cn) for which you want to build a ROM, put an existing ROM at
|
||||
`./baserom.<VERSION>.z64` for asset extraction.
|
||||
|
||||
##### Step 3: Build the ROM
|
||||
|
@ -95,10 +94,10 @@ Resulting artifacts can be found in the `build` directory.
|
|||
|
||||
The full list of configurable variables are listed below, with the default being the first listed:
|
||||
|
||||
* ``VERSION``: ``us``, ``jp``, ``eu``, ``sh``
|
||||
* ``VERSION``: ``jp``, ``us``, ``eu``, ``sh``, ``cn``
|
||||
* ``GRUCODE``: ``f3d_old``, ``f3d_new``, ``f3dex``, ``f3dex2``, ``f3dzex``
|
||||
* ``COMPARE``: ``1`` (compare ROM hash), ``0`` (do not compare ROM hash)
|
||||
* ``NON_MATCHING``: Use functionally equivalent C implementations for non-matchings (Currently there aren't any non-matchings, but this will apply to iQue). Also will avoid instances of undefined behavior.
|
||||
* ``NON_MATCHING``: Use functionally equivalent C implementations for non-matchings. Also will avoid instances of undefined behavior.
|
||||
* ``CROSS``: Cross-compiler tool prefix (Example: ``mips64-elf-``).
|
||||
|
||||
### macOS
|
||||
|
@ -111,12 +110,12 @@ With macOS, you may either use Homebrew or [Docker](#docker-installation).
|
|||
Install [Homebrew](https://brew.sh) and the following dependencies:
|
||||
```
|
||||
brew update
|
||||
brew install capstone coreutils make pkg-config tehzz/n64-dev/mips64-elf-binutils
|
||||
brew install coreutils make pkg-config tehzz/n64-dev/mips64-elf-binutils
|
||||
```
|
||||
|
||||
#### Step 2: Copy baserom(s) for asset extraction
|
||||
|
||||
For each version (jp/us/eu/sh) for which you want to build a ROM, put an existing ROM at
|
||||
For each version (jp/us/eu/sh/cn) for which you want to build a ROM, put an existing ROM at
|
||||
`./baserom.<VERSION>.z64` for asset extraction.
|
||||
|
||||
##### Step 3: Build the ROM
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// 0x0C000104
|
||||
const GeoLayout penguin_geo[] = {
|
||||
#if defined(VERSION_EU) || defined(VERSION_SH)
|
||||
#if defined(VERSION_EU) || defined(VERSION_SH) || defined(VERSION_CN)
|
||||
GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0x96, 60),
|
||||
#else
|
||||
GEO_SHADOW(SHADOW_CIRCLE_4_VERTS, 0x96, 100),
|
||||
|
|
|
@ -2,6 +2,15 @@
|
|||
|
||||
UNUSED static const u64 power_meter_unused_1 = 0;
|
||||
|
||||
#if defined(VERSION_CN)
|
||||
ALIGNED8 static const Texture texture_power_meter_left_side[] = {
|
||||
#include "actors/power_meter/power_meter_left_side_cn.rgba16.inc.c"
|
||||
};
|
||||
|
||||
ALIGNED8 static const Texture texture_power_meter_right_side[] = {
|
||||
#include "actors/power_meter/power_meter_right_side_cn.rgba16.inc.c"
|
||||
};
|
||||
#else
|
||||
// 0x030233E0
|
||||
ALIGNED8 static const Texture texture_power_meter_left_side[] = {
|
||||
#include "actors/power_meter/power_meter_left_side.rgba16.inc.c"
|
||||
|
@ -11,6 +20,7 @@ ALIGNED8 static const Texture texture_power_meter_left_side[] = {
|
|||
ALIGNED8 static const Texture texture_power_meter_right_side[] = {
|
||||
#include "actors/power_meter/power_meter_right_side.rgba16.inc.c"
|
||||
};
|
||||
#endif
|
||||
|
||||
// 0x030253E0
|
||||
ALIGNED8 static const Texture texture_power_meter_full[] = {
|
||||
|
@ -102,10 +112,17 @@ const Gfx dl_power_meter_base[] = {
|
|||
|
||||
// 0x03029530
|
||||
static const Vtx vertex_power_meter_health_segments[] = {
|
||||
#if defined(VERSION_CN)
|
||||
{{{ -16, -20, 0}, 0, { 0, 992}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 15, -20, 0}, 0, { 992, 992}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 15, 12, 0}, 0, { 992, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ -16, 12, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
#else
|
||||
{{{ -16, -16, 0}, 0, { 0, 992}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 15, -16, 0}, 0, { 992, 992}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 15, 16, 0}, 0, { 992, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ -16, 16, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
#endif
|
||||
};
|
||||
|
||||
// 0x03029570 - 0x030295A0
|
||||
|
|
466
asm/boot.s
466
asm/boot.s
|
@ -1,10 +1,26 @@
|
|||
// assembler directives
|
||||
.set noat // allow manual use of $at
|
||||
.set noreorder // don't insert nops after branches
|
||||
.set gp=64
|
||||
|
||||
#include "macros.inc"
|
||||
|
||||
.equ EXCEPTION_TLB_MISS, 0x80000000
|
||||
.equ SP_DMEM, 0xA4000000
|
||||
.equ SP_IMEM, 0xA4001000
|
||||
.equ MI_MODE_REG, 0xA4300000
|
||||
.equ RI_MODE_REG, 0xA4700000
|
||||
|
||||
#ifdef VERSION_CN
|
||||
.macro cn_li a b
|
||||
li \a, \b
|
||||
.endm
|
||||
#else
|
||||
.macro cn_li a b
|
||||
lui \a, %hi(\b)
|
||||
addiu \a, \a, %lo(\b)
|
||||
.endm
|
||||
#endif
|
||||
|
||||
// 0xA0000000-0xBFFFFFFF: KSEG1 direct map non-cache mirror of 0x00000000
|
||||
// 0xA4000000-0xA4000FFF: RSP DMEM
|
||||
|
||||
|
@ -19,8 +35,7 @@ glabel ipl3_entry // 0xA4000040
|
|||
mtc0 $zero, $13
|
||||
mtc0 $zero, $9
|
||||
mtc0 $zero, $11
|
||||
lui $t0, %hi(RI_MODE_REG)
|
||||
addiu $t0, %lo(RI_MODE_REG)
|
||||
cn_li $t0, RI_MODE_REG
|
||||
lw $t1, 0xc($t0)
|
||||
bnez $t1, .LA4000410
|
||||
nop
|
||||
|
@ -30,12 +45,10 @@ glabel ipl3_entry // 0xA4000040
|
|||
sw $s5, 8($sp)
|
||||
sw $s6, 0xc($sp)
|
||||
sw $s7, 0x10($sp)
|
||||
lui $t0, %hi(RI_MODE_REG)
|
||||
addiu $t0, %lo(RI_MODE_REG)
|
||||
cn_li $t0, RI_MODE_REG
|
||||
lui $t2, (0xa3f80000 >> 16)
|
||||
lui $t3, (0xa3f00000 >> 16)
|
||||
lui $t4, %hi(MI_MODE_REG)
|
||||
addiu $t4, %lo(MI_MODE_REG)
|
||||
cn_li $t4, MI_MODE_REG
|
||||
ori $t1, $zero, 64
|
||||
sw $t1, 4($t0)
|
||||
li $s1, 8000
|
||||
|
@ -83,8 +96,7 @@ glabel ipl3_entry // 0xA4000040
|
|||
move $fp, $sp
|
||||
lui $s0, %hi(MI_VERSION_REG)
|
||||
lw $s0, %lo(MI_VERSION_REG)($s0)
|
||||
lui $s1, (0x01010101 >> 16)
|
||||
addiu $s1, (0x01010101 & 0xFFFF)
|
||||
cn_li $s1, 0x01010101
|
||||
bne $s0, $s1, .LA4000160
|
||||
nop
|
||||
li $s0, 512
|
||||
|
@ -161,7 +173,11 @@ glabel ipl3_entry // 0xA4000040
|
|||
bnez $t0, .LA4000168
|
||||
nop
|
||||
.LA400025C:
|
||||
#ifdef VERSION_CN
|
||||
li $t0, 0xc0000000
|
||||
#else
|
||||
li $t0, 0xc4000000
|
||||
#endif
|
||||
sw $t0, 0xc($t2)
|
||||
li $t0, 0x80000000
|
||||
sw $t0, 0x4($t2)
|
||||
|
@ -253,8 +269,7 @@ glabel ipl3_entry // 0xA4000040
|
|||
lw $s6, 0xc($sp)
|
||||
lw $s7, 0x10($sp)
|
||||
addiu $sp, $sp, 0x18
|
||||
lui $t0, %hi(EXCEPTION_TLB_MISS)
|
||||
addiu $t0, $t0, %lo(EXCEPTION_TLB_MISS)
|
||||
cn_li $t0, EXCEPTION_TLB_MISS
|
||||
addiu $t1, $t0, 0x4000
|
||||
addiu $t1, $t1, -0x20
|
||||
mtc0 $zero, $28
|
||||
|
@ -264,8 +279,7 @@ glabel ipl3_entry // 0xA4000040
|
|||
sltu $at, $t0, $t1
|
||||
bnez $at, .LA40003D8
|
||||
addiu $t0, $t0, 0x20
|
||||
lui $t0, %hi(EXCEPTION_TLB_MISS)
|
||||
addiu $t0, %lo(EXCEPTION_TLB_MISS)
|
||||
cn_li $t0, EXCEPTION_TLB_MISS
|
||||
addiu $t1, $t0, 0x2000
|
||||
addiu $t1, $t1, -0x10
|
||||
.LA40003F8:
|
||||
|
@ -276,8 +290,7 @@ glabel ipl3_entry // 0xA4000040
|
|||
b .LA4000458
|
||||
nop
|
||||
.LA4000410:
|
||||
lui $t0, %hi(EXCEPTION_TLB_MISS)
|
||||
addiu $t0, %lo(EXCEPTION_TLB_MISS)
|
||||
cn_li $t0, EXCEPTION_TLB_MISS
|
||||
addiu $t1, $t0, 0x4000
|
||||
addiu $t1, $t1, -0x20
|
||||
mtc0 $zero, $28
|
||||
|
@ -287,8 +300,7 @@ glabel ipl3_entry // 0xA4000040
|
|||
sltu $at, $t0, $t1
|
||||
bnez $at, .LA4000428
|
||||
addiu $t0, $t0, 0x20
|
||||
lui $t0, %hi(EXCEPTION_TLB_MISS)
|
||||
addiu $t0, %lo(EXCEPTION_TLB_MISS)
|
||||
cn_li $t0, EXCEPTION_TLB_MISS
|
||||
addiu $t1, $t0, 0x2000
|
||||
addiu $t1, $t1, -0x10
|
||||
.LA4000448:
|
||||
|
@ -297,8 +309,45 @@ glabel ipl3_entry // 0xA4000040
|
|||
bnez $at, .LA4000448
|
||||
addiu $t0, $t0, 0x10
|
||||
.LA4000458:
|
||||
lui $t2, %hi(SP_DMEM)
|
||||
addiu $t2, $t2, %lo(SP_DMEM)
|
||||
#ifdef VERSION_CN
|
||||
la $t0, D_CN_0400049C
|
||||
lui $t1, 0xf
|
||||
ori $t1, $t1, 0xffff
|
||||
and $t0, $t0, $t1
|
||||
lui $t2, 0xa400
|
||||
lui $t3, 0xfff0
|
||||
and $t2, $t2, $t3
|
||||
or $t0, $t0, $t2
|
||||
la $t3, D_CN_0400074C
|
||||
and $t3, $t3, $t1
|
||||
or $t3, $t3, $t2
|
||||
lui $t1, 0xa000
|
||||
.LA4000474:
|
||||
lw $t5, ($t0)
|
||||
sw $t5, ($t1)
|
||||
addiu $t0, $t0, 4
|
||||
addiu $t1, $t1, 4
|
||||
sltu $at, $t0, $t3
|
||||
bnez $at, .LA4000474
|
||||
nop
|
||||
lui $t4, 0x8000
|
||||
jr $t4
|
||||
nop
|
||||
lui $t3, 0xb000
|
||||
lui $t2, 0x1fff
|
||||
ori $t2, $t2, 0xffff
|
||||
lw $t1, 8($t3)
|
||||
and $t1, $t1, $t2
|
||||
lui $at, 0xa460
|
||||
sw $t1, ($at)
|
||||
.LA40004B8:
|
||||
lui $t0, 0xa460
|
||||
lw $t0, 0x10($t0)
|
||||
andi $t0, $t0, 2
|
||||
bnez $t0, .LA40004B8
|
||||
nop
|
||||
#else
|
||||
cn_li $t2, SP_DMEM
|
||||
lui $t3, 0xfff0
|
||||
lui $t1, 0x0010
|
||||
and $t2, $t2, $t3
|
||||
|
@ -320,8 +369,7 @@ glabel ipl3_entry // 0xA4000040
|
|||
addiu $t1, $t1, 4
|
||||
bnez $at, .LA4000498
|
||||
sw $t5, -4($t1)
|
||||
lui $t4, %hi(EXCEPTION_TLB_MISS)
|
||||
addiu $t4, %lo(EXCEPTION_TLB_MISS)
|
||||
cn_li $t4, EXCEPTION_TLB_MISS
|
||||
jr $t4
|
||||
nop
|
||||
lui $t3, %hi(D_B0000008)
|
||||
|
@ -337,13 +385,13 @@ glabel ipl3_entry // 0xA4000040
|
|||
andi $t0, $t0, 2
|
||||
bnezl $t0, .LA40004D0
|
||||
lui $t0, %hi(PI_STATUS_REG)
|
||||
#endif
|
||||
li $t0, 0x1000
|
||||
add $t0, $t0, $t3
|
||||
and $t0, $t0, $t2
|
||||
lui $at, %hi(PI_CART_ADDR_REG)
|
||||
sw $t0, %lo(PI_CART_ADDR_REG)($at)
|
||||
lui $t2, 0x0010
|
||||
addiu $t2, 0xFFFF
|
||||
cn_li $t2, 0x000FFFFF
|
||||
lui $at, %hi(PI_WR_LEN_REG)
|
||||
sw $t2, %lo(PI_WR_LEN_REG)($at)
|
||||
|
||||
|
@ -381,6 +429,104 @@ glabel ipl3_entry // 0xA4000040
|
|||
andi $t3, $t3, 0x1
|
||||
bnez $t3, .LA4000514
|
||||
nop
|
||||
#ifdef VERSION_CN
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
#endif
|
||||
#ifdef VERSION_CN
|
||||
lui $t1, %hi(SP_PC)
|
||||
lw $t1, %lo(SP_PC)($t1)
|
||||
beqz $t1, .LA4000698
|
||||
nop
|
||||
addiu $t2, $zero, 0x41
|
||||
lui $at, %hi(SP_STATUS_REG)
|
||||
sw $t2, %lo(SP_STATUS_REG)($at)
|
||||
lui $at, %hi(SP_PC)
|
||||
sw $zero, %lo(SP_PC)($at)
|
||||
.LA4000698:
|
||||
li $t3, 0x00AAAAAE
|
||||
lui $at, %hi(SP_STATUS_REG)
|
||||
sw $t3, %lo(SP_STATUS_REG)($at)
|
||||
li $t0, 1365
|
||||
lui $at, %hi(MI_INTR_MASK_REG)
|
||||
sw $t0, %lo(MI_INTR_MASK_REG)($at)
|
||||
lui $at, %hi(SI_STATUS_REG)
|
||||
sw $zero, %lo(SI_STATUS_REG)($at)
|
||||
lui $at, %hi(AI_STATUS_REG)
|
||||
sw $zero, %lo(AI_STATUS_REG)($at)
|
||||
li $t1, 2048
|
||||
lui $at, %hi(MI_MODE_REG)
|
||||
sw $t1, %lo(MI_MODE_REG)($at)
|
||||
li $t1, 2
|
||||
lui $at, %hi(PI_STATUS_REG)
|
||||
sw $t1, %lo(PI_STATUS_REG)($at)
|
||||
lui $t0, (0xA0000300 >> 16)
|
||||
ori $t0, (0xA0000300 & 0xFFFF)
|
||||
sw $s4, ($t0)
|
||||
sw $s3, 4($t0)
|
||||
#else
|
||||
lui $t3, %hi(D_B0000008)
|
||||
lw $a0, %lo(D_B0000008)($t3)
|
||||
move $a1, $s6
|
||||
|
@ -463,8 +609,7 @@ func_A4000690:
|
|||
lui $at, %hi(SP_PC)
|
||||
sw $zero, %lo(SP_PC)($at)
|
||||
.LA40006BC:
|
||||
lui $t3, (0x00AAAAAE >> 16)
|
||||
ori $t3, (0x00AAAAAE & 0xFFFF)
|
||||
li $t3, 0x00AAAAAE
|
||||
lui $at, %hi(SP_STATUS_REG)
|
||||
sw $t3, %lo(SP_STATUS_REG)($at)
|
||||
lui $at, %hi(MI_INTR_MASK_REG)
|
||||
|
@ -483,32 +628,53 @@ func_A4000690:
|
|||
ori $t0, (0xA0000300 & 0xFFFF)
|
||||
sw $t1, %lo(PI_STATUS_REG)($at)
|
||||
sw $s7, 0x14($t0)
|
||||
#endif
|
||||
sw $s5, 0xc($t0)
|
||||
#ifdef VERSION_CN
|
||||
beqz $s3, .LA4000728
|
||||
sw $s7, 0x14($t0)
|
||||
b .LA4000730
|
||||
lui $t1, 0xa600
|
||||
#else
|
||||
sw $s3, 0x4($t0)
|
||||
beqz $s3, .LA4000728
|
||||
sw $s4, ($t0)
|
||||
lui $t1, 0xa600
|
||||
b .LA4000730
|
||||
addiu $t1, $t1, 0
|
||||
#endif
|
||||
.LA4000728:
|
||||
lui $t1, 0xb000
|
||||
addiu $t1, $t1, 0
|
||||
cn_li $t1, 0xb0000000
|
||||
.LA4000730:
|
||||
sw $t1, 0x8($t0)
|
||||
lui $t0, %hi(SP_DMEM)
|
||||
addiu $t0, %lo(SP_DMEM)
|
||||
cn_li $t0, SP_DMEM
|
||||
addi $t1, $t0, 0x1000
|
||||
#ifdef VERSION_CN
|
||||
.LA4000710:
|
||||
sw $zero, ($t0)
|
||||
addiu $t0, $t0, 4
|
||||
bne $t0, $t1, .LA4000710
|
||||
nop
|
||||
#else
|
||||
.LA4000740:
|
||||
addiu $t0, $t0, 4
|
||||
bne $t0, $t1, .LA4000740
|
||||
sw $zero, -4($t0)
|
||||
lui $t0, %hi(SP_IMEM)
|
||||
addiu $t0, %lo(SP_IMEM)
|
||||
#endif
|
||||
cn_li $t0, SP_IMEM
|
||||
addi $t1, $t0, 0x1000
|
||||
#ifdef VERSION_CN
|
||||
.LA400072C:
|
||||
sw $zero, ($t0)
|
||||
addiu $t0, $t0, 4
|
||||
bne $t0, $t1, .LA400072C
|
||||
nop
|
||||
#else
|
||||
.LA4000758:
|
||||
addiu $t0, $t0, 4
|
||||
bne $t0, $t1, .LA4000758
|
||||
sw $zero, -4($t0)
|
||||
#endif
|
||||
lui $t3, %hi(D_B0000008)
|
||||
lw $t1, %lo(D_B0000008)($t3)
|
||||
jr $t1
|
||||
|
@ -517,10 +683,12 @@ func_A4000690:
|
|||
|
||||
func_A4000778:
|
||||
addiu $sp, $sp, -0xa0
|
||||
#ifndef VERSION_CN
|
||||
sw $s0, 0x40($sp)
|
||||
sw $s1, 0x44($sp)
|
||||
move $s1, $zero
|
||||
move $s0, $zero
|
||||
#endif
|
||||
sw $v0, ($sp)
|
||||
sw $v1, 4($sp)
|
||||
sw $a0, 8($sp)
|
||||
|
@ -537,6 +705,10 @@ func_A4000778:
|
|||
sw $t7, 0x34($sp)
|
||||
sw $t8, 0x38($sp)
|
||||
sw $t9, 0x3c($sp)
|
||||
#ifdef VERSION_CN
|
||||
sw $s0, 0x40($sp)
|
||||
sw $s1, 0x44($sp)
|
||||
#endif
|
||||
sw $s2, 0x48($sp)
|
||||
sw $s3, 0x4c($sp)
|
||||
sw $s4, 0x50($sp)
|
||||
|
@ -545,19 +717,34 @@ func_A4000778:
|
|||
sw $s7, 0x5c($sp)
|
||||
sw $fp, 0x60($sp)
|
||||
sw $ra, 0x64($sp)
|
||||
#ifdef VERSION_CN
|
||||
move $s0, $zero
|
||||
move $s1, $zero
|
||||
#endif
|
||||
.LA40007EC:
|
||||
jal func_A4000880
|
||||
nop
|
||||
addiu $s0, $s0, 1
|
||||
#ifdef VERSION_CN
|
||||
addu $s1, $s1, $v0
|
||||
#endif
|
||||
slti $t1, $s0, 4
|
||||
bnez $t1, .LA40007EC
|
||||
#ifdef VERSION_CN
|
||||
nop
|
||||
#else
|
||||
addu $s1, $s1, $v0
|
||||
#endif
|
||||
srl $a0, $s1, 2
|
||||
jal func_A4000A40
|
||||
li $a1, 1
|
||||
#ifdef VERSION_CN
|
||||
srl $v0, $s1, 2
|
||||
#else
|
||||
lw $ra, 0x64($sp)
|
||||
srl $v0, $s1, 2
|
||||
lw $s1, 0x44($sp)
|
||||
#endif
|
||||
lw $v1, 4($sp)
|
||||
lw $a0, 8($sp)
|
||||
lw $a1, 0xc($sp)
|
||||
|
@ -574,6 +761,9 @@ func_A4000778:
|
|||
lw $t8, 0x38($sp)
|
||||
lw $t9, 0x3c($sp)
|
||||
lw $s0, 0x40($sp)
|
||||
#ifdef VERSION_CN
|
||||
lw $s1, 0x44($sp)
|
||||
#endif
|
||||
lw $s2, 0x48($sp)
|
||||
lw $s3, 0x4c($sp)
|
||||
lw $s4, 0x50($sp)
|
||||
|
@ -581,6 +771,9 @@ func_A4000778:
|
|||
lw $s6, 0x58($sp)
|
||||
lw $s7, 0x5c($sp)
|
||||
lw $fp, 0x60($sp)
|
||||
#ifdef VERSION_CN
|
||||
lw $ra, 0x64($sp)
|
||||
#endif
|
||||
jr $ra
|
||||
addiu $sp, $sp, 0xa0
|
||||
|
||||
|
@ -592,22 +785,46 @@ func_A4000880:
|
|||
move $t4, $zero
|
||||
.LA4000894:
|
||||
slti $k0, $t4, 0x40
|
||||
#ifdef VERSION_CN
|
||||
beqz $k0, .LA40008D4
|
||||
nop
|
||||
#else
|
||||
beql $k0, $zero, .LA40008FC
|
||||
move $v0, $zero
|
||||
#endif
|
||||
jal func_A400090C
|
||||
move $a0, $t4
|
||||
#ifdef VERSION_CN
|
||||
blez $v0, .LA40008CC
|
||||
nop
|
||||
#else
|
||||
blezl $v0, .LA40008CC
|
||||
slti $k0, $t1, 0x50
|
||||
#endif
|
||||
subu $k0, $v0, $t1
|
||||
multu $k0, $t4
|
||||
#ifndef VERSION_CN
|
||||
move $t1, $v0
|
||||
#endif
|
||||
mflo $k0
|
||||
addu $t3, $t3, $k0
|
||||
#ifdef VERSION_CN
|
||||
move $t1, $v0
|
||||
#else
|
||||
nop
|
||||
slti $k0, $t1, 0x50
|
||||
#endif
|
||||
.LA40008CC:
|
||||
bnez $k0, .LA4000894
|
||||
#ifdef VERSION_CN
|
||||
addiu $t4, $t4, 1
|
||||
slti $k0, $t1, 0x50
|
||||
#endif
|
||||
bnez $k0, .LA4000894
|
||||
#ifdef VERSION_CN
|
||||
nop
|
||||
#else
|
||||
addiu $t4, $t4, 1
|
||||
#endif
|
||||
sll $a0, $t3, 2
|
||||
subu $a0, $a0, $t3
|
||||
sll $a0, $a0, 2
|
||||
|
@ -615,15 +832,27 @@ func_A4000880:
|
|||
sll $a0, $a0, 1
|
||||
jal func_A4000980
|
||||
addiu $a0, $a0, -0x370
|
||||
#ifdef VERSION_CN
|
||||
b .LA40008FC
|
||||
nop
|
||||
.LA40008D4:
|
||||
move $v0, $zero
|
||||
#else
|
||||
b .LA4000900
|
||||
lw $ra, 0x1c($sp)
|
||||
move $v0, $zero
|
||||
#endif
|
||||
.LA40008FC:
|
||||
lw $ra, 0x1c($sp)
|
||||
.LA4000900:
|
||||
#ifdef VERSION_CN
|
||||
jr $ra
|
||||
addiu $sp, $sp, 0x20
|
||||
#else
|
||||
addiu $sp, $sp, 0x20
|
||||
jr $ra
|
||||
nop
|
||||
#endif
|
||||
|
||||
func_A400090C:
|
||||
addiu $sp, $sp, -0x28
|
||||
|
@ -632,7 +861,16 @@ func_A400090C:
|
|||
jal func_A4000A40
|
||||
li $a1, 2
|
||||
move $fp, $zero
|
||||
.LA40008FC_cn:
|
||||
li $k0, -1
|
||||
#ifdef VERSION_CN
|
||||
sw $k0, ($s4)
|
||||
sw $k0, ($s4)
|
||||
sw $k0, 4($s4)
|
||||
lw $v1, 4($s4)
|
||||
srl $v1, $v1, 0x10
|
||||
move $gp, $zero
|
||||
#else
|
||||
.LA4000928:
|
||||
sw $k0, 4($s4)
|
||||
lw $v1, 4($s4)
|
||||
|
@ -640,42 +878,82 @@ func_A400090C:
|
|||
sw $k0, ($s4)
|
||||
move $gp, $zero
|
||||
srl $v1, $v1, 0x10
|
||||
#endif
|
||||
.LA4000940:
|
||||
andi $k0, $v1, 1
|
||||
#ifdef VERSION_CN
|
||||
beqz $k0, .LA4000928_cn
|
||||
nop
|
||||
#else
|
||||
beql $k0, $zero, .LA4000954
|
||||
addiu $gp, $gp, 1
|
||||
#endif
|
||||
addiu $v0, $v0, 1
|
||||
#ifdef VERSION_CN
|
||||
.LA4000928_cn:
|
||||
srl $v1, $v1, 1
|
||||
#endif
|
||||
addiu $gp, $gp, 1
|
||||
.LA4000954:
|
||||
slti $k0, $gp, 8
|
||||
bnez $k0, .LA4000940
|
||||
#ifdef VERSION_CN
|
||||
nop
|
||||
#else
|
||||
srl $v1, $v1, 1
|
||||
#endif
|
||||
addiu $fp, $fp, 1
|
||||
slti $k0, $fp, 0xa
|
||||
#ifdef VERSION_CN
|
||||
bnez $k0, .LA40008FC_cn
|
||||
nop
|
||||
lw $ra, 0x1c($sp)
|
||||
jr $ra
|
||||
addiu $sp, $sp, 0x28
|
||||
#else
|
||||
bnezl $k0, .LA4000928
|
||||
li $k0, -1
|
||||
lw $ra, 0x1c($sp)
|
||||
addiu $sp, $sp, 0x28
|
||||
jr $ra
|
||||
nop
|
||||
#endif
|
||||
|
||||
func_A4000980:
|
||||
addiu $sp, $sp, -0x28
|
||||
sw $ra, 0x1c($sp)
|
||||
sw $a0, 0x20($sp)
|
||||
#ifndef VERSION_CN
|
||||
sb $zero, 0x27($sp)
|
||||
#endif
|
||||
move $t0, $zero
|
||||
move $t2, $zero
|
||||
li $t5, 51200
|
||||
#ifdef VERSION_CN
|
||||
sb $zero, 0x27($sp)
|
||||
#endif
|
||||
move $t6, $zero
|
||||
#ifdef VERSION_CN
|
||||
.LA4000978:
|
||||
#endif
|
||||
slti $k0, $t6, 0x40
|
||||
.LA40009A4:
|
||||
#ifdef VERSION_CN
|
||||
bnez $k0, .LA400098C_cn
|
||||
nop
|
||||
#else
|
||||
bnezl $k0, .LA40009B8
|
||||
move $a0, $t6
|
||||
#endif
|
||||
b .LA4000A30
|
||||
move $v0, $zero
|
||||
#ifdef VERSION_CN
|
||||
.LA400098C_cn:
|
||||
#endif
|
||||
move $a0, $t6
|
||||
#ifndef VERSION_CN
|
||||
.LA40009B8:
|
||||
#endif
|
||||
jal func_A4000A40
|
||||
li $a1, 1
|
||||
jal func_A4000AD0
|
||||
|
@ -684,6 +962,37 @@ func_A4000980:
|
|||
addiu $a0, $sp, 0x27
|
||||
lbu $k0, 0x27($sp)
|
||||
li $k1, 800
|
||||
#ifdef VERSION_CN
|
||||
multu $k0, $k1
|
||||
mflo $t0
|
||||
lw $a0, 0x20($sp)
|
||||
subu $k0, $t0, $a0
|
||||
bgez $k0, .LA40009CC
|
||||
nop
|
||||
subu $k0, $a0, $t0
|
||||
.LA40009CC:
|
||||
slt $k1, $k0, $t5
|
||||
beqz $k1, .LA40009E0
|
||||
nop
|
||||
move $t5, $k0
|
||||
move $t2, $t6
|
||||
.LA40009E0:
|
||||
lw $a0, 0x20($sp)
|
||||
slt $k1, $t0, $a0
|
||||
beqz $k1, .LA4000A00
|
||||
nop
|
||||
addiu $t6, $t6, 1
|
||||
slti $k1, $t6, 0x41
|
||||
bnez $k1, .LA4000978
|
||||
nop
|
||||
.LA4000A00:
|
||||
addu $v0, $t2, $t6
|
||||
srl $v0, $v0, 1
|
||||
.LA4000A30:
|
||||
lw $ra, 0x1c($sp)
|
||||
jr $ra
|
||||
addiu $sp, $sp, 0x28
|
||||
#else
|
||||
lw $a0, 0x20($sp)
|
||||
multu $k0, $k1
|
||||
mflo $t0
|
||||
|
@ -714,15 +1023,26 @@ func_A4000980:
|
|||
addiu $sp, $sp, 0x28
|
||||
jr $ra
|
||||
nop
|
||||
#endif
|
||||
|
||||
func_A4000A40:
|
||||
addiu $sp, $sp, -0x28
|
||||
#ifdef VERSION_CN
|
||||
sw $ra, 0x1c($sp)
|
||||
lui $t7, 0x4200
|
||||
andi $a0, $a0, 0xff
|
||||
xori $a0, $a0, 0x3f
|
||||
li $k1, 1
|
||||
bne $a1, $k1, .LA4000A64
|
||||
nop
|
||||
#else
|
||||
andi $a0, $a0, 0xff
|
||||
li $k1, 1
|
||||
xori $a0, $a0, 0x3f
|
||||
sw $ra, 0x1c($sp)
|
||||
bne $a1, $k1, .LA4000A64
|
||||
lui $t7, 0x4600
|
||||
#endif
|
||||
lui $k0, 0x8000
|
||||
or $t7, $t7, $k0
|
||||
.LA4000A64:
|
||||
|
@ -744,31 +1064,53 @@ func_A4000A40:
|
|||
andi $k0, $a0, 0x20
|
||||
sll $k0, $k0, 0x12
|
||||
or $t7, $t7, $k0
|
||||
#ifdef VERSION_CN
|
||||
sw $t7, ($s5)
|
||||
li $k1, 1
|
||||
bne $a1, $k1, .LA4000AC0
|
||||
nop
|
||||
#else
|
||||
li $k1, 1
|
||||
bne $a1, $k1, .LA4000AC0
|
||||
sw $t7, ($s5)
|
||||
#endif
|
||||
lui $k0, %hi(MI_MODE_REG)
|
||||
sw $zero, %lo(MI_MODE_REG)($k0)
|
||||
.LA4000AC0:
|
||||
lw $ra, 0x1c($sp)
|
||||
#ifdef VERSION_CN
|
||||
jr $ra
|
||||
addiu $sp, $sp, 0x28
|
||||
#else
|
||||
addiu $sp, $sp, 0x28
|
||||
jr $ra
|
||||
nop
|
||||
#endif
|
||||
|
||||
func_A4000AD0:
|
||||
addiu $sp, $sp, -0x28
|
||||
sw $ra, 0x1c($sp)
|
||||
#ifdef VERSION_CN
|
||||
move $fp, $zero
|
||||
#endif
|
||||
li $k0, 0x2000
|
||||
lui $k1, %hi(MI_MODE_REG)
|
||||
sw $k0, %lo(MI_MODE_REG)($k1)
|
||||
#ifndef VERSION_CN
|
||||
move $fp, $zero
|
||||
#endif
|
||||
lw $fp, ($s5)
|
||||
li $k0, 0x1000
|
||||
sw $k0, %lo(MI_MODE_REG)($k1)
|
||||
#ifdef VERSION_CN
|
||||
move $k0, $zero
|
||||
#endif
|
||||
li $k1, 0x40
|
||||
and $k1, $k1, $fp
|
||||
srl $k1, $k1, 6
|
||||
#ifndef VERSION_CN
|
||||
move $k0, $zero
|
||||
#endif
|
||||
or $k0, $k0, $k1
|
||||
li $k1, 0x4000
|
||||
and $k1, $k1, $fp
|
||||
|
@ -792,61 +1134,13 @@ func_A4000AD0:
|
|||
or $k0, $k0, $k1
|
||||
sb $k0, ($a0)
|
||||
lw $ra, 0x1c($sp)
|
||||
#ifdef VERSION_CN
|
||||
jr $ra
|
||||
addiu $sp, $sp, 0x28
|
||||
.fill 0x30
|
||||
#else
|
||||
addiu $sp, $sp, 0x28
|
||||
jr $ra
|
||||
nop
|
||||
nop
|
||||
|
||||
// 0xA4000B70-0xA4000FFF: IPL3 Font
|
||||
glabel ipl3_font
|
||||
.incbin "textures/ipl3_raw/ipl3_font_00.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_01.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_02.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_03.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_04.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_05.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_06.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_07.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_08.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_09.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_10.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_11.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_12.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_13.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_14.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_15.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_16.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_17.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_18.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_19.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_20.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_21.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_22.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_23.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_24.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_25.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_26.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_27.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_28.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_29.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_30.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_31.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_32.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_33.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_34.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_35.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_36.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_37.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_38.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_39.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_40.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_41.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_42.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_43.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_44.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_45.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_46.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_47.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_48.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_49.ia1"
|
||||
.fill 0x12
|
||||
#endif
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
// assembler directives
|
||||
.set noat // allow manual use of $at
|
||||
.set noreorder // don't insert nops after branches
|
||||
.set gp=64
|
||||
|
||||
#include "macros.inc"
|
||||
|
||||
|
@ -11,13 +10,13 @@
|
|||
// This file is handwritten.
|
||||
|
||||
glabel decompress
|
||||
#if defined(VERSION_EU) || defined(VERSION_SH)
|
||||
#if !defined(VERSION_JP) && !defined(VERSION_US)
|
||||
lw $a3, 8($a0)
|
||||
lw $t9, 0xc($a0)
|
||||
lw $t8, 4($a0)
|
||||
add $a3, $a3, $a0
|
||||
add $t9, $t9, $a0
|
||||
move $a2, $zero
|
||||
or $a2, $zero, $zero
|
||||
addi $a0, $a0, 0x10
|
||||
add $t8, $t8, $a1
|
||||
.L8026ED80:
|
||||
|
|
21
asm/entry.s
21
asm/entry.s
|
@ -1,7 +1,6 @@
|
|||
// assembler directives
|
||||
.set noat // allow manual use of $at
|
||||
.set noreorder // don't insert nops after branches
|
||||
.set gp=64
|
||||
|
||||
#include "macros.inc"
|
||||
|
||||
|
@ -9,6 +8,25 @@
|
|||
.section .text, "ax"
|
||||
|
||||
glabel entry_point
|
||||
.if VERSION_CN == 1
|
||||
lui $t0, %lo(_mainSegmentNoloadStartHi)
|
||||
ori $t0, %lo(_mainSegmentNoloadStartLo)
|
||||
lui $t1, %lo(_mainSegmentNoloadSizeHi)
|
||||
ori $t1, %lo(_mainSegmentNoloadSizeLo)
|
||||
.L80249010:
|
||||
sw $zero, ($t0)
|
||||
sw $zero, 4($t0)
|
||||
addi $t0, $t0, 8
|
||||
addi $t1, $t1, -8
|
||||
bnez $t1, .L80249010
|
||||
nop
|
||||
lui $sp, %lo(gIdleThreadStackHi)
|
||||
ori $sp, %lo(gIdleThreadStackLo)
|
||||
lui $t2, %lo(main_funcHi)
|
||||
ori $t2, %lo(main_funcLo)
|
||||
jr $t2
|
||||
nop
|
||||
.else
|
||||
lui $t0, %hi(_mainSegmentNoloadStart) // $t0, 0x8034
|
||||
lui $t1, %lo(_mainSegmentNoloadSizeHi) // lui $t1, 2
|
||||
addiu $t0, %lo(_mainSegmentNoloadStart) // addiu $t0, $t0, -0x6df0
|
||||
|
@ -24,6 +42,7 @@ glabel entry_point
|
|||
addiu $t2, %lo(main_func) // addiu $t2, $t2, 0x6dc4
|
||||
jr $t2
|
||||
addiu $sp, %lo(gIdleThreadStack) // addiu $sp, $sp, 0xa00
|
||||
.endif
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
|
|
56
asm/ipl3_font.s
Normal file
56
asm/ipl3_font.s
Normal file
|
@ -0,0 +1,56 @@
|
|||
#include "macros.inc"
|
||||
|
||||
// 0xA4000B70-0xA4000FFF: IPL3 Font
|
||||
glabel ipl3_font
|
||||
.incbin "textures/ipl3_raw/ipl3_font_00.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_01.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_02.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_03.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_04.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_05.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_06.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_07.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_08.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_09.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_10.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_11.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_12.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_13.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_14.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_15.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_16.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_17.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_18.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_19.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_20.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_21.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_22.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_23.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_24.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_25.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_26.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_27.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_28.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_29.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_30.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_31.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_32.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_33.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_34.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_35.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_36.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_37.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_38.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_39.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_40.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_41.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_42.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_43.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_44.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_45.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_46.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_47.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_48.ia1"
|
||||
.incbin "textures/ipl3_raw/ipl3_font_49.ia1"
|
||||
.fill 0x12
|
||||
|
|
@ -10,12 +10,18 @@
|
|||
/* Revision */
|
||||
#ifdef VERSION_SH
|
||||
.word 0x00001448
|
||||
#elif defined(VERSION_CN)
|
||||
.word 0x0000144C
|
||||
#elif defined(VERSION_EU)
|
||||
.word 0x00001446
|
||||
#else /* NTSC-U and NTSC-J 1.0 */
|
||||
.word 0x00001444
|
||||
#endif
|
||||
|
||||
#ifdef VERSION_CN
|
||||
.fill 0x30
|
||||
#else
|
||||
|
||||
.word 0x4EAA3D0E /* Checksum 1 */
|
||||
.word 0x74757C24 /* Checksum 2 */
|
||||
.word 0x00000000 /* Unknown */
|
||||
|
@ -44,3 +50,5 @@
|
|||
#else
|
||||
.byte 0x00 /* Version */
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
5359
assets.json
5359
assets.json
File diff suppressed because it is too large
Load diff
|
@ -19,7 +19,7 @@
|
|||
|
||||
{
|
||||
"table": [
|
||||
{"demofile":"bitdw", "ifdef":["VERSION_US", "VERSION_SH"]},
|
||||
{"demofile":"bitdw", "ifdef":["VERSION_US", "VERSION_SH", "VERSION_CN"]},
|
||||
|
||||
/* Whomp's Fortress has the wrong size.
|
||||
The original entries probably manually input the sizes. */
|
||||
|
@ -44,6 +44,6 @@
|
|||
Mario runs into the sign and aligns himself as if it were a mistake. */
|
||||
{"name":"unused"},
|
||||
|
||||
{"name":"bitdw", "ifdef":["VERSION_US", "VERSION_SH"]}
|
||||
{"name":"bitdw", "ifdef":["VERSION_US", "VERSION_SH", "VERSION_CN"]}
|
||||
]
|
||||
}
|
||||
|
|
9712
bin/segment2.c
9712
bin/segment2.c
File diff suppressed because it is too large
Load diff
|
@ -71,6 +71,50 @@ const Gfx title_screen_bg_dl_0A000190[] = {
|
|||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
#if defined(VERSION_CN)
|
||||
|
||||
// 0x0A0001C0
|
||||
ALIGNED8 static const Texture title_texture_0A0001C0[] = {
|
||||
#include "textures/title_screen_bg/title_screen_bg_ique.001C0.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0A000E40
|
||||
ALIGNED8 static const Texture title_texture_0A000E40[] = {
|
||||
#include "textures/title_screen_bg/title_screen_bg_ique.00E40.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0A001AC0
|
||||
ALIGNED8 static const Texture title_texture_0A001AC0[] = {
|
||||
#include "textures/title_screen_bg/title_screen_bg_ique.01AC0.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0A002740
|
||||
ALIGNED8 static const Texture title_texture_0A002740[] = {
|
||||
#include "textures/title_screen_bg/title_screen_bg_ique.02740.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0A0033C0
|
||||
ALIGNED8 static const Texture title_texture_0A0033C0[] = {
|
||||
#include "textures/title_screen_bg/title_screen_bg_ique.033C0.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0A004040
|
||||
ALIGNED8 static const Texture title_texture_0A004040[] = {
|
||||
#include "textures/title_screen_bg/title_screen_bg_ique.04040.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0A004CC0
|
||||
ALIGNED8 static const Texture title_texture_0A004CC0[] = {
|
||||
#include "textures/title_screen_bg/title_screen_bg_ique.04CC0.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0A005940
|
||||
ALIGNED8 static const Texture title_texture_0A005940[] = {
|
||||
#include "textures/title_screen_bg/title_screen_bg_ique.05940.rgba16.inc.c"
|
||||
};
|
||||
|
||||
#else
|
||||
|
||||
// 0x0A0001C0
|
||||
ALIGNED8 static const Texture title_texture_0A0001C0[] = {
|
||||
#include "textures/title_screen_bg/title_screen_bg.001C0.rgba16.inc.c"
|
||||
|
@ -111,6 +155,8 @@ ALIGNED8 static const Texture title_texture_0A005940[] = {
|
|||
#include "textures/title_screen_bg/title_screen_bg.05940.rgba16.inc.c"
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
// 0x0A0065C0
|
||||
const Texture *const mario_title_texture_table[] = {
|
||||
title_texture_0A0001C0, title_texture_0A000E40, title_texture_0A001AC0, title_texture_0A002740,
|
||||
|
@ -123,7 +169,7 @@ const Texture *const game_over_texture_table[] = {
|
|||
|
||||
UNUSED static const u64 title_screen_bg_unused_0 = 0;
|
||||
|
||||
#ifdef VERSION_SH
|
||||
#if defined(VERSION_SH) || defined(VERSION_CN)
|
||||
const Gfx title_screen_bg_dl_0A0065E8[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCycleType(G_CYC_COPY),
|
||||
|
|
1673
charmap.txt
1673
charmap.txt
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
|||
# Menu HUD chars, only used in JP
|
||||
# Char values used by text_menu_strings.h.in
|
||||
// Menu HUD chars, only used in JP
|
||||
// Char values used by text_menu_strings.h.in
|
||||
'フ' = 0x00
|
||||
'ァ' = 0x01
|
||||
'イ' = 0x02
|
||||
|
|
|
@ -418,7 +418,7 @@ const BehaviorScript bhvPoleGrabbing[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvThiHugeIslandTop[] = {
|
||||
const BehaviorScript bhvTHIHugeIslandTop[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
LOAD_COLLISION_DATA(thi_seg7_collision_top_trap),
|
||||
|
@ -427,7 +427,7 @@ const BehaviorScript bhvThiHugeIslandTop[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvThiTinyIslandTop[] = {
|
||||
const BehaviorScript bhvTHITinyIslandTop[] = {
|
||||
BEGIN(OBJ_LIST_DEFAULT),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
BEGIN_LOOP(),
|
||||
|
@ -724,13 +724,13 @@ const BehaviorScript bhvBulletBillCannon[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvWfBreakableWallRight[] = {
|
||||
const BehaviorScript bhvWFBreakableWallRight[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
LOAD_COLLISION_DATA(wf_seg7_collision_breakable_wall),
|
||||
GOTO(bhvWfBreakableWallLeft + 1 + 2),
|
||||
GOTO(bhvWFBreakableWallLeft + 1 + 2),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvWfBreakableWallLeft[] = {
|
||||
const BehaviorScript bhvWFBreakableWallLeft[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
LOAD_COLLISION_DATA(wf_seg7_collision_breakable_wall_2),
|
||||
// WF breakable walls - common:
|
||||
|
@ -773,7 +773,7 @@ const BehaviorScript bhvRotatingCounterClockwise[] = {
|
|||
BREAK(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvWfRotatingWoodenPlatform[] = {
|
||||
const BehaviorScript bhvWFRotatingWoodenPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
LOAD_COLLISION_DATA(wf_seg7_collision_clocklike_rotation),
|
||||
|
@ -853,7 +853,7 @@ const BehaviorScript bhvWhitePuffExplosion[] = {
|
|||
const BehaviorScript bhvSpawnedStar[] = {
|
||||
BEGIN(OBJ_LIST_LEVEL),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
SET_INT(oBehParams2ndByte, 1),
|
||||
SET_INT(oBhvParams2ndByte, 1),
|
||||
GOTO(bhvSpawnedStarNoLevelExit + 1 + 1),
|
||||
};
|
||||
|
||||
|
@ -868,20 +868,20 @@ const BehaviorScript bhvSpawnedStarNoLevelExit[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvMrIBlueCoin[] = {
|
||||
const BehaviorScript bhvSpawnedBlueCoin[] = {
|
||||
BEGIN(OBJ_LIST_LEVEL),
|
||||
SET_INT(oInteractType, INTERACT_COIN),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
BILLBOARD(),
|
||||
SET_INT(oIntangibleTimer, 0),
|
||||
SET_FLOAT(oCoinUnk110, 20),
|
||||
SET_FLOAT(oCoinBaseVelY, 20),
|
||||
SET_INT(oAnimState, -1),
|
||||
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ -70, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
|
||||
CALL_NATIVE(bhv_coin_init),
|
||||
CALL_NATIVE(bhv_spawned_coin_init),
|
||||
SET_INT(oDamageOrCoinValue, 5),
|
||||
SET_HITBOX(/*Radius*/ 120, /*Height*/ 64),
|
||||
BEGIN_LOOP(),
|
||||
CALL_NATIVE(bhv_coin_loop),
|
||||
CALL_NATIVE(bhv_spawned_coin_loop),
|
||||
ADD_INT(oAnimState, 1),
|
||||
END_LOOP(),
|
||||
};
|
||||
|
@ -920,7 +920,7 @@ const BehaviorScript bhvCoinFormation[] = {
|
|||
|
||||
const BehaviorScript bhvOneCoin[] = {
|
||||
BEGIN(OBJ_LIST_LEVEL),
|
||||
SET_INT(oBehParams2ndByte, 1),
|
||||
SET_INT(oBhvParams2ndByte, 1),
|
||||
GOTO(bhvYellowCoin + 1),
|
||||
};
|
||||
|
||||
|
@ -967,10 +967,10 @@ const BehaviorScript bhvSingleCoinGetsSpawned[] = {
|
|||
BEGIN(OBJ_LIST_LEVEL),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
BILLBOARD(),
|
||||
CALL_NATIVE(bhv_coin_init),
|
||||
CALL_NATIVE(bhv_spawned_coin_init),
|
||||
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ -70, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
|
||||
BEGIN_LOOP(),
|
||||
CALL_NATIVE(bhv_coin_loop),
|
||||
CALL_NATIVE(bhv_spawned_coin_loop),
|
||||
ADD_INT(oAnimState, 1),
|
||||
END_LOOP(),
|
||||
};
|
||||
|
@ -1096,7 +1096,7 @@ const BehaviorScript bhvGrindel[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvThwomp2[] = {
|
||||
const BehaviorScript bhvThwomp[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
LOAD_COLLISION_DATA(thwomp_seg5_collision_0500B92C),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
|
@ -1111,7 +1111,7 @@ const BehaviorScript bhvThwomp2[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvThwomp[] = {
|
||||
const BehaviorScript bhvThwomp2[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
LOAD_COLLISION_DATA(thwomp_seg5_collision_0500B7D0),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
|
@ -1136,7 +1136,7 @@ const BehaviorScript bhvTumblingBridgePlatform[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvWfTumblingBridge[] = {
|
||||
const BehaviorScript bhvTumblingBridge[] = {
|
||||
BEGIN(OBJ_LIST_SPAWNER),
|
||||
OR_INT(oFlags, (OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
SET_HOME(),
|
||||
|
@ -1145,21 +1145,21 @@ const BehaviorScript bhvWfTumblingBridge[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvBbhTumblingBridge[] = {
|
||||
const BehaviorScript bhvBBHTumblingBridge[] = {
|
||||
BEGIN(OBJ_LIST_SPAWNER),
|
||||
OR_INT(oFlags, (OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
SET_HOME(),
|
||||
SET_INT(oBehParams2ndByte, 1),
|
||||
SET_INT(oBhvParams2ndByte, TUMBLING_BRIDGE_BP_BBH),
|
||||
BEGIN_LOOP(),
|
||||
CALL_NATIVE(bhv_tumbling_bridge_loop),
|
||||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllTumblingBridge[] = {
|
||||
const BehaviorScript bhvLLLTumblingBridge[] = {
|
||||
BEGIN(OBJ_LIST_SPAWNER),
|
||||
OR_INT(oFlags, (OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
SET_HOME(),
|
||||
SET_INT(oBehParams2ndByte, 2),
|
||||
SET_INT(oBhvParams2ndByte, TUMBLING_BRIDGE_BP_LLL),
|
||||
BEGIN_LOOP(),
|
||||
CALL_NATIVE(bhv_tumbling_bridge_loop),
|
||||
END_LOOP(),
|
||||
|
@ -1193,7 +1193,7 @@ const BehaviorScript bhvAnotherElavator[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvRrElevatorPlatform[] = {
|
||||
const BehaviorScript bhvRRElevatorPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(rr_seg7_collision_elevator_platform),
|
||||
|
@ -1205,7 +1205,7 @@ const BehaviorScript bhvRrElevatorPlatform[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvHmcElevatorPlatform[] = {
|
||||
const BehaviorScript bhvHMCElevatorPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(hmc_seg7_collision_elevator),
|
||||
|
@ -1375,7 +1375,7 @@ const BehaviorScript bhvUkikiCage[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvBitfsSinkingPlatforms[] = {
|
||||
const BehaviorScript bhvBitFSSinkingPlatforms[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
LOAD_COLLISION_DATA(bitfs_seg7_collision_sinking_platform),
|
||||
|
@ -1386,19 +1386,19 @@ const BehaviorScript bhvBitfsSinkingPlatforms[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvBitfsSinkingCagePlatform[] = {
|
||||
const BehaviorScript bhvBitFSSinkingCagePlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
LOAD_COLLISION_DATA(bitfs_seg7_collision_sinking_cage_platform),
|
||||
SET_HOME(),
|
||||
SPAWN_CHILD(/*Model*/ MODEL_BITFS_BLUE_POLE, /*Behavior*/ bhvDddMovingPole),
|
||||
SPAWN_CHILD(/*Model*/ MODEL_BITFS_BLUE_POLE, /*Behavior*/ bhvDDDMovingPole),
|
||||
BEGIN_LOOP(),
|
||||
CALL_NATIVE(bhv_bitfs_sinking_cage_platform_loop),
|
||||
CALL_NATIVE(load_object_collision_model),
|
||||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvDddMovingPole[] = {
|
||||
const BehaviorScript bhvDDDMovingPole[] = {
|
||||
BEGIN(OBJ_LIST_POLELIKE),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
SET_INT(oInteractType, INTERACT_POLE),
|
||||
|
@ -1410,7 +1410,7 @@ const BehaviorScript bhvDddMovingPole[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvBitfsTiltingInvertedPyramid[] = {
|
||||
const BehaviorScript bhvBitFSTiltingInvertedPyramid[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(bitfs_seg7_collision_inverted_pyramid),
|
||||
|
@ -1457,7 +1457,7 @@ const BehaviorScript bhvBetaMovingFlames[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvRrRotatingBridgePlatform[] = {
|
||||
const BehaviorScript bhvRRRotatingBridgePlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(rr_seg7_collision_rotating_platform_with_fire),
|
||||
|
@ -1607,7 +1607,7 @@ const BehaviorScript bhvTowerPlatformGroup[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvWfSlidingTowerPlatform[] = {
|
||||
const BehaviorScript bhvWFSlidingTowerPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(wf_seg7_collision_platform),
|
||||
|
@ -1617,7 +1617,7 @@ const BehaviorScript bhvWfSlidingTowerPlatform[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvWfElevatorTowerPlatform[] = {
|
||||
const BehaviorScript bhvWFElevatorTowerPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(wf_seg7_collision_platform),
|
||||
|
@ -1627,7 +1627,7 @@ const BehaviorScript bhvWfElevatorTowerPlatform[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvWfSolidTowerPlatform[] = {
|
||||
const BehaviorScript bhvWFSolidTowerPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(wf_seg7_collision_platform),
|
||||
|
@ -1704,7 +1704,7 @@ const BehaviorScript bhvPiranhaPlantWakingBubbles[] = {
|
|||
|
||||
const BehaviorScript bhvFloorSwitchAnimatesObject[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
SET_INT(oBehParams2ndByte, 1),
|
||||
SET_INT(oBhvParams2ndByte, 1),
|
||||
GOTO(bhvFloorSwitchHardcodedModel + 1),
|
||||
};
|
||||
|
||||
|
@ -1726,7 +1726,7 @@ const BehaviorScript bhvFloorSwitchHardcodedModel[] = {
|
|||
|
||||
const BehaviorScript bhvFloorSwitchHiddenObjects[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
SET_INT(oBehParams2ndByte, 2),
|
||||
SET_INT(oBhvParams2ndByte, 2),
|
||||
GOTO(bhvFloorSwitchHardcodedModel + 1),
|
||||
};
|
||||
|
||||
|
@ -1791,7 +1791,7 @@ const BehaviorScript bhvHeaveHoThrowMario[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvCcmTouchedStarSpawn[] = {
|
||||
const BehaviorScript bhvCCMTouchedStarSpawn[] = {
|
||||
BEGIN(OBJ_LIST_LEVEL),
|
||||
OR_INT(oFlags, (OBJ_FLAG_PERSISTENT_RESPAWN | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
SET_HITBOX(/*Radius*/ 500, /*Height*/ 500),
|
||||
|
@ -2185,7 +2185,7 @@ const BehaviorScript bhvWaterLevelPillar[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvDddWarp[] = {
|
||||
const BehaviorScript bhvDDDWarp[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
SET_FLOAT(oCollisionDistance, 30000),
|
||||
|
@ -2246,7 +2246,7 @@ const BehaviorScript bhvStub1D0C[] = {
|
|||
DEACTIVATE(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllRotatingHexagonalPlatform[] = {
|
||||
const BehaviorScript bhvLLLRotatingHexagonalPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(lll_seg7_collision_hexagonal_platform),
|
||||
|
@ -2258,7 +2258,7 @@ const BehaviorScript bhvLllRotatingHexagonalPlatform[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllSinkingRockBlock[] = {
|
||||
const BehaviorScript bhvLLLSinkingRockBlock[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(lll_seg7_collision_floating_block),
|
||||
|
@ -2275,7 +2275,7 @@ const BehaviorScript bhvStub1D70[] = {
|
|||
BREAK(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllMovingOctagonalMeshPlatform[] = {
|
||||
const BehaviorScript bhvLLLMovingOctagonalMeshPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
ADD_FLOAT(oPosY, -50),
|
||||
|
@ -2290,7 +2290,7 @@ const BehaviorScript bhvSnowBall[] = {
|
|||
BREAK(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllRotatingBlockWithFireBars[] = {
|
||||
const BehaviorScript bhvLLLRotatingBlockWithFireBars[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(lll_seg7_collision_rotating_fire_bars),
|
||||
|
@ -2300,7 +2300,7 @@ const BehaviorScript bhvLllRotatingBlockWithFireBars[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllRotatingHexFlame[] = {
|
||||
const BehaviorScript bhvLLLRotatingHexFlame[] = {
|
||||
BEGIN(OBJ_LIST_LEVEL),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
SET_INTERACT_TYPE(INTERACT_FLAME),
|
||||
|
@ -2313,7 +2313,7 @@ const BehaviorScript bhvLllRotatingHexFlame[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllWoodPiece[] = {
|
||||
const BehaviorScript bhvLLLWoodPiece[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(lll_seg7_collision_wood_piece),
|
||||
|
@ -2324,7 +2324,7 @@ const BehaviorScript bhvLllWoodPiece[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllFloatingWoodBridge[] = {
|
||||
const BehaviorScript bhvLLLFloatingWoodBridge[] = {
|
||||
BEGIN(OBJ_LIST_DEFAULT),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
SET_MODEL(MODEL_NONE),
|
||||
|
@ -2343,7 +2343,7 @@ const BehaviorScript bhvVolcanoFlames[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllRotatingHexagonalRing[] = {
|
||||
const BehaviorScript bhvLLLRotatingHexagonalRing[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(lll_seg7_collision_rotating_platform),
|
||||
|
@ -2353,7 +2353,7 @@ const BehaviorScript bhvLllRotatingHexagonalRing[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllSinkingRectangularPlatform[] = {
|
||||
const BehaviorScript bhvLLLSinkingRectangularPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(lll_seg7_collision_slow_tilting_platform),
|
||||
|
@ -2365,7 +2365,7 @@ const BehaviorScript bhvLllSinkingRectangularPlatform[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllSinkingSquarePlatforms[] = {
|
||||
const BehaviorScript bhvLLLSinkingSquarePlatforms[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(lll_seg7_collision_sinking_pyramids),
|
||||
|
@ -2378,7 +2378,7 @@ const BehaviorScript bhvLllSinkingSquarePlatforms[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllTiltingInvertedPyramid[] = {
|
||||
const BehaviorScript bhvLLLTiltingInvertedPyramid[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(lll_seg7_collision_inverted_pyramid),
|
||||
|
@ -2448,7 +2448,7 @@ const BehaviorScript bhvPiranhaPlant[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllHexagonalMesh[] = {
|
||||
const BehaviorScript bhvLLLHexagonalMesh[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
LOAD_COLLISION_DATA(lll_hexagonal_mesh_seg3_collision_0301CECC),
|
||||
|
@ -2457,7 +2457,7 @@ const BehaviorScript bhvLllHexagonalMesh[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllBowserPuzzlePiece[] = {
|
||||
const BehaviorScript bhvLLLBowserPuzzlePiece[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(lll_seg7_collision_puzzle_piece),
|
||||
|
@ -2469,7 +2469,7 @@ const BehaviorScript bhvLllBowserPuzzlePiece[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllBowserPuzzle[] = {
|
||||
const BehaviorScript bhvLLLBowserPuzzle[] = {
|
||||
BEGIN(OBJ_LIST_SPAWNER),
|
||||
DISABLE_RENDERING(),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
|
@ -2523,13 +2523,13 @@ const BehaviorScript bhvSmallPenguin[] = {
|
|||
|
||||
const BehaviorScript bhvManyBlueFishSpawner[] = {
|
||||
BEGIN(OBJ_LIST_DEFAULT),
|
||||
SET_INT(oBehParams2ndByte, 0),
|
||||
SET_INT(oBhvParams2ndByte, FISH_SPAWNER_BP_MANY_BLUE),
|
||||
GOTO(bhvFishSpawner + 1),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvFewBlueFishSpawner[] = {
|
||||
BEGIN(OBJ_LIST_DEFAULT),
|
||||
SET_INT(oBehParams2ndByte, 1),
|
||||
SET_INT(oBhvParams2ndByte, FISH_SPAWNER_BP_FEW_BLUE),
|
||||
GOTO(bhvFishSpawner + 1),
|
||||
};
|
||||
|
||||
|
@ -2552,7 +2552,7 @@ const BehaviorScript bhvFish[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvWdwExpressElevator[] = {
|
||||
const BehaviorScript bhvWDWExpressElevator[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(wdw_seg7_collision_express_elevator_platform),
|
||||
|
@ -2563,7 +2563,7 @@ const BehaviorScript bhvWdwExpressElevator[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvWdwExpressElevatorPlatform[] = {
|
||||
const BehaviorScript bhvWDWExpressElevatorPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(wdw_seg7_collision_express_elevator_platform),
|
||||
|
@ -2691,7 +2691,7 @@ const BehaviorScript bhvSushiSharkCollisionChild[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvJrbSlidingBox[] = {
|
||||
const BehaviorScript bhvJRBSlidingBox[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
LOAD_COLLISION_DATA(jrb_seg7_collision_floating_box),
|
||||
|
@ -2815,7 +2815,7 @@ const BehaviorScript bhvWhitePuffSmoke2[] = {
|
|||
|
||||
const BehaviorScript bhvPurpleSwitchHiddenBoxes[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
SET_INT(oBehParams2ndByte, 2),
|
||||
SET_INT(oBhvParams2ndByte, 2),
|
||||
GOTO(bhvFloorSwitchHardcodedModel + 1),
|
||||
};
|
||||
|
||||
|
@ -2948,14 +2948,14 @@ const BehaviorScript bhvBooWithCage[] = {
|
|||
|
||||
const BehaviorScript bhvBalconyBigBoo[] = {
|
||||
BEGIN(OBJ_LIST_GENACTOR),
|
||||
SET_INT(oBehParams2ndByte, 2),
|
||||
SET_INT(oBhvParams2ndByte, BIG_BOO_BP_BALCONY),
|
||||
SET_INT(oBigBooNumMinionBoosKilled, 10),
|
||||
GOTO(bhvGhostHuntBigBoo + 1),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvMerryGoRoundBigBoo[] = {
|
||||
BEGIN(OBJ_LIST_GENACTOR),
|
||||
SET_INT(oBehParams2ndByte, 1),
|
||||
SET_INT(oBhvParams2ndByte, BIG_BOO_BP_MERRY_GO_ROUND),
|
||||
// Set number of minion boos killed to 10, which is greater than 5 so that the boo always loads without needing to kill any boos.
|
||||
SET_INT(oBigBooNumMinionBoosKilled, 10),
|
||||
GOTO(bhvGhostHuntBigBoo + 1),
|
||||
|
@ -2983,13 +2983,13 @@ const BehaviorScript bhvCourtyardBooTriplet[] = {
|
|||
|
||||
const BehaviorScript bhvBoo[] = {
|
||||
BEGIN(OBJ_LIST_GENACTOR),
|
||||
SET_INT(oBehParams2ndByte, 1),
|
||||
SET_INT(oBhvParams2ndByte, BOO_BP_GENERIC),
|
||||
GOTO(bhvGhostHuntBoo + 1),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvMerryGoRoundBoo[] = {
|
||||
BEGIN(OBJ_LIST_GENACTOR),
|
||||
SET_INT(oBehParams2ndByte, 2),
|
||||
SET_INT(oBhvParams2ndByte, BOO_BP_MERRY_GO_ROUND),
|
||||
GOTO(bhvGhostHuntBoo + 1),
|
||||
};
|
||||
|
||||
|
@ -3037,7 +3037,7 @@ const BehaviorScript bhvBooStaircase[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvBbhTiltingTrapPlatform[] = {
|
||||
const BehaviorScript bhvBBHTiltingTrapPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(bbh_seg7_collision_tilt_floor_platform),
|
||||
|
@ -3067,7 +3067,7 @@ const BehaviorScript bhvMeshElevator[] = {
|
|||
LOAD_COLLISION_DATA(bbh_seg7_collision_mesh_elevator),
|
||||
SET_HOME(),
|
||||
SET_INT(oRoom, 12),
|
||||
SET_INT(oBehParams2ndByte, 4),
|
||||
SET_INT(oBhvParams2ndByte, 4),
|
||||
CALL_NATIVE(bhv_elevator_init),
|
||||
BEGIN_LOOP(),
|
||||
CALL_NATIVE(bhv_elevator_loop),
|
||||
|
@ -3253,7 +3253,7 @@ const BehaviorScript bhvScuttlebugSpawn[] = {
|
|||
|
||||
const BehaviorScript bhvWhompKingBoss[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
SET_INT(oBehParams2ndByte, 1),
|
||||
SET_INT(oBhvParams2ndByte, WHOMP_BP_KING),
|
||||
SET_INT(oHealth, 3),
|
||||
GOTO(bhvSmallWhomp + 1 + 1),
|
||||
};
|
||||
|
@ -3764,7 +3764,7 @@ const BehaviorScript bhvBobombBuddy[] = {
|
|||
DROP_TO_FLOOR(),
|
||||
SET_HITBOX(/*Radius*/ 100, /*Height*/ 60),
|
||||
ANIMATE(0),
|
||||
SET_INT(oBobombBuddyRole, 0),
|
||||
SET_INT(oBobombBuddyRole, BOBOMB_BUDDY_ROLE_ADVICE),
|
||||
SET_HOME(),
|
||||
CALL_NATIVE(bhv_bobomb_buddy_init),
|
||||
BEGIN_LOOP(),
|
||||
|
@ -3782,7 +3782,7 @@ const BehaviorScript bhvBobombBuddyOpensCannon[] = {
|
|||
DROP_TO_FLOOR(),
|
||||
SET_HITBOX(/*Radius*/ 100, /*Height*/ 60),
|
||||
ANIMATE(0),
|
||||
SET_INT(oBobombBuddyRole, 1),
|
||||
SET_INT(oBobombBuddyRole, BOBOMB_BUDDY_ROLE_CANNON),
|
||||
SET_HOME(),
|
||||
CALL_NATIVE(bhv_bobomb_buddy_init),
|
||||
BEGIN_LOOP(),
|
||||
|
@ -4091,7 +4091,7 @@ const BehaviorScript bhvSmallChillBully[] = {
|
|||
LOAD_ANIMATIONS(oAnimations, chilly_chief_seg6_anims_06003994),
|
||||
DROP_TO_FLOOR(),
|
||||
SET_HOME(),
|
||||
SET_INT(oBullySubtype, 0x0010),
|
||||
SET_INT(oBullySubtype, BULLY_STYPE_CHILL),
|
||||
CALL_NATIVE(bhv_small_bully_init),
|
||||
BEGIN_LOOP(),
|
||||
SET_INT(oIntangibleTimer, 0),
|
||||
|
@ -4105,7 +4105,7 @@ const BehaviorScript bhvBigChillBully[] = {
|
|||
LOAD_ANIMATIONS(oAnimations, chilly_chief_seg6_anims_06003994),
|
||||
DROP_TO_FLOOR(),
|
||||
SET_HOME(),
|
||||
SET_INT(oBullySubtype, 0x0010),
|
||||
SET_INT(oBullySubtype, BULLY_STYPE_CHILL),
|
||||
CALL_NATIVE(bhv_big_bully_init),
|
||||
BEGIN_LOOP(),
|
||||
SET_INT(oIntangibleTimer, 0),
|
||||
|
@ -4223,7 +4223,7 @@ const BehaviorScript bhvStarKeyCollectionPuffSpawner[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllDrawbridgeSpawner[] = {
|
||||
const BehaviorScript bhvLLLDrawbridgeSpawner[] = {
|
||||
BEGIN(OBJ_LIST_DEFAULT),
|
||||
HIDE(),
|
||||
BEGIN_LOOP(),
|
||||
|
@ -4231,7 +4231,7 @@ const BehaviorScript bhvLllDrawbridgeSpawner[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllDrawbridge[] = {
|
||||
const BehaviorScript bhvLLLDrawbridge[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(lll_seg7_collision_drawbridge),
|
||||
|
@ -4263,7 +4263,7 @@ const BehaviorScript bhvLargeBomp[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvWfSlidingPlatform[] = {
|
||||
const BehaviorScript bhvWFSlidingPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_MOVE_XZ_USING_FVEL | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(wf_seg7_collision_sliding_brick_platform),
|
||||
|
@ -4334,7 +4334,7 @@ const BehaviorScript bhvBowlingBall[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvTtmBowlingBallSpawner[] = {
|
||||
const BehaviorScript bhvTTMBowlingBallSpawner[] = {
|
||||
BEGIN(OBJ_LIST_GENACTOR),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
SET_INT(oBBallSpawnerPeriodMinus1, 63),
|
||||
|
@ -4344,7 +4344,7 @@ const BehaviorScript bhvTtmBowlingBallSpawner[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvBobBowlingBallSpawner[] = {
|
||||
const BehaviorScript bhvBoBBowlingBallSpawner[] = {
|
||||
BEGIN(OBJ_LIST_GENACTOR),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
SET_INT(oBBallSpawnerPeriodMinus1, 127),
|
||||
|
@ -4354,7 +4354,7 @@ const BehaviorScript bhvBobBowlingBallSpawner[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvThiBowlingBallSpawner[] = {
|
||||
const BehaviorScript bhvTHIBowlingBallSpawner[] = {
|
||||
BEGIN(OBJ_LIST_GENACTOR),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
BEGIN_LOOP(),
|
||||
|
@ -4362,7 +4362,7 @@ const BehaviorScript bhvThiBowlingBallSpawner[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvRrCruiserWing[] = {
|
||||
const BehaviorScript bhvRRCruiserWing[] = {
|
||||
BEGIN(OBJ_LIST_DEFAULT),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
CALL_NATIVE(bhv_rr_cruiser_wing_init),
|
||||
|
@ -4382,7 +4382,7 @@ const BehaviorScript bhvSpindel[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvSslMovingPyramidWall[] = {
|
||||
const BehaviorScript bhvSSLMovingPyramidWall[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_ANGLE_TO_MOVE_ANGLE | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(ssl_seg7_collision_0702808C),
|
||||
|
@ -4671,7 +4671,7 @@ const BehaviorScript bhvHiddenStarTrigger[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvTtmRollingLog[] = {
|
||||
const BehaviorScript bhvTTMRollingLog[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
LOAD_COLLISION_DATA(ttm_seg7_collision_pitoune_2),
|
||||
|
@ -4684,7 +4684,7 @@ const BehaviorScript bhvTtmRollingLog[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllVolcanoFallingTrap[] = {
|
||||
const BehaviorScript bhvLLLVolcanoFallingTrap[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
LOAD_COLLISION_DATA(lll_seg7_collision_falling_wall),
|
||||
|
@ -4695,7 +4695,7 @@ const BehaviorScript bhvLllVolcanoFallingTrap[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvLllRollingLog[] = {
|
||||
const BehaviorScript bhvLLLRollingLog[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
LOAD_COLLISION_DATA(lll_seg7_collision_pitoune),
|
||||
|
@ -4708,7 +4708,7 @@ const BehaviorScript bhvLllRollingLog[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhv1upWalking[] = {
|
||||
const BehaviorScript bhv1UpWalking[] = {
|
||||
BEGIN(OBJ_LIST_LEVEL),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
BILLBOARD(),
|
||||
|
@ -4720,7 +4720,7 @@ const BehaviorScript bhv1upWalking[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhv1upRunningAway[] = {
|
||||
const BehaviorScript bhv1UpRunningAway[] = {
|
||||
BEGIN(OBJ_LIST_LEVEL),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
BILLBOARD(),
|
||||
|
@ -4732,7 +4732,7 @@ const BehaviorScript bhv1upRunningAway[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhv1upSliding[] = {
|
||||
const BehaviorScript bhv1UpSliding[] = {
|
||||
BEGIN(OBJ_LIST_LEVEL),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
BILLBOARD(),
|
||||
|
@ -4758,7 +4758,7 @@ const BehaviorScript bhv1Up[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhv1upJumpOnApproach[] = {
|
||||
const BehaviorScript bhv1UpJumpOnApproach[] = {
|
||||
BEGIN(OBJ_LIST_LEVEL),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
BILLBOARD(),
|
||||
|
@ -4771,7 +4771,7 @@ const BehaviorScript bhv1upJumpOnApproach[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvHidden1up[] = {
|
||||
const BehaviorScript bhvHidden1Up[] = {
|
||||
BEGIN(OBJ_LIST_LEVEL),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
BILLBOARD(),
|
||||
|
@ -4784,7 +4784,7 @@ const BehaviorScript bhvHidden1up[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvHidden1upTrigger[] = {
|
||||
const BehaviorScript bhvHidden1UpTrigger[] = {
|
||||
BEGIN(OBJ_LIST_LEVEL),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
SET_HITBOX(/*Radius*/ 100, /*Height*/ 100),
|
||||
|
@ -4794,7 +4794,7 @@ const BehaviorScript bhvHidden1upTrigger[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvHidden1upInPole[] = {
|
||||
const BehaviorScript bhvHidden1UpInPole[] = {
|
||||
BEGIN(OBJ_LIST_LEVEL),
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
BILLBOARD(),
|
||||
|
@ -4807,7 +4807,7 @@ const BehaviorScript bhvHidden1upInPole[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvHidden1upInPoleTrigger[] = {
|
||||
const BehaviorScript bhvHidden1UpInPoleTrigger[] = {
|
||||
BEGIN(OBJ_LIST_LEVEL),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
SET_HITBOX(/*Radius*/ 100, /*Height*/ 100),
|
||||
|
@ -4817,7 +4817,7 @@ const BehaviorScript bhvHidden1upInPoleTrigger[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvHidden1upInPoleSpawner[] = {
|
||||
const BehaviorScript bhvHidden1UpInPoleSpawner[] = {
|
||||
BEGIN(OBJ_LIST_LEVEL),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
BEGIN_LOOP(),
|
||||
|
@ -4877,7 +4877,7 @@ const BehaviorScript bhvSnowMoundSpawn[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvWdwSquareFloatingPlatform[] = {
|
||||
const BehaviorScript bhvWDWSquareFloatingPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(wdw_seg7_collision_square_floating_platform),
|
||||
|
@ -4889,7 +4889,7 @@ const BehaviorScript bhvWdwSquareFloatingPlatform[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvWdwRectangularFloatingPlatform[] = {
|
||||
const BehaviorScript bhvWDWRectangularFloatingPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(wdw_seg7_collision_rect_floating_platform),
|
||||
|
@ -4901,7 +4901,7 @@ const BehaviorScript bhvWdwRectangularFloatingPlatform[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvJrbFloatingPlatform[] = {
|
||||
const BehaviorScript bhvJRBFloatingPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(jrb_seg7_collision_floating_platform),
|
||||
|
@ -4976,7 +4976,7 @@ const BehaviorScript bhvPillarBase[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvJrbFloatingBox[] = {
|
||||
const BehaviorScript bhvJRBFloatingBox[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
LOAD_COLLISION_DATA(jrb_seg7_collision_floating_box),
|
||||
|
@ -5006,7 +5006,7 @@ const BehaviorScript bhvTreasureChestsShip[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvTreasureChestsJrb[] = {
|
||||
const BehaviorScript bhvTreasureChestsJRB[] = {
|
||||
BEGIN(OBJ_LIST_DEFAULT),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
DROP_TO_FLOOR(),
|
||||
|
@ -5016,13 +5016,13 @@ const BehaviorScript bhvTreasureChestsJrb[] = {
|
|||
END_LOOP(),
|
||||
};
|
||||
|
||||
const BehaviorScript bhvTreasureChests[] = {
|
||||
const BehaviorScript bhvTreasureChestsDDD[] = {
|
||||
BEGIN(OBJ_LIST_DEFAULT),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
DROP_TO_FLOOR(),
|
||||
CALL_NATIVE(bhv_treasure_chest_init),
|
||||
CALL_NATIVE(bhv_treasure_chest_ddd_init),
|
||||
BEGIN_LOOP(),
|
||||
CALL_NATIVE(bhv_treasure_chest_loop),
|
||||
CALL_NATIVE(bhv_treasure_chest_ddd_loop),
|
||||
END_LOOP(),
|
||||
};
|
||||
|
||||
|
|
|
@ -10,6 +10,8 @@ def add_custom_arguments(parser):
|
|||
help="Set version to EU.")
|
||||
group.add_argument('-s', dest='lang', action='store_const', const='sh',
|
||||
help="Set version to SH.")
|
||||
group.add_argument('-c', dest='lang', action='store_const', const='cn',
|
||||
help="Set version to CN.")
|
||||
|
||||
def apply(config, args):
|
||||
lang = args.lang or 'us'
|
||||
|
|
|
@ -158,7 +158,7 @@ index 00000000..033bf952
|
|||
+ jr $k0 // run the original handler
|
||||
+ nop
|
||||
diff --git a/lib/asm/__osExceptionPreamble.s b/lib/asm/__osExceptionPreamble.s
|
||||
index c3b97993..c552a485 100644
|
||||
index 4e841ea0..ab0c7d13 100644
|
||||
--- a/lib/asm/__osExceptionPreamble.s
|
||||
+++ b/lib/asm/__osExceptionPreamble.s
|
||||
@@ -11,8 +11,8 @@
|
||||
|
@ -173,7 +173,7 @@ index c3b97993..c552a485 100644
|
|||
nop
|
||||
|
||||
diff --git a/sm64.ld b/sm64.ld
|
||||
index 7d9b5b4a..c7bb81b9 100755
|
||||
index da9bc4dd..25ac57e8 100755
|
||||
--- a/sm64.ld
|
||||
+++ b/sm64.ld
|
||||
@@ -117,6 +117,7 @@ SECTIONS
|
||||
|
|
|
@ -1,312 +0,0 @@
|
|||
diff --git a/include/PR/console_type.h b/include/PR/console_type.h
|
||||
new file mode 100644
|
||||
index 00000000..e60550ab
|
||||
--- /dev/null
|
||||
+++ b/include/PR/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/lib/asm/skGetId.s b/lib/asm/skGetId.s
|
||||
new file mode 100644
|
||||
index 00000000..58e7d4f9
|
||||
--- /dev/null
|
||||
+++ b/lib/asm/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/lib/src/__osViSwapContext.c b/lib/src/__osViSwapContext.c
|
||||
index 990cb11f..22756e91 100644
|
||||
--- a/lib/src/__osViSwapContext.c
|
||||
+++ b/lib/src/__osViSwapContext.c
|
||||
@@ -54,7 +54,9 @@ void __osViSwapContext() {
|
||||
HW_REG(VI_INTR_REG, u32) = s0->fldRegs[field].vIntr;
|
||||
HW_REG(VI_X_SCALE_REG, u32) = s1->unk20;
|
||||
HW_REG(VI_Y_SCALE_REG, u32) = s1->unk2c;
|
||||
- HW_REG(VI_CONTROL_REG, u32) = s1->features;
|
||||
+ /* Make sure bit 13 is cleared. Otherwise, graphics will be corrupted on
|
||||
+ * iQue Player. This has no effect on N64. */
|
||||
+ HW_REG(VI_CONTROL_REG, u32) = s1->features & ~(1 << 13);
|
||||
__osViNext = __osViCurr;
|
||||
__osViCurr = s1;
|
||||
*__osViNext = *__osViCurr;
|
||||
diff --git a/lib/src/consoleType.c b/lib/src/consoleType.c
|
||||
new file mode 100644
|
||||
index 00000000..ef08d1ef
|
||||
--- /dev/null
|
||||
+++ b/lib/src/consoleType.c
|
||||
@@ -0,0 +1,12 @@
|
||||
+#include "libultra_internal.h"
|
||||
+#include <PR/console_type.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/lib/src/osEepromProbe.c b/lib/src/osEepromProbe.c
|
||||
index d550b846..bbaf2bcc 100644
|
||||
--- a/lib/src/osEepromProbe.c
|
||||
+++ b/lib/src/osEepromProbe.c
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "libultra_internal.h"
|
||||
+#include <PR/console_type.h>
|
||||
|
||||
// TODO: merge with osEepromWrite
|
||||
typedef struct {
|
||||
@@ -13,11 +14,23 @@ s32 osEepromProbe(OSMesgQueue *mq) {
|
||||
unkStruct sp18;
|
||||
|
||||
__osSiGetAccess();
|
||||
- status = __osEepStatus(mq, &sp18);
|
||||
- if (status == 0 && (sp18.unk00 & 0x8000) != 0) {
|
||||
- status = 1;
|
||||
- } else {
|
||||
- status = 0;
|
||||
+ if (gConsoleType == CONSOLE_N64) {
|
||||
+ status = __osEepStatus(mq, &sp18);
|
||||
+ if (status == 0 && (sp18.unk00 & 0x8000) != 0) {
|
||||
+ status = 1;
|
||||
+ } else {
|
||||
+ status = 0;
|
||||
+ }
|
||||
+ } else if (gConsoleType == CONSOLE_IQUE) {
|
||||
+ s32 __osBbEepromSize = * (s32*) 0x80000360;
|
||||
+
|
||||
+ if (__osBbEepromSize == 0x200) {
|
||||
+ status = 1;
|
||||
+ }
|
||||
+
|
||||
+ if (__osBbEepromSize == 0x800) {
|
||||
+ status = 2;
|
||||
+ }
|
||||
}
|
||||
__osSiRelAccess();
|
||||
return status;
|
||||
diff --git a/lib/src/osEepromRead.c b/lib/src/osEepromRead.c
|
||||
index ea784b2c..116dae2d 100644
|
||||
--- a/lib/src/osEepromRead.c
|
||||
+++ b/lib/src/osEepromRead.c
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "libultra_internal.h"
|
||||
+#include <PR/console_type.h>
|
||||
|
||||
extern u8 _osLastSentSiCmd;
|
||||
|
||||
@@ -42,33 +43,44 @@ s32 osEepromRead(OSMesgQueue *mq, u8 address, u8 *buffer) {
|
||||
return -1;
|
||||
}
|
||||
__osSiGetAccess();
|
||||
- sp34 = __osEepStatus(mq, &sp28);
|
||||
- if (sp34 != 0 || sp28.unk00 != 0x8000) {
|
||||
+ if (gConsoleType == CONSOLE_N64) {
|
||||
+ sp34 = __osEepStatus(mq, &sp28);
|
||||
+ if (sp34 != 0 || sp28.unk00 != 0x8000) {
|
||||
|
||||
- return 8;
|
||||
- }
|
||||
- while (sp28.unk02 & 0x80) {
|
||||
- __osEepStatus(mq, &sp28);
|
||||
- }
|
||||
- __osPackEepReadData(address);
|
||||
- sp34 = __osSiRawStartDma(OS_WRITE, &D_80365E00);
|
||||
- osRecvMesg(mq, NULL, OS_MESG_BLOCK);
|
||||
- for (sp30 = 0; sp30 < 0x10; sp30++) {
|
||||
- (D_80365E00)[sp30] = 255;
|
||||
- }
|
||||
- D_80365E3C = 0;
|
||||
- sp34 = __osSiRawStartDma(OS_READ, D_80365E00);
|
||||
- _osLastSentSiCmd = 4;
|
||||
- osRecvMesg(mq, NULL, OS_MESG_BLOCK);
|
||||
- for (sp30 = 0; sp30 < 4; sp30++) {
|
||||
- sp2c++;
|
||||
- }
|
||||
- sp20 = *(unkStruct2 *) sp2c;
|
||||
- sp34 = (sp20.unk01 & 0xc0) >> 4;
|
||||
- if (sp34 == 0) {
|
||||
- for (sp30 = 0; sp30 < 8; sp30++) {
|
||||
- *buffer++ = ((u8 *) &sp20.unk04)[sp30];
|
||||
+ return 8;
|
||||
+ }
|
||||
+ while (sp28.unk02 & 0x80) {
|
||||
+ __osEepStatus(mq, &sp28);
|
||||
+ }
|
||||
+ __osPackEepReadData(address);
|
||||
+ sp34 = __osSiRawStartDma(OS_WRITE, &D_80365E00);
|
||||
+ osRecvMesg(mq, NULL, OS_MESG_BLOCK);
|
||||
+ for (sp30 = 0; sp30 < 0x10; sp30++) {
|
||||
+ (D_80365E00)[sp30] = 255;
|
||||
}
|
||||
+ D_80365E3C = 0;
|
||||
+ sp34 = __osSiRawStartDma(OS_READ, D_80365E00);
|
||||
+ _osLastSentSiCmd = 4;
|
||||
+ osRecvMesg(mq, NULL, OS_MESG_BLOCK);
|
||||
+ for (sp30 = 0; sp30 < 4; sp30++) {
|
||||
+ sp2c++;
|
||||
+ }
|
||||
+ sp20 = *(unkStruct2 *) sp2c;
|
||||
+ sp34 = (sp20.unk01 & 0xc0) >> 4;
|
||||
+ if (sp34 == 0) {
|
||||
+ for (sp30 = 0; sp30 < 8; sp30++) {
|
||||
+ *buffer++ = ((u8 *) &sp20.unk04)[sp30];
|
||||
+ }
|
||||
+ }
|
||||
+ } else if (gConsoleType == CONSOLE_IQUE) {
|
||||
+ u8 *__osBbEepromAddress = * (u8**) 0x8000035C;
|
||||
+ s32 i;
|
||||
+
|
||||
+ for (i = 0; i < 8; i++) {
|
||||
+ buffer[i] = __osBbEepromAddress[(address << 3) + i];
|
||||
+ }
|
||||
+
|
||||
+ sp34 = 0;
|
||||
}
|
||||
__osSiRelAccess();
|
||||
return sp34;
|
||||
diff --git a/lib/src/osEepromWrite.c b/lib/src/osEepromWrite.c
|
||||
index 1a86477b..a94f8721 100644
|
||||
--- a/lib/src/osEepromWrite.c
|
||||
+++ b/lib/src/osEepromWrite.c
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "libultra_internal.h"
|
||||
#include "osContInternal.h"
|
||||
+#include <PR/console_type.h>
|
||||
|
||||
#ifndef AVOID_UB
|
||||
ALIGNED8 u32 D_80365E00[15];
|
||||
@@ -52,36 +53,47 @@ s32 osEepromWrite(OSMesgQueue *mq, u8 address, u8 *buffer) {
|
||||
}
|
||||
|
||||
__osSiGetAccess();
|
||||
- sp34 = __osEepStatus(mq, &sp1c);
|
||||
+ if (gConsoleType == CONSOLE_N64) {
|
||||
+ sp34 = __osEepStatus(mq, &sp1c);
|
||||
|
||||
- if (sp34 != 0 || sp1c.unk00 != 0x8000) {
|
||||
- return 8;
|
||||
- }
|
||||
+ if (sp34 != 0 || sp1c.unk00 != 0x8000) {
|
||||
+ return 8;
|
||||
+ }
|
||||
|
||||
- while (sp1c.unk02 & 0x80) {
|
||||
- __osEepStatus(mq, &sp1c);
|
||||
- }
|
||||
+ while (sp1c.unk02 & 0x80) {
|
||||
+ __osEepStatus(mq, &sp1c);
|
||||
+ }
|
||||
|
||||
- __osPackEepWriteData(address, buffer);
|
||||
+ __osPackEepWriteData(address, buffer);
|
||||
|
||||
- sp34 = __osSiRawStartDma(OS_WRITE, &D_80365E00);
|
||||
- osRecvMesg(mq, NULL, OS_MESG_BLOCK);
|
||||
+ sp34 = __osSiRawStartDma(OS_WRITE, &D_80365E00);
|
||||
+ osRecvMesg(mq, NULL, OS_MESG_BLOCK);
|
||||
|
||||
- for (sp30 = 0; sp30 < 0x10; sp30++) {
|
||||
- (D_80365E00)[sp30] = 255;
|
||||
- }
|
||||
+ for (sp30 = 0; sp30 < 0x10; sp30++) {
|
||||
+ (D_80365E00)[sp30] = 255;
|
||||
+ }
|
||||
|
||||
- D_80365E3C = 0;
|
||||
- sp34 = __osSiRawStartDma(OS_READ, D_80365E00);
|
||||
- _osLastSentSiCmd = 5;
|
||||
- osRecvMesg(mq, NULL, OS_MESG_BLOCK);
|
||||
+ D_80365E3C = 0;
|
||||
+ sp34 = __osSiRawStartDma(OS_READ, D_80365E00);
|
||||
+ _osLastSentSiCmd = 5;
|
||||
+ osRecvMesg(mq, NULL, OS_MESG_BLOCK);
|
||||
|
||||
- for (sp30 = 0; sp30 < 4; sp30++) {
|
||||
- sp2c++;
|
||||
- }
|
||||
+ for (sp30 = 0; sp30 < 4; sp30++) {
|
||||
+ sp2c++;
|
||||
+ }
|
||||
+
|
||||
+ sp20 = *(unkStruct2 *) sp2c;
|
||||
+ sp34 = (sp20.unk01 & 0xc0) >> 4;
|
||||
+ } else if (gConsoleType == CONSOLE_IQUE) {
|
||||
+ u8 *__osBbEepromAddress = * (u8**) 0x8000035C;
|
||||
+ s32 i;
|
||||
|
||||
- sp20 = *(unkStruct2 *) sp2c;
|
||||
- sp34 = (sp20.unk01 & 0xc0) >> 4;
|
||||
+ for (i = 0; i < 8; i++) {
|
||||
+ __osBbEepromAddress[(address << 3) + i] = buffer[i];
|
||||
+ }
|
||||
+
|
||||
+ sp34 = 0;
|
||||
+ }
|
||||
__osSiRelAccess();
|
||||
return sp34;
|
||||
}
|
||||
diff --git a/lib/src/osInitialize.c b/lib/src/osInitialize.c
|
||||
index ba73024b..6deaf407 100644
|
||||
--- a/lib/src/osInitialize.c
|
||||
+++ b/lib/src/osInitialize.c
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "libultra_internal.h"
|
||||
#include "hardware.h"
|
||||
#include <macros.h>
|
||||
+#include <PR/console_type.h>
|
||||
|
||||
#define PIF_ADDR_START (void *) 0x1FC007FC
|
||||
|
||||
@@ -51,6 +52,7 @@ void osInitialize(void) {
|
||||
UNUSED u32 eu_sp30;
|
||||
#endif
|
||||
UNUSED u32 sp2c;
|
||||
+ gConsoleType = get_console_type();
|
||||
D_80365CD0 = TRUE;
|
||||
__osSetSR(__osGetSR() | 0x20000000);
|
||||
__osSetFpcCsr(0x01000800);
|
||||
diff --git a/sm64.ld b/sm64.ld
|
||||
index 7d9b5b4a..be853a3b 100755
|
||||
--- a/sm64.ld
|
||||
+++ b/sm64.ld
|
||||
@@ -306,6 +306,8 @@ SECTIONS
|
||||
#if ENABLE_RUMBLE
|
||||
BUILD_DIR/libultra.a:unk_shindou_file_3.o(.text);
|
||||
#endif
|
||||
+ BUILD_DIR/libultra.a:consoleType.o(.text)
|
||||
+ BUILD_DIR/libultra.a:skGetId.o(.text)
|
||||
BUILD_DIR/lib/rsp.o(.text);
|
||||
#else
|
||||
BUILD_DIR/src/game*.o(.text);
|
||||
@@ -428,6 +430,8 @@ SECTIONS
|
||||
#if ENABLE_RUMBLE
|
||||
BUILD_DIR/libultra.a:unk_shindou_file_3.o(.text);
|
||||
#endif
|
||||
+ BUILD_DIR/libultra.a:consoleType.o(.text)
|
||||
+ BUILD_DIR/libultra.a:skGetId.o(.text)
|
||||
BUILD_DIR/lib/rsp.o(.text);
|
||||
#endif
|
||||
|
|
@ -37,7 +37,7 @@ index 749179b1..2f6f7a3c 100644
|
|||
+#define TEXT_PJ64 _("If you are using PJ64 1.6, go to:\nOptions > Settings > Rom Settings Tab > Memory Size\nthen select 8 MB from the drop-down box.")
|
||||
+#define TEXT_PJ64_2 _("If you are using PJ64 2.X, go to:\nOptions > Settings > Config: > Memory Size, select 8 MB")
|
||||
+
|
||||
#if defined(VERSION_JP) || defined(VERSION_SH)
|
||||
#if defined(VERSION_JP) || defined(VERSION_SH) || defined(VERSION_CN)
|
||||
|
||||
/**
|
||||
diff --git a/levels/entry.c b/levels/entry.c
|
||||
|
|
|
@ -76,7 +76,7 @@ def main():
|
|||
clean_assets(local_asset_file)
|
||||
sys.exit(0)
|
||||
|
||||
all_langs = ["jp", "us", "eu", "sh"]
|
||||
all_langs = ["jp", "us", "eu", "sh", "cn"]
|
||||
if not langs or not all(a in all_langs for a in langs):
|
||||
langs_str = " ".join("[" + lang + "]" for lang in all_langs)
|
||||
print("Usage: " + sys.argv[0] + " " + langs_str)
|
||||
|
@ -156,7 +156,11 @@ def main():
|
|||
|
||||
# Make sure tools exist
|
||||
subprocess.check_call(
|
||||
["make", "-s", "-C", "tools/", "n64graphics", "skyconv", "mio0", "aifc_decode"]
|
||||
["make", "-s", "-C", "tools/sm64tools/", "n64graphics", "mio0"]
|
||||
)
|
||||
|
||||
subprocess.check_call(
|
||||
["make", "-s", "-C", "tools/", "skyconv", "aifc_decode"]
|
||||
)
|
||||
|
||||
# Go through the assets in roughly alphabetical order (but assets in the same
|
||||
|
@ -175,13 +179,14 @@ def main():
|
|||
"baserom." + lang + ".z64",
|
||||
]
|
||||
def append_args(key):
|
||||
size, locs = asset_map["@sound " + key + " " + lang]
|
||||
sound_ver = "sh" if lang == "cn" else lang
|
||||
size, locs = asset_map["@sound " + key + " " + sound_ver]
|
||||
offset = locs[lang][0]
|
||||
args.append(str(offset))
|
||||
args.append(str(size))
|
||||
append_args("ctl")
|
||||
append_args("tbl")
|
||||
if lang == "sh":
|
||||
if lang in ("sh", "cn"):
|
||||
args.append("--shindou-headers")
|
||||
append_args("ctl header")
|
||||
append_args("tbl header")
|
||||
|
@ -195,7 +200,7 @@ def main():
|
|||
if mio0 is not None:
|
||||
image = subprocess.run(
|
||||
[
|
||||
"./tools/mio0",
|
||||
"./tools/sm64tools/mio0",
|
||||
"-d",
|
||||
"-o",
|
||||
str(mio0),
|
||||
|
@ -222,7 +227,8 @@ def main():
|
|||
if asset.startswith("textures/skyboxes/"):
|
||||
imagetype = "sky"
|
||||
else:
|
||||
imagetype = "cake" + ("-eu" if "eu" in asset else "")
|
||||
imagetype = "cake" + ("-cn" if "cn" in asset else "-eu" if "eu" in asset else "")
|
||||
print(imagetype, png_file.name, asset)
|
||||
subprocess.run(
|
||||
[
|
||||
"./tools/skyconv",
|
||||
|
@ -239,7 +245,7 @@ def main():
|
|||
fmt = asset.split(".")[-2]
|
||||
subprocess.run(
|
||||
[
|
||||
"./tools/n64graphics",
|
||||
"./tools/sm64tools/n64graphics",
|
||||
"-e",
|
||||
png_file.name,
|
||||
"-g",
|
||||
|
|
|
@ -41,11 +41,18 @@ versionGroup.add_argument(
|
|||
const="sh",
|
||||
dest="version",
|
||||
)
|
||||
versionGroup.add_argument(
|
||||
"-c",
|
||||
"--cn",
|
||||
help="use iQue (Chinese) version",
|
||||
action="store_const",
|
||||
const="cn",
|
||||
dest="version",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-m", "--make", help="run make before finding difference(s)", action="store_true"
|
||||
)
|
||||
parser.add_argument(
|
||||
"-c",
|
||||
"--count",
|
||||
type=int,
|
||||
default=1,
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
#define A_INTERLEAVE 13
|
||||
#define A_SETLOOP 15
|
||||
|
||||
#ifndef VERSION_SH
|
||||
#if !defined(VERSION_SH) && !defined(VERSION_CN)
|
||||
|
||||
#define A_ENVMIXER 3
|
||||
#define A_LOADBUFF 4
|
||||
|
@ -642,7 +642,7 @@ typedef short ENVMIX_STATE[40];
|
|||
_a->words.w1 = (uintptr_t)(tr); \
|
||||
}
|
||||
|
||||
#ifdef VERSION_SH
|
||||
#if defined(VERSION_SH) || defined(VERSION_CN)
|
||||
#undef aLoadBuffer
|
||||
#undef aSaveBuffer
|
||||
#undef aMix
|
||||
|
|
37
include/PR/ique.h
Normal file
37
include/PR/ique.h
Normal file
|
@ -0,0 +1,37 @@
|
|||
#ifndef IQUE_H
|
||||
#define IQUE_H
|
||||
|
||||
#include "rcp.h"
|
||||
|
||||
#define MI_SK_EXCEPTION_REG (MI_BASE_REG+0x14)
|
||||
#define MI_SK_WATCHDOG_TIMER (MI_BASE_REG+0x18)
|
||||
|
||||
// Hardware interrupts
|
||||
// 0x40 = NAND DMA, 0x80 = MD, 0x100 = RDB, 0x200 = AES,
|
||||
// 0x400 = PI_ERR, 0x800 = USB0, 0x1000 = USB1, 0x2000 = NAND
|
||||
#define MI_HW_INTR_REG (MI_BASE_REG+0x38)
|
||||
#define MI_HW_INTR_MASK_REG (MI_BASE_REG+0x3C)
|
||||
|
||||
#define PI_CARD_ADDR_REG (PI_BASE_REG+0x48)
|
||||
#define PI_EX_RD_LEN_REG (PI_BASE_REG+0x58)
|
||||
#define PI_EX_WR_LEN_REG (PI_BASE_REG+0x5C)
|
||||
#define PI_MISC_REG (PI_BASE_REG+0x60)
|
||||
|
||||
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
||||
|
||||
extern u8 *__osBbEepromAddress;
|
||||
extern u32 __osBbEepromSize;
|
||||
extern u32 __osBbFlashAddress;
|
||||
extern u32 __osBbFlashSize;
|
||||
extern u32 __osBbSramAddress;
|
||||
extern u32 __osBbSramSize;
|
||||
extern u32 *__osBbPakAddress[];
|
||||
extern u32 __osBbPakSize;
|
||||
extern u32 __osBbIsBb;
|
||||
extern u32 __osBbHackFlags;
|
||||
|
||||
void skKeepAlive(void);
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
|
@ -7,7 +7,7 @@ typedef struct
|
|||
{
|
||||
u8 *offset;
|
||||
s32 len;
|
||||
#ifdef VERSION_SH
|
||||
#if defined(VERSION_SH) || defined(VERSION_CN)
|
||||
s8 medium;
|
||||
s8 magic; // tbl: 0x04, otherwise: 0x03
|
||||
|
||||
|
@ -32,11 +32,11 @@ typedef struct
|
|||
|
||||
typedef struct
|
||||
{
|
||||
#ifndef VERSION_SH
|
||||
#if !defined(VERSION_SH) && !defined(VERSION_CN)
|
||||
s16 revision;
|
||||
#endif
|
||||
s16 seqCount;
|
||||
#ifdef VERSION_SH
|
||||
#if defined(VERSION_SH) || defined(VERSION_CN)
|
||||
s16 unk2;
|
||||
u8 *data;
|
||||
#if !IS_64_BIT
|
||||
|
|
112
include/PR/os.h
112
include/PR/os.h
|
@ -60,37 +60,6 @@ typedef struct {
|
|||
s32 (*edma)(OSPiHandle *, s32, u32, void *, u32);
|
||||
} OSDevMgr;
|
||||
|
||||
/*
|
||||
* Structure for file system
|
||||
*/
|
||||
|
||||
|
||||
|
||||
typedef struct {
|
||||
int status;
|
||||
OSMesgQueue *queue;
|
||||
int channel;
|
||||
u8 id[32];
|
||||
u8 label[32];
|
||||
int version;
|
||||
int dir_size;
|
||||
int inode_table; /* block location */
|
||||
int minode_table; /* mirrioring inode_table */
|
||||
int dir_table; /* block location */
|
||||
int inode_start_page; /* page # */
|
||||
u8 banks;
|
||||
u8 activebank;
|
||||
} OSPfs;
|
||||
|
||||
|
||||
typedef struct {
|
||||
u32 file_size; /* bytes */
|
||||
u32 game_code;
|
||||
u16 company_code;
|
||||
char ext_name[4];
|
||||
char game_name[16];
|
||||
} OSPfsState;
|
||||
|
||||
/*
|
||||
* Structure for Profiler
|
||||
*/
|
||||
|
@ -116,39 +85,6 @@ typedef struct {
|
|||
#define OS_STATE_RUNNING 4
|
||||
#define OS_STATE_WAITING 8
|
||||
|
||||
/* Events */
|
||||
#ifdef _FINALROM
|
||||
#define OS_NUM_EVENTS 15
|
||||
#else
|
||||
#define OS_NUM_EVENTS 23
|
||||
#endif
|
||||
|
||||
#define OS_EVENT_SW1 0 /* CPU SW1 interrupt */
|
||||
#define OS_EVENT_SW2 1 /* CPU SW2 interrupt */
|
||||
#define OS_EVENT_CART 2 /* Cartridge interrupt: used by rmon */
|
||||
#define OS_EVENT_COUNTER 3 /* Counter int: used by VI/Timer Mgr */
|
||||
#define OS_EVENT_SP 4 /* SP task done interrupt */
|
||||
#define OS_EVENT_SI 5 /* SI (controller) interrupt */
|
||||
#define OS_EVENT_AI 6 /* AI interrupt */
|
||||
#define OS_EVENT_VI 7 /* VI interrupt: used by VI/Timer Mgr */
|
||||
#define OS_EVENT_PI 8 /* PI interrupt: used by PI Manager */
|
||||
#define OS_EVENT_DP 9 /* DP full sync interrupt */
|
||||
#define OS_EVENT_CPU_BREAK 10 /* CPU breakpoint: used by rmon */
|
||||
#define OS_EVENT_SP_BREAK 11 /* SP breakpoint: used by rmon */
|
||||
#define OS_EVENT_FAULT 12 /* CPU fault event: used by rmon */
|
||||
#define OS_EVENT_THREADSTATUS 13 /* CPU thread status: used by rmon */
|
||||
#define OS_EVENT_PRENMI 14 /* Pre NMI interrupt */
|
||||
#ifndef _FINALROM
|
||||
#define OS_EVENT_RDB_READ_DONE 15 /* RDB read ok event: used by rmon */
|
||||
#define OS_EVENT_RDB_LOG_DONE 16 /* read of log data complete */
|
||||
#define OS_EVENT_RDB_DATA_DONE 17 /* read of hostio data complete */
|
||||
#define OS_EVENT_RDB_REQ_RAMROM 18 /* host needs ramrom access */
|
||||
#define OS_EVENT_RDB_FREE_RAMROM 19 /* host is done with ramrom access */
|
||||
#define OS_EVENT_RDB_DBG_DONE 20
|
||||
#define OS_EVENT_RDB_FLUSH_PROF 21
|
||||
#define OS_EVENT_RDB_ACK_PROF 22
|
||||
#endif
|
||||
|
||||
/* Flags for debugging purpose */
|
||||
|
||||
#define OS_FLAG_CPU_BREAK 1 /* Break exception has occurred */
|
||||
|
@ -186,12 +122,6 @@ typedef struct {
|
|||
#define OS_PRIORITY_APPMAX 127
|
||||
#define OS_PRIORITY_IDLE 0 /* Must be 0 */
|
||||
|
||||
|
||||
/* Flags to turn blocking on/off when sending/receiving message */
|
||||
|
||||
#define OS_MESG_NOBLOCK 0
|
||||
#define OS_MESG_BLOCK 1
|
||||
|
||||
/* Flags to indicate direction of data transfer */
|
||||
|
||||
#define OS_READ 0 /* device -> RDRAM */
|
||||
|
@ -406,42 +336,6 @@ typedef struct {
|
|||
#define R_CBUTTONS CONT_F
|
||||
#define D_CBUTTONS CONT_D
|
||||
|
||||
/* File System size */
|
||||
#define OS_PFS_VERSION 0x0200
|
||||
#define OS_PFS_VERSION_HI (OS_PFS_VERSION >> 8)
|
||||
#define OS_PFS_VERSION_LO (OS_PFS_VERSION & 255)
|
||||
|
||||
#define PFS_FILE_NAME_LEN 16
|
||||
#define PFS_FILE_EXT_LEN 4
|
||||
#define BLOCKSIZE 32 /* bytes */
|
||||
#define PFS_ONE_PAGE 8 /* blocks */
|
||||
#define PFS_MAX_BANKS 62
|
||||
|
||||
/* File System flag */
|
||||
|
||||
#define PFS_READ 0
|
||||
#define PFS_WRITE 1
|
||||
#define PFS_CREATE 2
|
||||
|
||||
/* File System status */
|
||||
#define PFS_INITIALIZED 0x1
|
||||
#define PFS_CORRUPTED 0x2 /* File system was corrupted */
|
||||
|
||||
/* File System error number */
|
||||
|
||||
#define PFS_ERR_NOPACK 1 /* no memory card is plugged or */
|
||||
#define PFS_ERR_NEW_PACK 2 /* ram pack has been changed to a */
|
||||
/* different one */
|
||||
#define PFS_ERR_INCONSISTENT 3 /* need to run Pfschecker */
|
||||
#define PFS_ERR_CONTRFAIL CONT_OVERRUN_ERROR
|
||||
#define PFS_ERR_INVALID 5 /* invalid parameter or file not exist*/
|
||||
#define PFS_ERR_BAD_DATA 6 /* the data read from pack are bad*/
|
||||
#define PFS_DATA_FULL 7 /* no free pages on ram pack */
|
||||
#define PFS_DIR_FULL 8 /* no free directories on ram pack*/
|
||||
#define PFS_ERR_EXIST 9 /* file exists */
|
||||
#define PFS_ERR_ID_FATAL 10 /* dead ram pack */
|
||||
#define PFS_ERR_DEVICE 11 /* wrong device type*/
|
||||
|
||||
/* definition for EEPROM */
|
||||
|
||||
#define EEPROM_MAXBLOCKS 64
|
||||
|
@ -739,6 +633,12 @@ extern s32 osMotorInit(OSMesgQueue *, OSPfs *, int);
|
|||
extern s32 osMotorStop(OSPfs *);
|
||||
extern s32 osMotorStart(OSPfs *);
|
||||
|
||||
#ifdef VERSION_CN
|
||||
#define MOTOR_START 1
|
||||
#define MOTOR_STOP 0
|
||||
extern s32 __osMotorAccess(OSPfs *, s32);
|
||||
#endif
|
||||
|
||||
/* Enhanced PI interface */
|
||||
|
||||
extern OSPiHandle *osCartRomInit(void);
|
||||
|
|
|
@ -7,4 +7,12 @@
|
|||
extern void bcopy(const void *, void *, size_t);
|
||||
extern void bzero(void *, size_t);
|
||||
|
||||
/* Printf */
|
||||
|
||||
extern int sprintf(char *s, const char *fmt, ...);
|
||||
extern void osSyncPrintf(const char *fmt, ...);
|
||||
extern void osAsyncPrintf(const char *fmt, ...);
|
||||
extern int osSyncGetChars(char *buf);
|
||||
extern int osAsyncGetChars(char *buf);
|
||||
|
||||
#endif /* !_OS_LIBC_H_ */
|
||||
|
|
|
@ -76,7 +76,10 @@ typedef struct OSMesgQueue_s {
|
|||
*/
|
||||
|
||||
/* Events */
|
||||
#ifdef _FINALROM
|
||||
|
||||
#ifdef BBPLAYER
|
||||
#define OS_NUM_EVENTS 31
|
||||
#elif defined(_FINALROM)
|
||||
#define OS_NUM_EVENTS 15
|
||||
#else
|
||||
#define OS_NUM_EVENTS 23
|
||||
|
@ -107,6 +110,16 @@ typedef struct OSMesgQueue_s {
|
|||
#define OS_EVENT_RDB_FLUSH_PROF 21
|
||||
#define OS_EVENT_RDB_ACK_PROF 22
|
||||
#endif
|
||||
#ifdef BBPLAYER
|
||||
#define OS_EVENT_FLASH 23 /* NAND flash operation complete */
|
||||
#define OS_EVENT_AES 24 /* AES */
|
||||
#define OS_EVENT_IDE 25 /* IDE? */
|
||||
#define OS_EVENT_PI_ERR 26 /* PI Error? */
|
||||
#define OS_EVENT_USB0 27 /* USB Controller 0 */
|
||||
#define OS_EVENT_USB1 28 /* USB Controller 1 */
|
||||
#define OS_EVENT_UNK_29 29 /* TODO does this exist at all */
|
||||
#define OS_EVENT_MD 30 /* Related to card */
|
||||
#endif
|
||||
|
||||
/* Flags to turn blocking on/off when sending/receiving message */
|
||||
|
||||
|
|
75
include/PR/os_motor.h
Normal file
75
include/PR/os_motor.h
Normal file
|
@ -0,0 +1,75 @@
|
|||
|
||||
/*---------------------------------------------------------------------*
|
||||
Copyright (C) 1998 Nintendo.
|
||||
|
||||
$RCSfile: os_motor.h,v $
|
||||
$Revision: 1.1 $
|
||||
$Date: 1998/10/09 08:01:15 $
|
||||
*---------------------------------------------------------------------*/
|
||||
|
||||
#ifndef _OS_MOTOR_H_
|
||||
#define _OS_MOTOR_H_
|
||||
|
||||
#ifdef _LANGUAGE_C_PLUS_PLUS
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <PR/ultratypes.h>
|
||||
#include "os_message.h"
|
||||
#include "os_pfs.h"
|
||||
|
||||
|
||||
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Type definitions
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Global definitions
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Macro definitions
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Extern variables
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Function prototypes
|
||||
*
|
||||
*/
|
||||
|
||||
/* Rumble PAK interface */
|
||||
|
||||
extern s32 osMotorInit(OSMesgQueue *, OSPfs *, int);
|
||||
extern s32 osMotorStop(OSPfs *);
|
||||
extern s32 osMotorStart(OSPfs *);
|
||||
|
||||
|
||||
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
|
||||
|
||||
#ifdef _LANGUAGE_C_PLUS_PLUS
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* !_OS_MOTOR_H_ */
|
123
include/PR/os_pfs.h
Normal file
123
include/PR/os_pfs.h
Normal file
|
@ -0,0 +1,123 @@
|
|||
/*====================================================================
|
||||
* os_pfs.h
|
||||
*
|
||||
* Copyright 1995, Silicon Graphics, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics,
|
||||
* Inc.; the contents of this file may not be disclosed to third
|
||||
* parties, copied or duplicated in any form, in whole or in part,
|
||||
* without the prior written permission of Silicon Graphics, Inc.
|
||||
*
|
||||
* RESTRICTED RIGHTS LEGEND:
|
||||
* Use, duplication or disclosure by the Government is subject to
|
||||
* restrictions as set forth in subdivision (c)(1)(ii) of the Rights
|
||||
* in Technical Data and Computer Software clause at DFARS
|
||||
* 252.227-7013, and/or in similar or successor clauses in the FAR,
|
||||
* DOD or NASA FAR Supplement. Unpublished - rights reserved under the
|
||||
* Copyright Laws of the United States.
|
||||
*====================================================================*/
|
||||
|
||||
/*---------------------------------------------------------------------*
|
||||
Copyright (C) 1998 Nintendo. (Originated by SGI)
|
||||
|
||||
$RCSfile: os_pfs.h,v $
|
||||
$Revision: 1.1 $
|
||||
$Date: 1998/10/09 08:01:16 $
|
||||
*---------------------------------------------------------------------*/
|
||||
|
||||
#ifndef _OS_PFS_H_
|
||||
#define _OS_PFS_H_
|
||||
|
||||
#ifdef _LANGUAGE_C_PLUS_PLUS
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <PR/ultratypes.h>
|
||||
#include "os_message.h"
|
||||
|
||||
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Type definitions
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Structure for file system
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
int status;
|
||||
OSMesgQueue *queue;
|
||||
int channel;
|
||||
u8 id[32];
|
||||
u8 label[32];
|
||||
int version;
|
||||
int dir_size;
|
||||
int inode_table; /* block location */
|
||||
int minode_table; /* mirrioring inode_table */
|
||||
int dir_table; /* block location */
|
||||
int inode_start_page; /* page # */
|
||||
u8 banks;
|
||||
u8 activebank;
|
||||
} OSPfs;
|
||||
|
||||
|
||||
typedef struct {
|
||||
u32 file_size; /* bytes */
|
||||
u32 game_code;
|
||||
u16 company_code;
|
||||
char ext_name[4];
|
||||
char game_name[16];
|
||||
} OSPfsState;
|
||||
|
||||
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Global definitions
|
||||
*
|
||||
*/
|
||||
|
||||
/* File System size */
|
||||
#define OS_PFS_VERSION 0x0200
|
||||
#define OS_PFS_VERSION_HI (OS_PFS_VERSION >> 8)
|
||||
#define OS_PFS_VERSION_LO (OS_PFS_VERSION & 255)
|
||||
|
||||
#define PFS_FILE_NAME_LEN 16
|
||||
#define PFS_FILE_EXT_LEN 4
|
||||
#define BLOCKSIZE 32 /* bytes */
|
||||
#define PFS_ONE_PAGE 8 /* blocks */
|
||||
#define PFS_MAX_BANKS 62
|
||||
|
||||
/* File System flag */
|
||||
|
||||
#define PFS_READ 0
|
||||
#define PFS_WRITE 1
|
||||
#define PFS_CREATE 2
|
||||
|
||||
/* File System status */
|
||||
#define PFS_INITIALIZED 0x1
|
||||
#define PFS_CORRUPTED 0x2 /* File system was corrupted */
|
||||
|
||||
/* File System error number */
|
||||
|
||||
#define PFS_ERR_NOPACK 1 /* no memory card is plugged or */
|
||||
#define PFS_ERR_NEW_PACK 2 /* ram pack has been changed to a */
|
||||
#define PFS_ERR_INCONSISTENT 3 /* need to run Pfschecker */
|
||||
#define PFS_ERR_CONTRFAIL CONT_OVERRUN_ERROR
|
||||
#define PFS_ERR_INVALID 5 /* invalid parameter or file not exist*/
|
||||
#define PFS_ERR_BAD_DATA 6 /* the data read from pack are bad*/
|
||||
#define PFS_DATA_FULL 7 /* no free pages on ram pack */
|
||||
#define PFS_DIR_FULL 8 /* no free directories on ram pack*/
|
||||
#define PFS_ERR_EXIST 9 /* file exists*/
|
||||
#define PFS_ERR_ID_FATAL 10 /* dead ram pack */
|
||||
#define PFS_ERR_DEVICE 11 /* wrong device type*/
|
||||
|
||||
#ifdef _LANGUAGE_C_PLUS_PLUS
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
|
@ -61,7 +61,7 @@ typedef struct {
|
|||
/*0x08*/ void *dramAddr;
|
||||
/*0x0C*/ uintptr_t devAddr;
|
||||
/*0x10*/ size_t size;
|
||||
#if defined(VERSION_EU) || defined(VERSION_SH)
|
||||
#if defined(VERSION_EU) || defined(VERSION_SH) || defined(VERSION_CN)
|
||||
OSPiHandle *piHandle; // from the official definition
|
||||
#endif
|
||||
} OSIoMesg;
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
#define OS_STATE_RUNNING 4
|
||||
#define OS_STATE_WAITING 8
|
||||
|
||||
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
||||
|
||||
/* Types */
|
||||
|
||||
typedef s32 OSPri;
|
||||
|
@ -73,3 +75,5 @@ void osStartThread(OSThread *thread);
|
|||
void osStopThread(OSThread *thread);
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -13,7 +13,7 @@ typedef struct OSTimer_str
|
|||
u64 interval;
|
||||
u64 remaining;
|
||||
OSMesgQueue *mq;
|
||||
OSMesg *msg;
|
||||
OSMesg msg;
|
||||
} OSTimer;
|
||||
|
||||
typedef u64 OSTime;
|
||||
|
|
|
@ -4,6 +4,16 @@
|
|||
#include <PR/ultratypes.h>
|
||||
#include <PR/os_message.h>
|
||||
|
||||
//TODO: figure out what this is
|
||||
#define VI_STATE_01 0x01
|
||||
#define VI_STATE_XSCALE_UPDATED 0x02
|
||||
#define VI_STATE_YSCALE_UPDATED 0x04
|
||||
#define VI_STATE_08 0x08 //related to control regs changing
|
||||
#define VI_STATE_10 0x10 //swap buffer
|
||||
#define VI_STATE_BLACK 0x20 //probably related to a black screen
|
||||
#define VI_STATE_REPEATLINE 0x40 //repeat line?
|
||||
#define VI_STATE_FADE 0x80 //fade
|
||||
|
||||
/* Ultra64 Video Interface */
|
||||
|
||||
|
||||
|
@ -27,8 +37,7 @@
|
|||
|
||||
/* Types */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
typedef struct {
|
||||
u32 ctrl;
|
||||
u32 width;
|
||||
u32 burst;
|
||||
|
@ -40,8 +49,7 @@ typedef struct
|
|||
u32 vCurrent;
|
||||
} OSViCommonRegs;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
typedef struct {
|
||||
u32 origin;
|
||||
u32 yScale;
|
||||
u32 vStart;
|
||||
|
@ -49,15 +57,13 @@ typedef struct
|
|||
u32 vIntr;
|
||||
} OSViFieldRegs;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
typedef struct {
|
||||
u8 type;
|
||||
OSViCommonRegs comRegs;
|
||||
OSViFieldRegs fldRegs[2];
|
||||
} OSViMode;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 unk00; //some kind of flags. swap buffer sets to 0x10
|
||||
/* 0x02 */ u16 retraceCount;
|
||||
/* 0x04 */ void* buffer;
|
||||
|
|
|
@ -161,6 +161,7 @@ The Indy development board use cartridge domain 1:
|
|||
#define DEVICE_TYPE_BULK 1 /* ROM bulk */
|
||||
#define DEVICE_TYPE_64DD 2 /* 64 Disk Drive */
|
||||
#define DEVICE_TYPE_SRAM 3 /* SRAM */
|
||||
#define DEVICE_TYPE_INIT 7 /* initial value */
|
||||
|
||||
/*************************************************************************
|
||||
* SP Memory
|
||||
|
|
94
include/PR/rdb.h
Normal file
94
include/PR/rdb.h
Normal file
|
@ -0,0 +1,94 @@
|
|||
|
||||
/**************************************************************************
|
||||
*
|
||||
* $Revision: 1.6 $
|
||||
* $Date: 1997/02/11 08:29:31 $
|
||||
* $Source: /disk6/Master/cvsmdev2/PR/include/rdb.h,v $
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef _RDB_H
|
||||
#define _RDB_H
|
||||
|
||||
/* U64 side address */
|
||||
#define RDB_BASE_REG 0xc0000000
|
||||
#define RDB_WRITE_INTR_REG (RDB_BASE_REG + 0x8)
|
||||
#define RDB_READ_INTR_REG (RDB_BASE_REG + 0xc)
|
||||
#define RDB_BASE_VIRTUAL_ADDR 0x80000000
|
||||
|
||||
/* packet type Have six bits, so can have up to 63 types */
|
||||
#define RDB_TYPE_INVALID 0
|
||||
#define RDB_TYPE_GtoH_PRINT 1
|
||||
#define RDB_TYPE_GtoH_FAULT 2
|
||||
#define RDB_TYPE_GtoH_LOG_CT 3
|
||||
#define RDB_TYPE_GtoH_LOG 4
|
||||
#define RDB_TYPE_GtoH_READY_FOR_DATA 5
|
||||
#define RDB_TYPE_GtoH_DATA_CT 6
|
||||
#define RDB_TYPE_GtoH_DATA 7
|
||||
#define RDB_TYPE_GtoH_DEBUG 8
|
||||
#define RDB_TYPE_GtoH_RAMROM 9
|
||||
#define RDB_TYPE_GtoH_DEBUG_DONE 10
|
||||
#define RDB_TYPE_GtoH_DEBUG_READY 11
|
||||
#define RDB_TYPE_GtoH_KDEBUG 12
|
||||
#define RDB_TYPE_GtoH_PROF_DATA 22
|
||||
|
||||
|
||||
#define RDB_TYPE_HtoG_LOG_DONE 13
|
||||
#define RDB_TYPE_HtoG_DEBUG 14
|
||||
#define RDB_TYPE_HtoG_DEBUG_CT 15
|
||||
#define RDB_TYPE_HtoG_DATA 16
|
||||
#define RDB_TYPE_HtoG_DATA_DONE 17
|
||||
#define RDB_TYPE_HtoG_REQ_RAMROM 18
|
||||
#define RDB_TYPE_HtoG_FREE_RAMROM 19
|
||||
#define RDB_TYPE_HtoG_KDEBUG 20
|
||||
#define RDB_TYPE_HtoG_PROF_SIGNAL 21
|
||||
|
||||
|
||||
#define RDB_PROF_ACK_SIG 1
|
||||
#define RDB_PROF_FLUSH_SIG 2
|
||||
#define PROF_BLOCK_SIZE 2048
|
||||
|
||||
#define RDB_LOG_MAX_BLOCK_SIZE 0x8000
|
||||
#define RDB_DATA_MAX_BLOCK_SIZE 0x8000
|
||||
|
||||
|
||||
/* GIO side address */
|
||||
#define GIO_RDB_BASE_REG 0xbf480000
|
||||
#define GIO_RDB_WRITE_INTR_REG (GIO_RDB_BASE_REG + 0x8)
|
||||
#define GIO_RDB_READ_INTR_REG (GIO_RDB_BASE_REG + 0xc)
|
||||
|
||||
/* minor device number */
|
||||
#define GIO_RDB_PRINT_MINOR 1
|
||||
#define GIO_RDB_DEBUG_MINOR 2
|
||||
|
||||
/* interrupt bit */
|
||||
#define GIO_RDB_WRITE_INTR_BIT 0x80000000
|
||||
#define GIO_RDB_READ_INTR_BIT 0x40000000
|
||||
|
||||
/* debug command */
|
||||
#define DEBUG_COMMAND_NULL 0
|
||||
#define DEBUG_COMMAND_MEMORY 1
|
||||
#define DEBUG_COMMAND_REGISTER 2
|
||||
#define DEBUG_COMMAND_INVALID 255
|
||||
|
||||
/* debug state */
|
||||
#define DEBUG_STATE_NULL 0
|
||||
#define DEBUG_STATE_RECEIVE 1
|
||||
#define DEBUG_STATE_INVALID 255
|
||||
|
||||
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
||||
|
||||
/* Structure for debug port */
|
||||
typedef struct {
|
||||
unsigned type : 2; /* 0: invalid, 1: print, 2: debug */
|
||||
unsigned pad : 4; // CHANGED FROM THE ORIGINAL LIBULTRA HEADER
|
||||
unsigned length : 2; /* 1, 2, or 3 */
|
||||
unsigned char buf[3]; /* character buffer */
|
||||
} rdbPacket;
|
||||
|
||||
extern unsigned int __osRdbWriteOK;
|
||||
extern unsigned int __osRdbSendMessage;
|
||||
|
||||
#endif /* _LANGUAGE_C */
|
||||
|
||||
#endif /* !_RDB_H */
|
|
@ -18,7 +18,7 @@
|
|||
/* Flags */
|
||||
#define M_TASK_FLAG0 1
|
||||
#define M_TASK_FLAG1 2
|
||||
#ifdef VERSION_SH
|
||||
#if defined(VERSION_SH) || defined(VERSION_CN)
|
||||
#define M_TASK_FLAG2 4
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#ifndef _ULTRA64_TYPES_H_
|
||||
#define _ULTRA64_TYPES_H_
|
||||
|
||||
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL (void *)0
|
||||
#endif
|
||||
|
@ -42,3 +44,5 @@ typedef ptrdiff_t ssize_t;
|
|||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -3,6 +3,11 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
#define BPARAM1(param) (((param) & 0xFF) << 24)
|
||||
#define BPARAM2(param) (((param) & 0xFF) << 16)
|
||||
#define BPARAM3(param) (((param) & 0xFF) << 8)
|
||||
#define BPARAM4(param) (((param) & 0xFF) << 0)
|
||||
|
||||
extern const BehaviorScript bhvStarDoor[];
|
||||
extern const BehaviorScript bhvMrI[];
|
||||
extern const BehaviorScript bhvMrIBody[];
|
||||
|
@ -10,8 +15,8 @@ extern const BehaviorScript bhvMrIParticle[];
|
|||
extern const BehaviorScript bhvPurpleParticle[];
|
||||
extern const BehaviorScript bhvGiantPole[];
|
||||
extern const BehaviorScript bhvPoleGrabbing[];
|
||||
extern const BehaviorScript bhvThiHugeIslandTop[];
|
||||
extern const BehaviorScript bhvThiTinyIslandTop[];
|
||||
extern const BehaviorScript bhvTHIHugeIslandTop[];
|
||||
extern const BehaviorScript bhvTHITinyIslandTop[];
|
||||
extern const BehaviorScript bhvCapSwitchBase[];
|
||||
extern const BehaviorScript bhvCapSwitch[];
|
||||
extern const BehaviorScript bhvKingBobomb[];
|
||||
|
@ -37,12 +42,12 @@ extern const BehaviorScript bhvUnused05A8[];
|
|||
extern const BehaviorScript bhvRotatingPlatform[];
|
||||
extern const BehaviorScript bhvTower[];
|
||||
extern const BehaviorScript bhvBulletBillCannon[];
|
||||
extern const BehaviorScript bhvWfBreakableWallRight[];
|
||||
extern const BehaviorScript bhvWfBreakableWallLeft[];
|
||||
extern const BehaviorScript bhvWFBreakableWallRight[];
|
||||
extern const BehaviorScript bhvWFBreakableWallLeft[];
|
||||
extern const BehaviorScript bhvKickableBoard[];
|
||||
extern const BehaviorScript bhvTowerDoor[];
|
||||
extern const BehaviorScript bhvRotatingCounterClockwise[];
|
||||
extern const BehaviorScript bhvWfRotatingWoodenPlatform[];
|
||||
extern const BehaviorScript bhvWFRotatingWoodenPlatform[];
|
||||
extern const BehaviorScript bhvKoopaShellUnderwater[];
|
||||
extern const BehaviorScript bhvExitPodiumWarp[];
|
||||
extern const BehaviorScript bhvFadingWarp[];
|
||||
|
@ -51,7 +56,7 @@ extern const BehaviorScript bhvWarpPipe[];
|
|||
extern const BehaviorScript bhvWhitePuffExplosion[];
|
||||
extern const BehaviorScript bhvSpawnedStar[];
|
||||
extern const BehaviorScript bhvSpawnedStarNoLevelExit[];
|
||||
extern const BehaviorScript bhvMrIBlueCoin[];
|
||||
extern const BehaviorScript bhvSpawnedBlueCoin[];
|
||||
extern const BehaviorScript bhvCoinInsideBoo[];
|
||||
extern const BehaviorScript bhvCoinFormationSpawn[];
|
||||
extern const BehaviorScript bhvCoinFormation[];
|
||||
|
@ -72,16 +77,16 @@ extern const BehaviorScript bhvTriangleParticleSpawner[];
|
|||
extern const BehaviorScript bhvDoorWarp[];
|
||||
extern const BehaviorScript bhvDoor[];
|
||||
extern const BehaviorScript bhvGrindel[];
|
||||
extern const BehaviorScript bhvThwomp2[];
|
||||
extern const BehaviorScript bhvThwomp[];
|
||||
extern const BehaviorScript bhvThwomp2[];
|
||||
extern const BehaviorScript bhvTumblingBridgePlatform[];
|
||||
extern const BehaviorScript bhvWfTumblingBridge[];
|
||||
extern const BehaviorScript bhvBbhTumblingBridge[];
|
||||
extern const BehaviorScript bhvLllTumblingBridge[];
|
||||
extern const BehaviorScript bhvTumblingBridge[];
|
||||
extern const BehaviorScript bhvBBHTumblingBridge[];
|
||||
extern const BehaviorScript bhvLLLTumblingBridge[];
|
||||
extern const BehaviorScript bhvFlame[];
|
||||
extern const BehaviorScript bhvAnotherElavator[];
|
||||
extern const BehaviorScript bhvRrElevatorPlatform[];
|
||||
extern const BehaviorScript bhvHmcElevatorPlatform[];
|
||||
extern const BehaviorScript bhvRRElevatorPlatform[];
|
||||
extern const BehaviorScript bhvHMCElevatorPlatform[];
|
||||
extern const BehaviorScript bhvWaterMist[];
|
||||
extern const BehaviorScript bhvBreathParticleSpawner[];
|
||||
extern const BehaviorScript bhvBreakBoxTriangle[];
|
||||
|
@ -99,15 +104,15 @@ extern const BehaviorScript bhvUkiki[];
|
|||
extern const BehaviorScript bhvUkikiCageChild[];
|
||||
extern const BehaviorScript bhvUkikiCageStar[];
|
||||
extern const BehaviorScript bhvUkikiCage[];
|
||||
extern const BehaviorScript bhvBitfsSinkingPlatforms[];
|
||||
extern const BehaviorScript bhvBitfsSinkingCagePlatform[];
|
||||
extern const BehaviorScript bhvDddMovingPole[];
|
||||
extern const BehaviorScript bhvBitfsTiltingInvertedPyramid[];
|
||||
extern const BehaviorScript bhvBitFSSinkingPlatforms[];
|
||||
extern const BehaviorScript bhvBitFSSinkingCagePlatform[];
|
||||
extern const BehaviorScript bhvDDDMovingPole[];
|
||||
extern const BehaviorScript bhvBitFSTiltingInvertedPyramid[];
|
||||
extern const BehaviorScript bhvSquishablePlatform[];
|
||||
extern const BehaviorScript bhvCutOutObject[];
|
||||
extern const BehaviorScript bhvBetaMovingFlamesSpawn[];
|
||||
extern const BehaviorScript bhvBetaMovingFlames[];
|
||||
extern const BehaviorScript bhvRrRotatingBridgePlatform[];
|
||||
extern const BehaviorScript bhvRRRotatingBridgePlatform[];
|
||||
extern const BehaviorScript bhvFlamethrower[];
|
||||
extern const BehaviorScript bhvFlamethrowerFlame[];
|
||||
extern const BehaviorScript bhvBouncingFireball[];
|
||||
|
@ -120,9 +125,9 @@ extern const BehaviorScript bhvBlackSmokeUpward[];
|
|||
extern const BehaviorScript bhvBetaFishSplashSpawner[];
|
||||
extern const BehaviorScript bhvSpindrift[];
|
||||
extern const BehaviorScript bhvTowerPlatformGroup[];
|
||||
extern const BehaviorScript bhvWfSlidingTowerPlatform[];
|
||||
extern const BehaviorScript bhvWfElevatorTowerPlatform[];
|
||||
extern const BehaviorScript bhvWfSolidTowerPlatform[];
|
||||
extern const BehaviorScript bhvWFSlidingTowerPlatform[];
|
||||
extern const BehaviorScript bhvWFElevatorTowerPlatform[];
|
||||
extern const BehaviorScript bhvWFSolidTowerPlatform[];
|
||||
extern const BehaviorScript bhvLeafParticleSpawner[];
|
||||
extern const BehaviorScript bhvTreeSnow[];
|
||||
extern const BehaviorScript bhvTreeLeaf[];
|
||||
|
@ -139,7 +144,7 @@ extern const BehaviorScript bhvBreakableBox[];
|
|||
extern const BehaviorScript bhvPushableMetalBox[];
|
||||
extern const BehaviorScript bhvHeaveHo[];
|
||||
extern const BehaviorScript bhvHeaveHoThrowMario[];
|
||||
extern const BehaviorScript bhvCcmTouchedStarSpawn[];
|
||||
extern const BehaviorScript bhvCCMTouchedStarSpawn[];
|
||||
extern const BehaviorScript bhvUnusedPoundablePlatform[];
|
||||
extern const BehaviorScript bhvBetaTrampolineTop[];
|
||||
extern const BehaviorScript bhvBetaTrampolineSpring[];
|
||||
|
@ -175,34 +180,34 @@ extern const BehaviorScript bhvBowserKeyUnlockDoor[];
|
|||
extern const BehaviorScript bhvBowserKeyCourseExit[];
|
||||
extern const BehaviorScript bhvInvisibleObjectsUnderBridge[];
|
||||
extern const BehaviorScript bhvWaterLevelPillar[];
|
||||
extern const BehaviorScript bhvDddWarp[];
|
||||
extern const BehaviorScript bhvDDDWarp[];
|
||||
extern const BehaviorScript bhvMoatGrills[];
|
||||
extern const BehaviorScript bhvClockMinuteHand[];
|
||||
extern const BehaviorScript bhvClockHourHand[];
|
||||
extern const BehaviorScript bhvMacroUkiki[];
|
||||
extern const BehaviorScript bhvStub1D0C[];
|
||||
extern const BehaviorScript bhvLllRotatingHexagonalPlatform[];
|
||||
extern const BehaviorScript bhvLllSinkingRockBlock[];
|
||||
extern const BehaviorScript bhvLLLRotatingHexagonalPlatform[];
|
||||
extern const BehaviorScript bhvLLLSinkingRockBlock[];
|
||||
extern const BehaviorScript bhvStub1D70[];
|
||||
extern const BehaviorScript bhvLllMovingOctagonalMeshPlatform[];
|
||||
extern const BehaviorScript bhvLLLMovingOctagonalMeshPlatform[];
|
||||
extern const BehaviorScript bhvSnowBall[];
|
||||
extern const BehaviorScript bhvLllRotatingBlockWithFireBars[];
|
||||
extern const BehaviorScript bhvLllRotatingHexFlame[];
|
||||
extern const BehaviorScript bhvLllWoodPiece[];
|
||||
extern const BehaviorScript bhvLllFloatingWoodBridge[];
|
||||
extern const BehaviorScript bhvLLLRotatingBlockWithFireBars[];
|
||||
extern const BehaviorScript bhvLLLRotatingHexFlame[];
|
||||
extern const BehaviorScript bhvLLLWoodPiece[];
|
||||
extern const BehaviorScript bhvLLLFloatingWoodBridge[];
|
||||
extern const BehaviorScript bhvVolcanoFlames[];
|
||||
extern const BehaviorScript bhvLllRotatingHexagonalRing[];
|
||||
extern const BehaviorScript bhvLllSinkingRectangularPlatform[];
|
||||
extern const BehaviorScript bhvLllSinkingSquarePlatforms[];
|
||||
extern const BehaviorScript bhvLllTiltingInvertedPyramid[];
|
||||
extern const BehaviorScript bhvLLLRotatingHexagonalRing[];
|
||||
extern const BehaviorScript bhvLLLSinkingRectangularPlatform[];
|
||||
extern const BehaviorScript bhvLLLSinkingSquarePlatforms[];
|
||||
extern const BehaviorScript bhvLLLTiltingInvertedPyramid[];
|
||||
extern const BehaviorScript bhvUnused1F30[];
|
||||
extern const BehaviorScript bhvKoopaShell[];
|
||||
extern const BehaviorScript bhvKoopaShellFlame[];
|
||||
extern const BehaviorScript bhvToxBox[];
|
||||
extern const BehaviorScript bhvPiranhaPlant[];
|
||||
extern const BehaviorScript bhvLllHexagonalMesh[];
|
||||
extern const BehaviorScript bhvLllBowserPuzzlePiece[];
|
||||
extern const BehaviorScript bhvLllBowserPuzzle[];
|
||||
extern const BehaviorScript bhvLLLHexagonalMesh[];
|
||||
extern const BehaviorScript bhvLLLBowserPuzzlePiece[];
|
||||
extern const BehaviorScript bhvLLLBowserPuzzle[];
|
||||
extern const BehaviorScript bhvTuxiesMother[];
|
||||
extern const BehaviorScript bhvPenguinBaby[];
|
||||
extern const BehaviorScript bhvUnused20E0[];
|
||||
|
@ -212,8 +217,8 @@ extern const BehaviorScript bhvFewBlueFishSpawner[];
|
|||
extern const BehaviorScript bhvFishSpawner[];
|
||||
extern const BehaviorScript bhvFishCommon[];
|
||||
extern const BehaviorScript bhvFish[];
|
||||
extern const BehaviorScript bhvWdwExpressElevator[];
|
||||
extern const BehaviorScript bhvWdwExpressElevatorPlatform[];
|
||||
extern const BehaviorScript bhvWDWExpressElevator[];
|
||||
extern const BehaviorScript bhvWDWExpressElevatorPlatform[];
|
||||
extern const BehaviorScript bhvChirpChirp[];
|
||||
extern const BehaviorScript bhvChirpChirpUnused[];
|
||||
extern const BehaviorScript bhvBub[];
|
||||
|
@ -227,7 +232,7 @@ extern const BehaviorScript bhvBowserSubDoor[];
|
|||
extern const BehaviorScript bhvBowsersSub[];
|
||||
extern const BehaviorScript bhvSushiShark[];
|
||||
extern const BehaviorScript bhvSushiSharkCollisionChild[];
|
||||
extern const BehaviorScript bhvJrbSlidingBox[];
|
||||
extern const BehaviorScript bhvJRBSlidingBox[];
|
||||
extern const BehaviorScript bhvShipPart3[];
|
||||
extern const BehaviorScript bhvInSunkenShip3[];
|
||||
extern const BehaviorScript bhvSunkenShipPart[];
|
||||
|
@ -262,7 +267,7 @@ extern const BehaviorScript bhvMerryGoRoundBoo[];
|
|||
extern const BehaviorScript bhvGhostHuntBoo[];
|
||||
extern const BehaviorScript bhvHiddenStaircaseStep[];
|
||||
extern const BehaviorScript bhvBooStaircase[];
|
||||
extern const BehaviorScript bhvBbhTiltingTrapPlatform[];
|
||||
extern const BehaviorScript bhvBBHTiltingTrapPlatform[];
|
||||
extern const BehaviorScript bhvHauntedBookshelf[];
|
||||
extern const BehaviorScript bhvMeshElevator[];
|
||||
extern const BehaviorScript bhvMerryGoRound[];
|
||||
|
@ -371,22 +376,22 @@ extern const BehaviorScript bhvBowserBombSmoke[];
|
|||
extern const BehaviorScript bhvCelebrationStar[];
|
||||
extern const BehaviorScript bhvCelebrationStarSparkle[];
|
||||
extern const BehaviorScript bhvStarKeyCollectionPuffSpawner[];
|
||||
extern const BehaviorScript bhvLllDrawbridgeSpawner[];
|
||||
extern const BehaviorScript bhvLllDrawbridge[];
|
||||
extern const BehaviorScript bhvLLLDrawbridgeSpawner[];
|
||||
extern const BehaviorScript bhvLLLDrawbridge[];
|
||||
extern const BehaviorScript bhvSmallBomp[];
|
||||
extern const BehaviorScript bhvLargeBomp[];
|
||||
extern const BehaviorScript bhvWfSlidingPlatform[];
|
||||
extern const BehaviorScript bhvWFSlidingPlatform[];
|
||||
extern const BehaviorScript bhvMoneybag[];
|
||||
extern const BehaviorScript bhvMoneybagHidden[];
|
||||
extern const BehaviorScript bhvPitBowlingBall[];
|
||||
extern const BehaviorScript bhvFreeBowlingBall[];
|
||||
extern const BehaviorScript bhvBowlingBall[];
|
||||
extern const BehaviorScript bhvTtmBowlingBallSpawner[];
|
||||
extern const BehaviorScript bhvBobBowlingBallSpawner[];
|
||||
extern const BehaviorScript bhvThiBowlingBallSpawner[];
|
||||
extern const BehaviorScript bhvRrCruiserWing[];
|
||||
extern const BehaviorScript bhvTTMBowlingBallSpawner[];
|
||||
extern const BehaviorScript bhvBoBBowlingBallSpawner[];
|
||||
extern const BehaviorScript bhvTHIBowlingBallSpawner[];
|
||||
extern const BehaviorScript bhvRRCruiserWing[];
|
||||
extern const BehaviorScript bhvSpindel[];
|
||||
extern const BehaviorScript bhvSslMovingPyramidWall[];
|
||||
extern const BehaviorScript bhvSSLMovingPyramidWall[];
|
||||
extern const BehaviorScript bhvPyramidElevator[];
|
||||
extern const BehaviorScript bhvPyramidElevatorTrajectoryMarkerBall[];
|
||||
extern const BehaviorScript bhvPyramidTop[];
|
||||
|
@ -416,38 +421,38 @@ extern const BehaviorScript bhvRedCoin[];
|
|||
extern const BehaviorScript bhvBowserCourseRedCoinStar[];
|
||||
extern const BehaviorScript bhvHiddenStar[];
|
||||
extern const BehaviorScript bhvHiddenStarTrigger[];
|
||||
extern const BehaviorScript bhvTtmRollingLog[];
|
||||
extern const BehaviorScript bhvLllVolcanoFallingTrap[];
|
||||
extern const BehaviorScript bhvLllRollingLog[];
|
||||
extern const BehaviorScript bhv1upWalking[];
|
||||
extern const BehaviorScript bhv1upRunningAway[];
|
||||
extern const BehaviorScript bhv1upSliding[];
|
||||
extern const BehaviorScript bhvTTMRollingLog[];
|
||||
extern const BehaviorScript bhvLLLVolcanoFallingTrap[];
|
||||
extern const BehaviorScript bhvLLLRollingLog[];
|
||||
extern const BehaviorScript bhv1UpWalking[];
|
||||
extern const BehaviorScript bhv1UpRunningAway[];
|
||||
extern const BehaviorScript bhv1UpSliding[];
|
||||
extern const BehaviorScript bhv1Up[];
|
||||
extern const BehaviorScript bhv1upJumpOnApproach[];
|
||||
extern const BehaviorScript bhvHidden1up[];
|
||||
extern const BehaviorScript bhvHidden1upTrigger[];
|
||||
extern const BehaviorScript bhvHidden1upInPole[];
|
||||
extern const BehaviorScript bhvHidden1upInPoleTrigger[];
|
||||
extern const BehaviorScript bhvHidden1upInPoleSpawner[];
|
||||
extern const BehaviorScript bhv1UpJumpOnApproach[];
|
||||
extern const BehaviorScript bhvHidden1Up[];
|
||||
extern const BehaviorScript bhvHidden1UpTrigger[];
|
||||
extern const BehaviorScript bhvHidden1UpInPole[];
|
||||
extern const BehaviorScript bhvHidden1UpInPoleTrigger[];
|
||||
extern const BehaviorScript bhvHidden1UpInPoleSpawner[];
|
||||
extern const BehaviorScript bhvControllablePlatform[];
|
||||
extern const BehaviorScript bhvControllablePlatformSub[];
|
||||
extern const BehaviorScript bhvBreakableBoxSmall[];
|
||||
extern const BehaviorScript bhvSlidingSnowMound[];
|
||||
extern const BehaviorScript bhvSnowMoundSpawn[];
|
||||
extern const BehaviorScript bhvWdwSquareFloatingPlatform[];
|
||||
extern const BehaviorScript bhvWdwRectangularFloatingPlatform[];
|
||||
extern const BehaviorScript bhvJrbFloatingPlatform[];
|
||||
extern const BehaviorScript bhvWDWSquareFloatingPlatform[];
|
||||
extern const BehaviorScript bhvWDWRectangularFloatingPlatform[];
|
||||
extern const BehaviorScript bhvJRBFloatingPlatform[];
|
||||
extern const BehaviorScript bhvArrowLift[];
|
||||
extern const BehaviorScript bhvOrangeNumber[];
|
||||
extern const BehaviorScript bhvMantaRay[];
|
||||
extern const BehaviorScript bhvFallingPillar[];
|
||||
extern const BehaviorScript bhvFallingPillarHitbox[];
|
||||
extern const BehaviorScript bhvPillarBase[];
|
||||
extern const BehaviorScript bhvJrbFloatingBox[];
|
||||
extern const BehaviorScript bhvJRBFloatingBox[];
|
||||
extern const BehaviorScript bhvDecorativePendulum[];
|
||||
extern const BehaviorScript bhvTreasureChestsShip[];
|
||||
extern const BehaviorScript bhvTreasureChestsJrb[];
|
||||
extern const BehaviorScript bhvTreasureChests[];
|
||||
extern const BehaviorScript bhvTreasureChestsJRB[];
|
||||
extern const BehaviorScript bhvTreasureChestsDDD[];
|
||||
extern const BehaviorScript bhvTreasureChestBottom[];
|
||||
extern const BehaviorScript bhvTreasureChestTop[];
|
||||
extern const BehaviorScript bhvMips[];
|
||||
|
|
|
@ -10,34 +10,39 @@
|
|||
// Bug Fixes
|
||||
// --| Post-JP 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 || VERSION_SH)
|
||||
#define BUGFIX_MAX_LIVES (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
|
||||
/// Fixes bug where the Boss music won't fade out after defeating King Bob-omb
|
||||
#define BUGFIX_KING_BOB_OMB_FADE_MUSIC (0 || VERSION_US || VERSION_EU || VERSION_SH)
|
||||
/// Fixes bug in Bob-Omb Battlefield where entering a warp stops the Koopa race music
|
||||
#define BUGFIX_KOOPA_RACE_MUSIC (0 || VERSION_US || VERSION_EU || VERSION_SH)
|
||||
#define BUGFIX_KING_BOB_OMB_FADE_MUSIC (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
|
||||
/// Fixes bug in Bob-omb Battlefield where entering a warp stops the Koopa race music
|
||||
#define BUGFIX_KOOPA_RACE_MUSIC (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
|
||||
/// Fixes bug where Piranha Plants do not reset their action state when the
|
||||
/// player exits their activation radius.
|
||||
#define BUGFIX_PIRANHA_PLANT_STATE_RESET (0 || VERSION_US || VERSION_EU || VERSION_SH)
|
||||
#define BUGFIX_PIRANHA_PLANT_STATE_RESET (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
|
||||
/// Fixes bug where sleeping Piranha Plants damage players that bump into them
|
||||
#define BUGFIX_PIRANHA_PLANT_SLEEP_DAMAGE (0 || VERSION_US || VERSION_SH)
|
||||
#define BUGFIX_PIRANHA_PLANT_SLEEP_DAMAGE (0 || VERSION_US || VERSION_SH || VERSION_CN)
|
||||
/// 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 || VERSION_SH)
|
||||
#define BUGFIX_STAR_BOWSER_KEY (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
|
||||
/// Fixes bug that enables Mario in time stop even if is not ready to speak
|
||||
#define BUGFIX_DIALOG_TIME_STOP (0 || VERSION_US || VERSION_EU || VERSION_SH)
|
||||
#define BUGFIX_DIALOG_TIME_STOP (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
|
||||
/// Fixes bug that causes Mario to still collide with Bowser in BitS after his defeat
|
||||
#define BUGFIX_BOWSER_COLLIDE_BITS_DEAD (0 || VERSION_US || VERSION_EU || VERSION_SH)
|
||||
#define BUGFIX_BOWSER_COLLIDE_BITS_DEAD (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
|
||||
/// Fixes bug where Bowser wouldn't reset his speed when fallen off (and adds missing checks)
|
||||
#define BUGFIX_BOWSER_FALLEN_OFF_STAGE (0 || VERSION_US || VERSION_EU || VERSION_SH)
|
||||
#define BUGFIX_BOWSER_FALLEN_OFF_STAGE (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
|
||||
/// Fixes bug where Bowser would look weird while fading out
|
||||
#define BUGFIX_BOWSER_FADING_OUT (0 || VERSION_US || VERSION_EU || VERSION_SH)
|
||||
#define BUGFIX_BOWSER_FADING_OUT (0 || VERSION_US || VERSION_EU || VERSION_SH || VERSION_CN)
|
||||
|
||||
// Support Rumble Pak
|
||||
#define ENABLE_RUMBLE (0 || VERSION_SH)
|
||||
#define ENABLE_RUMBLE (0 || VERSION_SH || VERSION_CN)
|
||||
|
||||
// Screen Size Defines
|
||||
#define SCREEN_WIDTH 320
|
||||
#define SCREEN_HEIGHT 240
|
||||
|
||||
// Stack Size Defines
|
||||
#define IDLE_STACKSIZE 0x800
|
||||
#define STACKSIZE 0x2000
|
||||
#define UNUSED_STACKSIZE 0x1400
|
||||
|
||||
// Border Height Define for NTSC Versions
|
||||
#ifdef TARGET_N64
|
||||
#ifndef VERSION_EU
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef DIALOG_IDS_H
|
||||
#define DIALOG_IDS_H
|
||||
|
||||
enum DialogId {
|
||||
enum DialogID {
|
||||
DIALOG_NONE = -1,
|
||||
DIALOG_000,
|
||||
DIALOG_001,
|
||||
|
|
|
@ -214,19 +214,19 @@
|
|||
CMD_PTR(unk4), \
|
||||
CMD_W(unk8)
|
||||
|
||||
#define OBJECT_WITH_ACTS(model, posX, posY, posZ, angleX, angleY, angleZ, behParam, beh, acts) \
|
||||
#define OBJECT_WITH_ACTS(model, posX, posY, posZ, angleX, angleY, angleZ, bhvParam, bhv, acts) \
|
||||
CMD_BBBB(0x24, 0x18, acts, model), \
|
||||
CMD_HHHHHH(posX, posY, posZ, angleX, angleY, angleZ), \
|
||||
CMD_W(behParam), \
|
||||
CMD_PTR(beh)
|
||||
CMD_W(bhvParam), \
|
||||
CMD_PTR(bhv)
|
||||
|
||||
#define OBJECT(model, posX, posY, posZ, angleX, angleY, angleZ, behParam, beh) \
|
||||
OBJECT_WITH_ACTS(model, posX, posY, posZ, angleX, angleY, angleZ, behParam, beh, 0x1F)
|
||||
#define OBJECT(model, posX, posY, posZ, angleX, angleY, angleZ, bhvParam, bhv) \
|
||||
OBJECT_WITH_ACTS(model, posX, posY, posZ, angleX, angleY, angleZ, bhvParam, bhv, 0x1F)
|
||||
|
||||
#define MARIO(unk3, behArg, beh) \
|
||||
CMD_BBBB(0x25, 0x0C, 0x00, unk3), \
|
||||
CMD_W(behArg), \
|
||||
CMD_PTR(beh)
|
||||
#define MARIO(model, bhvArg, bhv) \
|
||||
CMD_BBBB(0x25, 0x0C, 0x00, model), \
|
||||
CMD_W(bhvArg), \
|
||||
CMD_PTR(bhv)
|
||||
|
||||
#define WARP_NODE(id, destLevel, destArea, destNode, flags) \
|
||||
CMD_BBBB(0x26, 0x08, id, destLevel), \
|
||||
|
@ -268,8 +268,8 @@
|
|||
CMD_BBH(0x2F, 0x08, 0x0000), \
|
||||
CMD_PTR(surfaceRooms)
|
||||
|
||||
#define SHOW_DIALOG(index, dialogId) \
|
||||
CMD_BBBB(0x30, 0x04, index, dialogId)
|
||||
#define SHOW_DIALOG(index, dialogID) \
|
||||
CMD_BBBB(0x30, 0x04, index, dialogID)
|
||||
|
||||
#define TERRAIN_TYPE(terrainType) \
|
||||
CMD_BBH(0x31, 0x04, terrainType)
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
#ifndef LEVEL_MISC_MACROS_H
|
||||
#define LEVEL_MISC_MACROS_H
|
||||
|
||||
#define MACRO_OBJECT_WITH_BEH_PARAM(preset, yaw, posX, posY, posZ, behParam) \
|
||||
((s16)((yaw * 0x10 / 45) << 9) | (preset + 0x1F)), posX, posY, posZ, behParam
|
||||
#define MACRO_OBJECT_WITH_BHV_PARAM(preset, yaw, posX, posY, posZ, bhvParam) \
|
||||
((s16)((yaw * 0x10 / 45) << 9) | (preset + 0x1F)), posX, posY, posZ, bhvParam
|
||||
|
||||
#define MACRO_OBJECT(preset, yaw, posX, posY, posZ) \
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(preset, yaw, posX, posY, posZ, 0)
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(preset, yaw, posX, posY, posZ, 0)
|
||||
|
||||
#define MACRO_OBJECT_END() \
|
||||
0x001E
|
||||
|
|
|
@ -2,11 +2,256 @@
|
|||
#define STDARG_H
|
||||
|
||||
// When not building with IDO, use the builtin vaarg macros for portability.
|
||||
#ifndef __sgi
|
||||
#if !defined(__sgi) && (__GNUC__ > 2)
|
||||
#define va_list __builtin_va_list
|
||||
#define va_start __builtin_va_start
|
||||
#define va_arg __builtin_va_arg
|
||||
#define va_end __builtin_va_end
|
||||
|
||||
#elif (__GNUC__ == 2)
|
||||
|
||||
typedef void *__gnuc_va_list;
|
||||
typedef __gnuc_va_list va_list;
|
||||
|
||||
#ifndef _VA_MIPS_H_ENUM
|
||||
#define _VA_MIPS_H_ENUM
|
||||
enum {
|
||||
__no_type_class = -1,
|
||||
__void_type_class,
|
||||
__integer_type_class,
|
||||
__char_type_class,
|
||||
__enumeral_type_class,
|
||||
__boolean_type_class,
|
||||
__pointer_type_class,
|
||||
__reference_type_class,
|
||||
__offset_type_class,
|
||||
__real_type_class,
|
||||
__complex_type_class,
|
||||
__function_type_class,
|
||||
__method_type_class,
|
||||
__record_type_class,
|
||||
__union_type_class,
|
||||
__array_type_class,
|
||||
__string_type_class,
|
||||
__set_type_class,
|
||||
__file_type_class,
|
||||
__lang_type_class
|
||||
};
|
||||
#endif
|
||||
|
||||
/* In GCC version 2, we want an ellipsis at the end of the declaration
|
||||
of the argument list. GCC version 1 can't parse it. */
|
||||
|
||||
#if __GNUC__ > 1
|
||||
#define __va_ellipsis ...
|
||||
#else
|
||||
#define __va_ellipsis
|
||||
#endif
|
||||
|
||||
#ifdef __mips64
|
||||
#define __va_rounded_size(__TYPE) \
|
||||
(((sizeof (__TYPE) + 8 - 1) / 8) * 8)
|
||||
#else
|
||||
#define __va_rounded_size(__TYPE) \
|
||||
(((sizeof (__TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
|
||||
#endif
|
||||
|
||||
#ifdef __mips64
|
||||
#define __va_reg_size 8
|
||||
#else
|
||||
#define __va_reg_size 4
|
||||
#endif
|
||||
|
||||
/* Get definitions for _MIPS_SIM_ABI64 etc. */
|
||||
#ifdef _MIPS_SIM
|
||||
//#include <sgidefs.h>
|
||||
#endif
|
||||
|
||||
#ifdef STDARG_H
|
||||
#if defined (__mips_eabi)
|
||||
#if ! defined (__mips_soft_float) && ! defined (__mips_single_float)
|
||||
#ifdef __mips64
|
||||
#define va_start(__AP, __LASTARG) \
|
||||
(__AP.__gp_regs = ((char *) __builtin_next_arg (__LASTARG) \
|
||||
- (__builtin_args_info (2) < 8 \
|
||||
? (8 - __builtin_args_info (2)) * __va_reg_size \
|
||||
: 0)), \
|
||||
__AP.__fp_left = 8 - __builtin_args_info (3), \
|
||||
__AP.__fp_regs = __AP.__gp_regs - __AP.__fp_left * __va_reg_size)
|
||||
#else /* ! defined (__mips64) */
|
||||
#define va_start(__AP, __LASTARG) \
|
||||
(__AP.__gp_regs = ((char *) __builtin_next_arg (__LASTARG) \
|
||||
- (__builtin_args_info (2) < 8 \
|
||||
? (8 - __builtin_args_info (2)) * __va_reg_size \
|
||||
: 0)), \
|
||||
__AP.__fp_left = (8 - __builtin_args_info (3)) / 2, \
|
||||
__AP.__fp_regs = __AP.__gp_regs - __AP.__fp_left * 8, \
|
||||
__AP.__fp_regs = (char *) ((int) __AP.__fp_regs & -8))
|
||||
#endif /* ! defined (__mips64) */
|
||||
#else /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float) ) */
|
||||
#define va_start(__AP, __LASTARG) \
|
||||
(__AP = ((__gnuc_va_list) __builtin_next_arg (__LASTARG) \
|
||||
- (__builtin_args_info (2) >= 8 ? 0 \
|
||||
: (8 - __builtin_args_info (2)) * __va_reg_size)))
|
||||
#endif /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float) ) */
|
||||
#else /* ! defined (__mips_eabi) */
|
||||
#define va_start(__AP, __LASTARG) \
|
||||
(__AP = (__gnuc_va_list) __builtin_next_arg (__LASTARG))
|
||||
#endif /* ! (defined (__mips_eabi) && ! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
|
||||
#else /* ! _STDARG_H */
|
||||
#define va_alist __builtin_va_alist
|
||||
#ifdef __mips64
|
||||
/* This assumes that `long long int' is always a 64 bit type. */
|
||||
#define va_dcl long long int __builtin_va_alist; __va_ellipsis
|
||||
#else
|
||||
#define va_dcl int __builtin_va_alist; __va_ellipsis
|
||||
#endif
|
||||
#if defined (__mips_eabi)
|
||||
#if ! defined (__mips_soft_float) && ! defined (__mips_single_float)
|
||||
#ifdef __mips64
|
||||
#define va_start(__AP) \
|
||||
(__AP.__gp_regs = ((char *) __builtin_next_arg () \
|
||||
- (__builtin_args_info (2) < 8 \
|
||||
? (8 - __builtin_args_info (2)) * __va_reg_size \
|
||||
: __va_reg_size)), \
|
||||
__AP.__fp_left = 8 - __builtin_args_info (3), \
|
||||
__AP.__fp_regs = __AP.__gp_regs - __AP.__fp_left * __va_reg_size)
|
||||
#else /* ! defined (__mips64) */
|
||||
#define va_start(__AP) \
|
||||
(__AP.__gp_regs = ((char *) __builtin_next_arg () \
|
||||
- (__builtin_args_info (2) < 8 \
|
||||
? (8 - __builtin_args_info (2)) * __va_reg_size \
|
||||
: __va_reg_size)), \
|
||||
__AP.__fp_left = (8 - __builtin_args_info (3)) / 2, \
|
||||
__AP.__fp_regs = __AP.__gp_regs - __AP.__fp_left * 8, \
|
||||
__AP.__fp_regs = (char *) ((int) __AP.__fp_regs & -8))
|
||||
#endif /* ! defined (__mips64) */
|
||||
#else /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
|
||||
#define va_start(__AP) \
|
||||
(__AP = ((__gnuc_va_list) __builtin_next_arg () \
|
||||
- (__builtin_args_info (2) >= 8 ? __va_reg_size \
|
||||
: (8 - __builtin_args_info (2)) * __va_reg_size)))
|
||||
#endif /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
|
||||
/* Need alternate code for _MIPS_SIM_ABI64. */
|
||||
#elif defined(_MIPS_SIM) && (_MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32)
|
||||
#define va_start(__AP) \
|
||||
(__AP = (__gnuc_va_list) __builtin_next_arg () \
|
||||
+ (__builtin_args_info (2) >= 8 ? -8 : 0))
|
||||
#else
|
||||
#define va_start(__AP) __AP = (char *) &__builtin_va_alist
|
||||
#endif
|
||||
#endif /* ! _STDARG_H */
|
||||
|
||||
#ifndef va_end
|
||||
void va_end (__gnuc_va_list); /* Defined in libgcc.a */
|
||||
#endif
|
||||
#define va_end(__AP) ((void)0)
|
||||
|
||||
#if defined (__mips_eabi)
|
||||
|
||||
#if ! defined (__mips_soft_float) && ! defined (__mips_single_float)
|
||||
#ifdef __mips64
|
||||
#define __va_next_addr(__AP, __type) \
|
||||
((__builtin_classify_type (*(__type *) 0) == __real_type_class \
|
||||
&& __AP.__fp_left > 0) \
|
||||
? (--__AP.__fp_left, (__AP.__fp_regs += 8) - 8) \
|
||||
: (__AP.__gp_regs += __va_reg_size) - __va_reg_size)
|
||||
#else
|
||||
#define __va_next_addr(__AP, __type) \
|
||||
((__builtin_classify_type (*(__type *) 0) == __real_type_class \
|
||||
&& __AP.__fp_left > 0) \
|
||||
? (--__AP.__fp_left, (__AP.__fp_regs += 8) - 8) \
|
||||
: (((__builtin_classify_type (* (__type *) 0) < __record_type_class \
|
||||
&& __alignof__ (__type) > 4) \
|
||||
? __AP.__gp_regs = (char *) (((int) __AP.__gp_regs + 8 - 1) & -8) \
|
||||
: (char *) 0), \
|
||||
(__builtin_classify_type (* (__type *) 0) >= __record_type_class \
|
||||
? (__AP.__gp_regs += __va_reg_size) - __va_reg_size \
|
||||
: ((__AP.__gp_regs += __va_rounded_size (__type)) \
|
||||
- __va_rounded_size (__type)))))
|
||||
#endif
|
||||
#else /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
|
||||
#ifdef __mips64
|
||||
#define __va_next_addr(__AP, __type) \
|
||||
((__AP += __va_reg_size) - __va_reg_size)
|
||||
#else
|
||||
#define __va_next_addr(__AP, __type) \
|
||||
(((__builtin_classify_type (* (__type *) 0) < __record_type_class \
|
||||
&& __alignof__ (__type) > 4) \
|
||||
? __AP = (char *) (((__PTRDIFF_TYPE__) __AP + 8 - 1) & -8) \
|
||||
: (char *) 0), \
|
||||
(__builtin_classify_type (* (__type *) 0) >= __record_type_class \
|
||||
? (__AP += __va_reg_size) - __va_reg_size \
|
||||
: ((__AP += __va_rounded_size (__type)) \
|
||||
- __va_rounded_size (__type))))
|
||||
#endif
|
||||
#endif /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
|
||||
|
||||
#ifdef __MIPSEB__
|
||||
#define va_arg(__AP, __type) \
|
||||
((__va_rounded_size (__type) <= __va_reg_size) \
|
||||
? *(__type *) (void *) (__va_next_addr (__AP, __type) \
|
||||
+ __va_reg_size \
|
||||
- sizeof (__type)) \
|
||||
: (__builtin_classify_type (*(__type *) 0) >= __record_type_class \
|
||||
? **(__type **) (void *) (__va_next_addr (__AP, __type) \
|
||||
+ __va_reg_size \
|
||||
- sizeof (char *)) \
|
||||
: *(__type *) (void *) __va_next_addr (__AP, __type)))
|
||||
#else
|
||||
#define va_arg(__AP, __type) \
|
||||
((__va_rounded_size (__type) <= __va_reg_size) \
|
||||
? *(__type *) (void *) __va_next_addr (__AP, __type) \
|
||||
: (__builtin_classify_type (* (__type *) 0) >= __record_type_class \
|
||||
? **(__type **) (void *) __va_next_addr (__AP, __type) \
|
||||
: *(__type *) (void *) __va_next_addr (__AP, __type)))
|
||||
#endif
|
||||
|
||||
#else /* ! defined (__mips_eabi) */
|
||||
|
||||
/* We cast to void * and then to TYPE * because this avoids
|
||||
a warning about increasing the alignment requirement. */
|
||||
/* The __mips64 cases are reversed from the 32 bit cases, because the standard
|
||||
32 bit calling convention left-aligns all parameters smaller than a word,
|
||||
whereas the __mips64 calling convention does not (and hence they are
|
||||
right aligned). */
|
||||
#ifdef __mips64
|
||||
#ifdef __MIPSEB__
|
||||
#define va_arg(__AP, __type) \
|
||||
((__type *) (void *) (__AP = (char *) \
|
||||
((((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8) \
|
||||
+ __va_rounded_size (__type))))[-1]
|
||||
#else
|
||||
#define va_arg(__AP, __type) \
|
||||
((__AP = (char *) ((((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8) \
|
||||
+ __va_rounded_size (__type))), \
|
||||
*(__type *) (void *) (__AP - __va_rounded_size (__type)))
|
||||
#endif
|
||||
|
||||
#else /* not __mips64 */
|
||||
|
||||
#ifdef __MIPSEB__
|
||||
/* For big-endian machines. */
|
||||
#define va_arg(__AP, __type) \
|
||||
((__AP = (char *) ((__alignof__ (__type) > 4 \
|
||||
? ((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8 \
|
||||
: ((__PTRDIFF_TYPE__)__AP + 4 - 1) & -4) \
|
||||
+ __va_rounded_size (__type))), \
|
||||
*(__type *) (void *) (__AP - __va_rounded_size (__type)))
|
||||
#else
|
||||
/* For little-endian machines. */
|
||||
#define va_arg(__AP, __type) \
|
||||
((__type *) (void *) (__AP = (char *) ((__alignof__(__type) > 4 \
|
||||
? ((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8 \
|
||||
: ((__PTRDIFF_TYPE__)__AP + 4 - 1) & -4) \
|
||||
+ __va_rounded_size(__type))))[-1]
|
||||
#endif
|
||||
#endif
|
||||
#endif /* ! defined (__mips_eabi) */
|
||||
|
||||
/* Copy __gnuc_va_list into another variable of this type. */
|
||||
#define __va_copy(dest, src) (dest) = (src)
|
||||
|
||||
#else
|
||||
|
||||
typedef char *va_list;
|
||||
|
|
|
@ -1,373 +0,0 @@
|
|||
#ifndef MACRO_PRESET_NAMES_H
|
||||
#define MACRO_PRESET_NAMES_H
|
||||
|
||||
enum MacroPresets {
|
||||
macro_yellow_coin,
|
||||
macro_yellow_coin_2,
|
||||
macro_moving_blue_coin,
|
||||
macro_sliding_blue_coin,
|
||||
macro_red_coin,
|
||||
macro_empty_5,
|
||||
macro_coin_line_horizontal,
|
||||
macro_coin_ring_horizontal,
|
||||
macro_coin_arrow,
|
||||
macro_coin_line_horizontal_flying,
|
||||
macro_coin_line_vertical,
|
||||
macro_coin_ring_horizontal_flying,
|
||||
macro_coin_ring_vertical,
|
||||
macro_coin_arrow_flying,
|
||||
macro_hidden_star_trigger,
|
||||
macro_empty_15,
|
||||
macro_empty_16,
|
||||
macro_empty_17,
|
||||
macro_empty_18,
|
||||
macro_empty_19,
|
||||
macro_fake_star,
|
||||
macro_wooden_signpost,
|
||||
macro_cannon_closed,
|
||||
macro_bobomb_buddy_opens_cannon,
|
||||
macro_butterfly,
|
||||
macro_bouncing_fireball_copy,
|
||||
macro_fish_group_3,
|
||||
macro_fish_group,
|
||||
macro_unknown_28,
|
||||
macro_hidden_1up_in_pole,
|
||||
macro_huge_goomba,
|
||||
macro_tiny_goomba,
|
||||
macro_goomba_triplet_spawner,
|
||||
macro_goomba_quintuplet_spawner,
|
||||
macro_sign_on_wall,
|
||||
macro_chuckya,
|
||||
macro_cannon_open,
|
||||
macro_goomba,
|
||||
macro_homing_amp,
|
||||
macro_circling_amp,
|
||||
macro_unknown_40,
|
||||
macro_unknown_41,
|
||||
macro_free_bowling_ball,
|
||||
macro_snufit,
|
||||
macro_recovery_heart,
|
||||
macro_1up_sliding,
|
||||
macro_1up,
|
||||
macro_1up_jump_on_approach,
|
||||
macro_hidden_1up,
|
||||
macro_hidden_1up_trigger,
|
||||
macro_1up_2,
|
||||
macro_1up_3,
|
||||
macro_empty_52,
|
||||
macro_blue_coin_switch,
|
||||
macro_hidden_blue_coin,
|
||||
macro_wing_cap_switch,
|
||||
macro_metal_cap_switch,
|
||||
macro_vanish_cap_switch,
|
||||
macro_yellow_cap_switch,
|
||||
macro_unknown_59,
|
||||
macro_box_wing_cap,
|
||||
macro_box_metal_cap,
|
||||
macro_box_vanish_cap,
|
||||
macro_box_koopa_shell,
|
||||
macro_box_one_coin,
|
||||
macro_box_three_coins,
|
||||
macro_box_ten_coins,
|
||||
macro_box_1up,
|
||||
macro_box_star_1,
|
||||
macro_breakable_box_no_coins,
|
||||
macro_breakable_box_three_coins,
|
||||
macro_pushable_metal_box,
|
||||
macro_breakable_box_small,
|
||||
macro_floor_switch_hidden_objects,
|
||||
macro_hidden_box,
|
||||
macro_hidden_object_2,
|
||||
macro_hidden_object_3,
|
||||
macro_breakable_box_giant,
|
||||
macro_koopa_shell_underwater,
|
||||
macro_box_1up_running_away,
|
||||
macro_empty_80,
|
||||
macro_bullet_bill_cannon,
|
||||
macro_heave_ho,
|
||||
macro_empty_83,
|
||||
macro_thwomp,
|
||||
macro_fire_spitter,
|
||||
macro_fire_fly_guy,
|
||||
macro_jumping_box,
|
||||
macro_butterfly_triplet,
|
||||
macro_butterfly_triplet_2,
|
||||
macro_empty_90,
|
||||
macro_empty_91,
|
||||
macro_empty_92,
|
||||
macro_bully,
|
||||
macro_bully_2,
|
||||
macro_empty_95,
|
||||
macro_unknown_96,
|
||||
macro_bouncing_fireball,
|
||||
macro_flamethrower,
|
||||
macro_empty_99,
|
||||
macro_empty_100,
|
||||
macro_empty_101,
|
||||
macro_empty_102,
|
||||
macro_empty_103,
|
||||
macro_empty_104,
|
||||
macro_empty_105,
|
||||
macro_wooden_post,
|
||||
macro_water_bomb_spawner,
|
||||
macro_enemy_lakitu,
|
||||
macro_bob_koopa_the_quick,
|
||||
macro_koopa_race_endpoint,
|
||||
macro_bobomb,
|
||||
macro_water_bomb_cannon_copy,
|
||||
macro_bobomb_buddy_opens_cannon_copy,
|
||||
macro_water_bomb_cannon,
|
||||
macro_bobomb_still,
|
||||
macro_empty_116,
|
||||
macro_empty_117,
|
||||
macro_empty_118,
|
||||
macro_empty_119,
|
||||
macro_empty_120,
|
||||
macro_empty_121,
|
||||
macro_empty_122,
|
||||
macro_unknown_123,
|
||||
macro_empty_124,
|
||||
macro_unagi,
|
||||
macro_sushi,
|
||||
macro_empty_127,
|
||||
macro_empty_128,
|
||||
macro_empty_129,
|
||||
macro_empty_130,
|
||||
macro_empty_131,
|
||||
macro_empty_132,
|
||||
macro_empty_133,
|
||||
macro_empty_134,
|
||||
macro_empty_135,
|
||||
macro_empty_136,
|
||||
macro_unknown_137,
|
||||
macro_tornado,
|
||||
macro_pokey,
|
||||
macro_pokey_copy,
|
||||
macro_tox_box,
|
||||
macro_empty_142,
|
||||
macro_empty_143,
|
||||
macro_empty_144,
|
||||
macro_empty_145,
|
||||
macro_empty_146,
|
||||
macro_empty_147,
|
||||
macro_empty_148,
|
||||
macro_empty_149,
|
||||
macro_empty_150,
|
||||
macro_monty_mole_2,
|
||||
macro_monty_mole,
|
||||
macro_monty_mole_hole,
|
||||
macro_fly_guy,
|
||||
macro_empty_155,
|
||||
macro_wiggler,
|
||||
macro_empty_157,
|
||||
macro_empty_158,
|
||||
macro_empty_159,
|
||||
macro_empty_160,
|
||||
macro_empty_161,
|
||||
macro_empty_162,
|
||||
macro_empty_163,
|
||||
macro_empty_164,
|
||||
macro_spindrift,
|
||||
macro_mr_blizzard,
|
||||
macro_mr_blizzard_copy,
|
||||
macro_empty_168,
|
||||
macro_small_penguin,
|
||||
macro_tuxies_mother,
|
||||
macro_tuxies_mother_copy,
|
||||
macro_mr_blizzard_2,
|
||||
macro_empty_173,
|
||||
macro_empty_174,
|
||||
macro_empty_175,
|
||||
macro_empty_176,
|
||||
macro_empty_177,
|
||||
macro_empty_178,
|
||||
macro_empty_179,
|
||||
macro_empty_180,
|
||||
macro_empty_181,
|
||||
macro_empty_182,
|
||||
macro_empty_183,
|
||||
macro_empty_184,
|
||||
macro_empty_185,
|
||||
macro_empty_186,
|
||||
macro_empty_187,
|
||||
macro_empty_188,
|
||||
macro_haunted_chair_copy,
|
||||
macro_haunted_chair,
|
||||
macro_haunted_chair_copy2,
|
||||
macro_boo,
|
||||
macro_boo_copy,
|
||||
macro_boo_group,
|
||||
macro_boo_with_cage,
|
||||
macro_beta_key,
|
||||
macro_empty_197,
|
||||
macro_empty_198,
|
||||
macro_empty_199,
|
||||
macro_empty_200,
|
||||
macro_empty_201,
|
||||
macro_empty_202,
|
||||
macro_empty_203,
|
||||
macro_empty_204,
|
||||
macro_empty_205,
|
||||
macro_empty_206,
|
||||
macro_empty_207,
|
||||
macro_empty_208,
|
||||
macro_empty_209,
|
||||
macro_empty_210,
|
||||
macro_empty_211,
|
||||
macro_empty_212,
|
||||
macro_empty_213,
|
||||
macro_empty_214,
|
||||
macro_empty_215,
|
||||
macro_empty_216,
|
||||
macro_empty_217,
|
||||
macro_empty_218,
|
||||
macro_empty_219,
|
||||
macro_empty_220,
|
||||
macro_empty_221,
|
||||
macro_empty_222,
|
||||
macro_empty_223,
|
||||
macro_empty_224,
|
||||
macro_empty_225,
|
||||
macro_empty_226,
|
||||
macro_empty_227,
|
||||
macro_empty_228,
|
||||
macro_empty_229,
|
||||
macro_empty_230,
|
||||
macro_empty_231,
|
||||
macro_empty_232,
|
||||
macro_empty_233,
|
||||
macro_chirp_chirp,
|
||||
macro_seaweed_bundle,
|
||||
macro_beta_chest,
|
||||
macro_water_mine,
|
||||
macro_fish_group_4,
|
||||
macro_fish_group_2,
|
||||
macro_jet_stream_ring_spawner,
|
||||
macro_jet_stream_ring_spawner_copy,
|
||||
macro_skeeter,
|
||||
macro_clam_shell,
|
||||
macro_empty_244,
|
||||
macro_empty_245,
|
||||
macro_empty_246,
|
||||
macro_empty_247,
|
||||
macro_empty_248,
|
||||
macro_empty_249,
|
||||
macro_empty_250,
|
||||
macro_ukiki,
|
||||
macro_ukiki_2,
|
||||
macro_piranha_plant,
|
||||
macro_empty_254,
|
||||
macro_whomp,
|
||||
macro_chain_chomp,
|
||||
macro_empty_257,
|
||||
macro_koopa,
|
||||
macro_koopa_shellless,
|
||||
macro_wooden_post_copy,
|
||||
macro_fire_piranha_plant,
|
||||
macro_fire_piranha_plant_2,
|
||||
macro_thi_koopa_the_quick,
|
||||
macro_empty_264,
|
||||
macro_empty_265,
|
||||
macro_empty_266,
|
||||
macro_empty_267,
|
||||
macro_empty_268,
|
||||
macro_empty_269,
|
||||
macro_empty_270,
|
||||
macro_empty_271,
|
||||
macro_empty_272,
|
||||
macro_empty_273,
|
||||
macro_empty_274,
|
||||
macro_empty_275,
|
||||
macro_empty_276,
|
||||
macro_empty_277,
|
||||
macro_empty_278,
|
||||
macro_empty_279,
|
||||
macro_empty_280,
|
||||
macro_moneybag,
|
||||
macro_empty_282,
|
||||
macro_empty_283,
|
||||
macro_empty_284,
|
||||
macro_empty_285,
|
||||
macro_empty_286,
|
||||
macro_empty_287,
|
||||
macro_empty_288,
|
||||
macro_swoop,
|
||||
macro_swoop_2,
|
||||
macro_mr_i,
|
||||
macro_scuttlebug_spawner,
|
||||
macro_scuttlebug,
|
||||
macro_empty_294,
|
||||
macro_empty_295,
|
||||
macro_empty_296,
|
||||
macro_empty_297,
|
||||
macro_empty_298,
|
||||
macro_empty_299,
|
||||
macro_empty_300,
|
||||
macro_empty_301,
|
||||
macro_empty_302,
|
||||
macro_unknown_303,
|
||||
macro_empty_304,
|
||||
macro_empty_305,
|
||||
macro_empty_306,
|
||||
macro_empty_307,
|
||||
macro_empty_308,
|
||||
macro_empty_309,
|
||||
macro_empty_310,
|
||||
macro_empty_311,
|
||||
macro_empty_312,
|
||||
macro_ttc_rotating_cube,
|
||||
macro_ttc_rotating_prism,
|
||||
macro_ttc_pendulum,
|
||||
macro_ttc_large_treadmill,
|
||||
macro_ttc_small_treadmill,
|
||||
macro_ttc_push_block,
|
||||
macro_ttc_rotating_hexagon,
|
||||
macro_ttc_rotating_triangle,
|
||||
macro_ttc_pit_block,
|
||||
macro_ttc_pit_block_2,
|
||||
macro_ttc_elevator_platform,
|
||||
macro_ttc_clock_hand,
|
||||
macro_ttc_spinner,
|
||||
macro_ttc_small_gear,
|
||||
macro_ttc_large_gear,
|
||||
macro_ttc_large_treadmill_2,
|
||||
macro_ttc_small_treadmill_2,
|
||||
macro_empty_330,
|
||||
macro_empty_331,
|
||||
macro_empty_332,
|
||||
macro_empty_333,
|
||||
macro_empty_334,
|
||||
macro_empty_335,
|
||||
macro_empty_336,
|
||||
macro_empty_337,
|
||||
macro_empty_338,
|
||||
macro_box_star_2,
|
||||
macro_box_star_3,
|
||||
macro_box_star_4,
|
||||
macro_box_star_5,
|
||||
macro_box_star_6,
|
||||
macro_empty_344,
|
||||
macro_empty_345,
|
||||
macro_empty_346,
|
||||
macro_empty_347,
|
||||
macro_empty_348,
|
||||
macro_empty_349,
|
||||
macro_bits_sliding_platform,
|
||||
macro_bits_twin_sliding_platforms,
|
||||
macro_bits_unknown_352,
|
||||
macro_bits_octagonal_platform,
|
||||
macro_bits_staircase,
|
||||
macro_empty_355,
|
||||
macro_empty_356,
|
||||
macro_bits_ferris_wheel_axle,
|
||||
macro_bits_arrow_platform,
|
||||
macro_bits_seesaw_platform,
|
||||
macro_bits_tilting_w_platform,
|
||||
macro_empty_361,
|
||||
macro_empty_362,
|
||||
macro_empty_363,
|
||||
macro_empty_364,
|
||||
macro_empty_365
|
||||
};
|
||||
|
||||
#endif // MACRO_PRESET_NAMES_H
|
|
@ -1,383 +1,375 @@
|
|||
#ifndef MACRO_PRESETS_H
|
||||
#define MACRO_PRESETS_H
|
||||
|
||||
#include "macro_preset_names.h"
|
||||
#include "behavior_data.h"
|
||||
#include "model_ids.h"
|
||||
enum MacroPresets {
|
||||
macro_yellow_coin_1,
|
||||
macro_yellow_coin_2,
|
||||
macro_moving_blue_coin,
|
||||
macro_sliding_blue_coin,
|
||||
macro_red_coin,
|
||||
macro_empty_5,
|
||||
macro_coin_line_horizontal,
|
||||
macro_coin_ring_horizontal,
|
||||
macro_coin_arrow,
|
||||
macro_coin_line_horizontal_flying,
|
||||
macro_coin_line_vertical_flying,
|
||||
macro_coin_ring_horizontal_flying,
|
||||
macro_coin_ring_vertical_flying,
|
||||
macro_coin_arrow_flying,
|
||||
macro_hidden_star_trigger,
|
||||
macro_empty_15,
|
||||
macro_empty_16,
|
||||
macro_empty_17,
|
||||
macro_empty_18,
|
||||
macro_empty_19,
|
||||
macro_fake_star,
|
||||
macro_wooden_signpost,
|
||||
macro_cannon_closed,
|
||||
macro_bobomb_buddy_opens_cannon_1,
|
||||
macro_butterfly,
|
||||
macro_bouncing_fireball_1,
|
||||
macro_fish_spawner_many_blue,
|
||||
macro_fish_spawner_few_blue,
|
||||
macro_unknown_28,
|
||||
macro_hidden_1up_in_pole,
|
||||
macro_huge_goomba,
|
||||
macro_tiny_goomba,
|
||||
macro_goomba_triplet_spawner,
|
||||
macro_goomba_quintuplet_spawner,
|
||||
macro_sign_on_wall,
|
||||
macro_chuckya,
|
||||
macro_cannon_open,
|
||||
macro_goomba,
|
||||
macro_homing_amp,
|
||||
macro_circling_amp,
|
||||
macro_unknown_40,
|
||||
macro_unknown_41,
|
||||
macro_free_bowling_ball,
|
||||
macro_snufit,
|
||||
macro_recovery_heart,
|
||||
macro_1up_sliding,
|
||||
macro_1up,
|
||||
macro_1up_jump_on_approach,
|
||||
macro_hidden_1up,
|
||||
macro_hidden_1up_trigger,
|
||||
macro_1up_beat_bitdw_bowser,
|
||||
macro_1up_beat_bitfs_bowser,
|
||||
macro_empty_52,
|
||||
macro_blue_coin_switch,
|
||||
macro_hidden_blue_coin,
|
||||
macro_wing_cap_switch,
|
||||
macro_metal_cap_switch,
|
||||
macro_vanish_cap_switch,
|
||||
macro_yellow_cap_switch,
|
||||
macro_unknown_59,
|
||||
macro_box_wing_cap,
|
||||
macro_box_metal_cap,
|
||||
macro_box_vanish_cap,
|
||||
macro_box_koopa_shell,
|
||||
macro_box_one_coin,
|
||||
macro_box_three_coins,
|
||||
macro_box_ten_coins,
|
||||
macro_box_1up,
|
||||
macro_box_star_act_1,
|
||||
macro_breakable_box_no_coins,
|
||||
macro_breakable_box_three_coins,
|
||||
macro_pushable_metal_box,
|
||||
macro_breakable_box_small,
|
||||
macro_floor_switch_hidden_objects,
|
||||
macro_hidden_breakable_box,
|
||||
macro_hidden_unbreakable_box_1,
|
||||
macro_hidden_unbreakable_box_2,
|
||||
macro_breakable_box_giant,
|
||||
macro_koopa_shell_underwater,
|
||||
macro_box_1up_running_away,
|
||||
macro_empty_80,
|
||||
macro_bullet_bill_cannon,
|
||||
macro_heave_ho,
|
||||
macro_empty_83,
|
||||
macro_thwomp,
|
||||
macro_fire_spitter,
|
||||
macro_fire_fly_guy,
|
||||
macro_jumping_box,
|
||||
macro_butterfly_triplet,
|
||||
macro_butterfly_triplet_no_bombs,
|
||||
macro_empty_90,
|
||||
macro_empty_91,
|
||||
macro_empty_92,
|
||||
macro_small_bully,
|
||||
macro_big_bully,
|
||||
macro_empty_95,
|
||||
macro_unknown_96,
|
||||
macro_bouncing_fireball_2,
|
||||
macro_flamethrower,
|
||||
macro_empty_99,
|
||||
macro_empty_100,
|
||||
macro_empty_101,
|
||||
macro_empty_102,
|
||||
macro_empty_103,
|
||||
macro_empty_104,
|
||||
macro_empty_105,
|
||||
macro_wooden_post_1,
|
||||
macro_water_bomb_spawner,
|
||||
macro_enemy_lakitu,
|
||||
macro_bob_koopa_the_quick,
|
||||
macro_koopa_race_endpoint,
|
||||
macro_bobomb,
|
||||
macro_water_bomb_cannon_1,
|
||||
macro_bobomb_buddy_opens_cannon_2,
|
||||
macro_water_bomb_cannon_2,
|
||||
macro_bobomb_stationary,
|
||||
macro_empty_116,
|
||||
macro_empty_117,
|
||||
macro_empty_118,
|
||||
macro_empty_119,
|
||||
macro_empty_120,
|
||||
macro_empty_121,
|
||||
macro_empty_122,
|
||||
macro_unknown_123,
|
||||
macro_empty_124,
|
||||
macro_unagi,
|
||||
macro_sushi,
|
||||
macro_empty_127,
|
||||
macro_empty_128,
|
||||
macro_empty_129,
|
||||
macro_empty_130,
|
||||
macro_empty_131,
|
||||
macro_empty_132,
|
||||
macro_empty_133,
|
||||
macro_empty_134,
|
||||
macro_empty_135,
|
||||
macro_empty_136,
|
||||
macro_unknown_137,
|
||||
macro_tornado,
|
||||
macro_pokey_1,
|
||||
macro_pokey_2,
|
||||
macro_tox_box,
|
||||
macro_empty_142,
|
||||
macro_empty_143,
|
||||
macro_empty_144,
|
||||
macro_empty_145,
|
||||
macro_empty_146,
|
||||
macro_empty_147,
|
||||
macro_empty_148,
|
||||
macro_empty_149,
|
||||
macro_empty_150,
|
||||
macro_monty_mole_no_rock,
|
||||
macro_monty_mole,
|
||||
macro_monty_mole_hole,
|
||||
macro_fly_guy,
|
||||
macro_empty_155,
|
||||
macro_wiggler,
|
||||
macro_empty_157,
|
||||
macro_empty_158,
|
||||
macro_empty_159,
|
||||
macro_empty_160,
|
||||
macro_empty_161,
|
||||
macro_empty_162,
|
||||
macro_empty_163,
|
||||
macro_empty_164,
|
||||
macro_spindrift,
|
||||
macro_mr_blizzard_1,
|
||||
macro_mr_blizzard_2,
|
||||
macro_empty_168,
|
||||
macro_small_penguin,
|
||||
macro_tuxies_mother_1,
|
||||
macro_tuxies_mother_2,
|
||||
macro_mr_blizzard_jumping,
|
||||
macro_empty_173,
|
||||
macro_empty_174,
|
||||
macro_empty_175,
|
||||
macro_empty_176,
|
||||
macro_empty_177,
|
||||
macro_empty_178,
|
||||
macro_empty_179,
|
||||
macro_empty_180,
|
||||
macro_empty_181,
|
||||
macro_empty_182,
|
||||
macro_empty_183,
|
||||
macro_empty_184,
|
||||
macro_empty_185,
|
||||
macro_empty_186,
|
||||
macro_empty_187,
|
||||
macro_empty_188,
|
||||
macro_haunted_chair_1,
|
||||
macro_haunted_chair_2,
|
||||
macro_haunted_chair_3,
|
||||
macro_boo_1,
|
||||
macro_boo_2,
|
||||
macro_boo_group,
|
||||
macro_boo_with_cage,
|
||||
macro_beta_key,
|
||||
macro_empty_197,
|
||||
macro_empty_198,
|
||||
macro_empty_199,
|
||||
macro_empty_200,
|
||||
macro_empty_201,
|
||||
macro_empty_202,
|
||||
macro_empty_203,
|
||||
macro_empty_204,
|
||||
macro_empty_205,
|
||||
macro_empty_206,
|
||||
macro_empty_207,
|
||||
macro_empty_208,
|
||||
macro_empty_209,
|
||||
macro_empty_210,
|
||||
macro_empty_211,
|
||||
macro_empty_212,
|
||||
macro_empty_213,
|
||||
macro_empty_214,
|
||||
macro_empty_215,
|
||||
macro_empty_216,
|
||||
macro_empty_217,
|
||||
macro_empty_218,
|
||||
macro_empty_219,
|
||||
macro_empty_220,
|
||||
macro_empty_221,
|
||||
macro_empty_222,
|
||||
macro_empty_223,
|
||||
macro_empty_224,
|
||||
macro_empty_225,
|
||||
macro_empty_226,
|
||||
macro_empty_227,
|
||||
macro_empty_228,
|
||||
macro_empty_229,
|
||||
macro_empty_230,
|
||||
macro_empty_231,
|
||||
macro_empty_232,
|
||||
macro_empty_233,
|
||||
macro_chirp_chirp,
|
||||
macro_seaweed_bundle,
|
||||
macro_beta_chest,
|
||||
macro_water_mine,
|
||||
macro_fish_spawner_many_cyan,
|
||||
macro_fish_spawner_few_cyan,
|
||||
macro_jet_stream_ring_spawner_1,
|
||||
macro_jet_stream_ring_spawner_2,
|
||||
macro_skeeter,
|
||||
macro_clam_shell,
|
||||
macro_empty_244,
|
||||
macro_empty_245,
|
||||
macro_empty_246,
|
||||
macro_empty_247,
|
||||
macro_empty_248,
|
||||
macro_empty_249,
|
||||
macro_empty_250,
|
||||
macro_cage_ukiki,
|
||||
macro_cap_ukiki,
|
||||
macro_piranha_plant,
|
||||
macro_empty_254,
|
||||
macro_whomp,
|
||||
macro_chain_chomp,
|
||||
macro_empty_257,
|
||||
macro_koopa,
|
||||
macro_koopa_shellless,
|
||||
macro_wooden_post_2,
|
||||
macro_fire_piranha_plant_1,
|
||||
macro_fire_piranha_plant_2,
|
||||
macro_koopa_tiny,
|
||||
macro_empty_264,
|
||||
macro_empty_265,
|
||||
macro_empty_266,
|
||||
macro_empty_267,
|
||||
macro_empty_268,
|
||||
macro_empty_269,
|
||||
macro_empty_270,
|
||||
macro_empty_271,
|
||||
macro_empty_272,
|
||||
macro_empty_273,
|
||||
macro_empty_274,
|
||||
macro_empty_275,
|
||||
macro_empty_276,
|
||||
macro_empty_277,
|
||||
macro_empty_278,
|
||||
macro_empty_279,
|
||||
macro_empty_280,
|
||||
macro_moneybag,
|
||||
macro_empty_282,
|
||||
macro_empty_283,
|
||||
macro_empty_284,
|
||||
macro_empty_285,
|
||||
macro_empty_286,
|
||||
macro_empty_287,
|
||||
macro_empty_288,
|
||||
macro_swoop_1,
|
||||
macro_swoop_2,
|
||||
macro_mr_i,
|
||||
macro_scuttlebug_spawner,
|
||||
macro_scuttlebug,
|
||||
macro_empty_294,
|
||||
macro_empty_295,
|
||||
macro_empty_296,
|
||||
macro_empty_297,
|
||||
macro_empty_298,
|
||||
macro_empty_299,
|
||||
macro_empty_300,
|
||||
macro_empty_301,
|
||||
macro_empty_302,
|
||||
macro_unknown_303,
|
||||
macro_empty_304,
|
||||
macro_empty_305,
|
||||
macro_empty_306,
|
||||
macro_empty_307,
|
||||
macro_empty_308,
|
||||
macro_empty_309,
|
||||
macro_empty_310,
|
||||
macro_empty_311,
|
||||
macro_empty_312,
|
||||
macro_ttc_rotating_cube,
|
||||
macro_ttc_rotating_prism,
|
||||
macro_ttc_pendulum,
|
||||
macro_ttc_large_treadmill_1,
|
||||
macro_ttc_small_treadmill_1,
|
||||
macro_ttc_push_block,
|
||||
macro_ttc_rotating_hexagon,
|
||||
macro_ttc_rotating_triangle,
|
||||
macro_ttc_pit_block_1,
|
||||
macro_ttc_pit_block_2,
|
||||
macro_ttc_elevator_platform,
|
||||
macro_ttc_clock_hand,
|
||||
macro_ttc_spinner,
|
||||
macro_ttc_small_gear,
|
||||
macro_ttc_large_gear,
|
||||
macro_ttc_large_treadmill_2,
|
||||
macro_ttc_small_treadmill_2,
|
||||
macro_empty_330,
|
||||
macro_empty_331,
|
||||
macro_empty_332,
|
||||
macro_empty_333,
|
||||
macro_empty_334,
|
||||
macro_empty_335,
|
||||
macro_empty_336,
|
||||
macro_empty_337,
|
||||
macro_empty_338,
|
||||
macro_box_star_act_2,
|
||||
macro_box_star_act_3,
|
||||
macro_box_star_act_4,
|
||||
macro_box_star_act_5,
|
||||
macro_box_star_act_6,
|
||||
macro_empty_344,
|
||||
macro_empty_345,
|
||||
macro_empty_346,
|
||||
macro_empty_347,
|
||||
macro_empty_348,
|
||||
macro_empty_349,
|
||||
macro_bits_sliding_platform,
|
||||
macro_bits_twin_sliding_platforms,
|
||||
macro_bits_unknown_352,
|
||||
macro_bits_octagonal_platform,
|
||||
macro_bits_staircase,
|
||||
macro_empty_355,
|
||||
macro_empty_356,
|
||||
macro_bits_ferris_wheel_axle,
|
||||
macro_bits_arrow_platform,
|
||||
macro_bits_seesaw_platform,
|
||||
macro_bits_tilting_w_platform,
|
||||
macro_empty_361,
|
||||
macro_empty_362,
|
||||
macro_empty_363,
|
||||
macro_empty_364,
|
||||
macro_empty_365,
|
||||
|
||||
struct MacroPreset {
|
||||
/*0x00*/ const BehaviorScript *behavior;
|
||||
/*0x04*/ s16 model;
|
||||
/*0x06*/ s16 param;
|
||||
};
|
||||
|
||||
struct MacroPreset MacroObjectPresets[] = {
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvOneCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvMovingBlueCoin, MODEL_BLUE_COIN, 0},
|
||||
{bhvBlueCoinSliding, MODEL_BLUE_COIN, 0}, // unused
|
||||
{bhvRedCoin, MODEL_RED_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvCoinFormation, MODEL_NONE, 0},
|
||||
{bhvCoinFormation, MODEL_NONE, COIN_FORMATION_FLAG_RING},
|
||||
{bhvCoinFormation, MODEL_NONE, COIN_FORMATION_FLAG_ARROW},
|
||||
{bhvCoinFormation, MODEL_NONE, COIN_FORMATION_FLAG_FLYING},
|
||||
{bhvCoinFormation, MODEL_NONE, COIN_FORMATION_FLAG_FLYING | COIN_FORMATION_FLAG_VERTICAL},
|
||||
{bhvCoinFormation, MODEL_NONE, COIN_FORMATION_FLAG_FLYING | COIN_FORMATION_FLAG_RING},
|
||||
{bhvCoinFormation, MODEL_NONE, COIN_FORMATION_FLAG_FLYING | COIN_FORMATION_FLAG_RING | COIN_FORMATION_FLAG_VERTICAL},
|
||||
{bhvCoinFormation, MODEL_NONE, COIN_FORMATION_FLAG_FLYING | COIN_FORMATION_FLAG_ARROW}, // unused
|
||||
{bhvHiddenStarTrigger, MODEL_NONE, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvUnusedFakeStar, MODEL_STAR, 0}, // unused
|
||||
{bhvMessagePanel, MODEL_WOODEN_SIGNPOST, 0},
|
||||
{bhvCannonClosed, MODEL_DL_CANNON_LID, 0},
|
||||
{bhvBobombBuddyOpensCannon, MODEL_BOBOMB_BUDDY, 0},
|
||||
{bhvButterfly, MODEL_BUTTERFLY, 0}, // unused
|
||||
{bhvBouncingFireball, MODEL_NONE, 0}, // unused
|
||||
{bhvFishSpawner, MODEL_NONE, 0}, // unused
|
||||
{bhvFishSpawner, MODEL_NONE, 1},
|
||||
{bhvBetaFishSplashSpawner, MODEL_NONE, 0},
|
||||
{bhvHidden1upInPoleSpawner, MODEL_NONE, 0},
|
||||
{bhvGoomba, MODEL_GOOMBA, 1},
|
||||
{bhvGoomba, MODEL_GOOMBA, 2},
|
||||
{bhvGoombaTripletSpawner, MODEL_NONE, 0},
|
||||
{bhvGoombaTripletSpawner, MODEL_NONE, 8}, // unused
|
||||
{bhvSignOnWall, MODEL_NONE, 0},
|
||||
{bhvChuckya, MODEL_CHUCKYA, 0},
|
||||
{bhvCannon, MODEL_CANNON_BASE, 0},
|
||||
{bhvGoomba, MODEL_GOOMBA, 0},
|
||||
{bhvHomingAmp, MODEL_AMP, 0},
|
||||
{bhvCirclingAmp, MODEL_AMP, 0},
|
||||
{bhvCarrySomething1, MODEL_UNKNOWN_7D, 0}, // unused
|
||||
{bhvBetaTrampolineTop, MODEL_TRAMPOLINE, 0}, // unused
|
||||
{bhvFreeBowlingBall, MODEL_BOWLING_BALL, 0}, // unused
|
||||
{bhvSnufit, MODEL_SNUFIT, 0},
|
||||
{bhvRecoveryHeart, MODEL_HEART, 0},
|
||||
{bhv1upSliding, MODEL_1UP, 0},
|
||||
{bhv1Up, MODEL_1UP, 0},
|
||||
{bhv1upJumpOnApproach, MODEL_1UP, 0}, // unused
|
||||
{bhvHidden1up, MODEL_1UP, 0},
|
||||
{bhvHidden1upTrigger, MODEL_NONE, 0},
|
||||
{bhv1Up, MODEL_1UP, 1},
|
||||
{bhv1Up, MODEL_1UP, 2},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvBlueCoinSwitch, MODEL_BLUE_COIN_SWITCH, 0},
|
||||
{bhvHiddenBlueCoin, MODEL_BLUE_COIN, 0},
|
||||
{bhvCapSwitch, MODEL_CAP_SWITCH, 0}, // unused
|
||||
{bhvCapSwitch, MODEL_CAP_SWITCH, 1}, // unused
|
||||
{bhvCapSwitch, MODEL_CAP_SWITCH, 2}, // unused
|
||||
{bhvCapSwitch, MODEL_CAP_SWITCH, 3}, // unused
|
||||
{bhvWaterLevelDiamond, MODEL_BREAKABLE_BOX, 0}, // unused
|
||||
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 0},
|
||||
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 1},
|
||||
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 2},
|
||||
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 3},
|
||||
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 4}, // unused
|
||||
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 5},
|
||||
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 6},
|
||||
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 7},
|
||||
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 8},
|
||||
{bhvBreakableBox, MODEL_BREAKABLE_BOX, 0},
|
||||
{bhvBreakableBox, MODEL_BREAKABLE_BOX, 1},
|
||||
{bhvPushableMetalBox, MODEL_METAL_BOX, 0},
|
||||
{bhvBreakableBoxSmall, MODEL_BREAKABLE_BOX_SMALL, 0},
|
||||
{bhvFloorSwitchHiddenObjects, MODEL_PURPLE_SWITCH, 0},
|
||||
{bhvHiddenObject, MODEL_BREAKABLE_BOX, 0},
|
||||
{bhvHiddenObject, MODEL_BREAKABLE_BOX, 1}, // unused
|
||||
{bhvHiddenObject, MODEL_BREAKABLE_BOX, 2}, // unused
|
||||
{bhvBreakableBox, MODEL_BREAKABLE_BOX, 3},
|
||||
{bhvKoopaShellUnderwater, MODEL_KOOPA_SHELL, 0},
|
||||
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 9},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvBulletBill, MODEL_BULLET_BILL, 0}, // unused
|
||||
{bhvHeaveHo, MODEL_HEAVE_HO, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvThwomp2, MODEL_THWOMP, 0}, // unused
|
||||
{bhvFireSpitter, MODEL_BOWLING_BALL, 0},
|
||||
{bhvFlyGuy, MODEL_FLYGUY, 1},
|
||||
{bhvJumpingBox, MODEL_BREAKABLE_BOX, 0},
|
||||
{bhvTripletButterfly, MODEL_BUTTERFLY, 0},
|
||||
{bhvTripletButterfly, MODEL_BUTTERFLY, 4},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvSmallBully, MODEL_BULLY, 0},
|
||||
{bhvSmallBully, MODEL_BULLY_BOSS, 0}, // unused
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvStub1D0C, MODEL_UNKNOWN_58, 0}, // unused
|
||||
{bhvBouncingFireball, MODEL_NONE, 0},
|
||||
{bhvFlamethrower, MODEL_NONE, 4},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvWoodenPost, MODEL_WOODEN_POST, 0},
|
||||
{bhvWaterBombSpawner, MODEL_NONE, 0},
|
||||
{bhvEnemyLakitu, MODEL_ENEMY_LAKITU, 0},
|
||||
{bhvKoopa, MODEL_KOOPA_WITH_SHELL, 2}, // unused
|
||||
{bhvKoopaRaceEndpoint, MODEL_NONE, 0}, // unused
|
||||
{bhvBobomb, MODEL_BLACK_BOBOMB, 0},
|
||||
{bhvWaterBombCannon, MODEL_CANNON_BASE, 0}, // unused
|
||||
{bhvBobombBuddyOpensCannon, MODEL_BOBOMB_BUDDY, 0}, // unused
|
||||
{bhvWaterBombCannon, MODEL_CANNON_BASE, 0},
|
||||
{bhvBobomb, MODEL_BLACK_BOBOMB, 1},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvUnusedFakeStar, MODEL_UNKNOWN_54, 0}, // unused
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvUnagi, MODEL_UNAGI, 0}, // unused
|
||||
{bhvSushiShark, MODEL_SUSHI, 0}, // unused
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvStaticObject, MODEL_KLEPTO, 0}, // unused
|
||||
{bhvTweester, MODEL_TWEESTER, 0}, // unused
|
||||
{bhvPokey, MODEL_NONE, 0},
|
||||
{bhvPokey, MODEL_NONE, 0}, // unused
|
||||
{bhvToxBox, MODEL_SSL_TOX_BOX, 0}, // unused
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvMontyMole, MODEL_MONTY_MOLE, 0}, // unused
|
||||
{bhvMontyMole, MODEL_MONTY_MOLE, 1},
|
||||
{bhvMontyMoleHole, MODEL_DL_MONTY_MOLE_HOLE, 0},
|
||||
{bhvFlyGuy, MODEL_FLYGUY, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvWigglerHead, MODEL_WIGGLER_HEAD, 0}, // unused
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvSpindrift, MODEL_SPINDRIFT, 0},
|
||||
{bhvMrBlizzard, MODEL_MR_BLIZZARD_HIDDEN, 0},
|
||||
{bhvMrBlizzard, MODEL_MR_BLIZZARD_HIDDEN, 0}, // unused
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvSmallPenguin, MODEL_PENGUIN, 0}, // unused
|
||||
{bhvTuxiesMother, MODEL_PENGUIN, 0}, // unused
|
||||
{bhvTuxiesMother, MODEL_PENGUIN, 0}, // unused
|
||||
{bhvMrBlizzard, MODEL_MR_BLIZZARD_HIDDEN, 1}, // unused
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvHauntedChair, MODEL_HAUNTED_CHAIR, 0}, // unused
|
||||
{bhvHauntedChair, MODEL_HAUNTED_CHAIR, 0},
|
||||
{bhvHauntedChair, MODEL_HAUNTED_CHAIR, 0}, // unused
|
||||
{bhvGhostHuntBoo, MODEL_BOO, 0}, // unused
|
||||
{bhvGhostHuntBoo, MODEL_BOO, 0}, // unused
|
||||
{bhvCourtyardBooTriplet, MODEL_BOO, 0}, // unused
|
||||
{bhvBooWithCage, MODEL_BOO, 0}, // unused
|
||||
{bhvAlphaBooKey, MODEL_BETA_BOO_KEY, 0}, // unused
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvChirpChirp, MODEL_NONE, 0},
|
||||
{bhvSeaweedBundle, MODEL_NONE, 0},
|
||||
{bhvBetaChestBottom, MODEL_TREASURE_CHEST_BASE, 0}, // unused
|
||||
{bhvBowserBomb, MODEL_WATER_MINE, 0}, // unused
|
||||
{bhvFishSpawner, MODEL_NONE, 2}, // unused
|
||||
{bhvFishSpawner, MODEL_NONE, 3},
|
||||
{bhvJetStreamRingSpawner, MODEL_WATER_RING, 0}, // unused
|
||||
{bhvJetStreamRingSpawner, MODEL_WATER_RING, 0}, // unused
|
||||
{bhvSkeeter, MODEL_SKEETER, 0},
|
||||
{bhvClamShell, MODEL_CLAM_SHELL, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvMacroUkiki, MODEL_UKIKI, 0}, // unused
|
||||
{bhvMacroUkiki, MODEL_UKIKI, 1}, // unused
|
||||
{bhvPiranhaPlant, MODEL_PIRANHA_PLANT, 0}, // unused
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvSmallWhomp, MODEL_WHOMP, 0},
|
||||
{bhvChainChomp, MODEL_CHAIN_CHOMP, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvKoopa, MODEL_KOOPA_WITH_SHELL, 1},
|
||||
{bhvKoopa, MODEL_KOOPA_WITHOUT_SHELL, 0}, // unused
|
||||
{bhvWoodenPost, MODEL_WOODEN_POST, 0}, // unused
|
||||
{bhvFirePiranhaPlant, MODEL_PIRANHA_PLANT, 0},
|
||||
{bhvFirePiranhaPlant, MODEL_PIRANHA_PLANT, 1}, // unused
|
||||
{bhvKoopa, MODEL_KOOPA_WITH_SHELL, 4},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvMoneybagHidden, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvSwoop, MODEL_SWOOP, 0},
|
||||
{bhvSwoop, MODEL_SWOOP, 1},
|
||||
{bhvMrI, MODEL_NONE, 0},
|
||||
{bhvScuttlebugSpawn, MODEL_NONE, 0},
|
||||
{bhvScuttlebug, MODEL_SCUTTLEBUG, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_UNKNOWN_54, 0}, // unused
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvTTCRotatingSolid, MODEL_TTC_ROTATING_CUBE, 0},
|
||||
{bhvTTCRotatingSolid, MODEL_TTC_ROTATING_PRISM, 1},
|
||||
{bhvTTCPendulum, MODEL_TTC_PENDULUM, 0},
|
||||
{bhvTTCTreadmill, MODEL_TTC_LARGE_TREADMILL, 0},
|
||||
{bhvTTCTreadmill, MODEL_TTC_SMALL_TREADMILL, 1},
|
||||
{bhvTTCMovingBar, MODEL_TTC_PUSH_BLOCK, 0},
|
||||
{bhvTTCCog, MODEL_TTC_ROTATING_HEXAGON, 0},
|
||||
{bhvTTCCog, MODEL_TTC_ROTATING_TRIANGLE, 2},
|
||||
{bhvTTCPitBlock, MODEL_TTC_PIT_BLOCK, 0},
|
||||
{bhvTTCPitBlock, MODEL_TTC_PIT_BLOCK_UNUSED, 1}, // unused
|
||||
{bhvTTCElevator, MODEL_TTC_ELEVATOR_PLATFORM, 0},
|
||||
{bhvTTC2DRotator, MODEL_TTC_CLOCK_HAND, 0},
|
||||
{bhvTTCSpinner, MODEL_TTC_SPINNER, 0},
|
||||
{bhvTTC2DRotator, MODEL_TTC_SMALL_GEAR, 1},
|
||||
{bhvTTC2DRotator, MODEL_TTC_LARGE_GEAR, 1},
|
||||
{bhvTTCTreadmill, MODEL_TTC_LARGE_TREADMILL, 2},
|
||||
{bhvTTCTreadmill, MODEL_TTC_SMALL_TREADMILL, 3},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 10},
|
||||
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 11},
|
||||
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 12},
|
||||
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 13}, // unused
|
||||
{bhvExclamationBox, MODEL_EXCLAMATION_BOX, 14},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvSlidingPlatform2, MODEL_BITS_SLIDING_PLATFORM, 0}, // unused
|
||||
{bhvSlidingPlatform2, MODEL_BITS_TWIN_SLIDING_PLATFORMS, 0}, // unused
|
||||
{bhvAnotherTiltingPlatform, MODEL_BITDW_SLIDING_PLATFORM, 0}, // unused
|
||||
{bhvOctagonalPlatformRotating, MODEL_BITS_OCTAGONAL_PLATFORM, 0}, // unused
|
||||
{bhvAnimatesOnFloorSwitchPress, MODEL_BITS_STAIRCASE, 0}, // unused
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvFerrisWheelAxle, MODEL_BITS_FERRIS_WHEEL_AXLE, 0}, // unused
|
||||
{bhvActivatedBackAndForthPlatform, MODEL_BITS_ARROW_PLATFORM, 0}, // unused
|
||||
{bhvSeesawPlatform, MODEL_BITS_SEESAW_PLATFORM, 0}, // unused
|
||||
{bhvSeesawPlatform, MODEL_BITS_TILTING_W_PLATFORM, 0}, // unused
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0},
|
||||
{bhvYellowCoin, MODEL_YELLOW_COIN, 0}
|
||||
macro_count
|
||||
};
|
||||
|
||||
#endif // MACRO_PRESETS_H
|
||||
|
|
379
include/macro_presets.inc.c
Normal file
379
include/macro_presets.inc.c
Normal file
|
@ -0,0 +1,379 @@
|
|||
#include "macro_presets.h"
|
||||
|
||||
struct MacroPreset {
|
||||
/* 0x00 */ const BehaviorScript *behavior;
|
||||
/* 0x04 */ s16 model;
|
||||
/* 0x06 */ s16 param;
|
||||
};
|
||||
|
||||
static struct MacroPreset sMacroObjectPresets[] = {
|
||||
/* macro_yellow_coin_1 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_yellow_coin_2 */ { bhvOneCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_moving_blue_coin */ { bhvMovingBlueCoin, MODEL_BLUE_COIN, 0 },
|
||||
/* macro_sliding_blue_coin */ { bhvBlueCoinSliding, MODEL_BLUE_COIN, 0 }, // unused
|
||||
/* macro_red_coin */ { bhvRedCoin, MODEL_RED_COIN, 0 },
|
||||
/* macro_empty_5 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_coin_line_horizontal */ { bhvCoinFormation, MODEL_NONE, COIN_FORMATION_BP_LINE_HORIZONTAL },
|
||||
/* macro_coin_ring_horizontal */ { bhvCoinFormation, MODEL_NONE, COIN_FORMATION_BP_RING_HORIZONTAL },
|
||||
/* macro_coin_arrow */ { bhvCoinFormation, MODEL_NONE, COIN_FORMATION_BP_ARROW },
|
||||
/* macro_coin_line_horizontal_flying */ { bhvCoinFormation, MODEL_NONE, COIN_FORMATION_BP_LINE_HORIZONTAL | COIN_FORMATION_BP_FLAG_FLYING },
|
||||
/* macro_coin_line_vertical_flying */ { bhvCoinFormation, MODEL_NONE, COIN_FORMATION_BP_LINE_VERTICAL | COIN_FORMATION_BP_FLAG_FLYING },
|
||||
/* macro_coin_ring_horizontal_flying */ { bhvCoinFormation, MODEL_NONE, COIN_FORMATION_BP_RING_HORIZONTAL | COIN_FORMATION_BP_FLAG_FLYING },
|
||||
/* macro_coin_ring_vertical_flying */ { bhvCoinFormation, MODEL_NONE, COIN_FORMATION_BP_RING_VERTICAL | COIN_FORMATION_BP_FLAG_FLYING },
|
||||
/* macro_coin_arrow_flying */ { bhvCoinFormation, MODEL_NONE, COIN_FORMATION_BP_ARROW | COIN_FORMATION_BP_FLAG_FLYING }, // unused
|
||||
/* macro_hidden_star_trigger */ { bhvHiddenStarTrigger, MODEL_NONE, 0 },
|
||||
/* macro_empty_15 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_16 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_17 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_18 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_19 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_fake_star */ { bhvUnusedFakeStar, MODEL_STAR, 0 }, // unused
|
||||
/* macro_wooden_signpost */ { bhvMessagePanel, MODEL_WOODEN_SIGNPOST, 0 },
|
||||
/* macro_cannon_closed */ { bhvCannonClosed, MODEL_DL_CANNON_LID, 0 },
|
||||
/* macro_bobomb_buddy_opens_cannon_1 */ { bhvBobombBuddyOpensCannon, MODEL_BOBOMB_BUDDY, 0 },
|
||||
/* macro_butterfly */ { bhvButterfly, MODEL_BUTTERFLY, 0 }, // unused
|
||||
/* macro_bouncing_fireball_1 */ { bhvBouncingFireball, MODEL_NONE, 0 }, // unused
|
||||
/* macro_fish_spawner_many_blue */ { bhvFishSpawner, MODEL_NONE, FISH_SPAWNER_BP_MANY_BLUE }, // unused
|
||||
/* macro_fish_spawner_few_blue */ { bhvFishSpawner, MODEL_NONE, FISH_SPAWNER_BP_FEW_BLUE },
|
||||
/* macro_unknown_28 */ { bhvBetaFishSplashSpawner, MODEL_NONE, 0 },
|
||||
/* macro_hidden_1up_in_pole */ { bhvHidden1UpInPoleSpawner, MODEL_NONE, 0 },
|
||||
/* macro_huge_goomba */ { bhvGoomba, MODEL_GOOMBA, GOOMBA_SIZE_HUGE },
|
||||
/* macro_tiny_goomba */ { bhvGoomba, MODEL_GOOMBA, GOOMBA_SIZE_TINY },
|
||||
/* macro_goomba_triplet_spawner */ { bhvGoombaTripletSpawner, MODEL_NONE, GOOMBA_TRIPLET_SPAWNER_BP_EXTRA_GOOMBAS(0) | GOOMBA_SIZE_REGULAR },
|
||||
/* macro_goomba_quintuplet_spawner */ { bhvGoombaTripletSpawner, MODEL_NONE, GOOMBA_TRIPLET_SPAWNER_BP_EXTRA_GOOMBAS(2) | GOOMBA_SIZE_REGULAR }, // unused
|
||||
/* macro_sign_on_wall */ { bhvSignOnWall, MODEL_NONE, 0 },
|
||||
/* macro_chuckya */ { bhvChuckya, MODEL_CHUCKYA, 0 },
|
||||
/* macro_cannon_open */ { bhvCannon, MODEL_CANNON_BASE, 0 },
|
||||
/* macro_goomba */ { bhvGoomba, MODEL_GOOMBA, 0 },
|
||||
/* macro_homing_amp */ { bhvHomingAmp, MODEL_AMP, 0 },
|
||||
/* macro_circling_amp */ { bhvCirclingAmp, MODEL_AMP, AMP_BP_ROT_RADIUS_200 },
|
||||
/* macro_unknown_40 */ { bhvCarrySomething1, MODEL_UNKNOWN_7D, 0 }, // unused
|
||||
/* macro_unknown_41 */ { bhvBetaTrampolineTop, MODEL_TRAMPOLINE, 0 }, // unused
|
||||
/* macro_free_bowling_ball */ { bhvFreeBowlingBall, MODEL_BOWLING_BALL, 0 }, // unused
|
||||
/* macro_snufit */ { bhvSnufit, MODEL_SNUFIT, 0 },
|
||||
/* macro_recovery_heart */ { bhvRecoveryHeart, MODEL_HEART, 0 },
|
||||
/* macro_1up_sliding */ { bhv1UpSliding, MODEL_1UP, 0 },
|
||||
/* macro_1up */ { bhv1Up, MODEL_1UP, 0 },
|
||||
/* macro_1up_jump_on_approach */ { bhv1UpJumpOnApproach, MODEL_1UP, 0 }, // unused
|
||||
/* macro_hidden_1up */ { bhvHidden1Up, MODEL_1UP, 0 },
|
||||
/* macro_hidden_1up_trigger */ { bhvHidden1UpTrigger, MODEL_NONE, 0 },
|
||||
/* macro_1up_beat_bitdw_bowser */ { bhv1Up, MODEL_1UP, ONE_UP_BP_BEAT_BITDW_BOWSER },
|
||||
/* macro_1up_beat_bitfs_bowser */ { bhv1Up, MODEL_1UP, ONE_UP_BP_BEAT_BITFS_BOWSER },
|
||||
/* macro_empty_52 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_blue_coin_switch */ { bhvBlueCoinSwitch, MODEL_BLUE_COIN_SWITCH, 0 },
|
||||
/* macro_hidden_blue_coin */ { bhvHiddenBlueCoin, MODEL_BLUE_COIN, 0 },
|
||||
/* macro_wing_cap_switch */ { bhvCapSwitch, MODEL_CAP_SWITCH, CAP_SWITCH_BP_RED }, // unused
|
||||
/* macro_metal_cap_switch */ { bhvCapSwitch, MODEL_CAP_SWITCH, CAP_SWITCH_BP_GREEN }, // unused
|
||||
/* macro_vanish_cap_switch */ { bhvCapSwitch, MODEL_CAP_SWITCH, CAP_SWITCH_BP_BLUE }, // unused
|
||||
/* macro_yellow_cap_switch */ { bhvCapSwitch, MODEL_CAP_SWITCH, CAP_SWITCH_BP_YELLOW }, // unused
|
||||
/* macro_unknown_59 */ { bhvWaterLevelDiamond, MODEL_BREAKABLE_BOX, 0 }, // unused
|
||||
/* macro_box_wing_cap */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_WING_CAP },
|
||||
/* macro_box_metal_cap */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_METAL_CAP },
|
||||
/* macro_box_vanish_cap */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_VANISH_CAP },
|
||||
/* macro_box_koopa_shell */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_KOOPA_SHELL },
|
||||
/* macro_box_one_coin */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_ONE_COIN }, // unused
|
||||
/* macro_box_three_coins */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_THREE_COINS },
|
||||
/* macro_box_ten_coins */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_TEN_COINS },
|
||||
/* macro_box_1up */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_1UP_WALKING },
|
||||
/* macro_box_star_act_1 */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_STAR_ACT_1 },
|
||||
/* macro_breakable_box_no_coins */ { bhvBreakableBox, MODEL_BREAKABLE_BOX, BREAKABLE_BOX_BP_NO_COINS },
|
||||
/* macro_breakable_box_three_coins */ { bhvBreakableBox, MODEL_BREAKABLE_BOX, BREAKABLE_BOX_BP_3_COINS },
|
||||
/* macro_pushable_metal_box */ { bhvPushableMetalBox, MODEL_METAL_BOX, 0 },
|
||||
/* macro_breakable_box_small */ { bhvBreakableBoxSmall, MODEL_BREAKABLE_BOX_SMALL, 0 },
|
||||
/* macro_floor_switch_hidden_objects */ { bhvFloorSwitchHiddenObjects, MODEL_PURPLE_SWITCH, 0 },
|
||||
/* macro_hidden_breakable_box */ { bhvHiddenObject, MODEL_BREAKABLE_BOX, HIDDEN_OBJECT_BP_BREAKABLE_BOX },
|
||||
/* macro_hidden_unbreakable_box_1 */ { bhvHiddenObject, MODEL_BREAKABLE_BOX, HIDDEN_OBJECT_BP_UNBREAKABLE_BOX_UNUSED_1 }, // unused
|
||||
/* macro_hidden_unbreakable_box_2 */ { bhvHiddenObject, MODEL_BREAKABLE_BOX, HIDDEN_OBJECT_BP_UNBREAKABLE_BOX_UNUSED_2 }, // unused
|
||||
/* macro_breakable_box_giant */ { bhvBreakableBox, MODEL_BREAKABLE_BOX, BREAKABLE_BOX_BP_GIANT },
|
||||
/* macro_koopa_shell_underwater */ { bhvKoopaShellUnderwater, MODEL_KOOPA_SHELL, 0 },
|
||||
/* macro_box_1up_running_away */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_1UP_RUNNING_AWAY },
|
||||
/* macro_empty_80 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_bullet_bill_cannon */ { bhvBulletBill, MODEL_BULLET_BILL, 0 }, // unused
|
||||
/* macro_heave_ho */ { bhvHeaveHo, MODEL_HEAVE_HO, 0 },
|
||||
/* macro_empty_83 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_thwomp */ { bhvThwomp, MODEL_THWOMP, 0 }, // unused
|
||||
/* macro_fire_spitter */ { bhvFireSpitter, MODEL_BOWLING_BALL, 0 },
|
||||
/* macro_fire_fly_guy */ { bhvFlyGuy, MODEL_FLYGUY, FLY_GUY_BP_FIRE },
|
||||
/* macro_jumping_box */ { bhvJumpingBox, MODEL_BREAKABLE_BOX, 0 },
|
||||
/* macro_butterfly_triplet */ { bhvTripletButterfly, MODEL_BUTTERFLY, 0 },
|
||||
/* macro_butterfly_triplet_no_bombs */ { bhvTripletButterfly, MODEL_BUTTERFLY, TRIPLET_BUTTERFLY_BP_NO_BOMBS },
|
||||
/* macro_empty_90 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_91 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_92 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_small_bully */ { bhvSmallBully, MODEL_BULLY, 0 },
|
||||
/* macro_big_bully */ { bhvSmallBully, MODEL_BULLY_BOSS, 0 }, // unused
|
||||
/* macro_empty_95 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_unknown_96 */ { bhvStub1D0C, MODEL_UNKNOWN_58, 0 }, // unused
|
||||
/* macro_bouncing_fireball_2 */ { bhvBouncingFireball, MODEL_NONE, 0 },
|
||||
/* macro_flamethrower */ { bhvFlamethrower, MODEL_NONE, 4 },
|
||||
/* macro_empty_99 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_100 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_101 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_102 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_103 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_104 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_105 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_wooden_post_1 */ { bhvWoodenPost, MODEL_WOODEN_POST, 0 },
|
||||
/* macro_water_bomb_spawner */ { bhvWaterBombSpawner, MODEL_NONE, 0 },
|
||||
/* macro_enemy_lakitu */ { bhvEnemyLakitu, MODEL_ENEMY_LAKITU, 0 },
|
||||
/* macro_bob_koopa_the_quick */ { bhvKoopa, MODEL_KOOPA_WITH_SHELL, KOOPA_BP_KOOPA_THE_QUICK_BOB }, // unused
|
||||
/* macro_koopa_race_endpoint */ { bhvKoopaRaceEndpoint, MODEL_NONE, 0 }, // unused
|
||||
/* macro_bobomb */ { bhvBobomb, MODEL_BLACK_BOBOMB, BOBOMB_BP_STYPE_GENERIC },
|
||||
/* macro_water_bomb_cannon_1 */ { bhvWaterBombCannon, MODEL_CANNON_BASE, 0 }, // unused
|
||||
/* macro_bobomb_buddy_opens_cannon_2 */ { bhvBobombBuddyOpensCannon, MODEL_BOBOMB_BUDDY, 0 }, // unused
|
||||
/* macro_water_bomb_cannon_2 */ { bhvWaterBombCannon, MODEL_CANNON_BASE, 0 },
|
||||
/* macro_bobomb_stationary */ { bhvBobomb, MODEL_BLACK_BOBOMB, BOBOMB_BP_STYPE_STATIONARY },
|
||||
/* macro_empty_116 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_117 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_118 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_119 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_120 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_121 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_122 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_unknown_123 */ { bhvUnusedFakeStar, MODEL_UNKNOWN_54, 0 }, // unused
|
||||
/* macro_empty_124 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_unagi */ { bhvUnagi, MODEL_UNAGI, 0 }, // unused
|
||||
/* macro_sushi */ { bhvSushiShark, MODEL_SUSHI, 0 }, // unused
|
||||
/* macro_empty_127 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_128 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_129 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_130 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_131 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_132 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_133 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_134 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_135 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_136 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_unknown_137 */ { bhvStaticObject, MODEL_KLEPTO, 0 }, // unused
|
||||
/* macro_tornado */ { bhvTweester, MODEL_TWEESTER, 0 }, // unused
|
||||
/* macro_pokey_1 */ { bhvPokey, MODEL_NONE, 0 },
|
||||
/* macro_pokey_2 */ { bhvPokey, MODEL_NONE, 0 }, // unused
|
||||
/* macro_tox_box */ { bhvToxBox, MODEL_SSL_TOX_BOX, TOX_BOX_BP_MOVEMENT_PATTERN_1 }, // unused
|
||||
/* macro_empty_142 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_143 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_144 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_145 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_146 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_147 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_148 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_149 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_150 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_monty_mole_no_rock */ { bhvMontyMole, MODEL_MONTY_MOLE, MONTY_MOLE_BP_NO_ROCK }, // unused
|
||||
/* macro_monty_mole */ { bhvMontyMole, MODEL_MONTY_MOLE, MONTY_MOLE_BP_GENERIC },
|
||||
/* macro_monty_mole_hole */ { bhvMontyMoleHole, MODEL_DL_MONTY_MOLE_HOLE, 0 },
|
||||
/* macro_fly_guy */ { bhvFlyGuy, MODEL_FLYGUY, FLY_GUY_BP_GENERIC },
|
||||
/* macro_empty_155 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_wiggler */ { bhvWigglerHead, MODEL_WIGGLER_HEAD, 0 }, // unused
|
||||
/* macro_empty_157 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_158 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_159 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_160 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_161 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_162 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_163 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_164 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_spindrift */ { bhvSpindrift, MODEL_SPINDRIFT, 0 },
|
||||
/* macro_mr_blizzard_1 */ { bhvMrBlizzard, MODEL_MR_BLIZZARD_HIDDEN, MR_BLIZZARD_STYPE_GENERIC },
|
||||
/* macro_mr_blizzard_2 */ { bhvMrBlizzard, MODEL_MR_BLIZZARD_HIDDEN, MR_BLIZZARD_STYPE_GENERIC }, // unused
|
||||
/* macro_empty_168 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_small_penguin */ { bhvSmallPenguin, MODEL_PENGUIN, 0 }, // unused
|
||||
/* macro_tuxies_mother_1 */ { bhvTuxiesMother, MODEL_PENGUIN, 0 }, // unused
|
||||
/* macro_tuxies_mother_2 */ { bhvTuxiesMother, MODEL_PENGUIN, 0 }, // unused
|
||||
/* macro_mr_blizzard_jumping */ { bhvMrBlizzard, MODEL_MR_BLIZZARD_HIDDEN, MR_BLIZZARD_STYPE_JUMPING }, // unused
|
||||
/* macro_empty_173 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_174 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_175 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_176 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_177 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_178 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_179 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_180 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_181 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_182 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_183 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_184 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_185 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_186 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_187 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_188 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_haunted_chair_1 */ { bhvHauntedChair, MODEL_HAUNTED_CHAIR, 0 }, // unused
|
||||
/* macro_haunted_chair_2 */ { bhvHauntedChair, MODEL_HAUNTED_CHAIR, 0 },
|
||||
/* macro_haunted_chair_3 */ { bhvHauntedChair, MODEL_HAUNTED_CHAIR, 0 }, // unused
|
||||
/* macro_boo_1 */ { bhvGhostHuntBoo, MODEL_BOO, BOO_BP_GHOST_HUNT }, // unused
|
||||
/* macro_boo_2 */ { bhvGhostHuntBoo, MODEL_BOO, BOO_BP_GHOST_HUNT }, // unused
|
||||
/* macro_boo_group */ { bhvCourtyardBooTriplet, MODEL_BOO, 0 }, // unused
|
||||
/* macro_boo_with_cage */ { bhvBooWithCage, MODEL_BOO, 0 }, // unused
|
||||
/* macro_beta_key */ { bhvAlphaBooKey, MODEL_BETA_BOO_KEY, 0 }, // unused
|
||||
/* macro_empty_197 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_198 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_199 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_200 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_201 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_202 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_203 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_204 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_205 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_206 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_207 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_208 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_209 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_210 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_211 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_212 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_213 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_214 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_215 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_216 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_217 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_218 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_219 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_220 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_221 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_222 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_223 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_224 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_225 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_226 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_227 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_228 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_229 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_230 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_231 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_232 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_233 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_chirp_chirp */ { bhvChirpChirp, MODEL_NONE, 0 },
|
||||
/* macro_seaweed_bundle */ { bhvSeaweedBundle, MODEL_NONE, 0 },
|
||||
/* macro_beta_chest */ { bhvBetaChestBottom, MODEL_TREASURE_CHEST_BASE, 0 }, // unused
|
||||
/* macro_water_mine */ { bhvBowserBomb, MODEL_WATER_MINE, 0 }, // unused
|
||||
/* macro_fish_spawner_many_cyan */ { bhvFishSpawner, MODEL_NONE, FISH_SPAWNER_BP_MANY_CYAN }, // unused
|
||||
/* macro_fish_spawner_few_cyan */ { bhvFishSpawner, MODEL_NONE, FISH_SPAWNER_BP_FEW_CYAN },
|
||||
/* macro_jet_stream_ring_spawner_1 */ { bhvJetStreamRingSpawner, MODEL_WATER_RING, 0 }, // unused
|
||||
/* macro_jet_stream_ring_spawner_2 */ { bhvJetStreamRingSpawner, MODEL_WATER_RING, 0 }, // unused
|
||||
/* macro_skeeter */ { bhvSkeeter, MODEL_SKEETER, 0 },
|
||||
/* macro_clam_shell */ { bhvClamShell, MODEL_CLAM_SHELL, 0 },
|
||||
/* macro_empty_244 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_245 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_246 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_247 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_248 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_249 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_250 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_cage_ukiki */ { bhvMacroUkiki, MODEL_UKIKI, UKIKI_BP_CAGE }, // unused
|
||||
/* macro_cap_ukiki */ { bhvMacroUkiki, MODEL_UKIKI, UKIKI_BP_CAP }, // unused
|
||||
/* macro_piranha_plant */ { bhvPiranhaPlant, MODEL_PIRANHA_PLANT, 0 }, // unused
|
||||
/* macro_empty_254 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_whomp */ { bhvSmallWhomp, MODEL_WHOMP, 0 },
|
||||
/* macro_chain_chomp */ { bhvChainChomp, MODEL_CHAIN_CHOMP, 0 },
|
||||
/* macro_empty_257 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_koopa */ { bhvKoopa, MODEL_KOOPA_WITH_SHELL, KOOPA_BP_NORMAL },
|
||||
/* macro_koopa_shellless */ { bhvKoopa, MODEL_KOOPA_WITHOUT_SHELL, KOOPA_BP_UNSHELLED }, // unused
|
||||
/* macro_wooden_post_2 */ { bhvWoodenPost, MODEL_WOODEN_POST, 0 }, // unused
|
||||
/* macro_fire_piranha_plant_1 */ { bhvFirePiranhaPlant, MODEL_PIRANHA_PLANT, 0 },
|
||||
/* macro_fire_piranha_plant_2 */ { bhvFirePiranhaPlant, MODEL_PIRANHA_PLANT, 1 }, // unused
|
||||
/* macro_koopa_tiny */ { bhvKoopa, MODEL_KOOPA_WITH_SHELL, KOOPA_BP_TINY },
|
||||
/* macro_empty_264 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_265 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_266 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_267 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_268 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_269 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_270 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_271 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_272 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_273 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_274 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_275 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_276 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_277 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_278 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_279 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_280 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_moneybag */ { bhvMoneybagHidden, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_282 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_283 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_284 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_285 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_286 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_287 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_288 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_swoop_1 */ { bhvSwoop, MODEL_SWOOP, 0 },
|
||||
/* macro_swoop_2 */ { bhvSwoop, MODEL_SWOOP, 1 },
|
||||
/* macro_mr_i */ { bhvMrI, MODEL_NONE, 0 },
|
||||
/* macro_scuttlebug_spawner */ { bhvScuttlebugSpawn, MODEL_NONE, 0 },
|
||||
/* macro_scuttlebug */ { bhvScuttlebug, MODEL_SCUTTLEBUG, 0 },
|
||||
/* macro_empty_294 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_295 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_296 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_297 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_298 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_299 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_300 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_301 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_302 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_unknown_303 */ { bhvYellowCoin, MODEL_UNKNOWN_54, 0 }, // unused
|
||||
/* macro_empty_304 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_305 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_306 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_307 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_308 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_309 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_310 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_311 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_312 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_ttc_rotating_cube */ { bhvTTCRotatingSolid, MODEL_TTC_ROTATING_CUBE, TTC_ROTATING_SOLID_BP_CUBE },
|
||||
/* macro_ttc_rotating_prism */ { bhvTTCRotatingSolid, MODEL_TTC_ROTATING_PRISM, TTC_ROTATING_SOLID_BP_TRIANGULAR_PRISM },
|
||||
/* macro_ttc_pendulum */ { bhvTTCPendulum, MODEL_TTC_PENDULUM, 0 },
|
||||
/* macro_ttc_large_treadmill_1 */ { bhvTTCTreadmill, MODEL_TTC_LARGE_TREADMILL, TTC_TREADMILL_BP_LARGE_1 },
|
||||
/* macro_ttc_small_treadmill_1 */ { bhvTTCTreadmill, MODEL_TTC_SMALL_TREADMILL, TTC_TREADMILL_BP_SMALL_1 },
|
||||
/* macro_ttc_push_block */ { bhvTTCMovingBar, MODEL_TTC_PUSH_BLOCK, 0 },
|
||||
/* macro_ttc_rotating_hexagon */ { bhvTTCCog, MODEL_TTC_ROTATING_HEXAGON, TTC_COG_BP_SHAPE_HEXAGON | TTC_COG_BP_DIR_CCW },
|
||||
/* macro_ttc_rotating_triangle */ { bhvTTCCog, MODEL_TTC_ROTATING_TRIANGLE, TTC_COG_BP_SHAPE_TRIANGLE | TTC_COG_BP_DIR_CCW },
|
||||
/* macro_ttc_pit_block_1 */ { bhvTTCPitBlock, MODEL_TTC_PIT_BLOCK, 0 },
|
||||
/* macro_ttc_pit_block_2 */ { bhvTTCPitBlock, MODEL_TTC_PIT_BLOCK_UNUSED, 1 }, // unused
|
||||
/* macro_ttc_elevator_platform */ { bhvTTCElevator, MODEL_TTC_ELEVATOR_PLATFORM, 0 },
|
||||
/* macro_ttc_clock_hand */ { bhvTTC2DRotator, MODEL_TTC_CLOCK_HAND, 0 },
|
||||
/* macro_ttc_spinner */ { bhvTTCSpinner, MODEL_TTC_SPINNER, 0 },
|
||||
/* macro_ttc_small_gear */ { bhvTTC2DRotator, MODEL_TTC_SMALL_GEAR, 1 },
|
||||
/* macro_ttc_large_gear */ { bhvTTC2DRotator, MODEL_TTC_LARGE_GEAR, 1 },
|
||||
/* macro_ttc_large_treadmill_2 */ { bhvTTCTreadmill, MODEL_TTC_LARGE_TREADMILL, TTC_TREADMILL_BP_LARGE_2 },
|
||||
/* macro_ttc_small_treadmill_2 */ { bhvTTCTreadmill, MODEL_TTC_SMALL_TREADMILL, TTC_TREADMILL_BP_SMALL_2 },
|
||||
/* macro_empty_330 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_331 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_332 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_333 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_334 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_335 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_336 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_337 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_338 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_box_star_act_2 */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_STAR_ACT_2 },
|
||||
/* macro_box_star_act_3 */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_STAR_ACT_3 },
|
||||
/* macro_box_star_act_4 */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_STAR_ACT_4 },
|
||||
/* macro_box_star_act_5 */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_STAR_ACT_5 }, // unused
|
||||
/* macro_box_star_act_6 */ { bhvExclamationBox, MODEL_EXCLAMATION_BOX, EXCLAMATION_BOX_BP_STAR_ACT_6 },
|
||||
/* macro_empty_344 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_345 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_346 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_347 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_348 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_349 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_bits_sliding_platform */ { bhvSlidingPlatform2, MODEL_BITS_SLIDING_PLATFORM, 0 }, // unused
|
||||
/* macro_bits_twin_sliding_platforms */ { bhvSlidingPlatform2, MODEL_BITS_TWIN_SLIDING_PLATFORMS, 0 }, // unused
|
||||
/* macro_bits_unknown_352 */ { bhvAnotherTiltingPlatform, MODEL_BITDW_SLIDING_PLATFORM, 0 }, // unused
|
||||
/* macro_bits_octagonal_platform */ { bhvOctagonalPlatformRotating, MODEL_BITS_OCTAGONAL_PLATFORM, 0 }, // unused
|
||||
/* macro_bits_staircase */ { bhvAnimatesOnFloorSwitchPress, MODEL_BITS_STAIRCASE, 0 }, // unused
|
||||
/* macro_empty_355 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_356 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_bits_ferris_wheel_axle */ { bhvFerrisWheelAxle, MODEL_BITS_FERRIS_WHEEL_AXLE, 0 }, // unused
|
||||
/* macro_bits_arrow_platform */ { bhvActivatedBackAndForthPlatform, MODEL_BITS_ARROW_PLATFORM, 0 }, // unused
|
||||
/* macro_bits_seesaw_platform */ { bhvSeesawPlatform, MODEL_BITS_SEESAW_PLATFORM, 0 }, // unused
|
||||
/* macro_bits_tilting_w_platform */ { bhvSeesawPlatform, MODEL_BITS_TILTING_W_PLATFORM, 0 }, // unused
|
||||
/* macro_empty_361 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_362 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_363 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_364 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
/* macro_empty_365 */ { bhvYellowCoin, MODEL_YELLOW_COIN, 0 },
|
||||
};
|
||||
|
||||
STATIC_ASSERT(ARRAY_COUNT(sMacroObjectPresets) == macro_count,
|
||||
"change this array if you are adding macro objects");
|
|
@ -25,6 +25,12 @@
|
|||
#define UNUSED
|
||||
#endif
|
||||
|
||||
#ifdef VERSION_CN
|
||||
#define UNUSED_CN UNUSED
|
||||
#else
|
||||
#define UNUSED_CN
|
||||
#endif
|
||||
|
||||
// Avoid undefined behaviour for non-returning functions
|
||||
#ifdef __GNUC__
|
||||
#define NORETURN __attribute__((noreturn))
|
||||
|
@ -69,4 +75,17 @@
|
|||
#define VIRTUAL_TO_PHYSICAL2(addr) ((void *)(addr))
|
||||
#endif
|
||||
|
||||
// Stubbed CN debug prints
|
||||
#ifdef VERSION_CN
|
||||
#define CN_DEBUG_PRINTF(args) osSyncPrintf args
|
||||
#else
|
||||
#define CN_DEBUG_PRINTF(args)
|
||||
#endif
|
||||
|
||||
#ifdef VERSION_CN
|
||||
#define FORCE_BSS __attribute__((nocommon)) __attribute__((section (".bss_cn")))
|
||||
#else
|
||||
#define FORCE_BSS
|
||||
#endif
|
||||
|
||||
#endif // MACROS_H
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
// Assembly Macros
|
||||
#ifndef VERSION_CN
|
||||
.set gp=64
|
||||
#endif
|
||||
|
||||
.set K0BASE, 0x80000000
|
||||
.set K1BASE, 0xA0000000
|
||||
.set K2BASE, 0xC0000000
|
||||
.equ K0BASE, 0x80000000
|
||||
.equ K1BASE, 0xA0000000
|
||||
.equ K2BASE, 0xC0000000
|
||||
|
||||
.macro glabel label
|
||||
.global \label
|
||||
|
|
|
@ -14,11 +14,6 @@
|
|||
#define ALL_ACTS_MACRO ACT_1 | ACT_2 | ACT_3 | ACT_4 | ACT_5
|
||||
#define ALL_ACTS ACT_1 | ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6
|
||||
|
||||
#define COIN_FORMATION_FLAG_VERTICAL (1 << 0)
|
||||
#define COIN_FORMATION_FLAG_RING (1 << 1)
|
||||
#define COIN_FORMATION_FLAG_ARROW (1 << 2)
|
||||
#define COIN_FORMATION_FLAG_FLYING (1 << 4)
|
||||
|
||||
#define MODEL_NONE 0x00
|
||||
|
||||
/* Global models that are loaded for every level */
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#define ACTIVE_FLAG_UNK9 (1 << 9) // 0x0200
|
||||
#define ACTIVE_FLAG_UNK10 (1 << 10) // 0x0400
|
||||
|
||||
|
||||
/* respawnInfoType */
|
||||
#define RESPAWN_INFO_TYPE_NULL 0
|
||||
#define RESPAWN_INFO_TYPE_32 1
|
||||
|
@ -122,6 +121,15 @@
|
|||
#define OBJ_ACT_VERTICAL_KNOCKBACK 101
|
||||
#define OBJ_ACT_SQUISHED 102
|
||||
|
||||
/* Star Index */
|
||||
#define STAR_INDEX_ACT_1 0
|
||||
#define STAR_INDEX_ACT_2 1
|
||||
#define STAR_INDEX_ACT_3 2
|
||||
#define STAR_INDEX_ACT_4 3
|
||||
#define STAR_INDEX_ACT_5 4
|
||||
#define STAR_INDEX_ACT_6 5
|
||||
#define STAR_INDEX_100_COINS 6
|
||||
|
||||
/* gTTCSpeedSetting */
|
||||
#define TTC_SPEED_SLOW 0
|
||||
#define TTC_SPEED_FAST 1
|
||||
|
@ -129,7 +137,7 @@
|
|||
#define TTC_SPEED_STOPPED 3
|
||||
|
||||
/* Bob-omb */
|
||||
/* oBehParams2ndByte */
|
||||
/* oBhvParams2ndByte */
|
||||
#define BOBOMB_BP_STYPE_GENERIC 0
|
||||
#define BOBOMB_BP_STYPE_STATIONARY 1
|
||||
|
||||
|
@ -141,6 +149,29 @@
|
|||
#define BOBOMB_ACT_LAVA_DEATH 100
|
||||
#define BOBOMB_ACT_DEATH_PLANE_DEATH 101
|
||||
|
||||
/* Coin Formation */
|
||||
/* oAction */
|
||||
#define COIN_FORMATION_ACT_SPAWN_COINS 0
|
||||
#define COIN_FORMATION_ACT_IDLE 1
|
||||
#define COIN_FORMATION_ACT_RESPAWN_COINS 2
|
||||
|
||||
/* oBhvParams2ndByte */
|
||||
#define COIN_FORMATION_BP_FLAG_HORIZONTAL (0 << 0)
|
||||
#define COIN_FORMATION_BP_FLAG_VERTICAL (1 << 0)
|
||||
#define COIN_FORMATION_BP_FLAG_RING (1 << 1)
|
||||
#define COIN_FORMATION_BP_FLAG_ARROW (1 << 2)
|
||||
#define COIN_FORMATION_BP_FLAG_FLYING (1 << 4)
|
||||
#define COIN_FORMATION_BP_FLAG_MASK (COIN_FORMATION_BP_FLAG_HORIZONTAL | \
|
||||
COIN_FORMATION_BP_FLAG_VERTICAL | \
|
||||
COIN_FORMATION_BP_FLAG_RING | \
|
||||
COIN_FORMATION_BP_FLAG_ARROW)
|
||||
|
||||
#define COIN_FORMATION_BP_LINE_HORIZONTAL (COIN_FORMATION_BP_FLAG_HORIZONTAL)
|
||||
#define COIN_FORMATION_BP_LINE_VERTICAL (COIN_FORMATION_BP_FLAG_VERTICAL)
|
||||
#define COIN_FORMATION_BP_RING_HORIZONTAL (COIN_FORMATION_BP_FLAG_HORIZONTAL | COIN_FORMATION_BP_FLAG_RING)
|
||||
#define COIN_FORMATION_BP_RING_VERTICAL (COIN_FORMATION_BP_FLAG_VERTICAL | COIN_FORMATION_BP_FLAG_RING)
|
||||
#define COIN_FORMATION_BP_ARROW (COIN_FORMATION_BP_FLAG_ARROW)
|
||||
|
||||
/* Hidden Blue Coin */
|
||||
/* oAction */
|
||||
#define HIDDEN_BLUE_COIN_ACT_INACTIVE 0
|
||||
|
@ -166,7 +197,7 @@
|
|||
#define MOV_YCOIN_ACT_DEATH_PLANE_DEATH 101
|
||||
|
||||
/* Bob-omb Buddy */
|
||||
/* oBehParams2ndByte */
|
||||
/* oBhvParams2ndByte */
|
||||
#define BOBOMB_BUDDY_BP_STYPE_GENERIC 0
|
||||
#define BOBOMB_BUDDY_BP_STYPE_BOB_GRASS_KBB 1
|
||||
#define BOBOMB_BUDDY_BP_STYPE_BOB_CANNON_KBB 2
|
||||
|
@ -248,7 +279,7 @@
|
|||
#define BOWSER_ANIM_FLIP 25
|
||||
#define BOWSER_ANIM_STAND_UP_FROM_FLIP 26
|
||||
|
||||
/* oBehParams2ndByte */
|
||||
/* oBhvParams2ndByte */
|
||||
#define BOWSER_BP_BITDW 0
|
||||
#define BOWSER_BP_BITFS 1
|
||||
#define BOWSER_BP_BITS 2
|
||||
|
@ -298,7 +329,7 @@
|
|||
#define BOWSER_SUB_ACT_JUMP_ON_STAGE_LAND 2
|
||||
#define BOWSER_SUB_ACT_JUMP_ON_STAGE_STOP 3
|
||||
|
||||
/* Bowser Bits Platform*/
|
||||
/* Bowser BitS Platform */
|
||||
/* oAction */
|
||||
#define BOWSER_BITS_PLAT_ACT_START 0
|
||||
#define BOWSER_BITS_PLAT_ACT_CHECK 1
|
||||
|
@ -310,7 +341,7 @@
|
|||
#define FISH_SPAWNER_ACT_IDLE 1
|
||||
#define FISH_SPAWNER_ACT_RESPAWN 2
|
||||
|
||||
/* oBehParams2ndByte */
|
||||
/* oBhvParams2ndByte */
|
||||
#define FISH_SPAWNER_BP_MANY_BLUE 0
|
||||
#define FISH_SPAWNER_BP_FEW_BLUE 1
|
||||
#define FISH_SPAWNER_BP_MANY_CYAN 2
|
||||
|
@ -322,7 +353,7 @@
|
|||
#define FISH_ACT_ROAM 1
|
||||
#define FISH_ACT_FLEE 2
|
||||
|
||||
/* Blue_Fish */
|
||||
/* Blue Fish */
|
||||
/* oAction */
|
||||
#define BLUE_FISH_ACT_DIVE 0
|
||||
#define BLUE_FISH_ACT_TURN 1
|
||||
|
@ -350,7 +381,7 @@
|
|||
#define HOMING_AMP_ACT_ATTACK_COOLDOWN 4
|
||||
|
||||
/* Amp */
|
||||
/* oBehParams2ndByte */
|
||||
/* oBhvParams2ndByte */
|
||||
#define AMP_BP_ROT_RADIUS_200 0
|
||||
#define AMP_BP_ROT_RADIUS_300 1
|
||||
#define AMP_BP_ROT_RADIUS_400 2
|
||||
|
@ -377,8 +408,8 @@
|
|||
#define HOOT_ACT_CARRY 1
|
||||
#define HOOT_ACT_TIRED 2
|
||||
|
||||
/* Bully (all variants) */
|
||||
/* oBehParams2ndByte */
|
||||
/* Bully (All variants) */
|
||||
/* oBhvParams2ndByte */
|
||||
#define BULLY_BP_SIZE_SMALL 0
|
||||
#define BULLY_BP_SIZE_BIG 1
|
||||
|
||||
|
@ -397,7 +428,7 @@
|
|||
#define BULLY_STYPE_MINION 1
|
||||
#define BULLY_STYPE_CHILL 16
|
||||
|
||||
/* Water Ring (all variants) */
|
||||
/* Water Ring (All variants) */
|
||||
/* oAction */
|
||||
#define WATER_RING_ACT_NOT_COLLECTED 0
|
||||
#define WATER_RING_ACT_COLLECTED 1
|
||||
|
@ -417,7 +448,7 @@
|
|||
#define LLL_DRAWBRIDGE_ACT_LOWER 0
|
||||
#define LLL_DRAWBRIDGE_ACT_RAISE 1
|
||||
|
||||
/* Bomp (both variants) */
|
||||
/* Bomp (Both variants) */
|
||||
/* oAction */
|
||||
#define BOMP_ACT_WAIT 0
|
||||
#define BOMP_ACT_POKE_OUT 1
|
||||
|
@ -425,7 +456,7 @@
|
|||
#define BOMP_ACT_RETRACT 3
|
||||
|
||||
/* WF Sliding Brick Platform */
|
||||
/* oBehParams2ndByte */
|
||||
/* oBhvParams2ndByte */
|
||||
#define WF_SLID_BRICK_PTFM_BP_MOV_VEL_10 1
|
||||
#define WF_SLID_BRICK_PTFM_BP_MOV_VEL_15 2
|
||||
#define WF_SLID_BRICK_PTFM_BP_MOV_VEL_20 3
|
||||
|
@ -462,8 +493,8 @@
|
|||
#define BBALL_ACT_INITIALIZE 0
|
||||
#define BBALL_ACT_ROLL 1
|
||||
|
||||
/* Bowling Ball + Bowling Ball Spawner (all variants) */
|
||||
/* oBehParams2ndByte */
|
||||
/* Bowling Ball + Bowling Ball Spawner (All variants) */
|
||||
/* oBhvParams2ndByte */
|
||||
#define BBALL_BP_STYPE_BOB_UPPER 0
|
||||
#define BBALL_BP_STYPE_TTM 1
|
||||
#define BBALL_BP_STYPE_BOB_LOWER 2
|
||||
|
@ -499,6 +530,17 @@
|
|||
#define BOO_ATTACKED 1
|
||||
#define BOO_BOUNCED_ON -1
|
||||
|
||||
/* oBhvParams2ndByte */
|
||||
#define BOO_BP_GHOST_HUNT 0
|
||||
#define BOO_BP_GENERIC 1
|
||||
#define BOO_BP_MERRY_GO_ROUND 2
|
||||
|
||||
/* Big Boo */
|
||||
/* oBhvParams2ndByte */
|
||||
#define BIG_BOO_BP_GHOST_HUNT 0
|
||||
#define BIG_BOO_BP_MERRY_GO_ROUND 1
|
||||
#define BIG_BOO_BP_BALCONY 2
|
||||
|
||||
/* Beta Boo Key */
|
||||
/* oAction */
|
||||
#define BETA_BOO_KEY_ACT_IN_BOO 0
|
||||
|
@ -533,7 +575,7 @@
|
|||
#define COFFIN_ACT_IDLE 0
|
||||
#define COFFIN_ACT_STAND_UP 1
|
||||
|
||||
/* oBehParams2ndByte */
|
||||
/* oBhvParams2ndByte */
|
||||
#define COFFIN_BP_STATIC 0
|
||||
|
||||
/* WDW Arrow Lift */
|
||||
|
@ -590,7 +632,7 @@
|
|||
#define KOOPA_THE_QUICK_BOB_INDEX 0
|
||||
#define KOOPA_THE_QUICK_THI_INDEX 1
|
||||
|
||||
/* oBehParams2ndByte */
|
||||
/* oBhvParams2ndByte */
|
||||
#define KOOPA_BP_UNSHELLED 0
|
||||
#define KOOPA_BP_NORMAL 1
|
||||
#define KOOPA_BP_KOOPA_THE_QUICK_BASE 2
|
||||
|
@ -609,35 +651,40 @@
|
|||
#define SWOOP_ACT_IDLE 0
|
||||
#define SWOOP_ACT_MOVE 1
|
||||
|
||||
/* Fly guy */
|
||||
/* Fly Guy */
|
||||
/* oAction */
|
||||
#define FLY_GUY_ACT_IDLE 0
|
||||
#define FLY_GUY_ACT_APPROACH_MARIO 1
|
||||
#define FLY_GUY_ACT_LUNGE 2
|
||||
#define FLY_GUY_ACT_SHOOT_FIRE 3
|
||||
|
||||
/* Goomba triplet spawner */
|
||||
/* oBehParams2ndByte */
|
||||
#define GOOMBA_TRIPLET_SPAWNER_BP_SIZE_MASK 0x00000003
|
||||
#define GOOMBA_TRIPLET_SPAWNER_BP_EXTRA_GOOMBAS_MASK 0x000000FC
|
||||
|
||||
/* oAction */
|
||||
#define GOOMBA_TRIPLET_SPAWNER_ACT_UNLOADED 0
|
||||
#define GOOMBA_TRIPLET_SPAWNER_ACT_LOADED 1
|
||||
/* oBhvParams2ndByte */
|
||||
#define FLY_GUY_BP_GENERIC 0
|
||||
#define FLY_GUY_BP_FIRE 1
|
||||
|
||||
/* Goomba */
|
||||
/* oBehParams2ndByte */
|
||||
#define GOOMBA_BP_SIZE_MASK 0x00000003
|
||||
#define GOOMBA_SIZE_REGULAR 0
|
||||
#define GOOMBA_SIZE_HUGE 1
|
||||
#define GOOMBA_SIZE_TINY 2
|
||||
#define GOOMBA_BP_TRIPLET_FLAG_MASK 0x000000FC
|
||||
/* oAction */
|
||||
#define GOOMBA_ACT_WALK 0
|
||||
#define GOOMBA_ACT_ATTACKED_MARIO 1
|
||||
#define GOOMBA_ACT_JUMP 2
|
||||
|
||||
/* Chain chomp */
|
||||
/* oBhvParams2ndByte */
|
||||
#define GOOMBA_SIZE_REGULAR 0
|
||||
#define GOOMBA_SIZE_HUGE 1
|
||||
#define GOOMBA_SIZE_TINY 2
|
||||
#define GOOMBA_BP_SIZE_MASK (GOOMBA_SIZE_REGULAR | GOOMBA_SIZE_HUGE | GOOMBA_SIZE_TINY)
|
||||
#define GOOMBA_BP_TRIPLET_RESPAWN_FLAG_MASK (0x000000FF & ~GOOMBA_BP_SIZE_MASK)
|
||||
|
||||
/* Goomba Triplet Spawner */
|
||||
/* oAction */
|
||||
#define GOOMBA_TRIPLET_SPAWNER_ACT_UNLOADED 0
|
||||
#define GOOMBA_TRIPLET_SPAWNER_ACT_LOADED 1
|
||||
|
||||
/* oBhvParams2ndByte */
|
||||
#define GOOMBA_TRIPLET_SPAWNER_BP_EXTRA_GOOMBAS_MASK (0x000000FF & ~GOOMBA_BP_SIZE_MASK)
|
||||
#define GOOMBA_TRIPLET_SPAWNER_BP_EXTRA_GOOMBAS(num) ((num) << 2)
|
||||
|
||||
/* Chain Chomp */
|
||||
/* oAction */
|
||||
#define CHAIN_CHOMP_ACT_UNINITIALIZED 0
|
||||
#define CHAIN_CHOMP_ACT_MOVE 1
|
||||
|
@ -655,12 +702,12 @@
|
|||
#define CHAIN_CHOMP_RELEASED_JUMP_AWAY 4
|
||||
#define CHAIN_CHOMP_RELEASED_END_CUTSCENE 5
|
||||
|
||||
/* Chain chomp chain part */
|
||||
/* oBehParams2ndByte */
|
||||
/* Chain Chomp Chain Part */
|
||||
/* oBhvParams2ndByte */
|
||||
#define CHAIN_CHOMP_CHAIN_PART_BP_PIVOT 0
|
||||
|
||||
/* Wooden post */
|
||||
/* oBehParams */
|
||||
/* Wooden Post */
|
||||
/* oBhvParams */
|
||||
#define WOODEN_POST_BP_NO_COINS_MASK 0x0000FF00
|
||||
|
||||
/* Wiggler */
|
||||
|
@ -684,7 +731,7 @@
|
|||
#define SPINY_ACT_THROWN_BY_LAKITU 2
|
||||
#define SPINY_ACT_ATTACKED_MARIO 3
|
||||
|
||||
/* Evil lakitu */
|
||||
/* Evil Lakitu */
|
||||
/* oAction */
|
||||
#define ENEMY_LAKITU_ACT_UNINITIALIZED 0
|
||||
#define ENEMY_LAKITU_ACT_MAIN 1
|
||||
|
@ -701,17 +748,17 @@
|
|||
#define CLOUD_ACT_UNLOAD 2
|
||||
#define CLOUD_ACT_FWOOSH_HIDDEN 3
|
||||
|
||||
/* oBehParams2ndByte */
|
||||
/* oBhvParams2ndByte */
|
||||
#define CLOUD_BP_FWOOSH 0
|
||||
#define CLOUD_BP_LAKITU_CLOUD 1
|
||||
|
||||
/* Camera lakitu */
|
||||
/* Camera Lakitu */
|
||||
/* oAction */
|
||||
#define CAMERA_LAKITU_INTRO_ACT_TRIGGER_CUTSCENE 0
|
||||
#define CAMERA_LAKITU_INTRO_ACT_SPAWN_CLOUD 1
|
||||
#define CAMERA_LAKITU_INTRO_ACT_UNK2 2
|
||||
|
||||
/* oBehParams2ndByte */
|
||||
/* oBhvParams2ndByte */
|
||||
#define CAMERA_LAKITU_BP_FOLLOW_CAMERA 0
|
||||
#define CAMERA_LAKITU_BP_INTRO 1
|
||||
|
||||
|
@ -720,7 +767,7 @@
|
|||
#define MANTA_ACT_SPAWN_RINGS 0
|
||||
#define MANTA_ACT_NO_RINGS 1
|
||||
|
||||
/* Monty mole */
|
||||
/* Monty Mole */
|
||||
/* oAction */
|
||||
#define MONTY_MOLE_ACT_SELECT_HOLE 0
|
||||
#define MONTY_MOLE_ACT_RISE_FROM_HOLE 1
|
||||
|
@ -731,10 +778,11 @@
|
|||
#define MONTY_MOLE_ACT_HIDE 6
|
||||
#define MONTY_MOLE_ACT_JUMP_OUT_OF_HOLE 7
|
||||
|
||||
/* oBehParams2ndByte */
|
||||
/* oBhvParams2ndByte */
|
||||
#define MONTY_MOLE_BP_NO_ROCK 0
|
||||
#define MONTY_MOLE_BP_GENERIC 1
|
||||
|
||||
/* Monty mole rock */
|
||||
/* Monty Mole Rock */
|
||||
/* oAction */
|
||||
#define MONTY_MOLE_ROCK_ACT_HELD 0
|
||||
#define MONTY_MOLE_ROCK_ACT_MOVE 1
|
||||
|
@ -776,9 +824,9 @@
|
|||
#define UKIKI_TEXT_DO_NOT_LET_GO 6
|
||||
#define UKIKI_TEXT_STEAL_CAP 7
|
||||
|
||||
/* oBehParams2ndByte */
|
||||
#define UKIKI_CAGE 0
|
||||
#define UKIKI_CAP 1
|
||||
/* oBhvParams2ndByte */
|
||||
#define UKIKI_BP_CAGE 0
|
||||
#define UKIKI_BP_CAP 1
|
||||
|
||||
/* Animations */
|
||||
#define UKIKI_ANIM_RUN 0
|
||||
|
@ -830,12 +878,13 @@
|
|||
/* oPiranhaPlantSleepMusicState */
|
||||
#define PIRANHA_PLANT_SLEEP_MUSIC_PLAYING 0
|
||||
|
||||
/* Piranha Plant bubble */
|
||||
/* Piranha Plant Bubble */
|
||||
/* oAction */
|
||||
#define PIRANHA_PLANT_BUBBLE_ACT_IDLE 0
|
||||
#define PIRANHA_PLANT_BUBBLE_ACT_GROW_SHRINK_LOOP 1
|
||||
#define PIRANHA_PLANT_BUBBLE_ACT_BURST 2
|
||||
|
||||
/* Platform on track */
|
||||
/* Platform on Track */
|
||||
/* oAction */
|
||||
#define PLATFORM_ON_TRACK_ACT_INIT 0
|
||||
#define PLATFORM_ON_TRACK_ACT_WAIT_FOR_MARIO 1
|
||||
|
@ -843,9 +892,9 @@
|
|||
#define PLATFORM_ON_TRACK_ACT_PAUSE_BRIEFLY 3
|
||||
#define PLATFORM_ON_TRACK_ACT_FALL 4
|
||||
|
||||
/* oBehParams >> 16 */
|
||||
#define PLATFORM_ON_TRACK_BP_MASK_PATH 0xF
|
||||
#define PLATFORM_ON_TRACK_BP_MASK_TYPE (0x7 << 4)
|
||||
/* oBhvParams >> 16 */
|
||||
#define PLATFORM_ON_TRACK_BP_MASK_PATH 0x000F
|
||||
#define PLATFORM_ON_TRACK_BP_MASK_TYPE 0x0070
|
||||
#define PLATFORM_ON_TRACK_BP_RETURN_TO_START (1 << 8)
|
||||
#define PLATFORM_ON_TRACK_BP_DONT_DISAPPEAR (1 << 9)
|
||||
#define PLATFORM_ON_TRACK_BP_DONT_TURN_YAW (1 << 10)
|
||||
|
@ -856,35 +905,38 @@
|
|||
#define PLATFORM_ON_TRACK_TYPE_CHECKERED 2
|
||||
#define PLATFORM_ON_TRACK_TYPE_GRATE 3
|
||||
|
||||
/* Purple switch */
|
||||
#define PURPLE_SWITCH_IDLE 0
|
||||
#define PURPLE_SWITCH_PRESSED 1
|
||||
#define PURPLE_SWITCH_TICKING 2
|
||||
#define PURPLE_SWITCH_UNPRESSED 3
|
||||
#define PURPLE_SWITCH_WAIT_FOR_MARIO_TO_GET_OFF 4
|
||||
/* Purple Switch */
|
||||
/* oAction */
|
||||
#define PURPLE_SWITCH_ACT_IDLE 0
|
||||
#define PURPLE_SWITCH_ACT_PRESSED 1
|
||||
#define PURPLE_SWITCH_ACT_TICKING 2
|
||||
#define PURPLE_SWITCH_ACT_UNPRESSED 3
|
||||
#define PURPLE_SWITCH_ACT_WAIT_FOR_MARIO_TO_GET_OFF 4
|
||||
|
||||
/* Pyramid elevator */
|
||||
#define PYRAMID_ELEVATOR_IDLE 0
|
||||
#define PYRAMID_ELEVATOR_START_MOVING 1
|
||||
#define PYRAMID_ELEVATOR_CONSTANT_VELOCITY 2
|
||||
#define PYRAMID_ELEVATOR_AT_BOTTOM 3
|
||||
/* Pyramid Elevator */
|
||||
/* oAction */
|
||||
#define PYRAMID_ELEVATOR_ACT_IDLE 0
|
||||
#define PYRAMID_ELEVATOR_ACT_START_MOVING 1
|
||||
#define PYRAMID_ELEVATOR_ACT_CONSTANT_VELOCITY 2
|
||||
#define PYRAMID_ELEVATOR_ACT_AT_BOTTOM 3
|
||||
|
||||
/* Pyramid top */
|
||||
/* Pyramid Top */
|
||||
/* oAction */
|
||||
#define PYRAMID_TOP_ACT_CHECK_IF_SOLVED 0
|
||||
#define PYRAMID_TOP_ACT_SPINNING 1
|
||||
#define PYRAMID_TOP_ACT_EXPLODE 2
|
||||
|
||||
/* Pyramid wall */
|
||||
/* Pyramid Wall */
|
||||
/* oAction */
|
||||
#define PYRAMID_WALL_ACT_MOVING_DOWN 0
|
||||
#define PYRAMID_WALL_ACT_MOVING_UP 1
|
||||
|
||||
/* oBehParams2ndByte */
|
||||
/* oBhvParams2ndByte */
|
||||
#define PYRAMID_WALL_BP_POSITION_HIGH 0
|
||||
#define PYRAMID_WALL_BP_POSITION_MIDDLE 1
|
||||
#define PYRAMID_WALL_BP_POSITION_LOW 2
|
||||
|
||||
/* Penguins (general) */
|
||||
/* Penguins (General) */
|
||||
/* Walking sounds */
|
||||
#define PENGUIN_WALK_BABY 0
|
||||
#define PENGUIN_WALK_BIG 1
|
||||
|
@ -893,7 +945,7 @@
|
|||
#define PENGUIN_ANIM_WALK 0
|
||||
#define PENGUIN_ANIM_IDLE 3
|
||||
|
||||
/* Racing penguin */
|
||||
/* Racing Penguin */
|
||||
/* oAction */
|
||||
#define RACING_PENGUIN_ACT_WAIT_FOR_MARIO 0
|
||||
#define RACING_PENGUIN_ACT_SHOW_INIT_TEXT 1
|
||||
|
@ -902,80 +954,98 @@
|
|||
#define RACING_PENGUIN_ACT_FINISH_RACE 4
|
||||
#define RACING_PENGUIN_ACT_SHOW_FINAL_TEXT 5
|
||||
|
||||
/* SL walking penguin */
|
||||
/* oBhvParams2ndByte */
|
||||
#define RACING_PENGUIN_BP_THIN 0
|
||||
#define RACING_PENGUIN_BP_FAT 1
|
||||
|
||||
/* SL Walking Penguin */
|
||||
/* oAction */
|
||||
#define SL_WALKING_PENGUIN_ACT_MOVING_FORWARDS 0
|
||||
#define SL_WALKING_PENGUIN_ACT_TURNING_BACK 1
|
||||
#define SL_WALKING_PENGUIN_ACT_RETURNING 2
|
||||
#define SL_WALKING_PENGUIN_ACT_TURNING_FORWARDS 3
|
||||
|
||||
/* Snowman wind */
|
||||
/* Snowman Wind */
|
||||
/* oSubAction */
|
||||
#define SL_SNOWMAN_WIND_ACT_IDLE 0
|
||||
#define SL_SNOWMAN_WIND_ACT_TALKING 1
|
||||
#define SL_SNOWMAN_WIND_ACT_BLOWING 2
|
||||
|
||||
/* Water bomb */
|
||||
/* Water Bomb */
|
||||
/* oAction */
|
||||
#define WATER_BOMB_ACT_SHOT_FROM_CANNON 0
|
||||
#define WATER_BOMB_ACT_INIT 1
|
||||
#define WATER_BOMB_ACT_DROP 2
|
||||
#define WATER_BOMB_ACT_EXPLODE 3
|
||||
|
||||
/* TTC rotating solid */
|
||||
/* oBehParams2ndByte */
|
||||
/* TTC Rotating Solid */
|
||||
/* oBhvParams2ndByte */
|
||||
#define TTC_ROTATING_SOLID_BP_CUBE 0
|
||||
#define TTC_ROTATING_SOLID_BP_TRIANGULAR_PRISM 1
|
||||
|
||||
/* TTC moving bar */
|
||||
/* TTC Treadmill */
|
||||
/* oBhvParams2ndByte */
|
||||
#define TTC_TREADMILL_BP_FLAG_LARGE (0 << 0)
|
||||
#define TTC_TREADMILL_BP_FLAG_SMALL (1 << 0)
|
||||
#define TTC_TREADMILL_BP_FLAG_MASK (TTC_TREADMILL_BP_FLAG_LARGE | TTC_TREADMILL_BP_FLAG_SMALL)
|
||||
#define TTC_TREADMILL_BP_LARGE_1 ((0 << 1) | TTC_TREADMILL_BP_FLAG_LARGE)
|
||||
#define TTC_TREADMILL_BP_SMALL_1 ((0 << 1) | TTC_TREADMILL_BP_FLAG_SMALL)
|
||||
#define TTC_TREADMILL_BP_LARGE_2 ((1 << 1) | TTC_TREADMILL_BP_FLAG_LARGE)
|
||||
#define TTC_TREADMILL_BP_SMALL_2 ((1 << 1) | TTC_TREADMILL_BP_FLAG_SMALL)
|
||||
|
||||
/* TTC Moving Bar */
|
||||
/* oAction */
|
||||
#define TTC_MOVING_BAR_ACT_WAIT 0
|
||||
#define TTC_MOVING_BAR_ACT_PULL_BACK 1
|
||||
#define TTC_MOVING_BAR_ACT_EXTEND 2
|
||||
#define TTC_MOVING_BAR_ACT_RETRACT 3
|
||||
|
||||
/* TTC cog */
|
||||
/* oBehParams2ndByte */
|
||||
#define TTC_COG_BP_SHAPE_MASK 0x00000002
|
||||
/* TTC Cog */
|
||||
/* oBhvParams2ndByte */
|
||||
#define TTC_COG_BP_SHAPE_HEXAGON (0 << 1)
|
||||
#define TTC_COG_BP_SHAPE_TRIANGLE (1 << 1)
|
||||
#define TTC_COG_BP_DIR_MASK 0x00000001
|
||||
#define TTC_COG_BP_SHAPE_MASK (TTC_COG_BP_SHAPE_HEXAGON | TTC_COG_BP_SHAPE_TRIANGLE)
|
||||
#define TTC_COG_BP_DIR_CCW (0 << 0) // TODO: Check these
|
||||
#define TTC_COG_BP_DIR_CW (1 << 0)
|
||||
#define TTC_COG_BP_DIR_MASK (TTC_COG_BP_DIR_CCW | TTC_COG_BP_DIR_CW)
|
||||
|
||||
/* TTC 2D Rotator */
|
||||
/* oBehParams2ndByte */
|
||||
/* oBhvParams2ndByte */
|
||||
#define TTC_2D_ROTATOR_BP_HAND 0
|
||||
#define TTC_2D_ROTATOR_BP_2D_COG 1
|
||||
|
||||
/* Activated Back-and-Forth Platform */
|
||||
/* ((u16)(o->oBehParams >> 16) & 0x0300) >> 8 aka platform type */
|
||||
#define ACTIVATED_BF_PLAT_TYPE_BITS_ARROW_PLAT 0
|
||||
#define ACTIVATED_BF_PLAT_TYPE_BITFS_MESH_PLAT 1
|
||||
#define ACTIVATED_BF_PLAT_TYPE_BITFS_ELEVATOR 2
|
||||
|
||||
/* oBhvParams >> 16 */
|
||||
#define ACTIVATED_BF_PLAT_BP_MASK_TYPE ((ACTIVATED_BF_PLAT_TYPE_BITS_ARROW_PLAT | \
|
||||
ACTIVATED_BF_PLAT_TYPE_BITFS_MESH_PLAT | \
|
||||
ACTIVATED_BF_PLAT_TYPE_BITFS_ELEVATOR) << 8)
|
||||
|
||||
/* Dorrie */
|
||||
/* oAction */
|
||||
#define DORRIE_ACT_MOVE 0
|
||||
#define DORRIE_ACT_LOWER_HEAD 1
|
||||
#define DORRIE_ACT_RAISE_HEAD 2
|
||||
|
||||
/* Mad piano */
|
||||
/* Mad Piano */
|
||||
/* oAction */
|
||||
#define MAD_PIANO_ACT_WAIT 0
|
||||
#define MAD_PIANO_ACT_ATTACK 1
|
||||
|
||||
/* Fire piranha plant */
|
||||
/* Fire Piranha Plant */
|
||||
/* oAction */
|
||||
#define FIRE_PIRANHA_PLANT_ACT_HIDE 0
|
||||
#define FIRE_PIRANHA_PLANT_ACT_GROW 1
|
||||
|
||||
/* Fire spitter */
|
||||
/* Fire Spitter */
|
||||
/* oAction */
|
||||
#define FIRE_SPITTER_ACT_IDLE 0
|
||||
#define FIRE_SPITTER_ACT_SPIT_FIRE 1
|
||||
|
||||
/* Eyerok boss */
|
||||
/* Eyerok Boss */
|
||||
/* oAction */
|
||||
#define EYEROK_BOSS_ACT_SLEEP 0
|
||||
#define EYEROK_BOSS_ACT_WAKE_UP 1
|
||||
|
@ -983,7 +1053,7 @@
|
|||
#define EYEROK_BOSS_ACT_FIGHT 3
|
||||
#define EYEROK_BOSS_ACT_DIE 4
|
||||
|
||||
/* Eyerok hand */
|
||||
/* Eyerok Hand */
|
||||
/* oAction */
|
||||
#define EYEROK_HAND_ACT_SLEEP 0
|
||||
#define EYEROK_HAND_ACT_IDLE 1
|
||||
|
@ -1023,7 +1093,7 @@
|
|||
#define BIRD_ACT_INACTIVE 0
|
||||
#define BIRD_ACT_FLY 1
|
||||
|
||||
/* oBehParams2ndByte */
|
||||
/* oBhvParams2ndByte */
|
||||
#define BIRD_BP_SPAWNED 0
|
||||
#define BIRD_BP_SPAWNER 1
|
||||
|
||||
|
@ -1049,23 +1119,28 @@
|
|||
|
||||
#define TWEESTER_SUB_ACT_CHASE 0
|
||||
|
||||
/* Triplet butterfly */
|
||||
/* Triplet Butterfly */
|
||||
/* oAction */
|
||||
#define TRIPLET_BUTTERFLY_ACT_INIT 0
|
||||
#define TRIPLET_BUTTERFLY_ACT_WANDER 1
|
||||
#define TRIPLET_BUTTERFLY_ACT_ACTIVATE 2
|
||||
#define TRIPLET_BUTTERFLY_ACT_EXPLODE 3
|
||||
|
||||
/* oBehParams2ndByte */
|
||||
#define TRIPLET_BUTTERFLY_BP_BUTTERFLY_NUM 0x00000003
|
||||
#define TRIPLET_BUTTERFLY_BP_NO_BOMBS 0x00000004
|
||||
/* oBhvParams2ndByte */
|
||||
#define TRIPLET_BUTTERFLY_BP_SPAWN_TYPE_SPAWNER (0 << 0)
|
||||
#define TRIPLET_BUTTERFLY_BP_SPAWN_TYPE_SPAWNED_1 (1 << 0)
|
||||
#define TRIPLET_BUTTERFLY_BP_SPAWN_TYPE_SPAWNED_2 (1 << 1)
|
||||
#define TRIPLET_BUTTERFLY_BP_SPAWN_TYPE_MASK (TRIPLET_BUTTERFLY_BP_SPAWN_TYPE_SPAWNER | \
|
||||
TRIPLET_BUTTERFLY_BP_SPAWN_TYPE_SPAWNED_1 | \
|
||||
TRIPLET_BUTTERFLY_BP_SPAWN_TYPE_SPAWNED_2)
|
||||
#define TRIPLET_BUTTERFLY_BP_NO_BOMBS (1 << 2)
|
||||
|
||||
/* oTripletButterflyType */
|
||||
#define TRIPLET_BUTTERFLY_TYPE_NORMAL -1
|
||||
#define TRIPLET_BUTTERFLY_TYPE_EXPLODES 0
|
||||
#define TRIPLET_BUTTERFLY_TYPE_SPAWN_1UP 1
|
||||
|
||||
/* Water level diamond */
|
||||
/* Water Level Diamond */
|
||||
/* oAction */
|
||||
// Loading
|
||||
#define WATER_LEVEL_DIAMOND_ACT_INIT 0
|
||||
|
@ -1089,6 +1164,10 @@
|
|||
#define MIPS_STAR_STATUS_SHOULD_SPAWN_STAR 1
|
||||
#define MIPS_STAR_STATUS_ALREADY_SPAWNED_STAR 2
|
||||
|
||||
/* oBhvParams2ndByte */
|
||||
#define MIPS_BP_15_STARS 0
|
||||
#define MIPS_BP_50_STARS 1
|
||||
|
||||
/* Falling Pillar */
|
||||
/* oAction */
|
||||
#define FALLING_PILLAR_ACT_IDLE 0
|
||||
|
@ -1112,8 +1191,119 @@
|
|||
#define MR_BLIZZARD_ACT_DEATH 6
|
||||
#define MR_BLIZZARD_ACT_JUMP 7
|
||||
|
||||
/* oBehParams2ndByte */
|
||||
#define MR_BLIZZARD_STYPE_NO_CAP 0
|
||||
/* oBhvParams2ndByte */
|
||||
#define MR_BLIZZARD_STYPE_GENERIC 0
|
||||
#define MR_BLIZZARD_STYPE_JUMPING 1
|
||||
#define MR_BLIZZARD_STYPE_CAP 2
|
||||
|
||||
/* Whomp */
|
||||
/* oBhvParams2ndByte */
|
||||
#define WHOMP_BP_SMALL 0
|
||||
#define WHOMP_BP_KING 1
|
||||
|
||||
/* 1-Up Mushroom */
|
||||
/* oBhvParams2ndByte */
|
||||
#define ONE_UP_BP_GENERIC 0
|
||||
#define ONE_UP_BP_BEAT_BITDW_BOWSER 1
|
||||
#define ONE_UP_BP_BEAT_BITFS_BOWSER 2
|
||||
|
||||
/* Breakable Box */
|
||||
/* oBhvParams2ndByte */
|
||||
#define BREAKABLE_BOX_BP_NO_COINS 0
|
||||
#define BREAKABLE_BOX_BP_3_COINS 1
|
||||
#define BREAKABLE_BOX_BP_5_COINS 2
|
||||
#define BREAKABLE_BOX_BP_GIANT 3
|
||||
|
||||
/* Hidden Object */
|
||||
/* oAction */
|
||||
#define HIDDEN_OBJECT_ACT_INACTIVE 0
|
||||
#define HIDDEN_OBJECT_ACT_ACTIVE 1
|
||||
#define HIDDEN_OBJECT_ACT_BROKEN 2
|
||||
|
||||
/* oBhvParams2ndByte */
|
||||
#define HIDDEN_OBJECT_BP_BREAKABLE_BOX 0
|
||||
#define HIDDEN_OBJECT_BP_WDW_PLATFORM 1
|
||||
#define HIDDEN_OBJECT_BP_UNBREAKABLE_BOX_UNUSED_1 1
|
||||
#define HIDDEN_OBJECT_BP_UNBREAKABLE_BOX_UNUSED_2 2
|
||||
|
||||
/* Exclamation Box */
|
||||
/* oAnimState */
|
||||
#define EXCLAMATION_BOX_ANIM_STATE_WING_CAP 0
|
||||
#define EXCLAMATION_BOX_ANIM_STATE_METAL_CAP 1
|
||||
#define EXCLAMATION_BOX_ANIM_STATE_VANISH_CAP 2
|
||||
#define EXCLAMATION_BOX_ANIM_STATE_DEFAULT 3
|
||||
|
||||
/* oBhvParams2ndByte */
|
||||
#define EXCLAMATION_BOX_BP_WING_CAP 0
|
||||
#define EXCLAMATION_BOX_BP_METAL_CAP 1
|
||||
#define EXCLAMATION_BOX_BP_VANISH_CAP 2
|
||||
#define EXCLAMATION_BOX_BP_SPECIAL_CAP_END 2
|
||||
#define EXCLAMATION_BOX_BP_KOOPA_SHELL 3
|
||||
#define EXCLAMATION_BOX_BP_ONE_COIN 4
|
||||
#define EXCLAMATION_BOX_BP_THREE_COINS 5
|
||||
#define EXCLAMATION_BOX_BP_TEN_COINS 6
|
||||
#define EXCLAMATION_BOX_BP_1UP_WALKING 7
|
||||
#define EXCLAMATION_BOX_BP_STAR_ACT_1 8
|
||||
#define EXCLAMATION_BOX_BP_1UP_RUNNING_AWAY 9
|
||||
#define EXCLAMATION_BOX_BP_STAR_ACT_2 10
|
||||
#define EXCLAMATION_BOX_BP_STAR_ACT_3 11
|
||||
#define EXCLAMATION_BOX_BP_STAR_ACT_4 12
|
||||
#define EXCLAMATION_BOX_BP_STAR_ACT_5 13
|
||||
#define EXCLAMATION_BOX_BP_STAR_ACT_6 14
|
||||
#define EXCLAMATION_BOX_BP_END 99
|
||||
|
||||
/* Cap Switch */
|
||||
/* oBhvParams2ndByte */
|
||||
#define CAP_SWITCH_BP_RED 0
|
||||
#define CAP_SWITCH_BP_GREEN 1
|
||||
#define CAP_SWITCH_BP_BLUE 2
|
||||
#define CAP_SWITCH_BP_YELLOW 3
|
||||
|
||||
/* Openable Grill */
|
||||
/* oBhvParams2ndByte */
|
||||
#define OPENABLE_GRILL_BP_BOB 0
|
||||
#define OPENABLE_GRILL_BP_HMC 1
|
||||
|
||||
/* WF Rotating Wooden Platform */
|
||||
/* oAction */
|
||||
#define WF_ROTATING_WOODEN_PLATFORM_ACT_IDLE 0
|
||||
#define WF_ROTATING_WOODEN_PLATFORM_ACT_ROTATING 1
|
||||
|
||||
/* Rotating Platform */
|
||||
/* oBhvParams2ndByte */
|
||||
#define ROTATING_PLATFORM_BP_WF 0
|
||||
#define ROTATING_PLATFORM_BP_WDW 1
|
||||
|
||||
/* Tumbling Bridge */
|
||||
/* oBhvParams2ndByte */
|
||||
#define TUMBLING_BRIDGE_BP_WF 0
|
||||
#define TUMBLING_BRIDGE_BP_BBH 1
|
||||
#define TUMBLING_BRIDGE_BP_LLL 2
|
||||
#define TUMBLING_BRIDGE_BP_BITFS 3
|
||||
|
||||
/* Grindel or Thwomp */
|
||||
/* oAction */
|
||||
#define GRINDEL_THWOMP_ACT_RAISE 0
|
||||
#define GRINDEL_THWOMP_ACT_IDLE_AT_TOP 1
|
||||
#define GRINDEL_THWOMP_ACT_LOWER 2
|
||||
#define GRINDEL_THWOMP_ACT_LAND 3
|
||||
#define GRINDEL_THWOMP_ACT_IDLE_AT_BOTTOM 4
|
||||
|
||||
/* Tox Box */
|
||||
/* oAction */
|
||||
#define TOX_BOX_ACT_INIT 0
|
||||
#define TOX_BOX_ACT_ROLL_LAND 1
|
||||
#define TOX_BOX_ACT_IDLE 2
|
||||
#define TOX_BOX_ACT_UNUSED_IDLE 3
|
||||
#define TOX_BOX_ACT_ROLL_FORWARD 4
|
||||
#define TOX_BOX_ACT_ROLL_BACKWARD 5
|
||||
#define TOX_BOX_ACT_ROLL_RIGHT 6
|
||||
#define TOX_BOX_ACT_ROLL_LEFT 7
|
||||
#define TOX_BOX_ACT_TABLE_END -1
|
||||
|
||||
/* oBhvParams2ndByte */
|
||||
#define TOX_BOX_BP_MOVEMENT_PATTERN_1 0
|
||||
#define TOX_BOX_BP_MOVEMENT_PATTERN_2 1
|
||||
#define TOX_BOX_BP_MOVEMENT_PATTERN_3 2
|
||||
|
||||
#endif // OBJECT_CONSTANTS_H
|
||||
|
|
|
@ -101,7 +101,7 @@
|
|||
#define /*0x138*/ oParentRelativePosX OBJECT_FIELD_F32(O_PARENT_RELATIVE_POS_INDEX + 0)
|
||||
#define /*0x13C*/ oParentRelativePosY OBJECT_FIELD_F32(O_PARENT_RELATIVE_POS_INDEX + 1)
|
||||
#define /*0x140*/ oParentRelativePosZ OBJECT_FIELD_F32(O_PARENT_RELATIVE_POS_INDEX + 2)
|
||||
#define /*0x144*/ oBehParams2ndByte OBJECT_FIELD_S32(0x2F)
|
||||
#define /*0x144*/ oBhvParams2ndByte OBJECT_FIELD_S32(0x2F)
|
||||
// 0x148 unused, possibly a third param byte.
|
||||
#define /*0x14C*/ oAction OBJECT_FIELD_S32(0x31)
|
||||
#define /*0x150*/ oSubAction OBJECT_FIELD_S32(0x32)
|
||||
|
@ -118,7 +118,7 @@
|
|||
#define /*0x17C*/ oOpacity OBJECT_FIELD_S32(0x3D)
|
||||
#define /*0x180*/ oDamageOrCoinValue OBJECT_FIELD_S32(0x3E)
|
||||
#define /*0x184*/ oHealth OBJECT_FIELD_S32(0x3F)
|
||||
#define /*0x188*/ oBehParams OBJECT_FIELD_S32(0x40)
|
||||
#define /*0x188*/ oBhvParams OBJECT_FIELD_S32(0x40)
|
||||
#define /*0x18C*/ oPrevAction OBJECT_FIELD_S32(0x41)
|
||||
#define /*0x190*/ oInteractionSubtype OBJECT_FIELD_U32(0x42)
|
||||
#define /*0x194*/ oCollisionDistance OBJECT_FIELD_F32(0x43)
|
||||
|
@ -126,7 +126,7 @@
|
|||
#define /*0x19C*/ oDrawingDistance OBJECT_FIELD_F32(0x45)
|
||||
#define /*0x1A0*/ oRoom OBJECT_FIELD_S32(0x46)
|
||||
// 0x1A4 is unused, possibly related to 0x1A8 in removed macro purposes.
|
||||
#define /*0x1A8*/ oUnk1A8 OBJECT_FIELD_U32(0x48)
|
||||
#define /*0x1A8*/ oUnusedBhvParams OBJECT_FIELD_U32(0x48)
|
||||
// 0x1AC-0x1B2 (0x48-0x4A) are object specific and defined below the common fields.
|
||||
#define /*0x1B4*/ oWallAngle OBJECT_FIELD_S32(0x4B)
|
||||
#define /*0x1B8*/ oFloorType OBJECT_FIELD_S16(0x4C, 0)
|
||||
|
@ -165,8 +165,8 @@
|
|||
#define /*0x110*/ oMarioSteepJumpYaw OBJECT_FIELD_S32(0x22)
|
||||
#define /*0x110*/ oMarioWalkingPitch OBJECT_FIELD_S32(0x22)
|
||||
|
||||
/* 1-Up Hidden */
|
||||
#define /*0x0F4*/ o1UpHiddenUnkF4 OBJECT_FIELD_S32(0x1B)
|
||||
/* Hidden 1-Up */
|
||||
#define /*0x0F4*/ oHidden1UpNumTouchedTriggers OBJECT_FIELD_S32(0x1B)
|
||||
|
||||
/* Activated Back and Forth Platform */
|
||||
#define /*0x0F4*/ oActivatedBackAndForthPlatformMaxOffset OBJECT_FIELD_F32(0x1B)
|
||||
|
@ -278,7 +278,7 @@
|
|||
#define /*0x0F4*/ oBowserStatus OBJECT_FIELD_S32(0x1B)
|
||||
#define /*0x0F8*/ oBowserTimer OBJECT_FIELD_S32(0x1C)
|
||||
#define /*0x0FC*/ oBowserDistToCenter OBJECT_FIELD_F32(0x1D)
|
||||
#define /*0x106*/ oBowserBitsJustJump OBJECT_FIELD_S16(0x1F, 1)
|
||||
#define /*0x106*/ oBowserBitSJustJump OBJECT_FIELD_S16(0x1F, 1)
|
||||
#define /*0x108*/ oBowserRandSplitFloor OBJECT_FIELD_S16(0x20, 0)
|
||||
#define /*0x10A*/ oBowserHeldAnglePitch OBJECT_FIELD_S16(0x20, 1)
|
||||
#define /*0x10D*/ oBowserHeldAngleVelYaw OBJECT_FIELD_S16(0x21, 0)
|
||||
|
@ -398,11 +398,11 @@
|
|||
#define /*0x1AC*/ oCloudFwooshMovementRadius OBJECT_FIELD_S16(0x49, 0)
|
||||
|
||||
/* Coin */
|
||||
#define /*0x0F4*/ oCoinUnkF4 OBJECT_FIELD_S32(0x1B)
|
||||
#define /*0x0F8*/ oCoinUnkF8 OBJECT_FIELD_S32(0x1C)
|
||||
#define /*0x110*/ oCoinUnk110 OBJECT_FIELD_F32(0x22)
|
||||
#define /*0x0F4*/ oCoinCollectedFlags OBJECT_FIELD_S32(0x1B)
|
||||
#define /*0x0F8*/ oCoinOnGround OBJECT_FIELD_S32(0x1C)
|
||||
#define /*0x110*/ oCoinBaseVelY OBJECT_FIELD_F32(0x22)
|
||||
#ifndef VERSION_JP
|
||||
#define /*0x1B0*/ oCoinUnk1B0 OBJECT_FIELD_S32(0x4A)
|
||||
#define /*0x1B0*/ oCoinNumBounceSoundPlayed OBJECT_FIELD_S32(0x4A)
|
||||
#endif
|
||||
|
||||
/* Collision Particle */
|
||||
|
@ -569,7 +569,7 @@
|
|||
#define /*0x0F4*/ oHeaveHoUnkF4 OBJECT_FIELD_F32(0x1B)
|
||||
|
||||
/* Hidden Object */
|
||||
#define /*0x0F4*/ oHiddenObjectUnkF4 OBJECT_FIELD_OBJ(0x1B)
|
||||
#define /*0x0F4*/ oHiddenObjectPurpleSwitch OBJECT_FIELD_OBJ(0x1B)
|
||||
|
||||
/* Hoot */
|
||||
#define /*0x0F4*/ oHootAvailability OBJECT_FIELD_S32(0x1B)
|
||||
|
@ -725,7 +725,7 @@
|
|||
|
||||
/* Openable Grill */
|
||||
#define /*0x088*/ oOpenableGrillUnk88 OBJECT_FIELD_S32(0x00)
|
||||
#define /*0x0F4*/ oOpenableGrillUnkF4 OBJECT_FIELD_OBJ(0x1B)
|
||||
#define /*0x0F4*/ oOpenableGrillPurpleSwitch OBJECT_FIELD_OBJ(0x1B)
|
||||
|
||||
/* Intro Cutscene Peach */
|
||||
#define /*0x108*/ oIntroPeachYawFromFocus OBJECT_FIELD_F32(0x20)
|
||||
|
@ -770,12 +770,12 @@
|
|||
#define /*0x0F8*/ oPitouneUnkF8 OBJECT_FIELD_F32(0x1C)
|
||||
#define /*0x0FC*/ oPitouneUnkFC OBJECT_FIELD_F32(0x1D)
|
||||
|
||||
/* Falling Rising Bitfs Platform */
|
||||
#define /*0x0F4*/ oBitfsPlatformTimer OBJECT_FIELD_S32(0x1B)
|
||||
/* Falling Rising BitFS Platform */
|
||||
#define /*0x0F4*/ oBitFSPlatformTimer OBJECT_FIELD_S32(0x1B)
|
||||
|
||||
/* Falling Bowser Bits Platform */
|
||||
#define /*0x0F8*/ oBitsPlatformBowser OBJECT_FIELD_OBJ(0x1C)
|
||||
#define /*0x0FC*/ oBitsPlatformTimer OBJECT_FIELD_S32(0x1D)
|
||||
/* Falling Bowser BitS Platform */
|
||||
#define /*0x0F8*/ oBitSPlatformBowser OBJECT_FIELD_OBJ(0x1C)
|
||||
#define /*0x0FC*/ oBitSPlatformTimer OBJECT_FIELD_S32(0x1D)
|
||||
|
||||
/* WF Platform */
|
||||
#define /*0x10C*/ oPlatformUnk10C OBJECT_FIELD_F32(0x21)
|
||||
|
@ -831,10 +831,10 @@
|
|||
/* Rolling Log */
|
||||
#define /*0x0F4*/ oRollingLogUnkF4 OBJECT_FIELD_F32(0x1B)
|
||||
|
||||
/* Lll Rotating Hex Flame */
|
||||
#define /*0x0F4*/ oLllRotatingHexFlameUnkF4 OBJECT_FIELD_F32(0x1B)
|
||||
#define /*0x0F8*/ oLllRotatingHexFlameUnkF8 OBJECT_FIELD_F32(0x1C)
|
||||
#define /*0x0FC*/ oLllRotatingHexFlameUnkFC OBJECT_FIELD_F32(0x1D)
|
||||
/* LLL Rotating Hex Flame */
|
||||
#define /*0x0F4*/ oLLLRotatingHexFlameUnkF4 OBJECT_FIELD_F32(0x1B)
|
||||
#define /*0x0F8*/ oLLLRotatingHexFlameUnkF8 OBJECT_FIELD_F32(0x1C)
|
||||
#define /*0x0FC*/ oLLLRotatingHexFlameUnkFC OBJECT_FIELD_F32(0x1D)
|
||||
|
||||
/* Scuttlebug */
|
||||
#define /*0x0F4*/ oScuttlebugUnkF4 OBJECT_FIELD_S32(0x1B)
|
||||
|
@ -863,10 +863,10 @@
|
|||
#define /*0x100*/ oSkeeterWaitTime OBJECT_FIELD_S32(0x1E)
|
||||
#define /*0x1AC*/ oSkeeterUnk1AC OBJECT_FIELD_S16(0x49, 0)
|
||||
|
||||
/* Jrb Sliding Box */
|
||||
#define /*0x0F4*/ oJrbSlidingBoxUnkF4 OBJECT_FIELD_OBJ(0x1B)
|
||||
#define /*0x0F8*/ oJrbSlidingBoxUnkF8 OBJECT_FIELD_S32(0x1C)
|
||||
#define /*0x0FC*/ oJrbSlidingBoxUnkFC OBJECT_FIELD_F32(0x1D)
|
||||
/* JRB Sliding Box */
|
||||
#define /*0x0F4*/ oJRBSlidingBoxUnkF4 OBJECT_FIELD_OBJ(0x1B)
|
||||
#define /*0x0F8*/ oJRBSlidingBoxUnkF8 OBJECT_FIELD_S32(0x1C)
|
||||
#define /*0x0FC*/ oJRBSlidingBoxUnkFC OBJECT_FIELD_F32(0x1D)
|
||||
|
||||
/* WF Sliding Brick Platform */
|
||||
#define /*0x0F4*/ oWFSlidBrickPtfmMovVel OBJECT_FIELD_F32(0x1B)
|
||||
|
@ -952,8 +952,8 @@
|
|||
#define /*0x0F8*/ oSwoopTargetPitch OBJECT_FIELD_S32(0x1C)
|
||||
#define /*0x0FC*/ oSwoopTargetYaw OBJECT_FIELD_S32(0x1D)
|
||||
|
||||
/* Thwomp */
|
||||
#define /*0x0F4*/ oThwompRandomTimer OBJECT_FIELD_S32(0x1B)
|
||||
/* Grindel or Thwomp */
|
||||
#define /*0x0F4*/ oGrindelThwompRandomTimer OBJECT_FIELD_S32(0x1B)
|
||||
|
||||
/* Tilting Platform */
|
||||
#define /*0x0F4*/ oTiltingPyramidNormalX OBJECT_FIELD_F32(0x1B)
|
||||
|
@ -962,13 +962,13 @@
|
|||
#define /*0x10C*/ oTiltingPyramidMarioOnPlatform OBJECT_FIELD_S32(0x21)
|
||||
|
||||
/* Toad Message */
|
||||
#define /*0x108*/ oToadMessageDialogId 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)
|
||||
|
||||
/* Tox Box */
|
||||
#define /*0x1AC*/ oToxBoxMovementPattern OBJECT_FIELD_VPTR(0x49)
|
||||
#define /*0x1B0*/ oToxBoxMovementStep OBJECT_FIELD_S32(0x4A)
|
||||
#define /*0x1AC*/ oToxBoxActionTable OBJECT_FIELD_VPTR(0x49)
|
||||
#define /*0x1B0*/ oToxBoxActionStep OBJECT_FIELD_S32(0x4A)
|
||||
|
||||
/* TTC Rotating Solid */
|
||||
#define /*0x0F4*/ oTTCRotatingSolidNumTurns OBJECT_FIELD_S32(0x1B)
|
||||
|
@ -1033,7 +1033,7 @@
|
|||
#define /*0x0F8*/ oTreasureChestUnkF8 OBJECT_FIELD_S32(0x1C)
|
||||
#define /*0x0FC*/ oTreasureChestUnkFC OBJECT_FIELD_S32(0x1D)
|
||||
|
||||
/* Tree Snow Or Leaf */
|
||||
/* Tree Snow or Leaf */
|
||||
#define /*0x0F4*/ oTreeSnowOrLeafUnkF4 OBJECT_FIELD_S32(0x1B)
|
||||
#define /*0x0F8*/ oTreeSnowOrLeafUnkF8 OBJECT_FIELD_S32(0x1C)
|
||||
#define /*0x0FC*/ oTreeSnowOrLeafUnkFC OBJECT_FIELD_S32(0x1D)
|
||||
|
@ -1146,8 +1146,8 @@
|
|||
#define /*0x1AC*/ oWigglerUnused OBJECT_FIELD_S16(0x49, 0)
|
||||
#define /*0x1AE*/ oWigglerTextStatus OBJECT_FIELD_S16(0x49, 1)
|
||||
|
||||
/* Lll Wood Piece */
|
||||
#define /*0x0F4*/ oLllWoodPieceOscillationTimer OBJECT_FIELD_S32(0x1B)
|
||||
/* LLL Wood Piece */
|
||||
#define /*0x0F4*/ oLLLWoodPieceOscillationTimer OBJECT_FIELD_S32(0x1B)
|
||||
|
||||
/* Wooden Post */
|
||||
#define /*0x0F4*/ oWoodenPostTotalMarioAngle OBJECT_FIELD_S32(0x1B)
|
||||
|
|
|
@ -40,8 +40,15 @@ DECLARE_SEGMENT(engine)
|
|||
DECLARE_SEGMENT(behavior)
|
||||
DECLARE_SEGMENT(scripts)
|
||||
DECLARE_SEGMENT(goddard)
|
||||
|
||||
extern u8 _goddardSegmentStart[];
|
||||
|
||||
#ifdef USE_EXT_RAM
|
||||
extern u8 _engineSegmentStart[];
|
||||
extern u8 _framebuffersSegmentNoloadStart[];
|
||||
extern u8 _framebuffersSegmentNoloadEnd[];
|
||||
#endif
|
||||
|
||||
DECLARE_LEVEL_SEGMENT(menu)
|
||||
DECLARE_LEVEL_SEGMENT(intro)
|
||||
DECLARE_LEVEL_SEGMENT(ending)
|
||||
|
|
|
@ -13,22 +13,21 @@
|
|||
* linker script syntax.
|
||||
*/
|
||||
|
||||
#define SEG_START 0x8005C000
|
||||
|
||||
#define SEG_FRAMEBUFFERS_SIZE (2 * SCREEN_WIDTH * SCREEN_HEIGHT * 3)
|
||||
#define SEG_GODDARD_POOL_OFFSET 0x52000 // Offset from right side of pool
|
||||
#define SEG_GODDARD (SEG_POOL_END - SEG_GODDARD_POOL_OFFSET)
|
||||
|
||||
#ifndef USE_EXT_RAM /* Default: Runs out of memory quickly when importing custom assets. */
|
||||
|
||||
#define SEG_POOL_START 0x8005C000
|
||||
#define SEG_POOL_END SEG_BUFFERS
|
||||
#define RDRAM_END 0x80400000
|
||||
|
||||
#define SEG_GODDARD 0x8016F000
|
||||
#define SEG_POOL_START SEG_START
|
||||
#define SEG_POOL_SIZE 0x165000
|
||||
#define SEG_POOL_END (SEG_POOL_START + SEG_POOL_SIZE)
|
||||
|
||||
#define SEG_BUFFERS 0x801C1000
|
||||
|
||||
#if defined(VERSION_SH) || ENABLE_RUMBLE
|
||||
#define SEG_MAIN 0x80249000
|
||||
#elif defined(VERSION_EU)
|
||||
#define SEG_MAIN 0x80241800 // TODO: Investigate why it's different?
|
||||
#else
|
||||
#define SEG_MAIN 0x80246000
|
||||
#endif
|
||||
#define SEG_BUFFERS SEG_POOL_END
|
||||
|
||||
#ifdef VERSION_EU
|
||||
#define SEG_ENGINE 0x8036FF00
|
||||
|
@ -36,7 +35,7 @@
|
|||
#define SEG_ENGINE 0x80378800
|
||||
#endif
|
||||
|
||||
#define SEG_FRAMEBUFFERS 0x8038F800
|
||||
#define SEG_FRAMEBUFFERS (RDRAM_END - SEG_FRAMEBUFFERS_SIZE)
|
||||
|
||||
#else /* Use Expansion Pak space for pool. */
|
||||
|
||||
|
@ -45,14 +44,19 @@
|
|||
* importing large custom content.
|
||||
*/
|
||||
|
||||
#define SEG_BUFFERS 0x8005C000 // 0x0085000 in size
|
||||
#define SEG_MAIN 0x800E1000 // 0x0132800 in size
|
||||
#define SEG_ENGINE 0x80213800 // 0x0017000 in size
|
||||
#define SEG_FRAMEBUFFERS 0x8022A800 // 0x0070800 in size
|
||||
#define SEG_POOL_START 0x8029B000 // 0x0165000 in size
|
||||
#define SEG_POOL_END 0x80800000
|
||||
#ifdef VERSION_CN
|
||||
#define RDRAM_END 0x807C0000 // iQue has stuff like EEPROM mapped at 807C0000 onwards. TODO: Code this using osMemSize
|
||||
#else
|
||||
#define RDRAM_END 0x80800000
|
||||
#endif
|
||||
|
||||
#define SEG_BUFFERS SEG_START
|
||||
#define SEG_ENGINE ((u32) &_engineSegmentStart)
|
||||
#define SEG_FRAMEBUFFERS ((u32) &_framebuffersSegmentNoloadStart)
|
||||
#define SEG_POOL_START ((u32) &_framebuffersSegmentNoloadEnd)
|
||||
#define SEG_POOL_END RDRAM_END
|
||||
#define SEG_POOL_END_4MB 0x80400000 // For the error message screen enhancement.
|
||||
#define SEG_GODDARD SEG_POOL_START + 0x113000
|
||||
|
||||
#endif
|
||||
|
||||
#endif // SEGMENTS_H
|
||||
|
|
|
@ -155,7 +155,7 @@
|
|||
.byte 0xff
|
||||
.endm
|
||||
|
||||
#ifdef VERSION_SH
|
||||
#if defined(VERSION_SH) || defined(VERSION_CN)
|
||||
|
||||
.macro seq_unreservenotes
|
||||
.byte 0xf0
|
||||
|
@ -462,7 +462,7 @@
|
|||
var_long \a
|
||||
.endm
|
||||
|
||||
#ifdef VERSION_SH
|
||||
#if defined(VERSION_SH) || defined(VERSION_CN)
|
||||
|
||||
.macro chan_setnotepriority a
|
||||
.byte 0xe9
|
||||
|
|
|
@ -98,7 +98,7 @@
|
|||
/**
|
||||
* The table below defines all sounds that exist in the game, and which flags
|
||||
* they are used with. If a sound is used with multiple sets of flags (e.g.
|
||||
* different priorities), they are gives distinguishing suffixes.
|
||||
* different priorities), they are given distinguishing suffixes.
|
||||
* A _2 suffix means the sound is the same despite a different sound ID.
|
||||
*/
|
||||
|
||||
|
|
|
@ -1,93 +0,0 @@
|
|||
#ifndef SPECIAL_PRESET_NAMES_H
|
||||
#define SPECIAL_PRESET_NAMES_H
|
||||
|
||||
enum SpecialPresets {
|
||||
special_null_start,
|
||||
special_yellow_coin,
|
||||
special_yellow_coin_2,
|
||||
special_unknown_3,
|
||||
special_boo,
|
||||
special_unknown_5,
|
||||
special_lll_moving_octagonal_mesh_platform,
|
||||
special_snow_ball,
|
||||
special_lll_drawbridge_spawner,
|
||||
special_empty_9,
|
||||
special_lll_rotating_block_with_fire_bars,
|
||||
special_lll_floating_wood_bridge,
|
||||
special_tumbling_platform,
|
||||
special_lll_rotating_hexagonal_ring,
|
||||
special_lll_sinking_rectangular_platform,
|
||||
special_lll_sinking_square_platforms,
|
||||
special_lll_tilting_square_platform,
|
||||
special_lll_bowser_puzzle,
|
||||
special_mr_i,
|
||||
special_small_bully,
|
||||
special_big_bully,
|
||||
special_empty_21,
|
||||
special_empty_22,
|
||||
special_empty_23,
|
||||
special_empty_24,
|
||||
special_empty_25,
|
||||
special_moving_blue_coin,
|
||||
special_jrb_chest,
|
||||
special_water_ring,
|
||||
special_mine,
|
||||
special_empty_30,
|
||||
special_empty_31,
|
||||
special_butterfly,
|
||||
special_bowser,
|
||||
special_wf_rotating_wooden_platform,
|
||||
special_small_bomp,
|
||||
special_wf_sliding_platform,
|
||||
special_tower_platform_group,
|
||||
special_rotating_counter_clockwise,
|
||||
special_wf_tumbling_bridge,
|
||||
special_large_bomp,
|
||||
|
||||
special_level_geo_03 = 0x65,
|
||||
special_level_geo_04,
|
||||
special_level_geo_05,
|
||||
special_level_geo_06,
|
||||
special_level_geo_07,
|
||||
special_level_geo_08,
|
||||
special_level_geo_09,
|
||||
special_level_geo_0A,
|
||||
special_level_geo_0B,
|
||||
special_level_geo_0C,
|
||||
special_level_geo_0D,
|
||||
special_level_geo_0E,
|
||||
special_level_geo_0F,
|
||||
special_level_geo_10,
|
||||
special_level_geo_11,
|
||||
special_level_geo_12,
|
||||
special_level_geo_13,
|
||||
special_level_geo_14,
|
||||
special_level_geo_15,
|
||||
special_level_geo_16,
|
||||
special_bubble_tree,
|
||||
special_spiky_tree,
|
||||
special_snow_tree,
|
||||
special_unknown_tree,
|
||||
special_palm_tree,
|
||||
special_wooden_door,
|
||||
special_haunted_door = special_wooden_door,
|
||||
special_unknown_door,
|
||||
special_metal_door,
|
||||
special_hmc_door,
|
||||
special_unknown2_door,
|
||||
special_wooden_door_warp,
|
||||
special_unknown1_door_warp,
|
||||
special_metal_door_warp,
|
||||
special_unknown2_door_warp,
|
||||
special_unknown3_door_warp,
|
||||
special_castle_door_warp,
|
||||
special_castle_door,
|
||||
special_0stars_door,
|
||||
special_1star_door,
|
||||
special_3star_door,
|
||||
special_key_door,
|
||||
|
||||
special_null_end = 0xFF
|
||||
};
|
||||
|
||||
#endif // SPECIAL_PRESET_NAMES_H
|
|
@ -1,111 +1,93 @@
|
|||
#ifndef SPECIAL_PRESETS_H
|
||||
#define SPECIAL_PRESETS_H
|
||||
|
||||
#include "special_preset_names.h"
|
||||
#include "behavior_data.h"
|
||||
#include "model_ids.h"
|
||||
enum SpecialPresets {
|
||||
special_null_start,
|
||||
special_yellow_coin,
|
||||
special_yellow_coin_2,
|
||||
special_unknown_3,
|
||||
special_boo,
|
||||
special_unknown_5,
|
||||
special_lll_moving_octagonal_mesh_platform,
|
||||
special_snow_ball,
|
||||
special_lll_drawbridge_spawner,
|
||||
special_empty_9,
|
||||
special_lll_rotating_block_with_fire_bars,
|
||||
special_lll_floating_wood_bridge,
|
||||
special_tumbling_platform,
|
||||
special_lll_rotating_hexagonal_ring,
|
||||
special_lll_sinking_rectangular_platform,
|
||||
special_lll_sinking_square_platforms,
|
||||
special_lll_tilting_square_platform,
|
||||
special_lll_bowser_puzzle,
|
||||
special_mr_i,
|
||||
special_small_bully,
|
||||
special_big_bully,
|
||||
special_empty_21,
|
||||
special_empty_22,
|
||||
special_empty_23,
|
||||
special_empty_24,
|
||||
special_empty_25,
|
||||
special_moving_blue_coin,
|
||||
special_jrb_chest,
|
||||
special_water_ring,
|
||||
special_mine,
|
||||
special_empty_30,
|
||||
special_empty_31,
|
||||
special_butterfly,
|
||||
special_bowser,
|
||||
special_wf_rotating_wooden_platform,
|
||||
special_small_bomp,
|
||||
special_wf_sliding_platform,
|
||||
special_tower_platform_group,
|
||||
special_rotating_counter_clockwise,
|
||||
special_wf_tumbling_bridge,
|
||||
special_large_bomp,
|
||||
|
||||
// Special Preset types
|
||||
#define SPTYPE_NO_YROT_OR_PARAMS 0 // object is 8-bytes long, no y-rotation or any behavior params
|
||||
#define SPTYPE_YROT_NO_PARAMS 1 // object is 10-bytes long, has y-rotation but no params
|
||||
#define SPTYPE_PARAMS_AND_YROT 2 // object is 12-bytes long, has y-rotation and params
|
||||
#define SPTYPE_UNKNOWN 3 // object is 14-bytes long, has 3 extra shorts that get converted to floats.
|
||||
#define SPTYPE_DEF_PARAM_AND_YROT 4 // object is 10-bytes long, has y-rotation and uses the default param
|
||||
special_level_geo_03 = 0x65,
|
||||
special_level_geo_04,
|
||||
special_level_geo_05,
|
||||
special_level_geo_06,
|
||||
special_level_geo_07,
|
||||
special_level_geo_08,
|
||||
special_level_geo_09,
|
||||
special_level_geo_0A,
|
||||
special_level_geo_0B,
|
||||
special_level_geo_0C,
|
||||
special_level_geo_0D,
|
||||
special_level_geo_0E,
|
||||
special_level_geo_0F,
|
||||
special_level_geo_10,
|
||||
special_level_geo_11,
|
||||
special_level_geo_12,
|
||||
special_level_geo_13,
|
||||
special_level_geo_14,
|
||||
special_level_geo_15,
|
||||
special_level_geo_16,
|
||||
special_bubble_tree,
|
||||
special_spiky_tree,
|
||||
special_snow_tree,
|
||||
special_unknown_tree,
|
||||
special_palm_tree,
|
||||
special_wooden_door,
|
||||
special_haunted_door = special_wooden_door,
|
||||
special_unknown_door,
|
||||
special_metal_door,
|
||||
special_hmc_door,
|
||||
special_unknown2_door,
|
||||
special_wooden_door_warp,
|
||||
special_unknown1_door_warp,
|
||||
special_metal_door_warp,
|
||||
special_unknown2_door_warp,
|
||||
special_unknown3_door_warp,
|
||||
special_castle_door_warp,
|
||||
special_castle_door,
|
||||
special_0stars_door,
|
||||
special_1star_door,
|
||||
special_3star_door,
|
||||
special_key_door,
|
||||
|
||||
struct SpecialPreset {
|
||||
/*00*/ u8 preset_id;
|
||||
/*01*/ u8 type; // Determines whether object is 8, 10, 12 or 14 bytes long.
|
||||
/*02*/ u8 defParam; // Default parameter, only used when type is SPTYPE_DEF_PARAM_AND_YROT
|
||||
/*03*/ u8 model;
|
||||
/*04*/ const BehaviorScript *behavior;
|
||||
};
|
||||
|
||||
// Some Models ID's are missing their names because they are probably unused
|
||||
|
||||
static struct SpecialPreset SpecialObjectPresets[] = {
|
||||
{0x00, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_NONE, NULL},
|
||||
{0x01, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_YELLOW_COIN, bhvYellowCoin},
|
||||
{0x02, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_YELLOW_COIN, bhvYellowCoin},
|
||||
{0x03, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_UNKNOWN_B8, bhvStaticObject},
|
||||
{0x04, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_BOO, bhvCourtyardBooTriplet},
|
||||
{0x05, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_UNKNOWN_AC, bhvCastleFloorTrap},
|
||||
{0x06, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_LLL_MOVING_OCTAGONAL_MESH_PLATFORM, bhvLllMovingOctagonalMeshPlatform},
|
||||
{0x07, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_CCM_SNOWMAN_HEAD, bhvSnowBall},
|
||||
{0x08, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LLL_DRAWBRIDGE_PART, bhvLllDrawbridgeSpawner},
|
||||
{0x09, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvStaticObject},
|
||||
{0x0A, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_LLL_ROTATING_BLOCK_FIRE_BARS, bhvLllRotatingBlockWithFireBars},
|
||||
{0x0B, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvLllFloatingWoodBridge},
|
||||
{0x0C, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvLllTumblingBridge},
|
||||
{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, 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},
|
||||
{0x14, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_BULLY_BOSS, bhvBigBully},
|
||||
{0x15, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvStaticObject},
|
||||
{0x16, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvStaticObject},
|
||||
{0x17, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvStaticObject},
|
||||
{0x18, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvStaticObject},
|
||||
{0x19, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvStaticObject},
|
||||
{0x1A, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_YELLOW_COIN, bhvMovingBlueCoin},
|
||||
{0x1B, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_TREASURE_CHEST_BASE, bhvBetaChestBottom},
|
||||
{0x1C, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_WATER_RING, bhvJetStreamRingSpawner},
|
||||
{0x1D, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_WATER_MINE, bhvBowserBomb},
|
||||
{0x1E, SPTYPE_UNKNOWN , 0x00, MODEL_NONE, bhvStaticObject},
|
||||
{0x1F, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvStaticObject},
|
||||
{0x20, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_BUTTERFLY, bhvButterfly},
|
||||
{0x21, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_BOWSER, bhvBowser},
|
||||
{0x22, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_WF_ROTATING_WOODEN_PLATFORM, bhvWfRotatingWoodenPlatform},
|
||||
{0x23, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_WF_SMALL_BOMP, bhvSmallBomp},
|
||||
{0x24, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_WF_SLIDING_PLATFORM, bhvWfSlidingPlatform},
|
||||
{0x25, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvTowerPlatformGroup},
|
||||
{0x26, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, bhvRotatingCounterClockwise},
|
||||
{0x27, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_WF_TUMBLING_BRIDGE, bhvWfTumblingBridge},
|
||||
{0x28, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_WF_LARGE_BOMP, bhvLargeBomp},
|
||||
{0x65, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_03, bhvStaticObject},
|
||||
{0x66, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_04, bhvStaticObject},
|
||||
{0x67, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_05, bhvStaticObject},
|
||||
{0x68, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_06, bhvStaticObject},
|
||||
{0x69, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_07, bhvStaticObject},
|
||||
{0x6A, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_08, bhvStaticObject},
|
||||
{0x6B, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_09, bhvStaticObject},
|
||||
{0x6C, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_0A, bhvStaticObject},
|
||||
{0x6D, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_0B, bhvStaticObject},
|
||||
{0x6E, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_0C, bhvStaticObject},
|
||||
{0x6F, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_0D, bhvStaticObject},
|
||||
{0x70, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_0E, bhvStaticObject},
|
||||
{0x71, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_0F, bhvStaticObject},
|
||||
{0x72, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_10, bhvStaticObject},
|
||||
{0x73, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_11, bhvStaticObject},
|
||||
{0x74, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_12, bhvStaticObject},
|
||||
{0x75, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_13, bhvStaticObject},
|
||||
{0x76, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_14, bhvStaticObject},
|
||||
{0x77, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_15, bhvStaticObject},
|
||||
{0x78, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_LEVEL_GEOMETRY_16, bhvStaticObject},
|
||||
{0x79, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_BOB_BUBBLY_TREE, bhvTree},
|
||||
{0x7A, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_COURTYARD_SPIKY_TREE, bhvTree},
|
||||
{0x7B, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_CCM_SNOW_TREE, bhvTree},
|
||||
{0x7C, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_UNKNOWN_TREE_1A, bhvTree},
|
||||
{0x7D, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_SSL_PALM_TREE, bhvTree},
|
||||
{0x89, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_CASTLE_CASTLE_DOOR_UNUSED, bhvDoor},
|
||||
{0x7E, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_CASTLE_WOODEN_DOOR_UNUSED, bhvDoor},
|
||||
{0x7F, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_UNKNOWN_DOOR_1E, bhvDoor},
|
||||
{0x80, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_HMC_METAL_DOOR, bhvDoor},
|
||||
{0x81, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_HMC_HAZY_MAZE_DOOR, bhvDoor},
|
||||
{0x82, SPTYPE_YROT_NO_PARAMS , 0x00, MODEL_UNKNOWN_DOOR_21, bhvDoor},
|
||||
{0x8A, SPTYPE_DEF_PARAM_AND_YROT, 0x00, MODEL_CASTLE_DOOR_0_STARS, bhvDoor},
|
||||
{0x8B, SPTYPE_DEF_PARAM_AND_YROT, 0x01, MODEL_CASTLE_DOOR_1_STAR, bhvDoor},
|
||||
{0x8C, SPTYPE_DEF_PARAM_AND_YROT, 0x03, MODEL_CASTLE_DOOR_3_STARS, bhvDoor},
|
||||
{0x8D, SPTYPE_DEF_PARAM_AND_YROT, 0x00, MODEL_CASTLE_KEY_DOOR, bhvDoor},
|
||||
{0x88, SPTYPE_PARAMS_AND_YROT , 0x00, MODEL_CASTLE_CASTLE_DOOR, bhvDoorWarp},
|
||||
{0x83, SPTYPE_PARAMS_AND_YROT , 0x00, MODEL_CASTLE_WOODEN_DOOR, bhvDoorWarp},
|
||||
{0x84, SPTYPE_PARAMS_AND_YROT , 0x00, MODEL_UNKNOWN_DOOR_28, bhvDoorWarp},
|
||||
{0x85, SPTYPE_PARAMS_AND_YROT , 0x00, MODEL_CASTLE_METAL_DOOR, bhvDoorWarp},
|
||||
{0x86, SPTYPE_PARAMS_AND_YROT , 0x00, MODEL_UNKNOWN_DOOR_2A, bhvDoorWarp},
|
||||
{0x87, SPTYPE_PARAMS_AND_YROT , 0x00, MODEL_UNKNOWN_DOOR_2B, bhvDoorWarp},
|
||||
{0xFF, SPTYPE_NO_YROT_OR_PARAMS , 0x00, MODEL_NONE, NULL}
|
||||
special_null_end = 0xFF
|
||||
};
|
||||
|
||||
#endif // SPECIAL_PRESETS_H
|
||||
|
|
104
include/special_presets.inc.c
Normal file
104
include/special_presets.inc.c
Normal file
|
@ -0,0 +1,104 @@
|
|||
#include "special_presets.h"
|
||||
|
||||
// Special Preset types
|
||||
#define SPTYPE_NO_YROT_OR_PARAMS 0 // object is 8-bytes long, no y-rotation or any behavior params
|
||||
#define SPTYPE_YROT_NO_PARAMS 1 // object is 10-bytes long, has y-rotation but no params
|
||||
#define SPTYPE_PARAMS_AND_YROT 2 // object is 12-bytes long, has y-rotation and params
|
||||
#define SPTYPE_UNKNOWN 3 // object is 14-bytes long, has 3 extra shorts that get converted to floats.
|
||||
#define SPTYPE_DEF_PARAM_AND_YROT 4 // object is 10-bytes long, has y-rotation and uses the default param
|
||||
|
||||
struct SpecialPreset {
|
||||
/* 0x00 */ u8 presetID;
|
||||
/* 0x01 */ u8 type; // Determines whether object is 8, 10, 12 or 14 bytes long.
|
||||
/* 0x02 */ u8 defParam; // Default parameter, only used when type is SPTYPE_DEF_PARAM_AND_YROT
|
||||
/* 0x03 */ u8 model;
|
||||
/* 0x04 */ const BehaviorScript *behavior;
|
||||
};
|
||||
|
||||
// Some Models ID's are missing their names because they are probably unused
|
||||
|
||||
static struct SpecialPreset sSpecialObjectPresets[] = {
|
||||
{ special_null_start, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_NONE, NULL },
|
||||
{ special_yellow_coin, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_YELLOW_COIN, bhvYellowCoin },
|
||||
{ special_yellow_coin_2, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_YELLOW_COIN, bhvYellowCoin },
|
||||
{ special_unknown_3, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_UNKNOWN_B8, bhvStaticObject },
|
||||
{ special_boo, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BOO, bhvCourtyardBooTriplet },
|
||||
{ special_unknown_5, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_UNKNOWN_AC, bhvCastleFloorTrap },
|
||||
{ special_lll_moving_octagonal_mesh_platform, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_LLL_MOVING_OCTAGONAL_MESH_PLATFORM, bhvLLLMovingOctagonalMeshPlatform },
|
||||
{ special_snow_ball, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_CCM_SNOWMAN_HEAD, bhvSnowBall },
|
||||
{ special_lll_drawbridge_spawner, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LLL_DRAWBRIDGE_PART, bhvLLLDrawbridgeSpawner },
|
||||
{ special_empty_9, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject },
|
||||
{ special_lll_rotating_block_with_fire_bars, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_LLL_ROTATING_BLOCK_FIRE_BARS, bhvLLLRotatingBlockWithFireBars },
|
||||
{ special_lll_floating_wood_bridge, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvLLLFloatingWoodBridge },
|
||||
{ special_tumbling_platform, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvLLLTumblingBridge },
|
||||
{ special_lll_rotating_hexagonal_ring, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_LLL_ROTATING_HEXAGONAL_RING , bhvLLLRotatingHexagonalRing },
|
||||
{ special_lll_sinking_rectangular_platform, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LLL_SINKING_RECTANGULAR_PLATFORM, bhvLLLSinkingRectangularPlatform },
|
||||
{ special_lll_sinking_square_platforms, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_LLL_SINKING_SQUARE_PLATFORMS, bhvLLLSinkingSquarePlatforms },
|
||||
{ special_lll_tilting_square_platform, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_LLL_TILTING_SQUARE_PLATFORM, bhvLLLTiltingInvertedPyramid },
|
||||
{ special_lll_bowser_puzzle, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvLLLBowserPuzzle },
|
||||
{ special_mr_i, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvMrI },
|
||||
{ special_small_bully, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BULLY, bhvSmallBully },
|
||||
{ special_big_bully, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BULLY_BOSS, bhvBigBully },
|
||||
{ special_empty_21, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject },
|
||||
{ special_empty_22, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject },
|
||||
{ special_empty_23, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject },
|
||||
{ special_empty_24, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject },
|
||||
{ special_empty_25, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject },
|
||||
{ special_moving_blue_coin, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_YELLOW_COIN, bhvMovingBlueCoin },
|
||||
{ special_jrb_chest, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_TREASURE_CHEST_BASE, bhvBetaChestBottom },
|
||||
{ special_water_ring, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_WATER_RING, bhvJetStreamRingSpawner },
|
||||
{ special_mine, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_WATER_MINE, bhvBowserBomb },
|
||||
{ special_empty_30, SPTYPE_UNKNOWN, 0x00, MODEL_NONE, bhvStaticObject },
|
||||
{ special_empty_31, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject },
|
||||
{ special_butterfly, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BUTTERFLY, bhvButterfly },
|
||||
{ special_bowser, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BOWSER, bhvBowser },
|
||||
{ special_wf_rotating_wooden_platform, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_WF_ROTATING_WOODEN_PLATFORM, bhvWFRotatingWoodenPlatform },
|
||||
{ special_small_bomp, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_WF_SMALL_BOMP, bhvSmallBomp },
|
||||
{ special_wf_sliding_platform, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_WF_SLIDING_PLATFORM, bhvWFSlidingPlatform },
|
||||
{ special_tower_platform_group, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvTowerPlatformGroup },
|
||||
{ special_rotating_counter_clockwise, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvRotatingCounterClockwise },
|
||||
{ special_wf_tumbling_bridge, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_WF_TUMBLING_BRIDGE, bhvTumblingBridge },
|
||||
{ special_large_bomp, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_WF_LARGE_BOMP, bhvLargeBomp },
|
||||
{ special_level_geo_03, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_03, bhvStaticObject },
|
||||
{ special_level_geo_04, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_04, bhvStaticObject },
|
||||
{ special_level_geo_05, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_05, bhvStaticObject },
|
||||
{ special_level_geo_06, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_06, bhvStaticObject },
|
||||
{ special_level_geo_07, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_07, bhvStaticObject },
|
||||
{ special_level_geo_08, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_08, bhvStaticObject },
|
||||
{ special_level_geo_09, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_09, bhvStaticObject },
|
||||
{ special_level_geo_0A, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0A, bhvStaticObject },
|
||||
{ special_level_geo_0B, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0B, bhvStaticObject },
|
||||
{ special_level_geo_0C, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0C, bhvStaticObject },
|
||||
{ special_level_geo_0D, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0D, bhvStaticObject },
|
||||
{ special_level_geo_0E, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0E, bhvStaticObject },
|
||||
{ special_level_geo_0F, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0F, bhvStaticObject },
|
||||
{ special_level_geo_10, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_10, bhvStaticObject },
|
||||
{ special_level_geo_11, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_11, bhvStaticObject },
|
||||
{ special_level_geo_12, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_12, bhvStaticObject },
|
||||
{ special_level_geo_13, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_13, bhvStaticObject },
|
||||
{ special_level_geo_14, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_14, bhvStaticObject },
|
||||
{ special_level_geo_15, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_15, bhvStaticObject },
|
||||
{ special_level_geo_16, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_16, bhvStaticObject },
|
||||
{ special_bubble_tree, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BOB_BUBBLY_TREE, bhvTree },
|
||||
{ special_spiky_tree, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_COURTYARD_SPIKY_TREE, bhvTree },
|
||||
{ special_snow_tree, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_CCM_SNOW_TREE, bhvTree },
|
||||
{ special_unknown_tree, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_UNKNOWN_TREE_1A, bhvTree },
|
||||
{ special_palm_tree, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_SSL_PALM_TREE, bhvTree },
|
||||
{ special_castle_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_CASTLE_CASTLE_DOOR_UNUSED, bhvDoor },
|
||||
{ special_wooden_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_CASTLE_WOODEN_DOOR_UNUSED, bhvDoor },
|
||||
{ special_unknown_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_UNKNOWN_DOOR_1E, bhvDoor },
|
||||
{ special_metal_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_HMC_METAL_DOOR, bhvDoor },
|
||||
{ special_hmc_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_HMC_HAZY_MAZE_DOOR, bhvDoor },
|
||||
{ special_unknown2_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_UNKNOWN_DOOR_21, bhvDoor },
|
||||
{ special_0stars_door, SPTYPE_DEF_PARAM_AND_YROT, 0x00, MODEL_CASTLE_DOOR_0_STARS, bhvDoor },
|
||||
{ special_1star_door, SPTYPE_DEF_PARAM_AND_YROT, 0x01, MODEL_CASTLE_DOOR_1_STAR, bhvDoor },
|
||||
{ special_3star_door, SPTYPE_DEF_PARAM_AND_YROT, 0x03, MODEL_CASTLE_DOOR_3_STARS, bhvDoor },
|
||||
{ special_key_door, SPTYPE_DEF_PARAM_AND_YROT, 0x00, MODEL_CASTLE_KEY_DOOR, bhvDoor },
|
||||
{ special_castle_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_CASTLE_CASTLE_DOOR, bhvDoorWarp },
|
||||
{ special_wooden_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_CASTLE_WOODEN_DOOR, bhvDoorWarp },
|
||||
{ special_unknown1_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_UNKNOWN_DOOR_28, bhvDoorWarp },
|
||||
{ special_metal_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_CASTLE_METAL_DOOR, bhvDoorWarp },
|
||||
{ special_unknown2_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_UNKNOWN_DOOR_2A, bhvDoorWarp },
|
||||
{ special_unknown3_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_UNKNOWN_DOOR_2B, bhvDoorWarp },
|
||||
{ special_null_end, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, NULL },
|
||||
};
|
|
@ -102,9 +102,9 @@
|
|||
#define SURFACE_PAINTING_WOBBLE_CD 0x00CD // Painting wobble (THI Huge - Left)
|
||||
#define SURFACE_PAINTING_WOBBLE_CE 0x00CE // Painting wobble (THI Huge - Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_CF 0x00CF // Painting wobble (THI Huge - Right)
|
||||
#define SURFACE_PAINTING_WOBBLE_D0 0x00D0 // Painting wobble (HMC & COTMC - Left), makes the painting wobble if touched
|
||||
#define SURFACE_PAINTING_WOBBLE_D1 0x00D1 // Painting wobble (Unused, HMC & COTMC - Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_D2 0x00D2 // Painting wobble (Unused, HMC & COTMC - Right)
|
||||
#define SURFACE_PAINTING_WOBBLE_D0 0x00D0 // Painting wobble (HMC & CotMC - Left), makes the painting wobble if touched
|
||||
#define SURFACE_PAINTING_WOBBLE_D1 0x00D1 // Painting wobble (Unused, HMC & CotMC - Middle)
|
||||
#define SURFACE_PAINTING_WOBBLE_D2 0x00D2 // Painting wobble (Unused, HMC & CotMC - Right)
|
||||
#define SURFACE_PAINTING_WARP_D3 0x00D3 // Painting warp (BoB Left)
|
||||
#define SURFACE_PAINTING_WARP_D4 0x00D4 // Painting warp (BoB Middle)
|
||||
#define SURFACE_PAINTING_WARP_D5 0x00D5 // Painting warp (BoB Right)
|
||||
|
|
|
@ -8,11 +8,13 @@
|
|||
/**
|
||||
* File Select JP HUD Text
|
||||
*/
|
||||
#if defined(VERSION_JP) || defined(VERSION_SH)
|
||||
#define TEXT_JPHUD_MARIO _("マリオ")
|
||||
#define TEXT_JPHUD_SELECT_FILE _("ファイルセレクト")
|
||||
#define TEXT_JPHUD_CHECK_FILE _("どのスコアをみる?")
|
||||
#define TEXT_JPHUD_COPY_FILE _("ファイルコピーする")
|
||||
#define TEXT_JPHUD_ERASE_FILE _("ファイルけす")
|
||||
#define TEXT_JPHUD_SOUND_SELECT _("サウンドセレクト")
|
||||
#endif
|
||||
|
||||
#endif // TEXT_MENU_STRINGS_H
|
||||
|
|
|
@ -6,30 +6,48 @@
|
|||
/**
|
||||
* Global Symbols
|
||||
*/
|
||||
#define TEXT_ZERO _("0")
|
||||
#define TEXT_EMPTY_STRING _("")
|
||||
#define TEXT_ZERO _%("0")
|
||||
#define TEXT_COIN _("$")
|
||||
#define TEXT_STAR _("★")
|
||||
#define TEXT_COIN_X _("$×")
|
||||
#define TEXT_STAR_X _("★×")
|
||||
#define TEXT_VARIABLE_X _("×")
|
||||
|
||||
#ifdef VERSION_CN
|
||||
#define TEXT_STAR_DIFF _("★ ")
|
||||
#define TEXT_UNFILLED_STAR _("☆ ")
|
||||
#else
|
||||
#define TEXT_STAR_DIFF TEXT_STAR
|
||||
#define TEXT_UNFILLED_STAR _("☆")
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Global Text
|
||||
*/
|
||||
// File Select
|
||||
#define TEXT_NEW _("NEW") // New File Text
|
||||
#define TEXT_4DASHES _("----") // Used in Score File Menu
|
||||
#ifdef VERSION_CN
|
||||
#define TEXT_NEW 0x7E, 0x7F, 0x82, 0x83, 0xFE, 0x80, 0x81, 0x84, 0x85, 0xFF
|
||||
#else
|
||||
#define TEXT_NEW _("NEW") // New File Text
|
||||
#endif
|
||||
|
||||
// Ingame Menu
|
||||
#ifdef VERSION_CN
|
||||
#define TEXT_PAUSE 0x86, 0x87, 0x8A, 0x8B, 0x8E, 0x8F, 0xFE, 0x88, 0x89, 0x8C, 0x8D, 0x90, 0x91, 0xFF
|
||||
#define TEXT_HUD_CONGRATULATIONS 0x3A, 0x3B, 0x3E, 0x3F, 0x42, 0x43, 0xFE, 0x3C, 0x3D, 0x40, 0x41, 0x44, 0x45, 0xFF
|
||||
#else
|
||||
#define TEXT_PAUSE _("PAUSE") // Pause text, Castle Courses
|
||||
#define TEXT_HUD_CONGRATULATIONS _("CONGRATULATIONS") // Course Complete Text, Bowser Courses
|
||||
#endif
|
||||
|
||||
#if defined(VERSION_JP) || defined(VERSION_SH)
|
||||
|
||||
/**
|
||||
* File Select Text
|
||||
*/
|
||||
|
||||
// Main Screens
|
||||
// JPHUD menu strings are defined in "text_menu_strings.h.in"
|
||||
#define TEXT_MARIO TEXT_JPHUD_MARIO // View Score Menu
|
||||
|
@ -129,6 +147,7 @@
|
|||
/**
|
||||
* File Select Text
|
||||
*/
|
||||
|
||||
// Main Screens
|
||||
#define TEXT_MARIO _("MARIO") // View Score Menu
|
||||
#define TEXT_SELECT_FILE _("SELECT FILE")
|
||||
|
@ -136,6 +155,7 @@
|
|||
#define TEXT_COPY_FILE _("COPY FILE")
|
||||
#define TEXT_ERASE_FILE _("ERASE FILE")
|
||||
#define TEXT_SOUND_SELECT _("SOUND SELECT")
|
||||
|
||||
#define TEXT_FILE_MARIO_A _("MARIO A")
|
||||
#define TEXT_FILE_MARIO_B _("MARIO B")
|
||||
#define TEXT_FILE_MARIO_C _("MARIO C")
|
||||
|
@ -472,4 +492,97 @@
|
|||
#define TEXT_MENU_STARS_DE _(" GEHEIME STERNE")
|
||||
#endif // VERSION_EU
|
||||
|
||||
#ifdef VERSION_CN
|
||||
|
||||
/**
|
||||
* File Select Text
|
||||
*/
|
||||
|
||||
// Main Screens
|
||||
// JPHUD menu strings are defined in "text_menu_strings.h.in"
|
||||
#define TEXT_MARIO 0x76, 0x77, 0x7A, 0x7B, 0xFE, 0x78, 0x79, 0x7C, 0x7D, 0xFF
|
||||
#define TEXT_SELECT_FILE 0x96, 0x97, 0x9A, 0x9B, 0x9E, 0x9F, 0xFE, 0x98, 0x99, 0x9C, 0x9D, 0xA0, 0xA1, 0xFF
|
||||
#define TEXT_CHECK_FILE 0x46, 0x47, 0x4A, 0x4B, 0x4E, 0x4F, 0xFE, 0x48, 0x49, 0x4C, 0x4D, 0x50, 0x51, 0xFF
|
||||
#define TEXT_COPY_FILE 0x52, 0x53, 0x56, 0x57, 0x5A, 0x5B, 0xFE, 0x54, 0x55, 0x58, 0x59, 0x5C, 0x5D, 0xFF
|
||||
#define TEXT_ERASE_FILE 0x5E, 0x5F, 0x62, 0x63, 0x66, 0x67, 0xFE, 0x60, 0x61, 0x64, 0x65, 0x68, 0x69, 0xFF
|
||||
#define TEXT_SOUND_SELECT 0xA2, 0xA3, 0xA6, 0xA7, 0xAA, 0xAB, 0xFE, 0xA4, 0xA5, 0xA8, 0xA9, 0xAC, 0xAD, 0xFF
|
||||
|
||||
#define TEXT_FILE_MARIO_A _("马力欧 A")
|
||||
#define TEXT_FILE_MARIO_B _("马力欧 B")
|
||||
#define TEXT_FILE_MARIO_C _("马力欧 C")
|
||||
#define TEXT_FILE_MARIO_D _("马力欧 D")
|
||||
|
||||
// Menu Options
|
||||
#define TEXT_SCORE _("积分")
|
||||
#define TEXT_COPY _("复制")
|
||||
#define TEXT_ERASE _("删除")
|
||||
|
||||
// Sound Options
|
||||
#define TEXT_STEREO _("立体声")
|
||||
#define TEXT_MONO _("单声道")
|
||||
#define TEXT_HEADSET _("耳机")
|
||||
|
||||
// Misc Menu Text
|
||||
#define TEXT_SAVED_DATA_EXISTS _("有保存的数据")
|
||||
#define TEXT_NO_SAVED_DATA_EXISTS _("没有保存的数据")
|
||||
|
||||
// Inside a Menu
|
||||
#define TEXT_RETURN _("返回")
|
||||
#define TEXT_CHECK_SCORE _("查看积分")
|
||||
#define TEXT_COPY_FILE_BUTTON _("复制文件")
|
||||
#define TEXT_ERASE_FILE_BUTTON _("删除文件")
|
||||
|
||||
// Score Menu
|
||||
#define TEXT_HI_SCORE _("最高积分")
|
||||
#define TEXT_MY_SCORE _("我的积分")
|
||||
#define TEXT_SCORE_MARIO_A _("☺A")
|
||||
#define TEXT_SCORE_MARIO_B _("☺B")
|
||||
#define TEXT_SCORE_MARIO_C _("☺C")
|
||||
#define TEXT_SCORE_MARIO_D _("☺D")
|
||||
|
||||
// Copy Menu
|
||||
#define TEXT_COPY_IT_TO_WHERE _("复制到何处")
|
||||
#define TEXT_COPYING_COMPLETED _("复制完毕")
|
||||
#define TEXT_NO_FILE_TO_COPY_FROM _("没有空文件")
|
||||
|
||||
// Erase Menu
|
||||
#define TEXT_SURE _("确定吗?")
|
||||
#define TEXT_YES _("是")
|
||||
#define TEXT_NO _("否")
|
||||
#define TEXT_FILE_MARIO_A_JUST_ERASED _("文件已删除")
|
||||
|
||||
/**
|
||||
* Menus Text (Pause, Course Completed)
|
||||
*/
|
||||
// Main Courses
|
||||
#define TEXT_COURSE _("关卡")
|
||||
#define TEXT_MYSCORE TEXT_MY_SCORE
|
||||
#define TEXT_CONTINUE _("继续")
|
||||
#define TEXT_EXIT_COURSE _("退出")
|
||||
#define TEXT_CAMERA_ANGLE_R _("使用[R]键设定视角")
|
||||
|
||||
// Camera Options
|
||||
#define TEXT_LAKITU_MARIO TEXT_EMPTY_STRING
|
||||
#define TEXT_LAKITU_STOP TEXT_EMPTY_STRING
|
||||
#define TEXT_NORMAL_UPCLOSE _("特写镜头")
|
||||
#define TEXT_NORMAL_FIXED _("固定镜头")
|
||||
|
||||
// Course Completed Misc Text
|
||||
#define TEXT_CATCH _("接住")
|
||||
#define TEXT_CLEAR _("清除")
|
||||
#define TEXT_HUD_HI_SCORE 0x6A, 0x6B, 0x6E, 0x6F, 0x72, 0x73, 0xFE, 0x6C, 0x6D, 0x70, 0x71, 0x74, 0x75, 0xFF
|
||||
|
||||
// Save Options
|
||||
#define TEXT_SAVE_AND_CONTINUE _("保存并继续")
|
||||
#define TEXT_SAVE_AND_QUIT _("保存并退出")
|
||||
#define TEXT_CONTINUE_WITHOUT_SAVING _("不必保存")
|
||||
|
||||
// File Score Menu Icons
|
||||
#define TEXT_ARROW_L _("◀ L")
|
||||
#define TEXT_R_ARROW _("R ▶")
|
||||
|
||||
#endif // VERSION_CN
|
||||
|
||||
#endif // TEXT_STRINGS_H
|
||||
|
||||
|
||||
|
|
|
@ -48,11 +48,14 @@ typedef uintptr_t GeoLayout;
|
|||
typedef uintptr_t LevelScript;
|
||||
typedef s16 Movtex;
|
||||
typedef s16 MacroObject;
|
||||
typedef s16 Collision;
|
||||
typedef s16 Collision; // Collision data is limited to -32768 to 32767. Change this if you want to increase it.
|
||||
typedef s16 Trajectory;
|
||||
typedef s16 PaintingData;
|
||||
typedef uintptr_t BehaviorScript;
|
||||
typedef u8 Texture;
|
||||
typedef s8 RoomData; // Rooms are limited to -128 to 127. Change the type if you wish to have more rooms.
|
||||
typedef Collision TerrainData;
|
||||
typedef TerrainData Vec3Terrain[3];
|
||||
|
||||
enum SpTaskState {
|
||||
SPTASK_STATE_NOT_STARTED,
|
||||
|
@ -75,7 +78,7 @@ struct VblankHandler {
|
|||
};
|
||||
|
||||
#define ANIM_FLAG_NOLOOP (1 << 0) // 0x01
|
||||
#define ANIM_FLAG_FORWARD (1 << 1) // 0x02
|
||||
#define ANIM_FLAG_BACKWARD (1 << 1) // 0x02
|
||||
#define ANIM_FLAG_2 (1 << 2) // 0x04
|
||||
#define ANIM_FLAG_HOR_TRANS (1 << 3) // 0x08
|
||||
#define ANIM_FLAG_VERT_TRANS (1 << 4) // 0x10
|
||||
|
@ -216,15 +219,15 @@ struct Waypoint {
|
|||
};
|
||||
|
||||
struct Surface {
|
||||
/*0x00*/ s16 type;
|
||||
/*0x02*/ s16 force;
|
||||
/*0x00*/ TerrainData type;
|
||||
/*0x02*/ TerrainData force;
|
||||
/*0x04*/ s8 flags;
|
||||
/*0x05*/ s8 room;
|
||||
/*0x06*/ s16 lowerY;
|
||||
/*0x08*/ s16 upperY;
|
||||
/*0x0A*/ Vec3s vertex1;
|
||||
/*0x10*/ Vec3s vertex2;
|
||||
/*0x16*/ Vec3s vertex3;
|
||||
/*0x05*/ RoomData room;
|
||||
/*0x06*/ TerrainData lowerY;
|
||||
/*0x08*/ TerrainData upperY;
|
||||
/*0x0A*/ Vec3Terrain vertex1;
|
||||
/*0x10*/ Vec3Terrain vertex2;
|
||||
/*0x16*/ Vec3Terrain vertex3;
|
||||
/*0x1C*/ struct {
|
||||
f32 x;
|
||||
f32 y;
|
||||
|
@ -309,7 +312,7 @@ struct MarioState {
|
|||
/*0xB8*/ s16 prevNumStarsForDialog;
|
||||
/*0xBC*/ f32 peakHeight;
|
||||
/*0xC0*/ f32 quicksandDepth;
|
||||
/*0xC4*/ f32 unkC4;
|
||||
/*0xC4*/ f32 gettingBlownGravity;
|
||||
};
|
||||
|
||||
#endif // TYPES_H
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include <PR/os_thread.h>
|
||||
#include <PR/os_time.h>
|
||||
#include <PR/os_message.h>
|
||||
#include <PR/os_pfs.h>
|
||||
#include <PR/os_cont.h>
|
||||
#include <PR/os_tlb.h>
|
||||
#include <PR/sptask.h>
|
||||
|
@ -27,6 +28,7 @@
|
|||
#include <PR/os_libc.h>
|
||||
#include <PR/gu.h>
|
||||
#include <PR/os_ai.h>
|
||||
#include <PR/os_motor.h>
|
||||
#include <PR/libaudio.h>
|
||||
#include <PR/libultra.h>
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
// 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*/ 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_haunted_chair_2, /*yaw*/ 90, /*pos*/ -1960, -20, 340),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -800, -204, 2915, /*bhvParam*/ DIALOG_063),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 400, -204, 3057, /*bhvParam*/ DIALOG_085),
|
||||
MACRO_OBJECT (/*preset*/ macro_haunted_chair_2, /*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),
|
||||
MACRO_OBJECT (/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 2540, 820, 2174),
|
||||
|
@ -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*/ DIALOG_102),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 2026, -204, 2966, /*bhvParam*/ 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*/ DIALOG_086),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 135, /*pos*/ -1546, -204, 4813, /*bhvParam*/ 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),
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// 0x0702605C - 0x070268C2
|
||||
const u8 bbh_seg7_rooms[] = {
|
||||
const RoomData bbh_seg7_rooms[] = {
|
||||
13, 13, 13, 13, 13, 13, 13, 13, // 0-7
|
||||
13, 13, 13, 13, 13, 13, 13, 13, // 8-15
|
||||
13, 13, 29, 29, 13, 13, 13, 13, // 16-23
|
||||
|
|
|
@ -96,7 +96,7 @@ extern const Gfx bbh_seg7_dl_0701FFE8[];
|
|||
extern const Gfx bbh_seg7_dl_070202F0[];
|
||||
extern const Gfx bbh_seg7_dl_070206F0[];
|
||||
extern const Collision bbh_seg7_collision_level[];
|
||||
extern const u8 bbh_seg7_rooms[];
|
||||
extern const RoomData bbh_seg7_rooms[];
|
||||
extern const MacroObject bbh_seg7_macro_objs[];
|
||||
extern const Collision bbh_seg7_collision_staircase_step[];
|
||||
extern const Collision bbh_seg7_collision_tilt_floor_platform[];
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
#include "surface_terrains.h"
|
||||
#include "moving_texture_macros.h"
|
||||
#include "level_misc_macros.h"
|
||||
#include "macro_preset_names.h"
|
||||
#include "special_preset_names.h"
|
||||
#include "macro_presets.h"
|
||||
#include "special_presets.h"
|
||||
#include "textures.h"
|
||||
#include "dialog_ids.h"
|
||||
|
||||
|
|
|
@ -18,61 +18,61 @@
|
|||
|
||||
|
||||
static const LevelScript script_func_local_1[] = {
|
||||
OBJECT(/*model*/ MODEL_RED_FLAME, /*pos*/ 2089, 1331, -1125, /*angle*/ 0, 270, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlame),
|
||||
OBJECT(/*model*/ MODEL_RED_FLAME, /*pos*/ 1331, 1075, -1330, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlame),
|
||||
OBJECT(/*model*/ MODEL_RED_FLAME, /*pos*/ 2089, 1331, -511, /*angle*/ 0, 270, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlame),
|
||||
OBJECT(/*model*/ MODEL_RED_FLAME, /*pos*/ -511, 358, -1330, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlame),
|
||||
OBJECT(/*model*/ MODEL_RED_FLAME, /*pos*/ 1126, 358, 2212, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlame),
|
||||
OBJECT(/*model*/ MODEL_RED_FLAME, /*pos*/ 205, 358, 2212, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlame),
|
||||
OBJECT(/*model*/ MODEL_RED_FLAME, /*pos*/ 2089, 1331, -1125, /*angle*/ 0, 270, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlame),
|
||||
OBJECT(/*model*/ MODEL_RED_FLAME, /*pos*/ 1331, 1075, -1330, /*angle*/ 0, 90, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlame),
|
||||
OBJECT(/*model*/ MODEL_RED_FLAME, /*pos*/ 2089, 1331, -511, /*angle*/ 0, 270, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlame),
|
||||
OBJECT(/*model*/ MODEL_RED_FLAME, /*pos*/ -511, 358, -1330, /*angle*/ 0, 90, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlame),
|
||||
OBJECT(/*model*/ MODEL_RED_FLAME, /*pos*/ 1126, 358, 2212, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlame),
|
||||
OBJECT(/*model*/ MODEL_RED_FLAME, /*pos*/ 205, 358, 2212, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlame),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
static const LevelScript script_func_local_2[] = {
|
||||
OBJECT(/*model*/ MODEL_BBH_TILTING_FLOOR_PLATFORM, /*pos*/ 2866, 820, 1897, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBbhTiltingTrapPlatform),
|
||||
OBJECT(/*model*/ MODEL_BBH_TUMBLING_PLATFORM, /*pos*/ 2961, 0, -768, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBbhTumblingBridge),
|
||||
OBJECT(/*model*/ MODEL_BBH_MOVING_BOOKSHELF, /*pos*/ -1994, 819, 213, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHauntedBookshelf),
|
||||
OBJECT(/*model*/ MODEL_BBH_MESH_ELEVATOR, /*pos*/ -2985, -205, 5400, /*angle*/ 0, -45, 0, /*behParam*/ 0x00000000, /*beh*/ bhvMeshElevator),
|
||||
OBJECT(/*model*/ MODEL_BBH_MERRY_GO_ROUND, /*pos*/ -205, -2560, 205, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvMerryGoRound),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2200, 819, -800, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvCoffinSpawner),
|
||||
OBJECT(/*model*/ MODEL_BBH_TILTING_FLOOR_PLATFORM, /*pos*/ 2866, 820, 1897, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBBHTiltingTrapPlatform),
|
||||
OBJECT(/*model*/ MODEL_BBH_TUMBLING_PLATFORM, /*pos*/ 2961, 0, -768, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBBHTumblingBridge),
|
||||
OBJECT(/*model*/ MODEL_BBH_MOVING_BOOKSHELF, /*pos*/ -1994, 819, 213, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvHauntedBookshelf),
|
||||
OBJECT(/*model*/ MODEL_BBH_MESH_ELEVATOR, /*pos*/ -2985, -205, 5400, /*angle*/ 0, -45, 0, /*bhvParam*/ 0, /*bhv*/ bhvMeshElevator),
|
||||
OBJECT(/*model*/ MODEL_BBH_MERRY_GO_ROUND, /*pos*/ -205, -2560, 205, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvMerryGoRound),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2200, 819, -800, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvCoffinSpawner),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
static const LevelScript script_func_local_3[] = {
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 1000, 50, 1000, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvGhostHuntBigBoo, /*acts*/ ACT_1),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 20, 100, -908, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvGhostHuntBoo, /*acts*/ ACT_1),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 3150, 100, 398, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvGhostHuntBoo, /*acts*/ ACT_1),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ -2000, 150, -800, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvGhostHuntBoo, /*acts*/ ACT_1),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 2851, 100, 2289, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvGhostHuntBoo, /*acts*/ ACT_1),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ -1551, 100, -1018, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvGhostHuntBoo, /*acts*/ ACT_1),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BBH_STAIRCASE_STEP, /*pos*/ 973, 0, 517, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHiddenStaircaseStep, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BBH_STAIRCASE_STEP, /*pos*/ 973, -206, 717, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHiddenStaircaseStep, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BBH_STAIRCASE_STEP, /*pos*/ 973, -412, 917, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHiddenStaircaseStep, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 20, 100, -908, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBoo, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 3150, 100, 398, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBoo, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ -2000, 150, -800, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBoo, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 2851, 100, 2289, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBoo, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ -1551, 100, -1018, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBoo, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 990, -2146, -908, /*angle*/ 0, -45, 0, /*behParam*/ 0x00030000, /*beh*/ bhvFlamethrower, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ -1100, -2372, 1100, /*angle*/ 0, 135, 0, /*behParam*/ 0x01000000, /*beh*/ bhvMerryGoRoundBooManager, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 1030, 1922, 2546, /*angle*/ 0, -90, 0, /*behParam*/ 0x04000000, /*beh*/ bhvBalconyBigBoo, /*acts*/ ALL_ACTS),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 581, 1850, -206, /*angle*/ 0, -90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBoo, /*acts*/ ALL_ACTS),
|
||||
OBJECT(/*model*/ MODEL_MAD_PIANO, /*pos*/ -1300, 0, 2310, /*angle*/ 0, 243, 0, /*behParam*/ 0x00000000, /*beh*/ bhvMadPiano),
|
||||
OBJECT(/*model*/ MODEL_HAUNTED_CHAIR, /*pos*/ -1530, 0, 2200, /*angle*/ 0, 66, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHauntedChair),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1330, 890, 200, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBookendSpawn),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -818, 890, -200, /*angle*/ 0, 270, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBookendSpawn),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1330, 890, -622, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBookendSpawn),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -818, 890, -686, /*angle*/ 0, 270, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBookendSpawn),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1950, 880, 8, /*angle*/ 0, 180, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHauntedBookshelfManager),
|
||||
OBJECT(/*model*/ MODEL_BOOKEND, /*pos*/ 2680, 1045, 876, /*angle*/ 0, 166, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlyingBookend),
|
||||
OBJECT(/*model*/ MODEL_BOOKEND, /*pos*/ 3075, 1045, 995, /*angle*/ 0, 166, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlyingBookend),
|
||||
OBJECT(/*model*/ MODEL_BOOKEND, /*pos*/ -1411, 218, 922, /*angle*/ 0, 180, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlyingBookend),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 1000, 50, 1000, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(STAR_INDEX_ACT_1) | BPARAM2(BIG_BOO_BP_GHOST_HUNT), /*bhv*/ bhvGhostHuntBigBoo, /*acts*/ ACT_1),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 20, 100, -908, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(BOO_BP_GHOST_HUNT), /*bhv*/ bhvGhostHuntBoo, /*acts*/ ACT_1),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 3150, 100, 398, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(BOO_BP_GHOST_HUNT), /*bhv*/ bhvGhostHuntBoo, /*acts*/ ACT_1),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ -2000, 150, -800, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(BOO_BP_GHOST_HUNT), /*bhv*/ bhvGhostHuntBoo, /*acts*/ ACT_1),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 2851, 100, 2289, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(BOO_BP_GHOST_HUNT), /*bhv*/ bhvGhostHuntBoo, /*acts*/ ACT_1),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ -1551, 100, -1018, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(BOO_BP_GHOST_HUNT), /*bhv*/ bhvGhostHuntBoo, /*acts*/ ACT_1),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BBH_STAIRCASE_STEP, /*pos*/ 973, 0, 517, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvHiddenStaircaseStep, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BBH_STAIRCASE_STEP, /*pos*/ 973, -206, 717, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvHiddenStaircaseStep, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BBH_STAIRCASE_STEP, /*pos*/ 973, -412, 917, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvHiddenStaircaseStep, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 20, 100, -908, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBoo, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 3150, 100, 398, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBoo, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ -2000, 150, -800, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBoo, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 2851, 100, 2289, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBoo, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ -1551, 100, -1018, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBoo, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 990, -2146, -908, /*angle*/ 0, -45, 0, /*bhvParam*/ BPARAM2(0x03), /*bhv*/ bhvFlamethrower, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ -1100, -2372, 1100, /*angle*/ 0, 135, 0, /*bhvParam*/ BPARAM1(STAR_INDEX_ACT_2), /*bhv*/ bhvMerryGoRoundBooManager, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 1030, 1922, 2546, /*angle*/ 0, -90, 0, /*bhvParam*/ BPARAM1(STAR_INDEX_ACT_5), /*bhv*/ bhvBalconyBigBoo, /*acts*/ ALL_ACTS),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOO, /*pos*/ 581, 1850, -206, /*angle*/ 0, -90, 0, /*bhvParam*/ 0, /*bhv*/ bhvBoo, /*acts*/ ALL_ACTS),
|
||||
OBJECT (/*model*/ MODEL_MAD_PIANO, /*pos*/ -1300, 0, 2310, /*angle*/ 0, 243, 0, /*bhvParam*/ 0, /*bhv*/ bhvMadPiano),
|
||||
OBJECT (/*model*/ MODEL_HAUNTED_CHAIR, /*pos*/ -1530, 0, 2200, /*angle*/ 0, 66, 0, /*bhvParam*/ 0, /*bhv*/ bhvHauntedChair),
|
||||
OBJECT (/*model*/ MODEL_NONE, /*pos*/ -1330, 890, 200, /*angle*/ 0, 90, 0, /*bhvParam*/ 0, /*bhv*/ bhvBookendSpawn),
|
||||
OBJECT (/*model*/ MODEL_NONE, /*pos*/ -818, 890, -200, /*angle*/ 0, 270, 0, /*bhvParam*/ 0, /*bhv*/ bhvBookendSpawn),
|
||||
OBJECT (/*model*/ MODEL_NONE, /*pos*/ -1330, 890, -622, /*angle*/ 0, 90, 0, /*bhvParam*/ 0, /*bhv*/ bhvBookendSpawn),
|
||||
OBJECT (/*model*/ MODEL_NONE, /*pos*/ -818, 890, -686, /*angle*/ 0, 270, 0, /*bhvParam*/ 0, /*bhv*/ bhvBookendSpawn),
|
||||
OBJECT (/*model*/ MODEL_NONE, /*pos*/ -1950, 880, 8, /*angle*/ 0, 180, 0, /*bhvParam*/ 0, /*bhv*/ bhvHauntedBookshelfManager),
|
||||
OBJECT (/*model*/ MODEL_BOOKEND, /*pos*/ 2680, 1045, 876, /*angle*/ 0, 166, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlyingBookend),
|
||||
OBJECT (/*model*/ MODEL_BOOKEND, /*pos*/ 3075, 1045, 995, /*angle*/ 0, 166, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlyingBookend),
|
||||
OBJECT (/*model*/ MODEL_BOOKEND, /*pos*/ -1411, 218, 922, /*angle*/ 0, 180, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlyingBookend),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
static const LevelScript script_func_local_4[] = {
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ -2030, 1350, 1940, /*angle*/ 0, 0, 0, /*behParam*/ 0x02000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ -204, 1100, 1576, /*angle*/ 0, 0, 0, /*behParam*/ 0x03000000, /*beh*/ bhvHiddenRedCoinStar, /*acts*/ ALL_ACTS),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 923, 1741, -332, /*angle*/ 0, 18, 0, /*behParam*/ 0x05010000, /*beh*/ bhvMrI, /*acts*/ ALL_ACTS),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ -2030, 1350, 1940, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(STAR_INDEX_ACT_3), /*bhv*/ bhvStar, /*acts*/ ALL_ACTS),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ -204, 1100, 1576, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(STAR_INDEX_ACT_4), /*bhv*/ bhvHiddenRedCoinStar, /*acts*/ ALL_ACTS),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 923, 1741, -332, /*angle*/ 0, 18, 0, /*bhvParam*/ BPARAM1(STAR_INDEX_ACT_6) | BPARAM2(0x01), /*bhv*/ bhvMrI, /*acts*/ ALL_ACTS),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
|
@ -88,7 +88,7 @@ const LevelScript level_bbh_entry[] = {
|
|||
LOAD_MIO0 (/*seg*/ 0x08, _common0_mio0SegmentRomStart, _common0_mio0SegmentRomEnd),
|
||||
LOAD_RAW (/*seg*/ 0x0F, _common0_geoSegmentRomStart, _common0_geoSegmentRomEnd),
|
||||
ALLOC_LEVEL_POOL(),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*behParam*/ 0x00000001, /*beh*/ bhvMario),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*bhvParam*/ BPARAM4(0x01), /*bhv*/ bhvMario),
|
||||
JUMP_LINK(script_func_global_1),
|
||||
JUMP_LINK(script_func_global_10),
|
||||
JUMP_LINK(script_func_global_18),
|
||||
|
@ -107,10 +107,10 @@ const LevelScript level_bbh_entry[] = {
|
|||
JUMP_LINK(script_func_local_2),
|
||||
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*/ bhvSpinAirborneWarp),
|
||||
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),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 666, 796, 5350, /*angle*/ 0, 180, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0A), /*bhv*/ bhvSpinAirborneWarp),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0A, /*destLevel*/ LEVEL_BBH, /*destArea*/ 1, /*destNode*/ WARP_NODE_0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_SUCCESS, /*destLevel*/ LEVEL_CASTLE_COURTYARD, /*destArea*/ 1, /*destNode*/ WARP_NODE_0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_DEATH, /*destLevel*/ LEVEL_CASTLE_COURTYARD, /*destArea*/ 1, /*destNode*/ WARP_NODE_0B, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
TERRAIN(/*terrainData*/ bbh_seg7_collision_level),
|
||||
MACRO_OBJECTS(/*objList*/ bbh_seg7_macro_objs),
|
||||
ROOMS(/*surfaceRooms*/ bbh_seg7_rooms),
|
||||
|
|
|
@ -3,36 +3,36 @@ const MacroObject bitdw_seg7_macro_objs[] = {
|
|||
MACRO_OBJECT (/*preset*/ macro_box_metal_cap, /*yaw*/ 0, /*pos*/ -6420, -2900, 3880),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_ring_horizontal_flying, /*yaw*/ 0, /*pos*/ -1660, -3000, 3900),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_line_horizontal, /*yaw*/ 0, /*pos*/ -2400, -800, 1900),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ -5300, 20, 1000, /*behParam*/ 0),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ -7140, 500, 380, /*behParam*/ 1),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ -7120, 1050, -2080, /*behParam*/ 1),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ -6480, 240, 1000, /*behParam*/ 0),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ -5300, 20, 1000, /*bhvParam*/ AMP_BP_ROT_RADIUS_200),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ -7140, 500, 380, /*bhvParam*/ AMP_BP_ROT_RADIUS_300),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ -7120, 1050, -2080, /*bhvParam*/ AMP_BP_ROT_RADIUS_300),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ -6480, 240, 1000, /*bhvParam*/ AMP_BP_ROT_RADIUS_200),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_ring_horizontal_flying, /*yaw*/ 0, /*pos*/ -2060, 1200, -940),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -170, 1070, 300),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -170, 1070, 700),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 1450, 1400, 300),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 1450, 1400, 700),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ -170, 1070, 300),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ -170, 1070, 700),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 1450, 1400, 300),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 1450, 1400, 700),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_line_horizontal, /*yaw*/ 90, /*pos*/ 1660, -1980, 3660),
|
||||
MACRO_OBJECT (/*preset*/ macro_goomba, /*yaw*/ 0, /*pos*/ 3180, 1020, 240),
|
||||
MACRO_OBJECT (/*preset*/ macro_goomba, /*yaw*/ 0, /*pos*/ 2860, 1020, 580),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 4640, 2360, 0),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 4900, 2600, 0),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 5180, 2820, 0),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 2760, 1940, 500),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 2760, 1940, 180),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 4640, 2360, 0),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 4900, 2600, 0),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 5180, 2820, 0),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 2760, 1940, 500),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 2760, 1940, 180),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ -2460, 812, 800),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ -3080, 813, 840),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ -3660, 873, 620),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_2, /*yaw*/ 0, /*pos*/ -4060, 1011, 240),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ -4620, 1220, -300, /*behParam*/ 2),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ -4620, 1220, -300, /*bhvParam*/ AMP_BP_ROT_RADIUS_400),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_ring_horizontal, /*yaw*/ 0, /*pos*/ -4620, 1220, -300),
|
||||
MACRO_OBJECT (/*preset*/ macro_box_1up, /*yaw*/ 0, /*pos*/ -4860, 1380, -300),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -150, -1200, 3660),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ -150, -1200, 3660),
|
||||
MACRO_OBJECT (/*preset*/ macro_box_three_coins, /*yaw*/ 0, /*pos*/ -5120, 1460, -2140),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 4380, 2120, 0),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 5420, 3000, 0),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -2357, 1200, -2454),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -2357, 1300, -2454),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 4380, 2120, 0),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 5420, 3000, 0),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ -2357, 1200, -2454),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ -2357, 1300, -2454),
|
||||
MACRO_OBJECT (/*preset*/ macro_goomba, /*yaw*/ 0, /*pos*/ -2560, -1433, 3280),
|
||||
MACRO_OBJECT (/*preset*/ macro_goomba, /*yaw*/ 0, /*pos*/ -2060, -1433, 3540),
|
||||
MACRO_OBJECT (/*preset*/ macro_goomba, /*yaw*/ 0, /*pos*/ -2720, -1433, 3860),
|
||||
|
@ -42,22 +42,22 @@ const MacroObject bitdw_seg7_macro_objs[] = {
|
|||
MACRO_OBJECT (/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ -3120, 1160, -2570),
|
||||
MACRO_OBJECT (/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ -4613, 1220, -427),
|
||||
MACRO_OBJECT (/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ -1000, 1933, 466),
|
||||
MACRO_OBJECT(/*preset*/ macro_1up_2, /*yaw*/ 0, /*pos*/ 33, 1900, 333),
|
||||
MACRO_OBJECT (/*preset*/ macro_1up_beat_bitdw_bowser, /*yaw*/ 0, /*pos*/ 33, 1900, 333),
|
||||
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*/ 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),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 5940, 2765, -280, /*bhvParam*/ DIALOG_066),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ -2357, 1400, -2454),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ -170, 1070, 500),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 1450, 1400, 500),
|
||||
MACRO_OBJECT (/*preset*/ macro_1up, /*yaw*/ 0, /*pos*/ 610, 1045, -167),
|
||||
MACRO_OBJECT(/*preset*/ macro_1up_2, /*yaw*/ 0, /*pos*/ -485, 1054, -167),
|
||||
MACRO_OBJECT(/*preset*/ macro_1up_3, /*yaw*/ 0, /*pos*/ 1100, 2080, 363),
|
||||
MACRO_OBJECT (/*preset*/ macro_1up_beat_bitdw_bowser, /*yaw*/ 0, /*pos*/ -485, 1054, -167),
|
||||
MACRO_OBJECT (/*preset*/ macro_1up_beat_bitfs_bowser, /*yaw*/ 0, /*pos*/ 1100, 2080, 363),
|
||||
MACRO_OBJECT (/*preset*/ macro_floor_switch_hidden_objects, /*yaw*/ 0, /*pos*/ -3100, -2946, 3530),
|
||||
MACRO_OBJECT(/*preset*/ macro_hidden_box, /*yaw*/ 0, /*pos*/ -7810, -3360, 4500),
|
||||
MACRO_OBJECT(/*preset*/ macro_hidden_box, /*yaw*/ 0, /*pos*/ -7810, -3360, 4700),
|
||||
MACRO_OBJECT(/*preset*/ macro_hidden_box, /*yaw*/ 0, /*pos*/ -7810, -3360, 4900),
|
||||
MACRO_OBJECT(/*preset*/ macro_hidden_box, /*yaw*/ 0, /*pos*/ -3100, -3145, 4518),
|
||||
MACRO_OBJECT (/*preset*/ macro_hidden_breakable_box, /*yaw*/ 0, /*pos*/ -7810, -3360, 4500),
|
||||
MACRO_OBJECT (/*preset*/ macro_hidden_breakable_box, /*yaw*/ 0, /*pos*/ -7810, -3360, 4700),
|
||||
MACRO_OBJECT (/*preset*/ macro_hidden_breakable_box, /*yaw*/ 0, /*pos*/ -7810, -3360, 4900),
|
||||
MACRO_OBJECT (/*preset*/ macro_hidden_breakable_box, /*yaw*/ 0, /*pos*/ -3100, -3145, 4518),
|
||||
MACRO_OBJECT (/*preset*/ macro_box_1up_running_away, /*yaw*/ 0, /*pos*/ -2420, -1140, 3700),
|
||||
MACRO_OBJECT_END(),
|
||||
};
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
#include "surface_terrains.h"
|
||||
#include "moving_texture_macros.h"
|
||||
#include "level_misc_macros.h"
|
||||
#include "macro_preset_names.h"
|
||||
#include "special_preset_names.h"
|
||||
#include "macro_presets.h"
|
||||
#include "special_presets.h"
|
||||
#include "textures.h"
|
||||
#include "dialog_ids.h"
|
||||
|
||||
|
|
|
@ -17,29 +17,29 @@
|
|||
#include "levels/bitdw/header.h"
|
||||
|
||||
static const LevelScript script_func_local_1[] = {
|
||||
OBJECT(/*model*/ MODEL_BITDW_SQUARE_PLATFORM, /*pos*/ -1966, -3154, 3586, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSquarishPathMoving),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SQUARE_PLATFORM, /*pos*/ -1352, -3154, 4200, /*angle*/ 0, 0, 0, /*behParam*/ 0x00020000, /*beh*/ bhvSquarishPathMoving),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SQUARE_PLATFORM, /*pos*/ -2963, 1017, -2464, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSquarishPathMoving),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SQUARE_PLATFORM, /*pos*/ -2349, 1017, -1849, /*angle*/ 0, 0, 0, /*behParam*/ 0x00020000, /*beh*/ bhvSquarishPathMoving),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SQUARE_PLATFORM, /*pos*/ -2349, 1017, -1235, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSquarishPathMoving),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SQUARE_PLATFORM, /*pos*/ -1735, 1017, -621, /*angle*/ 0, 0, 0, /*behParam*/ 0x00020000, /*beh*/ bhvSquarishPathMoving),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SEESAW_PLATFORM, /*pos*/ 1491, 1273, 512, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSeesawPlatform),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SEESAW_PLATFORM, /*pos*/ -147, 894, 512, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSeesawPlatform),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SLIDING_PLATFORM, /*pos*/ -5728, 819, -2151, /*angle*/ 0, 0, 0, /*behParam*/ 0x03CE0000, /*beh*/ bhvSlidingPlatform2),
|
||||
OBJECT(/*model*/ MODEL_BITDW_FERRIS_WHEEL_AXLE, /*pos*/ -204, -1924, 3381, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvFerrisWheelAxle),
|
||||
OBJECT(/*model*/ MODEL_BITDW_STAIRCASE, /*pos*/ 5279, 1740, -6, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvAnimatesOnFloorSwitchPress),
|
||||
OBJECT(/*model*/ MODEL_PURPLE_SWITCH, /*pos*/ 3922, 1740, -7, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFloorSwitchAnimatesObject),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SQUARE_PLATFORM, /*pos*/ -1966, -3154, 3586, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x00), /*bhv*/ bhvSquarishPathMoving),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SQUARE_PLATFORM, /*pos*/ -1352, -3154, 4200, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x02), /*bhv*/ bhvSquarishPathMoving),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SQUARE_PLATFORM, /*pos*/ -2963, 1017, -2464, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x00), /*bhv*/ bhvSquarishPathMoving),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SQUARE_PLATFORM, /*pos*/ -2349, 1017, -1849, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x02), /*bhv*/ bhvSquarishPathMoving),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SQUARE_PLATFORM, /*pos*/ -2349, 1017, -1235, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x00), /*bhv*/ bhvSquarishPathMoving),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SQUARE_PLATFORM, /*pos*/ -1735, 1017, -621, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x02), /*bhv*/ bhvSquarishPathMoving),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SEESAW_PLATFORM, /*pos*/ 1491, 1273, 512, /*angle*/ 0, 90, 0, /*bhvParam*/ 0, /*bhv*/ bhvSeesawPlatform),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SEESAW_PLATFORM, /*pos*/ -147, 894, 512, /*angle*/ 0, 90, 0, /*bhvParam*/ 0, /*bhv*/ bhvSeesawPlatform),
|
||||
OBJECT(/*model*/ MODEL_BITDW_SLIDING_PLATFORM, /*pos*/ -5728, 819, -2151, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(0x03) | BPARAM2(0xCE), /*bhv*/ bhvSlidingPlatform2),
|
||||
OBJECT(/*model*/ MODEL_BITDW_FERRIS_WHEEL_AXLE, /*pos*/ -204, -1924, 3381, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x01), /*bhv*/ bhvFerrisWheelAxle),
|
||||
OBJECT(/*model*/ MODEL_BITDW_STAIRCASE, /*pos*/ 5279, 1740, -6, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x01), /*bhv*/ bhvAnimatesOnFloorSwitchPress),
|
||||
OBJECT(/*model*/ MODEL_PURPLE_SWITCH, /*pos*/ 3922, 1740, -7, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvFloorSwitchAnimatesObject),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
static const LevelScript script_func_local_2[] = {
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3092, -2795, 2842, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlamethrower),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2463, -2386, 2844, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlamethrower),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3092, -2795, 2842, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlamethrower),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2463, -2386, 2844, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlamethrower),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
static const LevelScript script_func_local_3[] = {
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 7180, 3000, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBowserCourseRedCoinStar),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 7180, 3000, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(STAR_INDEX_ACT_1), /*bhv*/ bhvBowserCourseRedCoinStar),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
|
@ -55,7 +55,7 @@ const LevelScript level_bitdw_entry[] = {
|
|||
LOAD_MIO0 (/*seg*/ 0x08, _common0_mio0SegmentRomStart, _common0_mio0SegmentRomEnd),
|
||||
LOAD_RAW (/*seg*/ 0x0F, _common0_geoSegmentRomStart, _common0_geoSegmentRomEnd),
|
||||
ALLOC_LEVEL_POOL(),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*behParam*/ 0x00000001, /*beh*/ bhvMario),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*bhvParam*/ BPARAM4(0x01), /*bhv*/ bhvMario),
|
||||
JUMP_LINK(script_func_global_12),
|
||||
JUMP_LINK(script_func_global_18),
|
||||
JUMP_LINK(script_func_global_1),
|
||||
|
@ -87,13 +87,13 @@ const LevelScript level_bitdw_entry[] = {
|
|||
LOAD_MODEL_FROM_GEO(MODEL_BITDW_STAIRCASE, geo_bitdw_000600),
|
||||
|
||||
AREA(/*index*/ 1, geo_bitdw_000618),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -7443, -2153, 3886, /*angle*/ 0, 90, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvAirborneWarp),
|
||||
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*/ bhvDeathWarp),
|
||||
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),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -7443, -2153, 3886, /*angle*/ 0, 90, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0A), /*bhv*/ bhvAirborneWarp),
|
||||
OBJECT(/*model*/ MODEL_BITDW_WARP_PIPE, /*pos*/ 6816, 2860, -7, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0B), /*bhv*/ bhvWarpPipe),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 5910, 3500, -7, /*angle*/ 0, 90, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0C), /*bhv*/ bhvDeathWarp),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0A, /*destLevel*/ LEVEL_BITDW, /*destArea*/ 1, /*destNode*/ WARP_NODE_0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0B, /*destLevel*/ LEVEL_BOWSER_1, /*destArea*/ 1, /*destNode*/ WARP_NODE_0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0C, /*destLevel*/ LEVEL_BITDW, /*destArea*/ 1, /*destNode*/ WARP_NODE_0C, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_DEATH, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 1, /*destNode*/ WARP_NODE_25, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
JUMP_LINK(script_func_local_1),
|
||||
JUMP_LINK(script_func_local_2),
|
||||
JUMP_LINK(script_func_local_3),
|
||||
|
|
|
@ -1,32 +1,32 @@
|
|||
// 0x07014F90 - 0x07015122
|
||||
const MacroObject bitfs_seg7_macro_objs[] = {
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -1990, -2780, -590),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -2860, -2780, -580),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ -1990, -2780, -590),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ -2860, -2780, -580),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_line_horizontal_flying, /*yaw*/ 0, /*pos*/ 1130, -3000, 400),
|
||||
MACRO_OBJECT (/*preset*/ macro_1up, /*yaw*/ 0, /*pos*/ -4320, -2640, -500),
|
||||
MACRO_OBJECT(/*preset*/ macro_bully, /*yaw*/ 0, /*pos*/ 2340, -2764, 580),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ 6600, -2770, 280, /*behParam*/ 0),
|
||||
MACRO_OBJECT (/*preset*/ macro_small_bully, /*yaw*/ 0, /*pos*/ 2340, -2764, 580),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ 6600, -2770, 280, /*bhvParam*/ AMP_BP_ROT_RADIUS_200),
|
||||
MACRO_OBJECT (/*preset*/ macro_recovery_heart, /*yaw*/ 0, /*pos*/ 3660, -2700, 280),
|
||||
MACRO_OBJECT (/*preset*/ macro_hidden_1up_in_pole, /*yaw*/ 0, /*pos*/ 3880, -1140, 260),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_ring_horizontal_flying, /*yaw*/ 0, /*pos*/ -1900, 652, 320),
|
||||
MACRO_OBJECT(/*preset*/ macro_bully, /*yaw*/ 0, /*pos*/ -1720, 1320, -340),
|
||||
MACRO_OBJECT (/*preset*/ macro_small_bully, /*yaw*/ 0, /*pos*/ -1720, 1320, -340),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_line_horizontal, /*yaw*/ 0, /*pos*/ -640, 800, 180),
|
||||
MACRO_OBJECT(/*preset*/ macro_bully, /*yaw*/ 0, /*pos*/ -5340, 410, 20),
|
||||
MACRO_OBJECT(/*preset*/ macro_bully, /*yaw*/ 0, /*pos*/ -5200, 410, 700),
|
||||
MACRO_OBJECT (/*preset*/ macro_small_bully, /*yaw*/ 0, /*pos*/ -5340, 410, 20),
|
||||
MACRO_OBJECT (/*preset*/ macro_small_bully, /*yaw*/ 0, /*pos*/ -5200, 410, 700),
|
||||
MACRO_OBJECT (/*preset*/ macro_box_1up, /*yaw*/ 0, /*pos*/ -7400, 1500, 0),
|
||||
MACRO_OBJECT (/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ -6150, 1480, 500),
|
||||
MACRO_OBJECT (/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ -6150, 2600, 500),
|
||||
MACRO_OBJECT (/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ -6150, 3080, 500),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_hidden_1up, /*yaw*/ 0, /*pos*/ -6460, 2760, 320, /*behParam*/ 3),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_hidden_1up, /*yaw*/ 0, /*pos*/ -6460, 2760, 320, /*bhvParam*/ 3),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_line_horizontal, /*yaw*/ 90, /*pos*/ -6360, 3760, -840),
|
||||
MACRO_OBJECT (/*preset*/ macro_recovery_heart, /*yaw*/ 0, /*pos*/ -20, 3850, 160),
|
||||
MACRO_OBJECT (/*preset*/ macro_box_1up, /*yaw*/ 0, /*pos*/ 2440, 5520, 140),
|
||||
MACRO_OBJECT(/*preset*/ macro_1up_3, /*yaw*/ 0, /*pos*/ 1198, 5478, 103),
|
||||
MACRO_OBJECT (/*preset*/ macro_1up_beat_bitfs_bowser, /*yaw*/ 0, /*pos*/ 1198, 5478, 103),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_line_horizontal_flying, /*yaw*/ 0, /*pos*/ -2610, 3600, 0),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_ring_horizontal, /*yaw*/ 0, /*pos*/ 1231, -2168, -1747),
|
||||
MACRO_OBJECT(/*preset*/ macro_coin_line_vertical, /*yaw*/ 0, /*pos*/ -5705, 800, 0),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_line_vertical_flying, /*yaw*/ 0, /*pos*/ -5705, 800, 0),
|
||||
MACRO_OBJECT (/*preset*/ macro_goomba_triplet_spawner, /*yaw*/ 0, /*pos*/ 3660, -2764, 300),
|
||||
MACRO_OBJECT(/*preset*/ macro_1up_3, /*yaw*/ 0, /*pos*/ -174, -2840, -138),
|
||||
MACRO_OBJECT (/*preset*/ macro_1up_beat_bitfs_bowser, /*yaw*/ 0, /*pos*/ -174, -2840, -138),
|
||||
MACRO_OBJECT (/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 2888, -1375, 310),
|
||||
MACRO_OBJECT (/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 1230, -1900, -1747),
|
||||
MACRO_OBJECT (/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 5800, -2000, 0),
|
||||
|
@ -38,7 +38,7 @@ const MacroObject bitfs_seg7_macro_objs[] = {
|
|||
MACRO_OBJECT (/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 4330, -790, -50),
|
||||
MACRO_OBJECT (/*preset*/ macro_box_three_coins, /*yaw*/ 0, /*pos*/ 7220, -1800, 260),
|
||||
MACRO_OBJECT (/*preset*/ macro_fire_spitter, /*yaw*/ 0, /*pos*/ -7280, 3100, -925),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ -2325, 3625, 0, /*behParam*/ 2),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ -2325, 3625, 0, /*bhvParam*/ AMP_BP_ROT_RADIUS_400),
|
||||
MACRO_OBJECT (/*preset*/ macro_box_ten_coins, /*yaw*/ 0, /*pos*/ -5340, 4000, 100),
|
||||
MACRO_OBJECT_END(),
|
||||
};
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
#include "surface_terrains.h"
|
||||
#include "moving_texture_macros.h"
|
||||
#include "level_misc_macros.h"
|
||||
#include "macro_preset_names.h"
|
||||
#include "special_preset_names.h"
|
||||
#include "macro_presets.h"
|
||||
#include "special_presets.h"
|
||||
#include "textures.h"
|
||||
|
||||
#include "make_const_nonconst.h"
|
||||
|
|
|
@ -16,37 +16,37 @@
|
|||
#include "levels/bitfs/header.h"
|
||||
|
||||
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*/ 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),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SINKING_CAGE_PLATFORM, /*pos*/ 6605, -3071, 266, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBitfsSinkingCagePlatform),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SINKING_CAGE_PLATFORM, /*pos*/ 1843, 3584, 96, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvBitfsSinkingCagePlatform),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SINKING_CAGE_PLATFORM, /*pos*/ 614, 3584, 96, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvBitfsSinkingCagePlatform),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SINKING_CAGE_PLATFORM, /*pos*/ 3072, 3584, 96, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvBitfsSinkingCagePlatform),
|
||||
OBJECT(/*model*/ MODEL_BITFS_ELEVATOR, /*pos*/ 2867, -1279, 307, /*angle*/ 0, 0, 0, /*behParam*/ 0x029F0000, /*beh*/ bhvActivatedBackAndForthPlatform),
|
||||
OBJECT(/*model*/ MODEL_BITFS_STRETCHING_PLATFORMS, /*pos*/ -5836, 410, 300, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSquishablePlatform),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SEESAW_PLATFORM, /*pos*/ 4454, -2226, 266, /*angle*/ 0, 0, 0, /*behParam*/ 0x00040000, /*beh*/ bhvSeesawPlatform),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SEESAW_PLATFORM, /*pos*/ 5786, -2380, 266, /*angle*/ 0, 0, 0, /*behParam*/ 0x00040000, /*beh*/ bhvSeesawPlatform),
|
||||
OBJECT(/*model*/ MODEL_BITFS_MOVING_SQUARE_PLATFORM, /*pos*/ -3890, 102, 617, /*angle*/ 0, 90, 0, /*behParam*/ 0x010C0000, /*beh*/ bhvSlidingPlatform2),
|
||||
OBJECT(/*model*/ MODEL_BITFS_MOVING_SQUARE_PLATFORM, /*pos*/ -3276, 102, 2, /*angle*/ 0, 270, 0, /*behParam*/ 0x010C0000, /*beh*/ bhvSlidingPlatform2),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SLIDING_PLATFORM, /*pos*/ 2103, 198, 312, /*angle*/ 0, 0, 0, /*behParam*/ 0x019F0000, /*beh*/ bhvSlidingPlatform2),
|
||||
OBJECT(/*model*/ MODEL_BITFS_TUMBLING_PLATFORM, /*pos*/ 4979, 4250, 96, /*angle*/ 0, 0, 0, /*behParam*/ 0x00030000, /*beh*/ bhvWfTumblingBridge),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 3890, -2043, 266, /*angle*/ 0, 0, 0, /*behParam*/ 0x00520000, /*beh*/ bhvPoleGrabbing),
|
||||
OBJECT(/*model*/ MODEL_BITFS_PLATFORM_ON_TRACK, /*pos*/ -5733, -3071, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(0x07) | BPARAM2(0x33), /*bhv*/ bhvPlatformOnTrack),
|
||||
OBJECT(/*model*/ MODEL_BITFS_TILTING_SQUARE_PLATFORM, /*pos*/ -1945, -3225, -715, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBitFSTiltingInvertedPyramid),
|
||||
OBJECT(/*model*/ MODEL_BITFS_TILTING_SQUARE_PLATFORM, /*pos*/ -2866, -3225, -715, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBitFSTiltingInvertedPyramid),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SINKING_PLATFORMS, /*pos*/ -1381, 3487, 96, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBitFSSinkingPlatforms),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SINKING_PLATFORMS, /*pos*/ 1126, -3065, 307, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBitFSSinkingPlatforms),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SINKING_PLATFORMS, /*pos*/ -3225, 3487, 96, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBitFSSinkingPlatforms),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SINKING_CAGE_PLATFORM, /*pos*/ 6605, -3071, 266, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x00), /*bhv*/ bhvBitFSSinkingCagePlatform),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SINKING_CAGE_PLATFORM, /*pos*/ 1843, 3584, 96, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x01), /*bhv*/ bhvBitFSSinkingCagePlatform),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SINKING_CAGE_PLATFORM, /*pos*/ 614, 3584, 96, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x01), /*bhv*/ bhvBitFSSinkingCagePlatform),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SINKING_CAGE_PLATFORM, /*pos*/ 3072, 3584, 96, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x01), /*bhv*/ bhvBitFSSinkingCagePlatform),
|
||||
OBJECT(/*model*/ MODEL_BITFS_ELEVATOR, /*pos*/ 2867, -1279, 307, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(ACTIVATED_BF_PLAT_TYPE_BITFS_ELEVATOR) | BPARAM2(159), /*bhv*/ bhvActivatedBackAndForthPlatform),
|
||||
OBJECT(/*model*/ MODEL_BITFS_STRETCHING_PLATFORMS, /*pos*/ -5836, 410, 300, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvSquishablePlatform),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SEESAW_PLATFORM, /*pos*/ 4454, -2226, 266, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x04), /*bhv*/ bhvSeesawPlatform),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SEESAW_PLATFORM, /*pos*/ 5786, -2380, 266, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x04), /*bhv*/ bhvSeesawPlatform),
|
||||
OBJECT(/*model*/ MODEL_BITFS_MOVING_SQUARE_PLATFORM, /*pos*/ -3890, 102, 617, /*angle*/ 0, 90, 0, /*bhvParam*/ BPARAM1(0x01) | BPARAM2(0x0C), /*bhv*/ bhvSlidingPlatform2),
|
||||
OBJECT(/*model*/ MODEL_BITFS_MOVING_SQUARE_PLATFORM, /*pos*/ -3276, 102, 2, /*angle*/ 0, 270, 0, /*bhvParam*/ BPARAM1(0x01) | BPARAM2(0x0C), /*bhv*/ bhvSlidingPlatform2),
|
||||
OBJECT(/*model*/ MODEL_BITFS_SLIDING_PLATFORM, /*pos*/ 2103, 198, 312, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(0x01) | BPARAM2(0x9F), /*bhv*/ bhvSlidingPlatform2),
|
||||
OBJECT(/*model*/ MODEL_BITFS_TUMBLING_PLATFORM, /*pos*/ 4979, 4250, 96, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(TUMBLING_BRIDGE_BP_BITFS), /*bhv*/ bhvTumblingBridge),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 3890, -2043, 266, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(82), /*bhv*/ bhvPoleGrabbing),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
static const LevelScript script_func_local_2[] = {
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3226, 3584, -822, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlamethrower),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1382, 3584, -822, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlamethrower),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1229, 307, -412, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlamethrower),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3226, 3584, -822, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlamethrower),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1382, 3584, -822, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlamethrower),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1229, 307, -412, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlamethrower),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
static const LevelScript script_func_local_3[] = {
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1200, 5700, 160, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBowserCourseRedCoinStar),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1200, 5700, 160, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(STAR_INDEX_ACT_1), /*bhv*/ bhvBowserCourseRedCoinStar),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
|
@ -63,7 +63,7 @@ const LevelScript level_bitfs_entry[] = {
|
|||
LOAD_MIO0 (/*seg*/ 0x08, _common0_mio0SegmentRomStart, _common0_mio0SegmentRomEnd),
|
||||
LOAD_RAW (/*seg*/ 0x0F, _common0_geoSegmentRomStart, _common0_geoSegmentRomEnd),
|
||||
ALLOC_LEVEL_POOL(),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*behParam*/ 0x00000001, /*beh*/ bhvMario),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*bhvParam*/ BPARAM4(0x01), /*bhv*/ bhvMario),
|
||||
JUMP_LINK(script_func_global_3),
|
||||
JUMP_LINK(script_func_global_18),
|
||||
JUMP_LINK(script_func_global_1),
|
||||
|
@ -100,13 +100,13 @@ const LevelScript level_bitfs_entry[] = {
|
|||
LOAD_MODEL_FROM_GEO(MODEL_BITFS_TUMBLING_PLATFORM, bitfs_geo_0006F0),
|
||||
|
||||
AREA(/*index*/ 1, bitfs_geo_0007A0),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -7577, -1764, 0, /*angle*/ 0, 90, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvAirborneWarp),
|
||||
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*/ bhvDeathWarp),
|
||||
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),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -7577, -1764, 0, /*angle*/ 0, 90, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0A), /*bhv*/ bhvAirborneWarp),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 6735, 3681, 99, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(20) | BPARAM2(WARP_NODE_0B), /*bhv*/ bhvWarp),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 5886, 5000, 99, /*angle*/ 0, 90, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0C), /*bhv*/ bhvDeathWarp),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0A, /*destLevel*/ LEVEL_BITFS, /*destArea*/ 1, /*destNode*/ WARP_NODE_0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0B, /*destLevel*/ LEVEL_BOWSER_2, /*destArea*/ 1, /*destNode*/ WARP_NODE_0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0C, /*destLevel*/ LEVEL_BITFS, /*destArea*/ 1, /*destNode*/ WARP_NODE_0C, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_DEATH, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 3, /*destNode*/ WARP_NODE_68, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
JUMP_LINK(script_func_local_1),
|
||||
JUMP_LINK(script_func_local_2),
|
||||
JUMP_LINK(script_func_local_3),
|
||||
|
|
|
@ -1,42 +1,42 @@
|
|||
// 0x0701A76C - 0x0701A99E
|
||||
const MacroObject bits_seg7_macro_objs[] = {
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -1400, -4000, 0),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -272, -4000, 0),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 840, -4000, 0),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ 4100, -1320, -1800, /*behParam*/ 1),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ -1400, -4000, 0),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ -272, -4000, 0),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 840, -4000, 0),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ 4100, -1320, -1800, /*bhvParam*/ AMP_BP_ROT_RADIUS_300),
|
||||
MACRO_OBJECT (/*preset*/ macro_goomba, /*yaw*/ 0, /*pos*/ 6180, -1791, 0),
|
||||
MACRO_OBJECT (/*preset*/ macro_goomba, /*yaw*/ 0, /*pos*/ 6260, -1453, -1800),
|
||||
MACRO_OBJECT(/*preset*/ macro_fire_piranha_plant, /*yaw*/ 0, /*pos*/ 1920, -1187, -1840),
|
||||
MACRO_OBJECT (/*preset*/ macro_fire_piranha_plant_1, /*yaw*/ 0, /*pos*/ 1920, -1187, -1840),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_line_horizontal, /*yaw*/ 0, /*pos*/ -5080, -2457, -800),
|
||||
MACRO_OBJECT (/*preset*/ macro_1up, /*yaw*/ 0, /*pos*/ 1380, -1740, -660),
|
||||
MACRO_OBJECT (/*preset*/ macro_whomp, /*yaw*/ 90, /*pos*/ -4180, -1330, -800),
|
||||
MACRO_OBJECT (/*preset*/ macro_chuckya, /*yaw*/ 90, /*pos*/ -3909, -409, -1199),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 600, -200, -900),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 900, 60, -900),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 1200, 310, -900),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 1500, 560, -900),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 1800, 810, -900),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 2100, 1060, -900),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 600, -200, -900),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 900, 60, -900),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 1200, 310, -900),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 1500, 560, -900),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 1800, 810, -900),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 2100, 1060, -900),
|
||||
MACRO_OBJECT (/*preset*/ macro_recovery_heart, /*yaw*/ 0, /*pos*/ 1279, 2639, -959),
|
||||
MACRO_OBJECT (/*preset*/ macro_1up, /*yaw*/ 0, /*pos*/ -1399, 2750, -1159),
|
||||
MACRO_OBJECT (/*preset*/ macro_bobomb, /*yaw*/ 0, /*pos*/ -2839, 2059, -959),
|
||||
MACRO_OBJECT (/*preset*/ macro_bobomb, /*yaw*/ 0, /*pos*/ -3479, 2059, -799),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -7200, 2080, -890),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -6600, 2080, -180),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -6600, 2080, -1550),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ -7200, 2080, -890),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ -6600, 2080, -180),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ -6600, 2080, -1550),
|
||||
MACRO_OBJECT (/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ -6600, 2080, -180),
|
||||
MACRO_OBJECT (/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ -7200, 2080, -890),
|
||||
MACRO_OBJECT (/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ -6600, 2080, -1550),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_hidden_1up, /*yaw*/ 0, /*pos*/ -6640, 2280, -890, /*behParam*/ 3),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_hidden_1up, /*yaw*/ 0, /*pos*/ -6640, 2280, -890, /*bhvParam*/ 3),
|
||||
MACRO_OBJECT (/*preset*/ macro_goomba_triplet_spawner, /*yaw*/ 0, /*pos*/ -5239, 3839, -999),
|
||||
MACRO_OBJECT (/*preset*/ macro_bobomb, /*yaw*/ 0, /*pos*/ -1559, 3800, -1079),
|
||||
MACRO_OBJECT (/*preset*/ macro_bobomb, /*yaw*/ 0, /*pos*/ -1079, 3800, -1039),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_line_horizontal, /*yaw*/ 0, /*pos*/ 1879, 4639, -1559),
|
||||
MACRO_OBJECT (/*preset*/ macro_1up, /*yaw*/ 0, /*pos*/ -259, 6059, -3759),
|
||||
MACRO_OBJECT (/*preset*/ macro_recovery_heart, /*yaw*/ 0, /*pos*/ 359, 6099, -3219),
|
||||
MACRO_OBJECT(/*preset*/ macro_fire_piranha_plant, /*yaw*/ 0, /*pos*/ 3680, 2428, -1840),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ -6460, 2080, -900, /*behParam*/ 2),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ -6460, 2280, -900, /*behParam*/ 0),
|
||||
MACRO_OBJECT (/*preset*/ macro_fire_piranha_plant_1, /*yaw*/ 0, /*pos*/ 3680, 2428, -1840),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ -6460, 2080, -900, /*bhvParam*/ AMP_BP_ROT_RADIUS_400),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_circling_amp, /*yaw*/ 0, /*pos*/ -6460, 2280, -900, /*bhvParam*/ AMP_BP_ROT_RADIUS_200),
|
||||
MACRO_OBJECT (/*preset*/ macro_goomba_triplet_spawner, /*yaw*/ 0, /*pos*/ 360, 6040, -2880),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_line_horizontal, /*yaw*/ 0, /*pos*/ -302, -2457, -800),
|
||||
MACRO_OBJECT (/*preset*/ macro_red_coin, /*yaw*/ 0, /*pos*/ 1590, -1120, -2055),
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
#include "surface_terrains.h"
|
||||
#include "moving_texture_macros.h"
|
||||
#include "level_misc_macros.h"
|
||||
#include "macro_preset_names.h"
|
||||
#include "special_preset_names.h"
|
||||
#include "macro_presets.h"
|
||||
#include "special_presets.h"
|
||||
#include "textures.h"
|
||||
|
||||
#include "make_const_nonconst.h"
|
||||
|
|
|
@ -16,30 +16,30 @@
|
|||
#include "levels/bits/header.h"
|
||||
|
||||
static const LevelScript script_func_local_1[] = {
|
||||
OBJECT(/*model*/ MODEL_BITS_SLIDING_PLATFORM, /*pos*/ -2370, -4525, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00100000, /*beh*/ bhvSlidingPlatform2),
|
||||
OBJECT(/*model*/ MODEL_BITS_TWIN_SLIDING_PLATFORMS, /*pos*/ -2611, 3544, -904, /*angle*/ 0, 0, 0, /*behParam*/ 0x00CF0000, /*beh*/ bhvSlidingPlatform2),
|
||||
OBJECT(/*model*/ MODEL_BITS_TWIN_SLIDING_PLATFORMS, /*pos*/ -4700, 3544, -904, /*angle*/ 0, 180, 0, /*behParam*/ 0x008F0000, /*beh*/ bhvSlidingPlatform2),
|
||||
OBJECT(/*model*/ MODEL_BITS_OCTAGONAL_PLATFORM, /*pos*/ 4139, -1740, -1831, /*angle*/ 0, 0, 0, /*behParam*/ 0x02000000, /*beh*/ bhvOctagonalPlatformRotating),
|
||||
OBJECT(/*model*/ MODEL_BITS_OCTAGONAL_PLATFORM, /*pos*/ -6459, 1732, -904, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvOctagonalPlatformRotating),
|
||||
OBJECT(/*model*/ MODEL_BITS_OCTAGONAL_PLATFORM, /*pos*/ -4770, 1732, -904, /*angle*/ 0, 0, 0, /*behParam*/ 0x02000000, /*beh*/ bhvOctagonalPlatformRotating),
|
||||
OBJECT(/*model*/ MODEL_BITS_FERRIS_WHEEL_AXLE, /*pos*/ -1748, -1330, -1094, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFerrisWheelAxle),
|
||||
OBJECT(/*model*/ MODEL_BITS_FERRIS_WHEEL_AXLE, /*pos*/ 2275, 5628, -1315, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFerrisWheelAxle),
|
||||
OBJECT(/*model*/ MODEL_BITS_FERRIS_WHEEL_AXLE, /*pos*/ 3114, 4701, -1320, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFerrisWheelAxle),
|
||||
OBJECT(/*model*/ MODEL_BITS_ARROW_PLATFORM, /*pos*/ 2793, 2325, -904, /*angle*/ 0, 0, 0, /*behParam*/ 0x00610000, /*beh*/ bhvActivatedBackAndForthPlatform),
|
||||
OBJECT(/*model*/ MODEL_BITS_SEESAW_PLATFORM, /*pos*/ 27, -1555, -713, /*angle*/ 0, 90, 0, /*behParam*/ 0x00010000, /*beh*/ bhvSeesawPlatform),
|
||||
OBJECT(/*model*/ MODEL_BITS_TILTING_W_PLATFORM, /*pos*/ -306, -4300, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00020000, /*beh*/ bhvSeesawPlatform),
|
||||
OBJECT(/*model*/ MODEL_BITS_STAIRCASE, /*pos*/ 1769, -234, -899, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvAnimatesOnFloorSwitchPress),
|
||||
OBJECT(/*model*/ MODEL_PURPLE_SWITCH, /*pos*/ -279, -234, -900, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFloorSwitchAnimatesObject),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -6460, 2039, -905, /*angle*/ 0, 0, 0, /*behParam*/ 0x00CF0000, /*beh*/ bhvPoleGrabbing),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3326, 3227, -905, /*angle*/ 0, 0, 0, /*behParam*/ 0x004D0000, /*beh*/ bhvPoleGrabbing),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 5518, 3184, -4019, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlamethrower),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 6465, 3731, -1915, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlamethrower),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 5915, 3718, -4019, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlamethrower),
|
||||
OBJECT(/*model*/ MODEL_BITS_SLIDING_PLATFORM, /*pos*/ -2370, -4525, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x10), /*bhv*/ bhvSlidingPlatform2),
|
||||
OBJECT(/*model*/ MODEL_BITS_TWIN_SLIDING_PLATFORMS, /*pos*/ -2611, 3544, -904, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0xCF), /*bhv*/ bhvSlidingPlatform2),
|
||||
OBJECT(/*model*/ MODEL_BITS_TWIN_SLIDING_PLATFORMS, /*pos*/ -4700, 3544, -904, /*angle*/ 0, 180, 0, /*bhvParam*/ BPARAM2(0x8F), /*bhv*/ bhvSlidingPlatform2),
|
||||
OBJECT(/*model*/ MODEL_BITS_OCTAGONAL_PLATFORM, /*pos*/ 4139, -1740, -1831, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(0x02), /*bhv*/ bhvOctagonalPlatformRotating),
|
||||
OBJECT(/*model*/ MODEL_BITS_OCTAGONAL_PLATFORM, /*pos*/ -6459, 1732, -904, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvOctagonalPlatformRotating),
|
||||
OBJECT(/*model*/ MODEL_BITS_OCTAGONAL_PLATFORM, /*pos*/ -4770, 1732, -904, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(0x02), /*bhv*/ bhvOctagonalPlatformRotating),
|
||||
OBJECT(/*model*/ MODEL_BITS_FERRIS_WHEEL_AXLE, /*pos*/ -1748, -1330, -1094, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvFerrisWheelAxle),
|
||||
OBJECT(/*model*/ MODEL_BITS_FERRIS_WHEEL_AXLE, /*pos*/ 2275, 5628, -1315, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvFerrisWheelAxle),
|
||||
OBJECT(/*model*/ MODEL_BITS_FERRIS_WHEEL_AXLE, /*pos*/ 3114, 4701, -1320, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvFerrisWheelAxle),
|
||||
OBJECT(/*model*/ MODEL_BITS_ARROW_PLATFORM, /*pos*/ 2793, 2325, -904, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(ACTIVATED_BF_PLAT_TYPE_BITS_ARROW_PLAT) | BPARAM2(97), /*bhv*/ bhvActivatedBackAndForthPlatform),
|
||||
OBJECT(/*model*/ MODEL_BITS_SEESAW_PLATFORM, /*pos*/ 27, -1555, -713, /*angle*/ 0, 90, 0, /*bhvParam*/ BPARAM2(0x01), /*bhv*/ bhvSeesawPlatform),
|
||||
OBJECT(/*model*/ MODEL_BITS_TILTING_W_PLATFORM, /*pos*/ -306, -4300, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x02), /*bhv*/ bhvSeesawPlatform),
|
||||
OBJECT(/*model*/ MODEL_BITS_STAIRCASE, /*pos*/ 1769, -234, -899, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvAnimatesOnFloorSwitchPress),
|
||||
OBJECT(/*model*/ MODEL_PURPLE_SWITCH, /*pos*/ -279, -234, -900, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvFloorSwitchAnimatesObject),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -6460, 2039, -905, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(207), /*bhv*/ bhvPoleGrabbing),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3326, 3227, -905, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(77), /*bhv*/ bhvPoleGrabbing),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 5518, 3184, -4019, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlamethrower),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 6465, 3731, -1915, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlamethrower),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 5915, 3718, -4019, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvFlamethrower),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
static const LevelScript script_func_local_2[] = {
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 350, 6800, -6800, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBowserCourseRedCoinStar),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 350, 6800, -6800, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(STAR_INDEX_ACT_1), /*bhv*/ bhvBowserCourseRedCoinStar),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
|
@ -53,7 +53,7 @@ const LevelScript level_bits_entry[] = {
|
|||
LOAD_MIO0 (/*seg*/ 0x08, _common0_mio0SegmentRomStart, _common0_mio0SegmentRomEnd),
|
||||
LOAD_RAW (/*seg*/ 0x0F, _common0_geoSegmentRomStart, _common0_geoSegmentRomEnd),
|
||||
ALLOC_LEVEL_POOL(),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*behParam*/ 0x00000001, /*beh*/ bhvMario),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*bhvParam*/ BPARAM4(0x01), /*bhv*/ bhvMario),
|
||||
JUMP_LINK(script_func_global_15),
|
||||
JUMP_LINK(script_func_global_1),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_03, bits_geo_000430),
|
||||
|
@ -90,13 +90,13 @@ const LevelScript level_bits_entry[] = {
|
|||
LOAD_MODEL_FROM_GEO(MODEL_BITS_WARP_PIPE, warp_pipe_geo),
|
||||
|
||||
AREA(/*index*/ 1, bits_geo_000718),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -7039, -3812, 4, /*angle*/ 0, 90, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvAirborneWarp),
|
||||
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*/ bhvDeathWarp),
|
||||
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),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -7039, -3812, 4, /*angle*/ 0, 90, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0A), /*bhv*/ bhvAirborneWarp),
|
||||
OBJECT(/*model*/ MODEL_BITS_WARP_PIPE, /*pos*/ 351, 6652, -6030, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0B), /*bhv*/ bhvWarpPipe),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 351, 6800, -3900, /*angle*/ 0, 180, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0C), /*bhv*/ bhvDeathWarp),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0A, /*destLevel*/ LEVEL_BITS, /*destArea*/ 1, /*destNode*/ WARP_NODE_0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0B, /*destLevel*/ LEVEL_BOWSER_3, /*destArea*/ 1, /*destNode*/ WARP_NODE_0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0C, /*destLevel*/ LEVEL_BITS, /*destArea*/ 1, /*destNode*/ WARP_NODE_0C, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_DEATH, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 2, /*destNode*/ WARP_NODE_6B, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
JUMP_LINK(script_func_local_1),
|
||||
JUMP_LINK(script_func_local_2),
|
||||
TERRAIN(/*terrainData*/ bits_seg7_collision_level),
|
||||
|
|
|
@ -4,21 +4,21 @@ const MacroObject bob_seg7_macro_objs[] = {
|
|||
MACRO_OBJECT (/*preset*/ macro_breakable_box_no_coins, /*yaw*/ 0, /*pos*/ -3979, 0, 6827),
|
||||
MACRO_OBJECT (/*preset*/ macro_goomba, /*yaw*/ 0, /*pos*/ -2713, 152, 5778),
|
||||
MACRO_OBJECT (/*preset*/ macro_goomba, /*yaw*/ 0, /*pos*/ -342, 400, 5433),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_water_bomb_spawner, /*yaw*/ 0, /*pos*/ 3620, 4000, 4800, /*behParam*/ 15),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_water_bomb_spawner, /*yaw*/ 0, /*pos*/ -5141, 3764, -743, /*behParam*/ 25),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_water_bomb_spawner, /*yaw*/ 0, /*pos*/ -4208, 3769, -2036, /*behParam*/ 10),
|
||||
MACRO_OBJECT(/*preset*/ macro_water_bomb_cannon, /*yaw*/ 315, /*pos*/ 1388, 2918, -2383),
|
||||
MACRO_OBJECT(/*preset*/ macro_wooden_post, /*yaw*/ 0, /*pos*/ -6500, 768, 1800),
|
||||
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*/ 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),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_cannon_closed, /*yaw*/ 0, /*pos*/ 4352, 3072, 1229, /*behParam*/ 0x80),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_cannon_closed, /*yaw*/ 0, /*pos*/ 5376, 1537, 4610, /*behParam*/ 0x40),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_water_bomb_spawner, /*yaw*/ 0, /*pos*/ 3620, 4000, 4800, /*bhvParam*/ 15),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_water_bomb_spawner, /*yaw*/ 0, /*pos*/ -5141, 3764, -743, /*bhvParam*/ 25),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_water_bomb_spawner, /*yaw*/ 0, /*pos*/ -4208, 3769, -2036, /*bhvParam*/ 10),
|
||||
MACRO_OBJECT (/*preset*/ macro_water_bomb_cannon_2, /*yaw*/ 315, /*pos*/ 1388, 2918, -2383),
|
||||
MACRO_OBJECT (/*preset*/ macro_wooden_post_1, /*yaw*/ 0, /*pos*/ -6500, 768, 1800),
|
||||
MACRO_OBJECT (/*preset*/ macro_wooden_post_1, /*yaw*/ 0, /*pos*/ -5500, 768, 1800),
|
||||
MACRO_OBJECT (/*preset*/ macro_wooden_post_1, /*yaw*/ 0, /*pos*/ -6500, 768, 3000),
|
||||
MACRO_OBJECT (/*preset*/ macro_wooden_post_1, /*yaw*/ 0, /*pos*/ -5500, 768, 3000),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -4000, 0, 6050, /*bhvParam*/ DIALOG_015),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 1230, 768, 3258, /*bhvParam*/ DIALOG_008),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_cannon_closed, /*yaw*/ 0, /*pos*/ -5018, 1332, -3533, /*bhvParam*/ 0x00),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_cannon_closed, /*yaw*/ 0, /*pos*/ 6349, 2080, -7066, /*bhvParam*/ 0xC0),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_cannon_closed, /*yaw*/ 0, /*pos*/ 4243, 3071, -2451, /*bhvParam*/ 0xC0),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_cannon_closed, /*yaw*/ 0, /*pos*/ 4352, 3072, 1229, /*bhvParam*/ 0x80),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_cannon_closed, /*yaw*/ 0, /*pos*/ 5376, 1537, 4610, /*bhvParam*/ 0x40),
|
||||
MACRO_OBJECT (/*preset*/ macro_bobomb, /*yaw*/ 0, /*pos*/ -3080, 0, -5200),
|
||||
MACRO_OBJECT (/*preset*/ macro_bobomb, /*yaw*/ 0, /*pos*/ -3688, 885, -3813),
|
||||
MACRO_OBJECT (/*preset*/ macro_bobomb, /*yaw*/ 0, /*pos*/ -4629, 1024, -1772),
|
||||
|
@ -39,8 +39,8 @@ 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*/ DIALOG_095),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_hidden_1up, /*yaw*/ 0, /*pos*/ -6060, 1060, -5340, /*behParam*/ 4),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -4000, 0, 6300, /*bhvParam*/ DIALOG_095),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_hidden_1up, /*yaw*/ 0, /*pos*/ -6060, 1060, -5340, /*bhvParam*/ 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),
|
||||
MACRO_OBJECT (/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ -6060, 1060, -5640),
|
||||
|
@ -57,36 +57,36 @@ 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*/ 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_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ 66, 0, 6977, /*bhvParam*/ DIALOG_113),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 3394, 3072, 1846, /*bhvParam*/ DIALOG_064),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -3110, 104, 5064, /*bhvParam*/ DIALOG_035),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 6860, 2041, -6640, /*bhvParam*/ DIALOG_074),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -6020, 768, 2957, /*bhvParam*/ DIALOG_104),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_ring_vertical_flying, /*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),
|
||||
MACRO_OBJECT(/*preset*/ macro_coin_ring_vertical, /*yaw*/ 90, /*pos*/ 1000, 3400, 1250),
|
||||
MACRO_OBJECT(/*preset*/ macro_coin_ring_vertical, /*yaw*/ 90, /*pos*/ 2000, 3400, 1250),
|
||||
MACRO_OBJECT(/*preset*/ macro_coin_ring_vertical, /*yaw*/ 90, /*pos*/ 3000, 3400, 1250),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_ring_vertical_flying, /*yaw*/ 90, /*pos*/ 1000, 3400, 1250),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_ring_vertical_flying, /*yaw*/ 90, /*pos*/ 2000, 3400, 1250),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_ring_vertical_flying, /*yaw*/ 90, /*pos*/ 3000, 3400, 1250),
|
||||
MACRO_OBJECT (/*preset*/ macro_hidden_star_trigger, /*yaw*/ 0, /*pos*/ 1000, 3600, 1250),
|
||||
MACRO_OBJECT (/*preset*/ macro_hidden_star_trigger, /*yaw*/ 0, /*pos*/ 2000, 3600, 1250),
|
||||
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_bobomb_stationary, /*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*/ 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_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 45, /*pos*/ -3530, 1415, 430, /*bhvParam*/ DIALOG_050),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 5053, 3073, 2180, /*bhvParam*/ DIALOG_053),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ -1506, 5517, 1250),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 1000, 3600, 1250),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 2000, 3600, 1250),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*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*/ 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_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 270, /*pos*/ -2224, 990, -4359, /*bhvParam*/ DIALOG_039),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 60, /*pos*/ 3911, 3529, -7081, /*bhvParam*/ DIALOG_112),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -7000, 1024, -2099, /*bhvParam*/ 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),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ -300, 4200, 1250),
|
||||
MACRO_OBJECT (/*preset*/ macro_box_star_act_3, /*yaw*/ 0, /*pos*/ 5540, 3350, 1200),
|
||||
MACRO_OBJECT (/*preset*/ macro_coin_ring_vertical_flying, /*yaw*/ 90, /*pos*/ -300, 4000, 1250),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ -300, 4200, 1250),
|
||||
MACRO_OBJECT (/*preset*/ macro_breakable_box_small, /*yaw*/ 0, /*pos*/ -6800, 1024, 40),
|
||||
MACRO_OBJECT_END(),
|
||||
};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Bob-Omb Battlefield
|
||||
# Bob-omb Battlefield
|
||||
short-name: bob
|
||||
full-name: Bob-Omb Battlefield
|
||||
full-name: Bob-omb Battlefield
|
||||
texture-file: ["/texture.inc.c"]
|
||||
area-count: 1
|
||||
objects: [chain_chomp_gate, grate_door, seesaw_platform]
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
#include "surface_terrains.h"
|
||||
#include "moving_texture_macros.h"
|
||||
#include "level_misc_macros.h"
|
||||
#include "macro_preset_names.h"
|
||||
#include "special_preset_names.h"
|
||||
#include "macro_presets.h"
|
||||
#include "special_presets.h"
|
||||
#include "textures.h"
|
||||
#include "dialog_ids.h"
|
||||
|
||||
|
|
|
@ -17,39 +17,39 @@
|
|||
#include "levels/bob/header.h"
|
||||
|
||||
static const LevelScript script_func_local_1[] = {
|
||||
OBJECT(/*model*/ MODEL_BOB_CHAIN_CHOMP_GATE, /*pos*/ 1456, 768, 446, /*angle*/ 0, 326, 0, /*behParam*/ 0x00000000, /*beh*/ bhvChainChompGate),
|
||||
OBJECT(/*model*/ MODEL_BOB_SEESAW_PLATFORM, /*pos*/ -2303, 717, 1024, /*angle*/ 0, 45, 0, /*behParam*/ 0x00030000, /*beh*/ bhvSeesawPlatform),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2050, 0, -3069, /*angle*/ 0, 25, 0, /*behParam*/ 0x00000000, /*beh*/ bhvOpenableGrill),
|
||||
OBJECT(/*model*/ MODEL_PURPLE_SWITCH, /*pos*/ -2283, 0, -3682, /*angle*/ 0, 27, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFloorSwitchGrills),
|
||||
OBJECT(/*model*/ MODEL_CHECKERBOARD_PLATFORM, /*pos*/ 1612, 300, 4611, /*angle*/ 0, 0, 0, /*behParam*/ 0x00280000, /*beh*/ bhvCheckerboardElevatorGroup),
|
||||
OBJECT(/*model*/ MODEL_BOB_CHAIN_CHOMP_GATE, /*pos*/ 1456, 768, 446, /*angle*/ 0, 326, 0, /*bhvParam*/ 0, /*bhv*/ bhvChainChompGate),
|
||||
OBJECT(/*model*/ MODEL_BOB_SEESAW_PLATFORM, /*pos*/ -2303, 717, 1024, /*angle*/ 0, 45, 0, /*bhvParam*/ BPARAM2(0x03), /*bhv*/ bhvSeesawPlatform),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2050, 0, -3069, /*angle*/ 0, 25, 0, /*bhvParam*/ BPARAM2(OPENABLE_GRILL_BP_BOB), /*bhv*/ bhvOpenableGrill),
|
||||
OBJECT(/*model*/ MODEL_PURPLE_SWITCH, /*pos*/ -2283, 0, -3682, /*angle*/ 0, 27, 0, /*bhvParam*/ 0, /*bhv*/ bhvFloorSwitchGrills),
|
||||
OBJECT(/*model*/ MODEL_CHECKERBOARD_PLATFORM, /*pos*/ 1612, 300, 4611, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(0) | BPARAM2(40), /*bhv*/ bhvCheckerboardElevatorGroup),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
static const LevelScript script_func_local_2[] = {
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 1535, 3840, -5561, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBobBowlingBallSpawner, /*acts*/ ACT_1 | ACT_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*/ 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),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 1535, 3840, -5561, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(BBALL_BP_STYPE_BOB_UPPER), /*bhv*/ bhvBoBBowlingBallSpawner, /*acts*/ ACT_1 | ACT_2),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 1535, 3840, -5561, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(BBALL_BP_STYPE_BOB_UPPER), /*bhv*/ bhvTTMBowlingBallSpawner, /*acts*/ ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 524, 2825, -5400, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(BBALL_BP_STYPE_BOB_LOWER), /*bhv*/ bhvBoBBowlingBallSpawner, /*acts*/ ACT_1 | ACT_2),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 524, 2825, -5400, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(BBALL_BP_STYPE_BOB_LOWER), /*bhv*/ bhvTTMBowlingBallSpawner, /*acts*/ ACT_3 | ACT_4 | ACT_5 | ACT_6),
|
||||
OBJECT (/*model*/ MODEL_BOWLING_BALL, /*pos*/ -993, 886, -3565, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvPitBowlingBall),
|
||||
OBJECT (/*model*/ MODEL_BOWLING_BALL, /*pos*/ -785, 886, -4301, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvPitBowlingBall),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOWLING_BALL, /*pos*/ -93, 886, -3414, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ 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, /*bhvParam*/ BPARAM2(DIALOG_002), /*bhv*/ bhvBobombBuddy, /*acts*/ ACT_1),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOBOMB_BUDDY, /*pos*/ -6250, 0, 6680, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(DIALOG_001), /*bhv*/ bhvBobombBuddy, /*acts*/ ACT_1),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_BOBOMB_BUDDY, /*pos*/ -5723, 140, 6017, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ 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, /*bhvParam*/ BPARAM2(DIALOG_003), /*bhv*/ 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, /*bhvParam*/ BPARAM2(0x01), /*bhv*/ bhvWaterBombCannon, /*acts*/ ACT_1),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_DL_CANNON_LID, /*pos*/ -5694, 128, 5600, /*angle*/ 0, 180, 0, /*bhvParam*/ BPARAM2(0x00), /*bhv*/ 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, /*bhvParam*/ 0, /*bhv*/ bhvKoopaRaceEndpoint, /*acts*/ ACT_2),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_KOOPA_WITH_SHELL, /*pos*/ 3400, 770, 6500, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(KOOPA_BP_NORMAL), /*bhv*/ 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_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_KING_BOBOMB, /*pos*/ 1636, 4242, -5567, /*angle*/ 0, -147, 0, /*bhvParam*/ BPARAM1(STAR_INDEX_ACT_1), /*bhv*/ bhvKingBobomb, /*acts*/ ACT_1),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_KOOPA_WITH_SHELL, /*pos*/ -4004, 0, 5221, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(STAR_INDEX_ACT_2) | BPARAM2(KOOPA_BP_KOOPA_THE_QUICK_BOB), /*bhv*/ bhvKoopa, /*acts*/ ACT_2),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ -6000, 1000, 2400, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(STAR_INDEX_ACT_4), /*bhv*/ bhvHiddenRedCoinStar, /*acts*/ ALL_ACTS),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ -6600, 1000, 1250, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(STAR_INDEX_ACT_5) | BPARAM2(0x04), /*bhv*/ bhvHiddenStar, /*acts*/ ALL_ACTS),
|
||||
OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ 1550, 1200, 300, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(STAR_INDEX_ACT_6), /*bhv*/ bhvStar, /*acts*/ ALL_ACTS),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
|
@ -65,7 +65,7 @@ const LevelScript level_bob_entry[] = {
|
|||
LOAD_MIO0 (/*seg*/ 0x08, _common0_mio0SegmentRomStart, _common0_mio0SegmentRomEnd),
|
||||
LOAD_RAW (/*seg*/ 0x0F, _common0_geoSegmentRomStart, _common0_geoSegmentRomEnd),
|
||||
ALLOC_LEVEL_POOL(),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*behParam*/ 0x00000001, /*beh*/ bhvMario),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*bhvParam*/ BPARAM4(0x01), /*bhv*/ bhvMario),
|
||||
JUMP_LINK(script_func_global_1),
|
||||
JUMP_LINK(script_func_global_4),
|
||||
JUMP_LINK(script_func_global_15),
|
||||
|
@ -78,18 +78,18 @@ const LevelScript level_bob_entry[] = {
|
|||
JUMP_LINK(script_func_local_1),
|
||||
JUMP_LINK(script_func_local_2),
|
||||
JUMP_LINK(script_func_local_3),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -6558, 1000, 6464, /*angle*/ 0, 135, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvSpinAirborneWarp),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 583, 2683, -5387, /*angle*/ 0, -154, 0, /*behParam*/ 0x000B0000, /*beh*/ bhvFadingWarp),
|
||||
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*/ 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),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -6558, 1000, 6464, /*angle*/ 0, 135, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0A), /*bhv*/ bhvSpinAirborneWarp),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 583, 2683, -5387, /*angle*/ 0, -154, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0B), /*bhv*/ bhvFadingWarp),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1680, 3835, -5523, /*angle*/ 0, -153, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0C), /*bhv*/ bhvFadingWarp),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -6612, 1024, -3351, /*angle*/ 0, 107, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0D), /*bhv*/ bhvFadingWarp),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1980, 768, 6618, /*angle*/ 0, -151, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0E), /*bhv*/ bhvFadingWarp),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0A, /*destLevel*/ LEVEL_BOB, /*destArea*/ 1, /*destNode*/ WARP_NODE_0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0B, /*destLevel*/ LEVEL_BOB, /*destArea*/ 1, /*destNode*/ WARP_NODE_0C, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0C, /*destLevel*/ LEVEL_BOB, /*destArea*/ 1, /*destNode*/ WARP_NODE_0B, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0D, /*destLevel*/ LEVEL_BOB, /*destArea*/ 1, /*destNode*/ WARP_NODE_0E, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0E, /*destLevel*/ LEVEL_BOB, /*destArea*/ 1, /*destNode*/ WARP_NODE_0D, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_SUCCESS, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 1, /*destNode*/ WARP_NODE_32, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_DEATH, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 1, /*destNode*/ WARP_NODE_64, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
TERRAIN(/*terrainData*/ bob_seg7_collision_level),
|
||||
MACRO_OBJECTS(/*objList*/ bob_seg7_macro_objs),
|
||||
SHOW_DIALOG(/*index*/ 0x00, DIALOG_000),
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
#include "surface_terrains.h"
|
||||
#include "moving_texture_macros.h"
|
||||
#include "level_misc_macros.h"
|
||||
#include "macro_preset_names.h"
|
||||
#include "special_preset_names.h"
|
||||
#include "macro_presets.h"
|
||||
#include "special_presets.h"
|
||||
#include "textures.h"
|
||||
|
||||
#include "make_const_nonconst.h"
|
||||
|
|
|
@ -23,15 +23,15 @@ const LevelScript level_bowser_1_entry[] = {
|
|||
LOAD_MIO0(/*seg*/ 0x06, _group12_mio0SegmentRomStart, _group12_mio0SegmentRomEnd),
|
||||
LOAD_RAW (/*seg*/ 0x0D, _group12_geoSegmentRomStart, _group12_geoSegmentRomEnd),
|
||||
ALLOC_LEVEL_POOL(),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*behParam*/ 0x00000001, /*beh*/ bhvMario),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*bhvParam*/ BPARAM4(0x01), /*bhv*/ bhvMario),
|
||||
JUMP_LINK(script_func_global_13),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_03, bowser_1_yellow_sphere_geo),
|
||||
|
||||
AREA(/*index*/ 1, bowser_1_geo_0000D0),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 1307, 0, /*angle*/ 0, 180, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvSpinAirborneCircleWarp),
|
||||
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),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 1307, 0, /*angle*/ 0, 180, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0A), /*bhv*/ bhvSpinAirborneCircleWarp),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0A, /*destLevel*/ LEVEL_BOWSER_1, /*destArea*/ 1, /*destNode*/ WARP_NODE_0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_SUCCESS, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 1, /*destNode*/ WARP_NODE_24, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_DEATH, /*destLevel*/ LEVEL_BITDW, /*destArea*/ 1, /*destNode*/ WARP_NODE_0C, /*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),
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
#include "surface_terrains.h"
|
||||
#include "moving_texture_macros.h"
|
||||
#include "level_misc_macros.h"
|
||||
#include "macro_preset_names.h"
|
||||
#include "special_preset_names.h"
|
||||
#include "macro_presets.h"
|
||||
#include "special_presets.h"
|
||||
#include "textures.h"
|
||||
|
||||
#include "make_const_nonconst.h"
|
||||
|
|
|
@ -16,11 +16,11 @@
|
|||
#include "levels/bowser_2/header.h"
|
||||
|
||||
static const LevelScript script_func_local_1[] = {
|
||||
OBJECT(/*model*/ MODEL_BOWSER_2_TILTING_ARENA, /*pos*/ 0, 0, 0, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTiltingBowserLavaPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ 4, 1329, 3598, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBowserBomb),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ 3584, 1329, 0, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBowserBomb),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ 0, 1329, -3583, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBowserBomb),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ -3583, 1329, 0, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBowserBomb),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_2_TILTING_ARENA, /*pos*/ 0, 0, 0, /*angle*/ 0, 90, 0, /*bhvParam*/ 0, /*bhv*/ bhvTiltingBowserLavaPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ 4, 1329, 3598, /*angle*/ 0, 90, 0, /*bhvParam*/ 0, /*bhv*/ bhvBowserBomb),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ 3584, 1329, 0, /*angle*/ 0, 90, 0, /*bhvParam*/ 0, /*bhv*/ bhvBowserBomb),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ 0, 1329, -3583, /*angle*/ 0, 90, 0, /*bhvParam*/ 0, /*bhv*/ bhvBowserBomb),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ -3583, 1329, 0, /*angle*/ 0, 90, 0, /*bhvParam*/ 0, /*bhv*/ bhvBowserBomb),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
|
@ -33,15 +33,15 @@ const LevelScript level_bowser_2_entry[] = {
|
|||
LOAD_MIO0 (/*seg*/ 0x06, _group12_mio0SegmentRomStart, _group12_mio0SegmentRomEnd),
|
||||
LOAD_RAW (/*seg*/ 0x0D, _group12_geoSegmentRomStart, _group12_geoSegmentRomEnd),
|
||||
ALLOC_LEVEL_POOL(),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*behParam*/ 0x00000001, /*beh*/ bhvMario),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*bhvParam*/ BPARAM4(0x01), /*bhv*/ bhvMario),
|
||||
JUMP_LINK(script_func_global_13),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BOWSER_2_TILTING_ARENA, bowser_2_geo_000170),
|
||||
|
||||
AREA(/*index*/ 1, bowser_2_geo_000188),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 2229, 0, /*angle*/ 0, 180, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvSpinAirborneCircleWarp),
|
||||
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),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 2229, 0, /*angle*/ 0, 180, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0A), /*bhv*/ bhvSpinAirborneCircleWarp),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0A, /*destLevel*/ LEVEL_BOWSER_2, /*destArea*/ 1, /*destNode*/ WARP_NODE_0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_SUCCESS, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 3, /*destNode*/ WARP_NODE_36, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_DEATH, /*destLevel*/ LEVEL_BITFS, /*destArea*/ 1, /*destNode*/ WARP_NODE_0C, /*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),
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
#include "surface_terrains.h"
|
||||
#include "moving_texture_macros.h"
|
||||
#include "level_misc_macros.h"
|
||||
#include "macro_preset_names.h"
|
||||
#include "special_preset_names.h"
|
||||
#include "macro_presets.h"
|
||||
#include "special_presets.h"
|
||||
#include "textures.h"
|
||||
|
||||
#include "make_const_nonconst.h"
|
||||
|
|
|
@ -16,21 +16,21 @@
|
|||
#include "levels/bowser_3/header.h"
|
||||
|
||||
static const LevelScript script_func_local_1[] = {
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_1, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_2, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00020000, /*beh*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_3, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00030000, /*beh*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_4, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00040000, /*beh*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_5, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00050000, /*beh*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_6, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00060000, /*beh*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_7, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00070000, /*beh*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_8, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00080000, /*beh*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_9, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00090000, /*beh*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_10, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ -2122, 512, -2912, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBowserBomb),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ -3362, 512, 1121, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBowserBomb),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ 0, 512, 3584, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBowserBomb),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ 3363, 512, 1121, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBowserBomb),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ 2123, 512, -2912, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBowserBomb),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_1, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(1), /*bhv*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_2, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(2), /*bhv*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_3, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(3), /*bhv*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_4, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(4), /*bhv*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_5, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(5), /*bhv*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_6, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(6), /*bhv*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_7, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(7), /*bhv*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_8, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(8), /*bhv*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_9, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(9), /*bhv*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_3_FALLING_PLATFORM_10, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(10), /*bhv*/ bhvFallingBowserPlatform),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ -2122, 512, -2912, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBowserBomb),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ -3362, 512, 1121, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBowserBomb),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ 0, 512, 3584, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBowserBomb),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ 3363, 512, 1121, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBowserBomb),
|
||||
OBJECT(/*model*/ MODEL_BOWSER_BOMB, /*pos*/ 2123, 512, -2912, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvBowserBomb),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
|
@ -41,7 +41,7 @@ const LevelScript level_bowser_3_entry[] = {
|
|||
LOAD_RAW (/*seg*/ 0x0D, _group12_geoSegmentRomStart, _group12_geoSegmentRomEnd),
|
||||
LOAD_MIO0(/*seg*/ 0x0A, _bits_skybox_mio0SegmentRomStart, _bits_skybox_mio0SegmentRomEnd),
|
||||
ALLOC_LEVEL_POOL(),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*behParam*/ 0x00000001, /*beh*/ bhvMario),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*bhvParam*/ BPARAM4(0x01), /*bhv*/ bhvMario),
|
||||
JUMP_LINK(script_func_global_13),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BOWSER_3_FALLING_PLATFORM_1, bowser_3_geo_000290),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BOWSER_3_FALLING_PLATFORM_2, bowser_3_geo_0002A8),
|
||||
|
@ -56,10 +56,10 @@ const LevelScript level_bowser_3_entry[] = {
|
|||
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_03, bowser_3_geo_000380),
|
||||
|
||||
AREA(/*index*/ 1, bowser_3_geo_000398),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 1307, 0, /*angle*/ 0, 183, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvSpinAirborneCircleWarp),
|
||||
WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_BOWSER_3, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 1307, 0, /*angle*/ 0, 183, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0A), /*bhv*/ bhvSpinAirborneCircleWarp),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0A, /*destLevel*/ LEVEL_BOWSER_3, /*destArea*/ 1, /*destNode*/ WARP_NODE_0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
JUMP_LINK(script_func_local_1),
|
||||
WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_BITS, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_DEATH, /*destLevel*/ LEVEL_BITS, /*destArea*/ 1, /*destNode*/ WARP_NODE_0C, /*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),
|
||||
|
|
|
@ -865,7 +865,7 @@ const Collision castle_courtyard_seg7_collision[] = {
|
|||
SPECIAL_OBJECT(/*preset*/ special_spiky_tree, /*pos*/ -2446, -214, -1786),
|
||||
SPECIAL_OBJECT(/*preset*/ special_spiky_tree, /*pos*/ -2820, -214, -1317),
|
||||
SPECIAL_OBJECT(/*preset*/ special_spiky_tree, /*pos*/ -1868, -214, -45),
|
||||
SPECIAL_OBJECT_WITH_YAW_AND_PARAM(/*preset*/ special_wooden_door_warp, /*pos*/ 0, 0, 461, /*yaw*/ 0, /*behParam2*/ 1),
|
||||
SPECIAL_OBJECT_WITH_YAW_AND_PARAM(/*preset*/ special_wooden_door_warp, /*pos*/ 0, 0, 461, /*yaw*/ 0, /*bhvParam2*/ 1),
|
||||
COL_WATER_BOX_INIT(1),
|
||||
COL_WATER_BOX(0, -656, -2405, 674, -1074, 51),
|
||||
COL_END(),
|
||||
|
|
|
@ -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*/ 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_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 225, /*pos*/ 3180, 20, 330, /*bhvParam*/ DIALOG_158),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 135, /*pos*/ -3180, 20, 330, /*bhvParam*/ DIALOG_159),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ 300, 0, -3600, /*bhvParam*/ DIALOG_102),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -300, 0, -3600, /*bhvParam*/ DIALOG_160),
|
||||
MACRO_OBJECT_END(),
|
||||
};
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
#include "surface_terrains.h"
|
||||
#include "moving_texture_macros.h"
|
||||
#include "level_misc_macros.h"
|
||||
#include "macro_preset_names.h"
|
||||
#include "special_preset_names.h"
|
||||
#include "macro_presets.h"
|
||||
#include "special_presets.h"
|
||||
#include "textures.h"
|
||||
#include "dialog_ids.h"
|
||||
|
||||
|
|
|
@ -16,16 +16,16 @@
|
|||
#include "levels/castle_courtyard/header.h"
|
||||
|
||||
static const LevelScript script_func_local_1[] = {
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 200, -1652, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvAmbientSounds),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2700, 0, -1652, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBirdsSoundLoop),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2700, 0, -1652, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvBirdsSoundLoop),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 200, -1652, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvAmbientSounds),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2700, 0, -1652, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x00), /*bhv*/ bhvBirdsSoundLoop),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2700, 0, -1652, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x01), /*bhv*/ bhvBirdsSoundLoop),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
static const LevelScript script_func_local_2[] = {
|
||||
OBJECT(/*model*/ MODEL_BOO, /*pos*/ -3217, 100, -101, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvCourtyardBooTriplet),
|
||||
OBJECT(/*model*/ MODEL_BOO, /*pos*/ 3317, 100, -1701, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvCourtyardBooTriplet),
|
||||
OBJECT(/*model*/ MODEL_BOO, /*pos*/ -71, 1, -1387, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvCourtyardBooTriplet),
|
||||
OBJECT(/*model*/ MODEL_BOO, /*pos*/ -3217, 100, -101, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvCourtyardBooTriplet),
|
||||
OBJECT(/*model*/ MODEL_BOO, /*pos*/ 3317, 100, -1701, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvCourtyardBooTriplet),
|
||||
OBJECT(/*model*/ MODEL_BOO, /*pos*/ -71, 1, -1387, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvCourtyardBooTriplet),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
|
@ -39,7 +39,7 @@ const LevelScript level_castle_courtyard_entry[] = {
|
|||
LOAD_MIO0 (/*seg*/ 0x08, _common0_mio0SegmentRomStart, _common0_mio0SegmentRomEnd),
|
||||
LOAD_RAW (/*seg*/ 0x0F, _common0_geoSegmentRomStart, _common0_geoSegmentRomEnd),
|
||||
ALLOC_LEVEL_POOL(),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*behParam*/ 0x00000001, /*beh*/ bhvMario),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*bhvParam*/ BPARAM4(0x01), /*bhv*/ bhvMario),
|
||||
JUMP_LINK(script_func_global_1),
|
||||
JUMP_LINK(script_func_global_10),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_COURTYARD_SPIKY_TREE, spiky_tree_geo),
|
||||
|
@ -47,14 +47,14 @@ const LevelScript level_castle_courtyard_entry[] = {
|
|||
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_03, castle_courtyard_geo_000200),
|
||||
|
||||
AREA(/*index*/ 1, castle_courtyard_geo_000218),
|
||||
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*/ bhvLaunchStarCollectWarp),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 51, -1000, /*angle*/ 0, 180, 0, /*behParam*/ 0x000B0000, /*beh*/ bhvLaunchDeathWarp),
|
||||
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),
|
||||
OBJECT(/*model*/ MODEL_BOO, /*pos*/ -2360, -100, -2712, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(1) | BPARAM2(WARP_NODE_05), /*bhv*/ bhvBooWithCage),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 51, -1000, /*angle*/ 0, 180, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0A), /*bhv*/ bhvLaunchStarCollectWarp),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 51, -1000, /*angle*/ 0, 180, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0B), /*bhv*/ bhvLaunchDeathWarp),
|
||||
WARP_NODE(/*id*/ WARP_NODE_05, /*destLevel*/ LEVEL_BBH, /*destArea*/ 1, /*destNode*/ WARP_NODE_0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0A, /*destLevel*/ LEVEL_CASTLE_COURTYARD, /*destArea*/ 1, /*destNode*/ WARP_NODE_0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0B, /*destLevel*/ LEVEL_CASTLE_COURTYARD, /*destArea*/ 1, /*destNode*/ WARP_NODE_0B, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_01, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 1, /*destNode*/ WARP_NODE_02, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_DEATH, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 1, /*destNode*/ WARP_NODE_03, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
JUMP_LINK(script_func_local_1),
|
||||
JUMP_LINK(script_func_local_2),
|
||||
TERRAIN(/*terrainData*/ castle_courtyard_seg7_collision),
|
||||
|
|
|
@ -1410,9 +1410,9 @@ const Collision castle_grounds_seg7_collision_level[] = {
|
|||
SPECIAL_OBJECT(/*preset*/ special_bubble_tree, /*pos*/ 5774, 413, -1114),
|
||||
SPECIAL_OBJECT(/*preset*/ special_bubble_tree, /*pos*/ 5954, 526, -2846),
|
||||
SPECIAL_OBJECT(/*preset*/ special_bubble_tree, /*pos*/ -5204, 296, 811),
|
||||
SPECIAL_OBJECT_WITH_YAW_AND_PARAM(/*preset*/ special_metal_door_warp, /*pos*/ 3292, -511, -2931, /*yaw*/ 160, /*behParam2*/ 2),
|
||||
SPECIAL_OBJECT_WITH_YAW_AND_PARAM(/*preset*/ special_castle_door_warp, /*pos*/ -76, 803, -3155, /*yaw*/ 0, /*behParam2*/ 0),
|
||||
SPECIAL_OBJECT_WITH_YAW_AND_PARAM(/*preset*/ special_castle_door_warp, /*pos*/ 77, 803, -3155, /*yaw*/ 128, /*behParam2*/ 1),
|
||||
SPECIAL_OBJECT_WITH_YAW_AND_PARAM(/*preset*/ special_metal_door_warp, /*pos*/ 3292, -511, -2931, /*yaw*/ 160, /*bhvParam2*/ 2),
|
||||
SPECIAL_OBJECT_WITH_YAW_AND_PARAM(/*preset*/ special_castle_door_warp, /*pos*/ -76, 803, -3155, /*yaw*/ 0, /*bhvParam2*/ 0),
|
||||
SPECIAL_OBJECT_WITH_YAW_AND_PARAM(/*preset*/ special_castle_door_warp, /*pos*/ 77, 803, -3155, /*yaw*/ 128, /*bhvParam2*/ 1),
|
||||
COL_WATER_BOX_INIT(2),
|
||||
COL_WATER_BOX(0, -7129, -7222, 8253, -58, -81),
|
||||
COL_WATER_BOX(1, 1024, -58, 8230, 8137, -81),
|
||||
|
|
|
@ -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*/ 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_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 262, /*pos*/ 5288, 722, -800, /*bhvParam*/ DIALOG_050),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 90, /*pos*/ 1740, 35, 2500, /*bhvParam*/ DIALOG_065),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 0, /*pos*/ -1566, 260, 3503, /*bhvParam*/ DIALOG_167),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_wooden_signpost, /*yaw*/ 82, /*pos*/ -4666, 260, 922, /*bhvParam*/ 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),
|
||||
|
@ -11,11 +11,11 @@ const MacroObject castle_grounds_seg7_macro_objs[] = {
|
|||
MACRO_OBJECT (/*preset*/ macro_box_wing_cap, /*yaw*/ 0, /*pos*/ 13, 3476, -5646),
|
||||
MACRO_OBJECT (/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ 0, 535, -500),
|
||||
MACRO_OBJECT (/*preset*/ macro_hidden_1up_trigger, /*yaw*/ 0, /*pos*/ 0, 535, -1774),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_hidden_1up, /*yaw*/ 0, /*pos*/ 0, 510, -1170, /*behParam*/ 2),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 0, 540, -1774),
|
||||
MACRO_OBJECT(/*preset*/ macro_yellow_coin, /*yaw*/ 0, /*pos*/ 0, 540, -500),
|
||||
MACRO_OBJECT_WITH_BEH_PARAM(/*preset*/ macro_cannon_open, /*yaw*/ 0, /*pos*/ 2384, 70, 1961, /*behParam*/ 0x40),
|
||||
MACRO_OBJECT(/*preset*/ macro_butterfly_triplet_2, /*yaw*/ 0, /*pos*/ -6240, 295, 320),
|
||||
MACRO_OBJECT(/*preset*/ macro_butterfly_triplet_2, /*yaw*/ 0, /*pos*/ 6330, 710, -3760),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_hidden_1up, /*yaw*/ 0, /*pos*/ 0, 510, -1170, /*bhvParam*/ 2),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 0, 540, -1774),
|
||||
MACRO_OBJECT (/*preset*/ macro_yellow_coin_1, /*yaw*/ 0, /*pos*/ 0, 540, -500),
|
||||
MACRO_OBJECT_WITH_BHV_PARAM(/*preset*/ macro_cannon_open, /*yaw*/ 0, /*pos*/ 2384, 70, 1961, /*bhvParam*/ 0x40),
|
||||
MACRO_OBJECT (/*preset*/ macro_butterfly_triplet_no_bombs, /*yaw*/ 0, /*pos*/ -6240, 295, 320),
|
||||
MACRO_OBJECT (/*preset*/ macro_butterfly_triplet_no_bombs, /*yaw*/ 0, /*pos*/ 6330, 710, -3760),
|
||||
MACRO_OBJECT_END(),
|
||||
};
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
#include "surface_terrains.h"
|
||||
#include "moving_texture_macros.h"
|
||||
#include "level_misc_macros.h"
|
||||
#include "macro_preset_names.h"
|
||||
#include "special_preset_names.h"
|
||||
#include "macro_presets.h"
|
||||
#include "special_presets.h"
|
||||
#include "textures.h"
|
||||
#include "dialog_ids.h"
|
||||
|
||||
|
|
|
@ -16,79 +16,79 @@
|
|||
#include "levels/castle_grounds/header.h"
|
||||
|
||||
static const LevelScript script_func_local_1[] = {
|
||||
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*/ bhvDeathWarp),
|
||||
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*/ bhvSpinAirborneCircleWarp),
|
||||
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*/ bhvLaunchDeathWarp),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3799, -1199, -5816, /*angle*/ 0, 0, 0, /*behParam*/ 0x00070000, /*beh*/ bhvSwimmingWarp),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3379, -500, -2025, /*angle*/ 0, 180, 0, /*behParam*/ 0x00080000, /*beh*/ bhvLaunchStarCollectWarp),
|
||||
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*/ bhvAirborneWarp),
|
||||
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*/ bhvAirborneWarp),
|
||||
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*/ bhvSwimmingWarp),
|
||||
WARP_NODE(/*id*/ 0x1E, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x1E, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_00, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 1, /*destNode*/ WARP_NODE_00, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_01, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 1, /*destNode*/ WARP_NODE_01, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_02, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 3, /*destNode*/ WARP_NODE_02, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 900, -1710, /*angle*/ 0, 180, 0, /*bhvParam*/ BPARAM2(WARP_NODE_03), /*bhv*/ bhvDeathWarp),
|
||||
WARP_NODE(/*id*/ WARP_NODE_03, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 1, /*destNode*/ WARP_NODE_03, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1328, 260, 4664, /*angle*/ 0, 180, 0, /*bhvParam*/ BPARAM2(WARP_NODE_04), /*bhv*/ bhvSpinAirborneCircleWarp),
|
||||
WARP_NODE(/*id*/ WARP_NODE_04, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 1, /*destNode*/ WARP_NODE_04, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3379, -815, -2025, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM1(60) | BPARAM2(WARP_NODE_05), /*bhv*/ bhvWarp),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3379, -500, -2025, /*angle*/ 0, 180, 0, /*bhvParam*/ BPARAM2(WARP_NODE_06), /*bhv*/ bhvLaunchDeathWarp),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3799, -1199, -5816, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(WARP_NODE_07), /*bhv*/ bhvSwimmingWarp),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3379, -500, -2025, /*angle*/ 0, 180, 0, /*bhvParam*/ BPARAM2(WARP_NODE_08), /*bhv*/ bhvLaunchStarCollectWarp),
|
||||
WARP_NODE(/*id*/ WARP_NODE_05, /*destLevel*/ LEVEL_VCUTM, /*destArea*/ 1, /*destNode*/ WARP_NODE_0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_06, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 1, /*destNode*/ WARP_NODE_06, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_07, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 1, /*destNode*/ WARP_NODE_07, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_08, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 1, /*destNode*/ WARP_NODE_08, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 5408, 4500, 3637, /*angle*/ 0, 225, 0, /*bhvParam*/ BPARAM2(WARP_NODE_0A), /*bhv*/ bhvAirborneWarp),
|
||||
WARP_NODE(/*id*/ WARP_NODE_0A, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 1, /*destNode*/ WARP_NODE_0A, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -6901, 2376, -6509, /*angle*/ 0, 230, 0, /*bhvParam*/ BPARAM2(WARP_NODE_14), /*bhv*/ bhvAirborneWarp),
|
||||
WARP_NODE(/*id*/ WARP_NODE_14, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 1, /*destNode*/ WARP_NODE_14, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 4997, -1250, 2258, /*angle*/ 0, 210, 0, /*bhvParam*/ BPARAM2(WARP_NODE_1E), /*bhv*/ bhvSwimmingWarp),
|
||||
WARP_NODE(/*id*/ WARP_NODE_1E, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 1, /*destNode*/ WARP_NODE_1E, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
static const LevelScript script_func_local_2[] = {
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -5812, 100, -5937, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvWaterfallSoundLoop),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -7430, 1500, 873, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBirdsSoundLoop),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -80, 1500, 5004, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvBirdsSoundLoop),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 7131, 1500, -2989, /*angle*/ 0, 0, 0, /*behParam*/ 0x00020000, /*beh*/ bhvBirdsSoundLoop),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -7430, 1500, -5937, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvAmbientSounds),
|
||||
OBJECT(/*model*/ MODEL_CASTLE_GROUNDS_VCUTM_GRILL, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvMoatGrills),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvInvisibleObjectsUnderBridge),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -4878, -787, -5690, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -4996, -787, -5548, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -5114, -787, -5406, /*angle*/ 0, 0, 0, /*behParam*/ 0x00020000, /*beh*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -5212, -787, -5219, /*angle*/ 0, 0, 0, /*behParam*/ 0x00030000, /*beh*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -5311, -787, -5033, /*angle*/ 0, 0, 0, /*behParam*/ 0x00040000, /*beh*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -5419, -787, -4895, /*angle*/ 0, 0, 0, /*behParam*/ 0x00050000, /*beh*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -5527, -787, -4757, /*angle*/ 0, 0, 0, /*behParam*/ 0x00060000, /*beh*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -5686, -787, -4733, /*angle*/ 0, 0, 0, /*behParam*/ 0x00070000, /*beh*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -5845, -787, -4710, /*angle*/ 0, 0, 0, /*behParam*/ 0x00080000, /*beh*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 5223, -975, 1667, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvManyBlueFishSpawner),
|
||||
OBJECT(/*model*/ MODEL_BIRDS, /*pos*/ -5069, 850, 3221, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvBird),
|
||||
OBJECT(/*model*/ MODEL_BIRDS, /*pos*/ -4711, 742, 433, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvBird),
|
||||
OBJECT(/*model*/ MODEL_BIRDS, /*pos*/ 5774, 913, -1114, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvBird),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1328, 260, 4664, /*angle*/ 0, 180, 0, /*behParam*/ 0x00280000, /*beh*/ bhvIntroScene),
|
||||
OBJECT(/*model*/ MODEL_CASTLE_GROUNDS_CANNON_GRILL, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHiddenAt120Stars),
|
||||
OBJECT(/*model*/ MODEL_LAKITU, /*pos*/ 11, 803, -3015, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvCameraLakitu),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -5812, 100, -5937, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvWaterfallSoundLoop),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -7430, 1500, 873, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x00), /*bhv*/ bhvBirdsSoundLoop),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -80, 1500, 5004, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x01), /*bhv*/ bhvBirdsSoundLoop),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 7131, 1500, -2989, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x02), /*bhv*/ bhvBirdsSoundLoop),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -7430, 1500, -5937, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvAmbientSounds),
|
||||
OBJECT(/*model*/ MODEL_CASTLE_GROUNDS_VCUTM_GRILL, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvMoatGrills),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvInvisibleObjectsUnderBridge),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -4878, -787, -5690, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -4996, -787, -5548, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x01), /*bhv*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -5114, -787, -5406, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x02), /*bhv*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -5212, -787, -5219, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x03), /*bhv*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -5311, -787, -5033, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x04), /*bhv*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -5419, -787, -4895, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x05), /*bhv*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -5527, -787, -4757, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x06), /*bhv*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -5686, -787, -4733, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x07), /*bhv*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_MIST, /*pos*/ -5845, -787, -4710, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(0x08), /*bhv*/ bhvWaterMist2),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 5223, -975, 1667, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvManyBlueFishSpawner),
|
||||
OBJECT(/*model*/ MODEL_BIRDS, /*pos*/ -5069, 850, 3221, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(BIRD_BP_SPAWNER), /*bhv*/ bhvBird),
|
||||
OBJECT(/*model*/ MODEL_BIRDS, /*pos*/ -4711, 742, 433, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(BIRD_BP_SPAWNER), /*bhv*/ bhvBird),
|
||||
OBJECT(/*model*/ MODEL_BIRDS, /*pos*/ 5774, 913, -1114, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(BIRD_BP_SPAWNER), /*bhv*/ bhvBird),
|
||||
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1328, 260, 4664, /*angle*/ 0, 180, 0, /*bhvParam*/ BPARAM2(0x28), /*bhv*/ bhvIntroScene),
|
||||
OBJECT(/*model*/ MODEL_CASTLE_GROUNDS_CANNON_GRILL, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvHiddenAt120Stars),
|
||||
OBJECT(/*model*/ MODEL_LAKITU, /*pos*/ 11, 803, -3015, /*angle*/ 0, 0, 0, /*bhvParam*/ BPARAM2(CAMERA_LAKITU_BP_INTRO), /*bhv*/ bhvCameraLakitu),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
static const LevelScript script_func_local_3[] = {
|
||||
OBJECT(/*model*/ MODEL_CASTLE_GROUNDS_FLAG, /*pos*/ -3213, 3348, -3011, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvCastleFlagWaving),
|
||||
OBJECT(/*model*/ MODEL_CASTLE_GROUNDS_FLAG, /*pos*/ 3213, 3348, -3011, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvCastleFlagWaving),
|
||||
OBJECT(/*model*/ MODEL_CASTLE_GROUNDS_FLAG, /*pos*/ -3835, 3348, -6647, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvCastleFlagWaving),
|
||||
OBJECT(/*model*/ MODEL_CASTLE_GROUNDS_FLAG, /*pos*/ 3835, 3348, -6647, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvCastleFlagWaving),
|
||||
OBJECT(/*model*/ MODEL_CASTLE_GROUNDS_FLAG, /*pos*/ -3213, 3348, -3011, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvCastleFlagWaving),
|
||||
OBJECT(/*model*/ MODEL_CASTLE_GROUNDS_FLAG, /*pos*/ 3213, 3348, -3011, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvCastleFlagWaving),
|
||||
OBJECT(/*model*/ MODEL_CASTLE_GROUNDS_FLAG, /*pos*/ -3835, 3348, -6647, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvCastleFlagWaving),
|
||||
OBJECT(/*model*/ MODEL_CASTLE_GROUNDS_FLAG, /*pos*/ 3835, 3348, -6647, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvCastleFlagWaving),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
static const LevelScript script_func_local_4[] = {
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ -4508, 406, 4400, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ -4408, 406, 4500, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ -4708, 406, 4100, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ -6003, 473, -2621, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ -6003, 473, -2321, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 6543, 461, -617, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 6143, 461, -617, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 5773, 775, -5722, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 5873, 775, -5622, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 5473, 775, -5322, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ -1504, 326, 3196, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ -1204, 326, 3296, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_YOSHI, /*pos*/ 0, 3174, -5625, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvYoshi),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ -4508, 406, 4400, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ -4408, 406, 4500, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ -4708, 406, 4100, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ -6003, 473, -2621, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ -6003, 473, -2321, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 6543, 461, -617, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 6143, 461, -617, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 5773, 775, -5722, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 5873, 775, -5622, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 5473, 775, -5322, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ -1504, 326, 3196, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ -1204, 326, 3296, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvButterfly),
|
||||
OBJECT(/*model*/ MODEL_YOSHI, /*pos*/ 0, 3174, -5625, /*angle*/ 0, 0, 0, /*bhvParam*/ 0, /*bhv*/ bhvYoshi),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
|
@ -104,7 +104,7 @@ const LevelScript level_castle_grounds_entry[] = {
|
|||
LOAD_MIO0 (/*seg*/ 0x08, _common0_mio0SegmentRomStart, _common0_mio0SegmentRomEnd),
|
||||
LOAD_RAW (/*seg*/ 0x0F, _common0_geoSegmentRomStart, _common0_geoSegmentRomEnd),
|
||||
ALLOC_LEVEL_POOL(),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*behParam*/ 0x00000001, /*beh*/ bhvMario),
|
||||
MARIO(/*model*/ MODEL_MARIO, /*bhvParam*/ BPARAM4(0x01), /*bhv*/ bhvMario),
|
||||
JUMP_LINK(script_func_global_1),
|
||||
JUMP_LINK(script_func_global_11),
|
||||
JUMP_LINK(script_func_global_16),
|
||||
|
@ -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*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 0x01, /*destNode*/ 0x03, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
WARP_NODE(/*id*/ WARP_NODE_DEATH, /*destLevel*/ LEVEL_CASTLE_GROUNDS, /*destArea*/ 1, /*destNode*/ WARP_NODE_03, /*flags*/ WARP_NO_CHECKPOINT),
|
||||
JUMP_LINK(script_func_local_1),
|
||||
JUMP_LINK(script_func_local_2),
|
||||
JUMP_LINK(script_func_local_3),
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Reference in a new issue