Merge branch 'decompressed_build' into 'master'

New build system to accommodate future shiftability

See merge request banjo.decomp/banjo-kazooie!43
This commit is contained in:
Banjo Kazooie 2022-11-23 05:56:05 +00:00
commit 2ade0605a9
189 changed files with 4403 additions and 2250 deletions

1
.gitignore vendored
View File

@ -67,7 +67,6 @@ undefined_funcs_auto*
#progress reports
*.csv
symbol_addrs.us.v10.txt
#secret folder
tmp/

6
.gitmodules vendored
View File

@ -1,6 +1,3 @@
[submodule "tools/bk_tools"]
path = tools/bk_tools
url = https://github.com/MittenzHugg/bk_tools.git
[submodule "tools/asm-differ"]
path = tools/asm-differ
url = https://github.com/simonlindholm/asm-differ.git
@ -16,3 +13,6 @@
[submodule "tools/bk_asset_tool"]
path = tools/bk_asset_tool
url = https://github.com/MittenzHugg/bk_asset_tool.git
[submodule "tools/bk_rom_compressor"]
path = tools/bk_rom_compressor
url = https://github.com/MittenzHugg/bk_rom_compressor.git

View File

@ -5,6 +5,8 @@ ENV DEBIAN_FRONTEND=noninteractive
COPY packages.txt /
RUN apt-get update && apt-get install -y $(cat packages.txt)
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
COPY requirements.txt /
RUN python3 -m pip install -r requirements.txt

398
Makefile
View File

@ -18,7 +18,6 @@ ifeq ($(VERSION),jp)
C_VERSION=3
endif
IN_CFLAGS ?= -DCODE2_CODE_CRC2=0 -DCODE2_DATA_CRC2=0
### Tools ###
# System tools
@ -42,12 +41,9 @@ PYTHON := python3
GREP := grep -rl
SPLAT := $(PYTHON) tools/n64splat/split.py
PRINT := printf
PATCH_LIB_MATH := tools/patch_libultra_math
ASM_PROCESSOR_DIR := tools/asm-processor
BK_TOOLS := tools/bk_tools
BK_CRC := tools/bk_crc/bk_crc
BK_INFLATE := $(BK_TOOLS)/bk_inflate_code
BK_DEFLATE := $(BK_TOOLS)/bk_deflate_code
BK_ROM_COMPRESS := tools/bk_rom_compressor/target/release/bk_rom_compress
BK_ROM_DECOMPRESS := tools/bk_rom_compressor/target/release/bk_rom_decompress
BK_ASSET_TOOL := tools/bk_asset_tool/bk_asset_tool
ASM_PROCESSOR := $(PYTHON) $(ASM_PROCESSOR_DIR)/asm_processor.py
SPLAT_INPUTS := $(PYTHON) tools/splat_inputs.py
@ -59,20 +55,6 @@ PROGRESS_READ := $(PYTHON) tools/progress_read.py
# Inputs
OVERLAYS := core1 core2 MM TTC CC BGS FP lair GV CCW RBB MMM SM fight cutscenes
# Creates a list of all the source files for the given overlay (e.g. BGS_C_SRCS)
# Appends that list to OVERLAY_C_FILES
define get_overlay_sources
$(1)_C_SRCS := $(filter $(SRC_ROOT)/$(1)/%,$(ALL_C_SRCS))
$(1)_ASM_SRCS := $(filter $(ASM_ROOT)/$(1)/%,$(ALL_ASM_SRCS))
$(1)_BINS := $(filter $(BIN_ROOT)/$(1)/%,$(ALL_BINS))
OVERLAY_C_SRCS += $$($(1)_C_SRCS)
OVERLAY_ASM_SRCS += $$($(1)_ASM_SRCS)
OVERLAY_BINS += $$($(1)_BINS)
# Overlay inputs
$(1)_NEW_FILES := $$(filter $(BIN_ROOT)/$(1)/%, $(NEW_BINS)) $$(filter $(SRC_ROOT)/$(1)/%, $(NEW_C_SRCS)) $$(filter $(ASM_ROOT)/$(1)/%, $(NEW_ASM_SRCS)) $$(filter $(ASM_ROOT)/data/$(1)/%, $(NEW_ASM_SRCS))
OVERLAY_NEW_FILES += $$($(1)_NEW_FILES)
endef
# Source files
SRC_ROOT := src
ASM_ROOT := asm
@ -84,35 +66,27 @@ NONMATCHING_DIR := $(ASM_ROOT)/$(NONMATCHINGS)
BUILD_ROOT := build
BUILD_DIR := $(BUILD_ROOT)/$(VERSION)
ALL_ASSET_FILES := $(shell find $(ASSET_ROOT) -type f -iname '*.*' 2> /dev/null)
ALL_C_SRCS := $(shell find $(SRC_ROOT) -type f -iname '*.c' 2> /dev/null)
C_SRCS := $(shell find $(SRC_ROOT) -type f -iname '*.c' 2> /dev/null)
BOOT_C_SRCS := $(wildcard $(SRC_ROOT)/done/*.c)
ALL_ASM_SRCS := $(filter-out $(ASM_ROOT)/$(NONMATCHINGS), $(shell find $(ASM_ROOT) -name $(NONMATCHINGS) -prune -o -iname '*.s' 2> /dev/null))
ALL_BINS := $(shell find $(BIN_ROOT) -type f -iname '*.bin' 2> /dev/null)
# Files referenced in the splat files
YAML_CALL := $(SPLAT_INPUTS) $(BASENAME).$(VERSION).yaml $(addprefix $(SUBYAML)/, $(addsuffix .$(VERSION).yaml, $(OVERLAYS)))
YAML_SRCS := $(shell $(SPLAT_INPUTS) $(BASENAME).$(VERSION).yaml $(addprefix $(SUBYAML)/, $(addsuffix .$(VERSION).yaml, $(OVERLAYS))))
# Files referenced in the splat file
YAML_CALL := $(SPLAT_INPUTS) decompressed.$(VERSION).yaml
YAML_SRCS := $(sort $(shell $(SPLAT_INPUTS) decompressed.$(VERSION).yaml))
YAML_C_SRCS := $(filter %.c, $(YAML_SRCS))
YAML_ASM_SRCS := $(filter %.s, $(YAML_SRCS))
YAML_BINS := $(filter %.bin, $(YAML_SRCS))
# Files that need to be extracted
NEW_C_SRCS := $(filter-out $(ALL_C_SRCS), $(YAML_C_SRCS))
NEW_C_SRCS := $(filter-out $(C_SRCS), $(YAML_C_SRCS))
NEW_ASM_SRCS := $(filter-out $(ALL_ASM_SRCS), $(YAML_ASM_SRCS))
NEW_BINS := $(filter-out $(ALL_BINS), $(YAML_BINS))
NEW_FILES := $(NEW_C_SRCS) $(NEW_ASM_SRCS) $(NEW_BINS)
$(foreach overlay,$(OVERLAYS),$(eval $(call get_overlay_sources,$(overlay))))
# Files for the rom itself
MAIN_C_SRCS := $(filter-out $(OVERLAY_C_SRCS),$(ALL_C_SRCS))
MAIN_ASM_SRCS := $(filter-out $(OVERLAY_ASM_SRCS),$(ALL_ASM_SRCS))
MAIN_BINS := $(filter-out $(OVERLAY_BINS),$(ALL_BINS))
# Files that need to be extracted for the rom itself
MAIN_NEW_FILES := $(filter-out $(OVERLAY_NEW_FILES), $(NEW_FILES))
BOOT_ASM_SRCS := $(filter-out asm/core1/%,$(NEW_ASM_SRCS) $(ALL_ASM_SRCS))
# Any source files that have GLOBAL_ASM in them or do not exist before splitting
GLOBAL_ASM_C_SRCS := $(shell $(GREP) GLOBAL_ASM $(SRC_ROOT) </dev/null) $(NEW_C_SRCS)
CORE2_CODE_CRC_C_SRCS := $(shell $(GREP) CORE2_CODE_CRC2 $(SRC_ROOT) </dev/null)
CORE2_DATA_CRC_C_SRCS := $(shell $(GREP) CORE2_DATA_CRC2 $(SRC_ROOT) </dev/null)
# Build folders
C_DIRS := $(sort $(dir $(ALL_C_SRCS) $(NEW_C_SRCS)))
C_DIRS := $(sort $(dir $(C_SRCS) $(NEW_C_SRCS)))
ASM_DIRS := $(sort $(dir $(ALL_ASM_SRCS) $(NEW_ASM_SRCS)))
BIN_DIRS := $(sort $(dir $(ALL_BINS) $(NEW_BINS)))
C_BUILD_DIRS := $(addprefix $(BUILD_DIR)/,$(C_DIRS))
@ -121,43 +95,31 @@ BIN_BUILD_DIRS := $(addprefix $(BUILD_DIR)/,$(BIN_DIRS))
ALL_DIRS := $(C_BUILD_DIRS) $(ASM_BUILD_DIRS) $(BIN_BUILD_DIRS) $(BUILD_DIR)
# Build files
BASEROM := baserom.$(VERSION).z64
C_OBJS := $(addprefix $(BUILD_DIR)/,$(ALL_C_SRCS:.c=.c.o))
GLOBAL_ASM_C_OBJS := $(addprefix $(BUILD_DIR)/,$(GLOBAL_ASM_C_SRCS:.c=.c.o))
CORE2_CODE_CRC_C_OBJS := $(addprefix $(BUILD_DIR)/,$(CORE2_CODE_CRC_C_SRCS:.c=.c.o))
CORE2_DATA_CRC_C_OBJS := $(addprefix $(BUILD_DIR)/,$(CORE2_DATA_CRC_C_SRCS:.c=.c.o))
# TODO remove this when all files in GLOBAL_ASM_C_OBJS are matched
GLOBAL_ASM_C_OBJS := $(filter-out $(CORE2_DATA_CRC_C_OBJS),$(GLOBAL_ASM_C_OBJS))
C_DEPS := $(C_OBJS:.o=.d)
ASM_OBJS := $(addprefix $(BUILD_DIR)/,$(ALL_ASM_SRCS:.s=.s.o) $(NEW_ASM_SRCS:.s=.s.o))
BIN_OBJS := $(addprefix $(BUILD_DIR)/,$(ALL_BINS:.bin=.bin.o) $(NEW_BINS:.bin=.bin.o))
Z64 := $(addprefix $(BUILD_DIR)/,$(BASENAME).$(VERSION).z64)
ELF := $(Z64:.z64=.elf)
LD_SCRIPT := $(BASENAME).ld
BK_BOOT_LD_SCRIPT := bk_boot.ld
OVERLAY_ELFS := $(addprefix $(BUILD_DIR)/,$(addsuffix .elf,$(OVERLAYS)))
OVERLAY_CODE_BINS := $(OVERLAY_ELFS:.elf=.code)
OVERLAY_DATA_BINS := $(OVERLAY_ELFS:.elf=.data)
OVERLAY_BINS := $(addprefix $(BUILD_DIR)/,$(addsuffix .$(VERSION).bin,$(OVERLAYS)))
ASSET_BIN := $(BUILD_DIR)/assets.bin
OVERLAY_RZIPS := $(addprefix $(BIN_ROOT)/,$(addsuffix .$(VERSION).rzip.bin,$(OVERLAYS)))
OVERLAY_RZIP_OUTS := $(addprefix $(BUILD_DIR)/,$(addsuffix .rzip.bin,$(OVERLAYS)))
OVERLAY_RZIP_OBJS := $(addprefix $(BUILD_DIR)/$(BIN_ROOT)/,$(addsuffix .$(VERSION).rzip.bin.o,$(OVERLAYS)))
CRC_OBJS := $(BUILD_DIR)/$(BIN_ROOT)/crc.bin.o
DUMMY_CRC_OBJ := $(BUILD_DIR)/$(BIN_ROOT)/dummy_crc.bin.o
ASSET_OBJS := $(BUILD_DIR)/$(BIN_ROOT)/assets.bin.o
BIN_OBJS := $(filter-out $(OVERLAY_RZIP_OBJS) $(CRC_OBJS) $(ASSET_OBJS),$(BIN_OBJS))
ALL_OBJS := $(C_OBJS) $(ASM_OBJS) $(BIN_OBJS) $(OVERLAY_RZIP_OBJS) $(CRC_OBJS)
SYMBOL_ADDRS := symbol_addrs.$(VERSION).txt
SYMBOL_ADDR_FILES := $(filter-out $(SYMBOL_ADDRS), $(wildcard symbol_addrs.*.$(VERSION).txt))
MIPS3_OBJS := $(BUILD_DIR)/$(SRC_ROOT)/done/ll.c.o $(BUILD_DIR)/$(SRC_ROOT)/core1/done/ll.c.o
# Object files for the rom itself
MAIN_C_OBJS := $(addprefix $(BUILD_DIR)/,$(MAIN_C_SRCS:.c=.c.o))
MAIN_ASM_OBJS := $(addprefix $(BUILD_DIR)/,$(MAIN_ASM_SRCS:.s=.s.o))
MAIN_BIN_OBJS := $(addprefix $(BUILD_DIR)/,$(MAIN_BINS:.bin=.bin.o))
MAIN_OBJS := $(MAIN_C_OBJS) $(MAIN_ASM_OBJS) $(MAIN_BIN_OBJS)
# Includes the build artifacts of any files to be extracted
MAIN_ALL_OBJS := $(MAIN_OBJS) $(addprefix $(BUILD_DIR)/, $(addsuffix .o, $(MAIN_NEW_FILES)))
BASEROM := baserom.$(VERSION).z64
DECOMPRESSED_BASEROM := decompressed.$(VERSION).z64
C_OBJS := $(addprefix $(BUILD_DIR)/,$(C_SRCS:.c=.c.o))
BOOT_C_OBJS := $(addprefix $(BUILD_DIR)/,$(BOOT_C_SRCS:.c=.c.o))
GLOBAL_ASM_C_OBJS := $(addprefix $(BUILD_DIR)/,$(GLOBAL_ASM_C_SRCS:.c=.c.o))
C_DEPS := $(C_OBJS:.o=.d)
ASM_OBJS := $(addprefix $(BUILD_DIR)/,$(ALL_ASM_SRCS:.s=.s.o) $(NEW_ASM_SRCS:.s=.s.o))
BOOT_ASM_OBJS := $(addprefix $(BUILD_DIR)/,$(BOOT_ASM_SRCS:.s=.s.o))
BIN_OBJS := $(addprefix $(BUILD_DIR)/,$(ALL_BINS:.bin=.bin.o) $(NEW_BINS:.bin=.bin.o))
PRELIM_Z64 := $(addprefix $(BUILD_DIR)/,$(BASENAME).$(VERSION).prelim.z64)
PRELIM_ELF := $(PRELIM_Z64:.z64=.elf)
UNCOMPRESSED_Z64 := $(addprefix $(BUILD_DIR)/,$(BASENAME).$(VERSION).uncompressed.z64)
FINAL_Z64 := $(addprefix $(BUILD_DIR)/,$(BASENAME).$(VERSION).z64)
ELF := $(FINAL_Z64:.z64=.elf)
LD_SCRIPT := $(BASENAME).ld
ASSET_BIN := $(BUILD_DIR)/assets.bin
ASSET_OBJS := $(BUILD_DIR)/$(BIN_ROOT)/assets.bin.o
BIN_OBJS := $(filter-out $(ASSET_OBJS),$(BIN_OBJS))
ALL_OBJS := $(C_OBJS) $(ASM_OBJS) $(BIN_OBJS)
SYMBOL_ADDRS := symbol_addrs.$(VERSION).txt
SYMBOL_ADDR_FILES := $(filter-out $(SYMBOL_ADDRS), $(wildcard symbol_addrs.*.$(VERSION).txt))
MIPS3_OBJS := $(BUILD_DIR)/$(SRC_ROOT)/core1/done/ll.c.o
BOOT_MIPS3_OBJS := $(BUILD_DIR)/$(SRC_ROOT)/done/ll.c.o
BOOT_C_OBJS := $(filter-out $(BOOT_MIPS3_OBJS),$(BOOT_C_OBJS))
COMPRESSED_SYMBOLS := $(BUILD_DIR)/compressed_symbols.txt
# Progress files
MAIN_PROG_CSV := progress/progress.bk_boot.csv
@ -168,18 +130,6 @@ OVERLAY_PROG_CSVS := $(addprefix progress/progress., $(addsuffix .csv, $(OVERLAY
OVERLAY_PROG_SVGS := $(addprefix progress/progress_, $(addsuffix .svg, $(OVERLAYS)))
README_MD := README.md
# Creates a list of all the object files for the given overlay
define get_overlay_objects
$(1)_C_OBJS := $(addprefix $(BUILD_DIR)/,$($(1)_C_SRCS:.c=.c.o))
$(1)_ASM_OBJS := $(addprefix $(BUILD_DIR)/,$($(1)_ASM_SRCS:.s=.s.o))
$(1)_BIN_OBJS := $(addprefix $(BUILD_DIR)/,$($(1)_BINS:.bin=.bin.o))
$(1)_OBJS := $$($(1)_C_OBJS) $$($(1)_ASM_OBJS) $$($(1)_BIN_OBJS)
$(1)_ALL_OBJS := $$($(1)_OBJS) $$(addprefix $(BUILD_DIR)/, $$(addsuffix .o, $$($(1)_NEW_FILES)))
OVERLAY_OBJS += $$($(1)_OBJS)
endef
$(foreach overlay,$(OVERLAYS),$(eval $(call get_overlay_objects,$(overlay))))
### Functions ###
# Colorful text printing
@ -210,14 +160,12 @@ endef
# Build tool flags
CFLAGS := -c -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm $(OPT_FLAGS) $(MIPSBIT) -D_FINALROM -DF3DEX_GBI -DVERSION='$(C_VERSION)'
CFLAGS += -woff 649,654,838,807
CFLAGS += $(IN_CFLAGS)
CPPFLAGS := -D_FINALROM -DN_MICRO
INCLUDE_CFLAGS := -I . -I include -I include/2.0L -I include/2.0L/PR
OPT_FLAGS := -O2
MIPSBIT := -mips2
ASFLAGS := -EB -mtune=vr4300 -march=vr4300 -mabi=32 -I include
GCC_ASFLAGS := -c -x assembler-with-cpp -mabi=32 -ffreestanding -mtune=vr4300 -march=vr4300 -mfix4300 -G 0 -O -mno-shared -fno-PIC -mno-abicalls
LDFLAGS_COMMON := -T symbol_addrs.core1.$(VERSION).txt -T symbol_addrs.core2.$(VERSION).txt -T symbol_addrs.global.$(VERSION).txt -T undefined_syms.$(VERSION).txt -T undefined_syms.libultra.txt --no-check-sections --accept-unknown-input-arch
LDFLAGS := -T $(LD_SCRIPT) -Map $(ELF:.elf=.map) --no-check-sections --accept-unknown-input-arch -T undefined_syms.libultra.txt
BINOFLAGS := -I binary -O elf32-tradbigmips
@ -227,50 +175,29 @@ BINOFLAGS := -I binary -O elf32-tradbigmips
all: verify
# Shows progress for all overlays, boot, and total
progress: $(OVERLAY_PROG_CSVS) $(MAIN_PROG_CSV) $(TOTAL_PROG_CSV)
progress: $(OVERLAY_PROG_CSVS) $(MAIN_PROG_CSV) $(TOTAL_PROG_CSV)
@$(foreach overlay,$(OVERLAYS),$(PROGRESS_READ) progress/progress.$(overlay).csv $(VERSION) $(overlay) &&) \
$(PROGRESS_READ) $(MAIN_PROG_CSV) $(VERSION) bk_boot
@$(PROGRESS_READ) $(TOTAL_PROG_CSV) $(VERSION) total
@head -n 21 $(TOTAL_PROG_CSV) | tail -n 1 | head -c -8 | tail -c +32 | xargs -i sed -i "/# banjo*/c\# banjo ({})" $(README_MD)
# Shows progress for a single overlay (e.g. progress-SM)
$(addprefix progress-,$(OVERLAYS)) : progress-% : progress/progress.%.csv
@$(PROGRESS_READ) $< $(VERSION) $*
# Verify that the roms match, also sets up diff_settings
verify: $(Z64)
@$(DIFF) $(BASEROM) $(Z64) > /dev/null && \
verify: $(BASEROM) $(FINAL_Z64)
@$(DIFF) $(BASEROM) $(FINAL_Z64) > /dev/null && \
$(PRINT) "$(YELLOW) _\n _( )_\n [ ]_\n ) _ _)\n [_( )_]\n$(BLUE)$(BASENAME).$(VERSION).z64$(NO_COL): $(GREEN)OK$(NO_COL)\n" || \
$(PRINT) "$(BLUE)$(BASEROM) $(RED)differs$(NO_COL)\n"
@$(PRINT) "def apply(config, args):\n" > diff_settings.py
@$(PRINT) "\tconfig[\"baseimg\"] = \"$(BASEROM)\"\n" >> diff_settings.py
@$(PRINT) "\tconfig[\"myimg\"] = \"$(Z64)\"\n" >> diff_settings.py
@$(PRINT) "\tconfig[\"mapfile\"] = \"$(Z64:.z64=.map)\"\n" >> diff_settings.py
@$(PRINT) "\tconfig[\"source_directories\"] = ['$(SRC_ROOT)', 'include']\n" >> diff_settings.py
@$(PRINT) "\tconfig[\"makeflags\"] = ['-s']\n" >> diff_settings.py
# Musical note print for individual overlays
# Need to figure out how to print this only when building a single overlay
# $(YELLOW) ╒════╕\n │ │\n _│ _│\n └─┘ └─┘\n
# Verify that any given overlay matches, also sets up diff_settings
verify-%: $(BUILD_DIR)/%.rzip.bin $(BIN_ROOT)/%.$(VERSION).rzip.bin $(BUILD_DIR)/%.full progress/progress_%.svg
@$(DIFF) $< $(BIN_ROOT)/$*.$(VERSION).rzip.bin > /dev/null && \
$(PRINT) "$(BLUE)%-10s$(NO_COL): $(GREEN)OK$(NO_COL)\n" "$*" || \
$(PRINT) "$(BLUE)$* $(RED)differs$(NO_COL)\n"
@$(PRINT) "def apply(config, args):\n" > diff_settings.py
@$(PRINT) "\tconfig[\"baseimg\"] = \"$(BUILD_DIR)/$*.$(VERSION).bin\"\n" >> diff_settings.py
@$(PRINT) "\tconfig[\"myimg\"] = \"$(BUILD_DIR)/$*.full\"\n" >> diff_settings.py
@$(PRINT) "\tconfig[\"mapfile\"] = \"$(BUILD_DIR)/$*.map\"\n" >> diff_settings.py
@$(PRINT) "\tconfig[\"source_directories\"] = ['$(SRC_ROOT)/$*', 'include']\n" >> diff_settings.py
@$(PRINT) "\tconfig[\"makeflags\"] = ['TARGET=$*','-s']\n" >> diff_settings.py
$(OVERLAY_PROG_SVGS) : progress/progress_%.svg: progress/progress.%.csv
$(call print1,Creating progress svg for:,$*)
@$(PROGRESS_READ) $< $(VERSION) $*
$(OVERLAY_PROG_CSVS) : progress/progress.%.csv: $(BUILD_DIR)/%.elf
$(OVERLAY_PROG_CSVS) : progress/progress.%.csv: $(ELF)
$(call print1,Calculating progress for:,$*)
@$(PROGRESS) . $(BUILD_DIR)/$*.elf .$* --version $(VERSION) --subcode $* > $@
@$(PROGRESS) . $(ELF) .$* --version $(VERSION) --subcode $* > $@
$(MAIN_PROG_SVG): $(MAIN_PROG_CSV)
$(call print1,Creating progress svg for:,boot)
@ -289,36 +216,6 @@ $(TOTAL_PROG_CSV): $(OVERLAY_PROG_CSVS) $(MAIN_PROG_CSV)
$(call print0,Calculating total progress)
@cat $^ > $@
$(README_MD): $(TOTAL_PROG_SVG)
@head -n 21 $< | tail -n 1 | head -c -8 | tail -c +32 | xargs -i sed -i "/# banjo*/c\# banjo ({})" $@
# Verify that each overlay matches
verify-each: $(addprefix verify-,$(OVERLAYS))
# per-overlay rules
define overlay_rules
# .o -> .elf (overlay)
$(BUILD_DIR)/$(1).elf : $$($(1)_ALL_OBJS) $(1).ld
$(LD) -T $(1).ld -R core2.elf --allow-multiple-definition -Map $(BUILD_DIR)/$(1).map $$(LDFLAGS_COMMON) -T undefined_syms_auto.$(1).$(VERSION).txt -T undefined_funcs_auto.$(1).$(VERSION).txt -o $$@
# split overlay
$(BUILD_DIR)/$(1)_SPLAT_TIMESTAMP : $(SUBYAML)/$(1).$(VERSION).yaml $(BUILD_DIR)/$(1).$(VERSION).bin $(SYMBOL_ADDRS)
$(call print1,Splitting bin:,$$<)
$(SPLAT) $(SUBYAML)/$(1).$(VERSION).yaml
@touch $$@
@touch $(1).ld
# Dummy target to make sure extraction happens before compilation, mainly for extracted asm
$$($(1)_C_SRCS) $$($(1)_ASM_SRCS) $$($(1)_BINS) : | $(BUILD_DIR)/$(1)_SPLAT_TIMESTAMP
@:
# Dummy target to make sure extraction happens before processing extracted files and linking
$$($(1)_NEW_FILES) $(1).ld: $(BUILD_DIR)/$(1)_SPLAT_TIMESTAMP
@:
endef
$(foreach overlay,$(OVERLAYS),$(eval $(call overlay_rules,$(overlay))))
# Additional symbols for core2
$(BUILD_DIR)/core2.elf: LDFLAGS_COMMON = -T symbol_addrs.core1.$(VERSION).txt -T symbol_addrs.core2.$(VERSION).txt -T symbol_addrs.global.$(VERSION).txt -T undefined_syms.$(VERSION).txt -T undefined_syms.libultra.txt --no-check-sections --accept-unknown-input-arch -T level_symbols.$(VERSION).txt
$(BUILD_DIR)/core2.temp.elf: LDFLAGS_COMMON = -T symbol_addrs.core1.$(VERSION).txt -T symbol_addrs.core2.$(VERSION).txt -T symbol_addrs.global.$(VERSION).txt -T undefined_syms.$(VERSION).txt -T undefined_syms.libultra.txt --no-check-sections --accept-unknown-input-arch -T level_symbols.$(VERSION).txt
# mkdir
$(ALL_DIRS) :
$(call print1,Making folder:,$@)
@ -329,39 +226,17 @@ $(BUILD_DIR)/%.s.o: %.s | $(ASM_BUILD_DIRS)
$(call print2,Assembling:,$<,$@)
@$(GCC) $(GCC_ASFLAGS) $(INCLUDE_CFLAGS) -o $@ $<
# .s -> .o (boot)
$(BOOT_ASM_OBJS) : $(BUILD_DIR)/%.s.o : %.s | $(ASM_BUILD_DIRS)
$(call print2,Assembling:,$<,$@)
@$(GCC) $(GCC_ASFLAGS) $(INCLUDE_CFLAGS) -o $@ $<
@$(OBJCOPY) --prefix-symbols=boot_ $@
# .bin -> .o
$(BIN_OBJS) : $(BUILD_DIR)/%.bin.o : %.bin | $(BIN_BUILD_DIRS)
$(call print2,Objcopying:,$<,$@)
@$(OBJCOPY) $(BINOFLAGS) $< $@
# .bin -> .o (overlay)
$(OVERLAY_RZIP_OBJS) : $(BUILD_DIR)/$(BIN_ROOT)/%.$(VERSION).rzip.bin.o : $(BUILD_DIR)/%.rzip.bin
$(call print2,Objcopying:,$<,$@)
@$(OBJCOPY) $(BINOFLAGS) $< $@
$(BUILD_DIR)/bk_boot.full: $(BUILD_DIR)/bk_boot.elf
@mips-linux-gnu-objcopy -I elf32-tradbigmips -O binary --only-section .boot_bk_boot $(BUILD_DIR)/bk_boot.elf $@
$(BUILD_DIR)/crc.bin : $(BUILD_DIR)/bk_boot.full $(BUILD_DIR)/core1.code $(BUILD_DIR)/core1.data $(BK_CRC)
@$(BK_CRC) $(BUILD_DIR)/bk_boot.full > $(BUILD_DIR)/crc.bin
@$(BK_CRC) $(BUILD_DIR)/core1.code >> $(BUILD_DIR)/crc.bin
@$(BK_CRC) $(BUILD_DIR)/core1.data >> $(BUILD_DIR)/crc.bin
# .bin -> .o (overlay crc check)
$(CRC_OBJS) : $(BUILD_DIR)/crc.bin
$(call print2,Objcopying:,$<,$@)
@$(OBJCOPY) $(BINOFLAGS) $< $@
# Creates a dummy crc file of 32 bytes to use in the initial link
$(BUILD_DIR)/dummy_crc.bin:
$(call print1,Creating dummy crc file:$@)
truncate -s 32 $@
# .bin -> .o (dummy crc)
$(DUMMY_CRC_OBJ) : $(BUILD_DIR)/dummy_crc.bin
$(call print2,Objcopying:,$<,$@)
@$(OBJCOPY) $(BINOFLAGS) $< $@
# .c -> .o
$(BUILD_DIR)/%.c.o : %.c | $(C_BUILD_DIRS)
$(call print2,Compiling:,$<,$@)
@ -381,113 +256,38 @@ $(GLOBAL_ASM_C_OBJS) : $(BUILD_DIR)/%.c.o : %.c | $(C_BUILD_DIRS)
@$(ASM_PROCESSOR) $(OPT_FLAGS) $< --post-process $@ \
--assembler "$(AS) $(ASFLAGS)" --asm-prelude include/prelude.s
# .c -> .o (boot)
$(BOOT_C_OBJS) : $(BUILD_DIR)/%.c.o : %.c | $(C_BUILD_DIRS)
$(call print2,Compiling:,$<,$@)
@$(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDE_CFLAGS) $(OPT_FLAGS) $(MIPSBIT) -o $@ $<
mips-linux-gnu-strip $@ -N asdasdasasdasd
$(OBJCOPY) --prefix-symbols=boot_ $@
$(OBJCOPY) --strip-unneeded $@
# .c -> .o (mips3, boot)
$(BOOT_MIPS3_OBJS) : $(BUILD_DIR)/%.c.o : %.c | $(C_BUILD_DIRS)
$(call print2,Compiling:,$<,$@)
@$(CC) -c -32 $(CFLAGS) $(CPPFLAGS) $(INCLUDE_CFLAGS) $(OPT_FLAGS) $(LOOP_UNROLL) $(MIPSBIT) -o $@ $<
@tools/set_o32abi_bit.py $@
$(OBJCOPY) --prefix-symbols=boot_ $@
$(OBJCOPY) --strip-unneeded $@
# Split baserom
$(BUILD_DIR)/SPLAT_TIMESTAMP: $(BASENAME).$(VERSION).yaml $(SYMBOL_ADDRS) | $(BUILD_DIR)
$(BUILD_DIR)/SPLAT_TIMESTAMP: decompressed.$(VERSION).yaml $(SYMBOL_ADDRS) $(DECOMPRESSED_BASEROM) | $(BUILD_DIR)
$(call print1,Splitting rom:,$<)
@$(SPLAT) decompressed.$(VERSION).yaml
@touch $@
@$(SPLAT) $(BASENAME).$(VERSION).yaml
@touch $(LD_SCRIPT)
# Dummy target to make the LD script and overlay rzips depend on splat being run
# without causing it to be rerun once for every overlay
# Bin files are also dependent on the splat timestamp since they get overwritten on resplit
$(MAIN_NEW_FILES) $(LD_SCRIPT) $(MAIN_BINS) : $(BUILD_DIR)/SPLAT_TIMESTAMP
$(NEW_FILES) $(LD_SCRIPT) $(ALL_BINS) : $(BUILD_DIR)/SPLAT_TIMESTAMP
@:
# Dummy target to make sure extraction happens before compilation, mainly for extracted asm
$(MAIN_C_SRCS) $(MAIN_ASM_SRCS) : | $(BUILD_DIR)/SPLAT_TIMESTAMP
$(C_SRCS) $(ASM_SRCS) : | $(BUILD_DIR)/SPLAT_TIMESTAMP
@:
# .rzip.bin -> .bin
$(OVERLAY_BINS) : $(BUILD_DIR)/%.$(VERSION).bin : $(BIN_ROOT)/%.$(VERSION).rzip.bin $(BK_INFLATE) | $(BUILD_DIR)
$(call print1,Decompressing rzip:,$<)
@$(BK_INFLATE) $< $@
# Special rules to handle core2 code checksumming
ifneq ($(CORE2_CODE_CRC_C_OBJS),)
CORE2_TEMP_LD := core2.temp.ld
CORE2_CODE_CRC_C_TEMP_OBJS := $(CORE2_CODE_CRC_C_OBJS:.c.o=.c.o_)
core2_NON_CRC_OBJS := $(filter-out $(CORE2_CODE_CRC_C_OBJS),$(core2_ALL_OBJS))
# core2.ld -> core2.temp.ld
$(CORE2_TEMP_LD) : core2.ld
$(call print0,Creating linker script for initial core2 linking step)
@$(CP) $< $@
$(foreach obj, $(CORE2_CODE_CRC_C_OBJS), sed -i 's:$(obj):$(obj)_:g' $@)
# core2 .c -> .o with zero for core2 code CRC
$(CORE2_CODE_CRC_C_TEMP_OBJS) : $(BUILD_DIR)/%.c.o_ : %.c | $(C_BUILD_DIRS)
$(call print2,Compiling temp file:,$<,$@)
@$(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDE_CFLAGS) $(OPT_FLAGS) $(MIPSBIT) -o $@ $<
# core2 objects with zero for code CRC -> core2.temp.elf
$(BUILD_DIR)/core2.temp.elf : $(core2_NON_CRC_OBJS) $(CORE2_TEMP_LD) $(CORE2_CODE_CRC_C_TEMP_OBJS)
$(call print1,Linking elf:,$@)
@$(LD) -T $(CORE2_TEMP_LD) -Map $(BUILD_DIR)/core2.map $(LDFLAGS_COMMON) -T undefined_syms_auto.core2.$(VERSION).txt -T undefined_funcs_auto.core2.$(VERSION).txt -o $@
$(BUILD_DIR)/core2.temp.full : $(BUILD_DIR)/core2.temp.elf
@$(OBJCOPY) -I elf32-tradbigmips -O binary $< $@
# core2.temp.elf -> core2.temp.code
$(BUILD_DIR)/core2.temp.code : $(BUILD_DIR)/core2.temp.full $(BUILD_DIR)/core2.temp.elf
$(call print2,Converting initial core2 code:,$<,$@)
@head -c $(shell {\
text_offset=0x$$(nm $(BUILD_DIR)/core2.temp.elf | grep core2_TEXT_START | head -c 8) ;\
data_offset=0x$$(nm $(BUILD_DIR)/core2.temp.elf | grep core2_DATA_START | head -c 8) ;\
echo $$(($$data_offset - $$text_offset)) ;\
}) $< > $@
# core2 code -> core2 code crc
$(BUILD_DIR)/core2.code.crc : $(BUILD_DIR)/core2.temp.code $(BK_CRC)
$(call print0,Calculating core2 code CRC)
@$(BK_CRC) -D CORE2_CODE $< > $@
# core2 .c -> .o with correct core2 code CRC
$(CORE2_CODE_CRC_C_OBJS) : $(BUILD_DIR)/%.c.o : %.c $(BUILD_DIR)/core2.code.crc | $(C_BUILD_DIRS)
$(call print2,Compiling:,$<,$@)
@$(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDE_CFLAGS) $(OPT_FLAGS) $(MIPSBIT) $(shell cat $(BUILD_DIR)/core2.code.crc) -o $@ $<
endif
# core2 data -> core2 data CRC
$(BUILD_DIR)/core2.data.crc : $(BUILD_DIR)/core2.data $(BK_CRC)
$(call print0,Calculating core2 data CRC)
@$(BK_CRC) -D CORE2_DATA $< > $@
# core1 .c -> .o with correct core2 data CRC
$(CORE2_DATA_CRC_C_OBJS) : $(BUILD_DIR)/%.o : % $(BUILD_DIR)/core2.data.crc | $(C_BUILD_DIRS)
$(call print2,Compiling file with core2 data CRC (with ASM Processor):,$<,$@)
@$(ASM_PROCESSOR) $(OPT_FLAGS) $< > $(BUILD_DIR)/$<
@$(CC) -32 $(CFLAGS) $(CPPFLAGS) $(INCLUDE_CFLAGS) $(OPT_FLAGS) $(MIPSBIT) $(shell cat $(BUILD_DIR)/core2.data.crc) -o $@ $(BUILD_DIR)/$<
@$(ASM_PROCESSOR) $(OPT_FLAGS) $< --post-process $@ \
--assembler "$(AS) $(ASFLAGS)" --asm-prelude include/prelude.s
# .elf -> .code
$(OVERLAY_CODE_BINS) : $(BUILD_DIR)/%.code : $(BUILD_DIR)/%.full $(BUILD_DIR)/%.elf
$(call print2,Converting overlay code:,$<,$@)
@head -c $(shell {\
text_offset=0x$$(nm $(BUILD_DIR)/$*.elf | grep $*_TEXT_START | head -c 8) ;\
data_offset=0x$$(nm $(BUILD_DIR)/$*.elf | grep $*_DATA_START | sort -r | head -c 8) ;\
echo $$(($$data_offset - $$text_offset)) ;\
}) $< > $@
# @$(OBJCOPY) -I elf32-tradbigmips -O binary --only-section .$*_code --only-section .$*_mips3 $< $@
# .elf -> .data
$(OVERLAY_DATA_BINS) : $(BUILD_DIR)/%.data : $(BUILD_DIR)/%.full $(BUILD_DIR)/%.elf
$(call print2,Converting overlay data:,$<,$@)
@tail -c +$(shell {\
text_offset=0x$$(nm $(BUILD_DIR)/$*.elf | grep $*_TEXT_START | head -c 8) ;\
data_offset=0x$$(nm $(BUILD_DIR)/$*.elf | grep $*_DATA_START | sort -r | head -c 8) ;\
echo $$(($$data_offset - $$text_offset + 1)) ;\
}) $< > $@
# @$(OBJCOPY) -I elf32-tradbigmips -O binary --only-section .$*_data --only-section .*_data_* $< $@
# .elf -> .full
$(BUILD_DIR)/%.full : $(BUILD_DIR)/%.elf
@$(OBJCOPY) -I elf32-tradbigmips -O binary $< $@
# .data + .code -> .rzip.bin
$(BUILD_DIR)/%.rzip.bin : $(BUILD_DIR)/%.code $(BUILD_DIR)/%.data $(BK_DEFLATE)
$(call print1,Compressing overlay:,$@)
@cd $(BK_TOOLS) && ../../$(BK_DEFLATE) ../../$@ ../../$(BUILD_DIR)/$*.code ../../$(BUILD_DIR)/$*.data
# .bin -> .yaml
$(ASSET_ROOT)/assets.yaml : $(BIN_ROOT)/assets.bin $(BK_ASSET_TOOL)
$(call print1,Extracting Assets:,$@)
@ -509,53 +309,52 @@ $(ASSET_OBJS): $(ASSET_BIN)
$(call print2,Objcopying:,$<,$@)
@$(OBJCOPY) $(BINOFLAGS) $< $@
# .o -> .elf (game)
$(ELF): $(MAIN_ALL_OBJS) $(LD_SCRIPT) $(OVERLAY_RZIP_OBJS) $(addprefix $(BUILD_DIR)/, $(addsuffix .full, $(OVERLAYS))) $(ASSET_OBJS)
# decompress baserom
$(DECOMPRESSED_BASEROM): $(BASEROM) $(BK_ROM_DECOMPRESS)
@$(BK_ROM_DECOMPRESS) $< $@
# .o -> .elf (dummy symbols)
$(PRELIM_ELF): $(ALL_OBJS) $(LD_SCRIPT) $(ASSET_OBJS)
$(call print1,Linking elf:,$@)
@$(LD) $(LDFLAGS) -T undefined_syms_auto.$(VERSION).txt -o $@
@$(LD) $(LDFLAGS) -T undefined_syms_auto.$(VERSION).txt -T undefined_syms.$(VERSION).txt -T rzip_dummy_addrs.txt -o $@
$(BK_BOOT_LD_SCRIPT): $(LD_SCRIPT)
sed 's|$(CRC_OBJS)|$(DUMMY_CRC_OBJ)|' $< > $@
# .o -> .elf (game)
$(BUILD_DIR)/bk_boot.elf: $(DUMMY_CRC_OBJ) $(filter-out $(CRC_OBJS),$(MAIN_ALL_OBJS)) $(BK_BOOT_LD_SCRIPT) $(OVERLAY_RZIP_OBJS) $(addprefix $(BUILD_DIR)/, $(addsuffix .full, $(OVERLAYS)))
$(call print1,Linking elf:,$@)
@$(LD) -T $(BK_BOOT_LD_SCRIPT) -Map $(ELF:.elf=.map) --no-check-sections --accept-unknown-input-arch -T undefined_syms.libultra.txt -T undefined_syms_auto.$(VERSION).txt -o $@
# .elf -> .z64
$(Z64) : $(ELF) $(OVERLAY_PROG_SVGS) $(MAIN_PROG_SVG) $(TOTAL_PROG_SVG) $(README_MD)
# .elf -> .z64 (dummy symbols)
$(PRELIM_Z64) : $(PRELIM_ELF)
$(call print1,Creating z64:,$@)
@$(OBJCOPY) $< $@ -O binary $(OCOPYFLAGS)
$(BK_TOOLS)/gzip-1.2.4/gzip: $(BK_TOOLS)/gzip-1.2.4/Makefile
@$(CD) $(BK_TOOLS)/gzip-1.2.4 && $(MAKE) gzip
# generate compressed ROM symbols
$(COMPRESSED_SYMBOLS): $(PRELIM_ELF) $(PRELIM_Z64) $(BK_ROM_COMPRESS)
@$(BK_ROM_COMPRESS) --symbols $(PRELIM_ELF) $(PRELIM_Z64) $@
$(BK_TOOLS)/gzip-1.2.4/Makefile:
@$(CD) $(BK_TOOLS)/gzip-1.2.4 && ./configure
# .o -> .elf (game)
$(ELF): $(ALL_OBJS) $(LD_SCRIPT) $(ASSET_OBJS) $(COMPRESSED_SYMBOLS)
$(call print1,Linking elf:,$@)
@$(LD) $(LDFLAGS) -T undefined_syms_auto.$(VERSION).txt -T undefined_syms.$(VERSION).txt -T $(COMPRESSED_SYMBOLS) -o $@
# .elf -> .z64 (uncompressed)
$(UNCOMPRESSED_Z64) : $(ELF)
$(call print1,Creating z64:,$@)
@$(OBJCOPY) $< $@ -O binary $(OCOPYFLAGS)
# .z64 (uncompressed) + .elf -> .z64 (final)
$(FINAL_Z64) : $(UNCOMPRESSED_Z64) $(ELF) $(BK_ROM_COMPRESS)
@$(BK_ROM_COMPRESS) $(ELF) $(UNCOMPRESSED_Z64) $@
$(BK_ASSET_TOOL):
@$(CD) tools/bk_asset_tool && cargo build --release
@$(CP) tools/bk_asset_tool/target/release/bk_asset_tool $@
# Build tools
$(BK_TOOLS)/%: $(BK_TOOLS)/gzip-1.2.4/gzip
$(call print1,Compiling build tool:,$@)
@$(CD) $(BK_TOOLS) && $(MAKE) $*
$(BK_ROM_COMPRESS):
@$(CD) tools/bk_rom_compressor && cargo build --release --bin bk_rom_compress
$(BK_CRC) :
g++ $@.cpp -o $@
# Combined symbol addresses file
$(SYMBOL_ADDRS): $(SYMBOL_ADDR_FILES)
$(call print0,Combining symbol address files)
@$(CAT) symbol_addrs.*.$(VERSION).txt > $@
# Shorthand rules for each overlay (e.g. SM)
$(OVERLAYS): %: verify-%
$(BK_ROM_DECOMPRESS):
@$(CD) tools/bk_rom_compressor && cargo build --release --bin bk_rom_decompress
clean:
$(call print0,Cleaning build artifacts)
@$(RM) -rf $(BUILD_ROOT)
@$(RM) -rf $(DECOMPRESSED_BASEROM)
@$(RM) -rf $(BIN_ROOT)
@$(RM) -rf $(NONMATCHING_DIR)
@$(RM) -rf $(ASM_ROOT)/*.s
@ -564,7 +363,6 @@ clean:
@$(RM) -rf $(ASM_ROOT)/core1/os
@$(RM) -f undefined_syms_auto* undefined_funcs_auto*
@$(RM) -f *.ld
@$(RM) -f $(SYMBOL_ADDRS)
# Per-file flag definitions
build/$(VERSION)/src/core1/io/%.c.o: OPT_FLAGS = -O1

View File

@ -59,6 +59,8 @@ Ubuntu 18.04 or higher.
```sh
sudo apt-get update && sudo apt-get install -y $(cat packages.txt)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
python3 -m pip install -r requirements.txt
```

View File

@ -195,6 +195,8 @@ segments:
type: bin #type: rzip_code/overlay #compressed code
start: 0xFD6190
#vram: 0x803863F0
- [0xFDAA10, bin, emptyLvl.us.v10.rzip]
- name: emptyLvl.us.v10.rzip
type: bin #type: rzip_code/overlay #compressed code
start: 0xFD6190
- [0xFDAA30, bin, trailer] # 0xff to end
- [0x1000000] # end of ROM

2235
decompressed.us.v10.yaml Normal file

File diff suppressed because it is too large Load Diff

255
first_diff.py Executable file
View File

@ -0,0 +1,255 @@
#!/usr/bin/env python3
import os.path
import argparse
from subprocess import check_call
parser = argparse.ArgumentParser(
description="Find the first difference(s) between the built ROM and the base ROM."
)
parser.add_argument(
"-c",
"--count",
type=int,
default=5,
help="find up to this many instruction difference(s)",
)
parser.add_argument(
"-d",
"--diff",
dest="diff_args",
nargs="?",
action="store",
default=False,
const="prompt",
help="run diff.py on the result with the provided arguments"
)
parser.add_argument(
"-m", "--make", help="run ninja before finding difference(s)", action="store_true"
)
args = parser.parse_args()
diff_count = args.count
if args.make:
check_call(["make"])
baseimg = f"decompressed.us.v10.z64"
basemap = f"decompressed.map"
myimg = f"build/us.v10/banjo.us.v10.z64"
mymap = f"build/us.v10/banjo.us.v10.map"
if not os.path.isfile(baseimg):
print(f"{baseimg} must exist.")
exit(1)
if not os.path.isfile(myimg) or not os.path.isfile(mymap):
print(f"{myimg} and {mymap} must exist.")
exit(1)
mybin = open(myimg, "rb").read()
basebin = open(baseimg, "rb").read()
# if len(mybin) != len(basebin):
# print("Modified ROM has different size...")
# exit(1)
if mybin == basebin:
print("No differences!")
exit(0)
def search_rom_address(target_addr):
ram_offset = None
prev_ram = 0
prev_rom = 0
prev_sym = "<start of rom>"
cur_file = "<no file>"
prev_file = cur_file
prev_line = ""
with open(mymap) as f:
for line in f:
if "load address" in line:
# Ignore .bss sections since we're looking for a ROM address
if ".bss" in line or ".bss" in prev_line:
ram_offset = None
continue
ram = int(line[16 : 16 + 18], 0)
rom = int(line[59 : 59 + 18], 0)
ram_offset = ram - rom
continue
prev_line = line
if (
ram_offset is None
or "=" in line
or "*fill*" in line
or " 0x" not in line
):
continue
ram = int(line[16 : 16 + 18], 0)
rom = ram - ram_offset
sym = line.split()[-1]
if "0x" in sym:
ram_offset = None
continue
if "/" in sym:
cur_file = sym
continue
if rom > target_addr:
return f"{prev_sym} (RAM 0x{prev_ram:X}, ROM 0x{prev_rom:X}, {prev_file})"
prev_ram = ram
prev_rom = rom
prev_sym = sym
prev_file = cur_file
return "at end of rom?"
def parse_map(map_fname):
ram_offset = None
cur_file = "<no file>"
syms = {}
prev_sym = None
prev_line = ""
with open(map_fname) as f:
for line in f:
if "load address" in line:
ram = int(line[16 : 16 + 18], 0)
rom = int(line[59 : 59 + 18], 0)
ram_offset = ram - rom
continue
prev_line = line
if (
ram_offset is None
or "=" in line
or "*fill*" in line
or " 0x" not in line
):
continue
ram = int(line[16 : 16 + 18], 0)
rom = ram - ram_offset
sym = line.split()[-1]
if "0x" in sym:
ram_offset = None
continue
elif "/" in sym:
cur_file = sym
continue
syms[sym] = (rom, cur_file, prev_sym, ram)
prev_sym = sym
return syms
def map_diff():
map1 = parse_map(mymap)
map2 = parse_map(basemap)
min_ram = None
found = None
for sym, addr in map1.items():
if sym not in map2:
continue
if addr[0] != map2[sym][0]:
if min_ram is None or addr[0] < min_ram:
min_ram = addr[0]
found = (sym, addr[1], addr[2])
if min_ram is None:
return False
else:
print(
f"Map appears to have shifted just before {found[0]} ({found[1]}) -- in {found[2]}?"
)
if found[2] is not None and found[2] not in map2:
print(
f"(Base map file {basemap} out of date due to new or renamed symbols, so result may be imprecise.)"
)
return True
def hexbytes(bs):
return ":".join("{:02X}".format(c) for c in bs)
found_instr_diff = []
map_search_diff = []
diffs = 0
shift_cap = 1000
for i in range(24, len(mybin), 4):
# (mybin[i:i+4] != basebin[i:i+4], but that's slightly slower in CPython...)
if diffs <= shift_cap and (
mybin[i] != basebin[i]
or mybin[i + 1] != basebin[i + 1]
or mybin[i + 2] != basebin[i + 2]
or mybin[i + 3] != basebin[i + 3]
):
if diffs == 0:
print(f"First difference at ROM addr 0x{i:X}, {search_rom_address(i)}")
print(
f"Bytes: {hexbytes(mybin[i : i + 4])} vs {hexbytes(basebin[i : i + 4])}"
)
diffs += 1
if (
len(found_instr_diff) < diff_count
and mybin[i] >> 2 != basebin[i] >> 2
and not search_rom_address(i) in map_search_diff
):
found_instr_diff.append(i)
map_search_diff.append(search_rom_address(i))
if diffs == 0:
print("No differences but ROMs differ?")
exit()
if len(found_instr_diff) > 0:
for i in found_instr_diff:
print(f"Instruction difference at ROM addr 0x{i:X}, {search_rom_address(i)}")
print(
f"Bytes: {hexbytes(mybin[i : i + 4])} vs {hexbytes(basebin[i : i + 4])}"
)
print()
definite_shift = diffs > shift_cap
if definite_shift:
print(f"Over {shift_cap} differing words, must be a shifted ROM.")
else:
print(f"{diffs} differing word(s).")
if diffs > 100:
if not os.path.isfile(basemap):
print(
f"To find ROM shifts, copy a clean .map file to {basemap} and rerun this script."
)
elif not map_diff():
print(f"No ROM shift{' (!?)' if definite_shift else ''}")
if args.diff_args:
if len(found_instr_diff) < 1:
print(f"No instruction difference to run diff.py on")
exit()
diff_sym = search_rom_address(found_instr_diff[0]).split()[0]
if args.diff_args == "prompt":
diff_args = input("Call diff.py with which arguments? ") or "--"
else:
diff_args = args.diff_args
if diff_args[0] != "-":
diff_args = "-" + diff_args
check_call(
[
"python3",
"diff.py",
diff_args,
diff_sym,
]
)

View File

@ -77,7 +77,7 @@ extern "C" {
#define ERR_OSCREATEPIMANAGER 35
#define ERR_OSVIGETCURRENTMODE 36
#define ERR_OSVIGETCURRENTFRAMEBUFFER 37
#define ERR_OSVIGETNEXTFRAMEBUFFER 38
#define ERR_osViGetNextFramebuffer 38
#define ERR_OSVISETXSCALE_VALUE 39
#define ERR_OSVISETXSCALE_VIMGR 40
#define ERR_OSVISETYSCALE_VALUE 41

View File

@ -155,7 +155,7 @@ void _n_collectPVoices();
s32 _n_timeToSamples(s32 micros);
ALMicroTime _n_samplesToTime(s32 samples);
int n_alEnvmixerResampleParam(N_PVoice *v, s32 paramId, void* param);
int n_alEnvmixerParam(N_PVoice *v, s32 paramId, void* param);
//n_alLoadParam
int n_alLoadParam(N_PVoice *v, s32 paramId, void* param);
#endif

View File

@ -10,28 +10,28 @@
#define MAX(a,b) (((a)>(b))?(a):(b))
#endif
ALVoiceState *__mapVoice(ALSeqPlayer *, u8, u8, u8);
void __unmapVoice(ALSeqPlayer *seqp, ALVoice *voice);
char __voiceNeedsNoteKill(ALSeqPlayer *seqp, ALVoice *voice, ALMicroTime killTime); /* sct 1/5/96 */
ALVoiceState *__n_mapVoice(ALSeqPlayer *, u8, u8, u8);
void __n_unmapVoice(ALSeqPlayer *seqp, ALVoice *voice);
char __n_voiceNeedsNoteKill(ALSeqPlayer *seqp, ALVoice *voice, ALMicroTime killTime); /* sct 1/5/96 */
ALVoiceState *__lookupVoice(ALSeqPlayer *, u8, u8);
ALVoiceState *__n_lookupVoice(ALSeqPlayer *, u8, u8);
ALSound *__lookupSound(ALSeqPlayer *, u8, u8, u8);
ALSound *__lookupSoundQuick(ALSeqPlayer *, u8, u8, u8);
ALSound *__n_lookupSoundQuick(ALSeqPlayer *, u8, u8, u8);
s16 __vsVol(ALVoiceState *voice, ALSeqPlayer *seqp);
ALMicroTime __vsDelta(ALVoiceState *voice, ALMicroTime t);
ALPan __vsPan(ALVoiceState *voice, ALSeqPlayer *seqp);
s16 __n_vsVol(ALVoiceState *voice, ALSeqPlayer *seqp);
ALMicroTime __n_vsDelta(ALVoiceState *voice, ALMicroTime t);
ALPan __n_vsPan(ALVoiceState *voice, ALSeqPlayer *seqp);
void __initFromBank(ALSeqPlayer *seqp, ALBank *b);
void __initChanState(ALSeqPlayer *seqp);
void __n_initFromBank(ALSeqPlayer *seqp, ALBank *b);
void __n_initChanState(ALSeqPlayer *seqp);
void __resetPerfChanState(ALSeqPlayer *seqp, s32 chan);
void __setInstChanState(ALSeqPlayer *seqp, ALInstrument *inst, s32 chan);
void __n_setInstChanState(ALSeqPlayer *seqp, ALInstrument *inst, s32 chan);
void __seqpPrintVoices(ALSeqPlayer *);
void __seqpReleaseVoice(ALSeqPlayer *seqp, ALVoice *voice,
void __n_seqpReleaseVoice(ALSeqPlayer *seqp, ALVoice *voice,
ALMicroTime deltaTime);
void __seqpStopOsc(ALSeqPlayer *seqp, ALVoiceState *vs);
void __n_seqpStopOsc(ALSeqPlayer *seqp, ALVoiceState *vs);
void __postNextSeqEvent(ALSeqPlayer *seqp); /* sct 11/7/95 */

View File

@ -3,6 +3,7 @@ build-essential
cmake
gcc-mips-linux-gnu
less
curl
libglib2.0-0
libssl-dev
python3

32
rzip_dummy_addrs.txt Normal file
View File

@ -0,0 +1,32 @@
boot_core1_us_v10_rzip_ROM_START = 0xF19250;
boot_core1_us_v10_rzip_ROM_END = 0xF37F90;
boot_core2_us_v10_rzip_ROM_START = 0xF37F90;
boot_core2_us_v10_rzip_ROM_END = 0xFA3FD0;
boot_CC_us_v10_rzip_ROM_START = 0xFA3FD0;
boot_CC_us_v10_rzip_ROM_END = 0xFA5F50;
boot_MMM_us_v10_rzip_ROM_START = 0xFA5F50;
boot_MMM_us_v10_rzip_ROM_END = 0xFA9150;
boot_GV_us_v10_rzip_ROM_START = 0xFA9150;
boot_GV_us_v10_rzip_ROM_END = 0xFAE860;
boot_TTC_us_v10_rzip_ROM_START = 0xFAE860;
boot_TTC_us_v10_rzip_ROM_END = 0xFB24A0;
boot_MM_us_v10_rzip_ROM_START = 0xFB24A0;
boot_MM_us_v10_rzip_ROM_END = 0xFB44E0;
boot_BGS_us_v10_rzip_ROM_START = 0xFB44E0;
boot_BGS_us_v10_rzip_ROM_END = 0xFB9A30;
boot_RBB_us_v10_rzip_ROM_START = 0xFB9A30;
boot_RBB_us_v10_rzip_ROM_END = 0xFBEBE0;
boot_FP_us_v10_rzip_ROM_START = 0xFBEBE0;
boot_FP_us_v10_rzip_ROM_END = 0xFC4810;
boot_CCW_us_v10_rzip_ROM_START = 0xFD6190;
boot_CCW_us_v10_rzip_ROM_END = 0xFDAA10;
boot_SM_us_v10_rzip_ROM_START = 0xFC4810;
boot_SM_us_v10_rzip_ROM_END = 0xFC6F20;
boot_cutscenes_us_v10_rzip_ROM_START = 0xFC6F20;
boot_cutscenes_us_v10_rzip_ROM_END = 0xFC9150;
boot_lair_us_v10_rzip_ROM_START = 0xFC9150;
boot_lair_us_v10_rzip_ROM_END = 0xFD0420;
boot_fight_us_v10_rzip_ROM_START = 0xFD0420;
boot_fight_us_v10_rzip_ROM_END = 0xFD6190;
boot_emptyLvl_us_v10_rzip_ROM_START = 0xFDAA10;
boot_emptyLvl_us_v10_rzip_ROM_END = 0xFDAA30;

View File

@ -218,7 +218,7 @@ void func_80387FD4(Actor *this){
}
}
void bgs_func_803885DC(void){
void BGS_func_803885DC(void){
s32 i;
for(i = 0; i<5; i++)
bgs_D_803907B8[i] = 0;

View File

@ -33,7 +33,7 @@ ActorInfo D_80390690 = {
f32 D_803906B4[3] = {0.0f, 0.0f, 0.0f};
/* .code */
bool func_803863F0(Actor *this, f32 arg1[3], s32 arg2){
bool BGS_func_803863F0(Actor *this, f32 arg1[3], s32 arg2){
ActorLocal_Flibbit *local = (ActorLocal_Flibbit *)&this->local;
@ -73,7 +73,7 @@ bool func_80386564(Actor *this){
sp30[1] = sp3C[1] + this->position_y;
sp30[2] = sp3C[2] + this->position_z;
if(func_80329210(this, sp30))
return func_803863F0(this, sp30, 1);
return BGS_func_803863F0(this, sp30, 1);
}
}
return 0;
@ -109,7 +109,7 @@ s32 func_803866A4(Actor *this) {
sp3C[2] = (f32) local->unkE[2];
}
if (func_80329210(this, sp3C) != 0) {
return func_803863F0(this, sp3C, 0);
return BGS_func_803863F0(this, sp3C, 0);
}
}
return 0;
@ -143,7 +143,7 @@ bool func_8038686C(Actor *this) {
sp68[1] += this->position[1];
sp68[2] += this->position[2];
if (func_80329210(this, sp68)) {
return func_803863F0(this, sp68, 0);
return BGS_func_803863F0(this, sp68, 0);
}
}
return FALSE;
@ -242,7 +242,7 @@ void func_80386AEC(Actor *this, s32 next_state) {
}
void func_80386E30(ActorMarker *this, ActorMarker *other){
void BGS_func_80386E30(ActorMarker *this, ActorMarker *other){
Actor *thisActor = marker_getActor(this);
if(thisActor->state < 6){
func_80386AEC(thisActor, 4);
@ -325,7 +325,7 @@ void chflibbit_update(Actor *this){
if(!this->unk16C_4){
this->unk16C_4 = TRUE;
marker_setCollisionScripts(this->marker, func_80386E30, func_80386E70, func_80386EB0);
marker_setCollisionScripts(this->marker, BGS_func_80386E30, func_80386E70, func_80386EB0);
local->unk1C[0] = randf2(-2.0f, -1.0f);
local->unk1C[1] = randf2(-2.0f, -1.0f);

View File

@ -89,7 +89,7 @@ void func_8038BB40(ActorMarker * arg0){
}
}
void func_8038BBA0(Actor *this, s32 arg1){
void BGS_func_8038BBA0(Actor *this, s32 arg1){
ActorLocal_MrVile *local;
local = (ActorLocal_MrVile *)&this->local;
@ -138,7 +138,7 @@ void func_8038BD84(Actor *this){
local->unk28[0] = 0.0f;
local->unk28[1] = 0.0f;
local->unk28[2] = 0.0f;
func_8038BBA0(this, 101);
BGS_func_8038BBA0(this, 101);
}
void func_8038BDD4(Actor *this) {
@ -200,26 +200,26 @@ void func_8038C0C8(Actor * this, s32 next_state){
local = (ActorLocal_MrVile *)&this->local;
if(next_state == 1)
func_8038BBA0(this, 101);
BGS_func_8038BBA0(this, 101);
if(next_state == 2)
func_8038BBA0(this, 101);
BGS_func_8038BBA0(this, 101);
if(next_state == 3)
func_8038BBA0(this, 102);
BGS_func_8038BBA0(this, 102);
if(next_state == 4)
func_8038BBA0(this, 102);
BGS_func_8038BBA0(this, 102);
if(next_state == 5){
local->target_position[0] = local->target_position[1] = local->target_position[2] = 0.0f;
func_8038BBA0(this, 102);
BGS_func_8038BBA0(this, 102);
}
if(next_state == 6){
local->target_position[0] = local->target_position[1] = local->target_position[2] = 0.0f;
local->unk24 = 300.0f;
func_8038BBA0(this, 102);
BGS_func_8038BBA0(this, 102);
}
this->state = next_state;
@ -269,7 +269,7 @@ bool func_8038C2A8(ActorMarker *marker) {
}
bool func_8038C338(ActorMarker *marker){
bool BGS_func_8038C338(ActorMarker *marker){
Actor *this;
this = marker_getActor(marker);
@ -312,14 +312,14 @@ void func_8038C408(ActorMarker *marker){
func_8038C0C8(this, 5);
}
void func_8038C434(ActorMarker *marker){
void BGS_func_8038C434(ActorMarker *marker){
Actor *this;
this = marker_getActor(marker);
func_8038C0C8(this, 6);
}
void func_8038C460(ActorMarker *arg0){
void BGS_func_8038C460(ActorMarker *arg0){
func_8038C0C8(marker_getActor(arg0), 1);
}
@ -394,22 +394,22 @@ void chvile_update(Actor *this) {
func_80258A4C(this->position, this->yaw - 90.0f, local->target_position, &sp70, &sp6C, &sp68);
if (local->unkC == 102) {
if ((-0.8 < sp68) && (sp68 < 0.8) && (sp70 <= 150.0f) && var_v1) {
func_8038BBA0(this, 103);
BGS_func_8038BBA0(this, 103);
}
}
if (local->unkC == 103) {
if (sp70 <= 50.0f) {
if (chvilegame_cpu_consume_piece(local->game_marker, local->target_position)) {
func_8038BBA0(this, 104);
BGS_func_8038BBA0(this, 104);
} else {
func_8038BBA0(this, 102);
BGS_func_8038BBA0(this, 102);
}
} else if (func_80335794(this->unk148) >= 3) {
func_8038BBA0(this, 102);
BGS_func_8038BBA0(this, 102);
}
}
if ((local->unkC == 104) && (func_80335794(this->unk148) >= 3)) {
func_8038BBA0(this, 102);
BGS_func_8038BBA0(this, 102);
}
}
}
@ -417,7 +417,7 @@ void chvile_update(Actor *this) {
player_getPosition(local->target_position);
local->unk10 = 500.0f;
if ((local->unkC == 102) && (ml_vec3f_distance(this->position, local->target_position) < 200.0f)) {
func_8038BBA0(this, 103);
BGS_func_8038BBA0(this, 103);
}
if ((local->unkC == 103) && (func_80335794(this->unk148) >= 2)) {
func_8038C0C8(this, 1);

View File

@ -21,14 +21,14 @@ enum chtanktup_leg_e {
TANKTUP_LEG_BACK_RIGHT,
};
ActorAnimationInfo D_80390C20[] = {
ActorAnimationInfo BGS_D_80390C20[] = {
{0, 0.0f},
{0x101, 7.5f},
{0x102, 1.75f},
{0x107, 1.75f}
};
ActorInfo D_80390C40 = {MARKER_6C_TANKTUP, ACTOR_E8_TANKTUP, ASSET_3EE_TANKTUP, 0x01, D_80390C20,
ActorInfo D_80390C40 = {MARKER_6C_TANKTUP, ACTOR_E8_TANKTUP, ASSET_3EE_TANKTUP, 0x01, BGS_D_80390C20,
func_8038F6A4, func_80326224, func_80325888,
0, 0x80, 0.0f, 0
};

View File

@ -18,17 +18,17 @@ typedef struct {
}ActorLocal_Yellow_Flibbit;
Actor *func_8038DE5C(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx** vtx);
void func_8038E034(Actor *this);
void BGS_func_8038E034(Actor *this);
/* .data */
ActorInfo D_80390AE0 = {
ActorInfo BGS_D_80390AE0 = {
MARKER_C5_FLIBBIT_YELLOW, ACTOR_137_FLIBBIT_YELLOW, ASSET_385_MODEL_FLIBBIT_YELLOW,
0, NULL,
func_8038E034, NULL, func_8038DE5C,
BGS_func_8038E034, NULL, func_8038DE5C,
0, 0, 1.0f, 0
};
s32 D_80390B04[3] = {0xFF, 0xB3, 0};
f32 D_80390B10[3] = {0.0f, 0.0f, 0.0f};
f32 BGS_D_80390B10[3] = {0.0f, 0.0f, 0.0f};
/* .code */
void func_8038D1E0(Actor *this) {
@ -325,7 +325,7 @@ Actor *func_8038DE5C(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
return this;
}
void func_8038E034(Actor *this) {
void BGS_func_8038E034(Actor *this) {
f32 spB4[3];
f32 spA8[3];
f32 spA4;
@ -365,7 +365,7 @@ void func_8038E034(Actor *this) {
}
if (!local->unk2) {
local->unk2 = TRUE;
func_8038CED0();
BGS_func_8038CED0();
}
player_getPosition(spB4);
spA8[0] = spB4[0] - this->position[0];
@ -446,7 +446,7 @@ void func_8038E034(Actor *this) {
sp60[0] = (f32) (local->unkA[0] - local->unk4[0]);
sp60[1] = (f32) (local->unkA[1] - local->unk4[1]);
sp60[2] = (f32) (local->unkA[2] - local->unk4[2]);
func_80258A4C(D_80390B10, this->yaw - 90.0f, sp60, &sp74, &sp70, &sp6C);
func_80258A4C(BGS_D_80390B10, this->yaw - 90.0f, sp60, &sp74, &sp70, &sp6C);
this->yaw += sp6C * 220.0f * sp9C;
}
}

View File

@ -10,15 +10,15 @@ typedef struct{
}ActorLocal_BGS_3030;
void func_80389668(Actor *this);
Actor *func_80389610(ActorMarker *marker, Gfx **, Mtx **, Vtx**);
Actor *BGS_func_80389610(ActorMarker *marker, Gfx **, Mtx **, Vtx**);
/* .data */
ActorInfo D_80390880 = { MARKER_19B_CHOIR_TURTLE_YELLOW, ACTOR_27B_CHOIR_TURTLE_YELLOW, ASSET_3F9_MODEL_CHOIR_TURTLE, 0, NULL, func_80389668, NULL, func_80389610, 0, 0, 1.5f, 0};
ActorInfo D_803908A4 = { MARKER_19C_CHOIR_TURTLE_CYAN, ACTOR_27C_CHOIR_TURTLE_CYAN, ASSET_3F9_MODEL_CHOIR_TURTLE, 0, NULL, func_80389668, NULL, func_80389610, 0, 0, 1.5f, 0};
ActorInfo D_803908C8 = { MARKER_19D_CHOIR_TURTLE_BLUE, ACTOR_27D_CHOIR_TURTLE_BLUE, ASSET_3F9_MODEL_CHOIR_TURTLE, 0, NULL, func_80389668, NULL, func_80389610, 0, 0, 1.5f, 0};
ActorInfo D_803908EC = { MARKER_19E_CHOIR_TURTLE_RED, ACTOR_27E_CHOIR_TURTLE_RED, ASSET_3F9_MODEL_CHOIR_TURTLE, 0, NULL, func_80389668, NULL, func_80389610, 0, 0, 1.5f, 0};
ActorInfo D_80390910 = { MARKER_19F_CHOIR_TURTLE_PINK, ACTOR_27F_CHOIR_TURTLE_PINK, ASSET_3F9_MODEL_CHOIR_TURTLE, 0, NULL, func_80389668, NULL, func_80389610, 0, 0, 1.5f, 0};
ActorInfo D_80390934 = { MARKER_1A0_CHOIR_TURTLE_PURPLE, ACTOR_280_CHOIR_TURTLE_PURPLE, ASSET_3F9_MODEL_CHOIR_TURTLE, 0, NULL, func_80389668, NULL, func_80389610, 0, 0, 1.5f, 0};
ActorInfo D_80390880 = { MARKER_19B_CHOIR_TURTLE_YELLOW, ACTOR_27B_CHOIR_TURTLE_YELLOW, ASSET_3F9_MODEL_CHOIR_TURTLE, 0, NULL, func_80389668, NULL, BGS_func_80389610, 0, 0, 1.5f, 0};
ActorInfo D_803908A4 = { MARKER_19C_CHOIR_TURTLE_CYAN, ACTOR_27C_CHOIR_TURTLE_CYAN, ASSET_3F9_MODEL_CHOIR_TURTLE, 0, NULL, func_80389668, NULL, BGS_func_80389610, 0, 0, 1.5f, 0};
ActorInfo D_803908C8 = { MARKER_19D_CHOIR_TURTLE_BLUE, ACTOR_27D_CHOIR_TURTLE_BLUE, ASSET_3F9_MODEL_CHOIR_TURTLE, 0, NULL, func_80389668, NULL, BGS_func_80389610, 0, 0, 1.5f, 0};
ActorInfo D_803908EC = { MARKER_19E_CHOIR_TURTLE_RED, ACTOR_27E_CHOIR_TURTLE_RED, ASSET_3F9_MODEL_CHOIR_TURTLE, 0, NULL, func_80389668, NULL, BGS_func_80389610, 0, 0, 1.5f, 0};
ActorInfo D_80390910 = { MARKER_19F_CHOIR_TURTLE_PINK, ACTOR_27F_CHOIR_TURTLE_PINK, ASSET_3F9_MODEL_CHOIR_TURTLE, 0, NULL, func_80389668, NULL, BGS_func_80389610, 0, 0, 1.5f, 0};
ActorInfo D_80390934 = { MARKER_1A0_CHOIR_TURTLE_PURPLE, ACTOR_280_CHOIR_TURTLE_PURPLE, ASSET_3F9_MODEL_CHOIR_TURTLE, 0, NULL, func_80389668, NULL, BGS_func_80389610, 0, 0, 1.5f, 0};
/* .code */
void func_80389420(ActorMarker *marker) {
@ -60,7 +60,7 @@ void func_803895D0(ActorMarker *marker, ActorMarker *other_marker){
}
}
Actor *func_80389610(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
Actor *BGS_func_80389610(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
func_8033A45C(4, marker->unk14_20 - 0x19A);
return func_80325888(marker, gfx, mtx, vtx);
}

View File

@ -41,11 +41,11 @@ enum asset_e D_80390984[] = { 0, 0xC66, 0xC68, 0xC6A, 0xC92, 0xC93, 0xC94,
enum asset_e D_803909A4[] = { 0, 0xC67, 0xC69, 0, 0xC95, 0xC96, 0xC97};
enum asset_e D_803909C0[] = { 0, 0xC6E, 0xC6F, 0, 0xC95, 0xC96, 0xC97};
enum asset_e D_803909DC[] = {0xC65, 0xC65, 0xC65, 0xC8F, 0, 0, 0};
enum asset_e D_803909F8[] = {0xC64, 0, 0, 0xC8E, 0, 0, 0, 0};
enum asset_e BGS_D_803909F8[] = {0xC64, 0, 0, 0xC8E, 0, 0, 0, 0};
enum asset_e D_80390A18[] = {0xC6D, 0xC70, 0xC71, 0xC8E, 0, 0, 0, 0};
/* .code */
bool func_80389810(f32 arg0[3]) {
bool BGS_func_80389810(f32 arg0[3]) {
if (func_8028ECAC() != BSGROUP_7_CROC_ATTACK) {
return FALSE;
}
@ -53,7 +53,7 @@ bool func_80389810(f32 arg0[3]) {
return TRUE;
}
void func_80389850(Actor *this, s32 arg1) {
void BGS_func_80389850(Actor *this, s32 arg1) {
ActorLocal_BGS_3420 *local;
Actor *vile;
f32 sp94[3];
@ -158,11 +158,11 @@ void func_80389C58(ActorMarker *marker) {
this = marker_getActor(marker);
local = (ActorLocal_BGS_3420 *)&this->local;
func_80389850(this, 0);
BGS_func_80389850(this, 0);
func_80311480(D_80390984[local->unkC], 0xF, func_8038C284(local->vile_marker), this->marker, func_80389BF8, NULL);
}
void func_80389CD8(ActorMarker *marker, enum asset_e text_id, s32 arg2){
void BGS_func_80389CD8(ActorMarker *marker, enum asset_e text_id, s32 arg2){
Actor *this;
this = marker_getActor(marker);
@ -177,11 +177,11 @@ void func_80389D20(ActorMarker *marker) {
this = marker_getActor(marker);
local = (ActorLocal_BGS_3420 *)&this->local;
func_80389850(this, 0);
BGS_func_80389850(this, 0);
if (local->unkC == local->unkD) {
func_80311480(D_803909A4[local->unkC], 0xF, func_8038C284(local->vile_marker), this->marker, func_80389CD8, NULL);
func_80311480(D_803909A4[local->unkC], 0xF, func_8038C284(local->vile_marker), this->marker, BGS_func_80389CD8, NULL);
} else {
func_80311480(D_803909C0[local->unkC], 0xF, func_8038C284(local->vile_marker), this->marker, func_80389CD8, NULL);
func_80311480(D_803909C0[local->unkC], 0xF, func_8038C284(local->vile_marker), this->marker, BGS_func_80389CD8, NULL);
}
func_80347A14(0);
}
@ -202,7 +202,7 @@ void func_80389E40(ActorMarker *marker) {
this = marker_getActor(marker);
local = (ActorLocal_BGS_3420 *)&this->local;
func_80389850(this, 1);
BGS_func_80389850(this, 1);
func_80311480(0xC6B, 0xF, func_8038C284(local->vile_marker), this->marker, func_80389DF8, NULL);
}
@ -227,7 +227,7 @@ void func_80389F08(ActorMarker *marker) {
this = marker_getActor(marker);
local = (ActorLocal_BGS_3420 *)&this->local;
func_80389850(this, 0);
BGS_func_80389850(this, 0);
var_s2 = func_80326F58(0x49);
vile = marker_getActor(local->vile_marker);
if (var_s2 > 0) {
@ -278,7 +278,7 @@ void func_8038A068(Actor *this, s32 next_state) {
}
if (next_state == 4) {
if (local->unkC == local->unkD) {
func_80311480(D_803909F8[local->unkC], 0xE | ((D_803909F8[local->unkC] == 0xC8E) ? 1 : 0) | 0xE, func_8038C284(local->vile_marker), this->marker, func_80389BC8, NULL);
func_80311480(BGS_D_803909F8[local->unkC], 0xE | ((BGS_D_803909F8[local->unkC] == 0xC8E) ? 1 : 0) | 0xE, func_8038C284(local->vile_marker), this->marker, func_80389BC8, NULL);
} else {
func_80311480(D_80390A18[local->unkC], 0xF , func_8038C284(local->vile_marker), this->marker, func_80389BC8, NULL);
}
@ -290,7 +290,7 @@ void func_8038A068(Actor *this, s32 next_state) {
local->unkD = local->unkC;
}
if (local->unkC == 7) {
func_8038C434(local->vile_marker);
BGS_func_8038C434(local->vile_marker);
} else {
local->current_type = YUMBLIE;
local->player_score = 0;
@ -315,7 +315,7 @@ void func_8038A068(Actor *this, s32 next_state) {
func_8038A044();
}
}
func_8038C460(local->vile_marker);
BGS_func_8038C460(local->vile_marker);
func_80347A14(1);
}
if (next_state == 6) {
@ -363,7 +363,7 @@ void chvilegame_player_consume_piece(Actor *this) {
begin = (struct vilegame_piece *)vector_getBegin(local->game_pieces);
end = (struct vilegame_piece *) vector_getEnd(local->game_pieces);
if ((end != begin) && func_80389810(sp44)){
if ((end != begin) && BGS_func_80389810(sp44)){
sp44[1] = 0.0f;
for(i_ptr = begin; i_ptr < end; i_ptr++){
if ((ml_vec3f_distance(i_ptr->position, sp44) < 65.25) && chyumblie_is_edible(i_ptr->marker)) {
@ -640,7 +640,7 @@ void chvilegame_update(Actor *this) {
}
}
}
if ((this->state == 7) && (func_8038C338(local->vile_marker) != 0)) {
if ((this->state == 7) && (BGS_func_8038C338(local->vile_marker) != 0)) {
func_8038A068(this, 1);
}
}

View File

@ -22,25 +22,25 @@ ActorInfo D_80390C88 = {MARKER_6D_TANKTUP_LEG, ACTOR_E9_TANKTUP_LEG_FL, ASSET_3E
};
u8 pad_80390CCC[4] = {0};
ActorAnimationInfo D_80390CB0[3] = {
ActorAnimationInfo BGS_D_80390CB0[3] = {
{0, 0.0f},
{0x104, 8000000.0f},
{0x104, 0.75f}
};
ActorInfo D_80390CC8 = {MARKER_6D_TANKTUP_LEG, ACTOR_EA_TANKTUP_LEG_BL, ASSET_3F0_MODEL_TANKTUP_LEG_BL, 0x01, D_80390CB0,
ActorInfo D_80390CC8 = {MARKER_6D_TANKTUP_LEG, ACTOR_EA_TANKTUP_LEG_BL, ASSET_3F0_MODEL_TANKTUP_LEG_BL, 0x01, BGS_D_80390CB0,
func_8038FBF8, func_80326224, func_80325888,
0, 0x166, 0.0f, 0
};
u8 pad_80390CEC[4] = {0};
ActorAnimationInfo D_80390CF0[3] = {
ActorAnimationInfo BGS_D_80390CF0[3] = {
{0, 0.0f},
{0x105, 8000000.0f},
{0x105, 0.75f}
};
ActorInfo D_80390D08 = {MARKER_6D_TANKTUP_LEG, ACTOR_EB_TANKTUP_LEG_FR, ASSET_3F1_MODEL_TANKTUP_LEG_FR, 0x01, D_80390CF0,
ActorInfo D_80390D08 = {MARKER_6D_TANKTUP_LEG, ACTOR_EB_TANKTUP_LEG_FR, ASSET_3F1_MODEL_TANKTUP_LEG_FR, 0x01, BGS_D_80390CF0,
func_8038FBF8, func_80326224, func_80325888,
0, 0x166, 0.0f, 0
};
@ -67,7 +67,7 @@ void func_8038FB40(ActorMarker *this, s32 arg1){
FUNC_8030E624(SFX_A_BANJO_LANDING_05, 0.8f, 32750);
}
void func_8038FB84(ActorMarker *this, ActorMarker *other_marker){
void BGS_func_8038FB84(ActorMarker *this, ActorMarker *other_marker){
Actor *thisActor;
thisActor = marker_getActor(this);
@ -81,7 +81,7 @@ void func_8038FBF8(Actor *this){
if(!this->initialized){
this->initialized = 1;
this->marker->propPtr->unk8_3 = 1;
marker_setCollisionScripts(this->marker, NULL, NULL, func_8038FB84);
marker_setCollisionScripts(this->marker, NULL, NULL, BGS_func_8038FB84);
}
if(this->state == 2){
if(animctrl_isAt(this->animctrl, 0.65f)){

View File

@ -3,7 +3,7 @@
#include "variables.h"
void func_80324E88(f32);
void func_803888E4(Actor *this, s32 arg1);
void BGS_func_803888E4(Actor *this, s32 arg1);
typedef struct{
u32 unk0;
@ -33,11 +33,11 @@ s16 D_8039085C[] = {0, 0xC77, 0xC79, 0xC7B}; //success texts
u8 D_80390864[] = {3, 3, 5, 7}; //chchoirgame_sequence_length
f32 D_80390868[3] = {0.0f, 100.0f, -1020.0f}; //chchoirgame_jiggy_position
void func_80388660(ActorMarker *this){
func_803888E4(marker_getActor(this), 6);
void BGS_func_80388660(ActorMarker *this){
BGS_func_803888E4(marker_getActor(this), 6);
}
void func_8038868C(void){
void BGS_func_8038868C(void){
jiggySpawn(JIGGY_27_BGS_TIPTUP, D_80390868);
}
@ -61,14 +61,14 @@ void func_803886F4(ActorMarker *this){
thisActor = marker_getActor(this);
item_set(ITEM_6_HOURGLASS, 1);
item_set(ITEM_0_HOURGLASS_TIMER, 30*60-1);
func_803888E4(thisActor, 5);
BGS_func_803888E4(thisActor, 5);
}
void func_8038873C(void){
func_8025A6EC(COMUSIC_2B_DING_B, 28000);
}
void func_80388760(void){
void BGS_func_80388760(void){
func_8025A6EC(COMUSIC_2C_BUZZER, 28000);
}
@ -79,20 +79,20 @@ void func_80388784(ActorMarker *this, s32 arg1, s32 arg2){
switch(arg1){
case 0xc72:
case 0xc74:
func_803888E4(thisActor, 3);
BGS_func_803888E4(thisActor, 3);
break;
case 0xc78:
case 0xc7a:
case 0xc7c:
func_803888E4(thisActor, 4);
BGS_func_803888E4(thisActor, 4);
break;
case 0xc77:
case 0xc79:
func_80324E38(0.0f, 0);
func_803888E4(thisActor, 3);
BGS_func_803888E4(thisActor, 3);
break;
case 0xc7b:
timedFunc_set_0(0.0f, func_8038868C);
timedFunc_set_0(0.0f, BGS_func_8038868C);
func_80324E88(2.5f);
func_80324E38(2.5f, 0);
break;
@ -117,11 +117,11 @@ void func_80388848(ActorMarker *this){
func_803204E4(5,1);
}
else{
func_80388660(thisActor->marker);
BGS_func_80388660(thisActor->marker);
}
}
void func_803888E4(Actor *this, s32 arg1){
void BGS_func_803888E4(Actor *this, s32 arg1){
ActorLocal_BGS_2270 *unqPtr;
f32 sp54;
@ -242,7 +242,7 @@ void func_80388E94(ActorMarker *this, s32 arg1){
}
else{
func_8028F55C(1, thisActor->marker);
timedFunc_set_0(0.5f, func_80388760);
timedFunc_set_0(0.5f, BGS_func_80388760);
if(!mapSpecificFlags_get(1) && !func_803203FC(2) && func_80311480(0xc75, 0, NULL, NULL, NULL, NULL))
mapSpecificFlags_set(1,TRUE);
}
@ -296,7 +296,7 @@ void func_80389080(Actor *this){
unqPtr->unkA = 3;
this->position_y = this->position_y - 300.0f;
}
func_803888E4(this, 1);
BGS_func_803888E4(this, 1);
if(jiggyscore_isSpawned(JIGGY_27_BGS_TIPTUP) && !func_803203FC(2) && !func_803203FC(1))
marker_despawn(this->marker);
}
@ -315,12 +315,12 @@ void func_80389080(Actor *this){
if(func_803203FC(2)){
if(func_803203FC(3)){
func_80324E38(0.0f,0);
func_803888E4(this, 3);
BGS_func_803888E4(this, 3);
}
}
else{
if(ml_vec3f_distance(this->position, &sp44) < 300.0f && player_getTransformation() == TRANSFORM_1_BANJO && !jiggyscore_isSpawned(JIGGY_27_BGS_TIPTUP)){
func_803888E4(this, 2);
BGS_func_803888E4(this, 2);
}
}
}
@ -334,7 +334,7 @@ void func_80389080(Actor *this){
} //L80389370
else{
if(ml_vec3f_distance(this->position, &sp44) >= 300.0f)
func_803888E4(this, 1);
BGS_func_803888E4(this, 1);
}
}//L803893A0
if(this->state == 6){

View File

@ -9,7 +9,7 @@ void func_8025A58C(u32, u32);
void func_80324E88(f32);
ActorInfo D_80390AB0 = {MARKER_C4_YELLOW_FLIBBIT_CTRL, ACTOR_136_YELLOW_FLIBBIT_CONTROLLER, 0x00, 0x00, NULL,
ActorInfo BGS_D_80390AB0 = {MARKER_C4_YELLOW_FLIBBIT_CTRL, ACTOR_136_YELLOW_FLIBBIT_CONTROLLER, 0x00, 0x00, NULL,
func_8038CEE8, NULL, func_80325340,
0, 0, 0.0f, 0
};
@ -20,7 +20,7 @@ f32 D_80390AD4[3] = {1985.0f, 200.0f, -1386.0f};
u8 D_80391240[4];
/* .code */
void func_8038CB20(void){
void BGS_func_8038CB20(void){
jiggySpawn(JIGGY_24_BGS_FLIBBITS, D_80390AD4);
}
@ -97,7 +97,7 @@ void func_8038CC08(Actor * arg0, u32 arg1){
if(arg1 == 5){
func_80324E38(0.0f, 3);
timed_setCameraToNode(0.0f, 0x27);
timedFunc_set_0(0.2f, func_8038CB20);
timedFunc_set_0(0.2f, BGS_func_8038CB20);
func_80324E88(3.0f);
func_80324E38(3.0f, 0);
arg1 = 6;
@ -121,7 +121,7 @@ void func_8038CEB8(void){
D_80391240[2]++;
}
void func_8038CED0(void){
void BGS_func_8038CED0(void){
D_80391240[3]++;
}

View File

@ -16,8 +16,8 @@ extern ActorInfo D_80390C88;
extern ActorInfo D_80390CC8;
extern ActorInfo D_80390D08;
extern ActorInfo D_80390D48;
extern ActorInfo D_80390AB0;
extern ActorInfo D_80390AE0;
extern ActorInfo BGS_D_80390AB0;
extern ActorInfo BGS_D_80390AE0;
extern ActorInfo D_80390960;
extern ActorInfo D_80390A40;
extern ActorInfo D_80390A70;
@ -33,7 +33,7 @@ extern ActorInfo D_80390D70;
extern ActorInfo D_80390BD8;
extern ActorInfo D_80390BFC;
void bgs_func_8038F1E0(void){//bgs_updateSpawnableActors
void BGS_func_8038F1E0(void){//bgs_updateSpawnableActors
spawnableActorList_add(&D_80390804, actor_new, 0x00000088);//croctus
spawnableActorList_add(&D_80390690, actor_new, 0x020108A1); //flibbit
spawnableActorList_add(&D_803906F8, actor_new, 0x400); //pink_egg_largest
@ -47,8 +47,8 @@ void bgs_func_8038F1E0(void){//bgs_updateSpawnableActors
spawnableActorList_add(&D_80390CC8, actor_new, 0x400042c);//tanktup_leg
spawnableActorList_add(&D_80390D08, actor_new, 0x400042c);//tanktup_leg
spawnableActorList_add(&D_80390D48, actor_new, 0x400042c);//tanktup_leg
spawnableActorList_add(&D_80390AB0, actor_new, 0x81);
spawnableActorList_add(&D_80390AE0, actor_new, 0x20108a1); //yellow_flibbit
spawnableActorList_add(&BGS_D_80390AB0, actor_new, 0x81);
spawnableActorList_add(&BGS_D_80390AE0, actor_new, 0x20108a1); //yellow_flibbit
spawnableActorList_add(&D_80390960, actor_new, 0);
spawnableActorList_add(&D_80390A40, actor_new, 0x880); //yumblie
spawnableActorList_add(&D_80390A70, actor_new, 0x9a2); //mr. vile

View File

@ -119,7 +119,7 @@ void func_80389520(ActorMarker *marker, ActorMarker *otherMarker){
FUNC_8030E624(SFX_65_METALLIC_SCRATCH, 1.0f, 30000);
}
void func_8038954C(ActorMarker *marker, ActorMarker *otherMarker){
void CC_func_8038954C(ActorMarker *marker, ActorMarker *otherMarker){
Actor *actor = marker_getActor(marker);
ActorLocal_CC_3130 *local = (ActorLocal_CC_3130 *) &actor->local;
@ -138,7 +138,7 @@ void chSawblade_update(Actor *this){
this->unk16C_4 = TRUE;
this->roll = this->yaw;
this->yaw = 0.0f;
marker_setCollisionScripts(this->marker, func_80389520, NULL, func_8038954C);
marker_setCollisionScripts(this->marker, func_80389520, NULL, CC_func_8038954C);
local->unk0 = &D_80389C30[(this->modelCacheIndex < 0x43) ? this->modelCacheIndex - 0x3D : this->modelCacheIndex - 0x28A];
local->unk4 = 0;
func_80256C60(this->position, 100);

View File

@ -20,7 +20,7 @@ ActorInfo D_80389AA0 = {
};
/* .code */
void func_803863F0(Actor *this, s32 next_state){
void CC_func_803863F0(Actor *this, s32 next_state){
ActorLocal_CC_0 * local = (ActorLocal_CC_0 *)this->local;
if(this->state == 4){
func_80388ED4(0);
@ -55,7 +55,7 @@ void func_803864D4(Actor *this){
if(!this->unk16C_4){
this->unk16C_4 = 1;
marker->propPtr->unk8_3 = 1;
func_803863F0(this, 1);
CC_func_803863F0(this, 1);
}//L80386530
func_80388B4C(&sp4C);
@ -65,27 +65,27 @@ void func_803864D4(Actor *this){
sp30[0] = sp4C[0] - sp40[0];
sp30[1] = 0.0f;
sp30[2] = sp4C[2] - sp40[2];
if(!func_80388CA0()){
if(!CC_func_80388CA0()){
local->unk4 = 2.0f;
}
else if(60.0f < gu_sqrtf(sp30[0]*sp30[0] + sp30[1]*sp30[1] + sp30[2]*sp30[2])){
local->unk4 = 0.05f;
}
else{
func_803863F0(this, 2);
CC_func_803863F0(this, 2);
}
}//L80386634
if(func_8025773C(&local->unk0, sp3C)){
func_803863F0(this, 4);
CC_func_803863F0(this, 4);
}
if((this->state == 2) && (1.0 <= local->unk8)){
func_803863F0(this, 3);
CC_func_803863F0(this, 3);
}//L803866B4
if((this->state == 4) && (1.0 <= local->unk8)){
func_803863F0(this, 1);
CC_func_803863F0(this, 1);
}//L80386714
if(this->state == 1){

View File

@ -66,7 +66,7 @@ void func_80387940(Struct_CC_13C0_1 *arg0, Struct68s *arg1) {
func_803878F0(arg0, arg1, 1);
}
void func_80387960(Struct_CC_13C0_1 *arg0, Struct68s *arg1) {
void CC_func_80387960(Struct_CC_13C0_1 *arg0, Struct68s *arg1) {
func_803878F0(arg0, arg1, 2);
}
@ -82,19 +82,19 @@ void func_803879C0(Struct_CC_13C0_1 *arg0, Struct68s *arg1) {
func_803878F0(arg0, arg1, 5);
}
void func_803879E0(Struct_CC_13C0_1 *arg0, Struct68s *arg1) {
void CC_func_803879E0(Struct_CC_13C0_1 *arg0, Struct68s *arg1) {
func_803878F0(arg0, arg1, 6);
}
void func_80387A00(Struct_CC_13C0_1 *arg0, Struct68s *arg1) {
void CC_func_80387A00(Struct_CC_13C0_1 *arg0, Struct68s *arg1) {
func_803878F0(arg0, arg1, 7);
}
void func_80387A20(Struct_CC_13C0_1 *arg0, Struct68s *arg1) {
void CC_func_80387A20(Struct_CC_13C0_1 *arg0, Struct68s *arg1) {
func_803878F0(arg0, arg1, 8);
}
void func_80387A40(Struct_CC_13C0_1* arg0, Struct68s* arg1, f32 arg2) {
void CC_func_80387A40(Struct_CC_13C0_1* arg0, Struct68s* arg1, f32 arg2) {
s32 temp_v0;
f32 sp50[3];
f32 sp44[3];
@ -160,7 +160,7 @@ void func_80387CC0(void){
}
void func_80387D4C(void){
void CC_func_80387D4C(void){
u32 sp1C;
u32 tmp_v0;
osPiReadIo(0x504, &sp1C);

View File

@ -25,7 +25,7 @@ extern ActorInfo D_80389E68;
extern ActorInfo D_80389E8C;
/* .code */
void func_80387DA0(void)
void CC_func_80387DA0(void)
{
spawnableActorList_add(&D_80389AA0, actor_new, 0X4080);
spawnableActorList_add(&D_80389E44, actor_new, 0X10080);

View File

@ -20,7 +20,7 @@ void func_80387F80(void){
func_8034E71C(func_8034C5AC(0x131), 0x190, 0.0f);
}
void func_80387FB0(void){
void CC_func_80387FB0(void){
item_set(ITEM_0_HOURGLASS_TIMER, 48*60 - 1);
item_set(ITEM_6_HOURGLASS, 1);
D_80389F90.unk1 = 1;
@ -41,7 +41,7 @@ s32 func_80388010(void){
void func_8038803C(s32 arg0){
if(arg0 == D_80389F90.unk0){
if(arg0 == 1){
func_80387FB0();
CC_func_80387FB0();
}
D_80389F90.unk0++;
if(D_80389F90.unk0 >= 9){

View File

@ -112,7 +112,7 @@ void func_80388664(void) {
jiggySpawn(JIGGY_17_CC_CLANKER_RAISED, D_80389C00);
}
void func_8038868C(void) {
void CC_func_8038868C(void) {
func_80324E38(0, 3);
timed_setCameraToNode(0, 0);
timed_setCameraToNode(5.5f, 1);
@ -128,7 +128,7 @@ void func_8038868C(void) {
}
void func_80388760(Gfx **gfx, Mtx **mtx, Vtx **vtx){
void CC_func_80388760(Gfx **gfx, Mtx **mtx, Vtx **vtx){
BKVertexList *tmp_v0;
s32 s1;
f32 spA4[3];
@ -237,11 +237,11 @@ void func_80388C50(s32 arg0, s32 arg1){
func_8031CD20(arg0, 0xb, 1);
}
void func_80388C78(s32 arg0, s32 arg1){
void CC_func_80388C78(s32 arg0, s32 arg1){
func_8031CD20(arg0, 0xb, 2);
}
int func_80388CA0(void){
int CC_func_80388CA0(void){
return D_80389FA0.unk21 == 3;
}
@ -317,7 +317,7 @@ void func_80388ED4(s32 arg0){
D_80389FA0.unk8 = 1.0f;
}
void func_80388F4C(void){
void CC_func_80388F4C(void){
f32 sp6C[3];
f32 sp68 = time_getDelta();
f32 sp64;
@ -327,7 +327,7 @@ void func_80388F4C(void){
BKCollisionTri *tmp_v0;
f32 pad[3];
func_80387D4C();
CC_func_80387D4C();
if(D_80389FA0.unk21 != 0 && func_80334904() == 2){
player_getPosition(sp6C);
D_80389FA0.unk20 = (ml_vec3f_distance(sp6C, D_80389FA0.unkC) < 200.0f);

View File

@ -30,7 +30,7 @@ ActorInfo D_80389AD0 = {
f32 D_80389AF4[3] = {6200.0f, -2600.0f, 0.0f};
/* .code */
void func_80386920(Actor *this, s32 next_state){
void CC_func_80386920(Actor *this, s32 next_state){
ActorLocal_CC_530 *local = (ActorLocal_CC_530 *)&this->local;
f32 sp28[3];
s16 sp20[3];
@ -57,7 +57,7 @@ void func_80386920(Actor *this, s32 next_state){
}
if(next_state == 4){
func_8038868C();
CC_func_8038868C();
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7FFF);
}
@ -76,7 +76,7 @@ void func_80386AD0(ActorMarker *arg0, s32 arg1) {
void func_80386AF8(Actor *arg0) {
ActorLocal_CC_530 *local = (ActorLocal_CC_530 *)&arg0->local;
func_80386920(arg0, 0);
CC_func_80386920(arg0, 0);
func_8030DA44(local->unk0);
}
@ -107,10 +107,10 @@ void func_80386B28(Actor *this){
this->position_y = -2620.0f;
this->position_z = -20.0f;
if(jiggyscore_isSpawned(JIGGY_17_CC_CLANKER_RAISED)){
func_80386920(this, 5);
CC_func_80386920(this, 5);
}
else{
func_80386920(this, 1);
CC_func_80386920(this, 1);
}
}
else{//L80386C40
@ -159,10 +159,10 @@ void func_80386B28(Actor *this){
local->unk4[2] = sp58[2];
if(this->state == 0x1 && local->unk2 == 1){
if(--local->unk3 == 0){
func_80386920(this, 4);
CC_func_80386920(this, 4);
}
else{
func_80386920(this, 2);
CC_func_80386920(this, 2);
}
}//L80386E4C
@ -172,7 +172,7 @@ void func_80386B28(Actor *this){
}
this->pitch = (f32)local->unk10 + 30.0f*local->unk14;
if(1.0f <= local->unk14){
func_80386920(this, 3);
CC_func_80386920(this, 3);
}
}//L80386EC0
@ -182,7 +182,7 @@ void func_80386B28(Actor *this){
}
this->pitch = (f32)local->unk10 + 30.0f*(1.0f - local->unk14);
if(1.0f <= local->unk14){
func_80386920(this, 1);
CC_func_80386920(this, 1);
}
}//L80386F44
@ -192,7 +192,7 @@ void func_80386B28(Actor *this){
}
this->pitch = (f32)local->unk10 + 180.0f*(local->unk14/5.0f);
if(5.0f <= local->unk14){
func_80386920(this, 5);
CC_func_80386920(this, 5);
func_80388EA4();
}
}//L80386FC0

View File

@ -29,7 +29,7 @@ extern ActorInfo D_80389B24 = {
u8 D_80389F80;
/* .code */
void func_80386FE0(Actor *this, s32 next_state){
void CC_func_80386FE0(Actor *this, s32 next_state){
ActorLocal_CC_BF0 *local = (ActorLocal_CC_BF0 *)&this->local;
s32 prev_state = this->state;
this->state = next_state;
@ -54,7 +54,7 @@ void func_80386FE0(Actor *this, s32 next_state){
}
}
void func_803870E0(void) {
void CC_func_803870E0(void) {
D_80389F80 = 0;
}
@ -82,9 +82,9 @@ void func_803870F8(Actor *this){
this->roll = 0.0f;
local->unk0 = (marker->modelId == 0x309) ? 1 : 2;
local->egg_count = 0;
func_80386FE0(this, 1);
CC_func_80386FE0(this, 1);
if(levelSpecificFlags_get((local->unk0 == 1)? LEVEL_FLAG_0_CC_TOKEN_TOOTH_OPEN: LEVEL_FLAG_1_CC_JIGGY_TOOTH_OPEN)){
func_80386FE0(this, 3);
CC_func_80386FE0(this, 3);
}
}//L803871D8
player_getPosition(&sp70);
@ -119,7 +119,7 @@ void func_803870F8(Actor *this){
D_80389F80 = 0;
local->egg_count++;
if(local->egg_count == 3){
func_80386FE0(this, 2);
CC_func_80386FE0(this, 2);
}else{
func_8025A6EC(COMUSIC_2B_DING_B, 28000);
}
@ -131,7 +131,7 @@ void func_803870F8(Actor *this){
((flagCnt == 0)? 0xd30 : 0xd31) :
((flagCnt == 0)? 0xd2e : 0xd2f), 4, NULL, NULL, NULL, NULL);
}
func_80386FE0(this, 3);
CC_func_80386FE0(this, 3);
}//L80387474
if(this->state == 3){

View File

@ -8,7 +8,7 @@ ActorInfo D_8038EB50 = { 0x1AC, 0x298, 0x444, 0x0, NULL, func_803864B8, NULL, fu
ActorInfo D_8038EB74 = { 0x1AC, 0x29A, 0x445, 0x0, NULL, func_803864B8, NULL, func_80325888, 0, 0, 0.0f, 0};
/* .code */
void func_803863F0(Actor *this, s32 next_state){
void CCW_func_803863F0(Actor *this, s32 next_state){
if(next_state == 2){
FUNC_8030E8B4(SFX_2F_ORANGE_SPLAT, 1.0f, 32000, this->position, 500, 3000);
levelSpecificFlags_set(0x10, TRUE);
@ -20,7 +20,7 @@ void func_803863F0(Actor *this, s32 next_state){
void func_80386468(ActorMarker* marker, ActorMarker *arg1) {
Actor* actor = marker_getActor(marker);
if (actor->state == 1 && map_get() == MAP_44_CCW_SUMMER) {
func_803863F0(actor, 2);
CCW_func_803863F0(actor, 2);
}
}
@ -29,7 +29,7 @@ void func_803864B8(Actor *this){
this->unk16C_4 = TRUE;
this->marker->propPtr->unk8_3 = TRUE;
marker_setCollisionScripts(this->marker, NULL, NULL, func_80386468);
func_803863F0(this, 1);
CCW_func_803863F0(this, 1);
if(levelSpecificFlags_get(0x10)){
marker_despawn(this->marker);
}

View File

@ -21,7 +21,7 @@ typedef struct {
f32 unk18[3];
}ActorLocal_CCW_14B0;
void func_80387A40(Actor *this);
void CCW_func_80387A40(Actor *this);
/* .data */
Struct_CCW_14B0_0 D_8038EC00[] = {
@ -30,7 +30,7 @@ Struct_CCW_14B0_0 D_8038EC00[] = {
0
};
ActorInfo D_8038EC14 = { 0x1AF, 0x29C, 0x446, 0x0, NULL, func_80387A40, NULL, func_80325888, 0, 0, 1.0f, 0};
ActorInfo D_8038EC14 = { 0x1AF, 0x29C, 0x446, 0x0, NULL, CCW_func_80387A40, NULL, func_80325888, 0, 0, 1.0f, 0};
/* .code */
void func_803878A0(Actor *this, s32 next_state) {
@ -53,12 +53,12 @@ void func_803878A0(Actor *this, s32 next_state) {
this->state = next_state;
}
void func_80387A20(Actor *this){
void CCW_func_80387A20(Actor *this){
ActorLocal_CCW_14B0 *local = (ActorLocal_CCW_14B0 *)&this->local;
func_8030DA44(local->unk0);
}
void func_80387A40(Actor *this) {
void CCW_func_80387A40(Actor *this) {
ActorLocal_CCW_14B0 *local;
f32 sp68;
f32 sp5C[3];
@ -71,7 +71,7 @@ void func_80387A40(Actor *this) {
sp68 = time_getDelta();
if (!this->unk16C_4) {
this->unk16C_4 = TRUE;
this->marker->unk30 = func_80387A20;
this->marker->unk30 = CCW_func_80387A20;
local->unk4 = &D_8038EC00[0];
while((local->unk4->unk0 != 0) && (map_get() != local->unk4->unk0)) {
local->unk4++;

View File

@ -16,7 +16,7 @@ void func_8038687C(Actor *this);
ActorInfo D_8038EBA0 = { 0x1AD, 0x299, 0x443, 0x0, NULL, func_8038687C, NULL, func_80325888, 0, 0, 0.0f, 0};
/* .code */
void func_80386550(ActorMarker *marker){
void CCW_func_80386550(ActorMarker *marker){
Actor *this;
ActorLocal_CCW_160 *local;
@ -69,7 +69,7 @@ void func_803865F4(Actor *this, s32 next_state) {
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 28000);
func_80324E38(0.0f, 3);
timed_setCameraToNode(2.0f, 4);
timedFunc_set_1(2.0f, (GenMethod_1)func_80386550, (s32) this->marker);
timedFunc_set_1(2.0f, (GenMethod_1)CCW_func_80386550, (s32) this->marker);
func_80324E88(4.0f);
func_80324E38(4.0f, 0);
}

View File

@ -17,7 +17,7 @@ typedef struct{
}ActorLocal_CCW_1B20;
void func_80387F64(Actor *this, s32 next_state);
Actor *func_803882F4(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
Actor *CCW_func_803882F4(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_80388478(Actor *this);
/* .data */
@ -28,7 +28,7 @@ Struct_CCW_1B20_0 D_8038EC40[4] ={
{0x183, 1, 1, 0x000, 0x000, 0x00, 0}
};
ActorInfo D_8038EC70 = { 0x1B0, 0x29D, 0x447, 0x0, NULL, func_80388478, NULL, func_803882F4, 0, 0, 1.0f, 0};
ActorInfo D_8038EC70 = { 0x1B0, 0x29D, 0x447, 0x0, NULL, func_80388478, NULL, CCW_func_803882F4, 0, 0, 1.0f, 0};
f32 D_8038EC94[3] = {200.0f, 2120.0f, -5570.0f};
/* .code */
@ -90,7 +90,7 @@ bool func_80388260(ActorMarker *marker, s32 arg1){
return marker->unk40_31 != 1;
}
void func_80388278(ActorMarker *marker, ActorMarker *other_marker) {
void CCW_func_80388278(ActorMarker *marker, ActorMarker *other_marker) {
func_8025A6EC(COMUSIC_2B_DING_B, 28000);
}
@ -102,7 +102,7 @@ void func_803882A4(ActorMarker* marker, ActorMarker *other_marker) {
}
}
Actor *func_803882F4(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
Actor *CCW_func_803882F4(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
Actor *this;
s32 sp18;
@ -144,7 +144,7 @@ void func_80388478(Actor *this) {
if (!this->unk16C_4) {
this->unk16C_4 = TRUE;
func_803300C0(this->marker, func_80388260);
marker_setCollisionScripts(this->marker, NULL, func_80388278, func_803882A4);
marker_setCollisionScripts(this->marker, NULL, CCW_func_80388278, func_803882A4);
actor_collisionOn(this);
if (!jiggyscore_isSpawned(JIGGY_4D_CCW_FLOWER)) {
func_80320004(0xE5, FALSE);

View File

@ -15,7 +15,7 @@ typedef struct{
void *unk8;
}ActorLocal_CCW_2270;
void func_8038868C(Actor *this, s32 next_state);
void CCW_func_8038868C(Actor *this, s32 next_state);
Actor *func_803889AC(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_80388AA0(Actor *this);
@ -34,11 +34,11 @@ ActorInfo D_8038ECE8 = {
};
/* .code */
void func_80388660(ActorMarker* marker, s32 arg1) {
func_8038868C(marker_getActor(marker), arg1);
void CCW_func_80388660(ActorMarker* marker, s32 arg1) {
CCW_func_8038868C(marker_getActor(marker), arg1);
}
void func_8038868C(Actor *this, s32 next_state) {
void CCW_func_8038868C(Actor *this, s32 next_state) {
ActorLocal_CCW_2270 *local;
local = (ActorLocal_CCW_2270*)&this->local;
@ -60,7 +60,7 @@ void func_8038868C(Actor *this, s32 next_state) {
timed_playSfx(0.8f, SFX_4B_GULPING, 0.8f, 28000);
timed_playSfx(1.4f, SFX_4B_GULPING, 0.8f, 28000);
timed_playSfx(2.0f, SFX_4B_GULPING, 0.8f, 28000);
timedFunc_set_2(3.2f, (TFQM2) func_80388660, (s32) this->marker, 3);
timedFunc_set_2(3.2f, (TFQM2) CCW_func_80388660, (s32) this->marker, 3);
}
if (next_state == 3) {
func_803883F4();
@ -95,7 +95,7 @@ void func_8038894C(ActorMarker* marker, ActorMarker *other_marker) {
Actor* actor = marker_getActor(marker);
if (actor->state == 1) {
actor_collisionOff(actor);
timedFunc_set_2(0.5f, (TFQM2)func_80388660, (s32)actor->marker, 2);
timedFunc_set_2(0.5f, (TFQM2)CCW_func_80388660, (s32)actor->marker, 2);
}
}
@ -150,9 +150,9 @@ void func_80388AA0(Actor *this) {
}
if( (map_get() == MAP_44_CCW_SUMMER) && func_8031FF1C(0xE3) && !func_8031FF1C(0xE4)) {
func_8038868C(this, 1);
CCW_func_8038868C(this, 1);
} else if( (map_get() == MAP_45_CCW_AUTUMN) && func_8031FF1C(0xE4) && !func_8031FF1C(0xE5) ) {
func_8038868C(this, 1);
CCW_func_8038868C(this, 1);
} else{
marker_despawn(this->marker);
}
@ -177,9 +177,9 @@ void func_80388AA0(Actor *this) {
if(this->state == 3){
if (!func_80388438()) {
if (map_get() == MAP_44_CCW_SUMMER) {
func_8038868C(this, 4);
CCW_func_8038868C(this, 4);
} else {
func_8038868C(this, 5);
CCW_func_8038868C(this, 5);
}
}
}
@ -203,14 +203,14 @@ void func_80388AA0(Actor *this) {
if (this->state == 5){
if(func_80335794(this->unk148) > 0) {
func_8038868C(this, 6);
CCW_func_8038868C(this, 6);
}
}
if (this->state == 6) {
func_80326224(this);
if (0.99 < (f64) this->unk48) {
func_8038868C(this, 7);
CCW_func_8038868C(this, 7);
}
}
}

View File

@ -2,11 +2,11 @@
#include "functions.h"
#include "variables.h"
Actor *func_8038954C(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
Actor *CCW_func_8038954C(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_803895F4(Actor *this);
/* .data */
ActorInfo D_8038EE70 = { 0x1B3, 0x2A0, 0x483, 0x0, NULL, func_803895F4, NULL, func_8038954C, 0, 0, 0.0f, 0};
ActorInfo D_8038EE70 = { 0x1B3, 0x2A0, 0x483, 0x0, NULL, func_803895F4, NULL, CCW_func_8038954C, 0, 0, 0.0f, 0};
/* .code */
void func_80389440(Actor *this, s32 next_state) {
@ -33,7 +33,7 @@ void func_8038950C(ActorMarker* marker, ActorMarker* other_marker) {
}
}
Actor *func_8038954C(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
Actor *CCW_func_8038954C(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
Actor *this;
this = marker_getActor(marker);

View File

@ -41,7 +41,7 @@ typedef struct {
}ActorLocal_CCW_3310;
Actor *func_80389B24(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_80389BFC(Actor *this);
void CCW_func_80389BFC(Actor *this);
/* .data */
Struct_CCW_3310_1 D_8038EEA0[] = {
@ -96,7 +96,7 @@ Struct_CCW_3310_0 D_8038F080[] = {
0
};
ActorInfo D_8038F130 = { MARKER_1B4_EEYRIE_BABY, ACTOR_2A1_EEYRIE_BABY, ASSET_484_MODEL_EAGLE_BABY, 0x0, NULL, func_80389BFC, NULL, func_80389B24, 0, 0, 0.0f, 0};
ActorInfo D_8038F130 = { MARKER_1B4_EEYRIE_BABY, ACTOR_2A1_EEYRIE_BABY, ASSET_484_MODEL_EAGLE_BABY, 0x0, NULL, CCW_func_80389BFC, NULL, func_80389B24, 0, 0, 0.0f, 0};
/* .bss */
u8 pad_8038FDD0[0x10];
@ -204,7 +204,7 @@ void func_80389BD8(f32 dst[3]){
dst[2] = D_8038FDE0[2];
}
void func_80389BFC(Actor *this) {
void CCW_func_80389BFC(Actor *this) {
Struct_CCW_3310_1 *iPtr;
ActorLocal_CCW_3310 *local;
f32 sp5C;

View File

@ -33,7 +33,7 @@ void func_8038C0E8(ActorMarker* marker) {
func_8030E878(SFX_81_UUU, sp20, (s32)randf2(10000.0f, 31000.0f), sp24->position, 500.0f, 2500.0f);
}
void func_8038C16C(Actor *this, s32 next_state) {
void CCW_func_8038C16C(Actor *this, s32 next_state) {
Actor *other;
if (next_state == 1) {
@ -102,9 +102,9 @@ void func_8038C41C(Actor *this) {
&& !jiggyscore_isSpawned(JIGGY_4A_CCW_NABNUT)
&& (this->marker->unk14_20 == 0x1C6 || this->marker->unk14_20 == 0x1CA)
){
func_8038C16C(this, 1);
CCW_func_8038C16C(this, 1);
} else {
func_8038C16C(this, 2);
CCW_func_8038C16C(this, 2);
}
}

View File

@ -16,24 +16,24 @@ void func_8038C7A8(Actor *this);
ActorInfo D_8038F460 = { 0x1BC, 0x2A9, 0x48E, 0x0, NULL, func_8038C7A8, NULL, func_80325888, 0, 0, 0.8f, 0};
/* .code */
void func_8038C5D0(ActorMarker* marker) {
void CCW_func_8038C5D0(ActorMarker* marker) {
Actor* actor = marker_getActor(marker);
func_8030E878(SFX_3F2_UNKNOWN, randf2(0.95f, 1.05f), 26000, actor->position, 500.0f, 1000.0f);
}
void func_8038C638(ActorMarker* marker) {
void CCW_func_8038C638(ActorMarker* marker) {
Actor* actor = marker_getActor(marker);
func_8030E878(SFX_5_BANJO_LANDING_01, randf2(0.95f, 1.05f), 22000, actor->position, 500.0f, 1000.0f);
}
void func_8038C6A0(Actor *this, s32 next_state) {
void CCW_func_8038C6A0(Actor *this, s32 next_state) {
ActorLocal_CCW_61E0 *local;
local = (ActorLocal_CCW_61E0 *)&this->local;
if (next_state == 1) {
func_80335924(this->unk148, 0x25B, 0.0f, 1.0f);
func_80335800(this->unk148, 0.5f, func_8038C5D0, this->marker);
func_80335800(this->unk148, 0.7f, func_8038C638, this->marker);
func_80335800(this->unk148, 0.5f, CCW_func_8038C5D0, this->marker);
func_80335800(this->unk148, 0.7f, CCW_func_8038C638, this->marker);
}
if (next_state == 3) {
local->unk0[0] = this->position[0];
@ -68,7 +68,7 @@ void func_8038C7A8(Actor *this) {
sp4C = (func_8028E86C() == this->marker);
if (this->state == 0) {
func_8038C6A0(this, sp4C ? 2 : 1);
CCW_func_8038C6A0(this, sp4C ? 2 : 1);
}
if (this->state == 1) {
@ -76,16 +76,16 @@ void func_8038C7A8(Actor *this) {
if (ml_vec3f_distance(this->position, sp38) < 50.0f) {
func_8028F030(0x2A9);
FUNC_8030E8B4(SFX_C5_TWINKLY_POP, 1.0f, 25000, this->position, 500, 2500);
func_8038C6A0(this, 5);
CCW_func_8038C6A0(this, 5);
}
}
if (this->state == 2) {
if (this->unk138_21) {
func_8028F010(0x2A9);
func_8038C6A0(this, 3);
CCW_func_8038C6A0(this, 3);
} else if (!sp4C) {
func_8028F050(0x2A9);
func_8038C6A0(this, 5);
CCW_func_8038C6A0(this, 5);
}
}
if (this->state == 3) {
@ -94,7 +94,7 @@ void func_8038C7A8(Actor *this) {
func_80255FE4(this->position, local->unk0, local->unkC, local->unk18);
this->position[1] += 50.0f * sinf(local->unk18 * BAD_PI);
if (local->unk18 == 1.0) {
func_8038C6A0(this, 4);
CCW_func_8038C6A0(this, 4);
}
}
}

View File

@ -15,7 +15,7 @@ typedef struct{
f32 unk4[3];
}ActorLocal_CCW_6620;
Actor *func_8038CBF0(ActorMarker *this, Gfx **gfx, Mtx **mtx, Vtx **vtx);
Actor *CCW_func_8038CBF0(ActorMarker *this, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_8038CC4C(Actor *this);
/* .data */
@ -29,7 +29,7 @@ Struct_CCW_6620_0 D_8038F490[] ={
ActorInfo D_8038F4A8 = {
0x1BD, 0x2AA, 0x48F,
0x0, NULL,
func_8038CC4C, NULL, func_8038CBF0,
func_8038CC4C, NULL, CCW_func_8038CBF0,
0, 0, 2.2f, 0
};
@ -67,7 +67,7 @@ void func_8038CB40(Actor *this, s32 next_state) {
}
Actor *func_8038CBF0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
Actor *CCW_func_8038CBF0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
Actor *this;
ActorLocal_CCW_6620 *local;

View File

@ -17,7 +17,7 @@ ActorInfo D_8038F640 = {
};
/* .code */
void func_8038D510(Actor *this) {
void CCW_func_8038D510(Actor *this) {
static s32 D_8038F664[3] = {0xDE, 0xA7, 0x71};
static struct42s D_8038F670 = {
{{ 0.0f, 50.0f, 0.0f}, { 70.0f, 100.0f, 70.0f}},
@ -70,7 +70,7 @@ void func_8038D6D8(Actor *this, s32 next_state) {
if (next_state == 2) {
this->marker->propPtr->unk8_3 = FALSE;
func_802BB3DC(0, 60.0f, 0.7f);
func_8038D510(this);
CCW_func_8038D510(this);
func_8038D5DC(this);
FUNC_8030E624(SFX_9B_BOULDER_BREAKING_1, 0.3f, 15000);
FUNC_8030E624(SFX_9B_BOULDER_BREAKING_1, 0.5f, 15000);

View File

@ -61,7 +61,7 @@ extern ActorInfo D_8038F81C;
extern ActorInfo D_8038F840;
extern ActorInfo D_8038F864;
void func_8038DB0C(Actor *this);
void CCW_func_8038DB0C(Actor *this);
void func_8038DAB0(Actor *this);
/* .data */
@ -72,9 +72,9 @@ ActorInfo D_8038F78C = { 0x238, 0x262, 0x4FB, 0x1, NULL, func_802D3D54, func_803
ActorInfo D_8038F7B0 = { 0x243, 0x2E6, 0x533, 0x1, NULL, func_802D3D54, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_8038F7D4 = { 0x263, 0x2E7, 0x518, 0x1, NULL, func_8038DAB0, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_8038F7F8 = { 0x21E, 0x233, 0x3B3, 0x1, NULL, func_802D3D74, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_8038F81C = { 0x26B, 0x2DE, 0x531, 0x1, NULL, func_8038DB0C, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_8038F840 = { 0x26C, 0x2DD, 0x53E, 0x1, NULL, func_8038DB0C, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_8038F864 = { 0x26D, 0x2DC, 0x53F, 0x1, NULL, func_8038DB0C, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_8038F81C = { 0x26B, 0x2DE, 0x531, 0x1, NULL, CCW_func_8038DB0C, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_8038F840 = { 0x26C, 0x2DD, 0x53E, 0x1, NULL, CCW_func_8038DB0C, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_8038F864 = { 0x26D, 0x2DC, 0x53F, 0x1, NULL, CCW_func_8038DB0C, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_8038F888 = { 0x1CC, 0x318, 0x0, 0x0, NULL, func_80325F84, NULL, func_80325340, 0, 0, 0.0f, 0};
@ -89,7 +89,7 @@ void func_8038DAB0(Actor *this){
}
}
void func_8038DB0C(Actor *this){
void CCW_func_8038DB0C(Actor *this){
if(!this->initialized){
func_802D3D74(this);
this->initialized = TRUE;
@ -99,7 +99,7 @@ void func_8038DB0C(Actor *this){
}
}
void func_8038DB6C(void)
void CCW_func_8038DB6C(void)
{
spawnableActorList_add(&D_8038EB50, actor_new, 0X80);
spawnableActorList_add(&D_8038EB74, actor_new, 0X80);

View File

@ -25,7 +25,7 @@ void func_8038DFE0(Actor* actor) {
actor->unk38_31 = randi2(0, 0);
}
void func_8038E034(Actor* actor) {
void CCW_func_8038E034(Actor* actor) {
func_80328B8C(actor, 2, 0.001f, 1);
}
@ -101,7 +101,7 @@ void func_8038E0C8(Actor *this) {
&& (this->unk38_31 == 0)
&& (player_getTransformation() == TRANSFORM_1_BANJO)
) {
func_8038E034(this);
CCW_func_8038E034(this);
}
break;

View File

@ -83,7 +83,7 @@ void func_80387124(ActorMarker* marker, ActorMarker *other_marker) {
chwasp_setState(marker_getActor(marker), 3);
}
void func_80387150(ActorMarker* marker, ActorMarker *other_marker) {
void CCW_func_80387150(ActorMarker* marker, ActorMarker *other_marker) {
chwasp_setState(marker_getActor(marker), 4);
}
@ -120,7 +120,7 @@ void chwasp_update(Actor *this) {
func_8030DD14(local->unk0, 2);
func_8030DBB4(local->unk0, 0.9f);
sfxsource_setSampleRate(local->unk0, 0);
marker_setCollisionScripts(this->marker, func_80387124, NULL, func_80387150);
marker_setCollisionScripts(this->marker, func_80387124, NULL, CCW_func_80387150);
chwasp_setState(this, 1);
return;
}

View File

@ -5,22 +5,22 @@
void func_803867BC(Actor *this);
/* .data */
ActorAnimationInfo D_803919F0[] ={
ActorAnimationInfo FP_D_803919F0[] ={
{ASSET_1A1_ANIM_SLED, 1.0f},
{ASSET_1A1_ANIM_SLED, 1.0f},
{ASSET_1A1_ANIM_SLED, 1.0f},
{ASSET_1A1_ANIM_SLED, 1.0f}
};
ActorInfo D_80391A10 = {
ActorInfo FP_D_80391A10 = {
MARKER_3B_SCARF_SLED, ACTOR_181_SCARF_SLED, ASSET_352_MODEL_SLED,
0, D_803919F0,
0, FP_D_803919F0,
NULL, func_803867BC, func_80325888,
1000, 0, 0.0f, 0
};
/* .code */
void func_803863F0(Actor *this, s32 next_state){
void FP_func_803863F0(Actor *this, s32 next_state){
func_80328A84(this, next_state);
if(next_state == 2){
@ -47,7 +47,7 @@ void func_803864F4(ActorMarker *this_marker, ActorMarker *other_marker){
if(player_getTransformation() != TRANSFORM_1_BANJO) return;
if(func_8028F68C(BS_INTR_27_BANJO_SLED, this->marker))
func_803863F0(this, 2);
FP_func_803863F0(this, 2);
}
void func_8038655C(Actor *this){
@ -128,7 +128,7 @@ void func_803867BC(Actor *this){
this->marker->propPtr->unk8_3 = TRUE;
this->unk10_12 = 0;
ml_vec3f_clear(this->velocity);
func_803863F0(this, 1);
FP_func_803863F0(this, 1);
}
if(!this->unk16C_4){

View File

@ -143,7 +143,7 @@ void func_803881AC(Actor *this){
if( 1.0f == this->velocity_x && func_80387EE4(this)){
func_8025A6EC(COMUSIC_2B_DING_B, 28000);
func_8038BA88(this->unkF4_8);
FP_func_8038BA88(this->unkF4_8);
}
if(func_80388000(this)){

View File

@ -25,7 +25,7 @@ typedef struct {
Actor *func_80388740(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_80388D70(ActorMarker *caller, enum asset_e text_id, s32 arg2);
void func_80388EE8(ParticleEmitter *pCtrl);
void func_80388F4C(Actor *this);
void FP_func_80388F4C(Actor *this);
void func_803896FC(Actor *this);
/* .data */
@ -47,7 +47,7 @@ ActorAnimationInfo D_80391C80[] = {
ActorInfo D_80391CE8 = { 0x97, ACTOR_C8_BOGGY_2, ASSET_38A_MODEL_BOGGY_1,
0x1, D_80391C80,
func_80388F4C, func_803896FC, func_80388740,
FP_func_80388F4C, func_803896FC, func_80388740,
0, 0, 1.4f, 0
};
f32 D_80391D0C[3] = {1842.0f, 658.0f, 5758.0f};
@ -67,7 +67,7 @@ struct42s D_80391D58 = {
};
f32 D_80391D88[3] = { 1592.0f, 673.0f, 5895.0f};
f32 D_80391D94[3] = {0.0f, 0.0f, 0.0f};
f32 FP_D_80391D94[3] = {0.0f, 0.0f, 0.0f};
s32 D_80391DA0[3] = {0x5F5, 0x292, 0x1539};
s32 D_80391DAC[3] = {-0x11F8, 0x637, -0x1816};
Struct_FP_2350 D_80391DB8[7]={
@ -117,7 +117,7 @@ Actor *func_80388740(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
return this;
}
void func_803888E4(Actor *this){
void FP_func_803888E4(Actor *this){
func_80328B8C(this, 0xC, 0.0001f, 1);
if(!jiggyscore_isSpawned(JIGGY_30_FP_BOGGY_2)){
if(mapSpecificFlags_get(5)){
@ -200,7 +200,7 @@ void func_80388C88(Actor *this){
local->unk18 = 1;
}
bool func_80388CA0(Actor *this){
bool FP_func_80388CA0(Actor *this){
ActorLocal_FP_2350 *local = (ActorLocal_FP_2350 *)&this->local;
u32 sp20;
@ -241,7 +241,7 @@ void func_80388D70(ActorMarker *caller, enum asset_e text_id, s32 arg2){
default://L80388E78
switch(arg2){
case 1:
func_803888E4(this);
FP_func_803888E4(this);
mapSpecificFlags_set(6, TRUE);
break;
case 0:
@ -263,10 +263,10 @@ void func_80388EE8(ParticleEmitter *pCtrl){
func_802F0D54(pCtrl);
}
void func_80388F4C(Actor *this){}
void FP_func_80388F4C(Actor *this){}
void func_80388F54(ActorMarker *marker){
Actor *other = func_80328230(ACTOR_C8_BOGGY_2, D_80391D88, D_80391D94);
Actor *other = func_80328230(ACTOR_C8_BOGGY_2, D_80391D88, FP_D_80391D94);
func_80343DEC(other);
}
@ -463,11 +463,11 @@ void func_803896FC(Actor *this){
switch(this->state){
case 1:// L803899B8
if(func_80388CA0(this)){
if(FP_func_80388CA0(this)){
func_80388B18(this, local->unk19);
}//L803899DC
else if(!jiggyscore_isCollected(JIGGY_30_FP_BOGGY_2) && func_8028ECAC() == BSGROUP_C_WALRUS_SLED){
func_803888E4(this);
FP_func_803888E4(this);
}
else if( func_80329530(this, 0x1C2)
&& func_8028ECAC() == 0

View File

@ -27,7 +27,7 @@ ActorInfo D_80391E08 = { MARKER_1FA_POLAR_BEAR_CUB_BLUE, ACTOR_1EA_POLAR_BEAR_CU
2500, 0, 1.2f, 0
};
ActorInfo D_80391E2C = { MARKER_1FB_POLAR_BEAR_CUB_GREEN, ACTOR_1EB_POLAR_BEAR_CUB_GREEN, ASSET_44D_MODEL_POLAR_BEAR_CUB_GREEN,
ActorInfo FP_D_80391E2C = { MARKER_1FB_POLAR_BEAR_CUB_GREEN, ACTOR_1EB_POLAR_BEAR_CUB_GREEN, ASSET_44D_MODEL_POLAR_BEAR_CUB_GREEN,
0x1, D_80391DF0,
func_8038A384, func_80326224, func_80325888,
2500, 0, 1.2f, 0
@ -39,7 +39,7 @@ ActorInfo D_80391E50 = { MARKER_1FC_POLAR_BEAR_CUB_RED, ACTOR_1EC_POLAR_BEAR_CUB
2500, 0, 1.2f, 0
};
f32 D_80391E74[3] = {-5.0f, 180.0f, 1.0f};
f32 FP_D_80391E74[3] = {-5.0f, 180.0f, 1.0f};
Struct_FP_3E00 D_80391E80[] ={
{0x11, MARKER_1FD_BLUE_PRESENT_COLLECTABLE, ACTOR_1ED_BLUE_PRESENT_COLLECTABLE, 0x1EE},
{0x12, MARKER_1FE_GREEN_PRESENT_COLLECTABLE, ACTOR_1EF_GREEN_PRESENT_COLLECTABLE, 0x1F0},
@ -72,7 +72,7 @@ void func_8038A274(Actor *this){
void func_8038A318(ActorMarker *caller, enum asset_e text_id, s32 arg1){
if(text_id == 0xc19){
func_802BAFE4(0x25);
jiggySpawn(JIGGY_2E_FP_PRESENTS, D_80391E74);
jiggySpawn(JIGGY_2E_FP_PRESENTS, FP_D_80391E74);
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 32000);
func_8025A6EC(COMUSIC_5B_FP_IGLOO_HAPPY, 25000);
func_8025A58C(0, 4000);

View File

@ -14,7 +14,7 @@ typedef struct {
extern Struct_FP_45D0_0 D_80392F50;
/* .code */
void func_8038A9C0(void){
void FP_func_8038A9C0(void){
if( map_get() != MAP_27_FP_FREEZEEZY_PEAK
|| jiggyscore_isCollected(JIGGY_2D_FP_SNOWMAN_BUTTONS)
|| jiggyscore_isSpawned(JIGGY_2D_FP_SNOWMAN_BUTTONS)

View File

@ -44,7 +44,7 @@ extern Struct_FP_4770 D_80393280[0x27];
/* .code */
void func_8038AB60(s32 arg0){
void FP_func_8038AB60(s32 arg0){
int i;
func_8028F8F8(0xe, arg0 ^ 1);
@ -176,7 +176,7 @@ void func_8038B074(s32 indx){
}
}
void func_8038B0B8(void){
void FP_func_8038B0B8(void){
int i;
for(i = 0; i < 5; i++){
func_8038B074(i);
@ -210,7 +210,7 @@ void func_8038B1C4(void){
void func_8038B1D0(enum jiggy_e jiggy_id){
timed_setCameraToNode(0.0f, 3);
timedFunc_set_0(0.0f, func_8038AEA0);
timedFunc_set_0(0.0f, func_8038B0B8);
timedFunc_set_0(0.0f, FP_func_8038B0B8);
timedFunc_set_1(0.1f, (GenMethod_1) func_8038B130, jiggy_id);
timedFunc_set_0(5.0f, func_8038B190);
timedFunc_set_0(5.0f, func_8038B1C4);
@ -221,7 +221,7 @@ void func_8038B1D0(enum jiggy_e jiggy_id){
void func_8038B268(void){
func_80324E88(0.0f);
timedFunc_set_0(0.0f, func_8038AEA0);
timedFunc_set_0(0.0f, func_8038B0B8);
timedFunc_set_0(0.0f, FP_func_8038B0B8);
func_8028FA14(map_get(), 0x11);
func_8028F66C(BS_INTR_2A);
}
@ -264,7 +264,7 @@ void func_8038B39C(void){
}
func_8028F918(1);
func_8025A6EC(COMUSIC_3B_MINIGAME_VICTORY, 28000);
func_8038AB60(0);
FP_func_8038AB60(0);
func_8038ABDC();
timed_setCameraToNode(0.0f, 1);
}
@ -278,7 +278,7 @@ void func_8038B410(void){
sp2C->unk38_31 = 1;
func_8025A6EC(COMUSIC_3C_MINIGAME_LOSS, 28000);
func_8038AB60(0);
FP_func_8038AB60(0);
func_8038ABDC();
if(!jiggyscore_isCollected(JIGGY_30_FP_BOGGY_2)){
timed_setCameraToNode(0.0f, 1);
@ -355,7 +355,7 @@ void func_8038B544(void){
void func_8038B7A4(void){
int i;
func_8038AB60(0);
FP_func_8038AB60(0);
if(map_get() != MAP_27_FP_FREEZEEZY_PEAK || jiggyscore_isCollected(JIGGY_2C_FP_BOGGY_3)){
D_803935A8.unk0 = 0;
@ -442,11 +442,11 @@ void func_8038B9C8(void){
D_803935A8.unk18 = 0;
D_803935A8.unk19 = 0;
D_803935A8.unk1A = 0;
func_8038AB60(1);
FP_func_8038AB60(1);
D_803935A8.unk0 = 2;
}
void func_8038BA88(s32 arg0){
void FP_func_8038BA88(s32 arg0){
D_803935A8.unk8 = --arg0;
func_8038AC20(arg0, 3);
@ -517,7 +517,7 @@ void func_8038BC0C(s32 arg0){
if(D_803935A8.unk1A)
break;
D_803935A8.unk1A = TRUE;
func_8038AB60(0);
FP_func_8038AB60(0);
if(!func_8028F22C()){
func_8028F918(2);
func_80311480(0xc10, 0x20, NULL, NULL, func_8038B2C8, NULL);

View File

@ -6,16 +6,16 @@ Actor *func_803868C0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_80386AA4(Actor *this);
/* .data */
ActorAnimationInfo D_80391A40 []= {
ActorAnimationInfo FP_D_80391A40 []= {
{ ASSET_1A1_ANIM_SLED, 1.0f},
{ ASSET_1A1_ANIM_SLED, 1.0f},
{ ASSET_1A1_ANIM_SLED, 1.0f},
{ ASSET_1A1_ANIM_SLED, 1.0f}
};
ActorInfo D_80391A60 = {
ActorInfo FP_D_80391A60 = {
MARKER_3C_RACE_SLED, ACTOR_182_RACE_SLED, ASSET_352_MODEL_SLED,
0x0, D_80391A40,
0x0, FP_D_80391A40,
func_80386AA4, NULL, func_803868C0,
1000, 0, 0.0f, 0
};
@ -29,7 +29,7 @@ Actor *func_803868C0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
return this;
}
void func_80386920(Actor *this, s32 next_state){
void FP_func_80386920(Actor *this, s32 next_state){
if(this->state != 1 || next_state != 1){
func_80328A84(this, next_state);
switch(next_state){
@ -60,7 +60,7 @@ void func_803869FC(ActorMarker *this_marker, ActorMarker *other_marker){
&& player_getTransformation() == TRANSFORM_4_WALRUS
&& func_8028F68C(BS_INTR_27_WALRUS_SLED, this->marker)
){
func_80386920(this, 3); //start_race
FP_func_80386920(this, 3); //start_race
}
}
}
@ -70,23 +70,23 @@ void func_80386AA4(Actor *this){
if(!this->initialized){
this->initialized = TRUE;
marker_setCollisionScripts(this->marker, func_803869FC, NULL, NULL);
func_80386920(this, 1);
FP_func_80386920(this, 1);
}
sp24 = mapSpecificFlags_get(4);
if(sp24 == 0){
func_80386920(this, 1);
FP_func_80386920(this, 1);
}
switch (this->state){
case 1://L80386B38
if(sp24){
func_80386920(this, 2);
FP_func_80386920(this, 2);
}
break;
case 3://L80386B50
if(func_8028ECAC() != BSGROUP_C_WALRUS_SLED){
func_80386920(this, 2);
FP_func_80386920(this, 2);
}
break;
}

View File

@ -5,7 +5,7 @@
extern void func_80324CD8(f32);
extern Actor *func_8032813C(enum actor_e, f32[3], s32);
Actor *func_8038CED0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
Actor *FP_func_8038CED0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_8038D6C8(Actor *this);
/* .data */
@ -19,7 +19,7 @@ ActorAnimationInfo D_803920C0[] ={
ActorInfo D_803920E8 = { 0x204, 0x336, 0x442,
0x1, D_803920C0,
func_8038D6C8, func_80326224, func_8038CED0,
func_8038D6C8, func_80326224, FP_func_8038CED0,
0, 0, 0.0f, 0
};
@ -115,7 +115,7 @@ enum actor_e D_8039236C[4] = {
f32 D_8039237C[3] = {-3940.0f, 69.0f, 3570.0f};
/* .code */
Actor *func_8038CED0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
Actor *FP_func_8038CED0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
Actor *this = marker_getActor(marker);
if( func_8038BFA0() || func_8031FF1C(BKPROG_13) ){
if(0.0f == this->velocity[1])

View File

@ -3,20 +3,20 @@
#include "variables.h"
Actor *func_80386B80(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_80386CF8(Actor *this);
void FP_func_80386CF8(Actor *this);
/* .data */
ActorAnimationInfo D_80391A90[] ={
ActorAnimationInfo FP_D_80391A90[] ={
{0, 0.0},
{ASSET_143_ANIM_SNOWMAN_BUTTON, 800000.0f},
{ASSET_143_ANIM_SNOWMAN_BUTTON, 0.5f},
{ASSET_143_ANIM_SNOWMAN_BUTTON, 800000.0f}
};
ActorInfo D_80391AB0 = {
ActorInfo FP_D_80391AB0 = {
MARKER_B9_FP_SNOWMAN_BUTTON, ACTOR_116_FP_SNOWMAN_BUTTON, ASSET_421_MODEL_FP_SNOWMAN_BUTTON,
0x1, D_80391A90,
func_80386CF8, func_80326224, func_80386B80,
0x1, FP_D_80391A90,
FP_func_80386CF8, func_80326224, func_80386B80,
0, 0x800, 0.0f, 0
};
@ -45,7 +45,7 @@ Actor *func_80386B80(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
}
void func_80386BEC(Actor *this){
void FP_func_80386BEC(Actor *this){
f32 plyr_pos[3];
ParticleEmitter *pCtrl = partEmitList_pushNew(12);
@ -67,11 +67,11 @@ void func_80386CB8(ActorMarker *this_marker, ActorMarker *other_marker){
Actor *this = marker_getActor(this_marker);
if(this->state == 1)
func_80386BEC(this);
FP_func_80386BEC(this);
}
void func_80386CF8(Actor *this){
void FP_func_80386CF8(Actor *this){
marker_setCollisionScripts(this->marker, NULL, NULL, func_80386CB8);
this->marker->propPtr->unk8_3 = TRUE;
actor_collisionOn(this);

View File

@ -11,14 +11,14 @@ typedef struct {
} ActorLocal_Wozza;
Actor *func_8038F210(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_8038F7AC(Actor *this);
void FP_func_8038F7AC(Actor *this);
/* .data */
extern ActorAnimationInfo D_80392520[];
extern ActorInfo D_80392588 = { MARKER_20B_WOZZA, ACTOR_1F3_WOZZA, ASSET_494_MODEL_WOZZA,
0x1, D_80392520,
func_8038F7AC, func_80326224, func_8038F210,
FP_func_8038F7AC, func_80326224, func_8038F210,
0, 0, 1.6f, 0
};
@ -132,7 +132,7 @@ bool func_8038F5D4(Actor *this, f32 arg1[3], f32 arg2, f32 arg3, s32 arg4){
}
bool func_8038F6C4(Actor *this, f32 arg1[3], f32 arg2){
bool FP_func_8038F6C4(Actor *this, f32 arg1[3], f32 arg2){
s32 dTheta;
func_80328C64(this, func_803297C8(this, arg1));
@ -144,7 +144,7 @@ bool func_8038F6C4(Actor *this, f32 arg1[3], f32 arg2){
return FALSE;
}
void func_8038F758(ActorMarker *marker){
void FP_func_8038F758(ActorMarker *marker){
Actor *this = marker_getActor(reinterpret_cast(ActorMarker *, marker));
Actor *jiggy = spawn_child_actor(ACTOR_1F4_WOZZAS_JIGGY, &this);
s32 pad;
@ -155,7 +155,7 @@ void func_8038F758(ActorMarker *marker){
}
void func_8038F7AC(Actor *this){
void FP_func_8038F7AC(Actor *this){
ActorLocal_Wozza * local = (ActorLocal_Wozza *)&this->local;
if(func_803203FC(0xC4)){
@ -190,7 +190,7 @@ void func_8038F7AC(Actor *this){
this->position[0] = local->unkC[0];\
this->position[1] = local->unkC[1];\
this->position[2] = local->unkC[2];
__spawnqueue_add_1(func_8038F758, this->marker);
__spawnqueue_add_1(FP_func_8038F758, this->marker);
local->unk30 = FALSE;
}
}//L8038F910
@ -244,7 +244,7 @@ void func_8038F7AC(Actor *this){
break;
case 5: //L8038FB50
func_8038F6C4(this, local->unk18, 1.0f);
FP_func_8038F6C4(this, local->unk18, 1.0f);
if(0.97 < animctrl_getAnimTimer(this->animctrl)){
func_80328B8C(this, 6, 0.02f, 1);
actor_loopAnimation(this);
@ -252,7 +252,7 @@ void func_8038F7AC(Actor *this){
break;
case 6: //L8038FBA8
func_8038F6C4(this, local->unk18, 1.0f);
FP_func_8038F6C4(this, local->unk18, 1.0f);
if( func_80329530(this, 1700) ) break;
if( func_8028ECAC() == BSGROUP_A_FLYING ) break;
@ -266,7 +266,7 @@ void func_8038F7AC(Actor *this){
break;
case 7: //L8038FC30
if(!func_8038F6C4(this, local->unkC, 4.5f))
if(!FP_func_8038F6C4(this, local->unkC, 4.5f))
break;
if(func_80329530(this, 1000) || func_8028ECAC() == BSGROUP_A_FLYING){
@ -294,7 +294,7 @@ void func_8038F7AC(Actor *this){
}//L8038FD40
if(mapSpecificFlags_get(8)){
if(func_8038F6C4(this, D_803925AC, 9.0f)){
if(FP_func_8038F6C4(this, D_803925AC, 9.0f)){
func_80328B8C(this, 9, 0.02f, 1);
actor_playAnimationOnce(this);
}
@ -315,7 +315,7 @@ void func_8038F7AC(Actor *this){
break;
case 9: //L8038FE14
func_8038F6C4(this, D_803925AC, 9.0f);
FP_func_8038F6C4(this, D_803925AC, 9.0f);
if(0.97 < animctrl_getAnimTimer(this->animctrl)){
func_80328B8C(this, 10, 0.02f, 1);
actor_loopAnimation(this);

View File

@ -2,21 +2,21 @@
#include "functions.h"
#include "variables.h"
Actor *func_80386E30(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
Actor *FP_func_80386E30(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void chXmasTree_update(Actor *this);
/* .data */
ActorInfo D_80391B50 = {
MARKER_BA_XMAS_TREE, ACTOR_15F_XMAS_TREE, ASSET_488_MODEL_XMAS_TREE,
0x1, NULL,
chXmasTree_update, func_80326224, func_80386E30,
chXmasTree_update, func_80326224, FP_func_80386E30,
0, 0, 0.0f, 0
};
s32 chXmasTree_switch_spawn_position[3] = {-0x1220, 0x6A, 0x1945};
/* .code */
Actor *func_80386E30(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
Actor *FP_func_80386E30(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
Actor *this = marker_getActor(marker);
func_8033A45C(5, this->unk38_31);
func_8033A45C(6, func_8031FF1C(0x13) && !func_8033A0F0(5));
@ -34,7 +34,7 @@ void func_80386EAC(Actor *this){
}
}
void func_80386EF4(Actor *this, int arg1){
void FP_func_80386EF4(Actor *this, int arg1){
this->unk38_31 = arg1;
mapSpecificFlags_set(0, this->unk38_31);
@ -49,14 +49,14 @@ void func_80386F3C(void){
void func_80386F84(Actor * this){
func_80328A84(this, 2);
func_80386EF4(this, 0);
FP_func_80386EF4(this, 0);
}
void func_80386FB4(void){
func_8032811C(ACTOR_338_XMAS_TREE_SWITCH, chXmasTree_switch_spawn_position, 350);
}
void func_80386FE0(void *marker){
void FP_func_80386FE0(void *marker){
Actor *this = marker_getActor(reinterpret_cast(ActorMarker *, marker));
Actor *child = spawn_child_actor(0x339, &this);
s32 pad;
@ -99,7 +99,7 @@ void chXmasTree_update(Actor *this){
sfxsource_setSampleRate(this->unk44_31, 28000);
}
func_802C3BF8(func_80386FB4);
__spawnqueue_add_1(func_80386FE0, this->marker);
__spawnqueue_add_1(FP_func_80386FE0, this->marker);
if(func_8031FF1C(0x13)){
func_80386F84(this);
mapSpecificFlags_set(2, FALSE);
@ -108,13 +108,13 @@ void chXmasTree_update(Actor *this){
this->unk124_9 = 1;
if(jiggyscore_isCollected(JIGGY_2F_FP_XMAS_TREE) || levelSpecificFlags_get(0x29)){
func_80386EF4(this, 1);
FP_func_80386EF4(this, 1);
return;
}
switch(this->state){
case 1: // L80387268
func_80386EF4(this, 0);
FP_func_80386EF4(this, 0);
if(func_8031FF1C(0x13)){
func_80386F84(this);
}
@ -133,14 +133,14 @@ void chXmasTree_update(Actor *this){
case 3: // L803872F0
if(0.0 <= this->unk60){
if( 1.8 < this->unk60){
func_80386EF4(this, 0);
FP_func_80386EF4(this, 0);
}
else if(this->unk60 < 0.2){//L80387340
func_80386EF4(this, 1);
FP_func_80386EF4(this, 1);
}
else{
if(randf() < 0.2){
func_80386EF4(this, this->unk38_31 ^ 1);
FP_func_80386EF4(this, this->unk38_31 ^ 1);
func_8038709C(this);
}
}//L803873AC
@ -149,7 +149,7 @@ void chXmasTree_update(Actor *this){
else{//L803873BC
if(func_802BB270()){
func_80328A84(this, 4);
func_80386EF4(this, 1);
FP_func_80386EF4(this, 1);
item_set(ITEM_0_HOURGLASS_TIMER, 3600 - 1);
item_set(ITEM_6_HOURGLASS, TRUE);
@ -160,7 +160,7 @@ void chXmasTree_update(Actor *this){
case 4: // L80387400
if(mapSpecificFlags_get(3)){
func_80328A84(this, 6);
func_80386EF4(this, 1);
FP_func_80386EF4(this, 1);
item_set(ITEM_6_HOURGLASS, FALSE);
tmp_a0 = this->unk44_31;
if(tmp_a0){
@ -189,14 +189,14 @@ void chXmasTree_update(Actor *this){
case 5: // L803874EC
if(0.0 <= this->unk60){
if( 1.8 < this->unk60){
func_80386EF4(this, 1);
FP_func_80386EF4(this, 1);
}
else if(this->unk60 < 0.2){
func_80386EF4(this, 0);
FP_func_80386EF4(this, 0);
}
else{
if(randf() < 0.2){
func_80386EF4(this, this->unk38_31 ^ 1);
FP_func_80386EF4(this, this->unk38_31 ^ 1);
func_8038709C(this);
}
}

View File

@ -7,12 +7,12 @@ extern s32 func_8024DB50(f32[3], f32);
void func_80390EB0(Actor *this);
/* .data */
extern ActorInfo D_80392840 = { MARKER_245_XMAS_TREE_EGG_TOLL, ACTOR_353_XMAS_TREE_EGG_TOLL, ASSET_402_MODEL_EGG_TOLL,
extern ActorInfo FP_D_80392840 = { MARKER_245_XMAS_TREE_EGG_TOLL, ACTOR_353_XMAS_TREE_EGG_TOLL, ASSET_402_MODEL_EGG_TOLL,
0x0, NULL,
func_80390EB0, func_80326224, func_80325340,
2000, 0, 0.0f, 0
};
struct40s D_80392864;
extern struct40s FP_D_80392864;
s32 D_80392894[3];
struct40s D_803928A0;
s32 D_803928D0[3];
@ -33,7 +33,7 @@ void func_80390C70(f32 position[3]){
0.0f, 40.0f, 0.0f,
0.0f, 90.0f, 0.0f
);
func_802EFC28(pCtrl, &D_80392864);
func_802EFC28(pCtrl, &FP_D_80392864);
}
void func_80390D58(f32 position[3]){

View File

@ -7,16 +7,16 @@
extern ActorInfo D_80367FE0;
extern ActorInfo D_80391A10;
extern ActorInfo D_80391A60;
extern ActorInfo D_80391AB0;
extern ActorInfo FP_D_80391A10;
extern ActorInfo FP_D_80391A60;
extern ActorInfo FP_D_80391AB0;
extern ActorInfo D_80391B50;
extern ActorInfo D_80391BB0;
extern ActorInfo D_80391C18;
extern ActorInfo D_80391C58;
extern ActorInfo D_80391CE8;
extern ActorInfo D_80391E08;
extern ActorInfo D_80391E2C;
extern ActorInfo FP_D_80391E2C;
extern ActorInfo D_80391E50;
extern ActorInfo D_80391F88;
extern ActorInfo D_80391FAC;
@ -35,25 +35,25 @@ extern ActorInfo D_80392690;
extern ActorInfo D_803926C0;
extern ActorInfo D_80392700;
extern ActorInfo D_80392730;
extern ActorInfo D_80392840;
extern ActorInfo FP_D_80392840;
void func_80391040(Actor *this);
void func_80391180(Actor *this);
void func_80391254(Actor *this);
void FP_func_80391254(Actor *this);
void func_803912EC(Actor *this);
void func_8039180C(Actor *this);
void func_80391894(Actor *this);
/* .data */
ActorInfo D_803928E0 = { 0x247, 0x355, 0x4E5, 0x0, NULL, func_80391040, func_80326224, func_80325888, 3000, 0, 0.0f, 0};
ActorInfo FP_D_803928E0 = { 0x247, 0x355, 0x4E5, 0x0, NULL, func_80391040, func_80326224, func_80325888, 3000, 0, 0.0f, 0};
ActorInfo D_80392904 = { 0x248, 0x356, 0x4E6, 0x0, NULL, func_80391040, func_80326224, func_80325888, 3000, 0, 0.0f, 0};
ActorInfo D_80392928 = { 0x249, 0x357, 0x4E7, 0x0, NULL, func_80391040, func_80326224, func_80325888, 3000, 0, 0.0f, 0};
ActorInfo D_8039294C = { 0x24A, 0x358, 0x4E8, 0x0, NULL, func_80391040, func_80326224, func_80325888, 3000, 0, 0.0f, 0};
ActorInfo D_80392970 = { 0x21F, 0x22B, 0x4C4, 0x1, NULL, func_80391180, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_80392994 = { 0x220, 0x22C, 0x4C5, 0x1, NULL, func_80391180, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_803929B8 = { 0x221, 0x22D, 0x4C6, 0x1, NULL, func_80391254, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_803929DC = { 0x222, 0x22E, 0x4C6, 0x1, NULL, func_80391254, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_80392A00 = { 0x223, 0x22F, 0x4C6, 0x1, NULL, func_80391254, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_803929B8 = { 0x221, 0x22D, 0x4C6, 0x1, NULL, FP_func_80391254, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_803929DC = { 0x222, 0x22E, 0x4C6, 0x1, NULL, FP_func_80391254, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_80392A00 = { 0x223, 0x22F, 0x4C6, 0x1, NULL, FP_func_80391254, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_80392A24 = { 0x24B, 0x35D, 0x4E9, 0x1, NULL, func_803912EC, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_80392A48 = { 0x24C, 0x35E, 0x4EC, 0x1, NULL, func_803912EC, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_80392A6C = { 0x24D, 0x35F, 0x4EA, 0x1, NULL, func_803912EC, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
@ -131,7 +131,7 @@ void func_80391180(Actor *this){
}
}
void func_80391254(Actor *this){
void FP_func_80391254(Actor *this){
func_802D3D74(this);
if(!this->unk16C_4){
this->unk16C_4 = TRUE;
@ -152,15 +152,15 @@ void func_803912EC(Actor *this){
}
void func_80391324(void)
void FP_func_80391324(void)
{
spawnableActorList_add(&D_80391AB0, actor_new, 0X600);
spawnableActorList_add(&FP_D_80391AB0, actor_new, 0X600);
spawnableActorList_add(&D_80391BB0, actor_new, 0X2A);
spawnableActorList_add(&D_80391C18, actor_new, 0X180084);
spawnableActorList_add(&D_80391C58, actor_new, 0X180084);
spawnableActorList_add(&D_80391CE8, actor_new, 0X2002E);
spawnableActorList_add(&D_80391E08, actor_new, 0X100);
spawnableActorList_add(&D_80391E2C, actor_new, 0X100);
spawnableActorList_add(&FP_D_80391E2C, actor_new, 0X100);
spawnableActorList_add(&D_80391E50, actor_new, 0X100);
spawnableActorList_add(&D_80391F88, actor_new, 0X2100C);
spawnableActorList_add(&D_80391FAC, actor_new, 0X2100C);
@ -174,17 +174,17 @@ void func_80391324(void)
spawnableActorList_add(&D_803924B0, actor_new, 8);
spawnableActorList_add(&D_803924D4, actor_new, 8);
spawnableActorList_add(&D_803924F8, actor_new, 8);
spawnableActorList_add(&D_80391A10, actor_new, 0);
spawnableActorList_add(&D_80391A60, actor_new, 0X20);
spawnableActorList_add(&FP_D_80391A10, actor_new, 0);
spawnableActorList_add(&FP_D_80391A60, actor_new, 0X20);
spawnableActorList_add(&D_80392588, actor_new, 0X80108);
spawnableActorList_add(&D_80392628, actor_new, 0X44);
spawnableActorList_add(&D_80392690, actor_new, 0XA8);
spawnableActorList_add(&D_803926C0, actor_new, 0X8000400);
spawnableActorList_add(&D_80392700, actor_new, 0X108);
spawnableActorList_add(&D_80392840, actor_new, 0);
spawnableActorList_add(&FP_D_80392840, actor_new, 0);
spawnableActorList_add(&D_80392730, actor_new, 0X20000);
spawnableActorList_add(&D_80367FE0, actor_new, 0);
spawnableActorList_add(&D_803928E0, actor_new, 0X40);
spawnableActorList_add(&FP_D_803928E0, actor_new, 0X40);
spawnableActorList_add(&D_80392904, actor_new, 0X40);
spawnableActorList_add(&D_80392928, actor_new, 0X40);
spawnableActorList_add(&D_8039294C, actor_new, 0X40);

View File

@ -5,7 +5,7 @@
void chtoots_update(Actor *this);
/* .data */
ActorAnimationInfo D_80390BD0[] = {
ActorAnimationInfo GV_D_80390BD0[] = {
{0x000, 0.0f},
{ASSET_162_ANIM_TOOTS_IDLE, 5.0f},
{ASSET_162_ANIM_TOOTS_IDLE, 2.5f},
@ -13,7 +13,7 @@ ActorAnimationInfo D_80390BD0[] = {
};
ActorInfo D_80390BF0 = { MARKER_1F4_TOOTS, ACTOR_1E4_TOOTS, ASSET_434_MODEL_TOOTS,
0x1, D_80390BD0,
0x1, GV_D_80390BD0,
chtoots_update, func_80326224, func_80325888,
2000, 0, 0.5f, 0
};
@ -23,12 +23,12 @@ s32 D_80391A30;
s32 D_80391A34;
/* .code */
void func_803863F0(Actor *this){
void GV_func_803863F0(Actor *this){
func_80328B8C(this, 1, 0.0001f, 1);
D_80391A30 = FALSE;
}
void func_80386420(Actor *this){
void GV_func_80386420(Actor *this){
func_80328B8C(this, 2, 0.0001f, 1);
this->unk38_31 = 0x23;
}
@ -50,7 +50,7 @@ void chtoots_update(Actor *this){
func_80386464(this);
}
else if(D_80391A30 == TRUE){
func_80386420(this);
GV_func_80386420(this);
}
break;
case 2://L80386540
@ -64,12 +64,12 @@ void chtoots_update(Actor *this){
}
}
else{
func_803863F0(this);
GV_func_803863F0(this);
}
break;
case 3://L803865C8
if(!D_80391A34)
func_803863F0(this);
GV_func_803863F0(this);
break;
}//L803865DC
}

View File

@ -13,7 +13,7 @@ void chgobi2_update(Actor *this);
Actor *chgobi2_draw(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
/* .data */
ActorInfo D_80390CB0 = { MARKER_BF_GOBI_2, ACTOR_131_GOBI_2, ASSET_3E0_MODEL_GOBI,
ActorInfo GV_D_80390CB0 = { MARKER_BF_GOBI_2, ACTOR_131_GOBI_2, ASSET_3E0_MODEL_GOBI,
0x0, NULL,
NULL, chgobi2_update, chgobi2_draw,
0, 0x533, 0.0f, 0
@ -26,7 +26,7 @@ f32 D_80390CEC[3] = {1145.0f, 443.0f, 9197.0f};
extern u8 D_80391A50;
/* .code */
void func_80387960(void){
void GV_func_80387960(void){
func_8028F490(D_80390CD4);
}
@ -43,7 +43,7 @@ void func_803879D4(ActorMarker *this_marker){
chgobi2_setState(this, 4);
}
void func_80387A00(ActorMarker *this_marker){
void GV_func_80387A00(ActorMarker *this_marker){
Actor *this = marker_getActor(reinterpret_cast(ActorMarker *, this_marker));
chgobi2_setState(this, 7);
}
@ -57,7 +57,7 @@ void func_80387A2C(ActorMarker *caller, enum asset_e text_id, s32 arg2){
timed_setCameraToNode(3.0f, 0xd);
timedFunc_set_0(3.5f, __chgobi2_spawnJIggy);
func_80324E88(6.0f);
timedFunc_set_1(6.0f, (GenMethod_1) func_80387A00, reinterpret_cast(s32, caller));
timedFunc_set_1(6.0f, (GenMethod_1) GV_func_80387A00, reinterpret_cast(s32, caller));
func_80324E38(6.0f, 0);
}
@ -76,7 +76,7 @@ void chgobi2_setState(Actor *this, s32 next_state){
}
if(next_state == 3){
timedFunc_set_0(0.05f, func_80387960);
timedFunc_set_0(0.05f, GV_func_80387960);
timed_playSfx(0.05f, SFX_84_GOBI_CRYING, 1.1f, 32000);
func_80324E38(0.051f, 1);
timedFunc_set_1(0.06f, (GenMethod_1)func_803879D4, reinterpret_cast(s32, this->marker));

View File

@ -17,9 +17,9 @@ void chancientone_update(Actor *this);
Actor *chancientone_draw(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
/* .data */
s16 D_80390C20[4] = {5, 6, 7, 8};
s16 GV_D_80390C20[4] = {5, 6, 7, 8};
ActorMarker *D_80390C28[5] = {NULL};
ActorAnimationInfo D_80390C3C[] = {
ActorAnimationInfo GV_D_80390C3C[] = {
{0, 0.0f},
{0, 0.0f},
{ASSET_ED_ANIM_ANCIENT_ONE, 2.0f},
@ -27,7 +27,7 @@ ActorAnimationInfo D_80390C3C[] = {
};
ActorInfo D_80390C5C = { MARKER_F4_ANCIENT_ONE, ACTOR_147_ANCIENT_ONE, ASSET_3E8_MODEL_ANCIENT_ONE,
0x1, D_80390C3C,
0x1, GV_D_80390C3C,
chancientone_update, func_80326224, chancientone_draw,
0, 0x100, 0.0f, 0
};
@ -48,19 +48,19 @@ void func_80386620(Actor *this){
return;
}
D_80390C20[0] = 5;
D_80390C20[1] = 6;
D_80390C20[2] = 7;
D_80390C20[3] = 8;
GV_D_80390C20[0] = 5;
GV_D_80390C20[1] = 6;
GV_D_80390C20[2] = 7;
GV_D_80390C20[3] = 8;
phi_s3 = (randf() * 1.0737418e9f);
phi_s2 = 1;
phi_s1 = 0;
while(phi_s2 != 0x40000000){
if ((phi_s3 & phi_s2) != 0) {
temp_a1 = D_80390C20[phi_s1];
D_80390C20[phi_s1] = D_80390C20[phi_s1 + 1];
D_80390C20[phi_s1 + 1] = temp_a1;
temp_a1 = GV_D_80390C20[phi_s1];
GV_D_80390C20[phi_s1] = GV_D_80390C20[phi_s1 + 1];
GV_D_80390C20[phi_s1 + 1] = temp_a1;
temp_a0 = D_80390C28[phi_s1 + 1];
D_80390C28[phi_s1 + 1] = D_80390C28[phi_s1 + 2];
D_80390C28[phi_s1 + 2] = temp_a0;
@ -166,7 +166,7 @@ void chancientone_update(Actor *this){
actor_playAnimationOnce(this);
if(this->unkF4_8 < 5){
D_80390C28[this->unkF4_8]->propPtr->unk8_4 = TRUE;
func_802BAFE4(D_80390C20[this->unkF4_8 - 1]);
func_802BAFE4(GV_D_80390C20[this->unkF4_8 - 1]);
func_80244BB0(2, 0x86, 0x7ff8, 0.3f);
timedFunc_set_0(0.45f, func_8038678C);
@ -259,7 +259,7 @@ Actor *chancientone_draw(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **v
}
void func_80387118(void){
void GV_func_80387118(void){
int i;
for(i = 0; i < 5; i++){
D_80390C28[i] = NULL;

View File

@ -24,7 +24,8 @@ ActorInfo D_80390D60 = { 0xBE, 0x130, 0x3E4,
f32 D_80390D84[3] = {5644.0f, 2930.0f, -3258.0f};
/*.bss */
u8 D_80391A60;
u8 GV_pad1[0x10];
u8 GV_D_80391A60;
/* .code */
void func_80388B20(Actor *this, s32 next_state){
@ -32,11 +33,11 @@ void func_80388B20(Actor *this, s32 next_state){
this->state = next_state;
local->unk14 = 0.0f;
D_80391A60 = FALSE;
GV_D_80391A60 = FALSE;
if(this->state == 2){
this->marker->propPtr->unk8_3 = FALSE;
local->unk14 = 2.6f;
D_80391A60 = TRUE;
GV_D_80391A60 = TRUE;
func_8028F428(2, this->marker);
FUNC_8030E624(SFX_9B_BOULDER_BREAKING_1, 0.3f, 9000);
FUNC_8030E624(SFX_9B_BOULDER_BREAKING_1, 0.5f, 9000);
@ -79,7 +80,7 @@ Actor *func_80388C64(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
}
s32 func_80388D78(void){
return D_80391A60;
return GV_D_80391A60;
}
void func_80388D84(Actor *this){
@ -103,7 +104,7 @@ void func_80388DC8(Actor *this){
marker_setCollisionScripts(this->marker, NULL, NULL, func_80388C24);
local->unkC = particleEmitter_new(20);
local->unk10 = particleEmitter_new(30);
D_80391A60 = FALSE;
GV_D_80391A60 = FALSE;
sp28 = func_80326D68(this->position, ACTOR_12E_GOBI_1, -1, &sp2C);
if(sp28){
this->position_x = sp28->position_x;

View File

@ -15,7 +15,7 @@ ActorInfo D_80390D90 = {
};
/* .code */
void func_80388F70(Actor *this, s32 next_state){
void GV_func_80388F70(Actor *this, s32 next_state){
this->state = next_state;
if(this->state == 1){
func_80335924(this->unk148, ASSET_FE_ANIM_TRUCKER_SHORT, 0.1f, 2.5f);
@ -62,10 +62,10 @@ void func_80389144(Actor *this){
actor_collisionOff(this);
mapSpecificFlags_set(0xC, FALSE);
if(jiggyscore_isSpawned(JIGGY_45_GV_GOBI_2) && !func_803203FC(1)){
func_80388F70(this, 3);
GV_func_80388F70(this, 3);
}
else{//L803891CC
func_80388F70(this, 1);
GV_func_80388F70(this, 1);
}
}//L803891D8
if( this->state == 1
@ -87,5 +87,5 @@ void func_80389144(Actor *this){
}
if(sp28)
func_80388F70(this, sp28);
GV_func_80388F70(this, sp28);
}

View File

@ -11,7 +11,7 @@ extern ActorAnimationInfo D_80390DC0[]={
{ASSET_F1_ANIM_MAGIC_CARPET, 2.0f}
};
extern ActorInfo D_80390DD0 = { MARKER_AF_MAGIC_CARPET_SHADOW, ACTOR_122_MAGIC_CARPET_SHADOW, ASSET_3E7_MODEL_MAGIC_CARPET_SHADOW,
extern ActorInfo GV_D_80390DD0 = { MARKER_AF_MAGIC_CARPET_SHADOW, ACTOR_122_MAGIC_CARPET_SHADOW, ASSET_3E7_MODEL_MAGIC_CARPET_SHADOW,
0x1, D_80390DC0,
func_8038938C, func_80326224, func_803892D0,
2500, 0, 0.0f, 0

View File

@ -9,7 +9,7 @@ void func_80389634(Actor *this);
void func_803898B8(Actor *this);
/* .data */
ActorAnimationInfo D_80390E00[] = {
ActorAnimationInfo GV_D_80390E00[] = {
{0x00, 0.0f},
{0xCD, 8000000.0f},
{0xCD, 2.5f},
@ -18,14 +18,14 @@ ActorAnimationInfo D_80390E00[] = {
{0xCD, 4.5f},
};
ActorInfo D_80390E30 = { 0xA8, 0x11A, 0x33D,
0x1, D_80390E00,
ActorInfo GV_D_80390E30 = { 0xA8, 0x11A, 0x33D,
0x1, GV_D_80390E00,
func_80389634, func_80326224, func_80325888,
2500, 0, 0.0f, 0
};
ActorInfo D_80390E54 = { 0x23B, 0x244, 0x33D,
0x1, D_80390E00,
0x1, GV_D_80390E00,
func_803898B8, func_80326224, func_80325888,
0, 0, 0.0f, 0
};
@ -33,7 +33,7 @@ s32 D_80390E78[4] = {0xff, 0xd0, 0x5d, 0xb4};
s32 D_80390E88[4] = {0, 0, 0, 0};
/* .code */
void func_803894B0(Actor *this){
void GV_func_803894B0(Actor *this){
this->marker->propPtr->unk8_3 = TRUE;
actor_collisionOff(this);
func_80328B8C(this, 1, 0.01f, 1);
@ -68,7 +68,7 @@ void func_80389634(Actor *this){
switch(this->state){
case 1: //L80389680
if(!this->initialized){
func_803894B0(this);
GV_func_803894B0(this);
}
if(func_80329530(this, 500) && func_8038957C(this)){
func_80328B8C(this, 2, 0.01f, 1);
@ -120,7 +120,7 @@ void func_80389634(Actor *this){
void func_803898B8(Actor *this){
if(!this->initialized){
func_803894B0(this);
GV_func_803894B0(this);
if(func_8031FF1C(BKPROG_A4_UNKOWN))
func_80328B8C(this, 3, 0.5f, 1);
this->unk1C[0] = 0.0f;

View File

@ -2,22 +2,22 @@
#include "functions.h"
#include "variables.h"
void func_80389E90(Actor *this);
void func_80389EA8(Actor *this);
void GV_func_80389E90(Actor *this);
void GV_func_80389EA8(Actor *this);
/* .data */
ActorInfo D_80390F00 = { MARKER_AB_RUBEES_EGG_POT, ACTOR_11D_RUBEES_EGG_POT, ASSET_3E1_MODEL_RUBEES_EGG_POT,
0x1, NULL,
func_80389E90, func_80389EA8, func_80325888,
GV_func_80389E90, GV_func_80389EA8, func_80325888,
2500, 0, 0.9f, 0
};
/* .code */
void func_80389E90(Actor *this){
void GV_func_80389E90(Actor *this){
this->marker->propPtr->unk8_3 = FALSE;
}
void func_80389EA8(Actor *this){
void GV_func_80389EA8(Actor *this){
this->marker->propPtr->unk8_3 = FALSE;
this->unk4C = 100 + 40*func_8038E178();
func_80343DEC(this);

View File

@ -4,12 +4,12 @@
extern int func_8024DB50(f32[3], f32);
void func_8038A084(Actor *this);
void GV_func_8038A084(Actor *this);
/* .data */
ActorInfo D_80390F40 = { 0x24F, 0x37C, 0x0,
0, NULL,
func_8038A084, func_80326224, func_80325340,
GV_func_8038A084, func_80326224, func_80325340,
2000, 0, 0.0f, 0
};
@ -45,7 +45,7 @@ void func_80389FA0(f32 position[3]){
func_802EFC28(pCtrl, &D_80390F64);
}
void func_8038A084(Actor *this){
void GV_func_8038A084(Actor *this){
if(this->unkF4_8 == 6 && !this->unk16C_4){
this->unk16C_4 = TRUE;
if( jiggyscore_isCollected(JIGGY_42_GV_WATER_PYRAMID) && this->yaw == 1.0f){

View File

@ -7,7 +7,7 @@ void func_80329904(ActorMarker *, s32, void *);
void func_8038A948(Actor *this);
void func_8038A9C0(Actor *this);
void GV_func_8038A9C0(Actor *this);
Actor *func_8038A7A0(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
/* .data */
@ -18,7 +18,7 @@ ActorAnimationInfo D_80391000[] = {
ActorInfo D_80391010 = { MARKER_A7_MAGIC_CARPET_1, ACTOR_119_MAGIC_CARPET_1, ASSET_3DC_MODEL_MAGIC_CARPET,
0x1, D_80391000,
func_8038A948, func_8038A9C0, func_8038A7A0,
func_8038A948, GV_func_8038A9C0, func_8038A7A0,
2500, 0, 0.0f, 0
};
@ -73,7 +73,7 @@ void func_8038A948(Actor *this){
}
}
void func_8038A9C0(Actor *this){
void GV_func_8038A9C0(Actor *this){
Actor * sp24;
if(!this->initialized){
this->initialized = TRUE;

View File

@ -34,7 +34,7 @@ struct43s D_803910D4 = {
};
/* .bss */
f32 D_80391A70[3];
f32 GV_D_80391A70[3];
/* .code */
void func_8038AB30(ParticleEmitter *pCtrl, f32 position[3], s32 cnt){
@ -233,15 +233,15 @@ void func_8038B124(Actor *this){
func_8038ABD8(this->position, 8);
}
else{
D_80391A70[0] = 2*this->unk28;
D_80391A70[1] = 0.0f;
D_80391A70[2] = 0.0f;
ml_vec3f_yaw_rotate_copy(D_80391A70, D_80391A70, this->yaw - 90.0);
GV_D_80391A70[0] = 2*this->unk28;
GV_D_80391A70[1] = 0.0f;
GV_D_80391A70[2] = 0.0f;
ml_vec3f_yaw_rotate_copy(GV_D_80391A70, GV_D_80391A70, this->yaw - 90.0);
D_80391A70[0] = D_80391A70[0] + this->position[0];
D_80391A70[1] = D_80391A70[1] + this->position[1];
D_80391A70[2] = D_80391A70[2] + this->position[2];
func_8038ABD8(D_80391A70, 1);
GV_D_80391A70[0] = GV_D_80391A70[0] + this->position[0];
GV_D_80391A70[1] = GV_D_80391A70[1] + this->position[1];
GV_D_80391A70[2] = GV_D_80391A70[2] + this->position[2];
func_8038ABD8(GV_D_80391A70, 1);
}
break;
@ -261,10 +261,10 @@ void func_8038B124(Actor *this){
case 5: //L8038B67C
if(this->marker->unk14_21 && actor_animationIsAt(this, 0.79f)){
func_8034A174(this->marker->unk44, 5, D_80391A70);
func_8038ACEC(D_80391A70, 2);
func_8034A174(this->marker->unk44, 6, D_80391A70);
func_8038ACEC(D_80391A70, 3);
func_8034A174(this->marker->unk44, 5, GV_D_80391A70);
func_8038ACEC(GV_D_80391A70, 2);
func_8034A174(this->marker->unk44, 6, GV_D_80391A70);
func_8038ACEC(GV_D_80391A70, 3);
func_802BB3DC(0, 18.0f, 0.92f);
func_8030E878(SFX_3_DULL_CANNON_SHOT, 1.0f, 32000, this->position, 2250.0f, 4500.0f);
}//L8038B734
@ -304,12 +304,12 @@ void func_8038B124(Actor *this){
case 9: //L8038B870
func_80328A84(this, 0xA);
func_8038ACEC(this->position, 2);
func_8034A174(this->marker->unk44, 5, D_80391A70);
func_8038ACEC(D_80391A70, 2);
func_8038ADFC(D_80391A70, 3);
func_8034A174(this->marker->unk44, 6, D_80391A70);
func_8038ACEC(D_80391A70, 3);
func_8038ADFC(D_80391A70, 2);
func_8034A174(this->marker->unk44, 5, GV_D_80391A70);
func_8038ACEC(GV_D_80391A70, 2);
func_8038ADFC(GV_D_80391A70, 3);
func_8034A174(this->marker->unk44, 6, GV_D_80391A70);
func_8038ACEC(GV_D_80391A70, 3);
func_8038ADFC(GV_D_80391A70, 2);
break;
case 10: //L8038B900

View File

@ -9,7 +9,7 @@ typedef struct {
s32 unk0;
}ActorLocal_Grabba;
void func_8038BEA0(Actor *this);
void GV_func_8038BEA0(Actor *this);
/* .data */
ActorAnimationInfo D_80391120[] ={
@ -24,7 +24,7 @@ ActorAnimationInfo D_80391120[] ={
ActorInfo D_80391158 = { MARKER_A6_GRABBA, ACTOR_118_GRABBA, ASSET_371_MODEL_GRABBA,
0x1, D_80391120,
func_8038BEA0, func_80326224, func_80325888,
GV_func_8038BEA0, func_80326224, func_80325888,
0, 0, 0.0f, 0
};
@ -153,7 +153,7 @@ void func_8038BD8C(f32 position[3], s32 cnt){
particleEmitter_emitN(pCtrl, cnt);
}
void func_8038BEA0(Actor *this){
void GV_func_8038BEA0(Actor *this){
ActorLocal_Grabba *local = (ActorLocal_Grabba *)&this->local;
f32 sp38[3];
@ -318,6 +318,6 @@ void func_8038BEA0(Actor *this){
}//L8038C5AC
}
s32 func_8038C5BC(void){
s32 GV_func_8038C5BC(void){
return D_80391A80;
}

View File

@ -2,8 +2,8 @@
#include "functions.h"
#include "variables.h"
void func_8038C658(Actor *this);
Actor *func_8038C5D0(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void GV_func_8038C658(Actor *this);
Actor *GV_func_8038C5D0(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
/* .data */
ActorAnimationInfo D_80391190[] = {
@ -17,32 +17,33 @@ ActorAnimationInfo D_80391190[] = {
ActorInfo D_803911C0 = { 0xAC, 0x11E, 0x3E5,
0, D_80391190,
func_8038C658, func_80326224, func_8038C5D0,
GV_func_8038C658, func_80326224, GV_func_8038C5D0,
0, 0, 0.0f, 0
};
/* .bss */
s32 D_80391A90;
u8 GV_pad2[0x10];
s32 GV_D_80391A90;
/* .code */
Actor *func_8038C5D0(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
Actor *GV_func_8038C5D0(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
Actor *this = marker_getActor(this_marker);
if( this->state == 2
|| this->state == 3
|| this->state == 4
|| this->state == 5
){
if(!D_80391A90)
if(!GV_D_80391A90)
return func_80325888(this_marker, gfx, mtx, vtx);
}
return this;
}
void func_8038C658(Actor *this){
void GV_func_8038C658(Actor *this){
s32 sp24;
if(!this->initialized){
actor_collisionOff(this);
D_80391A90 = FALSE;
GV_D_80391A90 = FALSE;
this->initialized = TRUE;
this->position_y += 4.0f;
}
@ -51,13 +52,13 @@ void func_8038C658(Actor *this){
this->unk16C_4 = TRUE;
func_80328B8C(this, this->state, 0.01f, 1);
}
sp24 = func_8038C5BC();
if(D_80391A90)
sp24 = GV_func_8038C5BC();
if(GV_D_80391A90)
marker_despawn(this->marker);
if(this->state != sp24)
func_80328A84(this, sp24);
}
void func_8038C748(void){
D_80391A90 = TRUE;
GV_D_80391A90 = TRUE;
}

View File

@ -29,7 +29,7 @@ ActorInfo D_80391318 = { 0xAA, 0x11C, 0x3DE,
extern struct {
s32 unk0;
s32 unk4;
}D_80391AB0;
}GV_D_80391AB0;
extern s32 D_80391AB8;
/* .code */
@ -69,25 +69,25 @@ Actor *func_8038DA18(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
}
void func_8038DB0C(Actor *this){
void GV_func_8038DB0C(Actor *this){
func_80328B8C(this, 1, 0.99f, 0);
animctrl_setPlaybackType(this->animctrl, ANIMCTRL_STOPPED);
}
void func_8038DB4C(s32 arg0){
D_80391AB0.unk0 = arg0;
GV_D_80391AB0.unk0 = arg0;
}
void func_8038DB58(s32 arg0){
D_80391AB0.unk4 = arg0;
GV_D_80391AB0.unk4 = arg0;
}
s32 func_8038DB64(void){
return D_80391AB0.unk4;
return GV_D_80391AB0.unk4;
}
void func_8038DB70(void){
D_80391AB0.unk4++;
GV_D_80391AB0.unk4++;
}
@ -141,7 +141,7 @@ void func_8038DBDC(Actor *this){
}
}
else if(actor_animationIsAt(this, 0.99f)){//L8038DD94
func_8038DB0C(this);
GV_func_8038DB0C(this);
func_8038DB88(this);
}
else{ //L8038DDC0
@ -211,7 +211,7 @@ void func_8038DBDC(Actor *this){
break;
case 6: //8038E080
if(actor_animationIsAt(this, 0.89f)){
func_8038DB0C(this);
GV_func_8038DB0C(this);
func_8038DB88(this);
}
else{

View File

@ -6,16 +6,16 @@ struct {
s32 unk0;
u8 pad4[4];
s32 unk8;
}D_80391AB0;
}GV_D_80391AB0;
/* .code */
void func_8038E140(void){
D_80391AB0.unk0++;
GV_D_80391AB0.unk0++;
func_8025A6EC(COMUSIC_2B_DING_B, 26000);
}
s32 func_8038E178(void){
return D_80391AB0.unk0;
return GV_D_80391AB0.unk0;
}
s32 func_8038E184(void){
@ -23,5 +23,5 @@ s32 func_8038E184(void){
}
void func_8038E18C(void){
D_80391AB0.unk8 = TRUE;
GV_D_80391AB0.unk8 = TRUE;
}

View File

@ -5,18 +5,18 @@
void func_8038E3B0(Actor *this);
/* .data */
ActorAnimationInfo D_80391380[] = {
ActorAnimationInfo GV_D_80391380[] = {
{0, 0.0f},
{0, 0.0f}
};
ActorInfo D_80391390 = { 0xFA, 0x1F8, 0x423,
0x1, D_80391380,
ActorInfo GV_D_80391390 = { 0xFA, 0x1F8, 0x423,
0x1, GV_D_80391380,
func_8038E3B0, func_80326224, func_80325888,
0, 0x100, 0.0f, 0
};
ActorInfo D_803913B4 = { 0xFB, 0x1F9, 0x424,
0x1, D_80391380,
0x1, GV_D_80391380,
func_8038E3B0, func_80326224, func_80325888,
0, 0x100, 0.0f, 0
};

View File

@ -16,11 +16,11 @@ extern ActorInfo D_80390C5C;
extern ActorInfo D_80390C80;
extern ActorInfo D_80390D30;
extern ActorInfo D_80390D60;
extern ActorInfo D_80390CB0;
extern ActorInfo GV_D_80390CB0;
extern ActorInfo D_80390D00;
extern ActorInfo D_80390D90;
extern ActorInfo D_80390DD0;
extern ActorInfo D_80390E30;
extern ActorInfo GV_D_80390DD0;
extern ActorInfo GV_D_80390E30;
extern ActorInfo D_80390E54;
extern ActorInfo D_80390ED0;
extern ActorInfo D_80390F00;
@ -36,7 +36,7 @@ extern ActorInfo D_80391260;
extern ActorInfo D_80391318;
extern ActorInfo D_80391358;
extern ActorInfo D_803912B8;
extern ActorInfo D_80391390;
extern ActorInfo GV_D_80391390;
extern ActorInfo D_803913B4;
extern ActorInfo D_80390F40;
extern ActorInfo D_80391494;
@ -44,8 +44,8 @@ extern ActorInfo D_803915C0;
extern ActorInfo D_80391620;
extern ActorInfo D_803914B8;
extern ActorInfo D_803914DC;
extern ActorInfo D_80391500;
extern ActorInfo D_80391524;
extern ActorInfo GV_D_80391500;
extern ActorInfo GV_D_80391524;
extern ActorInfo D_8039156C;
extern ActorInfo D_80391428;
extern ActorInfo D_8039144C;
@ -116,13 +116,13 @@ ActorInfo D_803914DC = { MARKER_ED_GV_SUN_DOOR, ACTOR_140_GV_SUN_DOOR, ASSET_3FF
0, 0, 0.0f, 0
};
ActorInfo D_80391500 = { MARKER_F0_GV_KAZOOIE_DOOR, ACTOR_143_GV_KAZOOIE_DOOR, ASSET_3D9_MODEL_GV_KAZOOIE_DOOR,
ActorInfo GV_D_80391500 = { MARKER_F0_GV_KAZOOIE_DOOR, ACTOR_143_GV_KAZOOIE_DOOR, ASSET_3D9_MODEL_GV_KAZOOIE_DOOR,
0x1, 0x0,
chKazooieDoor_update, func_80326224, func_80325F2C,
0, 0, 0.0f, 0
};
ActorInfo D_80391524 = { MARKER_EF_GV_STAR_HATCH, ACTOR_142_GV_STAR_HATCH, ASSET_3DB_MODEL_GV_STAR_HATCH,
ActorInfo GV_D_80391524 = { MARKER_EF_GV_STAR_HATCH, ACTOR_142_GV_STAR_HATCH, ASSET_3DB_MODEL_GV_STAR_HATCH,
0x1, 0x0,
func_8038E648, func_80326224, func_80325F2C,
0, 0, 0.0f, 0
@ -465,18 +465,18 @@ void func_8038F130(UNK_TYPE(s32) arg0, ActorMarker *arg1){
func_8038F028(arg0, arg1, 1, 0); //JINXY egg flags?
}
void func_8038F154(void)
void GV_func_8038F154(void)
{
spawnableActorList_add(&D_80390BF0, actor_new, 0X180);
spawnableActorList_add(&D_80390C5C, actor_new, 0X58A);
spawnableActorList_add(&D_80390C80, actor_new, 0X9A8);
spawnableActorList_add(&D_80390D30, actor_new, 0X880);
spawnableActorList_add(&D_80390D60, actor_new, 0X80);
spawnableActorList_add(&D_80390CB0, actor_new, 0XDA8);
spawnableActorList_add(&GV_D_80390CB0, actor_new, 0XDA8);
spawnableActorList_add(&D_80390D00, actor_new, 0X9A8);
spawnableActorList_add(&D_80390D90, actor_new, 0XD80);
spawnableActorList_add(&D_80390DD0, actor_new, 0X4004);
spawnableActorList_add(&D_80390E30, actor_new, 0X448);
spawnableActorList_add(&GV_D_80390DD0, actor_new, 0X4004);
spawnableActorList_add(&GV_D_80390E30, actor_new, 0X448);
spawnableActorList_add(&D_80390E54, actor_new, 0X48);
spawnableActorList_add(&D_80390ED0, actor_new, 0X180);
spawnableActorList_add(&D_80390F00, actor_new, 0X80);
@ -492,7 +492,7 @@ void func_8038F154(void)
spawnableActorList_add(&D_80391318, actor_new, 0X78A);
spawnableActorList_add(&D_80391358, actor_new, 0X518);
spawnableActorList_add(&D_803912B8, actor_new, 0X500);
spawnableActorList_add(&D_80391390, actor_new, 0X500);
spawnableActorList_add(&GV_D_80391390, actor_new, 0X500);
spawnableActorList_add(&D_803913B4, actor_new, 0X500);
spawnableActorList_add(&D_80390F40, actor_new, 0);
spawnableActorList_add(&D_80391494, actor_new, 0X408);
@ -500,8 +500,8 @@ void func_8038F154(void)
spawnableActorList_add(&D_80391620, actor_new, 0X400);
spawnableActorList_add(&D_803914B8, actor_new, 0X400);
spawnableActorList_add(&D_803914DC, actor_new, 0X400);
spawnableActorList_add(&D_80391500, actor_new, 0X400);
spawnableActorList_add(&D_80391524, actor_new, 0X400);
spawnableActorList_add(&GV_D_80391500, actor_new, 0X400);
spawnableActorList_add(&GV_D_80391524, actor_new, 0X400);
spawnableActorList_add(&D_8039156C, actor_new, 0X400);
spawnableActorList_add(&D_80391428, actor_new, 8);
spawnableActorList_add(&D_8039144C, actor_new, 8);

View File

@ -30,7 +30,7 @@ Struct_GV_9DB0_1 D_80391650[] = {
{0x19F, 7, 0 },
{0x000, 0, 0 },
};
f32 D_803916D8[3] = {0.0f, 100.0f, 0.0f};
f32 GV_D_803916D8[3] = {0.0f, 100.0f, 0.0f};
/*.bss */
extern struct {
@ -63,7 +63,7 @@ void func_80390218(void *arg0){
}
void func_80390248(void){
jiggySpawn(JIGGY_40_GV_MATCHING_GAME, D_803916D8);
jiggySpawn(JIGGY_40_GV_MATCHING_GAME, GV_D_803916D8);
}
//matchingGame_setState

View File

@ -3,10 +3,11 @@
#include "variables.h"
/* .bss */
u8 GV_pad3[0x40];
struct {
u8 unk0;
f32 unk4;
}D_80391B00;
}GV_D_80391B00;
/* .code */
void func_80390880(void){
@ -20,8 +21,8 @@ void func_80390880(void){
void func_803908C4(s32 arg0){
void *tmp_v0;
D_80391B00.unk0 = arg0;
if(D_80391B00.unk0 == 2){
GV_D_80391B00.unk0 = arg0;
if(GV_D_80391B00.unk0 == 2){
func_80324E38(0.0f, 3);
timed_setCameraToNode(0.0f, 0);
timedFunc_set_0(3.0f, func_80390880);
@ -36,7 +37,7 @@ void func_803908C4(s32 arg0){
}
}
if(D_80391B00.unk0 == 3){
if(GV_D_80391B00.unk0 == 3){
levelSpecificFlags_set(6, TRUE);
func_803228D8();
func_803204E4(0xe, 1);
@ -51,7 +52,7 @@ void func_803909F4(void){
void *tmp_v0_2;
D_80391B00.unk0 = 0;
GV_D_80391B00.unk0 = 0;
if(map_get() != MAP_15_GV_WATER_PYRAMID) return;
if(jiggyscore_isCollected(JIGGY_42_GV_WATER_PYRAMID)){
@ -64,7 +65,7 @@ void func_803909F4(void){
func_8034E71C(tmp_v0_2, -1460, 0.0f);
}
else{
D_80391B00.unk4 = 0.0f;
GV_D_80391B00.unk4 = 0.0f;
func_803908C4(1);
}
}
@ -75,23 +76,23 @@ void func_80390A94(void){
time_delta = time_getDelta();
if(!D_80391B00.unk0) return;
if(!GV_D_80391B00.unk0) return;
if(D_80391B00.unk0 == 1){
if(0.0f < D_80391B00.unk4){
D_80391B00.unk4 -= time_delta;
if(D_80391B00.unk4 <= 0.0f){
if(GV_D_80391B00.unk0 == 1){
if(0.0f < GV_D_80391B00.unk4){
GV_D_80391B00.unk4 -= time_delta;
if(GV_D_80391B00.unk4 <= 0.0f){
func_803908C4(2);
}
}
else{
if(jiggyscore_isCollected(JIGGY_42_GV_WATER_PYRAMID)){
D_80391B00.unk4 = 0.01f;
GV_D_80391B00.unk4 = 0.01f;
}
}
}//L80390B34
if(D_80391B00.unk0 == 2){
if(GV_D_80391B00.unk0 == 2){
tmp_v0 = func_8034C528(0x190);
if(tmp_v0 && func_8034DC78(tmp_v0) == 1){
func_8030E760(SFX_7F_HEAVYDOOR_SLAM, 0.8f, 0x7fd0);

View File

@ -24,20 +24,22 @@ ActorInfo D_80390C80 = { MARKER_BC_GOBI_1, ACTOR_12E_GOBI_1, ASSET_3E0_MODEL_GOB
0, 0x533, 0.0f, 0
};
/* .bss */
u8 GV_pad0[0x10];
struct {
u8 unk0;
u8 unk1;
}D_80391A40;
}GV_D_80391A40;
/* .code */
void func_80387150(Actor *this, s32 next_state){
void GV_func_80387150(Actor *this, s32 next_state){
ActorLocal_GV_D60 *local = (ActorLocal_GV_D60 *)&this->local;
this->state = next_state;
D_80391A40.unk0 = FALSE;
D_80391A40.unk1 = FALSE;
GV_D_80391A40.unk0 = FALSE;
GV_D_80391A40.unk1 = FALSE;
if(this->state == 1){
func_80335924(this->unk148, 0xd9, 0.5f, 4.0f);
@ -47,14 +49,14 @@ void func_80387150(Actor *this, s32 next_state){
if(this->state == 2){
func_80335924(this->unk148, 0xda, 1.0f, 5.0f);
local->unkC = 0.9f;
D_80391A40.unk0 = TRUE;
GV_D_80391A40.unk0 = TRUE;
}
if(this->state == 3){
func_8028F918(2);
func_80335924(this->unk148, 0xf7, 1.0f, 5.33f);
local->unk14 = 0.01f;
D_80391A40.unk1 = TRUE;
GV_D_80391A40.unk1 = TRUE;
}
if(this->state == 4){
@ -78,16 +80,16 @@ Actor *chgobi1_draw(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
}
s32 func_80387354(void){
return D_80391A40.unk0;
return GV_D_80391A40.unk0;
}
s32 func_80387360(void){
return D_80391A40.unk1;
return GV_D_80391A40.unk1;
}
void func_8038736C(Actor *this){
ActorLocal_GV_D60 *local = (ActorLocal_GV_D60 *)&this->local;
func_80387150(this, 0);
GV_func_80387150(this, 0);
func_8030DA44(local->unk0[0]);
func_8030DA44(local->unk0[1]);
}
@ -118,8 +120,8 @@ void func_80387408(Actor *this){
marker->unk30 = func_8038736C;
marker->propPtr->unk8_3 = TRUE;
marker->collidable = TRUE;
D_80391A40.unk0 = 0;
D_80391A40.unk1 = 0;
GV_D_80391A40.unk0 = 0;
GV_D_80391A40.unk1 = 0;
local->unk0[0] = func_8030D90C();
local->unk0[1] = func_8030D90C();
local->unk8 = 0.0f;
@ -128,7 +130,7 @@ void func_80387408(Actor *this){
local->unk14 = 0.0f;
this->unk1C[0] = 0.0f;
this->unk1C[1] = 0.0f;
func_80387150(this, 1);
GV_func_80387150(this, 1);
if(jiggyscore_isSpawned(JIGGY_44_GV_GOBI_1) && ! func_803203FC(1)){
marker_despawn(this->marker);
}
@ -228,5 +230,5 @@ void func_80387408(Actor *this){
this->unk1C[0] = 0.0f;
if(sp6C)
func_80387150(this, sp6C);
GV_func_80387150(this, sp6C);
}

View File

@ -21,7 +21,7 @@ void func_80328B8C(Actor*, s32, f32, s32);
void func_802C8F70(f32);
void func_80324E88(f32);
Actor *func_8032811C(s32 actor_id, s32 position[3], s32 yaw);
void func_80387F44(void);
void MM_func_80387F44(void);
void func_803876D0(Actor *);
@ -48,7 +48,7 @@ ActorAnimationInfo chCongaAnimations[9] = {
{ASSET_52_ANIM_CONGA_OW, 1.0f}
};
ActorInfo D_80389998 = { MARKER_7_CONGA, ACTOR_8_CONGA, ASSET_35C_MODEL_CONGA,
ActorInfo chcongaInfo = { MARKER_7_CONGA, ACTOR_8_CONGA, ASSET_35C_MODEL_CONGA,
1, chCongaAnimations,
func_803876D0, func_80326224, func_80325888,
0, 0x333, 0.0f, 0
@ -180,7 +180,7 @@ void func_803873C8(ActorMarker *congaMarker){
f32 iVelY;
congaPtr->unk10_12 -= (congaPtr->unk10_12 && ( conga_state == 7));
func_80387F44();
MM_func_80387F44();
congaPtr->unk28 = 2.0f;
orangePtr = func_8032811C(ACTOR_14_ORANGE_PROJECTILE, conga_localPtr->orangeSpawnPosition, congaPtr->yaw);

View File

@ -44,7 +44,7 @@ void func_80388300(Actor **arg0){
if(arg0);
}
void func_803883AC(Actor *this){
void MM_func_803883AC(Actor *this){
f32 sp2C;
f32 sp28;
static D_80389A5C = 0;
@ -85,7 +85,7 @@ void func_803885D0(Actor *this){
func_80343DEC(this);
}else{//L80388630
if(func_80329530(this, 0x2BC) && !func_803114B0()){
func_803883AC(this);
MM_func_803883AC(this);
}//L8038865C
switch(this->state){
case 1://L80388690

View File

@ -11,13 +11,13 @@
f32 func_80309724(f32*);
/* public functions */
void func_80387FF4(Actor *this);
void MM_func_80387FF4(Actor *this);
Actor* func_80388188(ActorMarker *, Gfx **, Mtx**, Vtx**);
/* .data */
ActorInfo chorangeInfo = { MARKER_C_ORANGE_PROJECTILE, ACTOR_14_ORANGE_PROJECTILE, ASSET_2D2_MODEL_ORANGE,
1, NULL,
func_80387FF4, func_80326224, func_80388188,
MM_func_80387FF4, func_80326224, func_80388188,
0, 0, 0.6f, 0
};
@ -35,7 +35,7 @@ void func_80387F90(ActorMarker *arg0, ActorMarker *other_marker){
if(arg0);
}
void func_80387FF4(Actor * this){
void MM_func_80387FF4(Actor * this){
f32 temp_f2;
f32 temp_f0;

View File

@ -19,7 +19,7 @@ ActorInfo chorangepadInfo = { MARKER_66_ORANGE_PAD, ACTOR_57_ORANGE_PAD, ASSET_2
};
/*.code */
void func_803863F0(s32 x, s32 y, s32 z){
void MM_func_803863F0(s32 x, s32 y, s32 z){
f32 pos[3];
TUPLE_ASSIGN(pos, x, y, z);
@ -49,7 +49,7 @@ void func_80386444(ActorMarker *arg0){
func_802BAFE4(temp_a0);
sp44[1] += 50.0f;
timedFunc_set_3(0.6f, (TFQM3) func_803863F0, (s32)sp44[0], (s32)sp44[1], (s32)sp44[2]);
timedFunc_set_3(0.6f, (TFQM3) MM_func_803863F0, (s32)sp44[0], (s32)sp44[1], (s32)sp44[2]);
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7FFF);
if(!jiggyscore_isCollected(JIGGY_8_MM_ORANGE_PADS)){
func_80311480(0xB3B, 4, NULL, NULL, NULL, NULL);

View File

@ -15,7 +15,7 @@ extern ActorInfo chjujuInfo;
extern ActorInfo chorangepadInfo;
extern ActorInfo chlmonkeyInfo;
void func_803888B0(void){
void MM_func_803888B0(void){
spawnableActorList_add( &chhutInfo, actor_new, 0X400);
spawnableActorList_add( &chchimpystump, actor_new, 0x0);
spawnableActorList_add( &chgrublinInfo, actor_new, 0X2000121);

View File

@ -27,7 +27,7 @@ void func_80387EC0(void) {
}
}
void func_80387F44(void) {
void MM_func_80387F44(void) {
s32 sp1C;
osPiReadIo(0x578, (u32 *)&sp1C);

View File

@ -175,7 +175,7 @@ void chnapper_update(Actor *this){
__chnapper_setState(this, 2);
}
if(func_80389530() || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)){
if(MMM_func_80389530() || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)){
__chnapper_setState(this, 3);
}
}//L80386F74

View File

@ -78,7 +78,7 @@ void func_80387B14(Actor *this, s32 next_state){
}
void func_80387CF4(ActorMarker *this_marker, ActorMarker *other_marker) {
void MMM_func_80387CF4(ActorMarker *this_marker, ActorMarker *other_marker) {
func_8030E6D4(0x1E);
}
@ -176,7 +176,7 @@ void func_80388028(Actor *this){
if(!this->unk16C_4){
this->unk16C_4 = TRUE;
this->unk16C_0 = TRUE;
marker_setCollisionScripts(this->marker, NULL, func_80387CF4, func_80387D1C);
marker_setCollisionScripts(this->marker, NULL, MMM_func_80387CF4, func_80387D1C);
__spawnqueue_add_1(func_80387D48, this->marker);
func_80387B14(this, (this->state < 5) ? 1 : 6);
}//L803880B4

View File

@ -160,7 +160,7 @@ ActorInfo D_8038BDFC = {
s32 D_8038BE20[4] = {0x87, 0x87, 0x87, 0xB4};
/* .code */
f32 func_80388430(Actor *this, s32 arg1, s32 arg2, f32 arg3) {
f32 MMM_func_80388430(Actor *this, s32 arg1, s32 arg2, f32 arg3) {
f32 sp4C[3];
f32 sp40[3];
f32 sp34[3];
@ -230,11 +230,11 @@ void func_803888B8(Actor *this){
case 4:
switch(this->marker->unk14_20){
case 0x9F:
this->roll = func_80388430(this, 0, -1, this->roll);
this->roll = MMM_func_80388430(this, 0, -1, this->roll);
break;
case 0xa0:
case 0xff:
this->pitch = func_80388430(this, 2, 1, this->pitch);
this->pitch = MMM_func_80388430(this, 2, 1, this->pitch);
break;
}
break;
@ -390,7 +390,7 @@ void func_803890B8(Actor *this) {
func_8038AC04();
}
void func_803890E0(void){
void MMM_func_803890E0(void){
spawnableActorList_add(&D_8038BC28, actor_new, 0);
spawnableActorList_add(&D_8038BCDC, actor_new, 0);
spawnableActorList_add(&D_8038BC4C, actor_new, 0);

View File

@ -20,7 +20,7 @@ u8 func_80389524() {
return D_8038C4E0.unk0;
}
u8 func_80389530() {
u8 MMM_func_80389530() {
return D_8038C4E0.unk2;
}

View File

@ -2,7 +2,7 @@
#include "functions.h"
#include "variables.h"
extern void func_8038B6D4(f32* arg0, s32 arg1);
extern void MMM_func_8038B6D4(f32* arg0, s32 arg1);
/* internal definitions */
typedef struct {
@ -145,7 +145,7 @@ extern struct {
}D_8038C4F0;
/* .code */
void func_80389810(ActorMarker *caller, enum asset_e text_id, s32 arg2) {
void MMM_func_80389810(ActorMarker *caller, enum asset_e text_id, s32 arg2) {
switch (D_8038C4F0.unkC) {
case 2:
func_80389A0C(3);
@ -162,11 +162,11 @@ void func_80389810(ActorMarker *caller, enum asset_e text_id, s32 arg2) {
}
}
void func_803898A0() {
void MMM_func_803898A0() {
jiggySpawn(JIGGY_60_MMM_MOTZHAND, D_8038C1E0);
}
void func_803898C8() {
void MMM_func_803898C8() {
func_8025A58C(0, 450);
}
@ -175,10 +175,10 @@ void func_803898EC() {
}
void func_80389910() {
func_80311480(0xAD5, 0xE, NULL, NULL, func_80389810, NULL);
func_80311480(0xAD5, 0xE, NULL, NULL, MMM_func_80389810, NULL);
timedFunc_set_2(0.0f, func_8025A6EC, COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7FFF);
timed_setCameraToNode(2.0f, 0);
timedFunc_set_0(2.1f, func_803898A0);
timedFunc_set_0(2.1f, MMM_func_803898A0);
timedFunc_set_0(6.0f, func_803898EC);
func_80324E88(6.0f);
func_80324E38(6.0f, 0);
@ -195,10 +195,10 @@ void func_80389A0C(s32 next_state){
if(next_state == 2){
if(D_8038C4F0.unkD == 0){
D_8038C4F0.unkD = 1;
func_80311480(0xad3, 4, NULL, NULL, func_80389810, NULL);
func_80311480(0xad3, 4, NULL, NULL, MMM_func_80389810, NULL);
}
else{//L80389A84
func_80311480(0xad6, 4, NULL, NULL, func_80389810, NULL);
func_80311480(0xad6, 4, NULL, NULL, MMM_func_80389810, NULL);
}
}//L80389A9C
@ -215,18 +215,18 @@ void func_80389A0C(s32 next_state){
}//L80389AF4
if(next_state == 4){
func_80311480(0xadd, 4, NULL, NULL, func_80389810, NULL);
func_80311480(0xadd, 4, NULL, NULL, MMM_func_80389810, NULL);
func_80387720(D_8038C4F0.unk4);
}
if(next_state == 5){
D_8038C4F0.unkD++;
func_80311480(0xad4, 4, NULL, NULL, func_80389810, NULL);
func_80311480(0xad4, 4, NULL, NULL, MMM_func_80389810, NULL);
func_80387720(D_8038C4F0.unk4);
}
if(next_state == 6){
func_803898C8();
MMM_func_803898C8();
timedFunc_set_0(1.25f, func_803899BC);
func_80387654(D_8038C4F0.unk4);
}
@ -266,7 +266,7 @@ void func_80389BCC(s32 key_indx, f32 position[3]) {
}
}
void func_80389CD8() {}
void MMM_func_80389CD8() {}
void func_80389CE0() {}
@ -296,7 +296,7 @@ int func_80389CE8(s32 arg0, s32 arg1, s32 arg2){
void func_80389D9C(s32 key_id){
s32 sp24;
sp24 = D_8038C198[key_id].unk1;
func_8038B6D4(func_803517B8(sp24), func_803517E8(sp24));
MMM_func_8038B6D4(func_803517B8(sp24), func_803517E8(sp24));
D_8038C4F0.unk0++;
}

View File

@ -65,7 +65,7 @@ struct {
u8 unk8;
BKModel *unkC;
s32 unk10;
} D_8038C510;
} MMM_D_8038C510;
/* .code */
void func_8038A140(UNK_TYPE(s32) arg0) {
@ -78,20 +78,20 @@ void func_8038A140(UNK_TYPE(s32) arg0) {
timedFunc_set_1(3.0f, func_8038A140, 3);
}
if (arg0 == 3) {
if (D_8038C510.unk8 == 1) {
if (MMM_D_8038C510.unk8 == 1) {
mapSpecificFlags_set(3, 1);
}
item_set(ITEM_0_HOURGLASS_TIMER, 75*60 - 1);
item_set(6, 1);
}
if (D_8038C510.unk8 == 3) {
if (MMM_D_8038C510.unk8 == 3) {
item_set(6, 0);
mapSpecificFlags_set(4, 1);
}
if (arg0 == 4) {
func_8028F66C(BS_INTR_F);
}
D_8038C510.unk8 = arg0;
MMM_D_8038C510.unk8 = arg0;
}
Struct_MMM_3D50_0 *func_8038A26C(s32 arg0){
@ -116,7 +116,7 @@ void func_8038A2B8(void){
}
}
void func_8038A2F0(s32 mesh_id, BKVtxRef *ref_vert, Vtx* vert, Struct_MMM_3D50_0 *arg3) {
void MMM_func_8038A2F0(s32 mesh_id, BKVtxRef *ref_vert, Vtx* vert, Struct_MMM_3D50_0 *arg3) {
f32 temp_f2;
if (arg3->unk4 < 0.5) {
@ -134,7 +134,7 @@ void func_8038A2F0(s32 mesh_id, BKVtxRef *ref_vert, Vtx* vert, Struct_MMM_3D50_0
}
void func_8038A54C(Struct_MMM_3D50_0 *arg0, s32 arg1){
void MMM_func_8038A54C(Struct_MMM_3D50_0 *arg0, s32 arg1){
s32 v0 = arg0->unk3;
arg0->unk3 = arg1;
arg0->unk4 = 0.0f;
@ -165,10 +165,10 @@ void func_8038A750(void){
for(v1 = &D_8038C1F0[0]; v1->unk0 != 0; v1++){
v1->unk4 += f20;
if(v1->unk3 == 1){
func_8033F120(D_8038C510.unk0, v1->unk0, func_8038A2F0, v1);
func_8033F120(MMM_D_8038C510.unk0, v1->unk0, MMM_func_8038A2F0, v1);
}
else if(v1->unk3 == 3){
func_8033F120(D_8038C510.unk0, v1->unk0, func_8038A58C, v1);
func_8033F120(MMM_D_8038C510.unk0, v1->unk0, func_8038A58C, v1);
}
}
}
@ -179,9 +179,9 @@ void func_8038A82C(Struct_MMM_3D50_0 * arg0){
Struct_MMM_3D50_1 *iPtr;
if(arg0->unk2 == 'X'){
func_8038A54C(arg0, 1);
MMM_func_8038A54C(arg0, 1);
player_getPosition(sp44);
func_8038AD10(D_8038C510.unkC, D_8038C510.unk10, sp38);
func_8038AD10(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10, sp38);
sp38[1] = sp44[1];
func_8028F620(sp38, 300.0f, -1500.0f);
return;
@ -189,10 +189,10 @@ void func_8038A82C(Struct_MMM_3D50_0 * arg0){
for(iPtr = &D_8038C2F0[0]; iPtr->unk0 != 0; iPtr++){//L8038A8C8
if(arg0->unk2 == iPtr->unk0[iPtr->unk4]){
iPtr->unk4++;
func_8038A54C(arg0, 3);
MMM_func_8038A54C(arg0, 3);
if( iPtr->unk0[iPtr->unk4] == 0){
func_8038A140(5);
func_8038AF3C(D_8038C510.unkC, D_8038C510.unk10);
func_8038AF3C(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10);
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 32000);
}
else{
@ -216,12 +216,12 @@ void func_8038A994() {
void func_8038A9B4(void){
D_8038C510.unk8 = 0;
MMM_D_8038C510.unk8 = 0;
if(map_get() == MAP_24_MMM_TUMBLARS_SHED){
D_8038C510.unkC = NULL;
D_8038C510.unk0 = func_80309744(0);
D_8038C510.unk4 = NULL;
MMM_D_8038C510.unkC = NULL;
MMM_D_8038C510.unk0 = func_80309744(0);
MMM_D_8038C510.unk4 = NULL;
func_8038A2B8();
func_8038A964();
@ -235,8 +235,8 @@ void func_8038A9B4(void){
}
void func_8038AA30(BKModel *arg0, s32 arg1){
D_8038C510.unkC = arg0;
D_8038C510.unk10 = arg1;
MMM_D_8038C510.unkC = arg0;
MMM_D_8038C510.unk10 = arg1;
}
void func_8038AA44(void){
@ -244,12 +244,12 @@ void func_8038AA44(void){
f32 sp28[3];
Struct_MMM_3D50_0 *sp24;
if(D_8038C510.unk8 == 0) return;
if(MMM_D_8038C510.unk8 == 0) return;
func_8038A750();
if( D_8038C510.unk8 == 1
&& D_8038C510.unkC != NULL
&& func_8038AD4C(D_8038C510.unkC, D_8038C510.unk10)
if( MMM_D_8038C510.unk8 == 1
&& MMM_D_8038C510.unkC != NULL
&& func_8038AD4C(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10)
){
if(!levelSpecificFlags_get(0x2f)){
levelSpecificFlags_set(0x2f, TRUE);
@ -260,33 +260,33 @@ void func_8038AA44(void){
}
}
if(D_8038C510.unk8 == 3){
if(MMM_D_8038C510.unk8 == 3){
if(item_empty(ITEM_6_HOURGLASS)){
func_8038A140(4);
}
else if( D_8038C510.unkC != NULL
&& func_8038AD4C(D_8038C510.unkC, D_8038C510.unk10)
else if( MMM_D_8038C510.unkC != NULL
&& func_8038AD4C(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10)
){
func_8038AD10(D_8038C510.unkC, D_8038C510.unk10, sp28);
tmp_v0 = func_8033F3C0(D_8038C510.unk0, sp28);
func_8038AD10(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10, sp28);
tmp_v0 = func_8033F3C0(MMM_D_8038C510.unk0, sp28);
if(tmp_v0){
sp24 = func_8038A26C(tmp_v0);
if( sp24
&& sp24->unk3 == 2
&& sp24 != D_8038C510.unk4
&& sp24 != MMM_D_8038C510.unk4
){
func_8038A82C(sp24);
D_8038C510.unk4 = sp24;
MMM_D_8038C510.unk4 = sp24;
}
}
else{
D_8038C510.unk4 = 0;
MMM_D_8038C510.unk4 = 0;
}
}
}//L8038AB7C
if( D_8038C510.unk8 == 5
&& func_8038AD38(D_8038C510.unkC, D_8038C510.unk10)
if( MMM_D_8038C510.unk8 == 5
&& func_8038AD38(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10)
){
func_8038A140(6);
}

View File

@ -14,7 +14,7 @@ typedef struct {
}Struct_MMM_47D0_0;
/* .code */
void func_8038ABC0(s32 arg0) {
void MMM_func_8038ABC0(s32 arg0) {
if (getGameMode() != 7) {
func_80295864(func_802957F0() & ~arg0);
}
@ -22,7 +22,7 @@ void func_8038ABC0(s32 arg0) {
void func_8038AC04(void){
if((*(u32*)PHYS_TO_K1(0x1D0)) - 0x356BAAAE){
func_8038ABC0(0x820);
MMM_func_8038ABC0(0x820);
}
}
@ -61,7 +61,7 @@ bool func_8038AD4C(s32 arg0, s32 arg1) {
&& (func_8028ECAC() == 0);
}
void func_8038ADF0(Struct_MMM_47D0_0 *arg0, Struct68s *arg1) {
void MMM_func_8038ADF0(Struct_MMM_47D0_0 *arg0, Struct68s *arg1) {
u8 sp3F;
f32 sp38;
Actor *jiggy;

View File

@ -86,7 +86,7 @@ void func_8038B630(Struct5Fs *arg0, Struct68s *arg1){
}
void func_8038B6D4(Struct5Fs * arg0, Struct68s *arg1) {
void MMM_func_8038B6D4(Struct5Fs * arg0, Struct68s *arg1) {
arg0->unk0 = 1.0f;
func_8038B6FC(arg0, arg1);
}

View File

@ -29,7 +29,7 @@ void func_803871D4(s32 arg0) {
levelSpecificFlags_setN(0x39, arg0, 3);
}
void func_803871FC(Actor *this){
void MMM_func_803871FC(Actor *this){
switch(this->state){
case 1:
func_8033A45C(3, FALSE);
@ -50,7 +50,7 @@ void func_80387280(Actor *this){
this->marker->propPtr->unk8_3 = TRUE;
if(!this->initialized){
this->initialized = TRUE;
this->unk130 = func_803871FC;
this->unk130 = MMM_func_803871FC;
}
switch(this->state){
@ -66,7 +66,7 @@ void func_80387280(Actor *this){
}
}
bool func_80387340(ActorMarker *marker){
bool MMM_func_80387340(ActorMarker *marker){
Actor *actor = marker_getActor(marker);
f32 sp20[3];
s32 sp1C;

View File

@ -43,7 +43,7 @@ Struct_RBB_0_1 D_80390074[4] = {
};
/* .code */
void func_803863F0(Actor *actor, s32 arg1){
void RBB_func_803863F0(Actor *actor, s32 arg1){
ActorLocal_RBB_0 * local = (ActorLocal_RBB_0 *) &actor->local;
void *temp_a0;
f32 sp3C[3];
@ -92,7 +92,7 @@ void func_803865A4(ActorMarker *marker, s32 arg1){
void func_803865D0(ActorMarker *marker){
Actor* actor = marker_getActor(marker);
ActorLocal_RBB_0 * local = (ActorLocal_RBB_0 *) &actor->local;
func_803863F0(actor, 1);
RBB_func_803863F0(actor, 1);
timed_setCameraToNode(0.0f, D_80390074[local->unk4].unk0);
timedFunc_set_2(0.75*D_80390074[local->unk4].unk4, (TFQM2) func_803865A4, actor->marker, 4);
func_80324E88(0.75*D_80390074[local->unk4].unk4);
@ -158,7 +158,7 @@ void func_803868F0(Actor *this){
local->unk4 = (this->unk78_13 == 0xB)? 3: local->unk4;
func_803866F4(this, 1);
}
func_803863F0(this, 0);
RBB_func_803863F0(this, 0);
}//L803869F4
if(this->state == 2){
if(--local->unkC <= 0){

View File

@ -7,12 +7,12 @@
/* typedefs and declarations */
void func_803881E8(Actor *this, s32 arg1);
void func_803882F4(Actor *this);
void RBB_func_803882F4(Actor *this);
/* .data */
ActorInfo D_80390270 = {
0x184, 0x174, 0x402, 0x0, NULL,
func_803882F4, NULL, func_80325340,
RBB_func_803882F4, NULL, func_80325340,
0, 0, 0.0f, 0
};
@ -43,7 +43,7 @@ struct41s D_80390344= {
};
/*.code */
void func_80387960(f32 arg0){
void RBB_func_80387960(f32 arg0){
f32 sp34[3];
void * temp_v0;
f32 sp24[3];
@ -159,11 +159,11 @@ void func_80387E20(void){
func_802EF3F4(actor, &D_8039032C, &D_80390338, 0x19);
}
void func_80387F18(ActorMarker *marker, s32 arg1){
void RBB_func_80387F18(ActorMarker *marker, s32 arg1){
func_803881E8(marker_getActor(marker), arg1);
}
void func_80387F44(void){
void RBB_func_80387F44(void){
func_80250E94(0.5f, 1.0f, 1.5f, 0.0f, 1.0f, 1.5f);
}
@ -187,13 +187,13 @@ void func_80387F88(ActorMarker *marker){
timed_playSfx(3.0f, SFX_1A_BIG_THINGS_FALL_OVER, 0.6f, 22000);
func_80324E88(4.0f);
func_80324E38(4.0f, 0);
timedFunc_set_2(4.0f, (TFQM2) func_80387F18, (s32) actor->marker, 3);
timedFunc_set_2(4.0f, (TFQM2) RBB_func_80387F18, (s32) actor->marker, 3);
}
void func_80388154(ActorMarker *marker){
Actor *actor = marker_getActor(marker);
func_803879F0();
timedFunc_set_0(0.0f, (TFQM0) func_80387F44);
timedFunc_set_0(0.0f, (TFQM0) RBB_func_80387F44);
timed_playSfx(0.0f, SFX_7F_HEAVYDOOR_SLAM, 1.0f, 0x7fc6);
timedFunc_set_2(1.2f, (TFQM2) func_80387B8C, 0x19f, 0);
timed_setCameraToNode(1.2f, 8);
@ -203,7 +203,7 @@ void func_80388154(ActorMarker *marker){
void func_803881E8(Actor *this, s32 arg1){
this->state = arg1;
if(this->state == 2){
func_80387960(0.05f);
RBB_func_80387960(0.05f);
timedFunc_set_2(0.05f, (TFQM2)func_80387BEC, 0x19f, 0x1f4);
timedFunc_set_2(0.1f, (TFQM2)func_8025A6EC, COMUSIC_2B_DING_B, 28000);
func_80324E38(0.2f, 3);
@ -219,12 +219,12 @@ void func_803882B4(ActorMarker *marker, s32 arg1){
func_803881E8(actor, 2);
}
void func_803882F4(Actor *this){
void RBB_func_803882F4(Actor *this){
if(!this->unk16C_4){
this->unk16C_4 = 1;
if(levelSpecificFlags_get(0x2d)){
func_80387AC0();
func_80387960(0.0f);
RBB_func_80387960(0.0f);
func_80387B24();
func_803881E8(this, 3);
}else{

View File

@ -36,7 +36,7 @@ void func_803883B0(Actor *this, s32 arg1){
this->state = arg1;
}
void func_80388430(ActorMarker * marker, ActorMarker *other_marker){
void RBB_func_80388430(ActorMarker * marker, ActorMarker *other_marker){
Actor * actor = marker_getActor(marker);
ActorLocal_RBB_1FC0 *local = (ActorLocal_RBB_1FC0 *) &actor->local;
func_8030E6D4(SFX_111_WHIPCRACK_DEATH);
@ -97,7 +97,7 @@ void func_80388620(Actor *this){
if(!this->unk16C_4){
this->unk16C_4 = 1;
this->marker->propPtr->unk8_3 = 1;
marker_setCollisionScripts(this->marker, func_80388430, NULL, NULL);
marker_setCollisionScripts(this->marker, RBB_func_80388430, NULL, NULL);
local->unk4 = 0;
local->unk0 = 0.0f;
local->unk8 = 0.0f;

View File

@ -2,17 +2,17 @@
#include "functions.h"
#include "variables.h"
void func_803899C0(Actor *this);
void RBB_func_803899C0(Actor *this);
/* .data */
ActorInfo D_803906B0 = {
0x194, 0x1BE, 0x412, 0x0, NULL,
func_803899C0, NULL, func_80325888,
RBB_func_803899C0, NULL, func_80325888,
0, 0, 0.0f, 0
};
/* .code */
void func_803898A0(void){
void RBB_func_803898A0(void){
mapSpecificFlags_set(0, 1);
}
@ -23,7 +23,7 @@ void func_803898C4(Actor * this, s32 arg1){
this->position_y -= 35.0f;
func_80324E38(1.0f, 3);
timed_setCameraToNode(1.0f, 0);
timedFunc_set_0(1.0f, func_803898A0);
timedFunc_set_0(1.0f, RBB_func_803898A0);
func_80324E88(5.0f);
func_80324E38(5.0f, 0);
}
@ -36,7 +36,7 @@ void func_80389980(ActorMarker *marker, s32 arg1){
}
}
void func_803899C0(Actor *this){
void RBB_func_803899C0(Actor *this){
if(!this->unk16C_4){
this->marker->propPtr->unk8_3 = 1;
this->unk16C_4 = 1;

View File

@ -35,7 +35,7 @@ ActorInfo D_80390738 = {
};
/* .code */
void func_8038A0A0(Actor *this, s32 arg1){
void RBB_func_8038A0A0(Actor *this, s32 arg1){
ActorLocal_RBB_3CB0 *local = (ActorLocal_RBB_3CB0 *)&this->local;
if(arg1 == 1)
@ -62,7 +62,7 @@ void func_8038A0A0(Actor *this, s32 arg1){
void func_8038A1C8(ActorMarker *marker, s32 arg1){
Actor *actor = marker_getActor(marker);
if(actor->state == 1){
func_8038A0A0(actor, 2);
RBB_func_8038A0A0(actor, 2);
}
else if(actor->state == 2){
func_8038FF40();
@ -109,16 +109,16 @@ void func_8038A324(Actor *this){
this->position_y = (f32)local->unk0->unk0[1];
this->position_z = (f32)local->unk0->unk0[2];
if(levelSpecificFlags_get(local->unk0->unkA))
func_8038A0A0(this, 2);
RBB_func_8038A0A0(this, 2);
else
func_8038A0A0(this, 1);
RBB_func_8038A0A0(this, 1);
}//L8038A47C
if(this->state == 2){
if( !levelSpecificFlags_get(local->unk0->unkA)
&& !levelSpecificFlags_get(3)
&& !levelSpecificFlags_get(4)
){
func_8038A0A0(this, 1);
RBB_func_8038A0A0(this, 1);
}
}
}

View File

@ -53,7 +53,7 @@ s32 D_8039092C[3] = { 0, 0xFF, 0};
s32 D_80390938[3] = { 0xFF, 0, 0};
/* .code */
Struct_RBB_47D0 *func_8038ABC0(Actor *arg0){
Struct_RBB_47D0 *RBB_func_8038ABC0(Actor *arg0){
Struct_RBB_47D0 *iPtr = D_80390870;
while(iPtr->unk0 != 0){
if(iPtr->unk0 == arg0->modelCacheIndex)
@ -134,7 +134,7 @@ void func_8038AEB8(Actor *this){
this->marker->propPtr->unk8_3 = 1;
this->marker->unk30 = func_8038AD7C;
marker_setCollisionScripts(this->marker, NULL, func_8038AD3C, NULL);
local->unk4 = func_8038ABC0(this);
local->unk4 = RBB_func_8038ABC0(this);
mapSpecificFlags_set(local->unk4->unk10, FALSE);
this->position_x = local->unk4->unk4[0];
this->position_y = local->unk4->unk4[1];

Some files were not shown because too many files have changed in this diff Show More