Cleaning Up Warnings (#317)
* Update mk64 makefile to reflect sm64 makefile * print func matches and fix some warnings
This commit is contained in:
parent
1b659170dc
commit
d6eb25aae3
667
Makefile
667
Makefile
|
|
@ -1,27 +1,22 @@
|
|||
# Makefile to rebuild MK64 split image
|
||||
|
||||
### Default target ###
|
||||
include util.mk
|
||||
|
||||
# Default target
|
||||
default: all
|
||||
|
||||
### Build Options ###
|
||||
# Preprocessor definitions
|
||||
DEFINES :=
|
||||
|
||||
# These options can either be changed by modifying the makefile, or
|
||||
# by building with 'make SETTING=value'. 'make clean' may be required.
|
||||
#==============================================================================#
|
||||
# Build Options #
|
||||
#==============================================================================#
|
||||
|
||||
# Version of the game to build
|
||||
VERSION ?= us
|
||||
# If COMPARE is 1, check the output sha1sum when building 'all'
|
||||
COMPARE ?= 1
|
||||
export LANG := C
|
||||
# Configure the build options with 'make SETTING=value' (ex. make VERSION=eu).
|
||||
# Run 'make clean' prior to changing versions.
|
||||
|
||||
ifeq ($(VERSION),us)
|
||||
VERSION_CFLAGS := -DVERSION_US
|
||||
VERSION_ASFLAGS := --defsym VERSION_US=1
|
||||
TARGET := mk64.us
|
||||
endif
|
||||
|
||||
BASEROM := baserom.$(VERSION).z64
|
||||
# Build for the N64 (turn this off for ports)
|
||||
TARGET_N64 ?= 1
|
||||
|
||||
# COMPILER - selects the C compiler to use
|
||||
# ido - uses the SGI IRIS Development Option compiler, which is used to build
|
||||
|
|
@ -30,69 +25,191 @@ endif
|
|||
COMPILER ?= ido
|
||||
$(eval $(call validate-option,COMPILER,ido gcc))
|
||||
|
||||
### Utility Functions ###
|
||||
# Returns the path to the command $(1) if exists. Otherwise returns an empty string.
|
||||
find-command = $(shell which $(1) 2>/dev/null)
|
||||
|
||||
################ Target Executable and Sources ###############
|
||||
|
||||
# BUILD_DIR is location where all build artifacts are placed
|
||||
BUILD_DIR_BASE := build
|
||||
BUILD_DIR := $(BUILD_DIR_BASE)/$(VERSION)
|
||||
# VERSION - selects the version of the game to build
|
||||
# us - builds the 1997 North American version
|
||||
# eu - builds the 1997 1.1 PAL version
|
||||
VERSION ?= us
|
||||
$(eval $(call validate-option,VERSION,us eu))
|
||||
|
||||
# Directories containing source files
|
||||
ASSET_DIR := assets
|
||||
BIN_DIR := bin
|
||||
DATA_DIR := data
|
||||
INCLUDE_DIRS := include
|
||||
SRC_DIRS := src src/audio src/os src/os/math courses
|
||||
ASM_DIRS := asm asm/audio asm/os asm/os/non_matchings $(DATA_DIR) $(DATA_DIR)/sound_data $(DATA_DIR)/karts
|
||||
COURSE_DIRS := $(shell find courses -mindepth 2 -type d)
|
||||
ifeq ($(VERSION),us)
|
||||
DEFINES += VERSION_US=1
|
||||
GRUCODE ?= f3d_old
|
||||
VERSION_ASFLAGS := --defsym VERSION_US=1
|
||||
else ifeq ($(VERSION), eu)
|
||||
DEFINES += VERSION_EU=1
|
||||
GRUCODE ?= f3d_old
|
||||
VERSION_ASFLAGS := --defsym VERSION_EU=1
|
||||
endif
|
||||
|
||||
TEXTURES_DIR = textures
|
||||
TEXTURE_DIRS := textures/common
|
||||
TARGET := mk64.$(VERSION)
|
||||
|
||||
ALL_DIRS = $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(COURSE_DIRS) $(INCLUDE_DIRS) $(ASM_DIRS) $(ALL_KARTS_DIRS) $(TEXTURES_DIR)/raw \
|
||||
$(TEXTURES_DIR)/standalone $(TEXTURES_DIR)/startup_logo $(TEXTURES_DIR)/crash_screen $(TEXTURES_DIR)/trophy $(TEXTURES_DIR)/courses \
|
||||
$(TEXTURES_DIR)/courses/tlut $(TEXTURES_DIR)/courses/tlut2 $(TEXTURE_DIRS) $(TEXTURE_DIRS)/tlut $(TEXTURES_DIR)/courses/tlut3 \
|
||||
$(TEXTURE_DIRS)/tlut2 $(BIN_DIR))
|
||||
BASEROM := baserom.$(VERSION).z64
|
||||
|
||||
################### Universal Dependencies ###################
|
||||
|
||||
|
||||
# GRUCODE - selects which RSP microcode to use.
|
||||
# f3d_old - default, version 0.95. An early version of f3d.
|
||||
# f3dex2 - A newer, unsupported version
|
||||
# Note that 3/4 player mode uses F3DLX
|
||||
$(eval $(call validate-option,GRUCODE,f3d_old f3dex2))
|
||||
|
||||
ifeq ($(GRUCODE), f3dex2) # Fast3DEX2
|
||||
DEFINES += F3DEX_GBI_2 F3DEX_GBI_SHARED=1
|
||||
else
|
||||
DEFINES += F3DEX_GBI=1 F3D_OLD=1
|
||||
endif
|
||||
|
||||
|
||||
|
||||
# USE_QEMU_IRIX - when ido is selected, select which way to emulate IRIX programs
|
||||
# 1 - use qemu-irix
|
||||
# 0 - statically recompile the IRIX programs
|
||||
USE_QEMU_IRIX ?= 0
|
||||
$(eval $(call validate-option,USE_QEMU_IRIX,0 1))
|
||||
|
||||
ifeq ($(COMPILER),ido)
|
||||
ifeq ($(USE_QEMU_IRIX),1)
|
||||
# Verify that qemu-irix exists
|
||||
QEMU_IRIX := $(call find-command,qemu-irix)
|
||||
ifeq (,$(QEMU_IRIX))
|
||||
$(error Using the IDO compiler requires qemu-irix. Please install qemu-irix package or set the QEMU_IRIX environment variable to the full qemu-irix binary path)
|
||||
endif
|
||||
endif
|
||||
|
||||
MIPSISET := -mips2
|
||||
else ifeq ($(COMPILER),gcc)
|
||||
NON_MATCHING := 1
|
||||
MIPSISET := -mips3
|
||||
endif
|
||||
|
||||
|
||||
|
||||
# NON_MATCHING - whether to build a matching, identical copy of the ROM
|
||||
# 1 - enable some alternate, more portable code that does not produce a matching ROM
|
||||
# 0 - build a matching ROM
|
||||
NON_MATCHING ?= 0
|
||||
$(eval $(call validate-option,NON_MATCHING,0 1))
|
||||
|
||||
ifeq ($(TARGET_N64),0)
|
||||
NON_MATCHING := 1
|
||||
endif
|
||||
|
||||
ifeq ($(NON_MATCHING),1)
|
||||
DEFINES += NON_MATCHING=1 AVOID_UB=1
|
||||
COMPARE := 0
|
||||
endif
|
||||
|
||||
|
||||
|
||||
# COMPARE - whether to verify the SHA-1 hash of the ROM after building
|
||||
# 1 - verifies the SHA-1 hash of the selected version of the game
|
||||
# 0 - does not verify the hash
|
||||
COMPARE ?= 1
|
||||
$(eval $(call validate-option,COMPARE,0 1))
|
||||
|
||||
|
||||
|
||||
# Whether to hide commands or not
|
||||
VERBOSE ?= 0
|
||||
ifeq ($(VERBOSE),0)
|
||||
V := @
|
||||
endif
|
||||
|
||||
|
||||
|
||||
# Whether to colorize build messages
|
||||
COLOR ?= 1
|
||||
|
||||
|
||||
|
||||
# display selected options unless 'make clean' or 'make distclean' is run
|
||||
ifeq ($(filter clean distclean,$(MAKECMDGOALS)),)
|
||||
$(info ==== Build Options ====)
|
||||
$(info Version: $(VERSION))
|
||||
$(info Microcode: $(GRUCODE))
|
||||
$(info Target: $(TARGET))
|
||||
ifeq ($(COMPARE),1)
|
||||
$(info Compare ROM: yes)
|
||||
else
|
||||
$(info Compare ROM: no)
|
||||
endif
|
||||
ifeq ($(NON_MATCHING),1)
|
||||
$(info Build Matching: no)
|
||||
else
|
||||
$(info Build Matching: yes)
|
||||
endif
|
||||
$(info =======================)
|
||||
endif
|
||||
|
||||
|
||||
#==============================================================================#
|
||||
# Universal Dependencies #
|
||||
#==============================================================================#
|
||||
|
||||
TOOLS_DIR := tools
|
||||
|
||||
# (This is a bit hacky, but a lot of rules implicitly depend
|
||||
# on tools and assets, and we use directory globs further down
|
||||
# in the makefile that we want should cover assets.)
|
||||
|
||||
ifneq ($(MAKECMDGOALS),clean)
|
||||
ifneq ($(MAKECMDGOALS),distclean)
|
||||
PYTHON := python3
|
||||
|
||||
ifeq ($(filter clean distclean print-%,$(MAKECMDGOALS)),)
|
||||
|
||||
# Make sure assets exist
|
||||
NOEXTRACT ?= 0
|
||||
ifeq ($(NOEXTRACT),0)
|
||||
DUMMY != ./extract_assets.py $(VERSION) >&2 || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to extract assets)
|
||||
endif
|
||||
endif
|
||||
NOEXTRACT ?= 0
|
||||
ifeq ($(NOEXTRACT),0)
|
||||
DUMMY != $(PYTHON) extract_assets.py $(VERSION) >&2 || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to extract assets)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Make tools if out of date
|
||||
DUMMY != make -s -C tools >&2 || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to build tools)
|
||||
endif
|
||||
# Make tools if out of date
|
||||
DUMMY != make -s -C $(TOOLS_DIR) $(if $(filter-out ido0,$(COMPILER)$(USE_QEMU_IRIX)),all-except-recomp,) >&2 || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to build tools)
|
||||
endif
|
||||
$(info Building ROM...)
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
LD_SCRIPT = mk64.ld
|
||||
MIO0_DIR = bin
|
||||
|
||||
# Files with GLOBAL_ASM blocks
|
||||
GLOBAL_ASM_C_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/*.c)
|
||||
GLOBAL_ASM_AUDIO_C_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/audio/*.c)
|
||||
GLOBAL_ASM_O_FILES = $(foreach file,$(GLOBAL_ASM_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
GLOBAL_ASM_AUDIO_O_FILES = $(foreach file,$(GLOBAL_ASM_AUDIO_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
# GLOBAL_ASM_DEP = $(BUILD_DIR)/src/audio/non_matching_dep
|
||||
#==============================================================================#
|
||||
# Target Executable and Sources #
|
||||
#==============================================================================#
|
||||
|
||||
BUILD_DIR_BASE := build
|
||||
# BUILD_DIR is location where all build artifacts are placed
|
||||
BUILD_DIR := $(BUILD_DIR_BASE)/$(VERSION)
|
||||
ROM := $(BUILD_DIR)/$(TARGET).z64
|
||||
ELF := $(BUILD_DIR)/$(TARGET).elf
|
||||
LD_SCRIPT := mk64.ld
|
||||
ASSET_DIR := assets
|
||||
BIN_DIR := bin
|
||||
DATA_DIR := data
|
||||
INCLUDE_DIRS := include
|
||||
|
||||
# Directories containing source files
|
||||
SRC_DIRS := src src/audio src/os src/os/math courses
|
||||
ASM_DIRS := asm asm/audio asm/os asm/os/non_matchings $(DATA_DIR) $(DATA_DIR)/sound_data $(DATA_DIR)/karts
|
||||
|
||||
|
||||
# Directories containing course source and data files
|
||||
COURSE_DIRS := $(shell find courses -mindepth 2 -type d)
|
||||
TEXTURES_DIR = textures
|
||||
TEXTURE_DIRS := textures/common
|
||||
|
||||
ALL_DIRS = $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(COURSE_DIRS) include $(ASM_DIRS) $(ALL_KARTS_DIRS) $(TEXTURES_DIR)/raw \
|
||||
$(TEXTURES_DIR)/standalone $(TEXTURES_DIR)/startup_logo $(TEXTURES_DIR)/crash_screen $(TEXTURES_DIR)/trophy $(TEXTURES_DIR)/courses \
|
||||
$(TEXTURES_DIR)/courses/tlut $(TEXTURES_DIR)/courses/tlut2 $(TEXTURE_DIRS) $(TEXTURE_DIRS)/tlut $(TEXTURES_DIR)/courses/tlut3 \
|
||||
$(TEXTURE_DIRS)/tlut2 $(BIN_DIR))
|
||||
|
||||
# file dependencies generated by splitter
|
||||
MAKEFILE_SPLIT = Makefile.split
|
||||
include $(MAKEFILE_SPLIT)
|
||||
|
||||
COURSE_ASM_FILES := $(wildcard courses/*/*/packed.s)
|
||||
|
||||
|
|
@ -107,71 +224,87 @@ O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
|
|||
|
||||
# Automatic dependency files
|
||||
DEP_FILES := $(O_FILES:.o=.d) $(BUILD_DIR)/$(LD_SCRIPT).d
|
||||
##################### Compiler Options #######################
|
||||
|
||||
ifeq ($(shell type mips-linux-gnu-ld >/dev/null 2>/dev/null; echo $$?), 0)
|
||||
# Files with GLOBAL_ASM blocks
|
||||
GLOBAL_ASM_C_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/*.c)
|
||||
GLOBAL_ASM_AUDIO_C_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/audio/*.c)
|
||||
GLOBAL_ASM_O_FILES = $(foreach file,$(GLOBAL_ASM_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
GLOBAL_ASM_AUDIO_O_FILES = $(foreach file,$(GLOBAL_ASM_AUDIO_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
|
||||
|
||||
|
||||
#==============================================================================#
|
||||
# Compiler Options #
|
||||
#==============================================================================#
|
||||
|
||||
# detect prefix for MIPS toolchain
|
||||
ifneq ($(call find-command,mips-linux-gnu-ld),)
|
||||
CROSS := mips-linux-gnu-
|
||||
else ifeq ($(shell type mips64-linux-gnu-ld >/dev/null 2>/dev/null; echo $$?), 0)
|
||||
else ifneq ($(call find-command,mips64-linux-gnu-ld),)
|
||||
CROSS := mips64-linux-gnu-
|
||||
else
|
||||
else ifneq ($(call find-command,mips64-elf-ld),)
|
||||
CROSS := mips64-elf-
|
||||
endif
|
||||
|
||||
# USE_QEMU_IRIX - when ido is selected, select which way to emulate IRIX programs
|
||||
# 1 - use qemu-irix
|
||||
# 0 - statically recompile the IRIX programs
|
||||
USE_QEMU_IRIX ?= 0
|
||||
$(eval $(call validate-option,USE_QEMU_IRIX,0 1))
|
||||
TOOLS_DIR := tools
|
||||
|
||||
ifeq ($(USE_QEMU_IRIX),1)
|
||||
# Verify that qemu-irix exists
|
||||
QEMU_IRIX := $(call find-command,qemu-irix)
|
||||
ifeq (,$(QEMU_IRIX))
|
||||
$(error Using the IDO compiler requires qemu-irix. Please install qemu-irix package or set the QEMU_IRIX environment variable to the full qemu-irix binary path)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(USE_QEMU_IRIX),1)
|
||||
IRIX_ROOT := $(TOOLS_DIR)/ido5.3_compiler
|
||||
CC := $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc
|
||||
else
|
||||
IDO_ROOT := tools/ido5.3_recomp
|
||||
CC := $(IDO_ROOT)/cc
|
||||
$(error Unable to detect a suitable MIPS toolchain installed)
|
||||
endif
|
||||
|
||||
AS := $(CROSS)as
|
||||
ifeq ($(COMPILER),gcc)
|
||||
CC := $(CROSS)gcc
|
||||
else
|
||||
ifeq ($(USE_QEMU_IRIX),1)
|
||||
IRIX_ROOT := $(TOOLS_DIR)/ido5.3_compiler
|
||||
CC := $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc
|
||||
else
|
||||
IDO_ROOT := $(TOOLS_DIR)/ido5.3_recomp
|
||||
CC := $(IDO_ROOT)/cc
|
||||
endif
|
||||
endif
|
||||
LD := $(CROSS)ld
|
||||
AR := $(CROSS)ar
|
||||
OBJDUMP := $(CROSS)objdump
|
||||
OBJCOPY := $(CROSS)objcopy
|
||||
PYTHON := python3
|
||||
|
||||
OPT_FLAGS := -O2
|
||||
|
||||
ifeq ($(TARGET_N64),1)
|
||||
TARGET_CFLAGS := -nostdinc -DTARGET_N64 -D_LANGUAGE_C
|
||||
CC_CFLAGS := -fno-builtin
|
||||
endif
|
||||
|
||||
INCLUDE_DIRS := include $(BUILD_DIR) $(BUILD_DIR)/include src .
|
||||
ifeq ($(TARGET_N64),1)
|
||||
INCLUDE_DIRS += include/libc
|
||||
endif
|
||||
|
||||
C_DEFINES := $(foreach d,$(DEFINES),-D$(d))
|
||||
DEF_INC_CFLAGS := $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(C_DEFINES)
|
||||
|
||||
# Prefer clang as C preprocessor if installed on the system
|
||||
ifneq (,$(call find-command,clang))
|
||||
CPP := clang
|
||||
CPPFLAGS := -E -P -x c -Wno-trigraphs
|
||||
CPPFLAGS := -E -P -x c -Wno-trigraphs $(DEF_INC_CFLAGS)
|
||||
else
|
||||
CPP := cpp
|
||||
CPPFLAGS := -P -Wno-trigraphs
|
||||
CPPFLAGS := -P -Wno-trigraphs $(DEF_INC_CFLAGS)
|
||||
endif
|
||||
|
||||
MIPSISET := -mips2 -32
|
||||
OPT_FLAGS := -O2
|
||||
|
||||
TARGET_CFLAGS := -nostdinc -I include/libc -DTARGET_N64
|
||||
CC_CFLAGS := -fno-builtin
|
||||
|
||||
INCLUDE_CFLAGS := -I include -I $(BUILD_DIR) -I $(BUILD_DIR)/include -I src -I .
|
||||
|
||||
# TODO: Seperate F3D declares into version flags if needed.
|
||||
GRUCODE_CFLAGS = -DF3DEX_GBI -DF3D_OLD -D_LANGUAGE_C
|
||||
|
||||
# Check code syntax with host compiler
|
||||
CC_CHECK := gcc -fsyntax-only -fsigned-char $(CC_CFLAGS) $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) -std=gnu90 -Wall -Wempty-body -Wextra -Wno-format-security -Wno-main -DNON_MATCHING -DAVOID_UB $(VERSION_CFLAGS) $(GRUCODE_CFLAGS)
|
||||
CC_CHECK := gcc
|
||||
CC_CHECK_CFLAGS := -fsyntax-only -fsigned-char $(CC_CFLAGS) $(TARGET_CFLAGS) -std=gnu90 -Wall -Wempty-body -Wextra -Wno-format-security -Wno-main -DNON_MATCHING -DAVOID_UB $(DEF_INC_CFLAGS)
|
||||
|
||||
# C compiler options
|
||||
HIDE_WARNINGS := -woff 838,649
|
||||
CFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) $(MIPSISET) $(DEF_INC_CFLAGS)
|
||||
ifeq ($(COMPILER),gcc)
|
||||
CFLAGS += -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra
|
||||
else
|
||||
CFLAGS += $(HIDE_WARNINGS) -non_shared -Wab,-r4300_mul -Xcpluscomm -Xfullwarn -signed -32
|
||||
endif
|
||||
|
||||
ASFLAGS = -march=vr4300 -mabi=32 -I include -I $(BUILD_DIR) --defsym F3DEX_GBI=1
|
||||
CFLAGS = -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -Xfullwarn -woff 838,649 -signed $(OPT_FLAGS) $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) $(VERSION_CFLAGS) $(MIPSISET) $(GRUCODE_CFLAGS)
|
||||
|
||||
# Fills end of rom
|
||||
OBJCOPYFLAGS = --pad-to=0xC00000 --gap-fill=0xFF
|
||||
|
||||
LDFLAGS = -T undefined_syms.txt -T $(BUILD_DIR)/$(LD_SCRIPT) -Map $(BUILD_DIR)/$(TARGET).map --no-check-sections
|
||||
|
|
@ -184,37 +317,58 @@ else
|
|||
CC_CHECK += -m32
|
||||
endif
|
||||
|
||||
####################### Other Tools #########################
|
||||
# Prevent a crash with -sopt
|
||||
export LANG := C
|
||||
|
||||
# N64 tools
|
||||
MIO0TOOL = $(TOOLS_DIR)/mio0
|
||||
N64CKSUM = $(TOOLS_DIR)/n64cksum
|
||||
N64GRAPHICS = $(TOOLS_DIR)/n64graphics
|
||||
DLPACKER = $(TOOLS_DIR)/displaylist_packer
|
||||
DLSYMGEN = $(PYTHON) $(TOOLS_DIR)/generate_segment_headers.py
|
||||
MODELSYMGEN = $(PYTHON) $(TOOLS_DIR)/generate_vertice_count.py
|
||||
BIN2C = $(PYTHON) $(TOOLS_DIR)/bin2c.py
|
||||
#==============================================================================#
|
||||
# Miscellaneous Tools #
|
||||
#==============================================================================#
|
||||
|
||||
MIO0TOOL := $(TOOLS_DIR)/mio0
|
||||
N64CKSUM := $(TOOLS_DIR)/n64cksum
|
||||
N64GRAPHICS := $(TOOLS_DIR)/n64graphics
|
||||
DLPACKER := $(TOOLS_DIR)/displaylist_packer
|
||||
DLSYMGEN := $(PYTHON) $(TOOLS_DIR)/generate_segment_headers.py
|
||||
MODELSYMGEN := $(PYTHON) $(TOOLS_DIR)/generate_vertice_count.py
|
||||
BIN2C := $(PYTHON) $(TOOLS_DIR)/bin2c.py
|
||||
EXTRACT_DATA_FOR_MIO := $(TOOLS_DIR)/extract_data_for_mio
|
||||
ASSET_EXTRACT := $(PYTHON) $(TOOLS_DIR)/new_extract_assets.py
|
||||
EMULATOR = mupen64plus
|
||||
EMU_FLAGS = --noosd
|
||||
LOADER = loader64
|
||||
LOADER_FLAGS = -vwf
|
||||
ASSET_EXTRACT := $(PYTHON) $(TOOLS_DIR)/new_extract_assets.py
|
||||
EMULATOR = mupen64plus
|
||||
EMU_FLAGS = --noosd
|
||||
LOADER = loader64
|
||||
LOADER_FLAGS = -vwf
|
||||
SHA1SUM = sha1sum
|
||||
PRINT = printf
|
||||
|
||||
SHA1SUM = sha1sum
|
||||
ifeq ($(COLOR),1)
|
||||
NO_COL := \033[0m
|
||||
RED := \033[0;31m
|
||||
GREEN := \033[0;32m
|
||||
BLUE := \033[0;34m
|
||||
YELLOW := \033[0;33m
|
||||
BLINK := \033[33;5m
|
||||
endif
|
||||
|
||||
# Use Objcopy instead of extract_data_for_mio
|
||||
ifeq ($(COMPILER),gcc)
|
||||
EXTRACT_DATA_FOR_MIO := $(OBJCOPY) -O binary --only-section=.data
|
||||
endif
|
||||
|
||||
# Common build print status function
|
||||
define print
|
||||
@$(PRINT) "$(GREEN)$(1) $(YELLOW)$(2)$(GREEN) -> $(BLUE)$(3)$(NO_COL)\n"
|
||||
endef
|
||||
|
||||
|
||||
######################## Targets #############################
|
||||
|
||||
default: all
|
||||
#==============================================================================#
|
||||
# Main Targets #
|
||||
#==============================================================================#
|
||||
|
||||
# file dependencies generated by splitter
|
||||
MAKEFILE_SPLIT = Makefile.split
|
||||
include $(MAKEFILE_SPLIT)
|
||||
|
||||
all: $(BUILD_DIR)/$(TARGET).z64
|
||||
all: $(ROM)
|
||||
ifeq ($(COMPARE),1)
|
||||
@$(SHA1SUM) -c $(TARGET).sha1
|
||||
@$(PRINT) "$(GREEN)Checking if ROM matches.. $(NO_COL)\n"
|
||||
@$(SHA1SUM) --quiet -c $(TARGET).sha1 && $(PRINT) "$(TARGET): $(GREEN)OK$(NO_COL)\n" || ($(PRINT) "$(YELLOW)Building the ROM file has succeeded, but does not match the original ROM.\nThis is expected, and not an error, if you are making modifications.\nTo silence this message, use 'make COMPARE=0.' $(NO_COL)\n" && false)
|
||||
endif
|
||||
|
||||
clean:
|
||||
|
|
@ -225,10 +379,23 @@ distclean: distclean_assets
|
|||
./extract_assets.py --clean
|
||||
make -C tools clean
|
||||
|
||||
distclean_assets:
|
||||
rm -rf $(ASSET_DIRECTORIES)
|
||||
|
||||
test: $(ROM)
|
||||
$(EMULATOR) $(EMU_FLAGS) $<
|
||||
|
||||
load: $(ROM)
|
||||
$(LOADER) $(LOADER_FLAGS) $<
|
||||
|
||||
# Make sure build directory exists before compiling anything
|
||||
DUMMY != mkdir -p $(ALL_DIRS)
|
||||
|
||||
##################### Texture Generation #####################
|
||||
|
||||
|
||||
#==============================================================================#
|
||||
# Texture Generation #
|
||||
#==============================================================================#
|
||||
|
||||
# RGBA32, RGBA16, IA16, IA8, IA4, IA1, I8, I4
|
||||
$(BUILD_DIR)/%: %.png
|
||||
|
|
@ -237,54 +404,62 @@ $(BUILD_DIR)/%: %.png
|
|||
$(BUILD_DIR)/textures/%.mio0: $(BUILD_DIR)/textures/%
|
||||
$(MIO0TOOL) -c $< $@
|
||||
|
||||
#################### Compressed Segments #####################
|
||||
|
||||
$(BUILD_DIR)/%.mio0: %.bin
|
||||
$(MIO0TOOL) -c $< $@
|
||||
|
||||
$(BUILD_DIR)/%.mio0.o: $(BUILD_DIR)/%.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $@ $<
|
||||
|
||||
$(BUILD_DIR)/%.mio0.s: $(BUILD_DIR)/%.mio0
|
||||
printf ".section .data\n\n.balign 4\n\n.incbin \"$<\"\n" > $@
|
||||
|
||||
$(BUILD_DIR)/src/crash_screen.o: src/crash_screen.c
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/textures/crash_screen/crash_screen_font.ia1.inc.c -g textures/crash_screen/crash_screen_font.ia1.png -f ia1 -s u8
|
||||
@$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(CC) -c $(CFLAGS) -o $@ $<
|
||||
$(PYTHON) tools/set_o32abi_bit.py $@
|
||||
|
||||
$(BUILD_DIR)/src/trophy_model.inc.o: src/trophy_model.inc.c
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/textures/trophy/reflection_map_brass.rgba16.inc.c -g textures/trophy/reflection_map_brass.rgba16.png -f rgba16 -s u8
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/textures/trophy/reflection_map_silver.rgba16.inc.c -g textures/trophy/reflection_map_silver.rgba16.png -f rgba16 -s u8
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/textures/trophy/reflection_map_gold.rgba16.inc.c -g textures/trophy/reflection_map_gold.rgba16.png -f rgba16 -s u8
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/textures/trophy/podium1.rgba16.inc.c -g textures/trophy/podium1.rgba16.png -f rgba16 -s u8
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/textures/trophy/podium2.rgba16.inc.c -g textures/trophy/podium2.rgba16.png -f rgba16 -s u8
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/textures/trophy/podium3.rgba16.inc.c -g textures/trophy/podium3.rgba16.png -f rgba16 -s u8
|
||||
@$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(CC) -c $(CFLAGS) -o $@ $<
|
||||
$(PYTHON) tools/set_o32abi_bit.py $@
|
||||
|
||||
$(BUILD_DIR)/src/startup_logo.inc.o: src/startup_logo.inc.c
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/textures/startup_logo/reflection_map_gold.rgba16.inc.c -g textures/startup_logo/reflection_map_gold.rgba16.png -f rgba16 -s u8
|
||||
@$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(CC) -c $(CFLAGS) -o $@ $<
|
||||
$(PYTHON) tools/set_o32abi_bit.py $@
|
||||
|
||||
############################### Assets ###############################
|
||||
|
||||
ASSET_INCLUDES := $(shell find $(ASSET_DIR)/include -type f -name '*.mk')
|
||||
ASSET_INCLUDES := $(shell find $(ASSET_DIR)/include -type f -name "*.mk")
|
||||
ASSET_DIRECTORIES :=
|
||||
|
||||
$(foreach inc,$(ASSET_INCLUDES),$(eval include $(inc)))
|
||||
|
||||
distclean_assets:
|
||||
rm -rf $(ASSET_DIRECTORIES)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
#==============================================================================#
|
||||
# Compressed Segment Generation #
|
||||
#==============================================================================#
|
||||
|
||||
$(BUILD_DIR)/%.mio0: %.bin
|
||||
@$(PRINT) "$(GREEN)Compressing binary files: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(MIO0TOOL) -c $< $@
|
||||
|
||||
$(BUILD_DIR)/%.mio0.o: $(BUILD_DIR)/%.mio0.s
|
||||
@$(PRINT) "$(GREEN)Compiling mio0: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(AS) $(ASFLAGS) -o $@ $<
|
||||
|
||||
$(BUILD_DIR)/%.mio0.s: $(BUILD_DIR)/%.mio0
|
||||
$(call print,Generating mio0 asm:,$<,$@)
|
||||
printf ".section .data\n\n.balign 4\n\n.incbin \"$<\"\n" > $@
|
||||
|
||||
$(BUILD_DIR)/src/crash_screen.o: src/crash_screen.c
|
||||
@$(PRINT) "$(GREEN)Compiling Crash Screen: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/textures/crash_screen/crash_screen_font.ia1.inc.c -g textures/crash_screen/crash_screen_font.ia1.png -f ia1 -s u8
|
||||
@$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(V)$(CC) -c $(CFLAGS) -o $@ $<
|
||||
$(PYTHON) tools/set_o32abi_bit.py $@
|
||||
|
||||
$(BUILD_DIR)/src/trophy_model.inc.o: src/trophy_model.inc.c
|
||||
@$(PRINT) "$(GREEN)Compiling Trophy Model: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/textures/trophy/reflection_map_brass.rgba16.inc.c -g textures/trophy/reflection_map_brass.rgba16.png -f rgba16 -s u8
|
||||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/textures/trophy/reflection_map_silver.rgba16.inc.c -g textures/trophy/reflection_map_silver.rgba16.png -f rgba16 -s u8
|
||||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/textures/trophy/reflection_map_gold.rgba16.inc.c -g textures/trophy/reflection_map_gold.rgba16.png -f rgba16 -s u8
|
||||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/textures/trophy/podium1.rgba16.inc.c -g textures/trophy/podium1.rgba16.png -f rgba16 -s u8
|
||||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/textures/trophy/podium2.rgba16.inc.c -g textures/trophy/podium2.rgba16.png -f rgba16 -s u8
|
||||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/textures/trophy/podium3.rgba16.inc.c -g textures/trophy/podium3.rgba16.png -f rgba16 -s u8
|
||||
@$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(V)$(CC) -c $(CFLAGS) -o $@ $<
|
||||
$(PYTHON) tools/set_o32abi_bit.py $@
|
||||
|
||||
$(BUILD_DIR)/src/startup_logo.inc.o: src/startup_logo.inc.c
|
||||
@$(PRINT) "$(GREEN)Compiling Startup Logo: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/textures/startup_logo/reflection_map_gold.rgba16.inc.c -g textures/startup_logo/reflection_map_gold.rgba16.png -f rgba16 -s u8
|
||||
@$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(V)$(CC) -c $(CFLAGS) -o $@ $<
|
||||
$(PYTHON) tools/set_o32abi_bit.py $@
|
||||
|
||||
|
||||
|
||||
#==============================================================================#
|
||||
# Common Textures Segment Generation #
|
||||
#==============================================================================#
|
||||
|
||||
TEXTURE_FILES := $(foreach dir,$(TEXTURE_DIRS),$(subst .png, , $(wildcard $(dir)/*)))
|
||||
#TEXTURE_FILES_C := $(foreach file,$(TEXTURE_FILES),$(BUILD_DIR)/$(file:.png=.inc.c))
|
||||
|
||||
TEXTURE_FILES_TLUT := $(foreach dir,$(TEXTURE_DIRS)/tlut,$(subst .png, , $(wildcard $(dir)/*)))
|
||||
|
||||
|
|
@ -292,43 +467,47 @@ TEXTURE_FILES_TLUT2 := $(foreach dir,$(TEXTURE_DIRS)/tlut2,$(subst .png, , $(wil
|
|||
|
||||
|
||||
$(TEXTURE_FILES):
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8
|
||||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8
|
||||
|
||||
# TLUT
|
||||
$(TEXTURE_FILES_TLUT):
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8 -c $(lastword $(subst ., ,$(subst .$(lastword $(subst ., ,$(TEXTURE_FILES_TLUT))), ,$(TEXTURE_FILES_TLUT)))) -p $(BUILD_DIR)/$@.tlut.inc.c
|
||||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8 -c $(lastword $(subst ., ,$(subst .$(lastword $(subst ., ,$(TEXTURE_FILES_TLUT))), ,$(TEXTURE_FILES_TLUT)))) -p $(BUILD_DIR)/$@.tlut.inc.c
|
||||
|
||||
$(TEXTURE_FILES_TLUT2):
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8 -c $(lastword $(subst ., ,$(subst .$(lastword $(subst ., ,$(TEXTURE_FILES_TLUT2))), ,$(TEXTURE_FILES_TLUT2)))) -p $(BUILD_DIR)/$@.tlut.inc.c -m 0xFFFF
|
||||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8 -c $(lastword $(subst ., ,$(subst .$(lastword $(subst ., ,$(TEXTURE_FILES_TLUT2))), ,$(TEXTURE_FILES_TLUT2)))) -p $(BUILD_DIR)/$@.tlut.inc.c -m 0xFFFF
|
||||
|
||||
# common textures
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: src/common_textures.inc.c $(TEXTURE_FILES) $(TEXTURE_FILES_TLUT) $(TEXTURE_FILES_TLUT2)
|
||||
@$(PRINT) "$(GREEN)Compiling Common Textures: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/textures/132B50_25ED8_tlut.rgba16.inc.c -g textures/132B50_25ED8_tlut.rgba16.png -s u8
|
||||
$(V)$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_260D8.rgba16.ci8.inc.c -g textures/132B50_260D8.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(V)$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_26558.rgba16.ci8.inc.c -g textures/132B50_26558.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(V)$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_269D8.rgba16.ci8.inc.c -g textures/132B50_269D8.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(V)$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_26E58.rgba16.ci8.inc.c -g textures/132B50_26E58.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(V)$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_272D8.rgba16.ci8.inc.c -g textures/132B50_272D8.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(V)$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_27758.rgba16.ci8.inc.c -g textures/132B50_27758.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(V)$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_27BD8.rgba16.ci8.inc.c -g textures/132B50_27BD8.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(V)$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_28058.rgba16.ci8.inc.c -g textures/132B50_28058.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(V)$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_284D8.rgba16.ci8.inc.c -g textures/132B50_284D8.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(V)$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_28958.rgba16.ci8.inc.c -g textures/132B50_28958.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/textures/132B50_25ED8_tlut.rgba16.inc.c -g textures/132B50_25ED8_tlut.rgba16.png -s u8
|
||||
$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_260D8.rgba16.ci8.inc.c -g textures/132B50_260D8.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_26558.rgba16.ci8.inc.c -g textures/132B50_26558.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_269D8.rgba16.ci8.inc.c -g textures/132B50_269D8.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_26E58.rgba16.ci8.inc.c -g textures/132B50_26E58.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_272D8.rgba16.ci8.inc.c -g textures/132B50_272D8.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_27758.rgba16.ci8.inc.c -g textures/132B50_27758.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_27BD8.rgba16.ci8.inc.c -g textures/132B50_27BD8.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_28058.rgba16.ci8.inc.c -g textures/132B50_28058.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_284D8.rgba16.ci8.inc.c -g textures/132B50_284D8.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
$(N64GRAPHICS) -Z $(BUILD_DIR)/textures/132B50_28958.rgba16.ci8.inc.c -g textures/132B50_28958.rgba16.ci8.png -s u8 -w 24 -h 48 -f ci8 -c rgba16 -p textures/132B50_25ED8_tlut.rgba16.png
|
||||
|
||||
@$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(CC) -c $(CFLAGS) -o $@ $<
|
||||
@$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(V)$(CC) -c $(CFLAGS) -o $@ $<
|
||||
$(PYTHON) tools/set_o32abi_bit.py $@
|
||||
|
||||
|
||||
|
||||
#==============================================================================#
|
||||
# Course Packed Displaylists and Geography Generation #
|
||||
#==============================================================================#
|
||||
|
||||
# todo: Fix DLSYMGEN & MODELSYMGEN scripts
|
||||
|
||||
COURSE_MODEL_TARGETS := $(foreach dir,$(COURSE_DIRS),$(BUILD_DIR)/$(dir)/model.inc.mio0.o)
|
||||
COURSE_PACKED_DL := $(foreach dir,$(COURSE_DIRS),$(BUILD_DIR)/$(dir)/packed_dl.inc.bin)
|
||||
# COURSE_PACKED_DL_O := $(foreach dir,$(COURSE_DIRS),$(BUILD_DIR)/$(dir)/packed_dl.inc.bin)
|
||||
|
||||
|
||||
|
||||
#$(info $(COURSE_PACKED_DL))
|
||||
$(COURSE_PACKED_DL):
|
||||
$(LD) -t -e 0 -Ttext=07000000 -Map $(@D)/packed.inc.elf.map -o $(@D)/packed.inc.elf $(@D)/packed.inc.o --no-check-sections
|
||||
$(V)$(LD) -t -e 0 -Ttext=07000000 -Map $(@D)/packed.inc.elf.map -o $(@D)/packed.inc.elf $(@D)/packed.inc.o --no-check-sections
|
||||
# Generate header for packed displaylists
|
||||
# $(DLSYMGEN)
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(@D)/packed.inc.elf $(@D)/packed.inc.bin
|
||||
|
|
@ -336,56 +515,72 @@ $(COURSE_PACKED_DL):
|
|||
|
||||
# Elf the course data to include symbol addresses then convert to binary and compress to mio0. The mio0 file is converted to an object file so that the linker can link it.
|
||||
$(COURSE_MODEL_TARGETS) : $(BUILD_DIR)/%/model.inc.mio0.o : %/model.inc.c $(COURSE_PACKED_DL)
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(@D)/model.inc.elf.map -o $(@D)/model.inc.elf $(@D)/model.inc.o --no-check-sections
|
||||
@$(PRINT) "$(GREEN)Compressing Course Geography and Packed Displaylists: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(LD) -t -e 0 -Ttext=0F000000 -Map $(@D)/model.inc.elf.map -o $(@D)/model.inc.elf $(@D)/model.inc.o --no-check-sections
|
||||
# Generate model vertice count header
|
||||
# $(MODELSYMGEN)
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(@D)/model.inc.elf $(@D)/model.inc.bin
|
||||
$(MIO0TOOL) -c $(@D)/model.inc.bin $(@D)/model.inc.mio0
|
||||
$(V)$(MIO0TOOL) -c $(@D)/model.inc.bin $(@D)/model.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"$(@D)/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_$(lastword $(subst /, ,$*))_packed\n\n.incbin \"$(@D)/packed_dl.inc.bin\"\n\n.balign 0x10\n" > $(@D)/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $@ $(@D)/model.inc.mio0.s
|
||||
|
||||
#################### Compile course vertex to mio0 #####################
|
||||
#################### Compile course displaylists to mio0 #####################
|
||||
|
||||
|
||||
#==============================================================================#
|
||||
# Course Data Generation #
|
||||
#==============================================================================#
|
||||
|
||||
COURSE_TEXTURE_FILES := $(foreach dir,textures/courses,$(subst .png, , $(wildcard $(dir)/*)))
|
||||
COURSE_TLUT := $(foreach dir,textures/courses/tlut,$(subst .png, , $(wildcard $(dir)/*)))
|
||||
COURSE_TLUT2 := $(foreach dir,textures/courses/tlut2,$(subst .png, , $(wildcard $(dir)/*)))
|
||||
#RAINBOW_ROAD_TEXTURE_FILES := $(foreach dir,textures/courses/rainbow_road,$(subst .png, , $(wildcard $(dir)/*)))
|
||||
COURSE_TLUT3 := $(foreach dir,textures/courses/tlut3,$(subst .png, , $(wildcard $(dir)/*)))
|
||||
|
||||
COURSE_DATA_TARGETS := $(foreach dir,$(COURSE_DIRS),$(BUILD_DIR)/$(dir)/course_data.inc.mio0.o)
|
||||
COURSE_DATA_TARGETS_O := $(foreach dir,$(COURSE_DIRS),$(BUILD_DIR)/$(dir)/course_data.inc.o)
|
||||
|
||||
$(COURSE_TEXTURE_FILES):
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8
|
||||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8
|
||||
|
||||
$(COURSE_TLUT):
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8 -c $(lastword $(subst ., ,$(subst .$(lastword $(subst ., ,$(COURSE_TLUT))), ,$(COURSE_TLUT)))) -p $(BUILD_DIR)/$@.tlut.inc.c
|
||||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8 -c $(lastword $(subst ., ,$(subst .$(lastword $(subst ., ,$(COURSE_TLUT))), ,$(COURSE_TLUT)))) -p $(BUILD_DIR)/$@.tlut.inc.c
|
||||
|
||||
$(COURSE_TLUT2):
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8 -c $(lastword $(subst ., ,$(subst .$(lastword $(subst ., ,$(COURSE_TLUT2))), ,$(COURSE_TLUT2)))) -p $(BUILD_DIR)/$@.tlut.inc.c -m 0xFFFF
|
||||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8 -c $(lastword $(subst ., ,$(subst .$(lastword $(subst ., ,$(COURSE_TLUT2))), ,$(COURSE_TLUT2)))) -p $(BUILD_DIR)/$@.tlut.inc.c -m 0xFFFF
|
||||
|
||||
$(COURSE_DATA_TARGETS_O): $(BUILD_DIR)/%/course_data.inc.o : %/course_data.inc.c $(COURSE_TEXTURE_FILES) $(COURSE_TLUT) $(COURSE_TLUT2)
|
||||
@$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(CC) -c $(CFLAGS) -o $@ $<
|
||||
$(COURSE_TLUT3):
|
||||
$(V)$(N64GRAPHICS) -Z $(BUILD_DIR)/$@.inc.c -g $@.png -s u8 -c rgba16 -f ci8 -p textures/courses/$(basename $(notdir $@)).png
|
||||
|
||||
$(COURSE_DATA_TARGETS_O): $(BUILD_DIR)/%/course_data.inc.o : %/course_data.inc.c $(COURSE_TEXTURE_FILES) $(COURSE_TLUT) $(COURSE_TLUT2) $(COURSE_TLUT3)
|
||||
@$(PRINT) "$(GREEN)Compiling Course Data: $(BLUE)$@ $(NO_COL)\n"
|
||||
@$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(V)$(CC) -c $(CFLAGS) -o $@ $<
|
||||
$(PYTHON) tools/set_o32abi_bit.py $@
|
||||
|
||||
$(COURSE_DATA_TARGETS): $(BUILD_DIR)/%/course_data.inc.mio0.o: $(BUILD_DIR)/%/course_data.inc.o
|
||||
# todo: Clean this up if possible. Not really worth the time though.
|
||||
$(LD) -t -e 0 -Ttext=06000000 -Map $(@D)/course_data.inc.elf.map -o $(@D)/course_data.inc.elf $(@D)/course_data.inc.o --no-check-sections
|
||||
@$(PRINT) "$(GREEN)Compressing Course Data: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(LD) -t -e 0 -Ttext=06000000 -Map $(@D)/course_data.inc.elf.map -o $(@D)/course_data.inc.elf $(@D)/course_data.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(@D)/course_data.inc.elf $(@D)/course_data.inc.bin
|
||||
$(MIO0TOOL) -c $(@D)/course_data.inc.bin $(@D)/course_data.inc.mio0
|
||||
$(V)$(MIO0TOOL) -c $(@D)/course_data.inc.bin $(@D)/course_data.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"$(@D)/course_data.inc.mio0\"\n\n" > $(@D)/course_data.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $@ $(@D)/course_data.inc.mio0.s
|
||||
|
||||
|
||||
|
||||
#==============================================================================#
|
||||
# Source Code Generation #
|
||||
#==============================================================================#
|
||||
|
||||
$(BUILD_DIR)/%.o: %.c
|
||||
@$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(CC) -c $(CFLAGS) -o $@ $<
|
||||
$(call print,Compiling:,$<,$@)
|
||||
@$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(V)$(CC) -c $(CFLAGS) -o $@ $<
|
||||
$(PYTHON) tools/set_o32abi_bit.py $@
|
||||
|
||||
$(BUILD_DIR)/%.o: $(BUILD_DIR)/%.c
|
||||
@$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(CC) -c $(CFLAGS) -o $@ $<
|
||||
$(call print,Compiling:,$<,$@)
|
||||
@$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(V)$(CC) -c $(CFLAGS) -o $@ $<
|
||||
|
||||
$(BUILD_DIR)/%.o: %.s $(MIO0_FILES) $(RAW_TEXTURE_FILES)
|
||||
$(AS) $(ASFLAGS) -o $@ $<
|
||||
|
|
@ -395,10 +590,14 @@ $(GLOBAL_ASM_O_FILES): CC := $(PYTHON) tools/asm_processor/build.py $(CC) -- $(A
|
|||
$(GLOBAL_ASM_AUDIO_O_FILES): CC := $(PYTHON) tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
|
||||
$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) #repeat for other files
|
||||
$(CPP) $(CPPFLAGS) $(VERSION_CFLAGS) -DBUILD_DIR=$(BUILD_DIR) -MMD -MP -MT $@ -MF $@.d -o $@ $<
|
||||
$(V)$(CPP) $(CPPFLAGS) $(DEF_INC_CFLAGS) -DBUILD_DIR=$(BUILD_DIR) -MMD -MP -MT $@ -MF $@.d -o $@ $<
|
||||
|
||||
|
||||
#################### Libultra #####################
|
||||
|
||||
#==============================================================================#
|
||||
# Libultra Definitions #
|
||||
#==============================================================================#
|
||||
|
||||
$(BUILD_DIR)/src/os/%.o: OPT_FLAGS :=
|
||||
$(BUILD_DIR)/src/os/math/%.o: OPT_FLAGS := -O2
|
||||
$(BUILD_DIR)/src/os/math/ll%.o: OPT_FLAGS :=
|
||||
|
|
@ -420,58 +619,66 @@ ifeq ($(COMPILER),ido)
|
|||
$(BUILD_DIR)/src/audio/external.o: OPT_FLAGS := -O2 -framepointer
|
||||
endif
|
||||
|
||||
#################### STAFF GHOSTS #####################
|
||||
#==============================================================================#
|
||||
# Compress Segmented Data #
|
||||
#==============================================================================#
|
||||
|
||||
# trophy_model.inc.c
|
||||
|
||||
$(BUILD_DIR)/src/trophy_model.inc.mio0.o: $(BUILD_DIR)/src/trophy_model.inc.o
|
||||
$(LD) -t -e 0 -Ttext=0B000000 -Map $(BUILD_DIR)/src/trophy_model.inc.elf.map -o $(BUILD_DIR)/src/trophy_model.inc.elf $(BUILD_DIR)/src/trophy_model.inc.o --no-check-sections
|
||||
@$(PRINT) "$(GREEN)Compressing Trophy Model: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(LD) -t -e 0 -Ttext=0B000000 -Map $(BUILD_DIR)/src/trophy_model.inc.elf.map -o $(BUILD_DIR)/src/trophy_model.inc.elf $(BUILD_DIR)/src/trophy_model.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(BUILD_DIR)/src/trophy_model.inc.elf $(BUILD_DIR)/src/trophy_model.inc.bin
|
||||
$(MIO0TOOL) -c $(BUILD_DIR)/src/trophy_model.inc.bin $(BUILD_DIR)/src/trophy_model.inc.mio0
|
||||
$(V)$(MIO0TOOL) -c $(BUILD_DIR)/src/trophy_model.inc.bin $(BUILD_DIR)/src/trophy_model.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.data\n\n.balign 4\n\nglabel trophy_model\n\n.incbin \"build/us/src/trophy_model.inc.mio0\"\n\n.balign 16\nglabel data_821D10_end\n" > build/us/src/trophy_model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(BUILD_DIR)/src/trophy_model.inc.mio0.o $(BUILD_DIR)/src/trophy_model.inc.mio0.s
|
||||
|
||||
# startup_logo.inc.c
|
||||
|
||||
$(BUILD_DIR)/src/startup_logo.inc.mio0.o: src/startup_logo.inc.c
|
||||
$(LD) -t -e 0 -Ttext=06000000 -Map $(BUILD_DIR)/src/startup_logo.inc.elf.map -o $(BUILD_DIR)/src/startup_logo.inc.elf $(BUILD_DIR)/src/startup_logo.inc.o --no-check-sections
|
||||
@$(PRINT) "$(GREEN)Compressing Startup Logo: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(LD) -t -e 0 -Ttext=06000000 -Map $(BUILD_DIR)/src/startup_logo.inc.elf.map -o $(BUILD_DIR)/src/startup_logo.inc.elf $(BUILD_DIR)/src/startup_logo.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(BUILD_DIR)/src/startup_logo.inc.elf $(BUILD_DIR)/src/startup_logo.inc.bin
|
||||
$(MIO0TOOL) -c $(BUILD_DIR)/src/startup_logo.inc.bin $(BUILD_DIR)/src/startup_logo.inc.mio0
|
||||
$(V)$(MIO0TOOL) -c $(BUILD_DIR)/src/startup_logo.inc.bin $(BUILD_DIR)/src/startup_logo.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.data\n\n\n\n.balign 4\n\n\nglabel startup_logo\n\n.incbin \"build/us/src/startup_logo.inc.mio0\"\n\n.balign 16\n\nglabel data_825800_end\n" > build/us/src/startup_logo.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(BUILD_DIR)/src/startup_logo.inc.mio0.o $(BUILD_DIR)/src/startup_logo.inc.mio0.s
|
||||
|
||||
# common_textures.inc.c
|
||||
$(BUILD_DIR)/src/common_textures.inc.mio0.o: $(BUILD_DIR)/src/common_textures.inc.o
|
||||
$(LD) -t -e 0 -Ttext=0D000000 --unresolved-symbols=ignore-all -Map $(BUILD_DIR)/src/common_textures.inc.elf.map -o $(BUILD_DIR)/src/common_textures.inc.elf $(BUILD_DIR)/src/common_textures.inc.o --no-check-sections
|
||||
@$(PRINT) "$(GREEN)Compressing Common Textures: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(LD) -t -e 0 -Ttext=0D000000 --unresolved-symbols=ignore-all -Map $(BUILD_DIR)/src/common_textures.inc.elf.map -o $(BUILD_DIR)/src/common_textures.inc.elf $(BUILD_DIR)/src/common_textures.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(BUILD_DIR)/src/common_textures.inc.elf $(BUILD_DIR)/src/common_textures.inc.bin
|
||||
$(MIO0TOOL) -c $(BUILD_DIR)/src/common_textures.inc.bin $(BUILD_DIR)/src/common_textures.inc.mio0
|
||||
$(V)$(MIO0TOOL) -c $(BUILD_DIR)/src/common_textures.inc.bin $(BUILD_DIR)/src/common_textures.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"src/common_textures.inc.mio0\"\n\n" > build/us/src/common_textures.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(BUILD_DIR)/src/common_textures.inc.mio0.o $(BUILD_DIR)/src/common_textures.inc.mio0.s
|
||||
|
||||
# todo: Make this work
|
||||
# Run linker script through the C preprocessor
|
||||
#$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT)
|
||||
# $(call print,Preprocessing linker script:,$<,$@)
|
||||
# $(V)$(CPP) $(CPPFLAGS) -DBUILD_DIR=$(BUILD_DIR) -MMD -MP -MT $@ -MF $@.d -o $@ $<
|
||||
|
||||
$(BUILD_DIR)/$(TARGET).elf: $(COURSE_DATA_TARGETS) $(O_FILES) $(COURSE_MIO0_OBJ_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/src/startup_logo.inc.mio0.o $(BUILD_DIR)/src/trophy_model.inc.mio0.o $(BUILD_DIR)/src/common_textures.inc.mio0.o $(COURSE_MODEL_TARGETS) undefined_syms.txt
|
||||
$(LD) $(LDFLAGS) -o $@
|
||||
# Link MK64 ELF file
|
||||
$(ELF): $(COURSE_DATA_TARGETS) $(O_FILES) $(COURSE_MIO0_OBJ_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/src/startup_logo.inc.mio0.o $(BUILD_DIR)/src/trophy_model.inc.mio0.o $(BUILD_DIR)/src/common_textures.inc.mio0.o $(COURSE_MODEL_TARGETS) undefined_syms.txt
|
||||
@$(PRINT) "$(GREEN)Linking ELF file: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(LD) $(LDFLAGS) -o $@
|
||||
|
||||
$(BUILD_DIR)/$(TARGET).z64: $(BUILD_DIR)/$(TARGET).elf
|
||||
$(OBJCOPY) $(OBJCOPYFLAGS) $< $(@:.z64=.bin) -O binary
|
||||
$(N64CKSUM) $(@:.z64=.bin) $@
|
||||
# Build ROM
|
||||
$(ROM): $(ELF)
|
||||
$(call print,Building ROM:,$<,$@)
|
||||
$(V)$(OBJCOPY) $(OBJCOPYFLAGS) $< $(@:.z64=.bin) -O binary
|
||||
$(V)$(N64CKSUM) $(@:.z64=.bin) $@
|
||||
|
||||
$(BUILD_DIR)/$(TARGET).hex: $(TARGET).z64
|
||||
xxd $< > $@
|
||||
|
||||
$(BUILD_DIR)/$(TARGET).objdump: $(BUILD_DIR)/$(TARGET).elf
|
||||
$(BUILD_DIR)/$(TARGET).objdump: $(ELF)
|
||||
$(OBJDUMP) -D $< > $@
|
||||
|
||||
test: $(TARGET).z64
|
||||
$(EMULATOR) $(EMU_FLAGS) $<
|
||||
|
||||
load: $(TARGET).z64
|
||||
$(LOADER) $(LOADER_FLAGS) $<
|
||||
|
||||
.PHONY: all clean distclean distclean_assets default diff test load
|
||||
# with no prerequisites, .SECONDARY causes no intermediate target to be removed
|
||||
.SECONDARY:
|
||||
|
||||
# Remove built-in rules, to improve build/us/courses/star_cup/bowsers_castle/model.inc.mio0.performance
|
||||
# Remove built-in rules, to improve performance
|
||||
MAKEFLAGS += --no-builtin-rules
|
||||
|
||||
-include $(DEP_FILES)
|
||||
|
|
|
|||
|
|
@ -428,10 +428,7 @@ glabel D_801657B4
|
|||
.skip 4
|
||||
|
||||
glabel D_801657B8
|
||||
.skip 1
|
||||
|
||||
glabel D_801657B9
|
||||
.skip 15
|
||||
.skip 16
|
||||
|
||||
glabel D_801657C8
|
||||
.skip 8
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
glabel dma_copy_base_729a30
|
||||
/* 099C00 80099000 27BDFFB8 */ addiu $sp, $sp, -0x48
|
||||
/* 099C04 80099004 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 099C08 80099008 AFA40048 */ sw $a0, 0x48($sp)
|
||||
/* 099C0C 8009900C AFA5004C */ sw $a1, 0x4c($sp)
|
||||
/* 099C10 80099010 AFA60050 */ sw $a2, 0x50($sp)
|
||||
/* 099C14 80099014 0C0336E0 */ jal osInvalDCache
|
||||
/* 099C18 80099018 00C02025 */ move $a0, $a2
|
||||
/* 099C1C 8009901C 8FAE0048 */ lw $t6, 0x48($sp)
|
||||
/* 099C20 80099020 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
|
||||
/* 099C24 80099024 8FB90050 */ lw $t9, 0x50($sp)
|
||||
/* 099C28 80099028 8FA8004C */ lw $t0, 0x4c($sp)
|
||||
/* 099C2C 8009902C 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
|
||||
/* 099C30 80099030 3C180073 */ lui $t8, %hi(_textures_0aSegmentRomStart) # $t8, 0x73
|
||||
/* 099C34 80099034 3C098015 */ lui $t1, %hi(gDmaMesgQueue) # $t1, 0x8015
|
||||
/* 099C38 80099038 2529EF58 */ addiu $t1, %lo(gDmaMesgQueue) # addiu $t1, $t1, -0x10a8
|
||||
/* 099C3C 8009903C 27189A30 */ addiu $t8, %lo(_textures_0aSegmentRomStart) # addiu $t8, $t8, -0x65d0
|
||||
/* 099C40 80099040 01C17824 */ and $t7, $t6, $at
|
||||
/* 099C44 80099044 01F83821 */ addu $a3, $t7, $t8
|
||||
/* 099C48 80099048 AFA90018 */ sw $t1, 0x18($sp)
|
||||
/* 099C4C 8009904C 27A40030 */ addiu $a0, $sp, 0x30
|
||||
/* 099C50 80099050 00002825 */ move $a1, $zero
|
||||
/* 099C54 80099054 00003025 */ move $a2, $zero
|
||||
/* 099C58 80099058 AFB90010 */ sw $t9, 0x10($sp)
|
||||
/* 099C5C 8009905C 0C03370C */ jal osPiStartDma
|
||||
/* 099C60 80099060 AFA80014 */ sw $t0, 0x14($sp)
|
||||
/* 099C64 80099064 3C048015 */ lui $a0, %hi(gDmaMesgQueue) # $a0, 0x8015
|
||||
/* 099C68 80099068 2484EF58 */ addiu $a0, %lo(gDmaMesgQueue) # addiu $a0, $a0, -0x10a8
|
||||
/* 099C6C 8009906C 27A5002C */ addiu $a1, $sp, 0x2c
|
||||
/* 099C70 80099070 0C0335D4 */ jal osRecvMesg
|
||||
/* 099C74 80099074 24060001 */ li $a2, 1
|
||||
/* 099C78 80099078 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 099C7C 8009907C 27BD0048 */ addiu $sp, $sp, 0x48
|
||||
/* 099C80 80099080 03E00008 */ jr $ra
|
||||
/* 099C84 80099084 00000000 */ nop
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
glabel dma_copy_base_7fa3c0
|
||||
/* 099C88 80099088 27BDFFB8 */ addiu $sp, $sp, -0x48
|
||||
/* 099C8C 8009908C AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 099C90 80099090 AFA40048 */ sw $a0, 0x48($sp)
|
||||
/* 099C94 80099094 AFA5004C */ sw $a1, 0x4c($sp)
|
||||
/* 099C98 80099098 AFA60050 */ sw $a2, 0x50($sp)
|
||||
/* 099C9C 8009909C 0C0336E0 */ jal osInvalDCache
|
||||
/* 099CA0 800990A0 00C02025 */ move $a0, $a2
|
||||
/* 099CA4 800990A4 8FAE0048 */ lw $t6, 0x48($sp)
|
||||
/* 099CA8 800990A8 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
|
||||
/* 099CAC 800990AC 8FB90050 */ lw $t9, 0x50($sp)
|
||||
/* 099CB0 800990B0 8FA8004C */ lw $t0, 0x4c($sp)
|
||||
/* 099CB4 800990B4 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
|
||||
/* 099CB8 800990B8 3C180080 */ lui $t8, %hi(_textures_0bSegmentRomStart) # $t8, 0x80
|
||||
/* 099CBC 800990BC 3C098015 */ lui $t1, %hi(gDmaMesgQueue) # $t1, 0x8015
|
||||
/* 099CC0 800990C0 2529EF58 */ addiu $t1, %lo(gDmaMesgQueue) # addiu $t1, $t1, -0x10a8
|
||||
/* 099CC4 800990C4 2718A3C0 */ addiu $t8, %lo(_textures_0bSegmentRomStart) # addiu $t8, $t8, -0x5c40
|
||||
/* 099CC8 800990C8 01C17824 */ and $t7, $t6, $at
|
||||
/* 099CCC 800990CC 01F83821 */ addu $a3, $t7, $t8
|
||||
/* 099CD0 800990D0 AFA90018 */ sw $t1, 0x18($sp)
|
||||
/* 099CD4 800990D4 27A40030 */ addiu $a0, $sp, 0x30
|
||||
/* 099CD8 800990D8 00002825 */ move $a1, $zero
|
||||
/* 099CDC 800990DC 00003025 */ move $a2, $zero
|
||||
/* 099CE0 800990E0 AFB90010 */ sw $t9, 0x10($sp)
|
||||
/* 099CE4 800990E4 0C03370C */ jal osPiStartDma
|
||||
/* 099CE8 800990E8 AFA80014 */ sw $t0, 0x14($sp)
|
||||
/* 099CEC 800990EC 3C048015 */ lui $a0, %hi(gDmaMesgQueue) # $a0, 0x8015
|
||||
/* 099CF0 800990F0 2484EF58 */ addiu $a0, %lo(gDmaMesgQueue) # addiu $a0, $a0, -0x10a8
|
||||
/* 099CF4 800990F4 27A5002C */ addiu $a1, $sp, 0x2c
|
||||
/* 099CF8 800990F8 0C0335D4 */ jal osRecvMesg
|
||||
/* 099CFC 800990FC 24060001 */ li $a2, 1
|
||||
/* 099D00 80099100 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 099D04 80099104 27BD0048 */ addiu $sp, $sp, 0x48
|
||||
/* 099D08 80099108 03E00008 */ jr $ra
|
||||
/* 099D0C 8009910C 00000000 */ nop
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
glabel debug_print_number
|
||||
/* 058124 80057524 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 058128 80057528 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 05812C 8005752C AFB2001C */ sw $s2, 0x1c($sp)
|
||||
/* 058130 80057530 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* 058134 80057534 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 058138 80057538 00C08025 */ move $s0, $a2
|
||||
/* 05813C 8005753C 00808825 */ move $s1, $a0
|
||||
/* 058140 80057540 00A09025 */ move $s2, $a1
|
||||
/* 058144 80057544 AFB30020 */ sw $s3, 0x20($sp)
|
||||
/* 058148 80057548 0C015D15 */ jal debug_wrap_text
|
||||
/* 05814C 8005754C AFA70034 */ sw $a3, 0x34($sp)
|
||||
/* 058150 80057550 8FA70034 */ lw $a3, 0x34($sp)
|
||||
/* 058154 80057554 0601000C */ bgez $s0, .L80057588
|
||||
/* 058158 80057558 02001025 */ move $v0, $s0
|
||||
/* 05815C 8005755C 8E240000 */ lw $a0, ($s1)
|
||||
/* 058160 80057560 8E450000 */ lw $a1, ($s2)
|
||||
/* 058164 80057564 3C06800E */ lui $a2, %hi(D_800E5655) # $a2, 0x800e
|
||||
/* 058168 80057568 80C65655 */ lb $a2, %lo(D_800E5655)($a2)
|
||||
/* 05816C 8005756C 0C015CF9 */ jal func_800573E4
|
||||
/* 058170 80057570 AFA70034 */ sw $a3, 0x34($sp)
|
||||
/* 058174 80057574 02202025 */ move $a0, $s1
|
||||
/* 058178 80057578 0C015D15 */ jal debug_wrap_text
|
||||
/* 05817C 8005757C 02402825 */ move $a1, $s2
|
||||
/* 058180 80057580 8FA70034 */ lw $a3, 0x34($sp)
|
||||
/* 058184 80057584 00101023 */ negu $v0, $s0
|
||||
.L80057588:
|
||||
/* 058188 80057588 3C038016 */ lui $v1, %hi(D_801657B8) # $v1, 0x8016
|
||||
/* 05818C 8005758C 246357B8 */ addiu $v1, %lo(D_801657B8) # addiu $v1, $v1, 0x57b8
|
||||
/* 058190 80057590 2413FFFF */ li $s3, -1
|
||||
/* 058194 80057594 A0730000 */ sb $s3, ($v1)
|
||||
/* 058198 80057598 1040000F */ beqz $v0, .L800575D8
|
||||
/* 05819C 8005759C 00608025 */ move $s0, $v1
|
||||
/* 0581A0 800575A0 50400011 */ beql $v0, $zero, .L800575E8
|
||||
/* 0581A4 800575A4 82060000 */ lb $a2, ($s0)
|
||||
.L800575A8:
|
||||
/* 0581A8 800575A8 0047001B */ divu $zero, $v0, $a3
|
||||
/* 0581AC 800575AC 00007010 */ mfhi $t6
|
||||
/* 0581B0 800575B0 00001012 */ mflo $v0
|
||||
/* 0581B4 800575B4 A20E0001 */ sb $t6, 1($s0)
|
||||
/* 0581B8 800575B8 26100001 */ addiu $s0, $s0, 1
|
||||
/* 0581BC 800575BC 14E00002 */ bnez $a3, .L800575C8
|
||||
/* 0581C0 800575C0 00000000 */ nop
|
||||
/* 0581C4 800575C4 0007000D */ break 7
|
||||
.L800575C8:
|
||||
/* 0581C8 800575C8 1440FFF7 */ bnez $v0, .L800575A8
|
||||
/* 0581CC 800575CC 00000000 */ nop
|
||||
/* 0581D0 800575D0 10000005 */ b .L800575E8
|
||||
/* 0581D4 800575D4 82060000 */ lb $a2, ($s0)
|
||||
.L800575D8:
|
||||
/* 0581D8 800575D8 3C108016 */ lui $s0, %hi(D_801657B9) # $s0, 0x8016
|
||||
/* 0581DC 800575DC 261057B9 */ addiu $s0, %lo(D_801657B9) # addiu $s0, $s0, 0x57b9
|
||||
/* 0581E0 800575E0 A2000000 */ sb $zero, ($s0)
|
||||
/* 0581E4 800575E4 82060000 */ lb $a2, ($s0)
|
||||
.L800575E8:
|
||||
/* 0581E8 800575E8 8E240000 */ lw $a0, ($s1)
|
||||
.L800575EC:
|
||||
/* 0581EC 800575EC 8E450000 */ lw $a1, ($s2)
|
||||
/* 0581F0 800575F0 0C015CF9 */ jal func_800573E4
|
||||
/* 0581F4 800575F4 2610FFFF */ addiu $s0, $s0, -1
|
||||
/* 0581F8 800575F8 02202025 */ move $a0, $s1
|
||||
/* 0581FC 800575FC 0C015D15 */ jal debug_wrap_text
|
||||
/* 058200 80057600 02402825 */ move $a1, $s2
|
||||
/* 058204 80057604 82060000 */ lb $a2, ($s0)
|
||||
/* 058208 80057608 5666FFF8 */ bnel $s3, $a2, .L800575EC
|
||||
/* 05820C 8005760C 8E240000 */ lw $a0, ($s1)
|
||||
/* 058210 80057610 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 058214 80057614 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* 058218 80057618 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* 05821C 8005761C 8FB2001C */ lw $s2, 0x1c($sp)
|
||||
/* 058220 80057620 8FB30020 */ lw $s3, 0x20($sp)
|
||||
/* 058224 80057624 03E00008 */ jr $ra
|
||||
/* 058228 80057628 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
glabel func_8005762C
|
||||
/* 05822C 8005762C 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 058230 80057630 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 058234 80057634 AFB2001C */ sw $s2, 0x1c($sp)
|
||||
/* 058238 80057638 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* 05823C 8005763C 00808825 */ move $s1, $a0
|
||||
/* 058240 80057640 00A09025 */ move $s2, $a1
|
||||
/* 058244 80057644 AFB30020 */ sw $s3, 0x20($sp)
|
||||
/* 058248 80057648 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 05824C 8005764C AFA60030 */ sw $a2, 0x30($sp)
|
||||
/* 058250 80057650 0C015D15 */ jal debug_wrap_text
|
||||
/* 058254 80057654 AFA70034 */ sw $a3, 0x34($sp)
|
||||
/* 058258 80057658 8FA60030 */ lw $a2, 0x30($sp)
|
||||
/* 05825C 8005765C 3C038016 */ lui $v1, %hi(D_801657B8) # $v1, 0x8016
|
||||
/* 058260 80057660 246357B8 */ addiu $v1, %lo(D_801657B8) # addiu $v1, $v1, 0x57b8
|
||||
/* 058264 80057664 2413FFFF */ li $s3, -1
|
||||
/* 058268 80057668 8FA70034 */ lw $a3, 0x34($sp)
|
||||
/* 05826C 8005766C A0730000 */ sb $s3, ($v1)
|
||||
/* 058270 80057670 00608025 */ move $s0, $v1
|
||||
/* 058274 80057674 10C0000F */ beqz $a2, .L800576B4
|
||||
/* 058278 80057678 00C01025 */ move $v0, $a2
|
||||
/* 05827C 8005767C 50C00011 */ beql $a2, $zero, .L800576C4
|
||||
/* 058280 80057680 82060000 */ lb $a2, ($s0)
|
||||
.L80057684:
|
||||
/* 058284 80057684 0047001B */ divu $zero, $v0, $a3
|
||||
/* 058288 80057688 00007010 */ mfhi $t6
|
||||
/* 05828C 8005768C 00001012 */ mflo $v0
|
||||
/* 058290 80057690 A20E0001 */ sb $t6, 1($s0)
|
||||
/* 058294 80057694 26100001 */ addiu $s0, $s0, 1
|
||||
/* 058298 80057698 14E00002 */ bnez $a3, .L800576A4
|
||||
/* 05829C 8005769C 00000000 */ nop
|
||||
/* 0582A0 800576A0 0007000D */ break 7
|
||||
.L800576A4:
|
||||
/* 0582A4 800576A4 1440FFF7 */ bnez $v0, .L80057684
|
||||
/* 0582A8 800576A8 00000000 */ nop
|
||||
/* 0582AC 800576AC 10000005 */ b .L800576C4
|
||||
/* 0582B0 800576B0 82060000 */ lb $a2, ($s0)
|
||||
.L800576B4:
|
||||
/* 0582B4 800576B4 3C108016 */ lui $s0, %hi(D_801657B9) # $s0, 0x8016
|
||||
/* 0582B8 800576B8 261057B9 */ addiu $s0, %lo(D_801657B9) # addiu $s0, $s0, 0x57b9
|
||||
/* 0582BC 800576BC A2000000 */ sb $zero, ($s0)
|
||||
/* 0582C0 800576C0 82060000 */ lb $a2, ($s0)
|
||||
.L800576C4:
|
||||
/* 0582C4 800576C4 8E240000 */ lw $a0, ($s1)
|
||||
.L800576C8:
|
||||
/* 0582C8 800576C8 8E450000 */ lw $a1, ($s2)
|
||||
/* 0582CC 800576CC 0C015CF9 */ jal func_800573E4
|
||||
/* 0582D0 800576D0 2610FFFF */ addiu $s0, $s0, -1
|
||||
/* 0582D4 800576D4 02202025 */ move $a0, $s1
|
||||
/* 0582D8 800576D8 0C015D15 */ jal debug_wrap_text
|
||||
/* 0582DC 800576DC 02402825 */ move $a1, $s2
|
||||
/* 0582E0 800576E0 82060000 */ lb $a2, ($s0)
|
||||
/* 0582E4 800576E4 5666FFF8 */ bnel $s3, $a2, .L800576C8
|
||||
/* 0582E8 800576E8 8E240000 */ lw $a0, ($s1)
|
||||
/* 0582EC 800576EC 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 0582F0 800576F0 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* 0582F4 800576F4 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* 0582F8 800576F8 8FB2001C */ lw $s2, 0x1c($sp)
|
||||
/* 0582FC 800576FC 8FB30020 */ lw $s3, 0x20($sp)
|
||||
/* 058300 80057700 03E00008 */ jr $ra
|
||||
/* 058304 80057704 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
|
|
@ -230,7 +230,7 @@ struct PalmTree {
|
|||
/* 0x30 */ UnkActorInner unk30;
|
||||
}; // size = 0x70
|
||||
|
||||
struct TripleShellParent {
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 type;
|
||||
/* 0x02 */ s16 flags;
|
||||
/* 0x04 */ s16 shellsAvailable;
|
||||
|
|
@ -244,7 +244,7 @@ struct TripleShellParent {
|
|||
/* 0x18 */ Vec3f unk_18;
|
||||
/* 0x24 */ Vec3f shellIndices; // Indices in gActorList for the shells "owned" by this parent
|
||||
/* 0x30 */ UnkActorInner unk30;
|
||||
}; // size = 0x70
|
||||
} TripleShellParent; // size = 0x70
|
||||
|
||||
struct ShellActor {
|
||||
/* 0x00 */ s16 type;
|
||||
|
|
|
|||
|
|
@ -23,16 +23,16 @@ typedef struct
|
|||
/* 0x54 */ s32 unk_054;
|
||||
/* 0x58 */ s32 unk_058;
|
||||
/* 0x5C */ s32 unk_05C;
|
||||
/* 0x60 */ s32 *unk_060;
|
||||
/* 0x64 */ s8 *unk_064;
|
||||
/* 0x68 */ s32 *unk_068;
|
||||
/* 0x6C */ s8 *unk_06C;
|
||||
/* 0x60 */ u32 *unk_060;
|
||||
/* 0x64 */ u8 *unk_064; // ptr to a texture
|
||||
/* 0x68 */ u32 *unk_068;
|
||||
/* 0x6C */ u8 *unk_06C; // ptr to a texture
|
||||
/* 0x70 */ Gfx *unk_070;
|
||||
// For at least 1 object type this is meant to be a Vtx*. See func_800555BC
|
||||
/* 0x74 */ Vtx *unk_074;
|
||||
/* 0x78 */ s8 unk_078[0x04];
|
||||
/* 0x7C */ s32 unk_07C;
|
||||
/* 0x80 */ s32 unk_080;
|
||||
/* 0x80 */ u16 *unk_080; // unk_080[][4]?
|
||||
/* 0x84 */ s16 unk_084[0xA];
|
||||
/* 0x98 */ u16 unk_098;
|
||||
/* 0x9A */ s16 unk_09A;
|
||||
|
|
@ -48,7 +48,7 @@ typedef struct
|
|||
/* 0xAE */ s16 unk_0AE;
|
||||
/* 0xB0 */ s16 unk_0B0;
|
||||
/* 0xB2 */ Vec3su unk_0B2;
|
||||
/* 0xB8 */ Vec3s unk_0B8;
|
||||
/* 0xB8 */ Vec3su unk_0B8;
|
||||
/* 0xBE */ Vec3su unk_0BE;
|
||||
/* 0xC4 */ u16 unk_0C4;
|
||||
/* 0xC6 */ u16 unk_0C6;
|
||||
|
|
|
|||
382
src/actors.c
382
src/actors.c
|
|
@ -20,9 +20,14 @@
|
|||
#include "audio/external.h"
|
||||
#include "common_textures.h"
|
||||
|
||||
s32 D_802BA050;
|
||||
s32 D_802BA054;
|
||||
s32 D_802BA058;
|
||||
|
||||
// Appears to be textures
|
||||
// or tluts
|
||||
u8 *D_802BA050;
|
||||
u8 *D_802BA054;
|
||||
u8 *D_802BA058;
|
||||
|
||||
|
||||
struct Actor *D_802BA05C;
|
||||
s8 D_802BA060[512]; // tlut 256
|
||||
u16 D_802BA260;
|
||||
|
|
@ -32,19 +37,19 @@ void func_80296A50(struct ShellActor *shell) {
|
|||
struct ShellActor *compare;
|
||||
|
||||
for (actorIndex = gNumPermanentActors; actorIndex < ACTOR_LIST_SIZE; actorIndex++) {
|
||||
compare = &gActorList[actorIndex];
|
||||
compare = (struct ShellActor *)&gActorList[actorIndex];
|
||||
if ((shell != compare) && !(compare->flags & 0xF) && (compare->type == ACTOR_GREEN_SHELL)) {
|
||||
if (compare->state == 2) {
|
||||
func_8000EE58(actorIndex);
|
||||
}
|
||||
D_8015F6FE -= 1;
|
||||
destroy_actor(compare);
|
||||
destroy_actor((struct Actor *)compare);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for (actorIndex = gNumPermanentActors; actorIndex < ACTOR_LIST_SIZE; actorIndex++) {
|
||||
compare = &gActorList[actorIndex];
|
||||
compare = (struct ShellActor *) &gActorList[actorIndex];
|
||||
if ((shell != compare) && !(compare->flags & 0xF) && (compare->type == ACTOR_RED_SHELL)) {
|
||||
switch(compare->state) {
|
||||
case 2:
|
||||
|
|
@ -56,7 +61,7 @@ void func_80296A50(struct ShellActor *shell) {
|
|||
func_8000EE58(actorIndex);
|
||||
case 7:
|
||||
D_8015F6FE -= 1;
|
||||
destroy_actor(compare);
|
||||
destroy_actor((struct Actor *)compare);
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
|
|
@ -65,21 +70,21 @@ void func_80296A50(struct ShellActor *shell) {
|
|||
}
|
||||
|
||||
for (actorIndex = gNumPermanentActors; actorIndex < ACTOR_LIST_SIZE; actorIndex++) {
|
||||
compare = &gActorList[actorIndex];
|
||||
compare = (struct ShellActor *) &gActorList[actorIndex];
|
||||
if ((shell != compare) && (compare->type == ACTOR_GREEN_SHELL)) {
|
||||
switch(compare->state) {
|
||||
case 2:
|
||||
func_8000EE58(actorIndex);
|
||||
case 7:
|
||||
D_8015F6FE -= 1;
|
||||
destroy_actor(compare);
|
||||
destroy_actor((struct Actor *)compare);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (actorIndex = gNumPermanentActors; actorIndex < ACTOR_LIST_SIZE; actorIndex++) {
|
||||
compare = &gActorList[actorIndex];
|
||||
compare = (struct ShellActor *)&gActorList[actorIndex];
|
||||
if ((shell != compare) && (compare->type == ACTOR_RED_SHELL)) {
|
||||
switch(compare->state) {
|
||||
case 2:
|
||||
|
|
@ -91,10 +96,8 @@ void func_80296A50(struct ShellActor *shell) {
|
|||
func_8000EE58(actorIndex);
|
||||
case 7:
|
||||
D_8015F6FE -= 1;
|
||||
destroy_actor(compare);
|
||||
destroy_actor((struct Actor *)compare);
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -376,8 +379,8 @@ void func_802977E4(Player *arg0) {
|
|||
}
|
||||
|
||||
void func_80297818(void) {
|
||||
s16 *phi_v0 = &D_802BA060[0];
|
||||
s16 *phi_v1 = VIRTUAL_TO_PHYSICAL2(gSegmentTable[SEGMENT_NUMBER2(gTLUTGreenShell)] + SEGMENT_OFFSET(gTLUTGreenShell));
|
||||
s16 *phi_v0 = (s16 *) &D_802BA060[0];
|
||||
s16 *phi_v1 = (s16 *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[SEGMENT_NUMBER2(gTLUTGreenShell)] + SEGMENT_OFFSET(gTLUTGreenShell));
|
||||
s16 temp_a0, temp_a0_2, temp_a0_3, temp_a0_4, temp_a0_5;
|
||||
s32 i;
|
||||
for (i = 0; i < 256; i++) {
|
||||
|
|
@ -408,7 +411,7 @@ void func_8029794C(Vec3f arg0, Vec3s arg1, f32 arg2) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_802979F8(struct Actor *arg0, f32 arg1) {
|
||||
void func_802979F8(struct Actor *arg0, UNUSED f32 arg1) {
|
||||
Vec3f sp24;
|
||||
Vec3s sp1C;
|
||||
|
||||
|
|
@ -627,10 +630,10 @@ void update_obj_piranha_plant(struct PiranhaPlant *arg0) {
|
|||
|
||||
// Mario Raceway Load piranha plant textures?
|
||||
void func_80298328(Camera *arg0, Mat4 arg1, struct PiranhaPlant *arg2) {
|
||||
s32 pad;
|
||||
s32 addr;
|
||||
UNUSED s32 pad;
|
||||
u8 *addr;
|
||||
s16 temp_lo = arg0 - camera1;
|
||||
s16 phi_t4;
|
||||
s16 animationFrame; // unconfirmed
|
||||
s16 temp = arg2->flags;
|
||||
f32 temp_f0;
|
||||
|
||||
|
|
@ -678,10 +681,9 @@ void func_80298328(Camera *arg0, Mat4 arg1, struct PiranhaPlant *arg2) {
|
|||
arg2->visibilityStates[3] = 0;
|
||||
break;
|
||||
}
|
||||
phi_t4 = 0;
|
||||
animationFrame = 0;
|
||||
|
||||
} else {
|
||||
|
||||
switch(temp_lo) {
|
||||
case 0:
|
||||
arg2->visibilityStates[0] = 1;
|
||||
|
|
@ -695,30 +697,29 @@ void func_80298328(Camera *arg0, Mat4 arg1, struct PiranhaPlant *arg2) {
|
|||
case 3:
|
||||
arg2->visibilityStates[3] = 1;
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
switch(temp_lo) {
|
||||
case 0:
|
||||
phi_t4 = arg2->timers[0];
|
||||
animationFrame = arg2->timers[0];
|
||||
break;
|
||||
case 1:
|
||||
phi_t4 = arg2->timers[1];
|
||||
animationFrame = arg2->timers[1];
|
||||
break;
|
||||
case 2:
|
||||
phi_t4 = arg2->timers[2];
|
||||
animationFrame = arg2->timers[2];
|
||||
break;
|
||||
case 3:
|
||||
phi_t4 = arg2->timers[3];
|
||||
animationFrame = arg2->timers[3];
|
||||
break;
|
||||
}
|
||||
}
|
||||
phi_t4 /= 6;
|
||||
animationFrame /= 6;
|
||||
|
||||
if (phi_t4 > 8) {
|
||||
phi_t4 = 8;
|
||||
if (animationFrame > 8) {
|
||||
animationFrame = 8;
|
||||
}
|
||||
addr = D_802BA058 + (phi_t4 << 0xB);
|
||||
addr = D_802BA058 + (animationFrame << 0xB);
|
||||
gDPLoadTextureBlock(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(addr), G_IM_FMT_CI, G_IM_SIZ_8b, 32, 64, 0,
|
||||
G_TX_MIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
|
||||
|
|
@ -730,7 +731,7 @@ void func_80298328(Camera *arg0, Mat4 arg1, struct PiranhaPlant *arg2) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_802986B4(Camera *camera, Mat4 arg1, struct Actor *actor) {
|
||||
void func_802986B4(Camera *camera, Mat4 arg1, UNUSED struct Actor *actor) {
|
||||
u16 temp_s1;
|
||||
f32 temp_f0;
|
||||
struct ActorSpawnData *var_t1;
|
||||
|
|
@ -808,7 +809,7 @@ void func_80298AC0(Player *player) {
|
|||
Vec3f sp64;
|
||||
s32 segment = SEGMENT_NUMBER2(D_06013F78);
|
||||
s32 offset = SEGMENT_OFFSET(D_06013F78);
|
||||
struct UnkActorSpawnData *data = VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
struct UnkActorSpawnData *data = (struct UnkActorSpawnData *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
|
||||
while (data->pos[0] != -0x8000) {
|
||||
sp64[0] = data->pos[0] * gCourseDirection;
|
||||
|
|
@ -843,7 +844,7 @@ void func_80298C94(void) {
|
|||
void func_80298D10(void) {
|
||||
s32 segment = SEGMENT_NUMBER2(D_06013F78);
|
||||
s32 offset = SEGMENT_OFFSET(D_06013F78);
|
||||
struct UnkActorSpawnData *temp_v1 = VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
struct UnkActorSpawnData *temp_v1 = (struct UnkActorSpawnData *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
|
||||
while (temp_v1->pos[0] != -0x8000) {
|
||||
temp_v1->pos[1] = temp_v1->unk8;
|
||||
|
|
@ -852,11 +853,11 @@ void func_80298D10(void) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_80298D7C(Camera *camera, Mat4 arg1, struct Actor *actor) {
|
||||
void func_80298D7C(Camera *camera, Mat4 arg1, UNUSED struct Actor *actor) {
|
||||
s32 segment = SEGMENT_NUMBER2(D_06013F78);
|
||||
s32 offset = SEGMENT_OFFSET(D_06013F78);
|
||||
struct UnkActorSpawnData *var_s1 = (struct UnkActorSpawnData *)VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
s32 stackPadding0;
|
||||
UNUSED s32 pad;
|
||||
Vec3f spD4;
|
||||
f32 var_f22;
|
||||
Mat4 sp90;
|
||||
|
|
@ -1179,7 +1180,7 @@ void func_8029A11C(Camera *camera, Mat4 arg1, struct Actor *arg2) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_8029A23C(Camera *camera, Mat4 arg1, struct Actor *actor) {
|
||||
void func_8029A23C(UNUSED Camera *camera, Mat4 arg1, struct Actor *actor) {
|
||||
uintptr_t addr;
|
||||
|
||||
if (actor->state == 0) { return; }
|
||||
|
|
@ -1197,10 +1198,10 @@ void func_8029A23C(Camera *camera, Mat4 arg1, struct Actor *actor) {
|
|||
gSPDisplayList(gDisplayListHead++, D_06013BB8);
|
||||
}
|
||||
|
||||
void func_8029A3AC(Camera *camera, Mat4 arg1, struct ShellActor *shell) {
|
||||
s16 pad;
|
||||
void func_8029A3AC(Camera *camera, Mat4 matrix, struct ShellActor *shell) {
|
||||
UNUSED s16 pad;
|
||||
u16 temp_t8;
|
||||
s32 pad2;
|
||||
UNUSED s32 pad2;
|
||||
s16 sp58[15] = // D_802B87E8;
|
||||
{
|
||||
0x0000, 0x0400, 0x0800, 0x0c00,
|
||||
|
|
@ -1208,6 +1209,8 @@ void func_8029A3AC(Camera *camera, Mat4 arg1, struct ShellActor *shell) {
|
|||
0x1c00, 0x1800, 0x1400, 0x1000,
|
||||
0x0c00, 0x0800, 0x0400
|
||||
};
|
||||
// todo: Is this making the shell spin?
|
||||
// Is it doing this by modifying a an address?
|
||||
uintptr_t phi_t3;
|
||||
|
||||
f32 temp_f0 = func_802B80D0(camera->pos, shell->pos, camera->rot[1], 0, D_80150130[camera - camera1], 490000.0f);
|
||||
|
|
@ -1220,18 +1223,18 @@ void func_8029A3AC(Camera *camera, Mat4 arg1, struct ShellActor *shell) {
|
|||
func_802979F8((struct Actor *) shell, 3.4f);
|
||||
}
|
||||
if (shell->type == ACTOR_BLUE_SPINY_SHELL) {
|
||||
phi_t3 = D_802BA054;
|
||||
phi_t3 = (uintptr_t)D_802BA054;
|
||||
} else {
|
||||
phi_t3 = D_802BA050;
|
||||
phi_t3 = (uintptr_t)D_802BA050;
|
||||
}
|
||||
temp_t8 = (u16) shell->rotVelocity / 4369;
|
||||
phi_t3 += sp58[temp_t8];
|
||||
|
||||
arg1[3][0] = shell->pos[0];
|
||||
arg1[3][1] = (shell->pos[1] - shell->boundingBoxSize) + 1.0f;
|
||||
arg1[3][2] = shell->pos[2];
|
||||
matrix[3][0] = shell->pos[0];
|
||||
matrix[3][1] = (shell->pos[1] - shell->boundingBoxSize) + 1.0f;
|
||||
matrix[3][2] = shell->pos[2];
|
||||
|
||||
if (func_802B4FF8(arg1, 0) == 0) { return; }
|
||||
if (func_802B4FF8(matrix, 0) == 0) { return; }
|
||||
|
||||
gDPLoadTextureBlock(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(phi_t3),
|
||||
G_IM_FMT_CI, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP,
|
||||
|
|
@ -1255,55 +1258,55 @@ UNUSED s16 D_802B8810[] = {
|
|||
0x0000, 0x0000, 0xffff, 0xffff
|
||||
};
|
||||
|
||||
void func_8029A690(Camera *arg0, Mat4 arg1, struct ShellActor *arg2) {
|
||||
void func_8029A690(Camera *camera, Mat4 matrix, struct ShellActor *shell) {
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTGreenShell);
|
||||
func_8029A3AC(arg0, arg1, arg2);
|
||||
func_8029A3AC(camera, matrix, shell);
|
||||
}
|
||||
|
||||
void func_8029A75C(Camera *arg0, Mat4 arg1, struct ShellActor *arg2) {
|
||||
void func_8029A75C(Camera *camera, Mat4 matrix, struct ShellActor *shell) {
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, &D_802BA060);
|
||||
func_8029A3AC(arg0, arg1, arg2);
|
||||
func_8029A3AC(camera, matrix, shell);
|
||||
}
|
||||
|
||||
// Middle of a tlut access
|
||||
void func_8029A828(Camera *arg0, Mat4 arg1, struct ShellActor *arg2) {
|
||||
void func_8029A828(Camera *camera, Mat4 matrix, struct ShellActor *shell) {
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTBlueShell);
|
||||
func_8029A3AC(arg0, arg1, arg2);
|
||||
func_8029A3AC(camera, matrix, shell);
|
||||
}
|
||||
|
||||
void func_8029A8F4(Camera *arg0, Mat4 arg1, struct BananaActor *arg2) {
|
||||
s32 pad[3];
|
||||
void func_8029A8F4(Camera *camera, UNUSED Mat4 arg1, struct BananaActor *banana) {
|
||||
UNUSED s32 pad[3];
|
||||
Vec3s sp7C;
|
||||
Mat4 sp3C;
|
||||
|
||||
f32 temp = func_802B80D0(arg0->pos, arg2->pos, arg0->rot[1], 0, D_80150130[arg0 - camera1], 490000.0f);
|
||||
f32 temp = func_802B80D0(camera->pos, banana->pos, camera->rot[1], 0, D_80150130[camera - camera1], 490000.0f);
|
||||
if (temp < 0.0f) {
|
||||
func_80297230(arg0, arg2);
|
||||
func_80297230(camera, (struct Actor *) banana);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((arg2->pos[1] > D_8015F6EC + 800.0f)) {
|
||||
func_80297230(arg0, arg2);
|
||||
if ((banana->pos[1] > D_8015F6EC + 800.0f)) {
|
||||
func_80297230(camera, (struct Actor *) banana);
|
||||
return;
|
||||
}
|
||||
if (arg2->pos[1] < (D_8015F6EE - 800.0f)) {
|
||||
func_80297230(arg0, arg2);
|
||||
if (banana->pos[1] < (D_8015F6EE - 800.0f)) {
|
||||
func_80297230(camera, (struct Actor *) banana);
|
||||
return;
|
||||
}
|
||||
func_802972B8(arg0, arg2);
|
||||
func_802972B8(camera, (struct Actor *) banana);
|
||||
|
||||
if (arg2->state == 5) {
|
||||
func_802B5F74(sp3C, arg2->pos, arg2->rot);
|
||||
if (banana->state == 5) {
|
||||
func_802B5F74(sp3C, banana->pos, banana->rot);
|
||||
} else {
|
||||
sp7C[0] = 0;
|
||||
sp7C[1] = 0;
|
||||
sp7C[2] = 0;
|
||||
func_802B5F74(sp3C, arg2->pos, sp7C);
|
||||
func_802B5F74(sp3C, banana->pos, sp7C);
|
||||
}
|
||||
|
||||
if (func_802B4FF8(sp3C, 0) == 0) { return; }
|
||||
|
||||
if (arg2->state != 5) {
|
||||
if (banana->state != 5) {
|
||||
gSPDisplayList(gDisplayListHead++, &D_0D004B48);
|
||||
} else {
|
||||
gSPDisplayList(gDisplayListHead++, &D_0D004BD8);
|
||||
|
|
@ -1396,8 +1399,8 @@ UNUSED void func_8029AE14() {
|
|||
}
|
||||
|
||||
// This likely attaches the paddle wheel to the boat
|
||||
void func_8029AE1C(Camera *arg0, struct PaddleWheelBoat *boat, Mat4 arg2, u16 arg3) {
|
||||
s32 pad[3];
|
||||
void func_8029AE1C(Camera *arg0, struct PaddleWheelBoat *boat, UNUSED Mat4 arg2, u16 arg3) {
|
||||
UNUSED s32 pad[3];
|
||||
Vec3f sp120;
|
||||
Mat4 spE0;
|
||||
Mat4 spA0;
|
||||
|
|
@ -1432,9 +1435,9 @@ void func_8029AE1C(Camera *arg0, struct PaddleWheelBoat *boat, Mat4 arg2, u16 ar
|
|||
}
|
||||
|
||||
void func_8029B06C(Camera *arg0, struct Actor *arg1) {
|
||||
s32 pad[6];
|
||||
UNUSED s32 pad[6];
|
||||
Mat4 spD8;
|
||||
s32 pad2[32];
|
||||
UNUSED s32 pad2[32];
|
||||
f32 temp_f0 = func_802B80D0(arg0->pos, arg1->pos, arg0->rot[1], 2500.0f, D_80150130[arg0 - camera1], 9000000.0f);
|
||||
if (temp_f0 < 0.0f) { return; }
|
||||
|
||||
|
|
@ -1473,9 +1476,9 @@ void func_8029B06C(Camera *arg0, struct Actor *arg1) {
|
|||
}
|
||||
|
||||
void func_8029B2E4(Camera *arg0, struct Actor *arg1) {
|
||||
s32 pad[6];
|
||||
UNUSED s32 pad[6];
|
||||
Mat4 spC8;
|
||||
s32 pad2[32];
|
||||
UNUSED s32 pad2[32];
|
||||
f32 temp_f0;
|
||||
|
||||
temp_f0 = func_802B80D0(arg0->pos, arg1->pos, arg0->rot[1], 2500.0f, D_80150130[arg0 - camera1], 9000000.0f);
|
||||
|
|
@ -1505,9 +1508,9 @@ void func_8029B2E4(Camera *arg0, struct Actor *arg1) {
|
|||
}
|
||||
|
||||
void func_8029B4E0(Camera *arg0, struct Actor *arg1) {
|
||||
s32 pad[6];
|
||||
UNUSED s32 pad[6];
|
||||
Mat4 spC8;
|
||||
s32 pad2[32];
|
||||
UNUSED s32 pad2[32];
|
||||
f32 temp_f0 = func_802B80D0(arg0->pos,arg1->pos, arg0->rot[1], 2500.0f, D_80150130[arg0 - camera1], 9000000.0f);
|
||||
|
||||
if (!(temp_f0 < 0.0f)) {
|
||||
|
|
@ -1538,9 +1541,9 @@ void func_8029B4E0(Camera *arg0, struct Actor *arg1) {
|
|||
}
|
||||
|
||||
void func_8029B6EC(Camera *camera, struct Actor* arg1) {
|
||||
s32 pad[6];
|
||||
UNUSED s32 pad[6];
|
||||
Mat4 spC8;
|
||||
s32 pad2[32];
|
||||
UNUSED s32 pad2[32];
|
||||
f32 temp_f0 = func_802B80D0(camera->pos, arg1->pos, camera->rot[1], 2500.0f, D_80150130[camera - camera1], 9000000.0f);
|
||||
|
||||
if (!(temp_f0 < 0.0f)) {
|
||||
|
|
@ -1571,7 +1574,7 @@ void func_8029B6EC(Camera *camera, struct Actor* arg1) {
|
|||
|
||||
// Spins train wheels?
|
||||
void func_8029B8E8(Camera *camera, struct TrainCar *actor) {
|
||||
s32 pad[3];
|
||||
UNUSED s32 pad[3];
|
||||
Vec3f sp160;
|
||||
Mat4 sp120;
|
||||
Mat4 spE0;
|
||||
|
|
@ -1646,7 +1649,7 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) {
|
|||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x444));
|
||||
vec3f_set(sp160, 17.0f, 12.0f, -12.0f);
|
||||
mtxf_translate(spE0, &sp160);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
|
||||
if (func_802B4FF8(spA0, 3) == 0) { return; }
|
||||
|
|
@ -1655,7 +1658,7 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) {
|
|||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x444));
|
||||
vec3f_set(&sp160, -17.0f, 12.0f, -12.0f);
|
||||
vec3f_set(sp160, -17.0f, 12.0f, -12.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
|
||||
|
|
@ -1665,8 +1668,8 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) {
|
|||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x2D8));
|
||||
vec3f_set(&sp160, 17.0f, 12.0f, -34.0f);
|
||||
mtxf_translate(spE0, &sp160);
|
||||
vec3f_set(sp160, 17.0f, 12.0f, -34.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
|
||||
if (func_802B4FF8(spA0, 3) == 0) { return; }
|
||||
|
|
@ -1831,7 +1834,7 @@ void func_8029C3CC(Camera *camera, struct TrainCar *actor) {
|
|||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x5B0));
|
||||
vec3f_set(sp160, 17.0f, 6.0f, -8.0f);
|
||||
mtxf_translate(spE0, &sp160);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
|
||||
if (func_802B4FF8(spA0, 3) == 0) { return; }
|
||||
|
|
@ -1840,7 +1843,7 @@ void func_8029C3CC(Camera *camera, struct TrainCar *actor) {
|
|||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x5B0));
|
||||
vec3f_set(&sp160, -17.0f, 6.0f, -8.0f);
|
||||
vec3f_set(sp160, -17.0f, 6.0f, -8.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
|
||||
|
|
@ -1850,8 +1853,8 @@ void func_8029C3CC(Camera *camera, struct TrainCar *actor) {
|
|||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x16C));
|
||||
vec3f_set(&sp160, 17.0f, 6.0f, -24.0f);
|
||||
mtxf_translate(spE0, &sp160);
|
||||
vec3f_set(sp160, 17.0f, 6.0f, -24.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
|
||||
if (func_802B4FF8(spA0, 3) == 0) { return; }
|
||||
|
|
@ -1876,7 +1879,7 @@ void func_8029CA90(Camera *camera, struct FallingRock *rock) {
|
|||
Vec3f sp8C;
|
||||
Mat4 sp4C;
|
||||
f32 temp_f0;
|
||||
s32 pad[4];
|
||||
UNUSED s32 pad[4];
|
||||
|
||||
if (rock->respawnTimer != 0) { return; }
|
||||
|
||||
|
|
@ -1911,9 +1914,9 @@ void func_8029CA90(Camera *camera, struct FallingRock *rock) {
|
|||
void place_piranha_plants(struct ActorSpawnData *spawnData) {
|
||||
s32 segment = SEGMENT_NUMBER2(spawnData);
|
||||
s32 offset = SEGMENT_OFFSET(spawnData);
|
||||
struct ActorSpawnData *temp_s0 = VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
struct ActorSpawnData *temp_s0 = (struct ActorSpawnData *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
struct PiranhaPlant *temp_v1;
|
||||
s32 pad;
|
||||
UNUSED s32 pad;
|
||||
Vec3f startingPos;
|
||||
Vec3f startingVelocity;
|
||||
Vec3s startingRot;
|
||||
|
|
@ -1943,7 +1946,7 @@ void place_piranha_plants(struct ActorSpawnData *spawnData) {
|
|||
void place_palm_trees(struct ActorSpawnData *spawnData) {
|
||||
s32 segment = SEGMENT_NUMBER2(spawnData);
|
||||
s32 offset = SEGMENT_OFFSET(spawnData);
|
||||
struct ActorSpawnData *temp_s0 = VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
struct ActorSpawnData *temp_s0 = (struct ActorSpawnData *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
struct PalmTree *temp_v1;
|
||||
Vec3f startingPos;
|
||||
Vec3f startingVelocity;
|
||||
|
|
@ -1970,7 +1973,7 @@ void place_palm_trees(struct ActorSpawnData *spawnData) {
|
|||
void func_8029CF0C(struct ActorSpawnData *spawnData, struct FallingRock *rock) {
|
||||
s32 segment = SEGMENT_NUMBER2(spawnData);
|
||||
s32 offset = SEGMENT_OFFSET(spawnData);
|
||||
struct ActorSpawnData *temp_v0 = VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset); // + (temp_v1 * 8);
|
||||
struct ActorSpawnData *temp_v0 = (struct ActorSpawnData *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
Vec3s sp24 = {60, 120, 180};
|
||||
temp_v0 += rock->unk_06;
|
||||
rock->respawnTimer = sp24[rock->unk_06]; // * 2
|
||||
|
|
@ -1984,7 +1987,8 @@ void func_8029CF0C(struct ActorSpawnData *spawnData, struct FallingRock *rock) {
|
|||
void place_falling_rocks(struct ActorSpawnData *spawnData) {
|
||||
s32 addr = SEGMENT_NUMBER2(spawnData);
|
||||
s32 offset = SEGMENT_OFFSET(spawnData);
|
||||
struct ActorSpawnData *temp_s0 = VIRTUAL_TO_PHYSICAL2(gSegmentTable[addr]) + offset;
|
||||
// Casting this to prevent warning does not work.
|
||||
struct ActorSpawnData *temp_s0 = (struct ActorSpawnData *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[addr] + offset);
|
||||
struct FallingRock *temp_v1;
|
||||
Vec3f startingPos;
|
||||
Vec3f startingVelocity;
|
||||
|
|
@ -2016,7 +2020,7 @@ void update_obj_falling_rocks(struct FallingRock *rock) {
|
|||
return;
|
||||
}
|
||||
if (rock->pos[1] < D_8015F8E4) {
|
||||
func_8029CF0C(&D_06007230, rock);
|
||||
func_8029CF0C(D_06007230, rock);
|
||||
}
|
||||
rock->rot[0] += (s16) ((rock->velocity[2] * 5461.0f) / 20.0f);
|
||||
rock->rot[2] += (s16) ((rock->velocity[0] * 5461.0f) / 20.0f);
|
||||
|
|
@ -2081,14 +2085,11 @@ void update_obj_falling_rocks(struct FallingRock *rock) {
|
|||
|
||||
// This function may be better named "init_trees_cacti_shrubs"
|
||||
void place_segment_06(struct ActorSpawnData *arg0) {
|
||||
s32 stackPadding0;
|
||||
s32 stackPadding1;
|
||||
s32 stackPadding2;
|
||||
s32 stackPadding3;
|
||||
UNUSED s32 pad[4];
|
||||
Vec3f position;
|
||||
Vec3f velocity;
|
||||
Vec3s rotation;
|
||||
s16 stackPadding4;
|
||||
UNUSED s16 pad2;
|
||||
s16 actorType;
|
||||
struct Actor *temp_s0;
|
||||
struct ActorSpawnData *var_s3;
|
||||
|
|
@ -2165,13 +2166,15 @@ void place_segment_06(struct ActorSpawnData *arg0) {
|
|||
}
|
||||
|
||||
void place_all_item_boxes(struct ActorSpawnData *spawnData) {
|
||||
s32 segment = SEGMENT_NUMBER2(spawnData);
|
||||
s32 offset = SEGMENT_OFFSET(spawnData);
|
||||
s16 temp_s1;
|
||||
f32 temp_f0;
|
||||
struct ItemBox *temp_v0;
|
||||
struct ActorSpawnData *temp_s0 = VIRTUAL_TO_PHYSICAL2(gSegmentTable[SEGMENT_NUMBER2(spawnData)]) + SEGMENT_OFFSET(spawnData);
|
||||
Vec3f startingPos;
|
||||
Vec3f startingVelocity;
|
||||
Vec3s startingRot;
|
||||
struct ActorSpawnData *temp_s0 = (struct ActorSpawnData *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
//struct ItemBox *itemBox;
|
||||
|
||||
if ((gModeSelection == TIME_TRIALS) || (gPlaceItemBoxes == 0)) { return; }
|
||||
|
||||
|
|
@ -2185,10 +2188,20 @@ void place_all_item_boxes(struct ActorSpawnData *spawnData) {
|
|||
startingRot[2] = random_u16();
|
||||
temp_s1 = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_ITEM_BOX);
|
||||
temp_f0 = func_802AE1C0(startingPos[0], startingPos[1] + 10.0f, startingPos[2]);
|
||||
temp_v0 = (struct ItemBox *) &gActorList[temp_s1];
|
||||
temp_v0->resetDistance = temp_f0;
|
||||
temp_v0->origY = startingPos[1];
|
||||
temp_v0->pos[1] = temp_f0 - 20.0f;
|
||||
|
||||
// Should be struct ItemBox but not enough space in the stack.
|
||||
// It's either the ItemBox or the SEGMENT/OFFSET variables.
|
||||
//itemBox = (struct ItemBox *) &gActorList[temp_s1];
|
||||
|
||||
gActorList[temp_s1].unk_08 = temp_f0;
|
||||
//itemBox->resetDistance = temp_f0;
|
||||
|
||||
gActorList[temp_s1].velocity[0] = startingPos[1];
|
||||
//itemBox->origY = startingPos[1];
|
||||
|
||||
gActorList[temp_s1].pos[1] = temp_f0 - 20.0f;
|
||||
//itemBox->pos[1] = temp_f0 - 20.0f;
|
||||
|
||||
temp_s0++;
|
||||
}
|
||||
|
||||
|
|
@ -2235,7 +2248,7 @@ void destroy_all_actors(void) {
|
|||
}
|
||||
|
||||
void place_course_actors(void) {
|
||||
s32 stackPadding0;
|
||||
UNUSED s32 pad;
|
||||
Vec3f position;
|
||||
Vec3f velocity = { 0.0f, 0.0f, 0.0f };
|
||||
Vec3s rotation = { 0, 0, 0 };
|
||||
|
|
@ -2502,7 +2515,7 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
|||
struct ShellActor *compare;
|
||||
|
||||
for (actorIndex = gNumPermanentActors; actorIndex < ACTOR_LIST_SIZE; actorIndex++) {
|
||||
compare = &gActorList[actorIndex];
|
||||
compare = (struct ShellActor *) &gActorList[actorIndex];
|
||||
if (!(compare->flags & 0xF)) {
|
||||
switch(compare->type) {
|
||||
case ACTOR_RED_SHELL:
|
||||
|
|
@ -2515,8 +2528,8 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
|||
case 9:
|
||||
func_8000EE58(actorIndex);
|
||||
case 7:
|
||||
func_8029E7DC(compare);
|
||||
actor_init(compare, pos, rot, velocity, actorType);
|
||||
func_8029E7DC((struct Actor *) compare);
|
||||
actor_init((struct Actor *) compare, pos, rot, velocity, actorType);
|
||||
return actorIndex;
|
||||
default:
|
||||
break;
|
||||
|
|
@ -2527,8 +2540,8 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
|||
case 2:
|
||||
func_8000EE58(actorIndex);
|
||||
case 7:
|
||||
func_8029E7DC(compare);
|
||||
actor_init(compare, pos, rot, velocity, actorType);
|
||||
func_8029E7DC((struct Actor *) compare);
|
||||
actor_init((struct Actor *) compare, pos, rot, velocity, actorType);
|
||||
return actorIndex;
|
||||
}
|
||||
break;
|
||||
|
|
@ -2537,8 +2550,8 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
|||
case 1:
|
||||
case 4:
|
||||
case 5:
|
||||
func_8029E7DC(compare);
|
||||
actor_init(compare, pos, rot, velocity, actorType);
|
||||
func_8029E7DC((struct Actor *) compare);
|
||||
actor_init((struct Actor *) compare, pos, rot, velocity, actorType);
|
||||
return actorIndex;
|
||||
}
|
||||
break;
|
||||
|
|
@ -2546,8 +2559,8 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
|||
switch(compare->state) {
|
||||
case 1:
|
||||
case 2:
|
||||
func_8029E7DC(compare);
|
||||
actor_init(compare, pos, rot, velocity, actorType);
|
||||
func_8029E7DC((struct Actor *) compare);
|
||||
actor_init((struct Actor *) compare, pos, rot, velocity, actorType);
|
||||
return actorIndex;
|
||||
}
|
||||
break;
|
||||
|
|
@ -2558,7 +2571,7 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
|||
}
|
||||
|
||||
for (actorIndex = gNumPermanentActors; actorIndex < ACTOR_LIST_SIZE; actorIndex++) {
|
||||
compare = &gActorList[actorIndex];
|
||||
compare = (struct ShellActor *) &gActorList[actorIndex];
|
||||
switch(compare->type) {
|
||||
case ACTOR_RED_SHELL:
|
||||
switch(compare->state) {
|
||||
|
|
@ -2570,8 +2583,8 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
|||
case 9:
|
||||
func_8000EE58(actorIndex);
|
||||
case 7:
|
||||
func_8029E7DC(compare);
|
||||
actor_init(compare, pos, rot, velocity, actorType);
|
||||
func_8029E7DC((struct Actor *) compare);
|
||||
actor_init((struct Actor *) compare, pos, rot, velocity, actorType);
|
||||
return actorIndex;
|
||||
default:
|
||||
break;
|
||||
|
|
@ -2582,8 +2595,8 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
|||
case 2:
|
||||
func_8000EE58(actorIndex);
|
||||
case 7:
|
||||
func_8029E7DC(compare);
|
||||
actor_init(compare, pos, rot, velocity, actorType);
|
||||
func_8029E7DC((struct Actor *) compare);
|
||||
actor_init((struct Actor *) compare, pos, rot, velocity, actorType);
|
||||
return actorIndex;
|
||||
}
|
||||
break;
|
||||
|
|
@ -2592,8 +2605,8 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
|||
case 1:
|
||||
case 4:
|
||||
case 5:
|
||||
func_8029E7DC(compare);
|
||||
actor_init(compare, pos, rot, velocity, actorType);
|
||||
func_8029E7DC((struct Actor *) compare);
|
||||
actor_init((struct Actor *) compare, pos, rot, velocity, actorType);
|
||||
return actorIndex;
|
||||
}
|
||||
break;
|
||||
|
|
@ -2601,8 +2614,8 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
|||
switch(compare->state) {
|
||||
case 1:
|
||||
case 2:
|
||||
func_8029E7DC(compare);
|
||||
actor_init(compare, pos, rot, velocity, actorType);
|
||||
func_8029E7DC((struct Actor *) compare);
|
||||
actor_init((struct Actor *) compare, pos, rot, velocity, actorType);
|
||||
return actorIndex;
|
||||
}
|
||||
break;
|
||||
|
|
@ -2650,7 +2663,7 @@ UNUSED void func_8029ED98(Player *player, uintptr_t arg1) {
|
|||
s32 segment = SEGMENT_NUMBER2(arg1);
|
||||
s32 offset = SEGMENT_OFFSET(arg1);
|
||||
|
||||
var_s0 = VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
var_s0 = (struct test *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
while (var_s0->thing[0] != -0x8000) {
|
||||
sp64[0] = var_s0->thing[0] * gCourseDirection;
|
||||
sp64[1] = var_s0->thing[1];
|
||||
|
|
@ -2776,7 +2789,7 @@ s32 func_8029F2FC(Player *player, struct PiranhaPlant *plant) {
|
|||
}
|
||||
|
||||
s32 func_8029F408(Player *player, struct YoshiValleyEgg *egg) {
|
||||
f32 pad[5];
|
||||
UNUSED f32 pad[5];
|
||||
f32 z_dist;
|
||||
f32 xz_dist;
|
||||
f32 x_dist;
|
||||
|
|
@ -2838,8 +2851,7 @@ s32 func_8029F69C(Player *player, struct Actor *actor) {
|
|||
f32 sp44;
|
||||
f32 var_f16;
|
||||
f32 xz_dist;
|
||||
f32 stackPadding0;
|
||||
f32 stackPadding1;
|
||||
UNUSED f32 pad[2];
|
||||
f32 temp_f12;
|
||||
f32 temp_f0_4;
|
||||
Vec3f sp20;
|
||||
|
|
@ -3220,10 +3232,9 @@ void func_802A0350(struct Actor *arg0, struct Actor *arg1) {
|
|||
}
|
||||
|
||||
void func_802A0450(Player *player, struct Actor *actor) {
|
||||
s32 stackPadding0;
|
||||
UNUSED s32 pad;
|
||||
s16 temp_lo;
|
||||
s32 stackPadding1;
|
||||
s32 stackPadding2;
|
||||
UNUSED s32 pad2[2];
|
||||
s16 temp_v1;
|
||||
Player *owner;
|
||||
f32 temp_f0;
|
||||
|
|
@ -3430,7 +3441,7 @@ void func_802A0E44(void) {
|
|||
struct Actor *phi_s0;
|
||||
struct Actor *temp_a1;
|
||||
s32 i, j;
|
||||
s32 pad;
|
||||
UNUSED s32 pad;
|
||||
|
||||
for (i = gNumPermanentActors; i < (ACTOR_LIST_SIZE - 1); i++) {
|
||||
phi_s0 = &gActorList[i];
|
||||
|
|
@ -3484,7 +3495,7 @@ void func_802A0E44(void) {
|
|||
}
|
||||
|
||||
void func_802A1064(struct FakeItemBox *fake_item_box) {
|
||||
if (fake_item_box - (struct FakeItemBox*)gActorList <= (u32)ACTOR_LIST_SIZE) {
|
||||
if ((u32)(fake_item_box - (struct FakeItemBox*)gActorList) <= (u32)ACTOR_LIST_SIZE) {
|
||||
if (((fake_item_box->flags & 0x8000) != 0) && (fake_item_box->type == ACTOR_FAKE_ITEM_BOX)) {
|
||||
fake_item_box->state = 1;
|
||||
fake_item_box->targetY = func_802ABEAC(&fake_item_box->unk30, fake_item_box->pos) + 8.66f;
|
||||
|
|
@ -3498,12 +3509,12 @@ void update_obj_fake_item_box(struct FakeItemBox *fake_item_box) {
|
|||
Player *temp_v0_4 = &gPlayers[temp_v1];
|
||||
struct Controller *temp_v1_3;
|
||||
|
||||
s32 pad[7];
|
||||
UNUSED s32 pad[7];
|
||||
f32 temp_f2_2;
|
||||
f32 temp_f14;
|
||||
f32 temp_f16;
|
||||
f32 temp_f18;
|
||||
s32 pad2[3];
|
||||
UNUSED s32 pad2[3];
|
||||
|
||||
switch(fake_item_box->state) {
|
||||
case 0:
|
||||
|
|
@ -3524,7 +3535,7 @@ void update_obj_fake_item_box(struct FakeItemBox *fake_item_box) {
|
|||
fake_item_box->pos[1] = (temp_v0_4->pos[1] - temp_f16) - 1.0f;
|
||||
fake_item_box->pos[2] = temp_v0_4->pos[2] - temp_f18;
|
||||
func_802ADDC8(&fake_item_box->unk30, fake_item_box->boundingBoxSize, fake_item_box->pos[0], fake_item_box->pos[1], fake_item_box->pos[2]);
|
||||
func_802B4E30(fake_item_box);
|
||||
func_802B4E30((struct Actor *)fake_item_box);
|
||||
temp_v1_3 = &gControllers[temp_v1];
|
||||
if ((temp_v0_4->unk_000 & 0x4000) != 0) {
|
||||
|
||||
|
|
@ -3564,7 +3575,7 @@ void update_obj_fake_item_box(struct FakeItemBox *fake_item_box) {
|
|||
|
||||
case 2:
|
||||
if ((fake_item_box->someTimer >= 0x14) || (fake_item_box->someTimer < 0)) {
|
||||
destroy_actor(fake_item_box);
|
||||
destroy_actor((struct Actor *) fake_item_box);
|
||||
} else {
|
||||
fake_item_box->someTimer++;
|
||||
fake_item_box->rot[0] += 0x444;
|
||||
|
|
@ -3573,7 +3584,7 @@ void update_obj_fake_item_box(struct FakeItemBox *fake_item_box) {
|
|||
}
|
||||
break;
|
||||
default:
|
||||
destroy_actor(fake_item_box);
|
||||
destroy_actor((struct Actor *) fake_item_box);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -3652,24 +3663,11 @@ void update_obj_item_box(struct ItemBox *itemBox) {
|
|||
|
||||
void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) {
|
||||
Vec3s someRot;
|
||||
s32 stackPadding0;
|
||||
s32 stackPadding1;
|
||||
s32 stackPadding2;
|
||||
UNUSED s32 pad[3];
|
||||
Vec3f someVec;
|
||||
Mat4 someMatrix2;
|
||||
Mat4 someMatrix3;
|
||||
s32 stackPadding3;
|
||||
s32 stackPadding4;
|
||||
s32 stackPadding5;
|
||||
s32 stackPadding6;
|
||||
s32 stackPadding7;
|
||||
s32 stackPadding8;
|
||||
s32 stackPadding9;
|
||||
s32 stackPadding10;
|
||||
s32 stackPadding11;
|
||||
s32 stackPadding12;
|
||||
s32 stackPadding13;
|
||||
s32 stackPadding14;
|
||||
UNUSED s32 pad2[12];
|
||||
f32 temp_f0_2;
|
||||
f32 temp_f0_3;
|
||||
f32 temp_f12;
|
||||
|
|
@ -3801,19 +3799,15 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) {
|
|||
}
|
||||
|
||||
void func_802A1EA0(Camera *camera, struct ItemBox *item_box) {
|
||||
s32 stackPadding0;
|
||||
s32 stackPadding1;
|
||||
UNUSED s32 pad[2];
|
||||
Vec3f someVec1;
|
||||
Vec3f someVec2;
|
||||
Vec3s someRot;
|
||||
f32 thing;
|
||||
s32 stackPadding2;
|
||||
UNUSED s32 pad2;
|
||||
Mat4 someMatrix1;
|
||||
Mat4 someMatrix2;
|
||||
s32 stackPadding3;
|
||||
s32 stackPadding4;
|
||||
s32 stackPadding5;
|
||||
s32 stackPadding6;
|
||||
UNUSED s32 pad3[4];
|
||||
f32 temp_f0;
|
||||
f32 temp_f0_2;
|
||||
f32 temp_f0_3;
|
||||
|
|
@ -4014,7 +4008,7 @@ void func_802A27A0(Camera *arg0, Mat4 arg1, struct YoshiValleyEgg *egg, u16 arg3
|
|||
}
|
||||
}
|
||||
|
||||
void func_802A29BC(Camera *arg0, Mat4 arg1, struct Actor *arg2) {
|
||||
void func_802A29BC(Camera *arg0, UNUSED Mat4 arg1, struct Actor *arg2) {
|
||||
Mat4 sp40;
|
||||
f32 unk;
|
||||
s16 temp = arg2->flags;
|
||||
|
|
@ -4024,15 +4018,15 @@ void func_802A29BC(Camera *arg0, Mat4 arg1, struct Actor *arg2) {
|
|||
if (!(unk < 0.0f)) {
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
func_802B5F74(&sp40, arg2->pos, arg2->rot);
|
||||
if (func_802B4FF8(&sp40, 0) != 0) {
|
||||
func_802B5F74(sp40, arg2->pos, arg2->rot);
|
||||
if (func_802B4FF8(sp40, 0) != 0) {
|
||||
gSPDisplayList(gDisplayListHead++, D_06009330);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_802A2AD0(Camera *arg0, struct RailroadCrossing *rr_crossing) {
|
||||
Vec3s sp80 = {0, 0, 0};
|
||||
UNUSED Vec3s sp80 = {0, 0, 0};
|
||||
Mat4 sp40;
|
||||
f32 unk = func_802B80D0(arg0->pos, rr_crossing->pos, arg0->rot[1], 0.0f, D_80150130[arg0 - camera1], 4000000.0f);
|
||||
|
||||
|
|
@ -4058,7 +4052,7 @@ void func_802A2AD0(Camera *arg0, struct RailroadCrossing *rr_crossing) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_802A2C78(Camera *arg0, Mat4 arg1, struct Actor *arg2) {
|
||||
void func_802A2C78(Camera *arg0, UNUSED Mat4 arg1, struct Actor *arg2) {
|
||||
Vec3s spA8 = {0, 0, 0};
|
||||
Mat4 sp68;
|
||||
f32 temp_f0;
|
||||
|
|
@ -4109,26 +4103,26 @@ void func_802A2C78(Camera *arg0, Mat4 arg1, struct Actor *arg2) {
|
|||
|
||||
void func_802A2F34(struct UnkStruct_800DC5EC *arg0) {
|
||||
Camera *temp_s1 = arg0->camera;
|
||||
struct Actor *phi_s0;
|
||||
struct Actor *actor;
|
||||
s32 i;
|
||||
D_8015F8DC = 0;
|
||||
|
||||
for (i = 0; i < ACTOR_LIST_SIZE; i++) {
|
||||
phi_s0 = &gActorList[i];
|
||||
actor = &gActorList[i];
|
||||
|
||||
if (phi_s0->flags == 0) {
|
||||
if (actor->flags == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
switch(phi_s0->type) {
|
||||
switch(actor->type) {
|
||||
case ACTOR_FAKE_ITEM_BOX:
|
||||
func_802A171C(temp_s1, phi_s0);
|
||||
func_802A171C(temp_s1, (struct FakeItemBox *) actor);
|
||||
break;
|
||||
case ACTOR_ITEM_BOX:
|
||||
func_802A1EA0(temp_s1, phi_s0);
|
||||
func_802A1EA0(temp_s1, (struct ItemBox *) actor);
|
||||
break;
|
||||
case ACTOR_HOT_AIR_BALLOON_ITEM_BOX:
|
||||
func_802A1EA0(temp_s1, phi_s0);
|
||||
func_802A1EA0(temp_s1, (struct ItemBox *) actor);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -4137,11 +4131,11 @@ void func_802A2F34(struct UnkStruct_800DC5EC *arg0) {
|
|||
void func_802A3008(struct UnkStruct_800DC5EC *arg0) {
|
||||
Camera *camera = arg0->camera;
|
||||
u16 sp92 = arg0->pathCounter;
|
||||
s32 pad[12];
|
||||
UNUSED s32 pad[12];
|
||||
s32 i;
|
||||
|
||||
struct Actor *actor;
|
||||
Vec3f sp4C = {0.0f, 5.0f, 10.0f};
|
||||
UNUSED Vec3f sp4C = {0.0f, 5.0f, 10.0f};
|
||||
f32 sp48 = sins(camera->rot[1] - 0x8000); // unk26;
|
||||
f32 temp_f0 = coss(camera->rot[1] - 0x8000);
|
||||
|
||||
|
|
@ -4217,7 +4211,7 @@ void func_802A3008(struct UnkStruct_800DC5EC *arg0) {
|
|||
func_8029A23C(camera, D_801502C0, actor);
|
||||
break;
|
||||
case ACTOR_BANANA:
|
||||
func_8029A8F4(camera, D_801502C0, actor);
|
||||
func_8029A8F4(camera, D_801502C0, (struct BananaActor *) actor);
|
||||
break;
|
||||
case ACTOR_GREEN_SHELL:
|
||||
func_8029A690(camera, D_801502C0, (struct ShellActor *) actor);
|
||||
|
|
@ -4229,7 +4223,7 @@ void func_802A3008(struct UnkStruct_800DC5EC *arg0) {
|
|||
func_8029A828(camera, D_801502C0, (struct ShellActor *) actor);
|
||||
break;
|
||||
case ACTOR_PIRANHA_PLANT:
|
||||
func_80298328(camera, D_801502C0, actor);
|
||||
func_80298328(camera, D_801502C0, (struct PiranhaPlant *) actor);
|
||||
break;
|
||||
case ACTOR_TRAIN_ENGINE:
|
||||
func_8029B8E8(camera, (struct TrainCar *) actor);
|
||||
|
|
@ -4256,7 +4250,7 @@ void func_802A3008(struct UnkStruct_800DC5EC *arg0) {
|
|||
func_802A2C78(camera, D_801502C0, actor);
|
||||
break;
|
||||
case ACTOR_PADDLE_WHEEL_BOAT:
|
||||
func_8029AE1C(camera, actor, D_801502C0, sp92);
|
||||
func_8029AE1C(camera, (struct PaddleWheelBoat *) actor, D_801502C0, sp92);
|
||||
break;
|
||||
case ACTOR_BOX_TRUCK:
|
||||
func_8029B06C(camera, actor);
|
||||
|
|
@ -4271,10 +4265,10 @@ void func_802A3008(struct UnkStruct_800DC5EC *arg0) {
|
|||
func_8029B4E0(camera, actor);
|
||||
break;
|
||||
case ACTOR_RAILROAD_CROSSING:
|
||||
func_802A2AD0(camera, actor);
|
||||
func_802A2AD0(camera, (struct RailroadCrossing *) actor);
|
||||
break;
|
||||
case ACTOR_YOSHI_VALLEY_EGG:
|
||||
func_802A27A0(camera, D_801502C0, actor, sp92);
|
||||
func_802A27A0(camera, D_801502C0, (struct YoshiValleyEgg *) actor, sp92);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -4300,55 +4294,55 @@ void update_simple_objects(void) {
|
|||
|
||||
switch (actor->type) {
|
||||
case ACTOR_FALLING_ROCK:
|
||||
update_obj_falling_rocks(actor);
|
||||
update_obj_falling_rocks((struct FallingRock *) actor);
|
||||
break;
|
||||
case ACTOR_GREEN_SHELL:
|
||||
update_obj_green_shell(actor);
|
||||
update_obj_green_shell((struct ShellActor *) actor);
|
||||
break;
|
||||
case ACTOR_RED_SHELL:
|
||||
update_obj_red_blue_shell(actor);
|
||||
update_obj_red_blue_shell((struct ShellActor *) actor);
|
||||
break;
|
||||
case ACTOR_BLUE_SPINY_SHELL:
|
||||
update_obj_red_blue_shell(actor);
|
||||
update_obj_red_blue_shell((struct ShellActor *) actor);
|
||||
break;
|
||||
case ACTOR_KIWANO_FRUIT:
|
||||
update_obj_kiwano_fruit(actor);
|
||||
update_obj_kiwano_fruit((struct KiwanoFruit *)actor);
|
||||
break;
|
||||
case ACTOR_BANANA:
|
||||
update_obj_banana(actor);
|
||||
update_obj_banana((struct BananaActor *) actor);
|
||||
break;
|
||||
case ACTOR_PADDLE_WHEEL_BOAT:
|
||||
update_obj_paddle_wheel(actor);
|
||||
update_obj_paddle_wheel((struct PaddleWheelBoat *) actor);
|
||||
break;
|
||||
case ACTOR_TRAIN_ENGINE:
|
||||
update_obj_train_engine(actor);
|
||||
update_obj_train_engine((struct TrainCar *) actor);
|
||||
break;
|
||||
case ACTOR_TRAIN_TENDER:
|
||||
update_obj_train_car1(actor);
|
||||
update_obj_train_car1((struct TrainCar *) actor);
|
||||
break;
|
||||
case ACTOR_TRAIN_PASSENGER_CAR:
|
||||
update_obj_train_car2(actor);
|
||||
update_obj_train_car2((struct TrainCar *) actor);
|
||||
break;
|
||||
case ACTOR_ITEM_BOX:
|
||||
update_obj_item_box(actor);
|
||||
update_obj_item_box((struct ItemBox *) actor);
|
||||
break;
|
||||
case ACTOR_HOT_AIR_BALLOON_ITEM_BOX:
|
||||
update_obj_item_box_hot_air_balloon(actor);
|
||||
update_obj_item_box_hot_air_balloon((struct ItemBox *)actor);
|
||||
break;
|
||||
case ACTOR_FAKE_ITEM_BOX:
|
||||
update_obj_fake_item_box(actor);
|
||||
update_obj_fake_item_box((struct FakeItemBox *) actor);
|
||||
break;
|
||||
case ACTOR_PIRANHA_PLANT:
|
||||
update_obj_piranha_plant(actor);
|
||||
update_obj_piranha_plant((struct PiranhaPlant *) actor);
|
||||
break;
|
||||
case ACTOR_BANANA_BUNCH:
|
||||
update_obj_banana_bunch(actor);
|
||||
update_obj_banana_bunch((struct BananaBunchParent *) actor);
|
||||
break;
|
||||
case ACTOR_TRIPLE_GREEN_SHELL:
|
||||
update_obj_triple_shell(actor, ACTOR_GREEN_SHELL);
|
||||
update_obj_triple_shell((TripleShellParent *) actor, ACTOR_GREEN_SHELL);
|
||||
break;
|
||||
case ACTOR_TRIPLE_RED_SHELL:
|
||||
update_obj_triple_shell(actor, ACTOR_RED_SHELL);
|
||||
update_obj_triple_shell((TripleShellParent *) actor, ACTOR_RED_SHELL);
|
||||
break;
|
||||
case ACTOR_MARIO_RACEWAY_SIGN:
|
||||
update_obj_mario_raceway_sign(actor);
|
||||
|
|
@ -4357,7 +4351,7 @@ void update_simple_objects(void) {
|
|||
update_obj_wario_stadium_sign(actor);
|
||||
break;
|
||||
case ACTOR_RAILROAD_CROSSING:
|
||||
update_obj_railroad_crossing(actor);
|
||||
update_obj_railroad_crossing((struct RailroadCrossing *) actor);
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
|
|
@ -4375,7 +4369,7 @@ void update_simple_objects(void) {
|
|||
update_obj_trees_cacti_shrubs(actor);
|
||||
break;
|
||||
case ACTOR_YOSHI_VALLEY_EGG:
|
||||
update_obj_yoshi_valley_egg(actor);
|
||||
update_obj_yoshi_valley_egg((struct YoshiValleyEgg *) actor);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13
src/actors.h
13
src/actors.h
|
|
@ -117,9 +117,9 @@ extern void func_800C99E0(Vec3f, s32);
|
|||
|
||||
extern Vec3f D_802B91C8;
|
||||
|
||||
extern s32 D_802BA050;
|
||||
extern s32 D_802BA054;
|
||||
extern s32 D_802BA058;
|
||||
extern u8 *D_802BA050;
|
||||
extern u8 *D_802BA054;
|
||||
extern u8 *D_802BA058;
|
||||
extern struct Actor *D_802BA05C;
|
||||
extern s8 D_802BA060[512]; // tlut 256
|
||||
extern u16 D_802BA260;
|
||||
|
|
@ -263,7 +263,6 @@ extern s32 D_801625EC;
|
|||
extern s32 D_801625F0;
|
||||
extern s32 D_801625F4;
|
||||
extern s32 D_80162DF8;
|
||||
extern s32 D_802BA058;
|
||||
|
||||
extern Gfx D_06006990[];
|
||||
extern Gfx D_06009330[];
|
||||
|
|
@ -383,9 +382,9 @@ extern u8 D_0F057590[];
|
|||
extern u8 D_0F057EB4[];
|
||||
extern u8 D_0F0581E4[];
|
||||
extern u8 D_0F058550[];
|
||||
extern s8 gTexture671A88[];
|
||||
extern s8 gTexture6774D8[];
|
||||
extern s8 gTextureShrub[];
|
||||
extern u8 gTexture671A88[];
|
||||
extern u8 gTexture6774D8[];
|
||||
extern u8 gTextureShrub[];
|
||||
|
||||
extern s8 D_800DC628[];
|
||||
extern s8 D_800DC630[];
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@
|
|||
#include "actors.h"
|
||||
#include "actors_extended.h"
|
||||
#include "audio/external.h"
|
||||
#include "code_80071F00.h"
|
||||
#include "code_8008C1D0.h"
|
||||
|
||||
void func_802B0210(UnkActorInner *arg0, UnkActorInner *arg1) {
|
||||
arg1->unk30 = arg0->unk30;
|
||||
|
|
@ -29,7 +31,7 @@ void func_802B0210(UnkActorInner *arg0, UnkActorInner *arg1) {
|
|||
}
|
||||
|
||||
void func_802B02B4(struct ShellActor *shell, s32 shellType) {
|
||||
struct TripleShellParent *parent = &gActorList[shell->parentIndex];
|
||||
TripleShellParent *parent = (TripleShellParent *) &gActorList[shell->parentIndex];
|
||||
|
||||
parent->shellsAvailable--;
|
||||
|
||||
|
|
@ -74,17 +76,17 @@ void func_802B0464(s16 bananaIndex) {
|
|||
struct BananaActor *banana;
|
||||
|
||||
if (bananaIndex != -1) {
|
||||
banana = &gActorList[bananaIndex];
|
||||
banana = (struct BananaActor *) &gActorList[bananaIndex];
|
||||
func_802B039C(banana);
|
||||
func_802B0464(banana->youngerIndex);
|
||||
}
|
||||
}
|
||||
|
||||
void func_802B04E8(struct BananaActor *unused, s16 bananaIndex) {
|
||||
void func_802B04E8(UNUSED struct BananaActor *arg0, s16 bananaIndex) {
|
||||
struct BananaActor *banana;
|
||||
|
||||
if (bananaIndex != -1) {
|
||||
banana = &gActorList[bananaIndex];
|
||||
banana = (struct BananaActor *) &gActorList[bananaIndex];
|
||||
func_802B039C(banana);
|
||||
func_802B04E8(banana, banana->elderIndex);
|
||||
}
|
||||
|
|
@ -103,7 +105,7 @@ void func_802B0570(struct BananaActor *banana) {
|
|||
banana->unk_04 = 0x003C;
|
||||
banana->state = 5;
|
||||
banana->velocity[1] = 3.0f;
|
||||
temp_v0_2 = &gActorList[banana->parentIndex];
|
||||
temp_v0_2 = (struct BananaBunchParent *) &gActorList[banana->parentIndex];
|
||||
temp_v0_2->bananaIndices[0] = -1;
|
||||
temp_v0_2->bananaIndices[1] = -1;
|
||||
temp_v0_2->bananaIndices[2] = -1;
|
||||
|
|
@ -118,19 +120,19 @@ void func_802B0648(struct BananaBunchParent *banana_bunch) {
|
|||
|
||||
banana_bunch->bananasAvailable -= 1;
|
||||
if (banana_bunch->bananaIndices[4] != -1) {
|
||||
banana = &gActorList[banana_bunch->bananaIndices[4]];
|
||||
banana = (struct BananaActor *) &gActorList[banana_bunch->bananaIndices[4]];
|
||||
banana_bunch->bananaIndices[4] = -1;
|
||||
} else if (banana_bunch->bananaIndices[3] != -1) {
|
||||
banana = &gActorList[banana_bunch->bananaIndices[3]];
|
||||
banana = (struct BananaActor *) &gActorList[banana_bunch->bananaIndices[3]];
|
||||
banana_bunch->bananaIndices[3] = -1;
|
||||
} else if (banana_bunch->bananaIndices[2] != -1) {
|
||||
banana = &gActorList[banana_bunch->bananaIndices[2]];
|
||||
banana = (struct BananaActor *) &gActorList[banana_bunch->bananaIndices[2]];
|
||||
banana_bunch->bananaIndices[2] = -1;
|
||||
} else if (banana_bunch->bananaIndices[1] != -1) {
|
||||
banana = &gActorList[banana_bunch->bananaIndices[1]];
|
||||
banana = (struct BananaActor *) &gActorList[banana_bunch->bananaIndices[1]];
|
||||
banana_bunch->bananaIndices[1] = -1;
|
||||
} else if (banana_bunch->bananaIndices[0] != -1) {
|
||||
banana = &gActorList[banana_bunch->bananaIndices[0]];
|
||||
banana = (struct BananaActor *) &gActorList[banana_bunch->bananaIndices[0]];
|
||||
banana_bunch->bananaIndices[0] = -1;
|
||||
} else {
|
||||
return;
|
||||
|
|
@ -211,7 +213,7 @@ s32 func_802B09C0(s16 bananaId) {
|
|||
}
|
||||
|
||||
void update_obj_banana_bunch(struct BananaBunchParent *banana_bunch) {
|
||||
s32 pad[2];
|
||||
UNUSED s32 pad[2];
|
||||
Player *owner;
|
||||
struct Controller *controller;
|
||||
s32 someCount;
|
||||
|
|
@ -288,7 +290,7 @@ void update_obj_banana_bunch(struct BananaBunchParent *banana_bunch) {
|
|||
someCount += 1;
|
||||
}
|
||||
if (someCount == 0) {
|
||||
destroy_actor(banana_bunch);
|
||||
destroy_actor((struct Actor *) banana_bunch);
|
||||
owner->statusEffects &= ~0x40000;
|
||||
} else if ((owner->unk_000 & 0x4000) != 0) {
|
||||
controller = &gControllers[banana_bunch->playerId];
|
||||
|
|
@ -326,15 +328,13 @@ s32 func_802B0E14(s16 arg0) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
void update_obj_triple_shell(struct TripleShellParent *parent, s16 shellType) {
|
||||
s32 pad4;
|
||||
s32 pad3;
|
||||
void update_obj_triple_shell(TripleShellParent *parent, s16 shellType) {
|
||||
UNUSED s32 pad[2];
|
||||
s16 playerId;
|
||||
s16 pad0;
|
||||
s32 pad1;
|
||||
UNUSED s32 pad2;
|
||||
struct ShellActor *shell;
|
||||
Vec3f someVelocity;
|
||||
s32 pad2;
|
||||
UNUSED s32 pad3;
|
||||
s16 someCount;
|
||||
u16 someRotAngle;
|
||||
Player *player;
|
||||
|
|
@ -423,7 +423,7 @@ void update_obj_triple_shell(struct TripleShellParent *parent, s16 shellType) {
|
|||
}
|
||||
if (parent->unk_08 > 0.0f) {
|
||||
if (parent->shellIndices[0] > 0.0f) {
|
||||
shell = &gActorList[(s16)parent->shellIndices[0]];
|
||||
shell = (struct ShellActor *)&gActorList[(s16)parent->shellIndices[0]];
|
||||
if((shell->rotAngle < 0x38E) || (shell->rotAngle >= -0x38D)) {
|
||||
someVelocity[0] = 0;
|
||||
someVelocity[1] = 0;
|
||||
|
|
@ -448,7 +448,7 @@ void update_obj_triple_shell(struct TripleShellParent *parent, s16 shellType) {
|
|||
}
|
||||
}
|
||||
if (parent->shellIndices[1] > 0.0f) {
|
||||
shell = &gActorList[(s16)parent->shellIndices[1]];
|
||||
shell = (struct ShellActor *) &gActorList[(s16)parent->shellIndices[1]];
|
||||
if((shell->rotAngle < 0xAA1) || (shell->rotAngle >= 0x38F)) {
|
||||
someVelocity[0] = 0;
|
||||
someVelocity[1] = 0;
|
||||
|
|
@ -473,7 +473,7 @@ void update_obj_triple_shell(struct TripleShellParent *parent, s16 shellType) {
|
|||
}
|
||||
}
|
||||
if (parent->shellIndices[2] > 0.0f) {
|
||||
shell = &gActorList[(s16)parent->shellIndices[2]];
|
||||
shell = (struct ShellActor *) &gActorList[(s16)parent->shellIndices[2]];
|
||||
if((shell->rotAngle < -0x38E) || (shell->rotAngle >= -0x71B)) {
|
||||
someVelocity[0] = 0;
|
||||
someVelocity[1] = 0;
|
||||
|
|
@ -516,7 +516,7 @@ s32 func_802B17F4(Player *player) {
|
|||
if (actorIndex < 0) {
|
||||
return actorIndex;
|
||||
}
|
||||
bananaBunch = &gActorList[actorIndex];
|
||||
bananaBunch = (struct BananaBunchParent *) &gActorList[actorIndex];
|
||||
bananaBunch->state = 0;
|
||||
bananaBunch->playerId = player - gPlayerOne;
|
||||
player->statusEffects |= 0x40000;
|
||||
|
|
@ -529,13 +529,13 @@ s32 func_802B18E4(Player *player, s16 tripleShellType) {
|
|||
Vec3s startingRot = {0, 0, 0};
|
||||
Vec3f startingPos = {0.0f, 0.0f, 0.0f};
|
||||
s16 actorIndex;
|
||||
struct TripleShellParent *parent;
|
||||
TripleShellParent *parent;
|
||||
|
||||
actorIndex = addActorToEmptySlot(startingPos, startingRot, startingVelocity, tripleShellType);
|
||||
if (actorIndex < 0) {
|
||||
return actorIndex;
|
||||
}
|
||||
parent = &gActorList[actorIndex];
|
||||
parent = (TripleShellParent *) &gActorList[actorIndex];
|
||||
parent->state = 0;
|
||||
parent->rotVelocity = 0x05B0;
|
||||
parent->rotAngle = -0x8000;
|
||||
|
|
@ -546,7 +546,7 @@ s32 func_802B18E4(Player *player, s16 tripleShellType) {
|
|||
}
|
||||
|
||||
// This function could reasonably be called "spawn_shell_for_triple_shell" or similar
|
||||
s32 func_802B19EC(struct TripleShellParent *parent, Player *player, s16 shellType, u16 shellId) {
|
||||
s32 func_802B19EC(TripleShellParent *parent, Player *player, s16 shellType, u16 shellId) {
|
||||
Vec3f startingVelocity = {0.0f, 0.0f, 0.0f};
|
||||
Vec3s startingRot = {0, 0, 0};
|
||||
Vec3f startingPos;
|
||||
|
|
@ -567,12 +567,12 @@ s32 func_802B19EC(struct TripleShellParent *parent, Player *player, s16 shellTyp
|
|||
return -1;
|
||||
}
|
||||
|
||||
shell = &gActorList[actorIndex];
|
||||
shell = (struct ShellActor *) &gActorList[actorIndex];
|
||||
startingPos[0] = player->pos[0];
|
||||
startingPos[1] = player->pos[1];
|
||||
startingPos[2] = player->pos[2];
|
||||
func_802AD950(&shell->unk30, shell->boundingBoxSize + 1.0f, shell->pos[0], shell->pos[1], shell->pos[2], startingPos[0], startingPos[1], startingPos[2]);
|
||||
func_802B4E30(shell);
|
||||
func_802B4E30((struct Actor *)shell);
|
||||
shell->flags = 0x9000;
|
||||
switch (shellType) {
|
||||
case ACTOR_GREEN_SHELL:
|
||||
|
|
@ -611,12 +611,12 @@ s32 func_802B1C9C(Player *player) {
|
|||
return actorIndex;
|
||||
}
|
||||
|
||||
shell = &gActorList[actorIndex];
|
||||
shell = (struct ShellActor *) &gActorList[actorIndex];
|
||||
startingPos[0] = player->pos[0];
|
||||
startingPos[1] = player->pos[1];
|
||||
startingPos[2] = player->pos[2];
|
||||
func_802AD950(&shell->unk30, shell->boundingBoxSize + 1.0f, shell->pos[0], shell->pos[1], shell->pos[2], startingPos[0], startingPos[1], startingPos[2]);
|
||||
func_802B4E30(shell);
|
||||
func_802B4E30((struct Actor *)shell);
|
||||
shell->state = 0;
|
||||
shell->rotVelocity = 0;
|
||||
shell->rotAngle = -0x8000;
|
||||
|
|
@ -644,12 +644,12 @@ s32 func_802B1E48(Player *player) {
|
|||
return actorIndex;
|
||||
}
|
||||
|
||||
shell = &gActorList[actorIndex];
|
||||
shell = (struct ShellActor *) &gActorList[actorIndex];
|
||||
startingPos[0] = player->pos[0];
|
||||
startingPos[1] = player->pos[1];
|
||||
startingPos[2] = player->pos[2];
|
||||
func_802AD950(&shell->unk30, shell->boundingBoxSize + 1.0f, shell->pos[0], shell->pos[1], shell->pos[2], startingPos[0], startingPos[1], startingPos[2]);
|
||||
func_802B4E30(shell);
|
||||
func_802B4E30((struct Actor *)shell);
|
||||
shell->state = 0;
|
||||
shell->rotVelocity = 0;
|
||||
shell->rotAngle = player->unk_02C[1] - 0x8000;
|
||||
|
|
@ -665,18 +665,17 @@ void func_802B1FFC(Player *player) {
|
|||
}
|
||||
|
||||
void update_obj_banana(struct BananaActor *banana) {
|
||||
f32 pad0;
|
||||
UNUSED f32 pad;
|
||||
Player *player;
|
||||
struct BananaActor *elderBanana;
|
||||
struct Controller *controller;
|
||||
Vec3f someOtherVelocity;
|
||||
Vec3f someVelocity;
|
||||
f32 temp_f0;
|
||||
f32 var_f8;
|
||||
f32 var_f12;
|
||||
f32 pad1;
|
||||
f32 pad2;
|
||||
f32 pad3;
|
||||
UNUSED f32 var_f8;
|
||||
UNUSED f32 pad2;
|
||||
UNUSED f32 pad3;
|
||||
UNUSED f32 pad4[2];
|
||||
f32 temp_f12;
|
||||
f32 temp_f2;
|
||||
f32 temp_f14;
|
||||
|
|
@ -718,16 +717,16 @@ void update_obj_banana(struct BananaActor *banana) {
|
|||
banana->unk_04 = 0x00B4;
|
||||
player->statusEffects &= ~0x40000;
|
||||
func_800C9060(player - gPlayerOne, 0x19008012U);
|
||||
pad1 = controller->rawStickY;
|
||||
if ((pad1 > 30.0f) && (controller->rawStickX < 10) && (controller->rawStickX >= -9)) {
|
||||
pad1 = pad1 - ((f32) 30);
|
||||
pad1 = (pad1 / 20.0f) + 0.5f;
|
||||
pad3 = controller->rawStickY;
|
||||
if ((pad3 > 30.0f) && (controller->rawStickX < 10) && (controller->rawStickX >= -9)) {
|
||||
pad3 = pad3 - ((f32) 30);
|
||||
pad3 = (pad3 / 20.0f) + 0.5f;
|
||||
if (player->unk_094 < 2.0f) {
|
||||
temp_f0 = 4.0f;
|
||||
} else {
|
||||
temp_f0 = (player->unk_094 * 0.75f) + 3.5f + pad1;
|
||||
temp_f0 = (player->unk_094 * 0.75f) + 3.5f + pad3;
|
||||
}
|
||||
vec3f_set(someVelocity, 0, pad1, temp_f0);
|
||||
vec3f_set(someVelocity, 0, pad3, temp_f0);
|
||||
func_802B64C4(someVelocity, player->unk_02C[1] + player->unk_0C0);
|
||||
banana->velocity[0] = someVelocity[0];
|
||||
banana->velocity[1] = someVelocity[1];
|
||||
|
|
@ -848,8 +847,8 @@ void func_802B2914(struct BananaBunchParent *banana_bunch, Player *player, s16 b
|
|||
Vec3f startingVelocity;
|
||||
Vec3s startingRot;
|
||||
Vec3f startingPos;
|
||||
s32 pad0;
|
||||
s32 pad1;
|
||||
UNUSED s32 pad;
|
||||
UNUSED s32 pad2;
|
||||
struct BananaActor *newBanana;
|
||||
struct BananaActor *tempBanana;
|
||||
|
||||
|
|
@ -924,7 +923,7 @@ void func_802B2914(struct BananaBunchParent *banana_bunch, Player *player, s16 b
|
|||
// This function could reasonably be called "spawn_fake_itembox" or similar
|
||||
s32 func_802B2C40(Player *player) {
|
||||
struct FakeItemBox *itemBox;
|
||||
s32 pad[5];
|
||||
UNUSED s32 pad[5];
|
||||
s16 actorIndex;
|
||||
Vec3f startingVelocity;
|
||||
Vec3s startingRot;
|
||||
|
|
@ -956,7 +955,7 @@ s32 func_802B2C40(Player *player) {
|
|||
|
||||
// This function could reasonably be called "spawn_banana" or similar
|
||||
s32 func_802B2D70(Player *player) {
|
||||
s32 pad[6];
|
||||
UNUSED s32 pad[6];
|
||||
u16 playerId;
|
||||
s16 actorIndex;
|
||||
struct BananaActor *banana;
|
||||
|
|
@ -986,7 +985,7 @@ s32 func_802B2D70(Player *player) {
|
|||
if (actorIndex < 0) {
|
||||
return actorIndex;
|
||||
}
|
||||
banana = &gActorList[actorIndex];
|
||||
banana = (struct BananaActor *) &gActorList[actorIndex];
|
||||
banana->playerId = playerId;
|
||||
banana->state = 0;
|
||||
banana->unk_04 = 0x0014;
|
||||
|
|
@ -1105,22 +1104,22 @@ void func_802B30EC(void) {
|
|||
|
||||
void update_obj_green_shell(struct ShellActor *shell) {
|
||||
Player *player;
|
||||
f32 pad9;
|
||||
f32 padA;
|
||||
UNUSED f32 pad9;
|
||||
UNUSED f32 padA;
|
||||
Vec3f somePos2;
|
||||
Vec3f somePosVel;
|
||||
f32 var_f2;
|
||||
struct Controller *controller;
|
||||
struct TripleShellParent *parent;
|
||||
f32 pad0;
|
||||
f32 pad1;
|
||||
f32 pad2;
|
||||
f32 pad3;
|
||||
f32 pad4;
|
||||
f32 pad5;
|
||||
f32 pad6;
|
||||
f32 pad7;
|
||||
f32 pad8;
|
||||
TripleShellParent *parent;
|
||||
UNUSED f32 pad0;
|
||||
UNUSED f32 pad1;
|
||||
UNUSED f32 pad2;
|
||||
UNUSED f32 pad3;
|
||||
UNUSED f32 pad4;
|
||||
UNUSED f32 pad5;
|
||||
UNUSED f32 pad6;
|
||||
UNUSED f32 pad7;
|
||||
UNUSED f32 pad8;
|
||||
|
||||
pad0 = shell->pos[0];
|
||||
pad6 = shell->pos[1];
|
||||
|
|
@ -1249,7 +1248,7 @@ void update_obj_green_shell(struct ShellActor *shell) {
|
|||
break;
|
||||
case 4:
|
||||
player = &gPlayers[shell->playerId];
|
||||
parent = &gActorList[shell->parentIndex];
|
||||
parent = (TripleShellParent *) &gActorList[shell->parentIndex];
|
||||
if (parent->type != ACTOR_TRIPLE_GREEN_SHELL) {
|
||||
func_8029FDC8((struct Actor *) shell);
|
||||
} else {
|
||||
|
|
@ -1470,33 +1469,33 @@ void func_802B4104(struct ShellActor *shell) {
|
|||
}
|
||||
|
||||
void update_obj_red_blue_shell(struct ShellActor *shell) {
|
||||
f32 pad9;
|
||||
UNUSED f32 pad9;
|
||||
Player *player;
|
||||
f32 temp_f0;
|
||||
f32 temp_f14;
|
||||
UNUSED f32 temp_f14;
|
||||
f32 temp_f2;
|
||||
s16 temp_v0;
|
||||
s16 pad3;
|
||||
UNUSED s16 pad3;
|
||||
Vec3f somePosVel;
|
||||
struct Controller *controller;
|
||||
struct TripleShellParent *parent;
|
||||
f32 pad0;
|
||||
f32 pad1;
|
||||
f32 pad2;
|
||||
f32 pad4;
|
||||
f32 pad5;
|
||||
f32 pad6;
|
||||
f32 pad7;
|
||||
f32 pad8;
|
||||
f32 pad10;
|
||||
f32 pad11;
|
||||
f32 pad12;
|
||||
s16 pad13;
|
||||
s16 pad13_2;
|
||||
f32 pad14;
|
||||
f32 pad15;
|
||||
f32 pad16;
|
||||
f32 pad17;
|
||||
TripleShellParent *parent;
|
||||
UNUSED f32 pad0;
|
||||
UNUSED f32 pad1;
|
||||
UNUSED f32 pad2;
|
||||
UNUSED f32 pad4;
|
||||
UNUSED f32 pad5;
|
||||
UNUSED f32 pad6;
|
||||
UNUSED f32 pad7;
|
||||
UNUSED f32 pad8;
|
||||
UNUSED f32 pad10;
|
||||
UNUSED f32 pad11;
|
||||
UNUSED f32 pad12;
|
||||
UNUSED s16 pad13;
|
||||
UNUSED s16 pad13_2;
|
||||
UNUSED f32 pad14;
|
||||
UNUSED f32 pad15;
|
||||
UNUSED f32 pad16;
|
||||
UNUSED f32 pad17;
|
||||
Vec3f origPos;
|
||||
|
||||
pad1 = shell->pos[0];
|
||||
|
|
@ -1691,7 +1690,7 @@ void update_obj_red_blue_shell(struct ShellActor *shell) {
|
|||
break;
|
||||
case 6:
|
||||
player = &gPlayers[shell->playerId];
|
||||
parent = &gActorList[shell->parentIndex];
|
||||
parent = (TripleShellParent *) &gActorList[shell->parentIndex];
|
||||
if (parent->type != ACTOR_TRIPLE_RED_SHELL) {
|
||||
func_8029FDC8((struct Actor *) shell);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -15,10 +15,10 @@ void func_802B0788(s16, struct BananaBunchParent*, Player*);
|
|||
s32 func_802B09C0(s16);
|
||||
void update_obj_banana_bunch(struct BananaBunchParent*);
|
||||
s32 func_802B0E14(s16);
|
||||
void update_obj_triple_shell(struct TripleShellParent*, s16);
|
||||
void update_obj_triple_shell(TripleShellParent*, s16);
|
||||
s32 func_802B17F4(Player*);
|
||||
s32 func_802B18E4(Player*, s16);
|
||||
s32 func_802B19EC(struct TripleShellParent*, Player*, s16, u16);
|
||||
s32 func_802B19EC(TripleShellParent*, Player*, s16, u16);
|
||||
s32 func_802B1C9C(Player*);
|
||||
s32 func_802B1E48(Player*);
|
||||
void func_802B1FFC(Player*);
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include "audio/load.h"
|
||||
#include "audio/data.h"
|
||||
#include <sounds.h>
|
||||
#include "port_eu.h"
|
||||
|
||||
// Requires void in the argument list to match properly.
|
||||
void func_800C13F0(void) {
|
||||
|
|
@ -364,7 +365,7 @@ f32 *func_800C21E8(Vec3f arg0, u32 arg1) {
|
|||
u8 var_v0;
|
||||
f32 *ret;
|
||||
// Only here to force a match
|
||||
f32 *thing = arg0;
|
||||
UNUSED f32 *thing = arg0;
|
||||
struct Unk_8018EFD8 *temp_a1;
|
||||
|
||||
ret = 0;
|
||||
|
|
@ -4188,7 +4189,7 @@ void play_sound2(s32 soundBits) {
|
|||
if ((soundBits == SOUND_ACTION_REV_ENGINE_2) && (gCurrentCourseId == 0x12)) {
|
||||
soundBits = 0x49008028;
|
||||
}
|
||||
play_sound(soundBits, &D_800EA1C8, 4, &D_800EA1D4, &D_800EA1D4, &D_800EA1DC);
|
||||
play_sound(soundBits, D_800EA1C8, 4, D_800EA1D4, D_800EA1D4, &D_800EA1DC);
|
||||
}
|
||||
|
||||
void func_800C8EAC(u16 arg0) {
|
||||
|
|
@ -4243,15 +4244,13 @@ GLOBAL_ASM("asm/non_matchings/audio/external/func_800C8F80.s")
|
|||
//void func_800C5578(void *, s32); // extern
|
||||
|
||||
typedef struct {
|
||||
s32 unk0[0x3C];
|
||||
Vec3f unk0[0x14]; // 0x14
|
||||
} UnkStruct_800E9F7C;
|
||||
|
||||
extern UnkStruct_800E9F7C D_800E9F7C[];
|
||||
|
||||
void func_800C9018(u8 arg0, s32 arg1) {
|
||||
//s32 temp_a2;
|
||||
|
||||
//temp_a2 = arg0;
|
||||
UNUSED s32 a = arg0;
|
||||
func_800C5578(D_800E9F7C->unk0[arg0], arg1);
|
||||
}
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -86,8 +86,16 @@ struct Unk_800EA06C {
|
|||
/* 0x00 */ Vec3f unk00;
|
||||
/* 0x0C */ u8 unk0C;
|
||||
/* 0x0D */ // u8 compilerPadding0[3];
|
||||
} ;
|
||||
};
|
||||
|
||||
void func_800C35E8(s32);
|
||||
u16 func_800C3508(s32);
|
||||
void func_800C5278(u8);
|
||||
void func_800CB14C(void);
|
||||
void func_800C8F80(u8, s32);
|
||||
void func_800C9018(u8, s32);
|
||||
void func_800C9D0C(s32);
|
||||
void func_800C97C4(s32);
|
||||
void func_800C13F0();
|
||||
void func_800C13FC(OSMesg);
|
||||
f32 func_800C1480(u8, u8);
|
||||
|
|
@ -190,7 +198,7 @@ extern u8 D_800EA1C0;// = 0;
|
|||
// Most similar to gGlobalSoundSource from SM64, but I don't know if its really
|
||||
// a sound source, its usage makes it look like a 0'd Vec3f for general usage
|
||||
extern Vec3f D_800EA1C8;// = {0.0f, 0.0f, 0.0f}
|
||||
extern u8 D_800EA1D4;
|
||||
extern Vec3f D_800EA1D4;
|
||||
extern u8 D_800EA1DC;// = 0;
|
||||
extern u8 D_800EA244;
|
||||
|
||||
|
|
|
|||
|
|
@ -670,7 +670,7 @@ struct Note *alloc_note_from_decaying(struct NotePool *pool, struct SequenceChan
|
|||
return note;
|
||||
}
|
||||
|
||||
s32 alloc_note_from_active(struct NotePool *pool, struct SequenceChannelLayer *seqLayer) {
|
||||
struct Note *alloc_note_from_active(struct NotePool *pool, struct SequenceChannelLayer *seqLayer) {
|
||||
struct Note *aNote;
|
||||
|
||||
aNote = pop_node_with_lower_prio(&pool->active, seqLayer->seqChannel->notePriority);
|
||||
|
|
@ -681,7 +681,7 @@ s32 alloc_note_from_active(struct NotePool *pool, struct SequenceChannelLayer *s
|
|||
func_800BD8F4(aNote, seqLayer);
|
||||
audio_list_push_back(&pool->releasing, &aNote->listItem);
|
||||
}
|
||||
|
||||
|
||||
return aNote;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ void func_800BD8F4(struct Note *note, struct SequenceChannelLayer *seqLayer);
|
|||
void note_release_and_take_ownership(struct Note *note, struct SequenceChannelLayer *seqLayer);
|
||||
struct Note *alloc_note_from_disabled(struct NotePool *pool, struct SequenceChannelLayer *seqLayer);
|
||||
struct Note *alloc_note_from_decaying(struct NotePool *pool, struct SequenceChannelLayer *seqLayer);
|
||||
s32 alloc_note_from_active(struct NotePool *pool, struct SequenceChannelLayer *seqLayer);
|
||||
struct Note *alloc_note_from_active(struct NotePool *pool, struct SequenceChannelLayer *seqLayer);
|
||||
struct Note *alloc_note(struct SequenceChannelLayer *seqLayer);
|
||||
void note_init_all(void);
|
||||
|
||||
|
|
|
|||
|
|
@ -319,7 +319,7 @@ void func_800CBB88(u32 arg0, f32 arg1) {
|
|||
func_800CBB48(arg0, (s32*) &arg1);
|
||||
}
|
||||
|
||||
void func_800CBBB8(u32 arg0, u32 arg1) {
|
||||
void func_800CBBB8(u32 arg0, s32 arg1) {
|
||||
func_800CBB48(arg0, &arg1);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,5 +3,6 @@
|
|||
|
||||
void seq_player_fade_to_zero_volume(s32 arg0, s32 fadeOutTime);
|
||||
void func_800CBA64(s32 playerIndex, s32 fadeInTime);
|
||||
void func_800CBBB8(u32, s32);
|
||||
|
||||
#endif
|
||||
26
src/camera.c
26
src/camera.c
|
|
@ -233,7 +233,7 @@ void func_8001CA24(Player *player, f32 arg1) {
|
|||
camera->unk_94 = arg1;
|
||||
}
|
||||
|
||||
void func_8001CA78(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *arg4, f32 *arg5, s16 huh, s8 wut) {
|
||||
void func_8001CA78(UNUSED Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *arg4, f32 *arg5, UNUSED s32 huh, UNUSED s32 wut) {
|
||||
Mat3 sp74;
|
||||
Vec3f sp68;
|
||||
Vec3f sp5C;
|
||||
|
|
@ -243,7 +243,7 @@ void func_8001CA78(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a
|
|||
f32 var_f14;
|
||||
f32 temp_f18;
|
||||
f32 temp_f16;
|
||||
s32 stackPadding0;
|
||||
UNUSED s32 pad;
|
||||
struct TrackWayPoint *temp_s2;
|
||||
|
||||
temp_s2 = &D_80164550[0][gWaypointCountByPathIndex[0] - 10];
|
||||
|
|
@ -497,10 +497,7 @@ void func_8001D53C(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a
|
|||
f32 stackPadding0;
|
||||
f32 stackPadding1;
|
||||
f32 stackPadding2;
|
||||
f32 stackPadding3;
|
||||
f32 stackPadding4;
|
||||
f32 stackPadding5;
|
||||
f32 stackPadding6;
|
||||
UNUSED f32 pad[4];
|
||||
f32 thing;
|
||||
|
||||
if (((u16) player->unk_222 == 0) && (camera->unk_A0 == 0.0f)) {
|
||||
|
|
@ -547,7 +544,7 @@ void func_8001D794(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a
|
|||
Mat3 sp6C;
|
||||
Vec3f sp60;
|
||||
Vec3f sp54;
|
||||
f32 stackPadding[4];
|
||||
UNUSED f32 stackPadding[4];
|
||||
f32 test1;
|
||||
f32 test2;
|
||||
f32 test3;
|
||||
|
|
@ -768,19 +765,18 @@ GLOBAL_ASM("asm/non_matchings/camera/func_8001D944.s")
|
|||
#endif
|
||||
|
||||
void func_8001E0C4(Camera *camera, Player *player, s8 arg2) {
|
||||
s32 stackPadding0[6];
|
||||
UNUSED s32 pad[6];
|
||||
f32 temp_f12;
|
||||
f32 sp80;
|
||||
f32 temp_f14;
|
||||
s32 stackPadding1;
|
||||
UNUSED s32 pad2;
|
||||
f32 sp74;
|
||||
f32 sp70;
|
||||
f32 sp6C;
|
||||
Vec3f sp60;
|
||||
s16 temp_t7;
|
||||
s16 var_a2;
|
||||
s32 stackPadding2[5];
|
||||
s32 stackPadding3[3];
|
||||
UNUSED s32 pad3[8];
|
||||
s32 test = 3;
|
||||
|
||||
if (player->unk_078 == 0) {
|
||||
|
|
@ -930,17 +926,17 @@ GLOBAL_ASM("asm/non_matchings/camera/func_8001E45C.s")
|
|||
#endif
|
||||
|
||||
void func_8001E8E8(Camera *camera, Player *player, s8 arg2) {
|
||||
f32 stackPadding0[6];
|
||||
UNUSED f32 pad[6];
|
||||
f32 temp_f12;
|
||||
f32 sp88;
|
||||
f32 temp_f14;
|
||||
f32 stackPadding1;
|
||||
UNUSED f32 pad2;
|
||||
f32 sp7C;
|
||||
f32 sp78;
|
||||
f32 sp74;
|
||||
Vec3f stackPadding2;
|
||||
UNUSED Vec3f pad3;
|
||||
Vec3f sp5C;
|
||||
f32 stackPadding3[10];
|
||||
UNUSED f32 pad4[10];
|
||||
|
||||
camera->unk_B0 = 0;
|
||||
camera->unk_2C = player->unk_02C[1];
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ typedef CameraEvent CutsceneShot;
|
|||
|
||||
void func_8001CA10(Camera*);
|
||||
void func_8001CA24(Player*, f32);
|
||||
void func_8001CA78(Player*, Camera*, Vec3f, f32*, f32*, f32*, s16, s8);
|
||||
void func_8001CA78(Player*, Camera*, Vec3f, f32*, f32*, f32*, s32, s32);
|
||||
void func_8001D53C(Player*, Camera*, Vec3f, f32*, f32*, f32*, s16, s16);
|
||||
void func_8001D794(Player*, Camera*, Vec3f, f32*, f32*, f32*, s16);
|
||||
void func_8001E0C4(Camera*, Player*, s8);
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@
|
|||
#include "camera.h"
|
||||
#include "audio/external.h"
|
||||
#include <sounds.h>
|
||||
#include "code_80280650.h"
|
||||
#include "code_80091750.h"
|
||||
|
||||
extern f32 D_80150130[];
|
||||
|
||||
|
|
@ -203,7 +205,7 @@ void reset_spline(void) {
|
|||
D_80287B20 = 0;
|
||||
}
|
||||
|
||||
void func_80282434(struct CinematicCamera *arg0) {
|
||||
void func_80282434(UNUSED struct CinematicCamera *arg0) {
|
||||
reset_spline();
|
||||
}
|
||||
|
||||
|
|
@ -244,7 +246,7 @@ UNUSED void func_802825C8(Vec3f arg0, Vec3f arg1, Vec3f arg2, Vec3s arg3) {
|
|||
void func_80282700(f32 arg0, Vec3f arg1, f32 *arg2, f32 arg3[], f32 arg4[], f32 arg5[], f32 arg6[])
|
||||
{
|
||||
f32 B[4];
|
||||
f32 a = arg0;
|
||||
|
||||
if (arg0 > 1.0f)
|
||||
{
|
||||
arg0 = 1.0f;
|
||||
|
|
@ -373,20 +375,20 @@ dummy_label_888430: ;
|
|||
s32 func_80282D90(struct CinematicCamera *camera, struct struct_80286A04 *arg1, struct struct_80286A04 *arg2, s32 arg3) {
|
||||
s32 res;
|
||||
|
||||
cutscene_event(func_80282434, camera, 0, 0);
|
||||
func_80282C40(&D_80287818, arg1, arg3);
|
||||
func_80282C40(&D_80287998, arg2, arg3);
|
||||
cutscene_event((CameraEvent)func_80282434, camera, 0, 0);
|
||||
func_80282C40(D_80287818, (struct struct_80282C40 *) arg1, arg3);
|
||||
func_80282C40(D_80287998, (struct struct_80282C40 *) arg2, arg3);
|
||||
|
||||
if (0) {}; // debug stub?
|
||||
|
||||
res = move_point_along_spline(camera->lookAt, &camera->unk18, &D_80287818, &sCutsceneSplineSegment, &sCutsceneSplineSegmentProgress) |
|
||||
move_point_along_spline(camera->pos, &camera->unk18, &D_80287998, &sCutsceneSplineSegment, &sCutsceneSplineSegmentProgress);
|
||||
res = move_point_along_spline(camera->lookAt, &camera->unk18, D_80287818, &sCutsceneSplineSegment, &sCutsceneSplineSegmentProgress) |
|
||||
move_point_along_spline(camera->pos, &camera->unk18, D_80287998, &sCutsceneSplineSegment, &sCutsceneSplineSegmentProgress);
|
||||
return res;
|
||||
}
|
||||
|
||||
void func_80282E58(struct CinematicCamera *camera, struct struct_80282C40 *arg1, s32 arg2) {
|
||||
func_80282C40(&D_80287818, arg1, arg2);
|
||||
move_point_along_spline(camera->lookAt, &camera->unk18, &D_80287818, &sCutsceneSplineSegment, &sCutsceneSplineSegmentProgress);
|
||||
func_80282C40(D_80287818, arg1, arg2);
|
||||
move_point_along_spline(camera->lookAt, &camera->unk18, D_80287818, &sCutsceneSplineSegment, &sCutsceneSplineSegmentProgress);
|
||||
}
|
||||
|
||||
void func_80282EAC(s32 arg0, struct CinematicCamera *arg1, s16 arg2, s16 arg3, s16 arg4)
|
||||
|
|
@ -412,7 +414,7 @@ void func_80282F00(s16 *arg0, s16 arg1) {
|
|||
|
||||
void func_80282F44(s32 arg0, struct CinematicCamera *arg1, Camera *camera) {
|
||||
f32 sp5C;
|
||||
s32 pad[2];
|
||||
UNUSED s32 pad[2];
|
||||
s16 sp50[2];
|
||||
Vec3f pos;
|
||||
Vec3f lookat;
|
||||
|
|
@ -471,7 +473,7 @@ void func_80283240(s16 arg0) {
|
|||
s32 cutscene_event(CameraEvent event, struct CinematicCamera *camera, s16 start, s16 end) {
|
||||
if (gCutsceneShotTimer >= start) {
|
||||
if ((end == -1) || (end >= gCutsceneShotTimer)) {
|
||||
event(camera);
|
||||
event((Camera *)camera);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
|
@ -632,66 +634,66 @@ s32 func_80283648(Camera *camera) {
|
|||
return D_802876D8;
|
||||
}
|
||||
|
||||
void func_80283968(struct CinematicCamera *camera) {
|
||||
void func_80283968(UNUSED struct CinematicCamera *camera) {
|
||||
func_8028100C(-0xC6C, 0xD2, -0x1EF);
|
||||
}
|
||||
|
||||
void func_80283994(struct CinematicCamera *camera) {
|
||||
void func_80283994(UNUSED struct CinematicCamera *camera) {
|
||||
func_80280FFC();
|
||||
}
|
||||
|
||||
void func_802839B4(struct CinematicCamera *camera) {
|
||||
void func_802839B4(UNUSED struct CinematicCamera *camera) {
|
||||
D_802856B8 = 52.0f;
|
||||
}
|
||||
|
||||
void func_802839CC(struct CinematicCamera *camera) {
|
||||
void func_802839CC(UNUSED struct CinematicCamera *camera) {
|
||||
D_802856B8 = 0.0f;
|
||||
}
|
||||
|
||||
void func_802839E0(struct CinematicCamera *camera) {
|
||||
void func_802839E0(UNUSED struct CinematicCamera *camera) {
|
||||
func_80092C80();
|
||||
}
|
||||
|
||||
/**
|
||||
* Played at beginning of credits.
|
||||
*/
|
||||
void play_sound_welcome(struct CinematicCamera *camera) {
|
||||
void play_sound_welcome(UNUSED struct CinematicCamera *camera) {
|
||||
if (D_800DC5E4 == 0) {
|
||||
play_sound2(SOUND_INTRO_WELCOME);
|
||||
}
|
||||
}
|
||||
|
||||
void func_80283A34(struct CinematicCamera *camera) {
|
||||
void func_80283A34(UNUSED struct CinematicCamera *camera) {
|
||||
func_800CA0CC();
|
||||
}
|
||||
|
||||
/**
|
||||
* Played after receiving trophy.
|
||||
*/
|
||||
void play_sound_congratulation(struct CinematicCamera *camera) {
|
||||
void play_sound_congratulation(UNUSED struct CinematicCamera *camera) {
|
||||
play_sound2(SOUND_CEREMONY_CONGRATULATION);
|
||||
}
|
||||
|
||||
/**
|
||||
* Played in ceremony opening with ballons.
|
||||
*/
|
||||
void play_sound_balloon_pop(struct CinematicCamera *camera) {
|
||||
void play_sound_balloon_pop(UNUSED struct CinematicCamera *camera) {
|
||||
play_sound2(SOUND_CEREMONY_BALLOON_POP);
|
||||
}
|
||||
|
||||
void play_sound_fish(struct CinematicCamera *camera) {
|
||||
void play_sound_fish(UNUSED struct CinematicCamera *camera) {
|
||||
play_sound2(SOUND_CEREMONY_FISH);
|
||||
}
|
||||
|
||||
void play_sound_fish_2(struct CinematicCamera *camera) {
|
||||
void play_sound_fish_2(UNUSED struct CinematicCamera *camera) {
|
||||
play_sound2(SOUND_CEREMONY_FISH_2);
|
||||
}
|
||||
|
||||
void play_sound_shoot_trophy(struct CinematicCamera *camera) {
|
||||
void play_sound_shoot_trophy(UNUSED struct CinematicCamera *camera) {
|
||||
play_sound2(SOUND_CEREMONY_SHOOT_TROPHY);
|
||||
}
|
||||
|
||||
void play_sound_podium(struct CinematicCamera *camera) {
|
||||
void play_sound_podium(UNUSED struct CinematicCamera *camera) {
|
||||
play_sound2(SOUND_CEREMONY_PODIUM);
|
||||
}
|
||||
|
||||
|
|
@ -699,50 +701,50 @@ void play_sound_podium(struct CinematicCamera *camera) {
|
|||
* Played in background nearly the entire ceremony
|
||||
* Begins again or plays louder once the trophy appears.
|
||||
*/
|
||||
void play_sound_trophy(struct CinematicCamera *camera) {
|
||||
void play_sound_trophy(UNUSED struct CinematicCamera *camera) {
|
||||
play_sound2(SOUND_CEREMONY_TROPHY);
|
||||
}
|
||||
|
||||
void func_80283B6C(struct CinematicCamera *camera) {
|
||||
void func_80283B6C(UNUSED struct CinematicCamera *camera) {
|
||||
func_800CA0B8();
|
||||
func_800C9060(0, SOUND_ACTION_EXPLOSION);
|
||||
func_800CA0A0();
|
||||
}
|
||||
|
||||
void func_80283BA4(struct CinematicCamera *camera) {
|
||||
void func_80283BA4(UNUSED struct CinematicCamera *camera) {
|
||||
func_800CA0B8();
|
||||
func_800C90F4(0, (gPlayerFour->characterId * 0x10) + 0x29008004);
|
||||
func_800CA0A0();
|
||||
}
|
||||
|
||||
void func_80283BF0(struct CinematicCamera *camera) {
|
||||
void func_80283BF0(UNUSED struct CinematicCamera *camera) {
|
||||
func_800C8EF8(0x1A);
|
||||
}
|
||||
|
||||
//
|
||||
void func_80283C14(struct CinematicCamera *camera) {
|
||||
void func_80283C14(UNUSED struct CinematicCamera *camera) {
|
||||
func_800C8EF8(0x1B);
|
||||
}
|
||||
|
||||
void func_80283C38(struct CinematicCamera *camera) {
|
||||
void func_80283C38(UNUSED struct CinematicCamera *camera) {
|
||||
func_800CB134();
|
||||
}
|
||||
|
||||
void func_80283C58(struct CinematicCamera *camera) {
|
||||
void func_80283C58(UNUSED struct CinematicCamera *camera) {
|
||||
func_800CB14C();
|
||||
}
|
||||
|
||||
void func_80283C78(struct CinematicCamera *arg0) {
|
||||
void func_80283C78(UNUSED struct CinematicCamera *arg0) {
|
||||
if (D_800DC5E4 == 0) {
|
||||
func_800C8EF8(0x1C);
|
||||
}
|
||||
}
|
||||
|
||||
void func_80283CA8(struct CinematicCamera *camera) {
|
||||
void func_80283CA8(UNUSED struct CinematicCamera *camera) {
|
||||
func_800CA008(0, 3);
|
||||
}
|
||||
|
||||
void func_80283CD0(struct CinematicCamera *camera) {
|
||||
void func_80283CD0(UNUSED struct CinematicCamera *camera) {
|
||||
if (D_800DC5E4 == 0) {
|
||||
func_800CA008(0, 2);
|
||||
}
|
||||
|
|
@ -752,11 +754,10 @@ void func_80283CD0(struct CinematicCamera *camera) {
|
|||
* End of credits farewell.
|
||||
* "Hey, you're very good. See you next time!"
|
||||
*/
|
||||
void play_sound_farewell(struct CinematicCamera *arg0) {
|
||||
void play_sound_farewell(UNUSED struct CinematicCamera *arg0) {
|
||||
play_sound2(SOUND_CREDITS_FAREWELL);
|
||||
}
|
||||
|
||||
|
||||
// Camera rail spline animation
|
||||
struct struct_80282C40 D_802856DC[] = {
|
||||
// go to
|
||||
|
|
@ -874,23 +875,23 @@ struct struct_80282C40 D_80285940[] = {
|
|||
|
||||
void func_80283D2C(struct CinematicCamera *camera) {
|
||||
D_802856B8 = 120.0f;
|
||||
cutscene_event(&func_80283CA8, camera, 0, 0);
|
||||
cutscene_event(&func_80283A34, camera, 1, 1);
|
||||
cutscene_event(&func_80283BF0, camera, 0, 0);
|
||||
cutscene_event(&play_sound_balloon_pop, camera, 45, 45);
|
||||
cutscene_event(&play_sound_balloon_pop, camera, 65, 65);
|
||||
cutscene_event(&play_sound_balloon_pop, camera, 70, 70);
|
||||
cutscene_event(&play_sound_balloon_pop, camera, 94, 94);
|
||||
cutscene_event(&play_sound_balloon_pop, camera, 110, 110);
|
||||
cutscene_event(&play_sound_balloon_pop, camera, 130, 130);
|
||||
cutscene_event(&play_sound_balloon_pop, camera, 152, 152);
|
||||
cutscene_event(&play_sound_balloon_pop, camera, 160, 160);
|
||||
cutscene_event(&func_80283994, camera, D_80285D10[0].duration - 60, D_80285D10[0].duration - 60);
|
||||
func_80282D90(camera, &D_802856DC, &D_80285718, 0);
|
||||
cutscene_event((CameraEvent)&func_80283CA8, camera, 0, 0);
|
||||
cutscene_event((CameraEvent)&func_80283A34, camera, 1, 1);
|
||||
cutscene_event((CameraEvent)&func_80283BF0, camera, 0, 0);
|
||||
cutscene_event((CameraEvent)&play_sound_balloon_pop, camera, 45, 45);
|
||||
cutscene_event((CameraEvent)&play_sound_balloon_pop, camera, 65, 65);
|
||||
cutscene_event((CameraEvent)&play_sound_balloon_pop, camera, 70, 70);
|
||||
cutscene_event((CameraEvent)&play_sound_balloon_pop, camera, 94, 94);
|
||||
cutscene_event((CameraEvent)&play_sound_balloon_pop, camera, 110, 110);
|
||||
cutscene_event((CameraEvent)&play_sound_balloon_pop, camera, 130, 130);
|
||||
cutscene_event((CameraEvent)&play_sound_balloon_pop, camera, 152, 152);
|
||||
cutscene_event((CameraEvent)&play_sound_balloon_pop, camera, 160, 160);
|
||||
cutscene_event((CameraEvent)&func_80283994, camera, D_80285D10[0].duration - 60, D_80285D10[0].duration - 60);
|
||||
func_80282D90(camera, (struct struct_80286A04 *) D_802856DC, (struct struct_80286A04 *) D_80285718, 0);
|
||||
}
|
||||
|
||||
void func_80283EA0(struct CinematicCamera *camera) {
|
||||
func_80282D90(camera, &D_80285754, &D_80285784, 0);
|
||||
func_80282D90(camera, (struct struct_80286A04 *) D_80285754, (struct struct_80286A04 *) D_80285784, 0);
|
||||
}
|
||||
|
||||
void func_80283ED0(struct CinematicCamera *camera) {
|
||||
|
|
@ -904,9 +905,9 @@ void func_80283EF8(struct CinematicCamera *camera) {
|
|||
}
|
||||
|
||||
void func_80283F6C(struct CinematicCamera *camera) {
|
||||
cutscene_event(&func_80283ED0, camera, 0, 0);
|
||||
cutscene_event(&func_80283EF8, camera, 0, -1);
|
||||
func_80282E58(camera, &D_802857B4, 0);
|
||||
cutscene_event((CameraEvent)&func_80283ED0, camera, 0, 0);
|
||||
cutscene_event((CameraEvent)&func_80283EF8, camera, 0, -1);
|
||||
func_80282E58(camera, (struct struct_80282C40 *)D_802857B4, 0);
|
||||
}
|
||||
|
||||
void func_80283FCC(struct CinematicCamera *camera) {
|
||||
|
|
@ -920,13 +921,13 @@ void func_80283FF4(struct CinematicCamera *camera) {
|
|||
}
|
||||
|
||||
void func_80284068(struct CinematicCamera *camera) {
|
||||
cutscene_event(&func_80283FCC, camera, 0, 0);
|
||||
cutscene_event(&func_80283FF4, camera, 0, -1);
|
||||
func_80282E58(camera, &D_802857CC, 0);
|
||||
cutscene_event((CameraEvent) &func_80283FCC, camera, 0, 0);
|
||||
cutscene_event((CameraEvent) &func_80283FF4, camera, 0, -1);
|
||||
func_80282E58(camera, (struct struct_80282C40 *) D_802857CC, 0);
|
||||
}
|
||||
|
||||
void func_802840C8(struct CinematicCamera *camera) {
|
||||
cutscene_event(&func_80283C14, camera, 5, 5);
|
||||
cutscene_event((CameraEvent) &func_80283C14, camera, 5, 5);
|
||||
|
||||
switch(D_802876D8) {
|
||||
case 2:
|
||||
|
|
@ -942,7 +943,7 @@ void func_802840C8(struct CinematicCamera *camera) {
|
|||
}
|
||||
|
||||
void func_80284154(struct CinematicCamera *camera) {
|
||||
func_80282D90(camera, &D_80285910, &D_80285928, 0);
|
||||
func_80282D90(camera, (struct struct_80286A04 *) D_80285910, (struct struct_80286A04 *) D_80285928, 0);
|
||||
}
|
||||
|
||||
extern struct_80165C18_entry D_80165C20[];
|
||||
|
|
@ -956,23 +957,23 @@ void func_80284184(struct CinematicCamera *camera)
|
|||
}
|
||||
|
||||
void func_802841E8(struct CinematicCamera *camera) {
|
||||
func_80282E58(camera, &D_80285940, 0);
|
||||
func_80282E58(camera, (struct struct_80282C40 *) D_80285940, 0);
|
||||
vec3f_set_dupe(camera->pos, -3202.0f, 90.0f, -478.0f);
|
||||
}
|
||||
|
||||
void func_8028422C(struct CinematicCamera *camera) {
|
||||
cutscene_event(&play_sound_shoot_trophy, camera, 6, 6);
|
||||
cutscene_event(&play_sound_trophy, camera, 30, 30);
|
||||
cutscene_event(&func_802841E8, camera, 0, 0);
|
||||
cutscene_event(&func_80284184, camera, 6, -1);
|
||||
cutscene_event((CameraEvent)&play_sound_shoot_trophy, camera, 6, 6);
|
||||
cutscene_event((CameraEvent)&play_sound_trophy, camera, 30, 30);
|
||||
cutscene_event((CameraEvent)&func_802841E8, camera, 0, 0);
|
||||
cutscene_event((CameraEvent)&func_80284184, camera, 6, -1);
|
||||
}
|
||||
|
||||
void func_802842A8(struct CinematicCamera *camera) {
|
||||
func_80282D90(camera, &D_802858B0, &D_802858C8, 0);
|
||||
func_80282D90(camera, (struct struct_80286A04 *) D_802858B0, (struct struct_80286A04 *) D_802858C8, 0);
|
||||
}
|
||||
|
||||
void func_802842D8(struct CinematicCamera *camera) {
|
||||
func_80282D90(camera, &D_802857F0, &D_80285850, 0);
|
||||
func_80282D90(camera, (struct struct_80286A04 *) D_802857F0, (struct struct_80286A04 *) D_80285850, 0);
|
||||
}
|
||||
|
||||
void func_80284308(struct CinematicCamera *camera) {
|
||||
|
|
@ -987,8 +988,8 @@ void func_80284308(struct CinematicCamera *camera) {
|
|||
f32 y;
|
||||
f32 z;
|
||||
|
||||
cutscene_event(play_sound_congratulation, camera, 140, 140);
|
||||
func_80282D90(camera, D_802858E0, D_802858F8, 0);
|
||||
cutscene_event((CameraEvent)play_sound_congratulation, camera, 140, 140);
|
||||
func_80282D90(camera, (struct struct_80286A04 *) D_802858E0, (struct struct_80286A04 *) D_802858F8, 0);
|
||||
|
||||
ply = *(sp30[0] + D_802874F5);
|
||||
|
||||
|
|
@ -1126,33 +1127,33 @@ struct Cutscene D_80285D10[] = {
|
|||
};
|
||||
|
||||
void func_80284418(struct CinematicCamera *camera) {
|
||||
cutscene_event(&play_sound_podium, camera, 0x52, 0x52);
|
||||
cutscene_event(&play_sound_podium, camera, 0x48, 0x48);
|
||||
cutscene_event(&play_sound_podium, camera, 0x3D, 0x3D);
|
||||
func_80282D90(camera, &D_80285A10, &D_80285A4C, 0);
|
||||
cutscene_event((CameraEvent)&play_sound_podium, camera, 0x52, 0x52);
|
||||
cutscene_event((CameraEvent)&play_sound_podium, camera, 0x48, 0x48);
|
||||
cutscene_event((CameraEvent)&play_sound_podium, camera, 0x3D, 0x3D);
|
||||
func_80282D90(camera, (struct struct_80286A04 *) D_80285A10, (struct struct_80286A04 *) D_80285A4C, 0);
|
||||
}
|
||||
|
||||
void func_80284494(struct CinematicCamera *camera) {
|
||||
cutscene_event(&play_sound_fish_2, camera, 0x1E, 0x1E);
|
||||
cutscene_event(&func_80283968, camera, 0, 0);
|
||||
func_80282D90(camera, &D_80285A88, &D_80285AB8, 0);
|
||||
cutscene_event((CameraEvent)&play_sound_fish_2, camera, 0x1E, 0x1E);
|
||||
cutscene_event((CameraEvent)&func_80283968, camera, 0, 0);
|
||||
func_80282D90(camera, (struct struct_80286A04 *) D_80285A88, (struct struct_80286A04 *) D_80285AB8, 0);
|
||||
}
|
||||
|
||||
void func_802844FC(struct CinematicCamera *camera) {
|
||||
cutscene_event(&play_sound_fish, camera, 0x3B, 0x3B);
|
||||
func_80282D90(camera, &D_80285AE8, &D_80285B00, 0);
|
||||
cutscene_event((CameraEvent)&play_sound_fish, camera, 0x3B, 0x3B);
|
||||
func_80282D90(camera, (struct struct_80286A04 *) D_80285AE8, (struct struct_80286A04 *) D_80285B00, 0);
|
||||
}
|
||||
|
||||
void func_8028454C(struct CinematicCamera *camera) {
|
||||
cutscene_event(&func_80283CA8, camera, 0, 0);
|
||||
cutscene_event(&func_80283A34, camera, 1, 1);
|
||||
cutscene_event(&func_80283C38, camera, 0, 0);
|
||||
cutscene_event(&func_80283994, camera, 0x3C, 0x3C);
|
||||
func_80282D90(camera, &D_80285B18, &D_80285B54, 0);
|
||||
cutscene_event((CameraEvent)&func_80283CA8, camera, 0, 0);
|
||||
cutscene_event((CameraEvent)&func_80283A34, camera, 1, 1);
|
||||
cutscene_event((CameraEvent)&func_80283C38, camera, 0, 0);
|
||||
cutscene_event((CameraEvent)&func_80283994, camera, 0x3C, 0x3C);
|
||||
func_80282D90(camera, (struct struct_80286A04 *) D_80285B18, (struct struct_80286A04 *) D_80285B54, 0);
|
||||
}
|
||||
|
||||
void func_802845EC(struct CinematicCamera *camera) {
|
||||
func_80282D90(camera, &D_80285B90, &D_80285BA8, 0);
|
||||
func_80282D90(camera, (struct struct_80286A04 *) D_80285B90, (struct struct_80286A04 *) D_80285BA8, 0);
|
||||
}
|
||||
|
||||
void func_8028461C(struct CinematicCamera *camera) {
|
||||
|
|
@ -1161,9 +1162,9 @@ void func_8028461C(struct CinematicCamera *camera) {
|
|||
}
|
||||
|
||||
void func_80284648(struct CinematicCamera *camera) {
|
||||
cutscene_event(&func_802845EC, camera, 0, 0);
|
||||
cutscene_event(&func_8028461C, camera, 0x110, 0x110);
|
||||
cutscene_event(&func_80283BA4, camera, 0x115, 0x115);
|
||||
cutscene_event((CameraEvent)&func_802845EC, camera, 0, 0);
|
||||
cutscene_event((CameraEvent)&func_8028461C, camera, 0x110, 0x110);
|
||||
cutscene_event((CameraEvent)&func_80283BA4, camera, 0x115, 0x115);
|
||||
}
|
||||
|
||||
UNUSED void func_802846AC(void) {
|
||||
|
|
@ -1171,13 +1172,13 @@ UNUSED void func_802846AC(void) {
|
|||
}
|
||||
|
||||
void func_802846B4(struct CinematicCamera *camera) {
|
||||
func_80282D90(camera, &D_80285C38, &D_80285C74, 0);
|
||||
func_80282D90(camera, (struct struct_80286A04 *) D_80285C38, (struct struct_80286A04 *) D_80285C74, 0);
|
||||
}
|
||||
|
||||
// todo: What does this even do?
|
||||
void func_802846E4(struct CinematicCamera *camera) {
|
||||
|
||||
func_80282D90(camera, &D_80285CB0, &D_80285CE0, 0);
|
||||
func_80282D90(camera, (struct struct_80286A04 *) D_80285CB0, (struct struct_80286A04 *) D_80285CE0, 0);
|
||||
camera->lookAt[0] += (gPlayerFour->pos[0] - -2796.0f); // <-- rodata
|
||||
camera->lookAt[1] += (gPlayerFour->pos[1] - -29.0f);
|
||||
camera->lookAt[2] += (gPlayerFour->pos[2] - -97.0f);
|
||||
|
|
@ -1512,26 +1513,26 @@ void func_802847CC(struct CinematicCamera *camera) {
|
|||
sp2E = D_80286A04[D_800DC5E4].unkC - (10 - (-(((u16)(u32) D_802856B4))));
|
||||
sp2C = D_80286A04[D_800DC5E4].unkC;
|
||||
|
||||
cutscene_event(func_80283CD0, camera, 0, 0);
|
||||
cutscene_event(play_sound_welcome, camera, 8, 8);
|
||||
cutscene_event(func_80283C78, camera, 149, 149);
|
||||
cutscene_event(func_80282434, camera, 0, 0);
|
||||
cutscene_event((CameraEvent)func_80283CD0, camera, 0, 0);
|
||||
cutscene_event((CameraEvent)play_sound_welcome, camera, 8, 8);
|
||||
cutscene_event((CameraEvent)func_80283C78, camera, 149, 149);
|
||||
cutscene_event((CameraEvent)func_80282434, camera, 0, 0);
|
||||
switch (D_80286A04[D_800DC5E4].unk0) {
|
||||
case 1:
|
||||
cutscene_event(func_802839CC, camera, 0, -1);
|
||||
cutscene_event(func_802839E0, camera, sp2E - 0x14, sp2E - 0x14);
|
||||
cutscene_event((CameraEvent)func_802839CC, camera, 0, -1);
|
||||
cutscene_event((CameraEvent)func_802839E0, camera, sp2E - 0x14, sp2E - 0x14);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
cutscene_event(func_802839B4, camera, 0, 0);
|
||||
cutscene_event(play_sound_farewell, camera, 247, 247);
|
||||
func_80282D90(camera, D_80286A04[D_800DC5E4].unk4, D_80286A04[D_800DC5E4].unk8, 0);
|
||||
cutscene_event((CameraEvent)func_802839B4, camera, 0, 0);
|
||||
cutscene_event((CameraEvent)play_sound_farewell, camera, 247, 247);
|
||||
func_80282D90(camera, (struct struct_80286A04 *) D_80286A04[D_800DC5E4].unk4, (struct struct_80286A04 *) D_80286A04[D_800DC5E4].unk8, 0);
|
||||
break;
|
||||
default:
|
||||
cutscene_event(func_802839B4, camera, 0, 0);
|
||||
cutscene_event(func_802839CC, camera, sp2E, sp2E);
|
||||
cutscene_event(func_802839E0, camera, sp2E - 0x14, sp2E - 0x14);
|
||||
func_80282D90(camera, D_80286A04[D_800DC5E4].unk4, D_80286A04[D_800DC5E4].unk8, 0);
|
||||
cutscene_event((CameraEvent)func_802839B4, camera, 0, 0);
|
||||
cutscene_event((CameraEvent)func_802839CC, camera, sp2E, sp2E);
|
||||
cutscene_event((CameraEvent)func_802839E0, camera, sp2E - 0x14, sp2E - 0x14);
|
||||
func_80282D90(camera, (struct struct_80286A04 *) D_80286A04[D_800DC5E4].unk4, (struct struct_80286A04 *) D_80286A04[D_800DC5E4].unk8, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1560,7 +1561,7 @@ struct struct_80284AE8 {
|
|||
* Play the current cutscene until either gCutsceneShotTimer reaches the max time, or c->cutscene is set to 0
|
||||
*/
|
||||
void play_cutscene(struct CinematicCamera *camera) {
|
||||
s32 pad[3];
|
||||
UNUSED s32 pad[3];
|
||||
s16 cutsceneDuration;
|
||||
|
||||
#define CUTSCENE(id, cutscene) \
|
||||
|
|
|
|||
|
|
@ -14,6 +14,10 @@
|
|||
#include "code_80057C60.h"
|
||||
#include "framebuffers.h"
|
||||
#include "waypoints.h"
|
||||
#include "code_80027D00.h"
|
||||
#include "hud_renderer.h"
|
||||
|
||||
void func_80020BF4(void);
|
||||
|
||||
s8 D_800DDB50[] = {
|
||||
0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02
|
||||
|
|
@ -40,10 +44,10 @@ void func_8001F980(s32 *arg0, s32 *arg1) {
|
|||
}
|
||||
|
||||
void func_8001F9E4(Player *player, Camera *camera, s8 arg2) {
|
||||
s32 pad;
|
||||
UNUSED s32 pad;
|
||||
s32 sp30;
|
||||
s32 sp2C;
|
||||
s32 pad2;
|
||||
UNUSED s32 pad2;
|
||||
|
||||
get_player_index_for_player(player);
|
||||
func_8001F980(&sp30, &sp2C);
|
||||
|
|
@ -60,7 +64,7 @@ void func_8001F9E4(Player *player, Camera *camera, s8 arg2) {
|
|||
}
|
||||
|
||||
u16 func_8001FB0C(Player *player, Camera *camera, f32 arg2, f32 arg3) {
|
||||
f32 pad[6];
|
||||
UNUSED f32 pad[6];
|
||||
f32 sp64;
|
||||
f32 sp60;
|
||||
f32 sp5C;
|
||||
|
|
@ -105,7 +109,7 @@ u16 func_8001FB0C(Player *player, Camera *camera, f32 arg2, f32 arg3) {
|
|||
return ret;
|
||||
}
|
||||
|
||||
u16 func_8001FD78(Player *player, f32 posX, f32 arg2, f32 posZ) {
|
||||
u16 func_8001FD78(Player *player, f32 posX, UNUSED f32 arg2, f32 posZ) {
|
||||
f32 sp64;
|
||||
f32 sp60;
|
||||
f32 sp5c;
|
||||
|
|
@ -289,13 +293,13 @@ void func_80020524(void) {
|
|||
|
||||
func_80027560(D_80164AD0[i], D_80164AB0[i], D_80164AC0[i], D_80164AC0[i], D_801651D0[D_80164AC0[i]][D_80164AB0[i]]);
|
||||
|
||||
mio0decode(&D_802DFB80[D_801651D0[D_80164AC0[i - 1]][D_80164AB0[i - 1]]][D_80164AC0[i - 1]][D_80164AB0[i - 1]],
|
||||
&D_802BFB80[D_801651D0[D_80164AC0[i - 1]][D_80164AB0[i - 1]]][D_80164AC0[i - 1]][D_80164AB0[i - 1]]);
|
||||
mio0decode((u8 *)&D_802DFB80[D_801651D0[D_80164AC0[i - 1]][D_80164AB0[i - 1]]][D_80164AC0[i - 1]][D_80164AB0[i - 1]],
|
||||
(u8 *)&D_802BFB80[D_801651D0[D_80164AC0[i - 1]][D_80164AB0[i - 1]]][D_80164AC0[i - 1]][D_80164AB0[i - 1]]);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
|
||||
}
|
||||
|
||||
mio0decode(&D_802DFB80[D_801651D0[D_80164ABE[D_800DDB58]][D_80164AAE[D_800DDB58]]][D_80164ABE[D_800DDB58]][D_80164AAE[D_800DDB58]],
|
||||
&D_802BFB80[D_801651D0[D_80164ABE[D_800DDB58]][D_80164AAE[D_800DDB58]]][D_80164ABE[D_800DDB58]][D_80164AAE[D_800DDB58]]);
|
||||
mio0decode((u8 *)&D_802DFB80[D_801651D0[D_80164ABE[D_800DDB58]][D_80164AAE[D_800DDB58]]][D_80164ABE[D_800DDB58]][D_80164AAE[D_800DDB58]],
|
||||
(u8 *)&D_802BFB80[D_801651D0[D_80164ABE[D_800DDB58]][D_80164AAE[D_800DDB58]]][D_80164ABE[D_800DDB58]][D_80164AAE[D_800DDB58]]);
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
|
|
@ -309,7 +313,6 @@ extern s16 D_80164AAE;
|
|||
extern s16 D_80164AB0;
|
||||
extern s16 D_80164ABE;
|
||||
extern s16 D_80164AC0;
|
||||
extern Player *D_80164AD0;
|
||||
extern u16 gFramebuffer0;
|
||||
extern u16 gFramebuffer1;
|
||||
extern u16 gFramebuffer2;
|
||||
|
|
@ -516,12 +519,12 @@ void func_80021244(Player *player, s8 arg1, s8 arg2) {
|
|||
}
|
||||
|
||||
void func_800212B4(void) {
|
||||
s32 stackPadding0;
|
||||
char *sp3C[8] = {
|
||||
UNUSED s32 pad;
|
||||
UNUSED char *sp3C[8] = {
|
||||
"S_MARIO", "S_LUIZI", "S_YOSSY", "S_KINOP",
|
||||
"S_DONKY", "S_WARIO", "S_PEACH", "S_KUPPA",
|
||||
};
|
||||
char *sp1C[8] = {
|
||||
UNUSED char *sp1C[8] = {
|
||||
"J_MARIO", "J_LUIZI", "J_YOSSY", "J_KINOP",
|
||||
"J_DONKY", "J_WARIO", "J_PEACH", "J_KUPPA",
|
||||
};
|
||||
|
|
@ -580,108 +583,108 @@ f32 D_800DDBD4[] = {
|
|||
0.75f, 0.75f, 0.75f, 0.75f
|
||||
};
|
||||
|
||||
u8 *gKartMarioWheels0[] = {
|
||||
u8 **gKartMarioWheels0[] = {
|
||||
gKartMario168Wheel0, gKartMario147Wheel0, gKartMario126Wheel0, gKartMario105Wheel0,
|
||||
gKartMario084Wheel0, gKartMario063Wheel0, gKartMario042Wheel0, gKartMario021Wheel0,
|
||||
gKartMario000Wheel0
|
||||
};
|
||||
|
||||
u8 *gKartMarioWheels1[] = {
|
||||
u8 **gKartMarioWheels1[] = {
|
||||
gKartMario269Wheel0, gKartMario269Wheel0, gKartMario249Wheel0, gKartMario229Wheel0,
|
||||
gKartMario229Wheel0, gKartMario229Wheel0, gKartMario209Wheel0, gKartMario189Wheel0,
|
||||
gKartMario189Wheel0
|
||||
};
|
||||
|
||||
u8 *gKartLuigiWheels0[] = {
|
||||
u8 **gKartLuigiWheels0[] = {
|
||||
gKartLuigi168Wheel0, gKartLuigi147Wheel0, gKartLuigi126Wheel0, gKartLuigi105Wheel0,
|
||||
gKartLuigi084Wheel0, gKartLuigi063Wheel0, gKartLuigi042Wheel0, gKartLuigi021Wheel0,
|
||||
gKartLuigi000Wheel0
|
||||
};
|
||||
|
||||
u8 *gKartLuigiWheels1[] = {
|
||||
u8 **gKartLuigiWheels1[] = {
|
||||
gKartLuigi269Wheel0, gKartLuigi269Wheel0, gKartLuigi249Wheel0, gKartLuigi229Wheel0,
|
||||
gKartLuigi229Wheel0, gKartLuigi229Wheel0, gKartLuigi209Wheel0, gKartLuigi189Wheel0,
|
||||
gKartLuigi189Wheel0
|
||||
};
|
||||
|
||||
u8 *gKartBowserWheels0[] = {
|
||||
u8 **gKartBowserWheels0[] = {
|
||||
gKartBowser168Wheel0, gKartBowser147Wheel0, gKartBowser126Wheel0, gKartBowser105Wheel0,
|
||||
gKartBowser084Wheel0, gKartBowser063Wheel0, gKartBowser042Wheel0, gKartBowser021Wheel0,
|
||||
gKartBowser000Wheel0
|
||||
};
|
||||
|
||||
u8 *gKartBowserWheels1[] = {
|
||||
u8 **gKartBowserWheels1[] = {
|
||||
gKartBowser269Wheel0, gKartBowser269Wheel0, gKartBowser249Wheel0, gKartBowser229Wheel0,
|
||||
gKartBowser229Wheel0, gKartBowser229Wheel0, gKartBowser209Wheel0, gKartBowser189Wheel0,
|
||||
gKartBowser189Wheel0
|
||||
};
|
||||
|
||||
u8 *gKartToadWheels0[] = {
|
||||
u8 **gKartToadWheels0[] = {
|
||||
gKartToad168Wheel0, gKartToad147Wheel0, gKartToad126Wheel0, gKartToad105Wheel0,
|
||||
gKartToad084Wheel0, gKartToad063Wheel0, gKartToad042Wheel0, gKartToad021Wheel0,
|
||||
gKartToad000Wheel0
|
||||
};
|
||||
|
||||
u8 *gKartToadWheels1[] = {
|
||||
u8 **gKartToadWheels1[] = {
|
||||
gKartToad269Wheel0, gKartToad269Wheel0, gKartToad249Wheel0, gKartToad229Wheel0,
|
||||
gKartToad229Wheel0, gKartToad229Wheel0, gKartToad209Wheel0, gKartToad189Wheel0,
|
||||
gKartToad189Wheel0
|
||||
};
|
||||
|
||||
u8 *gKartYoshiWheels0[] = {
|
||||
u8 **gKartYoshiWheels0[] = {
|
||||
gKartYoshi168Wheel0, gKartYoshi147Wheel0, gKartYoshi126Wheel0, gKartYoshi105Wheel0,
|
||||
gKartYoshi084Wheel0, gKartYoshi063Wheel0, gKartYoshi042Wheel0, gKartYoshi021Wheel0,
|
||||
gKartYoshi000Wheel0
|
||||
};
|
||||
|
||||
u8 *gKartYoshiWheels1[] = {
|
||||
u8 **gKartYoshiWheels1[] = {
|
||||
gKartYoshi269Wheel0, gKartYoshi269Wheel0, gKartYoshi249Wheel0, gKartYoshi229Wheel0,
|
||||
gKartYoshi229Wheel0, gKartYoshi229Wheel0, gKartYoshi209Wheel0, gKartYoshi189Wheel0,
|
||||
gKartYoshi189Wheel0
|
||||
};
|
||||
|
||||
u8 *gKartDKWheels0[] = {
|
||||
u8 **gKartDKWheels0[] = {
|
||||
gKartDK168Wheel0, gKartDK147Wheel0, gKartDK126Wheel0, gKartDK105Wheel0,
|
||||
gKartDK084Wheel0, gKartDK063Wheel0, gKartDK042Wheel0, gKartDK021Wheel0,
|
||||
gKartDK000Wheel0
|
||||
};
|
||||
|
||||
u8 *gKartDKWheels1[] = {
|
||||
u8 **gKartDKWheels1[] = {
|
||||
gKartDK269Wheel0, gKartDK269Wheel0, gKartDK249Wheel0, gKartDK229Wheel0,
|
||||
gKartDK229Wheel0, gKartDK229Wheel0, gKartDK209Wheel0, gKartDK189Wheel0,
|
||||
gKartDK189Wheel0
|
||||
};
|
||||
|
||||
u8 *gKartPeachWheels0[] = {
|
||||
u8 **gKartPeachWheels0[] = {
|
||||
gKartPeach168Wheel0, gKartPeach147Wheel0, gKartPeach126Wheel0, gKartPeach105Wheel0,
|
||||
gKartPeach084Wheel0, gKartPeach063Wheel0, gKartPeach042Wheel0, gKartPeach021Wheel0,
|
||||
gKartPeach000Wheel0
|
||||
};
|
||||
|
||||
u8 *gKartPeachWheels1[] = {
|
||||
u8 **gKartPeachWheels1[] = {
|
||||
gKartPeach269Wheel0, gKartPeach269Wheel0, gKartPeach249Wheel0, gKartPeach229Wheel0,
|
||||
gKartPeach229Wheel0, gKartPeach229Wheel0, gKartPeach209Wheel0, gKartPeach189Wheel0,
|
||||
gKartPeach189Wheel0
|
||||
};
|
||||
|
||||
u8 *gKartWarioWheels0[] = {
|
||||
u8 **gKartWarioWheels0[] = {
|
||||
gKartWario168Wheel0, gKartWario147Wheel0, gKartWario126Wheel0, gKartWario105Wheel0,
|
||||
gKartWario084Wheel0, gKartWario063Wheel0, gKartWario042Wheel0, gKartWario021Wheel0,
|
||||
gKartWario000Wheel0
|
||||
};
|
||||
|
||||
u8 *gKartWarioWheels1[] = {
|
||||
u8 **gKartWarioWheels1[] = {
|
||||
gKartWario269Wheel0, gKartWario269Wheel0, gKartWario249Wheel0, gKartWario229Wheel0,
|
||||
gKartWario229Wheel0, gKartWario229Wheel0, gKartWario209Wheel0, gKartWario189Wheel0,
|
||||
gKartWario189Wheel0
|
||||
};
|
||||
|
||||
u8 *D_800DDE34[] = {
|
||||
u8 ***D_800DDE34[] = {
|
||||
gKartMarioWheels0, gKartLuigiWheels0, gKartYoshiWheels0, gKartToadWheels0,
|
||||
gKartDKWheels0, gKartWarioWheels0, gKartPeachWheels0, gKartBowserWheels0
|
||||
};
|
||||
|
||||
u8 *D_800DDE54[] = {
|
||||
u8 ***D_800DDE54[] = {
|
||||
gKartMarioWheels1, gKartLuigiWheels1, gKartYoshiWheels1, gKartToadWheels1,
|
||||
gKartDKWheels1, gKartWarioWheels1, gKartPeachWheels1, gKartBowserWheels1
|
||||
};
|
||||
|
|
@ -830,7 +833,7 @@ void func_80021DA8(void) {
|
|||
}
|
||||
|
||||
void func_80021E10(Mat4 arg0, Vec3f arg1, Vec3s arg2) {
|
||||
f32 stackPadding[3];
|
||||
UNUSED f32 pad[3];
|
||||
f32 sin1;
|
||||
f32 cos1;
|
||||
f32 sin2;
|
||||
|
|
@ -1125,7 +1128,7 @@ void func_80022BC4(Player *player, UNUSED s8 arg1) {
|
|||
player->unk_DB6 = temp_v0;
|
||||
}
|
||||
|
||||
void func_80022CA8(Player *player, s8 arg1, s8 arg2, s8 arg3) {
|
||||
void func_80022CA8(Player *player, s8 arg1, UNUSED s8 arg2, s8 arg3) {
|
||||
s16 temp_v0 = player->unk_DA4;
|
||||
|
||||
D_800DDBB4[arg1][arg3 + 0x0].v.ob[1] = 18 - (temp_v0 * 2.3);
|
||||
|
|
@ -1140,7 +1143,7 @@ void func_80022CA8(Player *player, s8 arg1, s8 arg2, s8 arg3) {
|
|||
* Seems to stretch/warp a specific players texture for a
|
||||
* short period of time. Perhaps does not do anything
|
||||
**/
|
||||
void func_80022D60(UNUSED Player *player, s8 arg1, s8 arg2, s8 arg3) {
|
||||
void func_80022D60(UNUSED Player *player, s8 arg1, UNUSED s8 arg2, s8 arg3) {
|
||||
D_800DDBB4[arg1][arg3].v.ob[1] = 21;
|
||||
D_800DDBB4[arg1][arg3 + 0x3].v.ob[1] = 21;
|
||||
}
|
||||
|
|
@ -1170,7 +1173,7 @@ void func_80022DB4(Player *player, UNUSED s8 arg1) {
|
|||
player->unk_DCC = temp_v0;
|
||||
}
|
||||
|
||||
void func_80022E84(Player *player, s8 arg1, s8 arg2, s8 arg3) {
|
||||
void func_80022E84(Player *player, s8 arg1, UNUSED s8 arg2, s8 arg3) {
|
||||
s16 temp_v0 = player->unk_DD2;
|
||||
|
||||
D_800DDBB4[arg1][arg3 + 0x0].v.ob[1] = 18 - temp_v0;
|
||||
|
|
@ -1184,7 +1187,7 @@ void func_80022E84(Player *player, s8 arg1, s8 arg2, s8 arg3) {
|
|||
/**
|
||||
* Sets player shading/colour.
|
||||
*/
|
||||
void func_80022F14(Player *player, s8 arg1, s32 arg2, f32 arg3) {
|
||||
void func_80022F14(UNUSED Player *player, s8 arg1, s32 arg2, f32 arg3) {
|
||||
D_80164B10[arg1] = (s16) ((f32)D_80164B10[arg1] - ((D_80164B10[arg1] - ((arg2 >> 16) & 0xFF)) * arg3));
|
||||
|
||||
D_80164B20[arg1] = (s16) ((f32)D_80164B20[arg1] - ((D_80164B20[arg1] - ((arg2 >> 8) & 0xFF)) * arg3));
|
||||
|
|
@ -1192,7 +1195,7 @@ void func_80022F14(Player *player, s8 arg1, s32 arg2, f32 arg3) {
|
|||
D_80164B30[arg1] = (s16) ((f32)D_80164B30[arg1] - ((D_80164B30[arg1] - (arg2 & 0xFF)) * arg3));
|
||||
}
|
||||
|
||||
void func_80023038(Player *player, s8 arg1, s32 arg2, f32 arg3) {
|
||||
void func_80023038(UNUSED Player *player, s8 arg1, s32 arg2, f32 arg3) {
|
||||
move_u16_towards(&D_80164B40[arg1], (arg2 >> 16) & 0xFF, arg3);
|
||||
move_u16_towards(&D_80164B50[arg1], (arg2 >> 8) & 0xFF, arg3);
|
||||
move_u16_towards(&D_80164B60[arg1], arg2 & 0xFF, arg3);
|
||||
|
|
@ -1202,7 +1205,7 @@ void func_80023038(Player *player, s8 arg1, s32 arg2, f32 arg3) {
|
|||
* Activates in the tunnel to shade the player a bit darker
|
||||
* Sort of an atmospheric effect.
|
||||
*/
|
||||
s32 func_800230E4(s32 arg0, s8 arg1) {
|
||||
s32 func_800230E4(Player *player, s8 arg1) {
|
||||
switch (gCurrentCourseId) {
|
||||
case 8:
|
||||
if (((gNearestWaypointByPlayerId[arg1] >= 0x14F) && (gNearestWaypointByPlayerId[arg1] < 0x158))
|
||||
|
|
@ -1210,8 +1213,8 @@ s32 func_800230E4(s32 arg0, s8 arg1) {
|
|||
|| ((gNearestWaypointByPlayerId[arg1] >= 0x169) && (gNearestWaypointByPlayerId[arg1] < 0x170))
|
||||
|| ((gNearestWaypointByPlayerId[arg1] >= 0x174) && (gNearestWaypointByPlayerId[arg1] < 0x17A))
|
||||
|| ((gNearestWaypointByPlayerId[arg1] >= 0x17E) && (gNearestWaypointByPlayerId[arg1] < 0x184))) {
|
||||
func_80022F14(arg0, arg1, 0x1C0000, 0.3f);
|
||||
func_80023038(arg0, arg1, 0xE0, 0.3f);
|
||||
func_80022F14(player, arg1, 0x1C0000, 0.3f);
|
||||
func_80023038(player, arg1, 0xE0, 0.3f);
|
||||
D_80164B80[arg1] = 0;
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -1393,7 +1396,7 @@ void func_80023BF0(Player *player, s8 arg1, s8 arg2, s8 arg3) {
|
|||
|
||||
void func_80023C84(Player *player, s8 arg1, s8 arg2) {
|
||||
Mat4 sp118;
|
||||
Mat4 pad;
|
||||
UNUSED Mat4 pad;
|
||||
Vec3f spCC;
|
||||
Vec3s spC4;
|
||||
s16 temp_t9;
|
||||
|
|
@ -1401,9 +1404,7 @@ void func_80023C84(Player *player, s8 arg1, s8 arg2) {
|
|||
Vec3f spB4;
|
||||
f32 spB0;
|
||||
f32 spAC;
|
||||
s32 pad2;
|
||||
f32 sp9C;
|
||||
f32 sp38;
|
||||
UNUSED Vec3f pad2;
|
||||
f32 var_f2;
|
||||
|
||||
temp_t9 = (u16)(player->unk_048[arg2] + player->unk_02C[1] + player->unk_0C0) / 128; // << 7) & 0xFFFF;
|
||||
|
|
@ -1467,15 +1468,15 @@ void func_80023C84(Player *player, s8 arg1, s8 arg2) {
|
|||
|
||||
void func_80024374(Player *player, s8 arg1, s8 arg2) {
|
||||
Mat4 sp118;
|
||||
Mat4 pad;
|
||||
UNUSED Mat4 pad;
|
||||
Vec3f spCC;
|
||||
Vec3s spC4;
|
||||
s16 temp_t9;
|
||||
s16 spC0;
|
||||
Vec3f stackPadding0;
|
||||
UNUSED Vec3f pad2;
|
||||
f32 spB0;
|
||||
f32 spAC;
|
||||
Vec3f stackPadding1;
|
||||
UNUSED Vec3f pad3;
|
||||
Vec3f sp94 = { 9.0f, 7.0f, 5.0f };
|
||||
|
||||
temp_t9 = (u16)(player->unk_048[arg2] + player->unk_02C[1] + player->unk_0C0) / 128;
|
||||
|
|
@ -2706,6 +2707,6 @@ UNUSED void func_8002701C(void) {
|
|||
|
||||
}
|
||||
|
||||
UNUSED void func_80027024(s32 arg0, s32 arg1, s32 arg2) {
|
||||
UNUSED void func_80027024(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2) {
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ void func_80022DB4(Player*, s8);
|
|||
void func_80022E84(Player*, s8, s8, s8);
|
||||
void func_80022F14(Player*, s8, s32, f32);
|
||||
void func_80023038(Player*, s8, s32, f32);
|
||||
s32 func_800230E4(s32, s8);
|
||||
s32 func_800230E4(Player*, s8);
|
||||
void func_800231D8(Player*, s8);
|
||||
void func_800235AC(Player*, s8);
|
||||
void func_80023BF0(Player*, s8, s8, s8);
|
||||
|
|
@ -67,7 +67,7 @@ extern s16 D_80164AAE[];
|
|||
extern s16 D_80164AB0[];
|
||||
extern s16 D_80164ABE[];
|
||||
extern s16 D_80164AC0[];
|
||||
extern s32 D_80164AD0[];
|
||||
extern Player *D_80164AD0[];
|
||||
extern u16 D_80164B10[];
|
||||
extern u16 D_80164B20[];
|
||||
extern u16 D_80164B30[];
|
||||
|
|
@ -76,7 +76,7 @@ extern u16 D_80164B50[];
|
|||
extern u16 D_80164B60[];
|
||||
extern s32 D_80164B80[];
|
||||
|
||||
extern u32 D_8018D474;
|
||||
extern u8 *D_8018D474;
|
||||
extern s32 D_8018D930[];
|
||||
|
||||
extern Gfx D_0D008C78[];
|
||||
|
|
@ -104,172 +104,172 @@ extern Vtx D_800E4EC0[];
|
|||
extern Vtx D_800E4FD0[];
|
||||
extern Vtx D_800E50D0[];
|
||||
|
||||
extern u8 *gKartMarioWheels0[];
|
||||
extern u8 *gKartMarioWheels1[];
|
||||
extern u8 *gKartLuigiWheels0[];
|
||||
extern u8 *gKartLuigiWheels1[];
|
||||
extern u8 *gKartBowserWheels0[];
|
||||
extern u8 *gKartBowserWheels1[];
|
||||
extern u8 *gKartToadWheels0[];
|
||||
extern u8 *gKartToadWheels1[];
|
||||
extern u8 *gKartYoshiWheels0[];
|
||||
extern u8 *gKartYoshiWheels1[];
|
||||
extern u8 *gKartDKWheels0[];
|
||||
extern u8 *gKartDKWheels1[];
|
||||
extern u8 *gKartPeachWheels0[];
|
||||
extern u8 *gKartPeachWheels1[];
|
||||
extern u8 *gKartWarioWheels0[];
|
||||
extern u8 *gKartWarioWheels1[];
|
||||
extern u8 **gKartMarioWheels0[];
|
||||
extern u8 **gKartMarioWheels1[];
|
||||
extern u8 **gKartLuigiWheels0[];
|
||||
extern u8 **gKartLuigiWheels1[];
|
||||
extern u8 **gKartBowserWheels0[];
|
||||
extern u8 **gKartBowserWheels1[];
|
||||
extern u8 **gKartToadWheels0[];
|
||||
extern u8 **gKartToadWheels1[];
|
||||
extern u8 **gKartYoshiWheels0[];
|
||||
extern u8 **gKartYoshiWheels1[];
|
||||
extern u8 **gKartDKWheels0[];
|
||||
extern u8 **gKartDKWheels1[];
|
||||
extern u8 **gKartPeachWheels0[];
|
||||
extern u8 **gKartPeachWheels1[];
|
||||
extern u8 **gKartWarioWheels0[];
|
||||
extern u8 **gKartWarioWheels1[];
|
||||
|
||||
|
||||
extern u8 *D_800DDE34[];
|
||||
extern u8 *D_800DDE54[];
|
||||
extern u8 ***D_800DDE34[];
|
||||
extern u8 ***D_800DDE54[];
|
||||
|
||||
|
||||
// These all come the kart data stuff, they should end up in their own inc.c eventually
|
||||
extern u8 gKartMario168Wheel0[];
|
||||
extern u8 gKartMario147Wheel0[];
|
||||
extern u8 gKartMario126Wheel0[];
|
||||
extern u8 gKartMario105Wheel0[];
|
||||
extern u8 gKartMario084Wheel0[];
|
||||
extern u8 gKartMario063Wheel0[];
|
||||
extern u8 gKartMario042Wheel0[];
|
||||
extern u8 gKartMario021Wheel0[];
|
||||
extern u8 gKartMario000Wheel0[];
|
||||
extern u8 gKartMario269Wheel0[];
|
||||
extern u8 gKartMario269Wheel0[];
|
||||
extern u8 gKartMario249Wheel0[];
|
||||
extern u8 gKartMario229Wheel0[];
|
||||
extern u8 gKartMario229Wheel0[];
|
||||
extern u8 gKartMario229Wheel0[];
|
||||
extern u8 gKartMario209Wheel0[];
|
||||
extern u8 gKartMario189Wheel0[];
|
||||
extern u8 gKartMario189Wheel0[];
|
||||
extern u8 gKartLuigi168Wheel0[];
|
||||
extern u8 gKartLuigi147Wheel0[];
|
||||
extern u8 gKartLuigi126Wheel0[];
|
||||
extern u8 gKartLuigi105Wheel0[];
|
||||
extern u8 gKartLuigi084Wheel0[];
|
||||
extern u8 gKartLuigi063Wheel0[];
|
||||
extern u8 gKartLuigi042Wheel0[];
|
||||
extern u8 gKartLuigi021Wheel0[];
|
||||
extern u8 gKartLuigi000Wheel0[];
|
||||
extern u8 gKartLuigi269Wheel0[];
|
||||
extern u8 gKartLuigi269Wheel0[];
|
||||
extern u8 gKartLuigi249Wheel0[];
|
||||
extern u8 gKartLuigi229Wheel0[];
|
||||
extern u8 gKartLuigi229Wheel0[];
|
||||
extern u8 gKartLuigi229Wheel0[];
|
||||
extern u8 gKartLuigi209Wheel0[];
|
||||
extern u8 gKartLuigi189Wheel0[];
|
||||
extern u8 gKartLuigi189Wheel0[];
|
||||
extern u8 gKartBowser168Wheel0[];
|
||||
extern u8 gKartBowser147Wheel0[];
|
||||
extern u8 gKartBowser126Wheel0[];
|
||||
extern u8 gKartBowser105Wheel0[];
|
||||
extern u8 gKartBowser084Wheel0[];
|
||||
extern u8 gKartBowser063Wheel0[];
|
||||
extern u8 gKartBowser042Wheel0[];
|
||||
extern u8 gKartBowser021Wheel0[];
|
||||
extern u8 gKartBowser000Wheel0[];
|
||||
extern u8 gKartBowser269Wheel0[];
|
||||
extern u8 gKartBowser269Wheel0[];
|
||||
extern u8 gKartBowser249Wheel0[];
|
||||
extern u8 gKartBowser229Wheel0[];
|
||||
extern u8 gKartBowser229Wheel0[];
|
||||
extern u8 gKartBowser229Wheel0[];
|
||||
extern u8 gKartBowser209Wheel0[];
|
||||
extern u8 gKartBowser189Wheel0[];
|
||||
extern u8 gKartBowser189Wheel0[];
|
||||
extern u8 gKartToad168Wheel0[];
|
||||
extern u8 gKartToad147Wheel0[];
|
||||
extern u8 gKartToad126Wheel0[];
|
||||
extern u8 gKartToad105Wheel0[];
|
||||
extern u8 gKartToad084Wheel0[];
|
||||
extern u8 gKartToad063Wheel0[];
|
||||
extern u8 gKartToad042Wheel0[];
|
||||
extern u8 gKartToad021Wheel0[];
|
||||
extern u8 gKartToad000Wheel0[];
|
||||
extern u8 gKartToad269Wheel0[];
|
||||
extern u8 gKartToad269Wheel0[];
|
||||
extern u8 gKartToad249Wheel0[];
|
||||
extern u8 gKartToad229Wheel0[];
|
||||
extern u8 gKartToad229Wheel0[];
|
||||
extern u8 gKartToad229Wheel0[];
|
||||
extern u8 gKartToad209Wheel0[];
|
||||
extern u8 gKartToad189Wheel0[];
|
||||
extern u8 gKartToad189Wheel0[];
|
||||
extern u8 gKartYoshi168Wheel0[];
|
||||
extern u8 gKartYoshi147Wheel0[];
|
||||
extern u8 gKartYoshi126Wheel0[];
|
||||
extern u8 gKartYoshi105Wheel0[];
|
||||
extern u8 gKartYoshi084Wheel0[];
|
||||
extern u8 gKartYoshi063Wheel0[];
|
||||
extern u8 gKartYoshi042Wheel0[];
|
||||
extern u8 gKartYoshi021Wheel0[];
|
||||
extern u8 gKartYoshi000Wheel0[];
|
||||
extern u8 gKartYoshi269Wheel0[];
|
||||
extern u8 gKartYoshi269Wheel0[];
|
||||
extern u8 gKartYoshi249Wheel0[];
|
||||
extern u8 gKartYoshi229Wheel0[];
|
||||
extern u8 gKartYoshi229Wheel0[];
|
||||
extern u8 gKartYoshi229Wheel0[];
|
||||
extern u8 gKartYoshi209Wheel0[];
|
||||
extern u8 gKartYoshi189Wheel0[];
|
||||
extern u8 gKartYoshi189Wheel0[];
|
||||
extern u8 gKartDK168Wheel0[];
|
||||
extern u8 gKartDK147Wheel0[];
|
||||
extern u8 gKartDK126Wheel0[];
|
||||
extern u8 gKartDK105Wheel0[];
|
||||
extern u8 gKartDK084Wheel0[];
|
||||
extern u8 gKartDK063Wheel0[];
|
||||
extern u8 gKartDK042Wheel0[];
|
||||
extern u8 gKartDK021Wheel0[];
|
||||
extern u8 gKartDK000Wheel0[];
|
||||
extern u8 gKartDK269Wheel0[];
|
||||
extern u8 gKartDK269Wheel0[];
|
||||
extern u8 gKartDK249Wheel0[];
|
||||
extern u8 gKartDK229Wheel0[];
|
||||
extern u8 gKartDK229Wheel0[];
|
||||
extern u8 gKartDK229Wheel0[];
|
||||
extern u8 gKartDK209Wheel0[];
|
||||
extern u8 gKartDK189Wheel0[];
|
||||
extern u8 gKartDK189Wheel0[];
|
||||
extern u8 gKartPeach168Wheel0[];
|
||||
extern u8 gKartPeach147Wheel0[];
|
||||
extern u8 gKartPeach126Wheel0[];
|
||||
extern u8 gKartPeach105Wheel0[];
|
||||
extern u8 gKartPeach084Wheel0[];
|
||||
extern u8 gKartPeach063Wheel0[];
|
||||
extern u8 gKartPeach042Wheel0[];
|
||||
extern u8 gKartPeach021Wheel0[];
|
||||
extern u8 gKartPeach000Wheel0[];
|
||||
extern u8 gKartPeach269Wheel0[];
|
||||
extern u8 gKartPeach269Wheel0[];
|
||||
extern u8 gKartPeach249Wheel0[];
|
||||
extern u8 gKartPeach229Wheel0[];
|
||||
extern u8 gKartPeach229Wheel0[];
|
||||
extern u8 gKartPeach229Wheel0[];
|
||||
extern u8 gKartPeach209Wheel0[];
|
||||
extern u8 gKartPeach189Wheel0[];
|
||||
extern u8 gKartPeach189Wheel0[];
|
||||
extern u8 gKartWario168Wheel0[];
|
||||
extern u8 gKartWario147Wheel0[];
|
||||
extern u8 gKartWario126Wheel0[];
|
||||
extern u8 gKartWario105Wheel0[];
|
||||
extern u8 gKartWario084Wheel0[];
|
||||
extern u8 gKartWario063Wheel0[];
|
||||
extern u8 gKartWario042Wheel0[];
|
||||
extern u8 gKartWario021Wheel0[];
|
||||
extern u8 gKartWario000Wheel0[];
|
||||
extern u8 gKartWario269Wheel0[];
|
||||
extern u8 gKartWario269Wheel0[];
|
||||
extern u8 gKartWario249Wheel0[];
|
||||
extern u8 gKartWario229Wheel0[];
|
||||
extern u8 gKartWario229Wheel0[];
|
||||
extern u8 gKartWario229Wheel0[];
|
||||
extern u8 gKartWario209Wheel0[];
|
||||
extern u8 gKartWario189Wheel0[];
|
||||
extern u8 gKartWario189Wheel0[];
|
||||
extern u8 *gKartMario168Wheel0[];
|
||||
extern u8 *gKartMario147Wheel0[];
|
||||
extern u8 *gKartMario126Wheel0[];
|
||||
extern u8 *gKartMario105Wheel0[];
|
||||
extern u8 *gKartMario084Wheel0[];
|
||||
extern u8 *gKartMario063Wheel0[];
|
||||
extern u8 *gKartMario042Wheel0[];
|
||||
extern u8 *gKartMario021Wheel0[];
|
||||
extern u8 *gKartMario000Wheel0[];
|
||||
extern u8 *gKartMario269Wheel0[];
|
||||
extern u8 *gKartMario269Wheel0[];
|
||||
extern u8 *gKartMario249Wheel0[];
|
||||
extern u8 *gKartMario229Wheel0[];
|
||||
extern u8 *gKartMario229Wheel0[];
|
||||
extern u8 *gKartMario229Wheel0[];
|
||||
extern u8 *gKartMario209Wheel0[];
|
||||
extern u8 *gKartMario189Wheel0[];
|
||||
extern u8 *gKartMario189Wheel0[];
|
||||
extern u8 *gKartLuigi168Wheel0[];
|
||||
extern u8 *gKartLuigi147Wheel0[];
|
||||
extern u8 *gKartLuigi126Wheel0[];
|
||||
extern u8 *gKartLuigi105Wheel0[];
|
||||
extern u8 *gKartLuigi084Wheel0[];
|
||||
extern u8 *gKartLuigi063Wheel0[];
|
||||
extern u8 *gKartLuigi042Wheel0[];
|
||||
extern u8 *gKartLuigi021Wheel0[];
|
||||
extern u8 *gKartLuigi000Wheel0[];
|
||||
extern u8 *gKartLuigi269Wheel0[];
|
||||
extern u8 *gKartLuigi269Wheel0[];
|
||||
extern u8 *gKartLuigi249Wheel0[];
|
||||
extern u8 *gKartLuigi229Wheel0[];
|
||||
extern u8 *gKartLuigi229Wheel0[];
|
||||
extern u8 *gKartLuigi229Wheel0[];
|
||||
extern u8 *gKartLuigi209Wheel0[];
|
||||
extern u8 *gKartLuigi189Wheel0[];
|
||||
extern u8 *gKartLuigi189Wheel0[];
|
||||
extern u8 *gKartBowser168Wheel0[];
|
||||
extern u8 *gKartBowser147Wheel0[];
|
||||
extern u8 *gKartBowser126Wheel0[];
|
||||
extern u8 *gKartBowser105Wheel0[];
|
||||
extern u8 *gKartBowser084Wheel0[];
|
||||
extern u8 *gKartBowser063Wheel0[];
|
||||
extern u8 *gKartBowser042Wheel0[];
|
||||
extern u8 *gKartBowser021Wheel0[];
|
||||
extern u8 *gKartBowser000Wheel0[];
|
||||
extern u8 *gKartBowser269Wheel0[];
|
||||
extern u8 *gKartBowser269Wheel0[];
|
||||
extern u8 *gKartBowser249Wheel0[];
|
||||
extern u8 *gKartBowser229Wheel0[];
|
||||
extern u8 *gKartBowser229Wheel0[];
|
||||
extern u8 *gKartBowser229Wheel0[];
|
||||
extern u8 *gKartBowser209Wheel0[];
|
||||
extern u8 *gKartBowser189Wheel0[];
|
||||
extern u8 *gKartBowser189Wheel0[];
|
||||
extern u8 *gKartToad168Wheel0[];
|
||||
extern u8 *gKartToad147Wheel0[];
|
||||
extern u8 *gKartToad126Wheel0[];
|
||||
extern u8 *gKartToad105Wheel0[];
|
||||
extern u8 *gKartToad084Wheel0[];
|
||||
extern u8 *gKartToad063Wheel0[];
|
||||
extern u8 *gKartToad042Wheel0[];
|
||||
extern u8 *gKartToad021Wheel0[];
|
||||
extern u8 *gKartToad000Wheel0[];
|
||||
extern u8 *gKartToad269Wheel0[];
|
||||
extern u8 *gKartToad269Wheel0[];
|
||||
extern u8 *gKartToad249Wheel0[];
|
||||
extern u8 *gKartToad229Wheel0[];
|
||||
extern u8 *gKartToad229Wheel0[];
|
||||
extern u8 *gKartToad229Wheel0[];
|
||||
extern u8 *gKartToad209Wheel0[];
|
||||
extern u8 *gKartToad189Wheel0[];
|
||||
extern u8 *gKartToad189Wheel0[];
|
||||
extern u8 *gKartYoshi168Wheel0[];
|
||||
extern u8 *gKartYoshi147Wheel0[];
|
||||
extern u8 *gKartYoshi126Wheel0[];
|
||||
extern u8 *gKartYoshi105Wheel0[];
|
||||
extern u8 *gKartYoshi084Wheel0[];
|
||||
extern u8 *gKartYoshi063Wheel0[];
|
||||
extern u8 *gKartYoshi042Wheel0[];
|
||||
extern u8 *gKartYoshi021Wheel0[];
|
||||
extern u8 *gKartYoshi000Wheel0[];
|
||||
extern u8 *gKartYoshi269Wheel0[];
|
||||
extern u8 *gKartYoshi269Wheel0[];
|
||||
extern u8 *gKartYoshi249Wheel0[];
|
||||
extern u8 *gKartYoshi229Wheel0[];
|
||||
extern u8 *gKartYoshi229Wheel0[];
|
||||
extern u8 *gKartYoshi229Wheel0[];
|
||||
extern u8 *gKartYoshi209Wheel0[];
|
||||
extern u8 *gKartYoshi189Wheel0[];
|
||||
extern u8 *gKartYoshi189Wheel0[];
|
||||
extern u8 *gKartDK168Wheel0[];
|
||||
extern u8 *gKartDK147Wheel0[];
|
||||
extern u8 *gKartDK126Wheel0[];
|
||||
extern u8 *gKartDK105Wheel0[];
|
||||
extern u8 *gKartDK084Wheel0[];
|
||||
extern u8 *gKartDK063Wheel0[];
|
||||
extern u8 *gKartDK042Wheel0[];
|
||||
extern u8 *gKartDK021Wheel0[];
|
||||
extern u8 *gKartDK000Wheel0[];
|
||||
extern u8 *gKartDK269Wheel0[];
|
||||
extern u8 *gKartDK269Wheel0[];
|
||||
extern u8 *gKartDK249Wheel0[];
|
||||
extern u8 *gKartDK229Wheel0[];
|
||||
extern u8 *gKartDK229Wheel0[];
|
||||
extern u8 *gKartDK229Wheel0[];
|
||||
extern u8 *gKartDK209Wheel0[];
|
||||
extern u8 *gKartDK189Wheel0[];
|
||||
extern u8 *gKartDK189Wheel0[];
|
||||
extern u8 *gKartPeach168Wheel0[];
|
||||
extern u8 *gKartPeach147Wheel0[];
|
||||
extern u8 *gKartPeach126Wheel0[];
|
||||
extern u8 *gKartPeach105Wheel0[];
|
||||
extern u8 *gKartPeach084Wheel0[];
|
||||
extern u8 *gKartPeach063Wheel0[];
|
||||
extern u8 *gKartPeach042Wheel0[];
|
||||
extern u8 *gKartPeach021Wheel0[];
|
||||
extern u8 *gKartPeach000Wheel0[];
|
||||
extern u8 *gKartPeach269Wheel0[];
|
||||
extern u8 *gKartPeach269Wheel0[];
|
||||
extern u8 *gKartPeach249Wheel0[];
|
||||
extern u8 *gKartPeach229Wheel0[];
|
||||
extern u8 *gKartPeach229Wheel0[];
|
||||
extern u8 *gKartPeach229Wheel0[];
|
||||
extern u8 *gKartPeach209Wheel0[];
|
||||
extern u8 *gKartPeach189Wheel0[];
|
||||
extern u8 *gKartPeach189Wheel0[];
|
||||
extern u8 *gKartWario168Wheel0[];
|
||||
extern u8 *gKartWario147Wheel0[];
|
||||
extern u8 *gKartWario126Wheel0[];
|
||||
extern u8 *gKartWario105Wheel0[];
|
||||
extern u8 *gKartWario084Wheel0[];
|
||||
extern u8 *gKartWario063Wheel0[];
|
||||
extern u8 *gKartWario042Wheel0[];
|
||||
extern u8 *gKartWario021Wheel0[];
|
||||
extern u8 *gKartWario000Wheel0[];
|
||||
extern u8 *gKartWario269Wheel0[];
|
||||
extern u8 *gKartWario269Wheel0[];
|
||||
extern u8 *gKartWario249Wheel0[];
|
||||
extern u8 *gKartWario229Wheel0[];
|
||||
extern u8 *gKartWario229Wheel0[];
|
||||
extern u8 *gKartWario229Wheel0[];
|
||||
extern u8 *gKartWario209Wheel0[];
|
||||
extern u8 *gKartWario189Wheel0[];
|
||||
extern u8 *gKartWario189Wheel0[];
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
#include "waypoints.h"
|
||||
#include "audio/external.h"
|
||||
|
||||
void func_80028E70(Player*, Camera*, s8, s8);
|
||||
void func_800381AC(Player *, struct Controller*, u8);
|
||||
|
||||
s16 D_800E3810[] = {
|
||||
1, 2, 3, 4, 5, 6, 7, 0
|
||||
};
|
||||
|
|
@ -983,7 +986,7 @@ void func_80028E70(void *arg0, s32 arg1, s8 arg2, s8 arg3) {
|
|||
GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80028E70.s")
|
||||
#endif
|
||||
|
||||
UNUSED void func_80028F5C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
|
||||
UNUSED void func_80028F5C(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2, UNUSED s32 arg3) {
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -1645,7 +1648,7 @@ void func_8002AAC0(Player *player) {
|
|||
}
|
||||
|
||||
void func_8002AB70(Player *player) {
|
||||
f64 pad;
|
||||
UNUSED s32 pad[2];
|
||||
if (((player->unk_0BC & 8) != 8) && (player->unk_08C > 0.0f)) {
|
||||
if (((player->unk_0C4 / 182) < -1) && ((player->unk_0C4 / 182) >= -0x14) && (((player->unk_094 / 18.0f) * 216.0f) >= 20.0f)) {
|
||||
move_f32_towards(&player->kartGravity, 500.0f, 1.0f);
|
||||
|
|
@ -1706,10 +1709,7 @@ UNUSED void func_8002AE30(void) {
|
|||
}
|
||||
|
||||
void func_8002AE38(Player *player, s8 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5) {
|
||||
s32 stackPadding0;
|
||||
s32 stackPadding1;
|
||||
s32 stackPadding3;
|
||||
s32 stackPadding4;
|
||||
UNUSED s32 pad[4];
|
||||
s16 temp_v0_3;
|
||||
f32 sp28;
|
||||
f32 temp_f16;
|
||||
|
|
@ -1806,7 +1806,7 @@ void func_8002B218(Player *player) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_8002B308(Player *player, s8 arg1, s8 arg2) {
|
||||
void func_8002B308(Player *player, s8 arg1, UNUSED s8 arg2) {
|
||||
if ((player->statusEffects & 2) == 2) {
|
||||
func_8008EAE0(player, arg1);
|
||||
}
|
||||
|
|
@ -1863,7 +1863,7 @@ void func_8002B308(Player *player, s8 arg1, s8 arg2) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_8002B5C0(Player *player, s8 arg1, s8 arg2) {
|
||||
void func_8002B5C0(Player *player, UNUSED s8 arg1, UNUSED s8 arg2) {
|
||||
if (((player->unk_0CA & 8) != 0) || ((player->unk_0CA & 2) != 0)) {
|
||||
player->statusEffects &= 0xFE1D0478;
|
||||
}
|
||||
|
|
@ -1960,7 +1960,7 @@ void func_8002B8A4(Player *player_one, Player *player_two) {
|
|||
#ifdef NON_MATCHING
|
||||
// data_0DD0A0_3_0_0.s
|
||||
extern f64 D_800ED7D0;// = 4.2;
|
||||
void func_8002B9CC(Player *player, s8 arg1, s32 arg2) {
|
||||
void func_8002B9CC(Player *player, s8 arg1, UNUSED s32 arg2) {
|
||||
f32 temp_f0;
|
||||
f32 temp_f2;
|
||||
f32 temp_f14;
|
||||
|
|
@ -2000,7 +2000,7 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8002B9CC.s")
|
|||
//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b
|
||||
extern s16 D_800E3C98[10];// = { 0x0000, 0x00b6, 0x016c, 0x0222, 0x02d8, 0x038e, 0x0444, 0x04fa, 0x05b0, 0x0666 };
|
||||
|
||||
void func_8002BB9C(Player *player, f32 *arg1, f32 *arg2, f32 *arg3) {
|
||||
void func_8002BB9C(Player *player, f32 *arg1, f32 *arg2, UNUSED f32 *arg3) {
|
||||
Mat3 sp64;
|
||||
Vec3f sp58;
|
||||
Vec3f sp4C;
|
||||
|
|
@ -5228,7 +5228,7 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80033AE0.s")
|
|||
|
||||
void func_8003680C(Player *player, s16 arg1) {
|
||||
s32 sp304 = 0;
|
||||
f32 stackPadding0[6];
|
||||
UNUSED f32 pad[6];
|
||||
f32 var_f0;
|
||||
s16 var_v0;
|
||||
f32 sp44[168] = {
|
||||
|
|
@ -5349,7 +5349,7 @@ void func_80036CB4(Player *player) {
|
|||
|
||||
void func_80036DB4(Player *player, Vec3f arg1, Vec3f arg2) {
|
||||
s16 thing;
|
||||
s16 stackPadding0;
|
||||
UNUSED s16 pad;
|
||||
f32 sp20;
|
||||
f32 var_f18;
|
||||
s32 temp_t6;
|
||||
|
|
@ -5565,7 +5565,7 @@ void func_80037A4C(Player *player, Vec3f arg1, Vec3f arg2) {
|
|||
}
|
||||
|
||||
void func_80037BB4(Player *player, Vec3f arg1) {
|
||||
s32 stackPadding0[3];
|
||||
UNUSED s32 pad[3];
|
||||
Vec3f sp20;
|
||||
|
||||
if (player->unk_078 == 0) {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
#include <main.h>
|
||||
#include "memory.h"
|
||||
#include <variables.h>
|
||||
#include <config.h>
|
||||
#include <defines.h>
|
||||
|
|
@ -1097,7 +1098,7 @@ void func_8005A070(void) {
|
|||
}
|
||||
}
|
||||
func_8008C204();
|
||||
func_8008C1E0(&D_80165678, &D_801655F0);
|
||||
func_8008C1E0(&D_80165678, (s32)&D_801655F0);
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
|
|
@ -2314,7 +2315,7 @@ block_10:
|
|||
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8005C360.s")
|
||||
#endif
|
||||
|
||||
void func_8005C64C(s32 *arg0) {
|
||||
void func_8005C64C(UNUSED s32 *arg0) {
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -2837,49 +2838,53 @@ loop_2:
|
|||
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8005D1F4.s")
|
||||
#endif
|
||||
|
||||
extern Gfx D_0F05D1E8[];
|
||||
extern Gfx D_0F05D420[];
|
||||
extern Gfx D_0F05D674[];
|
||||
extern Gfx D_0F05DA50[];
|
||||
extern Gfx D_0F05DDFC[];
|
||||
extern Gfx D_0F05DFC0[];
|
||||
extern Gfx D_0F05E19C[];
|
||||
extern Gfx D_0F05E3E0[];
|
||||
extern s32 D_8018D420;
|
||||
extern s32 D_8018D424;
|
||||
extern s32 D_8018D438;
|
||||
extern s32 D_8018D43C;
|
||||
extern s32 D_8018D440;
|
||||
extern s32 D_8018D444;
|
||||
extern s32 D_8018D448;
|
||||
extern s32 D_8018D44C;
|
||||
extern s32 D_8018D450;
|
||||
extern s32 D_8018D454;
|
||||
extern s32 D_8018D458;
|
||||
extern s32 D_8018D45C;
|
||||
extern s32 D_8018D460;
|
||||
extern s32 D_8018D464;
|
||||
extern s32 D_8018D468;
|
||||
extern s32 D_8018D46C;
|
||||
extern s32 D_8018D470;
|
||||
extern s32 D_8018D478;
|
||||
extern s32 D_8018D480;
|
||||
extern s32 D_8018D484;
|
||||
extern s32 D_8018D488;
|
||||
extern s32 D_8018D494;
|
||||
extern s32 D_8018D498;
|
||||
extern s32 D_8018D49C;
|
||||
extern s32 D_8018D4A0;
|
||||
extern s32 D_8018D4A4;
|
||||
extern s32 D_8018D4A8;
|
||||
extern s32 D_8018D4AC;
|
||||
extern s32 D_8018D4B0;
|
||||
extern s32 D_8018D4B4;
|
||||
extern s32 D_8018D4B8;
|
||||
extern s32 D_8018D4BC;
|
||||
extern s32 D_8018D4C0;
|
||||
extern s32 D_8018D4C4;
|
||||
extern s32 D_8018D4C8;
|
||||
|
||||
// todo: Import?
|
||||
// Appears to be balloons
|
||||
extern u8 D_0F05D1E8[]; // unk
|
||||
extern u8 D_0F05D420[]; // unk
|
||||
extern u8 D_0F05D674[]; // unk
|
||||
extern u8 D_0F05DA50[]; // unk
|
||||
extern u8 D_0F05DDFC[]; // unk
|
||||
extern u8 D_0F05DFC0[]; // unk
|
||||
extern u8 D_0F05E19C[]; // balloon top?
|
||||
extern u8 D_0F05E3E0[]; // balloon bottom?
|
||||
|
||||
|
||||
|
||||
extern u8 *D_8018D420;
|
||||
extern u8 *D_8018D424;
|
||||
extern u8 *D_8018D438;
|
||||
extern u8 *D_8018D43C;
|
||||
extern u8 *D_8018D440;
|
||||
extern u8 *D_8018D444;
|
||||
extern u8 *D_8018D448;
|
||||
extern u8 *D_8018D44C;
|
||||
extern u8 *D_8018D450;
|
||||
extern u8 *D_8018D454;
|
||||
extern u8 *D_8018D458;
|
||||
extern u8 *D_8018D45C;
|
||||
extern u8 *D_8018D460;
|
||||
extern u8 *D_8018D464;
|
||||
extern u8 *D_8018D468;
|
||||
extern u8 *D_8018D46C;
|
||||
extern u8 *D_8018D470;
|
||||
extern u8 *D_8018D478;
|
||||
extern u8 *D_8018D488;
|
||||
extern u8 *D_8018D494;
|
||||
extern u8 *D_8018D498;
|
||||
extern u8 *D_8018D49C;
|
||||
extern u8 *D_8018D4A0;
|
||||
extern u8 *D_8018D4A4;
|
||||
extern u8 *D_8018D4A8;
|
||||
extern u8 *D_8018D4AC;
|
||||
extern u8 *D_8018D4B0;
|
||||
extern u8 *D_8018D4B4;
|
||||
extern u8 *D_8018D4B8;
|
||||
extern u8 *D_8018D4BC;
|
||||
extern u8 *D_8018D4C0;
|
||||
extern u8 *D_8018D4C4;
|
||||
extern u8 *D_8018D4C8;
|
||||
extern u8 gTexture69B03C[];
|
||||
extern u8 gTexture69B140[];
|
||||
extern u8 gTexture69B378[];
|
||||
|
|
@ -2910,45 +2915,46 @@ extern u8 gTextureKartShadow[];
|
|||
extern u8 gTextureLightningBolt0[];
|
||||
extern u8 gTextureLightningBolt1[];
|
||||
|
||||
// Appears to load GP Mode race staging balloons and kart shadows.
|
||||
void func_8005D290(void) {
|
||||
D_8018D488 = dma_textures(&gTexture69C80C, 0x400, 0x400);
|
||||
D_8018D474 = dma_textures(&gTextureKartShadow, 0x1000, 0x1000);
|
||||
D_8018D420 = dma_textures(&gTexture69B03C, 0x100, 0x100);
|
||||
D_8018D424 = dma_textures(&gTexture69B140, 0x400, 0x400);
|
||||
D_8018D478 = dma_textures(&gTexture69C1E8, 0x200, 0x200);
|
||||
D_8018D480 = dma_textures(&gTexture69BA28, 0x400, 0x400);
|
||||
D_8018D484 = dma_textures(&gTexture69B960, 0x400, 0x400);
|
||||
D_8018D48C = dma_textures(&gTexture69C354, 0x400, 0x400);
|
||||
D_8018D494 = dma_textures(&gTexture69C4E4, 0x400, 0x400);
|
||||
D_8018D488 = dma_textures(gTexture69C80C, 0x400, 0x400);
|
||||
D_8018D474 = dma_textures(gTextureKartShadow, 0x1000, 0x1000);
|
||||
D_8018D420 = dma_textures(gTexture69B03C, 0x100, 0x100);
|
||||
D_8018D424 = dma_textures(gTexture69B140, 0x400, 0x400);
|
||||
D_8018D478 = dma_textures(gTexture69C1E8, 0x200, 0x200);
|
||||
D_8018D480 = dma_textures(gTexture69BA28, 0x400, 0x400);
|
||||
D_8018D484 = dma_textures(gTexture69B960, 0x400, 0x400);
|
||||
D_8018D48C = dma_textures(gTexture69C354, 0x400, 0x400);
|
||||
D_8018D494 = dma_textures(gTexture69C4E4, 0x400, 0x400);
|
||||
D_8018D490 = D_8018D48C;
|
||||
D_8018D498 = dma_textures(&gTexture69B378, 0x1000, 0x1000);
|
||||
D_8018D4BC = dma_textures(&D_0F05E19C, 0x800, 0x800);
|
||||
D_8018D4C0 = dma_textures(&D_0F05E3E0, 0x800, 0x800);
|
||||
D_8018D49C = dma_textures(&gTexture69C9C4, 0x200, 0x200);
|
||||
D_8018D4A0 = dma_textures(&gTextureBoingExclamation, 0x800, 0x800);
|
||||
D_8018D4A4 = dma_textures(&D_0F05DDFC, 0x800, 0x800);
|
||||
D_8018D4A8 = dma_textures(&D_0F05DFC0, 0x800, 0x800);
|
||||
D_8018D4AC = dma_textures(&D_0F05D674, 0x800, 0x800);
|
||||
D_8018D4B0 = dma_textures(&D_0F05DA50, 0x800, 0x800);
|
||||
D_8018D4B4 = dma_textures(&D_0F05D1E8, 0x800, 0x800);
|
||||
D_8018D4B8 = dma_textures(&D_0F05D420, 0x800, 0x800);
|
||||
D_8018D438 = dma_textures(&gTexture69CB84, 0x800, 0x800);
|
||||
D_8018D43C = dma_textures(&gTexture69CCEC, 0x800, 0x800);
|
||||
D_8018D440 = dma_textures(&gTexture69CEB8, 0x800, 0x800);
|
||||
D_8018D444 = dma_textures(&gTexture69D148, 0x800, 0x800);
|
||||
D_8018D448 = dma_textures(&gTexture69D4E0, 0x800, 0x800);
|
||||
D_8018D44C = dma_textures(&gTexture69D8FC, 0x800, 0x800);
|
||||
D_8018D450 = dma_textures(&gTexture69DCB4, 0x800, 0x800);
|
||||
D_8018D454 = dma_textures(&gTexture69DFA0, 0x800, 0x800);
|
||||
D_8018D458 = dma_textures(&gTexture69E25C, 0x800, 0x800);
|
||||
D_8018D45C = dma_textures(&gTexture69E518, 0x800, 0x800);
|
||||
D_8018D460 = dma_textures(&gTexture69E7A8, 0x800, 0x800);
|
||||
D_8018D464 = dma_textures(&gTexture69EA18, 0x800, 0x800);
|
||||
D_8018D468 = dma_textures(&gTexture69EC54, 0x800, 0x800);
|
||||
D_8018D46C = dma_textures(&gTexture69EE38, 0x800, 0x800);
|
||||
D_8018D470 = dma_textures(&gTexture69EFE0, 0x800, 0x800);
|
||||
D_8018D4C4 = dma_textures(&gTextureLightningBolt0, 0x800, 0x800);
|
||||
D_8018D4C8 = dma_textures(&gTextureLightningBolt1, 0x800, 0x800);
|
||||
D_8018D498 = dma_textures(gTexture69B378, 0x1000, 0x1000);
|
||||
D_8018D4BC = dma_textures(D_0F05E19C, 0x800, 0x800);
|
||||
D_8018D4C0 = dma_textures(D_0F05E3E0, 0x800, 0x800);
|
||||
D_8018D49C = dma_textures(gTexture69C9C4, 0x200, 0x200);
|
||||
D_8018D4A0 = dma_textures(gTextureBoingExclamation, 0x800, 0x800);
|
||||
D_8018D4A4 = dma_textures(D_0F05DDFC, 0x800, 0x800);
|
||||
D_8018D4A8 = dma_textures(D_0F05DFC0, 0x800, 0x800);
|
||||
D_8018D4AC = dma_textures(D_0F05D674, 0x800, 0x800);
|
||||
D_8018D4B0 = dma_textures(D_0F05DA50, 0x800, 0x800);
|
||||
D_8018D4B4 = dma_textures(D_0F05D1E8, 0x800, 0x800);
|
||||
D_8018D4B8 = dma_textures(D_0F05D420, 0x800, 0x800);
|
||||
D_8018D438 = dma_textures(gTexture69CB84, 0x800, 0x800);
|
||||
D_8018D43C = dma_textures(gTexture69CCEC, 0x800, 0x800);
|
||||
D_8018D440 = dma_textures(gTexture69CEB8, 0x800, 0x800);
|
||||
D_8018D444 = dma_textures(gTexture69D148, 0x800, 0x800);
|
||||
D_8018D448 = dma_textures(gTexture69D4E0, 0x800, 0x800);
|
||||
D_8018D44C = dma_textures(gTexture69D8FC, 0x800, 0x800);
|
||||
D_8018D450 = dma_textures(gTexture69DCB4, 0x800, 0x800);
|
||||
D_8018D454 = dma_textures(gTexture69DFA0, 0x800, 0x800);
|
||||
D_8018D458 = dma_textures(gTexture69E25C, 0x800, 0x800);
|
||||
D_8018D45C = dma_textures(gTexture69E518, 0x800, 0x800);
|
||||
D_8018D460 = dma_textures(gTexture69E7A8, 0x800, 0x800);
|
||||
D_8018D464 = dma_textures(gTexture69EA18, 0x800, 0x800);
|
||||
D_8018D468 = dma_textures(gTexture69EC54, 0x800, 0x800);
|
||||
D_8018D46C = dma_textures(gTexture69EE38, 0x800, 0x800);
|
||||
D_8018D470 = dma_textures(gTexture69EFE0, 0x800, 0x800);
|
||||
D_8018D4C4 = dma_textures(gTextureLightningBolt0, 0x800, 0x800);
|
||||
D_8018D4C8 = dma_textures(gTextureLightningBolt1, 0x800, 0x800);
|
||||
}
|
||||
|
||||
void func_8005D6C0(Player* player) {
|
||||
|
|
@ -4082,7 +4088,7 @@ block_19:
|
|||
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80060504.s")
|
||||
#endif
|
||||
|
||||
void func_800608E0(Player *player, s16 arg1, s32 arg2, s8 arg3, s8 arg4) {
|
||||
void func_800608E0(Player *player, s16 arg1, UNUSED s32 arg2, s8 arg3, UNUSED s8 arg4) {
|
||||
f32 var_f0;
|
||||
f32 sp50;
|
||||
f32 sp4C;
|
||||
|
|
@ -4120,9 +4126,9 @@ void func_80060B14(Player *player, s16 arg1, s32 arg2, s8 arg3, s8 arg4) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_80060BCC(Player *player, s16 arg1, s32 arg2, s32 arg3) {
|
||||
void func_80060BCC(Player *player, s16 arg1, s32 arg2, UNUSED s32 arg3) {
|
||||
s32 sp54;
|
||||
s32 stackPadding0;
|
||||
UNUSED s32 pad;
|
||||
s32 sp4C;
|
||||
f32 sp48;
|
||||
f32 sp44;
|
||||
|
|
@ -4207,7 +4213,7 @@ void func_80061224(Player *player, s16 arg1, s32 arg2, s8 arg3, s8 arg4) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_800612F8(Player *player, s32 arg1, s32 arg2, s32 arg3) {
|
||||
void func_800612F8(Player *player, UNUSED s32 arg1, UNUSED s32 arg2, UNUSED s32 arg3) {
|
||||
s32 var_s2;
|
||||
|
||||
for (var_s2 = 0; var_s2 < 10; var_s2++){
|
||||
|
|
@ -4225,7 +4231,7 @@ void func_800612F8(Player *player, s32 arg1, s32 arg2, s32 arg3) {
|
|||
player->unk_046 &= ~0x0008;
|
||||
}
|
||||
|
||||
void func_80061430(Player *player, s32 arg1, s32 arg2, s32 arg3) {
|
||||
void func_80061430(Player *player, UNUSED s32 arg1, UNUSED s32 arg2, UNUSED s32 arg3) {
|
||||
s32 var_s2;
|
||||
|
||||
for (var_s2 = 0; var_s2 < 7; var_s2++){
|
||||
|
|
@ -4277,7 +4283,7 @@ void func_800615AC(Player *player, s16 arg1, s32 arg2, s32 arg3) {
|
|||
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_800615AC.s")
|
||||
#endif
|
||||
|
||||
void func_80061754(Player *player, s16 arg1, s32 arg2, s32 arg3, s32 arg4) {
|
||||
void func_80061754(Player *player, s16 arg1, UNUSED s32 arg2, UNUSED s32 arg3, UNUSED s32 arg4) {
|
||||
s32 sp54;
|
||||
s16 temp_s1;
|
||||
s32 sp4C;
|
||||
|
|
@ -4324,12 +4330,12 @@ void func_8006199C(Player *player, s16 arg1, s32 arg2, s8 arg3, s8 arg4) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_80061A34(Player *player, s16 arg1, s32 arg2, s32 arg3) {
|
||||
void func_80061A34(Player *player, s16 arg1, s32 arg2, UNUSED s32 arg3) {
|
||||
s32 sp54;
|
||||
s32 stackPadding0;
|
||||
UNUSED s32 stackPadding0;
|
||||
s32 sp4C;
|
||||
f32 sp48;
|
||||
s32 stackPadding1;
|
||||
UNUSED s32 stackPadding1;
|
||||
|
||||
sp54 = random_int(0x0168U) - 0xB4;
|
||||
sp4C = random_int(6U);
|
||||
|
|
@ -4384,13 +4390,13 @@ void func_80061D4C(Player *player, s16 arg1, s32 arg2, s32 arg3) {
|
|||
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80061D4C.s")
|
||||
#endif
|
||||
|
||||
void func_80061EF4(Player *player, s16 arg1, s32 arg2, s32 arg3) {
|
||||
s32 stackPadding0;
|
||||
void func_80061EF4(Player *player, s16 arg1, s32 arg2, UNUSED s32 arg3) {
|
||||
UNUSED s32 stackPadding0;
|
||||
s32 var_t0 = 0x000000FF;
|
||||
s32 var_t1;
|
||||
s32 temp_v1;
|
||||
f32 var_f2;
|
||||
s32 stackPadding1;
|
||||
UNUSED s32 stackPadding1;
|
||||
|
||||
if(1) {};
|
||||
temp_v1 = random_int(8U) & 1;
|
||||
|
|
@ -4504,7 +4510,7 @@ void func_80062484(Player* player, UnkPlayerStruct258* arg1, s32 arg2) {
|
|||
arg1->unk_01E = 0;
|
||||
}
|
||||
|
||||
void func_800624D8(Player *player, s32 arg1, s32 arg2, s32 arg3) {
|
||||
void func_800624D8(Player *player, UNUSED s32 arg1, UNUSED s32 arg2, UNUSED s32 arg3) {
|
||||
s32 var_s1;
|
||||
|
||||
switch (player->unk_0F8) {
|
||||
|
|
@ -5009,7 +5015,7 @@ void func_80063D58(Player* player, s16 arg1, UNUSED s8 arg2, UNUSED s8 arg3) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_80063FBC(Player *player, s16 arg1, s32 arg2, s32 arg3) {
|
||||
void func_80063FBC(Player *player, s16 arg1, UNUSED s32 arg2, UNUSED s32 arg3) {
|
||||
f32 sp3C;
|
||||
f32 sp38;
|
||||
f32 sp34;
|
||||
|
|
@ -5081,11 +5087,11 @@ void func_800643A8(Player* player, s16 arg1, UNUSED s8 arg2, UNUSED s8 arg3) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_800644E8(Player *player, s16 arg1, s32 arg2, s32 arg3) {
|
||||
void func_800644E8(Player *player, s16 arg1, UNUSED s32 arg2, UNUSED s32 arg3) {
|
||||
f32 thing2;
|
||||
s32 stackPadding0;
|
||||
UNUSED s32 stackPadding0;
|
||||
s32 thing;
|
||||
s32 stackPadding1;
|
||||
UNUSED s32 stackPadding1;
|
||||
|
||||
if (player->unk_258[30 + arg1].unk_01E >= 9) {
|
||||
player->unk_258[30 + arg1].unk_01E = 9;
|
||||
|
|
@ -5109,11 +5115,11 @@ void func_800644E8(Player *player, s16 arg1, s32 arg2, s32 arg3) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_80064664(Player *player, s16 arg1, s32 arg2, s32 arg3) {
|
||||
void func_80064664(Player *player, s16 arg1, UNUSED s32 arg2, UNUSED s32 arg3) {
|
||||
f32 temp_f4;
|
||||
s32 stackPadding0;
|
||||
UNUSED s32 stackPadding0;
|
||||
s32 temp_v1;
|
||||
s32 stackPadding1;
|
||||
UNUSED s32 stackPadding1;
|
||||
|
||||
temp_v1 = player->unk_258[30 + arg1].unk_01E;
|
||||
temp_f4 = player->unk_258[30 + arg1].unk_024;
|
||||
|
|
@ -5550,7 +5556,7 @@ void func_8006538C(Player *player, s8 arg1, s16 arg2, s8 arg3) {
|
|||
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8006538C.s")
|
||||
#endif
|
||||
|
||||
void func_800658A0(Player *player, s8 arg1, s16 arg2, s8 arg3) {
|
||||
void func_800658A0(Player *player, UNUSED s8 arg1, s16 arg2, s8 arg3) {
|
||||
Vec3f sp54;
|
||||
Vec3s sp4C;
|
||||
s16 red;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
// code_80057C60
|
||||
|
||||
void func_8005C674(s8 arg0, s16 *arg1, s16 *arg2, s16 *arg3);
|
||||
void func_80057C60();
|
||||
void func_80057CE4();
|
||||
void func_80057DD0();
|
||||
|
|
@ -161,9 +162,9 @@ void func_800658A0(Player*, s8, s16, s8);
|
|||
void func_80066998(Player*, s8, s16, s8);
|
||||
|
||||
void func_80067964(Player*, s8, f32, s8, s32);
|
||||
void func_80067D3C(Player*, s8, s32, s32, f32, s32);
|
||||
void func_80067D3C(Player*, s8, u8*, s32, f32, s32);
|
||||
|
||||
void func_8006801C(Player*, s8, s32, s32, f32, s32);
|
||||
void func_8006801C(Player*, s8, u8*, s32, f32, s32);
|
||||
void func_80068310(Player*, s8, f32, s8, s32);
|
||||
void func_80068724(Player*, s8, f32, s8, s32);
|
||||
void func_80068AA4(Player*, s8, f32, s8, s32);
|
||||
|
|
@ -222,7 +223,7 @@ extern u8 gControllerRandom;
|
|||
extern struct Controller *gControllerOne;
|
||||
extern s32 D_8018D214;
|
||||
extern s32 D_8018D2C8[];
|
||||
extern uintptr_t D_8018D48C; // Some kind of pointer to some decoded texture(s)
|
||||
extern u8 *D_8018D48C; // Some kind of pointer to some decoded texture(s)
|
||||
|
||||
extern u16 gPlayerBalloonStatus[8][3]; // D_8018D5F0
|
||||
extern s16 gPlayerBalloonCount[]; // D_8018D8C0
|
||||
|
|
@ -264,7 +265,7 @@ extern s32 D_8018D204;
|
|||
extern s32 D_8018D21C;
|
||||
extern s32 D_8018D2A4;
|
||||
extern s32 D_8018D2BC;
|
||||
extern s32 D_8018D480;
|
||||
extern s32 D_8018D484;
|
||||
extern u8 *D_8018D480;
|
||||
extern u8 *D_8018D484;
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -7,6 +7,17 @@
|
|||
#include "objects.h"
|
||||
#include "common_textures.h"
|
||||
#include <sounds.h>
|
||||
#include <functions.h>
|
||||
#include "audio/external.h"
|
||||
|
||||
void func_8006FA94(void);
|
||||
void func_80071428(void);
|
||||
void func_80071818(void);
|
||||
void func_80071C28(void);
|
||||
void func_80070148(void);
|
||||
void func_8006EB10(void);
|
||||
void func_80071A20(void);
|
||||
|
||||
|
||||
void func_8006E9C0(void) {
|
||||
|
||||
|
|
@ -179,13 +190,15 @@ void func_8006ED60() {
|
|||
D_80183D5C = -1;
|
||||
}
|
||||
|
||||
s32 func_8006ED94(u8 *devAddr, u8 *baseAddress, u32 size, u32 offset)
|
||||
u8 *func_8006ED94(u8 *devAddr, u8 *baseAddress, u32 size, u32 offset)
|
||||
{
|
||||
u8 **tempAddress;
|
||||
u8 *address;
|
||||
address = baseAddress + offset;
|
||||
osInvalDCache(address, (0, size = (~0xF) & (size + 0xF)));
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_other_texturesSegmentRomStart[((u32) devAddr) & 0xFFFFFF], address, size, &gDmaMesgQueue);
|
||||
|
||||
size = ALIGN16(size);
|
||||
osInvalDCache(address, (size));
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, (uintptr_t)&_other_texturesSegmentRomStart[((u32) devAddr) & 0xFFFFFF], address, size, &gDmaMesgQueue);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, 1);
|
||||
tempAddress = &address;
|
||||
mio0decode(*tempAddress, (u8 *) baseAddress);
|
||||
|
|
@ -193,7 +206,7 @@ s32 func_8006ED94(u8 *devAddr, u8 *baseAddress, u32 size, u32 offset)
|
|||
}
|
||||
|
||||
void func_8006EE44(void) {
|
||||
D_8018D1E0 = func_8006ED94(&gTextureLogoMarioKart64, D_8018D9B0, 0x79E1, 0x20000);
|
||||
D_8018D1E0 = func_8006ED94((u8 *)&gTextureLogoMarioKart64, (u8 *) D_8018D9B0, 0x79E1, 0x20000);
|
||||
}
|
||||
|
||||
// Some kind of initalization for the Item Window part of the HUD
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
void func_8006E9C0();
|
||||
void func_8006EA5C();
|
||||
void func_8006ED60();
|
||||
s32 func_8006ED94(u8 *devAddr, u8* baseAddress, u32 size, u32 offset);
|
||||
u8 *func_8006ED94(u8 *devAddr, u8* baseAddress, u32 size, u32 offset);
|
||||
void func_8006EE44();
|
||||
void func_8006EE7C(s32);
|
||||
void func_80070190();
|
||||
|
|
@ -14,14 +14,14 @@ void func_800703E0(s32, s32, u16*);
|
|||
void func_80070714();
|
||||
|
||||
extern s32 gScreenModeSelection;
|
||||
extern s32 gTextureLogoMarioKart64;
|
||||
extern s8 *gTextureLogoMarioKart64;
|
||||
extern s16 D_80165730;
|
||||
extern s16 D_80165740;
|
||||
extern s16 D_80165748;
|
||||
extern s32 D_80183D5C;
|
||||
extern s8 D_8018EDF3;
|
||||
extern s32 D_8018D1E0;
|
||||
extern s32 D_8018D9B0;
|
||||
extern u8 *D_8018D1E0;
|
||||
extern intptr_t D_8018D9B0;
|
||||
|
||||
extern struct_8018CA70_entry D_8018CA70[];
|
||||
// These are all *technically* hardcoded references to spots in D_8018CA70, but there's something weird
|
||||
|
|
|
|||
|
|
@ -16,6 +16,9 @@
|
|||
#include "audio/external.h"
|
||||
#include "sounds.h"
|
||||
#include <actors.h>
|
||||
#include "race_logic.h"
|
||||
#include "code_802AAA70.h"
|
||||
#include "code_8008C1D0.h"
|
||||
|
||||
extern s32 D_8018D1F0;
|
||||
|
||||
|
|
@ -128,7 +131,6 @@ void func_80072100(s32 *arg0) {
|
|||
}
|
||||
|
||||
void func_80072120(s32 *arg0, s32 arg1) {
|
||||
s32 var_s0;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < arg1; i++) {
|
||||
|
|
@ -677,8 +679,8 @@ void func_80073404(s32 arg0, u8 arg1, u8 arg2, Vtx *arg3) {
|
|||
D_80165C18[arg0].unk_054 = 0;
|
||||
}
|
||||
|
||||
void func_80073444(s32 arg0, s32* arg1, s32* arg2, u8 arg3, u16 arg4) {
|
||||
D_80165C18[arg0].unk_068 = arg1;
|
||||
void func_80073444(s32 arg0, u8 *texture, u8* arg2, u8 arg3, u16 arg4) {
|
||||
D_80165C18[arg0].unk_068 = (u32 *)texture;
|
||||
D_80165C18[arg0].unk_06C = arg2;
|
||||
D_80165C18[arg0].unk_0D9 = arg3;
|
||||
D_80165C18[arg0].unk_0DA = arg4;
|
||||
|
|
@ -687,7 +689,7 @@ void func_80073444(s32 arg0, s32* arg1, s32* arg2, u8 arg3, u16 arg4) {
|
|||
D_80165C18[arg0].unk_054 = 0;
|
||||
}
|
||||
|
||||
UNUSED void func_8007348C(s32 arg0, s32* arg1, u8 arg2, u8 arg3, s32 arg4) {
|
||||
UNUSED void func_8007348C(s32 arg0, u32* arg1, u8 arg2, u8 arg3, Vtx *arg4) {
|
||||
D_80165C18[arg0].unk_060 = arg1;
|
||||
D_80165C18[arg0].unk_068 = arg1;
|
||||
D_80165C18[arg0].unk_0D9 = arg2;
|
||||
|
|
@ -731,7 +733,7 @@ UNUSED void func_80073570(s32 arg0) {
|
|||
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80073570.s")
|
||||
#endif
|
||||
|
||||
void func_800735BC(s32 arg0, s32 arg1, f32 arg2) {
|
||||
void func_800735BC(s32 arg0, Gfx *arg1, f32 arg2) {
|
||||
D_80165C18[arg0].unk_054 = 0;
|
||||
D_80165C18[arg0].unk_070 = arg1;
|
||||
D_80165C18[arg0].unk_000 = arg2;
|
||||
|
|
@ -1160,26 +1162,27 @@ void func_80074510(uintptr_t devAddr, void * vaddr, size_t nbytes) {
|
|||
D_8018D224 = 1;
|
||||
}
|
||||
|
||||
void func_80074574(s32 arg0, void *arg1, u16 arg2, u16 arg3) {
|
||||
func_80074510(&_other_texturesSegmentRomStart[SEGMENT_OFFSET(arg0)], arg1, arg2 * arg3);
|
||||
void func_80074574(u8 *arg0, void *arg1, u16 arg2, u16 arg3) {
|
||||
func_80074510((uintptr_t) &_other_texturesSegmentRomStart[SEGMENT_OFFSET(arg0)], arg1, arg2 * arg3);
|
||||
}
|
||||
|
||||
void func_800745C8(s32 arg0, s32 arg1) {
|
||||
// todo: arg1 should likely be a u8 *
|
||||
void func_800745C8(s32 objectIndex, s32 arg1) {
|
||||
s32 phi_a1;
|
||||
|
||||
if ((D_80165C18[arg0].unk_054 & 1) != 0) {
|
||||
if ((D_80165C18[objectIndex].unk_054 & 1) != 0) {
|
||||
phi_a1 = 0;
|
||||
if (D_80165C18[arg0].unk_068 != D_80165C18[arg0].unk_060) {
|
||||
D_80165C18[arg0].unk_060 = D_80165C18[arg0].unk_068;
|
||||
if (D_80165C18[objectIndex].unk_068 != D_80165C18[objectIndex].unk_060) {
|
||||
D_80165C18[objectIndex].unk_060 = D_80165C18[objectIndex].unk_068;
|
||||
}
|
||||
|
||||
D_80165C18[arg0].unk_054 ^= 2;
|
||||
if ((D_80165C18[arg0].unk_054 & 2) != 0) {
|
||||
D_80165C18[objectIndex].unk_054 ^= 2;
|
||||
if ((D_80165C18[objectIndex].unk_054 & 2) != 0) {
|
||||
phi_a1 = 1;
|
||||
}
|
||||
|
||||
D_80165C18[arg0].unk_064 = (D_80165C18[arg0].unk_0D9 * D_80165C18[arg0].unk_0DA * phi_a1) + arg1;
|
||||
func_800744A0(arg0);
|
||||
D_80165C18[objectIndex].unk_064 = (u8 *) (D_80165C18[objectIndex].unk_0D9 * D_80165C18[objectIndex].unk_0DA * phi_a1) + arg1;
|
||||
func_800744A0(objectIndex);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1193,7 +1196,7 @@ void func_8007466C(s32 arg0, s32 arg1) {
|
|||
if ((D_80165C18[arg0].unk_054 & 2) != 0) {
|
||||
phi_a1 = 1;
|
||||
}
|
||||
D_80165C18[arg0].unk_064 = (D_80165C18[arg0].unk_0D9 * D_80165C18[arg0].unk_0DA * phi_a1) + arg1;
|
||||
D_80165C18[arg0].unk_064 = (u8 *) (D_80165C18[arg0].unk_0D9 * D_80165C18[arg0].unk_0DA * phi_a1) + arg1;
|
||||
func_800744A0(arg0);
|
||||
}
|
||||
}
|
||||
|
|
@ -1208,12 +1211,12 @@ void func_80074704(s32 arg0, s32 arg1) {
|
|||
if ((D_80165C18[arg0].unk_054 & 2) != 0) {
|
||||
phi_a1 = 1;
|
||||
}
|
||||
D_80165C18[arg0].unk_064 = (D_80165C18[arg0].unk_0D9 * D_80165C18[arg0].unk_0DA * phi_a1) + arg1;
|
||||
D_80165C18[arg0].unk_064 = (u8 *) (D_80165C18[arg0].unk_0D9 * D_80165C18[arg0].unk_0DA * phi_a1) + arg1;
|
||||
func_800744A0(arg0);
|
||||
}
|
||||
}
|
||||
|
||||
s32 func_80074790(s32 arg0, s32 arg1) {
|
||||
u8 *func_80074790(s32 arg0, u8 *arg1) {
|
||||
s32 phi_a2;
|
||||
|
||||
D_80165C18[arg0].unk_054 ^= 4;
|
||||
|
|
@ -1224,8 +1227,8 @@ s32 func_80074790(s32 arg0, s32 arg1) {
|
|||
return (D_80165C18[arg0].unk_0D9 * D_80165C18[arg0].unk_0DA * phi_a2) + arg1;
|
||||
}
|
||||
|
||||
void func_800747F0(s32 objectIndex, s32 arg1) {
|
||||
s32 sp24;
|
||||
void func_800747F0(s32 objectIndex, u8 *arg1) {
|
||||
u8 *sp24;
|
||||
if (D_80165C18[objectIndex].unk_0D2 != D_80165C18[objectIndex].unk_0D3) {
|
||||
sp24 = D_80165C18[objectIndex].unk_06C + (D_80165C18[objectIndex].unk_0D9 * D_80165C18[objectIndex].unk_0DA * D_80165C18[objectIndex].unk_0D2);
|
||||
func_80074574(sp24, (void *) func_80074790(objectIndex, arg1), D_80165C18[objectIndex].unk_0D9, D_80165C18[objectIndex].unk_0DA);
|
||||
|
|
@ -1234,19 +1237,19 @@ void func_800747F0(s32 objectIndex, s32 arg1) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_80074894(s32 arg0, s32 arg1) {
|
||||
func_800747F0(arg0, arg1);
|
||||
func_800745C8(arg0, arg1);
|
||||
void func_80074894(s32 objectIndex, u8 *arg1) {
|
||||
func_800747F0(objectIndex, arg1);
|
||||
func_800745C8(objectIndex, (s32)arg1);
|
||||
}
|
||||
|
||||
void func_800748C4(s32 arg0, s32 arg1) {
|
||||
func_800747F0(arg0, arg1);
|
||||
func_8007466C(arg0, arg1);
|
||||
void func_800748C4(s32 objectIndex, u8 *arg1) {
|
||||
func_800747F0(objectIndex, arg1);
|
||||
func_8007466C(objectIndex, (s32)arg1);
|
||||
}
|
||||
|
||||
void func_800748F4(s32 arg0, s32 arg1) {
|
||||
func_800747F0(arg0, arg1);
|
||||
func_80074704(arg0, arg1);
|
||||
void func_800748F4(s32 objectIndex, u8 *arg1) {
|
||||
func_800747F0(objectIndex, arg1);
|
||||
func_80074704(objectIndex, (s32)arg1);
|
||||
}
|
||||
|
||||
struct _struct_D_800E6F30_0x3 {
|
||||
|
|
@ -1343,7 +1346,7 @@ void func_80074924(s32 objectIndex) {
|
|||
}
|
||||
temp_a0 = sp2C % 8;
|
||||
temp_v0_2 = &D_800E6F30[temp_a0];
|
||||
temp_v1 = &D_800E6F48[temp_a0];
|
||||
temp_v1 = (struct _struct_D_800E6F48_0x3 *)&D_800E6F48[temp_a0];
|
||||
temp_s0->unk_084[0] = (s16) temp_v0_2->unk0;
|
||||
temp_s0->unk_084[1] = (s16) temp_v0_2->unk1;
|
||||
temp_s0->unk_084[2] = (s16) temp_v0_2->unk2;
|
||||
|
|
@ -1518,8 +1521,7 @@ void func_8007542C(s32 arg0) {
|
|||
|
||||
void func_80075574(s32 objectIndex, Vec3f arg1, f32 arg2) {
|
||||
struct_80165C18_entry *temp_v1;
|
||||
s32 pad0;
|
||||
s32 pad1;
|
||||
UNUSED s32 pad[2];
|
||||
|
||||
func_800723A4(objectIndex, 0);
|
||||
temp_v1 = &D_80165C18[objectIndex];
|
||||
|
|
@ -1853,7 +1855,7 @@ void func_8007601C(s32 arg0) {
|
|||
if ((func_8007223C(arg0, 0x40000) != 0) && (func_80072354(arg0, 1) != 0)) {
|
||||
func_800722A4(arg0, 1);
|
||||
func_80075F98(D_80165C18[arg0].unk_004, (u16) D_80165C18[arg0].unk_0BE[1], 1.0f);
|
||||
func_800C9D80(D_80165C18[arg0].unk_004, &D_80165C18[arg0].unk_038, 0x5102800A);
|
||||
func_800C9D80(D_80165C18[arg0].unk_004, D_80165C18[arg0].unk_038, 0x5102800A);
|
||||
if (D_80165C18[arg0].unk_0A4 > 0) {
|
||||
D_80165C18[arg0].unk_0A4--;
|
||||
D_80165C18[arg0].unk_04C = 0x5A;
|
||||
|
|
@ -2062,7 +2064,7 @@ extern s16 D_800E579C[1]; //[15][3]; /* unable to
|
|||
extern s16 D_800E57F8[1]; //[15][3]; /* unable to generate initializer */
|
||||
|
||||
void func_80076884(s32 arg0) {
|
||||
s32 pad[2];
|
||||
UNUSED s32 pad[2];
|
||||
s32 i;
|
||||
s16 *var_s2;
|
||||
u16 temp_v0;
|
||||
|
|
@ -2199,7 +2201,7 @@ void func_80076C9C(s32 objectIndex, Vec3f arg1, s16 arg2) {
|
|||
func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f);
|
||||
}
|
||||
|
||||
void func_80076D70(Vec3f arg0, f32 arg1, s16 arg2) {
|
||||
void func_80076D70(Vec3f arg0, UNUSED f32 arg1, s16 arg2) {
|
||||
s32 temp_v0;
|
||||
|
||||
temp_v0 = func_80072044(D_8018C870, &D_80183E6C, 0x00000040);
|
||||
|
|
@ -2268,7 +2270,7 @@ void func_80076FEC(s32 objectIndex, s32 flameIndex) {
|
|||
D_80165C18[objectIndex].unk_0D5 = 0xB;
|
||||
D_80165C18[objectIndex].unk_064 = D_0D02BC58;
|
||||
D_80165C18[objectIndex].unk_06C = D_0D02BC58;
|
||||
D_80165C18[0, objectIndex].unk_000 = 0.8f;
|
||||
D_80165C18[objectIndex].unk_000 = 0.8f;
|
||||
|
||||
// Mixing arr + offset and array access... Why?
|
||||
// todo: ifdef this to proper array access.
|
||||
|
|
@ -2320,14 +2322,14 @@ void func_80077138(s32 objectIndex, Vec3f arg1, s32 arg2) {
|
|||
}
|
||||
temp_v0_3 = random_int(0x000CU);
|
||||
if (temp_v0_3 < 9) {
|
||||
func_8005C674(temp_v0_3, &sp30[2], &sp30[1], &sp30);
|
||||
func_8005C674(temp_v0_3, &sp30[2], &sp30[1], sp30);
|
||||
D_80165C18[objectIndex].unk_048 = 0;
|
||||
D_80165C18[objectIndex].unk_084[0] = sp30[2];
|
||||
D_80165C18[objectIndex].unk_084[1] = sp30[1];
|
||||
D_80165C18[objectIndex].unk_084[2] = sp30[0];
|
||||
} else {
|
||||
temp_v0_3 = random_int(3U);
|
||||
func_8005C6B4(temp_v0_3, &sp30[2], &sp30[1], &sp30);
|
||||
func_8005C6B4(temp_v0_3, &sp30[2], &sp30[1], sp30);
|
||||
D_80165C18[objectIndex].unk_084[0] = sp30[2];
|
||||
D_80165C18[objectIndex].unk_084[1] = sp30[1];
|
||||
D_80165C18[objectIndex].unk_084[2] = sp30[0];
|
||||
|
|
@ -2341,7 +2343,7 @@ void func_80077138(s32 objectIndex, Vec3f arg1, s32 arg2) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_800773D8(s32 arg0, s32 arg1) {
|
||||
void func_800773D8(f32 *arg0, s32 arg1) {
|
||||
s32 temp_v0 = func_80072044(D_8018C630, &D_80183E5C, 0x80);
|
||||
if (temp_v0 != -1) {
|
||||
func_80077138(temp_v0, arg0, arg1);
|
||||
|
|
@ -2354,7 +2356,7 @@ void func_80077428(s32 arg0) {
|
|||
}
|
||||
|
||||
void func_80077450(s32 objectIndex) {
|
||||
s16 stackPadding0;
|
||||
UNUSED s16 stackPadding0;
|
||||
s16 sp3C;
|
||||
s16 sp3A;
|
||||
s16 sp38;
|
||||
|
|
@ -2420,16 +2422,16 @@ void func_80077640(void) {
|
|||
}
|
||||
|
||||
void func_80077700(s32 objectIndex, Vec3f arg1, s32 arg2) {
|
||||
s32 stackPadding1;
|
||||
u16 stackPadding0;
|
||||
UNUSED s32 stackPadding1;
|
||||
UNUSED u16 stackPadding0;
|
||||
u16 temp_s0;
|
||||
u16 sp3E;
|
||||
u16 sp3C;
|
||||
|
||||
func_800723A4(objectIndex, 0);
|
||||
D_80165C18[objectIndex].unk_0D5 = 7;
|
||||
D_80165C18[objectIndex].unk_060 = (s32 *) D_0D028DD8;
|
||||
D_80165C18[objectIndex].unk_068 = (s32 *) D_0D028DD8;
|
||||
D_80165C18[objectIndex].unk_060 = (u32 *) D_0D028DD8;
|
||||
D_80165C18[objectIndex].unk_068 = (u32 *) D_0D028DD8;
|
||||
D_80165C18[objectIndex].unk_000 = 0.1f;
|
||||
D_80165C18[objectIndex].unk_044 = arg1[1];
|
||||
switch (gCurrentCourseId) {
|
||||
|
|
@ -2471,7 +2473,7 @@ s32 func_80077A54(Vec3f arg0, s32 arg1) {
|
|||
return temp_v0;
|
||||
}
|
||||
|
||||
void func_80077AB0(Vec3f arg0, s32 arg1) {
|
||||
void func_80077AB0(Vec3f arg0, UNUSED s32 arg1) {
|
||||
s32 var_s0;
|
||||
|
||||
for (var_s0 = 0; var_s0 < D_8018C970_SPAWN_SIZE; var_s0++) {
|
||||
|
|
@ -2665,15 +2667,15 @@ void func_800780CC(s32 objectIndex, Camera *camera) {
|
|||
|
||||
extern s32 D_8018D1F0;
|
||||
|
||||
void func_80078170(s32 arg0, s32 arg1) {
|
||||
s32 *phi_s0;
|
||||
void func_80078170(s32 arg0, Camera *arg1) {
|
||||
s32 *objectIndex;
|
||||
s32 i;
|
||||
|
||||
func_80077D5C();
|
||||
func_80077D5C(arg0);
|
||||
for (i = 0; i < D_8018D1F0; i++) {
|
||||
phi_s0 = &D_8018CC80[arg0 + i];
|
||||
if (D_80165C18[*phi_s0].unk_0A6 != 0) {
|
||||
func_800780CC(*phi_s0, arg1);
|
||||
objectIndex = &D_8018CC80[arg0 + i];
|
||||
if (D_80165C18[*objectIndex].unk_0A6 != 0) {
|
||||
func_800780CC(*objectIndex, arg1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2682,9 +2684,9 @@ void func_80078220(s32 objectIndex) {
|
|||
struct_80165C18_entry *temp_v0;
|
||||
|
||||
temp_v0 = &D_80165C18[objectIndex];
|
||||
temp_v0->unk_064 = &D_0D0293D8;
|
||||
temp_v0->unk_06C = (s32) &D_0D0293D8;
|
||||
temp_v0->unk_074 = (s32) &D_0D005770;
|
||||
temp_v0->unk_064 = D_0D0293D8;
|
||||
temp_v0->unk_06C = D_0D0293D8;
|
||||
temp_v0->unk_074 = D_0D005770;
|
||||
temp_v0->unk_000 = 0.15f;
|
||||
func_80086EF0(objectIndex);
|
||||
func_80072488(objectIndex);
|
||||
|
|
@ -2694,7 +2696,7 @@ void func_80078288(s32 objectIndex) {
|
|||
s16 sp3E;
|
||||
s16 sp3C;
|
||||
s16 sp3A;
|
||||
u16 temp_t3;
|
||||
UNUSED u16 pad;
|
||||
u16 temp_t6;
|
||||
|
||||
switch (D_80165C18[objectIndex].unk_0AE) { /* irregular */
|
||||
|
|
@ -2847,15 +2849,24 @@ void func_800789AC(s32 arg0, Camera *arg1, Vec3s *arg2) {
|
|||
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800789AC.s")
|
||||
#endif
|
||||
|
||||
void func_80078A44(s32 arg0, Camera *camera, s32 rot) {
|
||||
typedef struct {
|
||||
Vec3su unk0;
|
||||
u16 pad;
|
||||
Vec3su unkA;
|
||||
u16 pad2;
|
||||
} test;
|
||||
|
||||
typedef u16 testA[44][4];
|
||||
|
||||
void func_80078A44(s32 arg0, Camera *camera, u16 rot[][4]) {
|
||||
s32 temp_s0;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < D_8018D1F0; i++, arg0++) {
|
||||
temp_s0 = D_8018CC80[arg0];
|
||||
|
||||
// i * 8
|
||||
func_800788F8(temp_s0, *(u16 *)((i << 3) + rot), camera);
|
||||
// rot[i][0]
|
||||
func_800788F8(temp_s0, *(u16 *)(rot + i), camera);
|
||||
switch (i % 5U) {
|
||||
case 0:
|
||||
func_80073CB0(temp_s0, &D_80165C18[temp_s0].unk_0A0, 0x00000028, 0x000000B4, 0x000000FF, 0, -1);
|
||||
|
|
@ -2880,14 +2891,14 @@ UNUSED void func_80078C68() {
|
|||
|
||||
}
|
||||
|
||||
extern s32 D_800E6A38; /* unable to generate initializer; const */
|
||||
extern s32 D_800E6AA8; /* unable to generate initializer; const */
|
||||
extern s32 D_800E6B00; /* unable to generate initializer; const */
|
||||
extern s32 D_800E6B38; /* unable to generate initializer; const */
|
||||
extern s32 D_800E6BA8; /* unable to generate initializer; const */
|
||||
extern s32 D_800E6C10; /* unable to generate initializer; const */
|
||||
extern s32 D_800E6C80; /* unable to generate initializer; const */
|
||||
extern s32 D_800E6DE0; /* unable to generate initializer; const */
|
||||
extern u16 D_800E6A38[]; /* unable to generate initializer; const */
|
||||
extern u16 D_800E6AA8[]; /* unable to generate initializer; const */
|
||||
extern u16 D_800E6B00[]; /* unable to generate initializer; const */
|
||||
extern u16 D_800E6B38[]; /* unable to generate initializer; const */
|
||||
extern u16 D_800E6BA8[]; /* unable to generate initializer; const */
|
||||
extern u16 D_800E6C10[]; /* unable to generate initializer; const */
|
||||
extern u16 D_800E6C80[][4]; /* unable to generate initializer; const */
|
||||
extern u16 D_800E6DE0[][4]; /* unable to generate initializer; const */
|
||||
|
||||
extern s16 D_8018D200;
|
||||
extern s32 D_8018D1F0;
|
||||
|
|
@ -2898,7 +2909,7 @@ extern s16 D_8018D218;
|
|||
|
||||
void func_80078C70(s32 arg0) {
|
||||
s32 sp1C;
|
||||
s32 camera;
|
||||
Camera *camera;
|
||||
|
||||
if (D_801657C8 == 0) {
|
||||
switch (arg0) { /* switch 1 */
|
||||
|
|
@ -2934,42 +2945,42 @@ void func_80078C70(s32 arg0) {
|
|||
D_8018D1E8 = 1.7578125 / D_8018D200;
|
||||
D_8018D218 = 0xA0;
|
||||
switch (gCurrentCourseId) { /* switch 2 */
|
||||
case 0: /* switch 2 */
|
||||
func_800789AC(sp1C, camera, &D_800E6A38);
|
||||
break;
|
||||
case 4: /* switch 2 */
|
||||
func_800789AC(sp1C, camera, &D_800E6AA8);
|
||||
break;
|
||||
case 5: /* switch 2 */
|
||||
func_80078170(sp1C, camera);
|
||||
break;
|
||||
case 6: /* switch 2 */
|
||||
func_800789AC(sp1C, camera, &D_800E6B00);
|
||||
break;
|
||||
case 7: /* switch 2 */
|
||||
func_800789AC(sp1C, camera, &D_800E6B38);
|
||||
break;
|
||||
case 8: /* switch 2 */
|
||||
func_800789AC(sp1C, camera, &D_800E6A38);
|
||||
break;
|
||||
case 9: /* switch 2 */
|
||||
func_800789AC(sp1C, camera, &D_800E6AA8);
|
||||
break;
|
||||
case 10: /* switch 2 */
|
||||
func_80078A44(sp1C, camera, &D_800E6C80);
|
||||
break;
|
||||
case 11: /* switch 2 */
|
||||
func_800789AC(sp1C, camera, &D_800E6C10);
|
||||
break;
|
||||
case 12: /* switch 2 */
|
||||
func_800789AC(sp1C, camera, &D_800E6BA8);
|
||||
break;
|
||||
case 13: /* switch 2 */
|
||||
func_80078A44(sp1C, camera, &D_800E6C80);
|
||||
break;
|
||||
case 14: /* switch 2 */
|
||||
func_80078A44(sp1C, camera, &D_800E6DE0);
|
||||
break;
|
||||
case 0: /* switch 2 */
|
||||
func_800789AC(sp1C, camera, D_800E6A38);
|
||||
break;
|
||||
case 4: /* switch 2 */
|
||||
func_800789AC(sp1C, camera, D_800E6AA8);
|
||||
break;
|
||||
case 5: /* switch 2 */
|
||||
func_80078170(sp1C, camera);
|
||||
break;
|
||||
case 6: /* switch 2 */
|
||||
func_800789AC(sp1C, camera, D_800E6B00);
|
||||
break;
|
||||
case 7: /* switch 2 */
|
||||
func_800789AC(sp1C, camera, D_800E6B38);
|
||||
break;
|
||||
case 8: /* switch 2 */
|
||||
func_800789AC(sp1C, camera, D_800E6A38);
|
||||
break;
|
||||
case 9: /* switch 2 */
|
||||
func_800789AC(sp1C, camera, D_800E6AA8);
|
||||
break;
|
||||
case 10: /* switch 2 */
|
||||
func_80078A44(sp1C, camera, D_800E6C80);
|
||||
break;
|
||||
case 11: /* switch 2 */
|
||||
func_800789AC(sp1C, camera, D_800E6C10);
|
||||
break;
|
||||
case 12: /* switch 2 */
|
||||
func_800789AC(sp1C, camera, D_800E6BA8);
|
||||
break;
|
||||
case 13: /* switch 2 */
|
||||
func_80078A44(sp1C, camera, D_800E6C80);
|
||||
break;
|
||||
case 14: /* switch 2 */
|
||||
func_80078A44(sp1C, camera, D_800E6DE0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3012,7 +3023,7 @@ void func_800790E4(s32 arg0) {
|
|||
func_800723A4(D_80183DB8[arg0], 6);
|
||||
}
|
||||
|
||||
extern s32 D_8018C028;
|
||||
extern u8 *D_8018C028;
|
||||
|
||||
void func_80079114(s32 objectIndex, s32 arg1, s32 arg2) {
|
||||
s32 a;
|
||||
|
|
@ -3076,7 +3087,7 @@ void func_800791F0(s32 objectIndex, u8 playerId) {
|
|||
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800791F0.s")
|
||||
#endif
|
||||
|
||||
extern s32 D_0F05EB50;
|
||||
extern u8 *D_0F05EB50;
|
||||
extern s16 D_801656F0;
|
||||
extern s32 D_8018D168;
|
||||
extern s32 D_8018D180;
|
||||
|
|
@ -3086,8 +3097,8 @@ void func_800792D8(s32 objectIndex, s32 arg1) {
|
|||
D_801656F0 = 0;
|
||||
D_8018D168 = 0;
|
||||
}
|
||||
func_80073444(objectIndex, &gTLUTLakituCountdown, &D_0F05EB50, 0x38U, (u16) 0x00000048);
|
||||
D_80165C18[objectIndex].unk_074 = (s32) &D_0D005EB0;
|
||||
func_80073444(objectIndex, (u8 *) gTLUTLakituCountdown, (u8 *) &D_0F05EB50, 0x38U, (u16) 0x00000048);
|
||||
D_80165C18[objectIndex].unk_074 = (Vtx *) &D_0D005EB0;
|
||||
D_80165C18[objectIndex].unk_000 = 0.15f;
|
||||
func_800721E8(objectIndex, 0x00000010);
|
||||
func_80072488(objectIndex);
|
||||
|
|
@ -3097,10 +3108,10 @@ void func_800792D8(s32 objectIndex, s32 arg1) {
|
|||
extern s16 D_801656F0;
|
||||
extern s32 D_8018D160;
|
||||
extern s32 D_8018D168;
|
||||
extern s32 D_800E67B8; // static
|
||||
extern u16 D_800E67B8[][4]; // static
|
||||
|
||||
void func_80079380(s32 objectIndex, s32 arg1) {
|
||||
s32 pad;
|
||||
UNUSED s32 pad;
|
||||
switch (D_80165C18[objectIndex].unk_0A6) {
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -3115,7 +3126,7 @@ void func_80079380(s32 objectIndex, s32 arg1) {
|
|||
break;
|
||||
case 3:
|
||||
func_800721C0(objectIndex, 0x00000010);
|
||||
func_80086F10(objectIndex, 1, (s32) &D_800E67B8);
|
||||
func_80086F10(objectIndex, 1, D_800E67B8);
|
||||
func_80072488(objectIndex);
|
||||
break;
|
||||
case 4:
|
||||
|
|
@ -3178,23 +3189,23 @@ void func_80079380(s32 objectIndex, s32 arg1) {
|
|||
}
|
||||
}
|
||||
|
||||
extern s32 D_0F07E350;
|
||||
extern s32 D_8018C028;
|
||||
extern s32 D_800E6834; // static
|
||||
extern u8 *D_0F07E350;
|
||||
//extern s32 D_8018C028;
|
||||
extern u16 D_800E6834[][4]; // static
|
||||
|
||||
void func_8007963C(s32 objectIndex, s32 playerIndex) {
|
||||
struct_80165C18_entry *temp_v0;
|
||||
|
||||
func_800791F0(objectIndex, playerIndex);
|
||||
func_80073444(objectIndex, &gTLUTLakituCheckeredFlag, &D_0F07E350, 0x48U, (u16) 0x00000038);
|
||||
func_80073444(objectIndex, gTLUTLakituCheckeredFlag, (u8 *) &D_0F07E350, 0x48U, (u16) 0x00000038);
|
||||
temp_v0 = &D_80165C18[objectIndex];
|
||||
temp_v0->unk_064 = D_8018C028;
|
||||
temp_v0->unk_074 = (s32) &D_0D006730;
|
||||
temp_v0->unk_074 = D_0D006730;
|
||||
temp_v0->unk_004[2] = 5000.0f;
|
||||
temp_v0->unk_004[1] = 5000.0f;
|
||||
temp_v0->unk_004[0] = 5000.0f;
|
||||
temp_v0->unk_000 = 0.15f;
|
||||
func_80086F10(objectIndex, 2, &D_800E6834);
|
||||
func_80086F10(objectIndex, 2, D_800E6834);
|
||||
func_800721E8(objectIndex, 0x00000010);
|
||||
func_80072488(objectIndex);
|
||||
}
|
||||
|
|
@ -3262,11 +3273,11 @@ void func_8007993C(s32 objectIndex, Player *player) {
|
|||
}
|
||||
|
||||
extern Vtx D_0D005F30[];
|
||||
extern Gfx D_0F0CCF50[];
|
||||
extern u8 D_0F0CCF50;
|
||||
|
||||
void func_800799A8(s32 objectIndex, s32 arg1) {
|
||||
func_800791F0(objectIndex, arg1);
|
||||
func_80073444(objectIndex, &gTLUTLakituFishing, &D_0F0CCF50, 0x38U, (u16) 0x00000048);
|
||||
func_80073444(objectIndex, gTLUTLakituFishing, &D_0F0CCF50, 0x38U, (u16) 0x00000048);
|
||||
D_80165C18[objectIndex].unk_074 = D_0D005F30;
|
||||
D_80165C18[objectIndex].unk_000 = 0.15f;
|
||||
func_80086E70(objectIndex);
|
||||
|
|
@ -3276,7 +3287,7 @@ void func_800799A8(s32 objectIndex, s32 arg1) {
|
|||
func_800C8F80((u8)arg1, 0x0100FA28);
|
||||
}
|
||||
|
||||
void func_80079A5C(s32 objectIndex, Player *player) {
|
||||
void func_80079A5C(s32 objectIndex, UNUSED Player *player) {
|
||||
switch (D_80165C18[objectIndex].unk_0AE) {
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -3435,14 +3446,14 @@ void func_80079D44(s32 objectIndex, s32 playerId) {
|
|||
func_80079A5C(objectIndex, temp_s1);
|
||||
}
|
||||
|
||||
extern Gfx D_0F09DB50[];
|
||||
extern s16 D_800E694C[];
|
||||
extern u8 *D_0F09DB50[];
|
||||
extern u16 D_800E694C[];
|
||||
|
||||
void func_8007A060(s32 objectIndex, s32 playerIndex) {
|
||||
struct_80165C18_entry *temp_v0;
|
||||
|
||||
func_800791F0(objectIndex, playerIndex);
|
||||
func_80073444(objectIndex, &gTLUTLakituSecondLap, &D_0F09DB50, 0x48U, (u16) 0x00000038);
|
||||
func_80073444(objectIndex, gTLUTLakituSecondLap, (u8 *) D_0F09DB50, 0x48U, (u16) 0x00000038);
|
||||
temp_v0 = &D_80165C18[objectIndex];
|
||||
temp_v0->unk_064 = D_8018C028;
|
||||
temp_v0->unk_074 = D_0D006730;
|
||||
|
|
@ -3486,13 +3497,13 @@ void func_8007A124(s32 objectIndex, s32 playerIndex) {
|
|||
}
|
||||
}
|
||||
|
||||
extern Gfx D_0F0AD750[];
|
||||
extern u8 *D_0F0AD750;
|
||||
|
||||
void func_8007A228(s32 objectIndex, s32 playerIndex) {
|
||||
struct_80165C18_entry *temp_v0;
|
||||
|
||||
func_800791F0(objectIndex, playerIndex);
|
||||
func_80073444(objectIndex, &gTLUTLakituFinalLap, &D_0F0AD750, 0x48U, (u16) 0x00000038);
|
||||
func_80073444(objectIndex, gTLUTLakituFinalLap, (u8 *)&D_0F0AD750, 0x48U, (u16) 0x00000038);
|
||||
temp_v0 = &D_80165C18[objectIndex];
|
||||
temp_v0->unk_064 = D_8018C028;
|
||||
temp_v0->unk_074 = D_0D006730;
|
||||
|
|
@ -3536,13 +3547,13 @@ void func_8007A2EC(s32 objectIndex, s32 playerIndex) {
|
|||
}
|
||||
}
|
||||
|
||||
extern Gfx D_0F0BD350[];
|
||||
extern s16 D_800E69B0[1]; // static?
|
||||
extern u8 D_0F0BD350[];
|
||||
extern u16 D_800E69B0[][4]; // static?
|
||||
|
||||
void func_8007A3F0(s32 objectIndex, s32 arg1) {
|
||||
f32 var = 5000.0f;
|
||||
func_800791F0(objectIndex, arg1);
|
||||
func_80073444(objectIndex, &gTLUTLakituReverse, &D_0F0BD350, 0x48U, (u16) 0x00000038);
|
||||
func_80073444(objectIndex, gTLUTLakituReverse, D_0F0BD350, 0x48U, (u16) 0x00000038);
|
||||
D_80165C18[objectIndex].unk_064 = D_8018C028;
|
||||
D_80165C18[objectIndex].unk_074 = D_0D006730;
|
||||
D_80165C18[objectIndex].unk_004[2] = var;
|
||||
|
|
@ -3550,13 +3561,13 @@ void func_8007A3F0(s32 objectIndex, s32 arg1) {
|
|||
D_80165C18[objectIndex].unk_004[0] = var;
|
||||
D_80165C18[objectIndex].unk_000 = 0.15f;
|
||||
func_800721E8(objectIndex, 0x00000010);
|
||||
func_80086F10(objectIndex, 6, &D_800E69B0);
|
||||
func_80086F10(objectIndex, 6, D_800E69B0);
|
||||
D_80165C18[objectIndex].unk_0D6 = 0;
|
||||
func_80072488(objectIndex);
|
||||
func_800C8F80((u8)arg1, 0x0100FA28);
|
||||
}
|
||||
|
||||
extern s16 D_800E69F4[1]; // static?
|
||||
extern u16 D_800E69F4[][4]; // static?
|
||||
|
||||
void func_8007A4D4(s32 objectIndex, s32 playerId) {
|
||||
Player *sp2C = &gPlayerOne[playerId];
|
||||
|
|
@ -3582,7 +3593,7 @@ void func_8007A4D4(s32 objectIndex, s32 playerId) {
|
|||
switch (D_80165C18[objectIndex].unk_0D6) { /* switch 1; irregular */
|
||||
case 1: /* switch 1 */
|
||||
if ((D_80165C18[objectIndex].unk_0A6 >= 3) && ((sp2C->unk_0BC << 9) >= 0)) {
|
||||
func_80086F10(objectIndex, 6, &D_800E69F4);
|
||||
func_80086F10(objectIndex, 6, D_800E69F4);
|
||||
D_80165C18[objectIndex].unk_0D6 = 2;
|
||||
D_80165C18[objectIndex].unk_04C = 0x00000050;
|
||||
func_800C9018((u8) playerId, 0x0100FA28);
|
||||
|
|
@ -3745,7 +3756,7 @@ void func_8007ABFC(s32 playerId, s32 arg1) {
|
|||
}
|
||||
|
||||
void func_8007AC9C(s32 playerId) {
|
||||
s32 stackPadding;
|
||||
UNUSED s32 pad;
|
||||
Player *player;
|
||||
s32 objectIndex;
|
||||
struct_80165C18_entry *itemWindow;
|
||||
|
|
@ -3821,11 +3832,11 @@ u8 gen_random_item(s16 arg0, s16 arg1)
|
|||
return randomItem;
|
||||
}
|
||||
|
||||
u8 func_8007AF40(s16 arg0, s16 arg1) {
|
||||
u8 func_8007AF40(UNUSED s16 arg0, s16 arg1) {
|
||||
return gen_random_item(arg1, 0);
|
||||
}
|
||||
|
||||
u8 func_8007AF78(s32 arg0, s16 arg1) {
|
||||
u8 func_8007AF78(UNUSED s32 arg0, s16 arg1) {
|
||||
return gen_random_item(arg1, 1);
|
||||
}
|
||||
|
||||
|
|
@ -3847,7 +3858,7 @@ extern a D_801643BA[];
|
|||
*/
|
||||
|
||||
s16 func_8007AFB0(s32 objectIndex, s32 arg1) {
|
||||
s32 pad[3];
|
||||
UNUSED s32 pad[3];
|
||||
s16 randomItem;
|
||||
|
||||
randomItem = (s16) func_8007AF40((s16) gLapCountByPlayerId[arg1], (s16) gGPCurrentRaceRankByPlayerId[arg1]);
|
||||
|
|
@ -4270,8 +4281,8 @@ void func_8007B34C(s32 playerId) {
|
|||
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007B34C.s")
|
||||
#endif
|
||||
|
||||
void func_8007BB9C(void) {
|
||||
func_8007B34C();
|
||||
void func_8007BB9C(s32 arg0) {
|
||||
func_8007B34C(arg0);
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
|
|
@ -4331,7 +4342,7 @@ void func_8007BD04(s32 playerId) {
|
|||
}
|
||||
|
||||
void func_8007BDA8(void) {
|
||||
s32 pad;
|
||||
UNUSED s32 pad;
|
||||
s32 temp_a0;
|
||||
|
||||
func_8007BD04(0);
|
||||
|
|
@ -4501,12 +4512,12 @@ extern s8 D_801658BC;
|
|||
void func_8007C280(void) {
|
||||
if (D_801658BC == 1) {
|
||||
D_801658BC = 0;
|
||||
func_800723A4(D_80183F28, 0);
|
||||
func_800723A4((s32)D_80183F28, 0);
|
||||
}
|
||||
|
||||
if (D_80165CBE[D_80183F28[0]].unk[0]) {
|
||||
func_8007BEC8(D_80183F28);
|
||||
func_8007BFB0(D_80183F28);
|
||||
func_8007BEC8((s32)D_80183F28);
|
||||
func_8007BFB0((s32)D_80183F28);
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
|
@ -4613,13 +4624,13 @@ void func_8007C550(s32 objectIndex) {
|
|||
func_8007C4A4(objectIndex);
|
||||
}
|
||||
|
||||
extern s8 gTLUTBoo[];
|
||||
extern s32 *D_80165880;
|
||||
extern u8 gTLUTBoo[];
|
||||
extern u8 *D_80165880;
|
||||
|
||||
void func_8007C5B4(s32 objectIndex) {
|
||||
struct_80165C18_entry *temp_s0;
|
||||
|
||||
func_80073444(objectIndex, &gTLUTBoo, D_80165880, 48, 40);
|
||||
func_80073444(objectIndex, gTLUTBoo, D_80165880, 48, 40);
|
||||
temp_s0 = &D_80165C18[objectIndex];
|
||||
temp_s0->unk_004[0] = 0.0f;
|
||||
temp_s0->unk_004[1] = 0.0f;
|
||||
|
|
@ -4708,16 +4719,16 @@ void func_8007C7B4(s32 arg0, s32 arg1) {
|
|||
s16 temp_s1_2;
|
||||
s16 temp_s4;
|
||||
s16 temp_s5;
|
||||
s32 var_s2;
|
||||
s32 *var_s2;
|
||||
s32 var_s3;
|
||||
s32 *temp_s1;
|
||||
s32 temp_v1;
|
||||
UNUSED s32 *temp_v1;
|
||||
//struct_80165C18_entry *temp_s0;
|
||||
//s32 i = 0;
|
||||
|
||||
temp_s1 = &D_8018BFA8[arg0];
|
||||
//sp40 = D_8018BFA8[arg0];
|
||||
var_s2 = &D_800E5D9C;
|
||||
var_s2 = (s32 *)&D_800E5D9C;
|
||||
|
||||
do { //for (i = 0; i < 20; i++) {
|
||||
var_s3 = *temp_s1;
|
||||
|
|
@ -4729,14 +4740,14 @@ void func_8007C7B4(s32 arg0, s32 arg1) {
|
|||
temp_s4 = random_int(20) - 10;
|
||||
temp_s5 = random_int(80) - 40;
|
||||
random_int(4096); // burn a card?
|
||||
temp_v1 = var_s2;
|
||||
temp_v1 = (s32 *) var_s2;
|
||||
var_s2 += 4;
|
||||
temp_s1 += 4;
|
||||
D_80165C18[var_s3].unk_010[0] = (f32)temp_s1_2;
|
||||
D_80165C18[var_s3].unk_080 = var_s2;
|
||||
D_80165C18[var_s3].unk_080 = (u16 *) var_s2;
|
||||
D_80165C18[var_s3].unk_010[1] = (f32) temp_s4;
|
||||
D_80165C18[var_s3].unk_010[2] = (f32) temp_s5;
|
||||
} while (var_s2 != D_800E5DB0);
|
||||
} while (*var_s2 != D_800E5DB0);
|
||||
|
||||
func_800C9060(arg1, 0x1900705A);
|
||||
if (&D_8018BFA8[arg0] == D_8018BFA8) {
|
||||
|
|
@ -4936,7 +4947,6 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007CC00.s")
|
|||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
|
||||
extern s32 gTLUTBoo;
|
||||
extern s32 D_0F0D0E50;
|
||||
extern void *D_8018CF1C;
|
||||
|
||||
|
|
@ -5139,8 +5149,7 @@ void func_8007D360(s32 objectIndex, s32 arg1) {
|
|||
}
|
||||
|
||||
void func_8007D6A8(s32 objectIndex, s32 arg1) {
|
||||
s32 stackPadding0;
|
||||
s32 stackPadding1;
|
||||
UNUSED s32 pad[2];
|
||||
struct_80165C18_entry *temp_v0;
|
||||
|
||||
temp_v0 = &D_80165C18[objectIndex];
|
||||
|
|
@ -5243,7 +5252,7 @@ void func_8007DA4C(s32 arg0) {
|
|||
}
|
||||
|
||||
void func_8007DA74(s32 objectIndex) {
|
||||
s32 stackPadding;
|
||||
UNUSED s32 pad;
|
||||
if ((D_80165C18[objectIndex].unk_0AE != 0) && (D_80165C18[objectIndex].unk_0AE == 1)) {
|
||||
if (func_80087060(objectIndex, 0x0000001E) != 0) {
|
||||
D_80165C18[objectIndex].unk_0C6 = 0U;
|
||||
|
|
@ -6370,7 +6379,7 @@ void func_8007FF5C(s32 arg0)
|
|||
{
|
||||
switch(D_80165CF5[arg0].unk[0]) {
|
||||
case 1:
|
||||
func_8007FB48();
|
||||
func_8007FB48(arg0);
|
||||
break;
|
||||
case 2:
|
||||
func_8007FEA4(arg0);
|
||||
|
|
@ -6380,18 +6389,18 @@ void func_8007FF5C(s32 arg0)
|
|||
|
||||
void func_8007FFC0(s32 objectIndex) {
|
||||
switch (D_80165CBE[objectIndex].unk[0]) { /* irregular */
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
func_8007FA08(objectIndex);
|
||||
break;
|
||||
case 3:
|
||||
func_80072568(objectIndex, 0x00000032);
|
||||
break;
|
||||
case 4:
|
||||
func_80072488(objectIndex);
|
||||
func_80086FD4(objectIndex);
|
||||
break;
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
func_8007FA08(objectIndex);
|
||||
break;
|
||||
case 3:
|
||||
func_80072568(objectIndex, 0x00000032);
|
||||
break;
|
||||
case 4:
|
||||
func_80072488(objectIndex);
|
||||
func_80086FD4(objectIndex);
|
||||
break;
|
||||
}
|
||||
func_8007E63C(objectIndex);
|
||||
func_8007FF5C(objectIndex);
|
||||
|
|
@ -8093,7 +8102,7 @@ extern UnkStruct_80165CBE D_80165CBE[];
|
|||
|
||||
void func_80083474(s32 arg0) {
|
||||
if (D_80165CBE[arg0].unk[0] >= 2) {
|
||||
func_80089F24();
|
||||
func_80089F24(arg0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -8938,7 +8947,7 @@ void func_80085024(void) {
|
|||
|
||||
}
|
||||
|
||||
void func_8008502C(s32 objectIndex, s32 arg1) {
|
||||
void func_8008502C(s32 objectIndex, UNUSED s32 arg1) {
|
||||
func_80088038(objectIndex, D_80165C18[objectIndex].unk_01C[1], D_80165C18[objectIndex].unk_0C6);
|
||||
func_8008BF18(objectIndex);
|
||||
func_800873F4(objectIndex);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,10 @@
|
|||
#include "common_structs.h"
|
||||
#include "camera.h"
|
||||
|
||||
void func_8007BBBC(s32);
|
||||
void func_8007B34C(s32);
|
||||
void func_800789AC(s32, Camera*, u16*);
|
||||
void func_80077D5C(s32);
|
||||
s32 find_unused_obj_index(s32*);
|
||||
void func_80071F6C(s32*);
|
||||
s32 func_80071FBC();
|
||||
|
|
@ -23,6 +27,10 @@ s32 func_80072320(s32, s32);
|
|||
s32 func_80072354(s32, s32);
|
||||
void func_80072388(s32, s32);
|
||||
void func_800723A4(s32, s32);
|
||||
void func_8007CC00(void);
|
||||
void func_8007FB48(s32);
|
||||
void func_8007FA08(s32);
|
||||
void func_8007E63C(s32);
|
||||
void func_80072408(s32);
|
||||
void func_80072428(s32);
|
||||
void func_80072488(s32);
|
||||
|
|
@ -53,13 +61,13 @@ s32 func_80072F88(s32, s32, s32, s32, s32, s32);
|
|||
s32 func_800730BC(s32, s32, s32, s32, s32, s32);
|
||||
s32 func_8007326C(s32, s32, s32, s32, s32, s32);
|
||||
void func_80073404(s32, u8, u8, Vtx*);
|
||||
void func_80073444(s32, s32*, s32*, u8, u16);
|
||||
void func_8007348C(s32, s32*, u8, u8, s32);
|
||||
void func_80073444(s32, u8*, u8*, u8, u16);
|
||||
void func_8007348C(s32, u32*, u8, u8, Vtx *);
|
||||
void func_800734D4();
|
||||
void func_800734DC(s32);
|
||||
void func_80073514(s32);
|
||||
void func_80073568();
|
||||
void func_800735BC(s32, s32, f32);
|
||||
void func_800735BC(s32, Gfx*, f32);
|
||||
void func_80073600(s32);
|
||||
void func_80073654(s32);
|
||||
void func_8007369C(s32, s32);
|
||||
|
|
@ -101,11 +109,11 @@ void func_80074510(uintptr_t, void*, size_t);
|
|||
void func_800745C8(s32, s32);
|
||||
void func_8007466C(s32, s32);
|
||||
void func_80074704(s32, s32);
|
||||
s32 func_80074790(s32, s32);
|
||||
void func_800747F0(s32, s32);
|
||||
void func_80074894(s32, s32);
|
||||
void func_800748C4(s32, s32);
|
||||
void func_800748F4(s32, s32);
|
||||
u8 *func_80074790(s32, u8*);
|
||||
void func_800747F0(s32, u8*);
|
||||
void func_80074894(s32, u8*);
|
||||
void func_800748C4(s32, u8*);
|
||||
void func_800748F4(s32, u8*);
|
||||
void func_80074924(s32);
|
||||
void func_80074D94(s32);
|
||||
void func_80074E28(s32);
|
||||
|
|
@ -149,7 +157,7 @@ void func_80076ED8(s32);
|
|||
void func_80076F2C();
|
||||
void func_80076FEC(s32, s32);
|
||||
void func_800770F0(s32);
|
||||
void func_800773D8(s32, s32);
|
||||
void func_800773D8(f32*, s32);
|
||||
void func_80077428(s32);
|
||||
void func_80077450(s32);
|
||||
void func_80077584(s32);
|
||||
|
|
@ -269,6 +277,6 @@ extern s16 D_8018CFE8;
|
|||
extern f32 D_8018D01C;
|
||||
extern s32 D_8018D140;
|
||||
extern s32 D_8018D224;
|
||||
extern s32* D_8018D490;
|
||||
extern u8* D_8018D490;
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -26,10 +26,10 @@ void func_80086EF0(s32 arg0) {
|
|||
func_80086E70(arg0);
|
||||
}
|
||||
|
||||
void func_80086F10(s32 arg0, s32 arg1, s32 arg2) {
|
||||
void func_80086F10(s32 arg0, s32 arg1, u16 arg2[][4]) {
|
||||
func_80086E70(arg0);
|
||||
D_80165C18[arg0].unk_0DE = arg1;
|
||||
D_80165C18[arg0].unk_080 = arg2;
|
||||
D_80165C18[arg0].unk_080 = (u16 *) arg2;
|
||||
}
|
||||
|
||||
void func_80086F60(s32 arg0) {
|
||||
|
|
@ -106,7 +106,7 @@ s32 func_800871AC(s32 objectIndex, s32 arg1) {
|
|||
return sp24;
|
||||
}
|
||||
|
||||
UNUSED void func_80087258(s32 objectIndex, s32 arg1, f32 arg2) {
|
||||
UNUSED void func_80087258(s32 objectIndex, UNUSED s32 arg1, f32 arg2) {
|
||||
D_80165C18[objectIndex].unk_028[1] += arg2;
|
||||
D_80165C18[objectIndex].unk_028[2] -= arg2;
|
||||
}
|
||||
|
|
@ -333,7 +333,7 @@ s32 func_80087D24(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) {
|
|||
|
||||
s32 func_80087E08(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3, s16 arg4, s32 arg5) {
|
||||
s32 sp2C;
|
||||
s32 stackPadding;
|
||||
UNUSED s32 pad;
|
||||
|
||||
sp2C = 0;
|
||||
if (func_80072270(objectIndex, 8) != 0) {
|
||||
|
|
@ -361,7 +361,7 @@ s32 func_80087E08(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3, s16 arg4, s32 a
|
|||
|
||||
UNUSED s32 func_80087F14(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3, s16 arg4, s32 arg5) {
|
||||
s32 sp2C;
|
||||
s32 stackPadding;
|
||||
UNUSED s32 stackPadding;
|
||||
|
||||
sp2C = 0;
|
||||
if (func_80072270(objectIndex, 8) != 0) {
|
||||
|
|
@ -746,9 +746,7 @@ s32 func_80088D18(s32 objectIndex, Player *player) {
|
|||
f32 temp_f0;
|
||||
f32 temp_f12;
|
||||
f32 temp_f2;
|
||||
f32 var_f18;
|
||||
s32 var_v1;
|
||||
u16 temp_t8;
|
||||
|
||||
var_v1 = 0;
|
||||
temp_f0 = D_80165C18[objectIndex].unk_004[0] - player->pos[0];
|
||||
|
|
@ -766,7 +764,6 @@ s32 func_80088DA4(s32 objectIndex, Player *player) {
|
|||
f32 temp_f14;
|
||||
f32 temp_f2;
|
||||
s32 var_v1;
|
||||
struct_80165C18_entry *temp_v0;
|
||||
|
||||
var_v1 = 0;
|
||||
temp_f0 = D_80165C18[objectIndex].unk_004[0] - player->pos[0];
|
||||
|
|
@ -1197,6 +1194,8 @@ s32 func_8008A060(s32 objectIndex, Camera *camera, u16 arg2) {
|
|||
|
||||
var_v1 = 0;
|
||||
temp_t3 = (((u16)camera->rot[1] - D_80165C18[objectIndex].unk_0BE[1]) + (arg2 >> 1));
|
||||
|
||||
// @warning Always true
|
||||
if ((temp_t3 >= 0) && (arg2 >= temp_t3)) {
|
||||
var_v1 = 1;
|
||||
}
|
||||
|
|
@ -1232,7 +1231,7 @@ s32 func_8008A140(s32 objectIndex, Camera *camera, u16 arg2) {
|
|||
}
|
||||
|
||||
void func_8008A1D0(s32 objectIndex, s32 cameraId, s32 arg2, s32 arg3) {
|
||||
s32 temp_v0;
|
||||
u32 temp_v0;
|
||||
u16 var_a2;
|
||||
Camera *camera;
|
||||
|
||||
|
|
@ -1485,10 +1484,10 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008AB10.s")
|
|||
UNUSED void func_8008ABC0(s32 arg0) {
|
||||
switch (D_80165C18[arg0].unk_0AE) {
|
||||
case 1:
|
||||
func_8008AA3C();
|
||||
func_8008AA3C(arg0);
|
||||
break;
|
||||
case 2:
|
||||
func_8008AB10();
|
||||
func_8008AB10(arg0);
|
||||
break;
|
||||
case 3:
|
||||
func_80086F60(arg0);
|
||||
|
|
@ -1501,10 +1500,10 @@ UNUSED void func_8008ABC0(s32 arg0) {
|
|||
UNUSED void func_8008AC40(s32 arg0) {
|
||||
switch (D_80165C18[arg0].unk_0AE) {
|
||||
case 1:
|
||||
func_8008AA3C();
|
||||
func_8008AA3C(arg0);
|
||||
break;
|
||||
case 2:
|
||||
func_8008AB10();
|
||||
func_8008AB10(arg0);
|
||||
break;
|
||||
case 3:
|
||||
func_8008701C(arg0, 1);
|
||||
|
|
@ -1622,7 +1621,7 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008AE9C.s")
|
|||
#endif
|
||||
|
||||
void func_8008AFE0(s32 arg0, f32 arg1) {
|
||||
func_8008ADD0(&D_80183DC8, arg1);
|
||||
func_8008ADD0((s32 *)&D_80183DC8, arg1);
|
||||
func_8008AE9C(arg0);
|
||||
}
|
||||
|
||||
|
|
@ -1671,7 +1670,7 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008B038.s")
|
|||
#endif
|
||||
|
||||
void func_8008B17C(s32 arg0, f32 arg1) {
|
||||
func_8008ACE0(&D_80183DA8, arg1);
|
||||
func_8008ACE0((s32 *) &D_80183DA8, arg1);
|
||||
func_8008B038(arg0);
|
||||
}
|
||||
|
||||
|
|
@ -2217,10 +2216,10 @@ void func_8008BFFC(s32 objectIndex) {
|
|||
GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008BFFC.s")
|
||||
#endif
|
||||
|
||||
UNUSED void func_8008C1B8(s32 arg0) {
|
||||
UNUSED void func_8008C1B8(UNUSED s32 arg0) {
|
||||
|
||||
}
|
||||
|
||||
UNUSED void func_8008C1C0(s32 arg0) {
|
||||
UNUSED void func_8008C1C0(UNUSED s32 arg0) {
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,13 +4,20 @@
|
|||
#include "common_structs.h"
|
||||
#include "camera.h"
|
||||
|
||||
void func_8008BFFC(s32);
|
||||
void func_8008B038(s32);
|
||||
void func_8008AE9C(s32);
|
||||
void func_8008AB10(s32);
|
||||
void func_8008AA3C(s32);
|
||||
void func_80086E70(s32);
|
||||
void func_80086EAC(s32, s32, s16);
|
||||
void func_80086EF0(s32);
|
||||
void func_80086F10(s32, s32, s32);
|
||||
void func_80086F10(s32, s32, u16[][4]);
|
||||
void func_80086F60(s32);
|
||||
s32 func_80086FA4(s32);
|
||||
void func_80086FD4(s32);
|
||||
void func_80089F24(s32);
|
||||
void func_8008B78C(s32);
|
||||
void func_8008701C(s32, s32);
|
||||
s32 func_80087060(s32, s32);
|
||||
s32 func_80087104(s32, u16);
|
||||
|
|
@ -98,13 +105,13 @@ void func_8008ADC0();
|
|||
void func_8008ADC8();
|
||||
void func_8008AE8C();
|
||||
void func_8008AE94();
|
||||
void func_8008ADD0(s32, f32);
|
||||
void func_8008ADD0(s32*, f32);
|
||||
void func_8008AFE0(s32, f32);
|
||||
void func_8008B018();
|
||||
void func_8008B020();
|
||||
void func_8008B028();
|
||||
void func_8008B030();
|
||||
void func_8008ACE0(s32,f32);
|
||||
void func_8008ACE0(s32*,f32);
|
||||
void func_8008B17C(s32, f32);
|
||||
void func_8008B1B4();
|
||||
void func_8008B1BC();
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ void func_8008C1D8(UNUSED s32 *arg0) {
|
|||
|
||||
}
|
||||
|
||||
void func_8008C1E0(UNUSED s32 arg0, UNUSED s32 arg1) {
|
||||
void func_8008C1E0(UNUSED s32 *arg0, UNUSED s32 arg1) {
|
||||
arg1 = 4;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
void func_unnamed();
|
||||
void func_8008C1D8(s32*);
|
||||
void func_8008C1E0(s32, s32);
|
||||
void func_8008C1E0(s32*, s32);
|
||||
void func_unnamed1(s32);
|
||||
void func_unnamed2(s32);
|
||||
void func_unnamed3();
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@
|
|||
#include <sounds.h>
|
||||
#include "code_80281780.h"
|
||||
#include "memory.h"
|
||||
#include "audio/external.h"
|
||||
#include "hud_renderer.h"
|
||||
// TODO: Move gGfxPool out of main.h
|
||||
// Unfortunately that's not a small effort due to weird import structure in this project
|
||||
#include "main.h"
|
||||
|
|
@ -203,8 +205,8 @@ void swap_values(s32 *arg0, s32 *arg1) {
|
|||
|
||||
extern s8 D_8018E7AC[]; // size of 4... Actually 5 probably.
|
||||
extern s8 D_800E852C;
|
||||
extern u32 D_8018D9B4;
|
||||
extern u32 D_8018D9B8;
|
||||
extern uintptr_t *D_8018D9B4;
|
||||
extern uintptr_t *D_8018D9B8;
|
||||
|
||||
void func_80091B78(void) {
|
||||
s32 why = 0;
|
||||
|
|
@ -227,10 +229,11 @@ void func_80091B78(void) {
|
|||
set_segment_base_addr(6, decompress_segments((u8 *) &_data_825800SegmentRomStart, (u8 *) &_course_mario_raceway_dl_mio0SegmentRomStart));
|
||||
}
|
||||
gNextFreeMemoryAddress = D_8015F734;
|
||||
D_8018D9B0 = get_next_available_memory_addr(0x000900B0);
|
||||
D_8018D9B4 = get_next_available_memory_addr(0x0000CE00);
|
||||
D_8018D9B8 = get_next_available_memory_addr(0x00012C00);
|
||||
D_8018D9C0 = get_next_available_memory_addr(0x00001000);
|
||||
// Hypothetically, this should be a ptr... But only hypothetically.
|
||||
D_8018D9B0 = (intptr_t) get_next_available_memory_addr(0x000900B0);
|
||||
D_8018D9B4 = (uintptr_t *) get_next_available_memory_addr(0x0000CE00);
|
||||
D_8018D9B8 = (uintptr_t *) get_next_available_memory_addr(0x00012C00);
|
||||
D_8018D9C0 = (struct_8018EE10_entry *) get_next_available_memory_addr(0x00001000);
|
||||
func_800AF9B0();
|
||||
D_8018EE0C = 0;
|
||||
|
||||
|
|
@ -263,7 +266,7 @@ void func_80091B78(void) {
|
|||
|
||||
s32 func_80091D74(void) {
|
||||
u8 sp67;
|
||||
s32 pad[10];
|
||||
UNUSED s32 pad[10];
|
||||
s32 i;
|
||||
|
||||
if (!gControllerBits) {
|
||||
|
|
@ -326,10 +329,10 @@ void func_80091FA4(void) {
|
|||
s32 i;
|
||||
|
||||
// todo: These sizes need to be sizeof() for shiftability if possible
|
||||
D_8018D9B4 = get_next_available_memory_addr(0x00002800);
|
||||
D_8018D9B0 = get_next_available_memory_addr(0x000124F8);
|
||||
D_8018D9B8 = get_next_available_memory_addr(0x00001000);
|
||||
D_8018D9BC = get_next_available_memory_addr(4);
|
||||
D_8018D9B4 = (uintptr_t *) get_next_available_memory_addr(0x00002800);
|
||||
D_8018D9B0 = (intptr_t) get_next_available_memory_addr(0x000124F8);
|
||||
D_8018D9B8 = (uintptr_t *) get_next_available_memory_addr(0x00001000);
|
||||
D_8018D9BC = (intptr_t *) get_next_available_memory_addr(4);
|
||||
|
||||
for (i = 0; i < 5; i++) {
|
||||
D_8018E7AC[i] = 0;
|
||||
|
|
@ -883,7 +886,7 @@ void set_text_color(s32 arg0) {
|
|||
gTextColor = arg0;
|
||||
}
|
||||
|
||||
UNUSED void func_800930E4(s32 arg0, s32 arg1, s32 *arg2) {
|
||||
UNUSED void func_800930E4(s32 arg0, s32 arg1, char *arg2) {
|
||||
set_text_color(TEXT_BLUE);
|
||||
func_80093324(arg0, arg1, arg2, 0, 1.0, 1.0);
|
||||
}
|
||||
|
|
@ -898,8 +901,8 @@ void print_text0(s32 column, s32 row, char *text, s32 tracking, f32 x_scale, f32
|
|||
do{
|
||||
glyphIndex = char_to_glyph_index(text);
|
||||
if (glyphIndex >= 0) {
|
||||
func_80099184(segmented_to_virtual_dupe(gGlyphTextureLUT[glyphIndex]));
|
||||
gDisplayListHead = func_8009BEF0(gDisplayListHead, segmented_to_virtual_dupe(gGlyphTextureLUT[glyphIndex]), column + (stringWidth * x_scale), row, arg6, x_scale, y_scale);
|
||||
func_80099184((MkTexture *)segmented_to_virtual_dupe((const void *) gGlyphTextureLUT[glyphIndex]));
|
||||
gDisplayListHead = func_8009BEF0(gDisplayListHead, (MkTexture *) segmented_to_virtual_dupe((const void *) gGlyphTextureLUT[glyphIndex]), column + (stringWidth * x_scale), row, arg6, x_scale, y_scale);
|
||||
stringWidth += gGlyphDisplayWidth[glyphIndex] + tracking;
|
||||
}
|
||||
else if ((glyphIndex != -2) && (glyphIndex == -1)) {
|
||||
|
|
@ -980,8 +983,8 @@ void print_text1(s32 column, s32 row, char *text, s32 tracking, f32 x_scale, f32
|
|||
do{
|
||||
glyphIndex = char_to_glyph_index(text);
|
||||
if (glyphIndex >= 0) {
|
||||
func_80099184(segmented_to_virtual_dupe(gGlyphTextureLUT[glyphIndex]));
|
||||
gDisplayListHead = func_8009BEF0(gDisplayListHead, segmented_to_virtual_dupe(gGlyphTextureLUT[glyphIndex]), column, row, arg6, x_scale, y_scale);
|
||||
func_80099184((MkTexture *)segmented_to_virtual_dupe((const void *) gGlyphTextureLUT[glyphIndex]));
|
||||
gDisplayListHead = func_8009BEF0(gDisplayListHead, (MkTexture *) segmented_to_virtual_dupe((const void *)gGlyphTextureLUT[glyphIndex]), column, row, arg6, x_scale, y_scale);
|
||||
column += (gGlyphDisplayWidth[glyphIndex] + tracking);
|
||||
column *= x_scale;
|
||||
}
|
||||
|
|
@ -1032,7 +1035,7 @@ void print_text2(s32 column, s32 row, char *text, s32 tracking, f32 x_scale, f32
|
|||
do {
|
||||
glyphIndex = char_to_glyph_index(text);
|
||||
if (glyphIndex >= 0) {
|
||||
glyphTexture = segmented_to_virtual_dupe(gGlyphTextureLUT[glyphIndex]);
|
||||
glyphTexture = (MkTexture *) segmented_to_virtual_dupe((const void *)gGlyphTextureLUT[glyphIndex]);
|
||||
func_80099184(glyphTexture);
|
||||
gDisplayListHead = func_8009BEF0(gDisplayListHead, glyphTexture, column - (gGlyphDisplayWidth[glyphIndex] / 2), row, arg6, x_scale, y_scale);
|
||||
if ((glyphIndex >= 0xD5) && (glyphIndex < 0xE0)) {
|
||||
|
|
@ -1071,7 +1074,7 @@ void text_draw(s32 column, s32 row, char *text, s32 tracking, f32 x_scale, f32 y
|
|||
extern s8 D_800F0B1C[];
|
||||
|
||||
void func_80093A30(s32 arg0) {
|
||||
func_8009E2A8(D_800F0B1C[arg0], arg0);
|
||||
func_8009E2A8(D_800F0B1C[arg0]);
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
|
|
@ -1195,8 +1198,8 @@ void func_80093F10(void) {
|
|||
D_80164AF0++;
|
||||
gSPDisplayList(gDisplayListHead++, D_02007F18);
|
||||
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, 320, 240);
|
||||
func_80092290(4, &D_8018E850, &D_8018E858);
|
||||
func_80092290(5, &D_8018E854, &D_8018E85C);
|
||||
func_80092290(4, D_8018E850, D_8018E858);
|
||||
func_80092290(5, (s32 *) &D_8018E854, (s32 *) &D_8018E85C);
|
||||
func_8009C918();
|
||||
func_80099A70();
|
||||
func_80099E54();
|
||||
|
|
@ -1215,8 +1218,8 @@ void func_800940EC(s32 arg0) {
|
|||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[D_80164AF0 + 0x3EB]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
|
||||
D_80164AF0++;
|
||||
gSPDisplayList(gDisplayListHead++, D_02007F18);
|
||||
func_80092290(4, &D_8018E850, &D_8018E858);
|
||||
func_80092290(5, &D_8018E854, &D_8018E85C);
|
||||
func_80092290(4, D_8018E850, D_8018E858);
|
||||
func_80092290(5, (s32 *) &D_8018E854, (s32 *) &D_8018E85C);
|
||||
func_80092148();
|
||||
func_80099A70();
|
||||
func_80099E54();
|
||||
|
|
@ -1360,7 +1363,7 @@ void func_800942D0(void) {
|
|||
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800942D0.s")
|
||||
#endif
|
||||
|
||||
void func_80094660(struct GfxPool *arg0, s32 unused) {
|
||||
void func_80094660(struct GfxPool *arg0, UNUSED s32 arg1) {
|
||||
u16 perspNorm;
|
||||
move_segment_table_to_dmem();
|
||||
gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP);
|
||||
|
|
@ -1373,7 +1376,7 @@ void func_80094660(struct GfxPool *arg0, s32 unused) {
|
|||
gDPSetTextureFilter(gDisplayListHead++, G_TF_BILERP);
|
||||
}
|
||||
|
||||
void func_800947B4(struct GfxPool *arg0, s32 unused) {
|
||||
void func_800947B4(struct GfxPool *arg0, UNUSED s32 arg1) {
|
||||
u16 perspNorm;
|
||||
move_segment_table_to_dmem();
|
||||
guPerspective(&arg0->mtxPool[1], &perspNorm, 45.0f, 1.3333334f, 100.0f, 12800.0f, 1.0f);
|
||||
|
|
@ -1725,17 +1728,21 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_80095574.s")
|
|||
// Instead we depend on the fact that the result of func_80098C18 is left
|
||||
// in v0 which means it is returned, sort of.
|
||||
// Its also weird that the displayListHead argument goes entirely unused. What's up with that?
|
||||
Gfx *func_800958D4(Gfx *displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry, s32 arg5) {
|
||||
Gfx *func_800958D4(UNUSED Gfx *displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry, s32 arg5) {
|
||||
s32 phi_v0;
|
||||
|
||||
phi_v0 = ((D_8018E7A8 % arg5) << 9) / arg5;
|
||||
if (phi_v0 >= 0x101) {
|
||||
if (phi_v0 > 0x100) {
|
||||
phi_v0 = 0x200 - phi_v0;
|
||||
}
|
||||
if (phi_v0 >= 0x100) {
|
||||
if (phi_v0 > 0xFF) {
|
||||
phi_v0 = 0xFF;
|
||||
}
|
||||
#if AVOID_UB
|
||||
return gDisplayListHead = func_80098C18(gDisplayListHead, ulx, uly, lrx, lry, phi_v0, phi_v0, phi_v0, 0xFF);
|
||||
#else
|
||||
gDisplayListHead = func_80098C18(gDisplayListHead, ulx, uly, lrx, lry, phi_v0, phi_v0, phi_v0, 0xFF);
|
||||
#endif
|
||||
}
|
||||
|
||||
Gfx *func_800959A0(Gfx *displayListHead, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
|
||||
|
|
@ -3479,9 +3486,6 @@ Gfx *func_80098C18(Gfx *displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry, s32
|
|||
}
|
||||
|
||||
Gfx *draw_box(Gfx *displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry, s32 red, s32 green, s32 blue, s32 alpha) {
|
||||
Gfx *temp_a0;
|
||||
Gfx *temp_v1;
|
||||
|
||||
red &= 0xFF;
|
||||
green &= 0xFF;
|
||||
blue &= 0xFF;
|
||||
|
|
@ -3526,7 +3530,7 @@ void dma_copy_base_729a30(u64 *arg0, size_t nbytes, void *vaddr) {
|
|||
OSMesg sp2C;
|
||||
|
||||
osInvalDCache(vaddr, nbytes);
|
||||
osPiStartDma(&sp30, OS_MESG_PRI_NORMAL, OS_READ, &_textures_0aSegmentRomStart[SEGMENT_OFFSET(arg0)], vaddr, nbytes, &gDmaMesgQueue);
|
||||
osPiStartDma(&sp30, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_textures_0aSegmentRomStart[SEGMENT_OFFSET(arg0)], vaddr, nbytes, &gDmaMesgQueue);
|
||||
osRecvMesg(&gDmaMesgQueue, &sp2C, OS_MESG_BLOCK);
|
||||
}
|
||||
|
||||
|
|
@ -3535,7 +3539,7 @@ void dma_copy_base_7fa3c0(u64 *arg0, size_t nbytes, void *vaddr) {
|
|||
OSMesg sp2C;
|
||||
|
||||
osInvalDCache(vaddr, nbytes);
|
||||
osPiStartDma(&sp30, OS_MESG_PRI_NORMAL, OS_READ, &_textures_0bSegmentRomStart[SEGMENT_OFFSET(arg0)], vaddr, nbytes, &gDmaMesgQueue);
|
||||
osPiStartDma(&sp30, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_textures_0bSegmentRomStart[SEGMENT_OFFSET(arg0)], vaddr, nbytes, &gDmaMesgQueue);
|
||||
osRecvMesg(&gDmaMesgQueue, &sp2C, OS_MESG_BLOCK);
|
||||
}
|
||||
|
||||
|
|
@ -4564,8 +4568,7 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009B538.s")
|
|||
#endif
|
||||
|
||||
s32 func_8009B8C4(u64 *arg0) {
|
||||
s32 stackPadding1;
|
||||
s32 stackPadding2;
|
||||
UNUSED s32 pad[2];
|
||||
s32 sp4;
|
||||
s32 found;
|
||||
s32 someIndex;
|
||||
|
|
@ -4589,7 +4592,7 @@ s32 func_8009B8C4(u64 *arg0) {
|
|||
// struct_8018EE10_entry pointer. But here its being treated as a
|
||||
// Gfx pointer. It seems to be multi use.
|
||||
void func_8009B938(void) {
|
||||
D_8018E75C = D_8018D9C0;
|
||||
D_8018E75C = (Gfx *) D_8018D9C0;
|
||||
gNumD_8018E768Entries = 0;
|
||||
}
|
||||
|
||||
|
|
@ -4610,7 +4613,7 @@ void func_8009B998(void) {
|
|||
// as the return of this function. Which seems like a bug to me
|
||||
Gfx *func_8009B9D0(Gfx *displayListHead, MkTexture *textures) {
|
||||
Gfx *displayList;
|
||||
s32 pad;
|
||||
UNUSED s32 pad;
|
||||
s32 found;
|
||||
s32 index;
|
||||
|
||||
|
|
@ -7949,7 +7952,7 @@ void func_800A09E0(struct_8018D9E0_entry *arg0) {
|
|||
if ((D_800E86D0[0] != 0) || ((table_row != 0) && (table_row != 8)))
|
||||
{
|
||||
y = (table_row * 0xA) + arg0->row;
|
||||
gDisplayListHead = func_8009BA74(gDisplayListHead, &D_0200157C, x, y);
|
||||
gDisplayListHead = func_8009BA74(gDisplayListHead, D_0200157C, x, y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -7957,14 +7960,14 @@ void func_800A09E0(struct_8018D9E0_entry *arg0) {
|
|||
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A09E0.s")
|
||||
#endif
|
||||
|
||||
void func_800A0AD0(UNUSED struct_8018D9E0_entry *unused) {
|
||||
void func_800A0AD0(UNUSED struct_8018D9E0_entry *arg0) {
|
||||
struct_8018D9E0_entry *temp_t1;
|
||||
// Find struct_8018D9E0_entry with a type/id of 0xDA
|
||||
temp_t1 = find_8018D9E0_entry_dupe(0xDA);
|
||||
if ((gControllerPakMenuSelection != CONTROLLER_PAK_MENU_SELECT_RECORD) && (gControllerPakMenuSelection != CONTROLLER_PAK_MENU_END))
|
||||
{
|
||||
gDPSetPrimColor(gDisplayListHead++, 0, 0, 0xFF, temp_t1->unk20, 0x00, 0xFF);
|
||||
gDisplayListHead = func_8009BA74(gDisplayListHead, &D_02001874, 0x24, (gControllerPakSelectedTableRow * 0xA) + 0x7C);
|
||||
gDisplayListHead = func_8009BA74(gDisplayListHead, D_02001874, 0x24, (gControllerPakSelectedTableRow * 0xA) + 0x7C);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -8364,7 +8367,7 @@ void func_800A1924(struct_8018D9E0_entry *arg0) {
|
|||
func_8009A76C(arg0->D_8018DEE0_index, 0x17, 0x84, -1);
|
||||
if (func_800B639C(gTimeTrialDataCourseIndex) >= TIME_TRIAL_DATA_LUIGI_RACEWAY) {
|
||||
gDisplayListHead = func_800959A0(gDisplayListHead, 0x57, 0x84, 0x96, 0x95);
|
||||
gDisplayListHead = func_8009BA74(gDisplayListHead, &D_02004A0C, 0x57, 0x84);
|
||||
gDisplayListHead = func_8009BA74(gDisplayListHead, D_02004A0C, 0x57, 0x84);
|
||||
}
|
||||
func_8004EF9C(gCupCourseOrder[gTimeTrialDataCourseIndex / 4][gTimeTrialDataCourseIndex % 4]);
|
||||
do {
|
||||
|
|
@ -8382,7 +8385,7 @@ void func_800A1A20(struct_8018D9E0_entry *arg0) {
|
|||
set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1);
|
||||
draw_text(0x69, arg0->row + 0x19, D_800E7574[courseId], 0, 0.75f, 0.75f);
|
||||
set_text_color(TEXT_RED);
|
||||
func_80093324(0x2D, arg0->row + 0x28, &D_800E77D8, 0, 0.75f, 0.75f);
|
||||
func_80093324(0x2D, arg0->row + 0x28, (char *)&D_800E77D8, 0, 0.75f, 0.75f);
|
||||
func_800936B8(0xA5, arg0->row + 0x28, D_800E77E4[courseId], 1, 0.75f, 0.75f);
|
||||
set_text_color(TEXT_YELLOW);
|
||||
func_80093324(0xA0, arg0->row + 0x86, D_800E7728, 0, 0.75f, 0.75f);
|
||||
|
|
@ -12135,7 +12138,7 @@ void func_800A8CA4(struct_8018D9E0_entry *arg0) {
|
|||
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A8CA4.s")
|
||||
#endif
|
||||
|
||||
void func_800A8E14(UNUSED struct_8018D9E0_entry *unused) {
|
||||
void func_800A8E14(UNUSED struct_8018D9E0_entry *arg0) {
|
||||
set_text_color(TEXT_YELLOW);
|
||||
draw_text(0x98, 0x44, D_800E77A8, 0, 1.0f, 1.0f);
|
||||
func_80093324(0x17, 0x58, D_800E77AC, 0, D_800F24A8, D_800F24AC);
|
||||
|
|
@ -12201,7 +12204,7 @@ void func_800A8F48(struct_8018D9E0_entry *arg0) {
|
|||
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A8F48.s")
|
||||
#endif
|
||||
|
||||
void func_800A90D4(s32 arg0, struct_8018D9E0_entry *arg1) {
|
||||
void func_800A90D4(UNUSED s32 arg0, struct_8018D9E0_entry *arg1) {
|
||||
s32 temp_a2;
|
||||
s32 temp_t1;
|
||||
s32 temp_t7;
|
||||
|
|
|
|||
|
|
@ -60,6 +60,14 @@ typedef struct {
|
|||
|
||||
/* Function Prototypes */
|
||||
|
||||
void func_800A7A4C(s32);
|
||||
void func_8009DF8C(u32, s8);
|
||||
void func_8009DEF8(u32, s8);
|
||||
void func_8009D77C(s32,s32,s32);
|
||||
void func_8009CBE4(s32, s32, s32);
|
||||
void func_800996BC(MkTexture*, s32);
|
||||
void func_8009E2A8(s32);
|
||||
s32 func_80091D74(void);
|
||||
void func_80091EE4(void);
|
||||
void func_80091FA4(void);
|
||||
void func_80093A30(s32);
|
||||
|
|
@ -88,7 +96,7 @@ s32 func_80092E1C(s8 *);
|
|||
s32 func_80092EE4(s8 *);
|
||||
s32 get_string_width(char*);
|
||||
void set_text_color(s32);
|
||||
void func_800930E4(s32, s32, s32*);
|
||||
void func_800930E4(s32, s32, char*);
|
||||
void print_text0(s32, s32, char*, s32, f32, f32, s32);
|
||||
void func_80093324(s32, s32, char*, s32, f32, f32);
|
||||
void func_80093358(s32, s32, char*, s32, f32, f32);
|
||||
|
|
@ -123,7 +131,7 @@ Gfx *func_80098FC8(Gfx*, s32, s32, s32, s32);
|
|||
void dma_copy_base_729a30(u64*, size_t, void*);
|
||||
void dma_copy_base_7fa3c0(u64*, size_t, void*);
|
||||
void func_80099110();
|
||||
void func_80099184(s32);
|
||||
void func_80099184(MkTexture*);
|
||||
void *segmented_to_virtual_dupe(const void*);
|
||||
void *segmented_to_virtual_dupe_2(const void*);
|
||||
Gfx *func_8009C204(Gfx*, MkTexture*, s32, s32, s32);
|
||||
|
|
@ -149,8 +157,8 @@ void func_8009B938();
|
|||
void func_8009B954(MkTexture*);
|
||||
void func_8009B998();
|
||||
Gfx *func_8009B9D0(Gfx*, MkTexture*);
|
||||
Gfx *func_8009BA74(Gfx *, MkTexture*, s32, s32);
|
||||
Gfx *func_8009BEF0(Gfx*, s32, f32, f32, s32, f32,f32);
|
||||
Gfx *func_8009BA74(Gfx *, MkTexture[], s32, s32);
|
||||
Gfx *func_8009BEF0(Gfx*, MkTexture*, f32, f32, s32, f32,f32);
|
||||
Gfx *func_8009C434(Gfx*, struct_8018DEE0_entry*, s32, s32, s32);
|
||||
Gfx *func_8009C708(Gfx*, struct_8018DEE0_entry *, s32, s32, s32, s32);
|
||||
void func_8009C918();
|
||||
|
|
@ -287,7 +295,7 @@ extern Gfx *D_800E84CC[];
|
|||
extern Gfx *D_800E84EC[];
|
||||
extern Gfx *D_800E850C[];
|
||||
|
||||
extern s32 D_8018D9BC;
|
||||
extern intptr_t *D_8018D9BC;
|
||||
|
||||
extern s16 gGlyphDisplayWidth[]; // D_800EF690
|
||||
extern RGBA16 D_800E74A8[5];
|
||||
|
|
@ -304,7 +312,7 @@ extern char *D_800E7730;
|
|||
extern char *D_800E77A8;
|
||||
extern char *D_800E77AC;
|
||||
extern char *D_800E77B0;
|
||||
extern char *D_800E77D8;
|
||||
extern char D_800E77D8[];
|
||||
extern char *D_800E77E4[0x14];
|
||||
extern char *D_800E7860[2];
|
||||
extern char *D_800E7A88[4];
|
||||
|
|
@ -330,7 +338,7 @@ extern f32 D_800F24B4;
|
|||
extern f32 D_800F24B8;
|
||||
extern f64 D_800F24C0;
|
||||
extern s32 D_80165754;
|
||||
extern s32 D_8018D9B0;
|
||||
extern intptr_t D_8018D9B0;
|
||||
extern s8 D_8018D9D8;
|
||||
extern s8 D_8018D9D9;
|
||||
extern struct_8018D9E0_entry D_8018D9E0[D_8018D9E0_SIZE]; // D_8018D9E0
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ union GrandPrixPointsUnion
|
|||
|
||||
/* Function Prototypes */
|
||||
|
||||
void load_save_data(void);
|
||||
void func_800B45E0(s32);
|
||||
void write_save_data_grand_prix_points_and_sound_mode();
|
||||
void func_800B46D0(void);
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ void load_credits(void) {
|
|||
gNextFreeMemoryAddress = D_8015F734;
|
||||
load_course(gCurrentCourseId);
|
||||
D_8015F730 = gNextFreeMemoryAddress;
|
||||
set_segment_base_addr(0xB, (void *) decompress_segments(&_data_821D10SegmentRomStart, &_data_825800SegmentRomStart));
|
||||
set_segment_base_addr(0xB, (void *) decompress_segments((u8 *)&_data_821D10SegmentRomStart, (u8 *)&_data_825800SegmentRomStart));
|
||||
D_8015F6EA = -0x15A1;
|
||||
D_8015F6EE = -0x15A1;
|
||||
D_8015F6F2 = -0x15A1;
|
||||
|
|
|
|||
|
|
@ -182,7 +182,6 @@ void func_80280A28(Vec3f arg0, Vec3s arg1, f32 arg2) {
|
|||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
extern u32 D_8018D48C;
|
||||
|
||||
void func_80280B50(Vec3f arg0, f32 arg1, s32 rgb, s16 alpha) {
|
||||
Vec3f sp4C;
|
||||
|
|
|
|||
|
|
@ -65,8 +65,8 @@ extern void *D_80284ED0;
|
|||
extern s8 gGPOverallRanks[8];
|
||||
extern s8 D_8018EDF3;
|
||||
|
||||
extern s32 _data_821D10SegmentRomStart;
|
||||
extern s32 _data_825800SegmentRomStart;
|
||||
extern u8 *_data_821D10SegmentRomStart;
|
||||
extern u8 *_data_825800SegmentRomStart;
|
||||
extern s32 _course_banshee_boardwalk_dl_mio0SegmentRomStart;
|
||||
extern s32 _course_yoshi_valley_dl_mio0SegmentRomStart;
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ void nullify_displaylist(uintptr_t addr) {
|
|||
|
||||
Gfx *macro;
|
||||
|
||||
macro = VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
macro = (Gfx *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
macro->words.w0 = G_ENDDL << 24;
|
||||
macro->words.w1 = 0;
|
||||
}
|
||||
|
|
@ -758,7 +758,7 @@ void func_802AC098(UnkActorInner *arg0, f32 *velocity) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_802AC114(Vec3f arg0, f32 arg1, Vec3f arg2, f32 arg3) {
|
||||
void func_802AC114(Vec3f arg0, f32 arg1, Vec3f arg2, UNUSED f32 arg3) {
|
||||
f32 temp_f0;
|
||||
f32 temp_f12;
|
||||
f32 temp_f14;
|
||||
|
|
@ -2494,7 +2494,7 @@ GLOBAL_ASM("asm/non_matchings/code_802AAA70/func_802AF5D8.s")
|
|||
void func_802AF7B4(uintptr_t addr, s32 uls, s32 ult) {
|
||||
s32 segment = SEGMENT_NUMBER2(addr);
|
||||
s32 offset = SEGMENT_OFFSET(addr);
|
||||
Gfx *phi_v0 = VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
Gfx *phi_v0 = (Gfx *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
s32 gfxCommand;
|
||||
|
||||
uls = (uls << 12) & 0xFFF000;
|
||||
|
|
|
|||
|
|
@ -216,14 +216,14 @@ extern s32 unkPad;
|
|||
extern s8 D_0D009958[];
|
||||
extern s8 D_0D00A558[];
|
||||
extern s8 D_0D00A958[];
|
||||
extern s8 D_0D00AB58[];
|
||||
extern u8 D_0D00AB58[];
|
||||
extern s8 D_0D00AD58[];
|
||||
extern s8 D_0D00B158[];
|
||||
extern s8 D_0D00B558[];
|
||||
extern s8 D_0D00B958[];
|
||||
extern s8 D_0D00BD58[];
|
||||
extern s8 D_0D00C158[];
|
||||
extern s8 D_0D00C558[];
|
||||
extern u8 D_0D00C558[];
|
||||
extern s8 D_0D00D258[];
|
||||
extern s8 D_0D00E258[];
|
||||
extern s8 D_0D00F258[];
|
||||
|
|
@ -275,7 +275,7 @@ extern s8 gTLUTItemWindowTripleRedShell[];
|
|||
extern s8 gTLUTItemWindowStar[];
|
||||
extern s8 gTLUTItemWindowThunderBolt[];
|
||||
extern s8 gTLUTItemWindowFakeItemBox[];
|
||||
extern s8 gTextureItemWindowNone[];
|
||||
extern u8 gTextureItemWindowNone[];
|
||||
extern s8 gTextureItemWindowBanana[];
|
||||
extern s8 gTextureItemWindowBananaBunch[];
|
||||
extern s8 gTextureItemWindowMushroom[];
|
||||
|
|
@ -291,14 +291,14 @@ extern s8 gTextureItemWindowTripleRedShell[];
|
|||
extern s8 gTextureItemWindowStar[];
|
||||
extern s8 gTextureItemWindowThunderBolt[];
|
||||
extern s8 gTextureItemWindowFakeItemBox[];
|
||||
extern s8 gTLUTLakituCountdown[][512];
|
||||
extern s8 gTLUTLakituCheckeredFlag[];
|
||||
extern s8 gTLUTLakituSecondLap[];
|
||||
extern s8 gTLUTLakituFinalLap[];
|
||||
extern s8 gTLUTLakituReverse[];
|
||||
extern s8 gTLUTLakituFishing[];
|
||||
extern u8 gTLUTLakituCountdown[][512];
|
||||
extern u8 gTLUTLakituCheckeredFlag[];
|
||||
extern u8 gTLUTLakituSecondLap[];
|
||||
extern u8 gTLUTLakituFinalLap[];
|
||||
extern u8 gTLUTLakituReverse[];
|
||||
extern u8 gTLUTLakituFishing[];
|
||||
|
||||
extern s8 D_0D028DD8[];
|
||||
extern u8 D_0D028DD8[];
|
||||
extern s8 D_0D025ED8[];
|
||||
extern s8 D_0D0260D8[];
|
||||
extern s8 D_0D026558[];
|
||||
|
|
@ -310,21 +310,20 @@ extern s8 D_0D027BD8[];
|
|||
extern s8 D_0D028058[];
|
||||
extern s8 D_0D0284D8[];
|
||||
extern s8 D_0D028958[];
|
||||
extern s8 D_0D028DD8[];
|
||||
extern s8 D_0D0291D8[];
|
||||
extern s8 D_0D0293D8[];
|
||||
extern u8 D_0D0293D8[];
|
||||
extern s8 D_0D029458[];
|
||||
extern s8 D_0D029858[];
|
||||
extern s8 D_0D029C58[];
|
||||
extern s8 D_0D02A058[];
|
||||
extern s8 D_0D02A458[];
|
||||
extern s8 D_0D02A858[];
|
||||
extern s8 D_0D02AA58[];
|
||||
extern u8 D_0D02AA58[];
|
||||
extern s8 D_0D02AC58[];
|
||||
extern s8 D_0D02B058[];
|
||||
extern s8 D_0D02B458[];
|
||||
extern s8 D_0D02B858[];
|
||||
extern s8 D_0D02BC58[];
|
||||
extern u8 D_0D02BC58[];
|
||||
extern s8 D_0D02C058[];
|
||||
extern s8 D_0D02C458[];
|
||||
extern s8 D_0D02C858[];
|
||||
|
|
|
|||
|
|
@ -2359,7 +2359,7 @@ s8 D_0D00A958[] = {
|
|||
};
|
||||
|
||||
// 123/
|
||||
s8 D_0D00AB58[] = {
|
||||
u8 D_0D00AB58[] = {
|
||||
#include "textures/common/132B50_0AB58.rgba16.inc.c"
|
||||
};
|
||||
|
||||
|
|
@ -2394,7 +2394,7 @@ s8 D_0D00C158[] = {
|
|||
};
|
||||
|
||||
// 0123456789'"!
|
||||
s8 D_0D00C558[] = {
|
||||
u8 D_0D00C558[] = {
|
||||
#include "textures/common/132B50_0C558.rgba16.inc.c"
|
||||
};
|
||||
|
||||
|
|
@ -2652,7 +2652,7 @@ s8 gTLUTItemWindowFakeItemBox[] = {
|
|||
};
|
||||
|
||||
// UI Item Frames
|
||||
s8 gTextureItemWindowNone[] = {
|
||||
u8 gTextureItemWindowNone[] = {
|
||||
#include "assets/item_window/gTextureItemWindowNone.inc.c"
|
||||
};
|
||||
|
||||
|
|
@ -2716,7 +2716,7 @@ s8 gTextureItemWindowFakeItemBox[] = {
|
|||
#include "assets/item_window/gTextureItemWindowFakeItemBox.inc.c"
|
||||
};
|
||||
|
||||
s8 gTLUTLakituCountdown[][512] = {
|
||||
u8 gTLUTLakituCountdown[][512] = {
|
||||
{
|
||||
#include "assets/lakitu/nolights/gTLUTLakituNoLights.inc.c"
|
||||
},
|
||||
|
|
@ -2736,23 +2736,23 @@ s8 gTLUTLakituCountdown[][512] = {
|
|||
* Appears to be animation textures.
|
||||
*/
|
||||
|
||||
s8 gTLUTLakituCheckeredFlag[] = {
|
||||
u8 gTLUTLakituCheckeredFlag[] = {
|
||||
#include "assets/lakitu/checkeredflag/gTLUTLakituCheckeredFlag.inc.c"
|
||||
};
|
||||
|
||||
s8 gTLUTLakituSecondLap[] = {
|
||||
u8 gTLUTLakituSecondLap[] = {
|
||||
#include "assets/lakitu/secondlap/gTLUTLakituSecondLap.inc.c"
|
||||
};
|
||||
|
||||
s8 gTLUTLakituFinalLap[] = {
|
||||
u8 gTLUTLakituFinalLap[] = {
|
||||
#include "assets/lakitu/finallap/gTLUTLakituFinalLap.inc.c"
|
||||
};
|
||||
|
||||
s8 gTLUTLakituReverse[] = {
|
||||
u8 gTLUTLakituReverse[] = {
|
||||
#include "assets/lakitu/reverse/gTLUTLakituReverse.inc.c"
|
||||
};
|
||||
|
||||
s8 gTLUTLakituFishing[] = {
|
||||
u8 gTLUTLakituFishing[] = {
|
||||
#include "assets/lakitu/fishing/gTLUTLakituFishing.inc.c"
|
||||
};
|
||||
|
||||
|
|
@ -2804,7 +2804,7 @@ UNUSED s8 D_0D028958[] = {
|
|||
};
|
||||
|
||||
// leaf
|
||||
s8 D_0D028DD8[] = {
|
||||
u8 D_0D028DD8[] = {
|
||||
#include "textures/common/132B50_28DD8.rgba16.inc.c"
|
||||
};
|
||||
|
||||
|
|
@ -2815,7 +2815,7 @@ s8 D_0D0291D8[] = {
|
|||
|
||||
|
||||
// Cloud smoke or fog?
|
||||
s8 D_0D0293D8[] = {
|
||||
u8 D_0D0293D8[] = {
|
||||
#include "textures/common/132B50_293D8.i4.inc.c"
|
||||
};
|
||||
|
||||
|
|
@ -2835,7 +2835,7 @@ s8 D_0D02A858[] = {
|
|||
#include "textures/common/tlut2/132B50_29858.rgba16.ci8.tlut.inc.c"
|
||||
};
|
||||
|
||||
s8 D_0D02AA58[] = {
|
||||
u8 D_0D02AA58[] = {
|
||||
#include "textures/common/132B50_2AA58.rgba16.inc.c"
|
||||
};
|
||||
|
||||
|
|
@ -2855,7 +2855,7 @@ s8 D_0D02B858[] = {
|
|||
#include "textures/common/132B50_2B858.i8.inc.c"
|
||||
};
|
||||
|
||||
s8 D_0D02BC58[] = {
|
||||
u8 D_0D02BC58[] = {
|
||||
#include "textures/common/132B50_2BC58.i8.inc.c"
|
||||
};
|
||||
|
||||
|
|
|
|||
1333
src/hud_renderer.c
1333
src/hud_renderer.c
File diff suppressed because it is too large
Load Diff
|
|
@ -3,183 +3,187 @@
|
|||
|
||||
#include "common_structs.h"
|
||||
|
||||
void func_80045738(u8*, u8*, s32, s32);
|
||||
void func_80057114(s32);
|
||||
void func_800431B0(Vec3f, Vec3s, f32, Vtx*);
|
||||
void func_80043220(Vec3f, Vec3s, f32, Gfx*);
|
||||
void func_80043328(Vec3f, Vec3s, f32, Gfx*);
|
||||
void func_80043288(Vec3f, Vec3s, f32, Gfx*);
|
||||
void func_80043390(Vec3f, Vec3s, f32, Gfx*);
|
||||
void func_800433F8(Vec3f, Vec3s, f32, Gfx*);
|
||||
void func_80043460(Vec3f, Vec3s, f32, Gfx*);
|
||||
void func_80043500(Vec3f, Vec3s, f32, Gfx*);
|
||||
void func_800431B0(Vec3f, Vec3su, f32, Vtx*);
|
||||
void func_80043220(Vec3f, Vec3su, f32, Gfx*);
|
||||
void func_80043328(Vec3f, Vec3su, f32, Gfx*);
|
||||
void func_80043288(Vec3f, Vec3su, f32, Gfx*);
|
||||
void func_80043390(Vec3f, Vec3su, f32, Gfx*);
|
||||
void func_800433F8(Vec3f, Vec3su, f32, Gfx*);
|
||||
void func_80043460(Vec3f, Vec3su, f32, Gfx*);
|
||||
void func_80043500(Vec3f, Vec3su, f32, Gfx*);
|
||||
void func_800435A0(Vec3f, Vec3su, f32, Gfx*, s32);
|
||||
void func_80043668(Vec3f, Vec3s, f32, Gfx*);
|
||||
void func_80043668(Vec3f, Vec3su, f32, Gfx*);
|
||||
void func_800436D0(s32, s32, u16, f32, Vtx*);
|
||||
void func_80043764(s32, s32, u16, f32, Vtx*);
|
||||
void func_800437F8(s32, s32, u16, f32, Vtx*, s32);
|
||||
void func_800438C4(s32, s32, u16, f32, Vtx*, s32);
|
||||
void func_8004398C(s32, s32, u16, f32, Vtx*, s32);
|
||||
s32 func_80043A54(s32);
|
||||
void func_80043A84(s8*, s32, s32);
|
||||
void func_80043C28(s8*, s32, s32);
|
||||
void func_80043D50(s8*, s32, s32);
|
||||
void func_80043EF8(s8*, s32, s32, s32);
|
||||
void func_80043A84(u8*, s32, s32);
|
||||
void func_80043C28(u8*, s32, s32);
|
||||
void func_80043D50(u8*, s32, s32);
|
||||
void func_80043EF8(u8*, s32, s32, s32);
|
||||
|
||||
void func_800440B8(s8*, s32, s32);
|
||||
void func_800441E0(s8*, s32, s32);
|
||||
void func_80044388(s8*, s32, s32);
|
||||
void func_800444B0(s8*, s32, s32);
|
||||
void func_80044658(s8*, s32, s32);
|
||||
void func_8004477C(s8*, s32, s32);
|
||||
void func_80044AB8(s8*, s32, s32);
|
||||
void func_80044BF8(s8*, s32, s32);
|
||||
void func_800440B8(u8*, s32, s32);
|
||||
void func_800441E0(u8*, s32, s32);
|
||||
void func_80044388(u8*, s32, s32);
|
||||
void func_800444B0(u8*, s32, s32);
|
||||
void func_80044658(u8*, s32, s32);
|
||||
void func_8004477C(u8*, s32, s32);
|
||||
void func_80044AB8(u8*, s32, s32);
|
||||
void func_80044BF8(u8*, s32, s32);
|
||||
|
||||
void func_800452A4(s8*, s32, s32);
|
||||
void func_8004544C(s8*, s32, s32, s32);
|
||||
void func_80045614(s8*, s32, s32);
|
||||
void func_800452A4(u8*, s32, s32);
|
||||
void func_8004544C(u8*, s32, s32, s32);
|
||||
void func_80045614(u8*, s32, s32);
|
||||
void func_80045B2C(Vtx*);
|
||||
void func_80045B74(Vtx*);
|
||||
void func_80045BBC(Vec3f, Vec3s, f32, Vtx*);
|
||||
void func_80045C48(Vec3f, Vec3s, f32, Vtx*);
|
||||
void func_80045D0C(s8*, Vtx*, s32, s32, s32);
|
||||
void func_80045E10(s8*, Vtx*, s32, s32, s32);
|
||||
void func_80045F18(s8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80045BBC(Vec3f, Vec3su, f32, Vtx*);
|
||||
void func_80045C48(Vec3f, Vec3su, f32, Vtx*);
|
||||
void func_80045D0C(u8*, Vtx*, s32, s32, s32);
|
||||
void func_80045E10(u8*, Vtx*, s32, s32, s32);
|
||||
void func_80045F18(u8*, Vtx*, s32, s32, s32, s32);
|
||||
|
||||
void func_800461A4(s8*, Vtx*, s32, s32, s32);
|
||||
void func_800462A8(s8*, Vtx*, s32, s32, s32);
|
||||
void func_800463B0(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32);
|
||||
void func_80046424(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32);
|
||||
void func_800464D0(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32);
|
||||
void func_80046544(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32);
|
||||
void func_800465B8(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32);
|
||||
void func_80046634(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32);
|
||||
void func_800466B0(s32, s32, u16, f32, s32, s32, s32, s32);
|
||||
void func_80046720(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32);
|
||||
void func_80046794(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32);
|
||||
void func_80046808(Vec3f, Vec3s, f32, s32, s32, s32, s32, s32, s32);
|
||||
void func_80046874(Vec3f, Vec3s, f32, s32, s32, s32, s32, s32, s32);
|
||||
void func_800468E0(Vec3f, Vec3s, f32, s32, s32, s32, s32, s32, s32, s32);
|
||||
void func_80046954(Vec3f, Vec3s, f32, s32, s32, s32, s32, s32, s32);
|
||||
void func_80046A00(Vec3f, Vec3s, f32, s32, Vtx*, s32, s32);
|
||||
void func_80046A68(Vec3f, Vec3s, f32, s32, s32, s32, s32, s32, s32);
|
||||
void func_80046AD4(s32, s32, u16, f32, s32);
|
||||
void func_80046B38(s32, s32, u16, f32, s32);
|
||||
void func_80046B9C(Vec3f, Vec3s, f32, s32);
|
||||
void func_80046BEC(s32, s32, u16, f32, s32, s32);
|
||||
void func_80046C3C(s32, s32, f32, s32, s32);
|
||||
void func_80046C78(s32, s32, u16, f32, s32);
|
||||
void func_80046CDC(s32, s32, u16, f32, s32);
|
||||
void func_80046D40(Vec3f, Vec3s, f32, s32);
|
||||
void func_80046D90(s32, s32, u16, f32, s32);
|
||||
void func_80046DF4(s32, s32, u16, f32, s32, s32);
|
||||
void func_80046E60(s32, s32, s32, s32);
|
||||
void func_80046F60(s32, s32, s32, s32, s32);
|
||||
void func_800461A4(u8*, Vtx*, s32, s32, s32);
|
||||
void func_800462A8(u8*, Vtx*, s32, s32, s32);
|
||||
void func_800463B0(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80046424(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_800464D0(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80046544(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_800465B8(s32, s32, u16, f32, s32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80046634(s32, s32, u16, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_800466B0(s32, s32, u16, f32, u8*, Vtx*, s32, s32);
|
||||
void func_80046720(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80046794(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80046808(Vec3f, Vec3su, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80046874(Vec3f, Vec3su, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_800468E0(Vec3f, Vec3su, f32, u8*, Vtx*, s32, s32, s32, s32, s32);
|
||||
void func_80046954(Vec3f, Vec3su, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80046A00(Vec3f, Vec3su, f32, u8*, Vtx*, s32, s32);
|
||||
void func_80046A68(Vec3f, Vec3su, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80046AD4(s32, s32, u16, f32, u8*);
|
||||
void func_80046B38(s32, s32, u16, f32, u8*);
|
||||
void func_80046B9C(Vec3f, Vec3su, f32, u8*);
|
||||
void func_80046BEC(s32, s32, u16, f32, u8*, Vtx*);
|
||||
void func_80046C3C(Vec3f, Vec3su, f32, u8*, Vtx*);
|
||||
void func_80046C78(s32, s32, u16, f32, u8*);
|
||||
void func_80046CDC(s32, s32, u16, f32, u8*);
|
||||
void func_80046D40(Vec3f, Vec3su, f32, u8*);
|
||||
void func_80046D90(s32, s32, u16, f32, u8*);
|
||||
void func_80046DF4(s32, s32, u16, f32, s32, u8*);
|
||||
void func_80046E60(u8*, u8*, s32, s32);
|
||||
void func_80046F60(u8*, u8*, s32, s32, s32);
|
||||
|
||||
void func_80047068(s8*, s8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047270(s8*, s8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004747C(s8*, s8*, Vtx*, s32, s32, s32, s32, s32);
|
||||
void func_8004768C(s8*, s8*, Vtx*, s32, s32, s32);
|
||||
void func_8004788C(s32, s32, u16, f32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047910(s32, s32, u16, f32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047994(s32, s32, u16, f32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047A18(s32, s32, u16, f32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047A9C(s32, s32, u16, f32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047B20(s32, s32, u16, f32, s32, s32, Vtx*, s32, s32, s32);
|
||||
void func_80047B9C(s32, s32, u16, f32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047C28(s32, s32, u16, f32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047CB4(s32, s32, u16, f32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047D40(s32, s32, u16, f32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047DCC(Vec3f, Vec3su, f32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047E48(Vec3f, Vec3su, f32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047EC4(Vec3f, Vec3su, f32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047F40(Vec3f, Vec3su, f32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047FBC(Vec3f, Vec3su, f32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047068(u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047270(u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004747C(u8*, u8*, Vtx*, s32, s32, s32, s32, s32);
|
||||
void func_8004768C(u8*, u8*, Vtx*, s32, s32, s32);
|
||||
void func_8004788C(s32, s32, u16, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047910(s32, s32, u16, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047994(s32, s32, u16, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047A18(s32, s32, u16, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047A9C(s32, s32, u16, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047B20(s32, s32, u16, f32, u8*, u8*, Vtx*, s32, s32, s32);
|
||||
void func_80047B9C(s32, s32, u16, f32, s32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047C28(s32, s32, u16, f32, s32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047CB4(s32, s32, u16, f32, s32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047D40(s32, s32, u16, f32, s32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047DCC(Vec3f, Vec3su, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047E48(Vec3f, Vec3su, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047EC4(Vec3f, Vec3su, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047F40(Vec3f, Vec3su, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80047FBC(Vec3f, Vec3su, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
|
||||
void func_80048038(Vec3f, Vec3su, f32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_800480B4(Vec3f, Vec3su, f32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80048130(Vec3f, Vec3su, f32, s32, s32, Vtx*, s32, s32, s32, s32, s32);
|
||||
void func_800481B4(Vec3f, Vec3su, f32, s32, s32, Vtx*, s32, s32, s32);
|
||||
void func_80048228(Vec3f, Vec3su, f32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_800482AC(Vec3f, Vec3su, f32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80048330(Vec3f, Vec3su, f32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_800483B4(Vec3f, Vec3su, f32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80048438(Vec3f, Vec3su, f32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_800484BC(Vec3f, Vec3su, f32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80048540(Vec3f, Vec3su, f32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_800485C4(Vec3f, Vec3su, f32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_800486B0(s32, s32, u16, f32, s32, s32, Vtx*);
|
||||
void func_80048718(s32, s32, u16, f32, s32, s32, Vtx*);
|
||||
void func_80048780(s32, s32, f32, s32, s32, s32, Vtx*);
|
||||
void func_800487DC(s32, s32, u16, f32, s32, s32, Vtx*);
|
||||
void func_80048844(s32, s32, u16, f32, s32, s32, Vtx*);
|
||||
void func_800488AC(s32, s32, u16, f32, s32, s32, Vtx*);
|
||||
void func_80048914(s32, s32, u16, f32, s32, s32, Vtx*);
|
||||
void func_8004897C(s32, s32, u16, f32, s32, s32, Vtx*);
|
||||
void func_800489E4(s32, s32, u16, f32, s32, s32, Vtx*);
|
||||
void func_80048A4C(s32, s32, u16, f32, s32, s32, Vtx*);
|
||||
void func_80048AB4(s32, s32, u16, f32, s32, s32, s32, Vtx*);
|
||||
void func_80048B24(s32, s32, u16, f32, s32, s32, s32, Vtx*);
|
||||
void func_80048B94(Vec3f, Vec3su, f32, s32, s32, Vtx*);
|
||||
void func_80048BE8(Vec3f, Vec3su, f32, s32, s32, Vtx*);
|
||||
void func_80048C3C(Vec3f, Vec3su, f32, s32, s32, Vtx*);
|
||||
void func_80048C90(Vec3f, Vec3su, f32, s32, s32, s32, Vtx*);
|
||||
void func_80048CEC(Vec3f, Vec3su, f32, s32, s32, s32, Vtx*);
|
||||
void func_80048D48(Vec3f, Vec3su, f32, s32, s32, s32, Vtx*);
|
||||
void func_80048DA4(Vec3f, Vec3su, f32, s32, s32, s32, Vtx*);
|
||||
void func_80048E00(s32, s32, u16, f32, s32, s32, Vtx*);
|
||||
void func_80048E68(s32, s32, u16, f32, s32, s32, Vtx*);
|
||||
void func_80048ED0(s32, s32, u16, f32, s32, s32, Vtx*);
|
||||
void func_80048F38(s32, s32, f32, s32, s32, Vtx*);
|
||||
void func_80048F8C(s8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80052F20(s32);
|
||||
void func_80048038(Vec3f, Vec3su, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_800480B4(Vec3f, Vec3su, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80048130(Vec3f, Vec3su, f32, u8*, u8*, Vtx*, s32, s32, s32, s32, s32);
|
||||
void func_800481B4(Vec3f, Vec3su, f32, u8*, u8*, Vtx*, s32, s32, s32);
|
||||
void func_80048228(Vec3f, Vec3su, f32, s32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_800482AC(Vec3f, Vec3su, f32, s32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80048330(Vec3f, Vec3su, f32, s32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_800483B4(Vec3f, Vec3su, f32, s32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80048438(Vec3f, Vec3su, f32, s32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_800484BC(Vec3f, Vec3su, f32, s32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80048540(Vec3f, Vec3su, f32, s32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_800485C4(Vec3f, Vec3su, f32, s32, u8*, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_800486B0(s32, s32, u16, f32, u8*, u8*, Vtx*);
|
||||
void func_80048718(s32, s32, u16, f32, u8*, u8*, Vtx*);
|
||||
void func_80048780(Vec3f, Vec3su, f32, s32, u8*, u8*, Vtx*);
|
||||
void func_800487DC(s32, s32, u16, f32, u8*, u8*, Vtx*);
|
||||
void func_80048844(s32, s32, u16, f32, u8*, u8*, Vtx*);
|
||||
void func_800488AC(s32, s32, u16, f32, u8*, u8*, Vtx*);
|
||||
void func_80048914(s32, s32, u16, f32, u8*, u8*, Vtx*);
|
||||
void func_8004897C(s32, s32, u16, f32, u8*, u8*, Vtx*);
|
||||
void func_800489E4(s32, s32, u16, f32, u8*, u8*, Vtx*);
|
||||
void func_80048A4C(s32, s32, u16, f32, u8*, u8*, Vtx*);
|
||||
void func_80048AB4(s32, s32, u16, f32, s32, u8*, u8*, Vtx*);
|
||||
void func_80048B24(s32, s32, u16, f32, s32, u8*, u8*, Vtx*);
|
||||
void func_80048B94(Vec3f, Vec3su, f32, u8*, u8*, Vtx*);
|
||||
void func_80048BE8(Vec3f, Vec3su, f32, u8*, u8*, Vtx*);
|
||||
void func_80048C3C(Vec3f, Vec3su, f32, u8*, u8*, Vtx*);
|
||||
void func_80048C90(Vec3f, Vec3su, f32, s32, u8*, u8*, Vtx*);
|
||||
void func_80048CEC(Vec3f, Vec3su, f32, s32, u8*, u8*, Vtx*);
|
||||
void func_80048D48(Vec3f, Vec3su, f32, s32, u8*, u8*, Vtx*);
|
||||
void func_80048DA4(Vec3f, Vec3su, f32, s32, u8*, u8*, Vtx*);
|
||||
void func_80048E00(s32, s32, u16, f32, u8*, u8*, Vtx*);
|
||||
void func_80048E68(s32, s32, u16, f32, u8*, u8*, Vtx*);
|
||||
void func_80048ED0(s32, s32, u16, f32, u8*, u8*, Vtx*);
|
||||
void func_80048F38(Vec3f, Vec3su, f32, u8*, u8*, Vtx*);
|
||||
void func_80048F8C(u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80044924(u8*, s32, s32);
|
||||
void func_80044DA0(u8*, s32, s32);
|
||||
|
||||
void func_80049130(s8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_800492D4(s8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049478(s8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_800497CC(s8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049B20(s32, s32, u16, f32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049B9C(s32, s32, u16, f32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049C18(s32, s32, u16, f32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049C94(s32, s32, u16, f32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049D10(s32, s32, u16, f32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049D8C(s32, s32, u16, f32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049E08(s32, s32, u16, f32, s32, s32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049E98(s32, s32, u16, f32, s32, s32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049F28(s32, s32, u16, f32, s32, s32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049FB8(s32, s32, u16, f32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049130(u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_800492D4(u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049478(u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_800497CC(u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049B20(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049B9C(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049C18(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049C94(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049D10(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049D8C(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049E08(s32, s32, u16, f32, s32, s32, s32, s32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049E98(s32, s32, u16, f32, s32, s32, s32, s32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049F28(s32, s32, u16, f32, s32, s32, s32, s32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_80049FB8(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
|
||||
void func_8004A034(s32, s32, u16, f32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A0B0(s32, s32, u16, f32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A12C(s32, s32, u16, f32, s32, s32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A1BC(s32, s32, u16, f32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A258(s32, s32, u16, f32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A2F4(s32, s32, u16, f32, s32, s32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A384(s32, s32, u16, f32, s32, s32, s32, s32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A414(Vec3f, Vec3su, f32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A488(Vec3f, Vec3su, f32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A4FC(Vec3f, Vec3su, f32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A570(Vec3f, Vec3su, f32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A5E4(Vec3f, Vec3su, f32, s32, Vtx*);
|
||||
void func_8004A034(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A0B0(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A12C(s32, s32, u16, f32, s32, s32, s32, s32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A1BC(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A258(s32, s32, u16, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A2F4(s32, s32, u16, f32, s32, s32, s32, s32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A384(s32, s32, u16, f32, s32, s32, s32, s32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A414(Vec3f, Vec3su, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A488(Vec3f, Vec3su, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A4FC(Vec3f, Vec3su, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A570(Vec3f, Vec3su, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A5E4(Vec3f, Vec3su, f32, u8*, Vtx*);
|
||||
void func_8004A630(UnkActorInner*, Vec3f, f32);
|
||||
void func_8004A6EC(s32, f32);
|
||||
void func_8004A7AC(s32, f32);
|
||||
void func_8004A870(s32, f32);
|
||||
void func_8004A9B8(f32);
|
||||
void func_8004AA10(Vec3f, Vec3su, f32, s32, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004AAA0(s32, s32, u16, f32, s32, Vtx*);
|
||||
void func_8004AB00(s32, s32, u16, f32, s32, Vtx*);
|
||||
void func_8004AB60(s32, s32, u16, f32, s32, Vtx*);
|
||||
void func_8004ABC0(s32, s32, u16, f32, s32, Vtx*);
|
||||
void func_8004AC20(s32, s32, u16, f32, s32, Vtx*);
|
||||
void func_8004AC80(s32, s32, u16, f32, s32, Vtx*);
|
||||
void func_8004ACE0(s32, s32, f32, s32, Vtx*);
|
||||
void func_8004AD2C(s32, s32, u16, f32, s32, Vtx*);
|
||||
void func_8004AD8C(s32, s32, u16, f32, s32, Vtx*);
|
||||
void func_8004ADEC(s32, s32, u16, f32, s32, Vtx*);
|
||||
void func_8004AE4C(s32, s32, u16, f32, s32, Vtx*);
|
||||
void func_8004AEAC(s32, s32, u16, f32, s32, Vtx*);
|
||||
void func_8004AF0C(s32, s32, u16, f32, s32, Vtx*);
|
||||
void func_8004AF6C(s32, s32, u16, f32, s32, Vtx*);
|
||||
void func_8004AFCC(s32, s32, u16, f32, s32, Vtx*);
|
||||
void func_8004AA10(Vec3f, Vec3su, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004AAA0(s32, s32, u16, f32, u8*, Vtx*);
|
||||
void func_8004AB00(s32, s32, u16, f32, u8*, Vtx*);
|
||||
void func_8004AB60(s32, s32, u16, f32, u8*, Vtx*);
|
||||
void func_8004ABC0(s32, s32, u16, f32, u8*, Vtx*);
|
||||
void func_8004AC20(s32, s32, u16, f32, u8*, Vtx*);
|
||||
void func_8004AC80(s32, s32, u16, f32, u8*, Vtx*);
|
||||
void func_8004ACE0(Vec3f, Vec3su, f32, u8*, Vtx*);
|
||||
void func_8004AD2C(s32, s32, u16, f32, u8*, Vtx*);
|
||||
void func_8004AD8C(s32, s32, u16, f32, u8*, Vtx*);
|
||||
void func_8004ADEC(s32, s32, u16, f32, u8*, Vtx*);
|
||||
void func_8004AE4C(s32, s32, u16, f32, u8*, Vtx*);
|
||||
void func_8004AEAC(s32, s32, u16, f32, u8*, Vtx*);
|
||||
void func_8004AF0C(s32, s32, u16, f32, u8*, Vtx*);
|
||||
void func_8004AF6C(s32, s32, u16, f32, u8*, Vtx*);
|
||||
void func_8004AFCC(s32, s32, u16, f32, u8*, Vtx*);
|
||||
|
||||
void func_8004B02C();
|
||||
void func_8004B05C(u8*);
|
||||
|
|
@ -202,73 +206,78 @@ void func_8004B72C(s32, s32, s32, s32, s32, s32, s32);
|
|||
void func_8004B950(s32, s32, s32, s32, s32);
|
||||
void func_8004BB34();
|
||||
void func_8004BB3C(s32, s32, s32, s32, f32);
|
||||
void func_8004BD14(s32, s32, u32, u32, s32, s8*, s8*);
|
||||
void func_8004BD14(s32, s32, u32, u32, s32, u8*, u8*);
|
||||
|
||||
void func_8004C6FC(s16, s16, u8*, u32, u32);
|
||||
|
||||
void func_8004C024(s16, s16, s16, u16, u16, u16, u16);
|
||||
void func_8004C148(s16, s16, s16, u16, u16, u16, u16);
|
||||
//void func_8004C268(s32, s32, s32, u32, u32, u32, s32);
|
||||
void func_8004C354();
|
||||
void func_8004C35C();
|
||||
void func_8004C364(s32, s32, u32, u32, s32);
|
||||
void func_8004C450(s32, s32, u32, u32, s32);
|
||||
void func_8004C53C(s32, s32, u32, u32, s32);
|
||||
void func_8004C628(s32, s32, u32, u32, s32);
|
||||
void func_8004C364(s32, s32, u32, u32, u8*);
|
||||
void func_8004C450(s32, s32, u32, u32, u8*);
|
||||
void func_8004C53C(s32, s32, u32, u32, u8*);
|
||||
void func_8004C628(s32, s32, u32, u32, u8*);
|
||||
void func_8004C8D4(s16, s16);
|
||||
void func_8004C91C(s32, s32, s32, s32, s32, s32);
|
||||
void func_8004C9D8(s32, s32, s32, s32, s32, s32, s32, s32);
|
||||
void func_8004CA58(s32, s32, f32, s32, s32, s32);
|
||||
void func_8004CAD0(s32, s32, s32);
|
||||
void func_8004CB00(s32, s32, s32);
|
||||
void func_8004CB30(s32, s32, s32);
|
||||
void func_8004CB60(s32, s32, s32);
|
||||
void func_8004CB90(s32, s32, s32);
|
||||
void func_8004CBC0(s32, s32, f32, s32);
|
||||
void func_8004CBF4(s32, s32, s32);
|
||||
void func_8004CC24(s32, s32, s32);
|
||||
void func_8004CC54(s32, s32, s32);
|
||||
void func_8004CC84(s32, s32, s32);
|
||||
void func_8004CCB4(s32, s32, s32);
|
||||
void func_8004CCE4(s32, s32, f32, s32);
|
||||
void func_8004CD18(s32, s32, s32);
|
||||
void func_8004CF9C(s32, s32, s32, s32, s32, s32, s32);
|
||||
void func_8004CFF0(s32, s32, s32, s32, s32, s32, s32);
|
||||
void func_8004C91C(s32, s32, u8*, s32, s32, s32);
|
||||
void func_8004C9D8(s32, s32, s32, u8*, s32, s32, s32, s32);
|
||||
void func_8004CA58(s32, s32, f32, u8*, s32, s32);
|
||||
void func_8004CAD0(s32, s32, u8*);
|
||||
void func_8004CB00(s32, s32, u8*);
|
||||
void func_8004CB30(s32, s32, u8*);
|
||||
void func_8004CB60(s32, s32, u8*);
|
||||
void func_8004CB90(s32, s32, u8*);
|
||||
void func_8004CBC0(s32, s32, f32, u8*);
|
||||
void func_8004CBF4(s32, s32, u8*);
|
||||
void func_8004CC24(s32, s32, u8*);
|
||||
void func_8004CC54(s32, s32, u8*);
|
||||
void func_8004CC84(s32, s32, u8*);
|
||||
void func_8004CCB4(s32, s32, u8*);
|
||||
void func_8004CCE4(s32, s32, f32, u8*);
|
||||
void func_8004CD18(s32, s32, u8*);
|
||||
void func_8004CF9C(s32, s32, u8*, s32, s32, s32, s32);
|
||||
void func_8004CFF0(s32, s32, u8*, s32, s32, s32, s32);
|
||||
|
||||
void func_8004D044(s32, s32, s32, s32, s32, s32, s32, s32, s32, s32, s32);
|
||||
void func_800552BC(s32);
|
||||
void func_800450C8(u8*, s32, s32);
|
||||
void func_80044F34(u8*, s32, s32);
|
||||
void func_8004D044(s32, s32, u8*, s32, s32, s32, s32, s32, s32, s32, s32);
|
||||
void func_8004D0CC();
|
||||
void func_8004DC34(s32, s32, s32);
|
||||
void func_8004DC6C(s32, s32, s32);
|
||||
void func_8004DCA4(s32, s32, s32);
|
||||
void func_8004DCDC(s32, s32, s32);
|
||||
void func_8004DD0C(s32, s32, s32);
|
||||
void func_8004DD44(s32, s32, s32);
|
||||
void func_8004DD74(s32, s32, s32);
|
||||
void func_8004DDAC(s32, s32, s32);
|
||||
void func_8004DDDC(s32, s32, s32);
|
||||
void func_8004DE04(s32, s32, s32);
|
||||
void func_8004DE2C(s32, s32, s32);
|
||||
void func_8004DE54(s32, s32, s32);
|
||||
void func_8004DE84(s32, s32, s32);
|
||||
void func_8004DEB4(s32, s32, s32);
|
||||
void func_8004DEEC(s32, s32, s32);
|
||||
void func_8004DF24(s32, s32, s32);
|
||||
void func_8004DC34(s32, s32, u8*);
|
||||
void func_8004DC6C(s32, s32, u8*);
|
||||
void func_8004DCA4(s32, s32, u8*);
|
||||
void func_8004DCDC(s32, s32, u8*);
|
||||
void func_8004DD0C(s32, s32, u8*);
|
||||
void func_8004DD44(s32, s32, u8*);
|
||||
void func_8004DD74(s32, s32, u8*);
|
||||
void func_8004DDAC(s32, s32, u8*);
|
||||
void func_8004DDDC(s32, s32, u8*);
|
||||
void func_8004DE04(s32, s32, u8*);
|
||||
void func_8004DE2C(s32, s32, u8*);
|
||||
void func_8004DE54(s32, s32, u8*);
|
||||
void func_8004DE84(s32, s32, u8*);
|
||||
void func_8004DEB4(s32, s32, u8*);
|
||||
void func_8004DEEC(s32, s32, u8*);
|
||||
void func_8004DF24(s32, s32, u8*);
|
||||
|
||||
void func_8004F6D0(s32);
|
||||
void func_8004E238();
|
||||
void func_8004E240(s32, s32, u8*, s32, s32, s32, s32);
|
||||
void func_8004E2B8(s32, s32, s32, s32, s32, s32, s32, s32);
|
||||
void func_8004E338(s32, s32, u8*, s32, s32, s32);
|
||||
void func_8004E240(s32, s32, u8*, u8*, s32, s32, s32);
|
||||
void func_8004E2B8(s32, s32, s32, u8*, u8*, s32, s32, s32);
|
||||
void func_8004E338(s32, s32, u8*, u8*, s32, s32);
|
||||
void func_8004E3B8();
|
||||
void func_8004E3C0(s32, s32, s32, s32, s32, s32, s32, s32);
|
||||
void func_8004E3F4(s32, s32, s32, s32, s32, s32, s32, s32, s32);
|
||||
void func_8004E430(s32, s32, s32, s32);
|
||||
void func_8004E464(s32, s32, s32, s32);
|
||||
void func_8004E498(s32, s32, s32, s32);
|
||||
void func_8004E4CC(s32, s32, s32, s32);
|
||||
void func_8004E500(s32, s32, s32, s32);
|
||||
void func_8004E534(s32, s32, s32, s32);
|
||||
void func_8004E568(s32, s32, s32, s32);
|
||||
void func_8004E59C(s32, s32, s32, s32, s32);
|
||||
void func_8004E5D8(s32, s32, u8*, s32);
|
||||
void func_8004E604(s32, s32, u8*, s32);
|
||||
void func_8004E3C0(s32, s32, u8*, u8*, s32, s32, s32, s32);
|
||||
void func_8004E3F4(s32, s32, s32, u8*, u8*, s32, s32, s32, s32);
|
||||
void func_8004E430(s32, s32, u8*, u8*);
|
||||
void func_8004E464(s32, s32, u8*, u8*);
|
||||
void func_8004E498(s32, s32, u8*, u8*);
|
||||
void func_8004E4CC(s32, s32, u8*, u8*);
|
||||
void func_8004E500(s32, s32, u8*, u8*);
|
||||
void func_8004E534(s32, s32, u8*, u8*);
|
||||
void func_8004E568(s32, s32, u8*, u8*);
|
||||
void func_8004E59C(s32, s32, s32, u8*, u8*);
|
||||
void func_8004E5D8(s32, s32, u8*, u8*);
|
||||
void func_8004E604(s32, s32, u8*, u8*);
|
||||
void func_8004E638(s32);
|
||||
void func_8004E6C4(s32);
|
||||
void func_8004E78C(s32);
|
||||
|
|
@ -280,6 +289,7 @@ void func_8004EB38(s32);
|
|||
void func_8004ED40(s32);
|
||||
void func_8004EE54(s32);
|
||||
|
||||
void func_8004EF9C(s32);
|
||||
void func_8004F020(s32);
|
||||
void func_8004F3E4(s32);
|
||||
s32 func_8004F674(s32*, s32);
|
||||
|
|
@ -363,6 +373,8 @@ void func_80056A40(s32, s32);
|
|||
void func_80056A94(s32);
|
||||
void func_80056AC0(s32);
|
||||
|
||||
//void debug_print_number(s32*, s32*, u8*,u32);
|
||||
void func_8005762C(s32*,s32*,s32,u32);
|
||||
void func_80057330();
|
||||
void func_80057338();
|
||||
void func_800573BC();
|
||||
|
|
@ -375,20 +387,16 @@ void debug_wrap_text(s32*, s32*);
|
|||
void func_80057708();
|
||||
void load_debug_font();
|
||||
void func_80057778();
|
||||
void debug_print_str2(s32, s32, s8*);
|
||||
void print_str_num(s32, s32, s8*, s32);
|
||||
void func_80057814(s32, s32, s8*, s32);
|
||||
void func_80057858(s32, s32, s8*, s32);
|
||||
void func_800578B0(s32, s32, s8*, s32);
|
||||
void func_80057908(s32, s32, s8*, s32);
|
||||
void func_80057960(s32, s32, s8*, s32);
|
||||
void func_800579B8(s32, s32, s8*);
|
||||
void func_800579F8(s32, s32, s8*, s32);
|
||||
void func_80057A50(s32*, s32*, char*, s32);
|
||||
void func_80057AA8(s32, s32, s8*, s32);
|
||||
void func_80057B14(s32, s32, s8*, s32);
|
||||
void func_80057B80(s32, s32, s8*, s32);
|
||||
void func_80057BEC(s32, s32, s8*, s32);
|
||||
void debug_print_str2(s32, s32, char*);
|
||||
void print_str_num(s32, s32, char*, u32);
|
||||
void func_80057814(s32, s32, char*, u32);
|
||||
void func_80057858(s32, s32, char*, u32);
|
||||
void func_800578B0(s32, s32, char*, u32);
|
||||
void func_80057908(s32, s32, char*, u32);
|
||||
void func_80057960(s32, s32, char*, u32);
|
||||
void func_800579B8(s32, s32, char*);
|
||||
void func_800579F8(s32, s32, char*, u32);
|
||||
void func_80057A50(s32, s32, char*, u32);
|
||||
|
||||
extern s32 D_80165860;
|
||||
extern s32 D_8016586C;
|
||||
|
|
@ -403,11 +411,11 @@ extern s32 D_80183DD8[];
|
|||
extern Vec3f D_80183E40;
|
||||
extern Vec3f D_80183E50;
|
||||
extern Vec3f D_80183E70;
|
||||
extern Vec3s D_80183E80;
|
||||
extern Vec3s D_80183E98;
|
||||
extern Vec3su D_80183E80;
|
||||
extern Vec3su D_80183E98;
|
||||
extern s32 D_80183EAC;
|
||||
extern UnkActorInner D_8018C830;
|
||||
extern s32 D_8018D1E0;
|
||||
extern u8 *D_8018D1E0;
|
||||
extern s32 D_8018D1F0;
|
||||
|
||||
extern struct UnkStruct_800DC5EC *D_800DC5F0;
|
||||
|
|
@ -426,7 +434,7 @@ extern u8 gTLUTWhomp[]; // Some type of pallette?
|
|||
extern Gfx *gDisplayListHead;
|
||||
|
||||
// Stuff from undefined_syms.txt, don't know where else to put them
|
||||
extern s8 D_06013670[];
|
||||
extern u8 D_06013670[];
|
||||
extern Gfx D_06007218[];
|
||||
extern Gfx D_0600F650[];
|
||||
extern Gfx D_0600F960[];
|
||||
|
|
|
|||
|
|
@ -14,11 +14,11 @@
|
|||
|
||||
#ifdef NON_MATCHING
|
||||
// Nearly matches
|
||||
UNUSED s32 func_802B4F60(s32 arg0, Vec3f arg1, s32 arg2, f32 arg3, f32 arg4)
|
||||
UNUSED s32 func_802B4F60(UNUSED s32 arg0, Vec3f arg1, UNUSED s32 arg2, UNUSED f32 arg3, UNUSED f32 arg4)
|
||||
{
|
||||
Mat4 sp30;
|
||||
f32 sp2C;
|
||||
f32 a;
|
||||
UNUSED f32 a;
|
||||
Vec3f sp1C;
|
||||
vec3f_copy(sp1C, arg1);
|
||||
sp2C = sp30[3][3] + (((sp1C[0] * sp30[0][3]) + (sp1C[1] * sp30[1][3])) + (sp30[2][3] * sp1C[2]));
|
||||
|
|
|
|||
13
src/memory.c
13
src/memory.c
|
|
@ -375,7 +375,7 @@ UNUSED u8 *func_802A841C(u8* arg0, s32 arg1, s32 arg2) {
|
|||
return temp_v0;
|
||||
}
|
||||
|
||||
u8 *dma_textures(u8 *arg0, u32 arg1, u32 arg2) {
|
||||
u8 *dma_textures(u8 texture[], u32 arg1, u32 arg2) {
|
||||
u8 *temp_v0;
|
||||
void *temp_a0;
|
||||
|
||||
|
|
@ -384,7 +384,7 @@ u8 *dma_textures(u8 *arg0, u32 arg1, u32 arg2) {
|
|||
arg1 = ALIGN16(arg1);
|
||||
arg2 = ALIGN16(arg2);
|
||||
osInvalDCache((void *) temp_a0, arg1);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, (uintptr_t) &_other_texturesSegmentRomStart[SEGMENT_OFFSET(arg0)], (void *)temp_a0, arg1, &gDmaMesgQueue);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, (uintptr_t) &_other_texturesSegmentRomStart[SEGMENT_OFFSET(texture)], (void *)temp_a0, arg1, &gDmaMesgQueue);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, (int) 1);
|
||||
mio0decode((u8 *) temp_a0, temp_v0);
|
||||
gNextFreeMemoryAddress += arg2;
|
||||
|
|
@ -412,7 +412,11 @@ void func_802A86A8(mk64_Vtx *data, u32 arg1) {
|
|||
mk64_Vtx_n *vtx_n = (mk64_Vtx_n *) data;
|
||||
Vtx *vtx;
|
||||
s32 tmp = ALIGN16(arg1 * 0x10);
|
||||
#ifdef AVOID_UB
|
||||
u32 i;
|
||||
#else
|
||||
s32 i;
|
||||
#endif
|
||||
s8 temp_a0;
|
||||
s8 temp_a3;
|
||||
s8 flags;
|
||||
|
|
@ -420,6 +424,7 @@ void func_802A86A8(mk64_Vtx *data, u32 arg1) {
|
|||
gHeapEndPtr -= tmp;
|
||||
vtx = (Vtx *) gHeapEndPtr;
|
||||
|
||||
// s32 to u32 comparison required for matching.
|
||||
for (i = 0; i < arg1; i++) {
|
||||
if (gIsMirrorMode) {
|
||||
vtx->n.ob[0] = -vtx_n->ob[0];
|
||||
|
|
@ -447,7 +452,7 @@ void func_802A86A8(mk64_Vtx *data, u32 arg1) {
|
|||
}
|
||||
}
|
||||
|
||||
void decompress_vtx(u8 *arg0, u32 vertexCount) {
|
||||
void decompress_vtx(mk64_Vtx *arg0, u32 vertexCount) {
|
||||
s32 size = ALIGN16(vertexCount * 0x18);
|
||||
u32 segment = SEGMENT_NUMBER2(arg0);
|
||||
u32 offset = SEGMENT_OFFSET(arg0);
|
||||
|
|
@ -1322,7 +1327,7 @@ u8 *load_course(s32 courseId) {
|
|||
u8 *vertexRomEnd;
|
||||
UNUSED s32 pad2[2];
|
||||
u32 *textures;
|
||||
u8 *vertexStart; // mio0 compressed
|
||||
mk64_Vtx *vertexStart; // mio0 compressed
|
||||
u8 *packedStart;
|
||||
u32 vertexCount;
|
||||
uintptr_t finalDisplaylistOffset;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#include "types.h"
|
||||
#include <types.h>
|
||||
|
||||
static Vtx silver_trophy_model[] = {
|
||||
Vtx silver_trophy_model[] = {
|
||||
|
||||
{{{ 203, -400, 0}, 0, {0, 0}, {0x28, 0x00, 0x00, 0xff}}},
|
||||
{{{ 164, -400, -119}, 0, {0, 0}, {0x28, 0x00, 0x00, 0xff}}},
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
# util.mk - Miscellaneous utility functions for use in Makefiles
|
||||
|
||||
# Throws an error if the value of the variable named by $(1) is not in the list given by $(2)
|
||||
define validate-option
|
||||
# value must be part of the list
|
||||
ifeq ($$(filter $($(1)),$(2)),)
|
||||
$$(error Value of $(1) must be one of the following: $(2))
|
||||
endif
|
||||
# value must be a single word (no whitespace)
|
||||
ifneq ($$(words $($(1))),1)
|
||||
$$(error Value of $(1) must be one of the following: $(2))
|
||||
endif
|
||||
endef
|
||||
|
||||
# Returns the path to the command $(1) if exists. Otherwise returns an empty string.
|
||||
find-command = $(shell which $(1) 2>/dev/null)
|
||||
Loading…
Reference in New Issue