You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
Merge branch 'master' of https://github.com/Reonu/HackerSM64 into shift_segs_2
This commit is contained in:
27
Makefile
27
Makefile
@@ -43,8 +43,9 @@ endif
|
||||
|
||||
# COMPILER - selects the C compiler to use
|
||||
# gcc - uses the GNU C Compiler
|
||||
# clang - uses clang C/C++ frontend for LLVM
|
||||
COMPILER ?= gcc
|
||||
$(eval $(call validate-option,COMPILER,gcc))
|
||||
$(eval $(call validate-option,COMPILER,gcc clang))
|
||||
|
||||
|
||||
# LIBGCCDIR - selects the libgcc configuration for checking for dividing by zero
|
||||
@@ -158,7 +159,12 @@ LINK_LIBRARIES = $(foreach i,$(LIBRARIES),-l$(i))
|
||||
ifeq ($(COMPILER),gcc)
|
||||
NON_MATCHING := 1
|
||||
MIPSISET := -mips3
|
||||
OPT_FLAGS := -O2 -g
|
||||
OPT_FLAGS := -O2
|
||||
else ifeq ($(COMPILER),clang)
|
||||
NON_MATCHING := 1
|
||||
# clang doesn't support ABI 'o32' for 'mips3'
|
||||
MIPSISET := -mips2
|
||||
OPT_FLAGS := -O2
|
||||
endif
|
||||
|
||||
|
||||
@@ -390,6 +396,8 @@ export LD_LIBRARY_PATH=./tools
|
||||
AS := $(CROSS)as
|
||||
ifeq ($(COMPILER),gcc)
|
||||
CC := $(CROSS)gcc
|
||||
else ifeq ($(COMPILER),clang)
|
||||
CC := clang
|
||||
endif
|
||||
# Prefer gcc's cpp if installed on the system
|
||||
ifneq (,$(call find-command,cpp-10))
|
||||
@@ -423,9 +431,12 @@ DEF_INC_CFLAGS := $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(C_DEFINES)
|
||||
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 -Wno-missing-braces -fno-jump-tables
|
||||
else ifeq ($(COMPILER),clang)
|
||||
CFLAGS += -target mips -mabi=32 -G 0 -mhard-float -fomit-frame-pointer -fno-stack-protector -fno-common -I include -I src/ -I $(BUILD_DIR)/include -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-missing-braces -fno-jump-tables
|
||||
else
|
||||
CFLAGS += -non_shared -Wab,-r4300_mul -Xcpluscomm -Xfullwarn -signed -32
|
||||
endif
|
||||
ASMFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) -mips3 $(DEF_INC_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
|
||||
|
||||
ASFLAGS := -march=vr4300 -mabi=32 $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(foreach d,$(DEFINES),--defsym $(d))
|
||||
RSPASMFLAGS := $(foreach d,$(DEFINES),-definelabel $(subst =, ,$(d)))
|
||||
@@ -479,8 +490,8 @@ YELLOW := \033[0;33m
|
||||
BLINK := \033[33;5m
|
||||
endif
|
||||
|
||||
# Use Objcopy instead of extract_data_for_mio
|
||||
ifeq ($(COMPILER),gcc)
|
||||
# For non-IDO, use objcopy instead of extract_data_for_mio
|
||||
ifneq ($(COMPILER),ido)
|
||||
EXTRACT_DATA_FOR_MIO := $(OBJCOPY) -O binary --only-section=.data
|
||||
endif
|
||||
|
||||
@@ -745,7 +756,7 @@ $(BUILD_DIR)/%.o: $(BUILD_DIR)/%.c
|
||||
# Assemble assembly code
|
||||
$(BUILD_DIR)/%.o: %.s
|
||||
$(call print,Assembling:,$<,$@)
|
||||
$(V)$(CC) -c $(CFLAGS) $(foreach i,$(INCLUDE_DIRS),-Wa,-I$(i)) -x assembler-with-cpp -MMD -MF $(BUILD_DIR)/$*.d -o $@ $<
|
||||
$(V)$(CROSS)gcc -c $(ASMFLAGS) $(foreach i,$(INCLUDE_DIRS),-Wa,-I$(i)) -x assembler-with-cpp -MMD -MF $(BUILD_DIR)/$*.d -o $@ $<
|
||||
|
||||
# Assemble RSP assembly code
|
||||
$(BUILD_DIR)/rsp/%.bin $(BUILD_DIR)/rsp/%_data.bin: rsp/%.s
|
||||
@@ -788,7 +799,13 @@ $(ELF): $(O_FILES) $(YAY0_OBJ_FILES) $(SEG_FILES) $(BUILD_DIR)/$(LD_SCRIPT) unde
|
||||
# Build ROM
|
||||
$(ROM): $(ELF)
|
||||
$(call print,Building ROM:,$<,$@)
|
||||
ifeq ($(CONSOLE),n64)
|
||||
$(V)$(OBJCOPY) --pad-to=0x800000 --gap-fill=0xFF $< $@ -O binary
|
||||
else ifeq ($(CONSOLE),bb)
|
||||
$(V)$(OBJCOPY) --gap-fill=0x00 $< $@ -O binary
|
||||
$(V)dd if=$@ of=tmp bs=16K conv=sync
|
||||
$(V)mv tmp $@
|
||||
endif
|
||||
$(V)$(N64CKSUM) $@
|
||||
|
||||
$(BUILD_DIR)/$(TARGET).objdump: $(ELF)
|
||||
|
||||
@@ -37,7 +37,7 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
|
||||
|
||||
**Hacker QOL:**
|
||||
- Global, non-level based, star IDs (off by default) *
|
||||
- FPS counter (use the function `print_fps(x,y)` anywhere that runs code every frame)
|
||||
- Debug mode: prints mario's coordinates, angle and speed, and a FPS counter.
|
||||
- Automatic console/emulator detection. If emulator is detected, LODs are disabled. *
|
||||
- Ability to configure whether there's a 100 coin star at all and how many coins are required to spawn it *
|
||||
- Ability to easily change the warp that EXIT COURSE takes you to via config.h, or disable it entirely. *
|
||||
@@ -53,6 +53,7 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
|
||||
- Expanded audio heap allows for a larger concurrent note count and the importing of more m64 sequences and sound banks (By ArcticJaguar725) *
|
||||
- You can set a test level in config.h in order to boot straight into it, so you can quickly test the level you're working on. *
|
||||
- Allows all surfaces in the game to have a `force` parameter. Activating this doesn't REQUIRE you to set `force` for every surface: If you don't set, it will default to 0x0000 rather than crashing. Increases RAM usage of collision. *
|
||||
- The clown font includes the entire English alphabet.
|
||||
- Colored ia4 text support. Format: `"@XXXXXXXX[YOUR TEXT]@--------"` (By ArcticJaguar725)
|
||||
- Example Text: `"@FF0000FFRED @00FF00FFGREEN @0000FFFFBLUE @FFFFFF00INVISIBLE @--------NORMAL"`
|
||||
- NOTE: It is not mandatory to reset the text color with `"@--------"`, but text will need to be recolored each time it scrolls in a dialog box, or the custom color will reset.
|
||||
|
||||
@@ -5,39 +5,39 @@ const GeoLayout chilly_chief_geo[] = {
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SCALE(0, 0x7333),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 75, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 75, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 146, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 146, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, chilly_chief_seg6_dl_06002B30),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, chilly_chief_seg6_dl_06002B30),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, -75, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, -75, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 146, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 146, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, chilly_chief_seg6_dl_06002BC8),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, chilly_chief_seg6_dl_06002BC8),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_BILLBOARD(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, chilly_chief_seg6_dl_06002D88),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, chilly_chief_seg6_dl_06002C60),
|
||||
GEO_ANIMATED_PART(4, 0, 0, 0, chilly_chief_seg6_dl_06003010),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, chilly_chief_seg6_dl_06002C60),
|
||||
GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, chilly_chief_seg6_dl_06003010),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
@@ -51,39 +51,39 @@ const GeoLayout chilly_chief_big_geo[] = {
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SCALE(0, 0xE666),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 75, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 75, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 146, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 146, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, chilly_chief_seg6_dl_06002B30),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, chilly_chief_seg6_dl_06002B30),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, -75, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, -75, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 146, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 146, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, chilly_chief_seg6_dl_06002BC8),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, chilly_chief_seg6_dl_06002BC8),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_BILLBOARD(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, chilly_chief_seg6_dl_06002EF0),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, chilly_chief_seg6_dl_06002C60),
|
||||
GEO_ANIMATED_PART(4, 0, 0, 0, chilly_chief_seg6_dl_06003010),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, chilly_chief_seg6_dl_06002C60),
|
||||
GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, chilly_chief_seg6_dl_06003010),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
|
||||
@@ -13,7 +13,6 @@ UNUSED static const u64 binid_0 = 0;
|
||||
|
||||
#include "wiggler_body/model.inc.c"
|
||||
#include "wiggler_body/anims/data.inc.c"
|
||||
#include "wiggler_body/geo.inc.c"
|
||||
#include "wiggler_body/anims/table.inc.c"
|
||||
|
||||
#include "wiggler_head/model.inc.c"
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "group11.h"
|
||||
|
||||
#include "bubba/geo.inc.c"
|
||||
#include "wiggler_body/geo.inc.c"
|
||||
#include "wiggler_head/geo.inc.c"
|
||||
#include "lakitu_enemy/geo.inc.c"
|
||||
#include "spiny_egg/geo.inc.c"
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
|
||||
#include "chillychief/model.inc.c"
|
||||
#include "chillychief/anims/data.inc.c"
|
||||
#include "chillychief/geo.inc.c"
|
||||
#include "chillychief/anims/table.inc.c"
|
||||
UNUSED static const u64 binid_0 = 0;
|
||||
|
||||
|
||||
@@ -7,4 +7,5 @@
|
||||
#include "common1.h"
|
||||
#include "group16.h"
|
||||
|
||||
#include "chillychief/geo.inc.c"
|
||||
#include "moneybag/geo.inc.c"
|
||||
|
||||
@@ -14,7 +14,6 @@ UNUSED static const u64 binid_0 = 0;
|
||||
|
||||
#include "manta/model.inc.c"
|
||||
#include "manta/anims/data.inc.c"
|
||||
#include "manta/geo.inc.c"
|
||||
#include "manta/anims/table.inc.c"
|
||||
UNUSED static const u64 binid_1 = 1;
|
||||
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
#include "group4.h"
|
||||
|
||||
#include "clam_shell/geo.inc.c"
|
||||
#include "manta/geo.inc.c"
|
||||
#include "sushi/geo.inc.c"
|
||||
#include "unagi/geo.inc.c"
|
||||
|
||||
@@ -2,56 +2,56 @@
|
||||
const GeoLayout manta_seg5_geo_05008D14[] = {
|
||||
GEO_SCALE(0, 16384),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, manta_seg5_dl_05006750),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, manta_seg5_dl_05006750),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 440, 220, 6, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 440, 220, 6, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, manta_seg5_dl_05005358),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, manta_seg5_dl_05005358),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 220, 0, 0, manta_seg5_dl_050055A8),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 220, 0, 0, manta_seg5_dl_050055A8),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 180, 0, 0, manta_seg5_dl_05005768),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 180, 0, 0, manta_seg5_dl_05005768),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(1, 440, -220, 6, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 440, -220, 6, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, manta_seg5_dl_05005C38),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, manta_seg5_dl_05005C38),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 220, 0, 0, manta_seg5_dl_05005E88),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 220, 0, 0, manta_seg5_dl_05005E88),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 180, 0, 0, manta_seg5_dl_05006048),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 180, 0, 0, manta_seg5_dl_05006048),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, manta_seg5_dl_05006C08),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, manta_seg5_dl_05006C08),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 168, 0, 0, manta_seg5_dl_05006B70),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 168, 0, 0, manta_seg5_dl_05006B70),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 236, 0, 0, manta_seg5_dl_05006B08),
|
||||
GEO_ANIMATED_PART(1, 236, 0, 0, manta_seg5_dl_05004E90),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 236, 0, 0, manta_seg5_dl_05006B08),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 236, 0, 0, manta_seg5_dl_05004E90),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(1, 688, 120, -6, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 688, 120, -6, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, manta_seg5_dl_05005038),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, manta_seg5_dl_05005038),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(1, 668, 170, 6, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 668, 170, 6, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, manta_seg5_dl_05004DB8),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, manta_seg5_dl_05004DB8),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(1, 688, -120, -6, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 688, -120, -6, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, manta_seg5_dl_05005918),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, manta_seg5_dl_05005918),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(1, 668, -170, 6, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 668, -170, 6, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, manta_seg5_dl_05004A70),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, manta_seg5_dl_05004A70),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
|
||||
@@ -4,9 +4,9 @@ const GeoLayout wiggler_body_geo[] = {
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SCALE(0, 16384),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_BILLBOARD(),
|
||||
GEO_OPEN_NODE(),
|
||||
@@ -14,23 +14,23 @@ const GeoLayout wiggler_body_geo[] = {
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, -31, 0, 51, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, -31, 0, 51, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, wiggler_seg5_dl_0500BE98),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, wiggler_seg5_dl_0500BE98),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 39, 0, 0, wiggler_seg5_dl_0500BE10),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 39, 0, 0, wiggler_seg5_dl_0500BE10),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 41, 0, 0, wiggler_seg5_dl_0500BCB8),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 41, 0, 0, wiggler_seg5_dl_0500BCB8),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(1, -31, 0, -49, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, -31, 0, -49, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 0, 0, 0, wiggler_seg5_dl_0500C100),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, wiggler_seg5_dl_0500C100),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 39, 0, 0, wiggler_seg5_dl_0500C078),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 39, 0, 0, wiggler_seg5_dl_0500C078),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(1, 41, 0, 0, wiggler_seg5_dl_0500BF20),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 41, 0, 0, wiggler_seg5_dl_0500BF20),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
|
||||
@@ -86,11 +86,9 @@ ALIGNED8 static const Texture texture_hud_char_I[] = {
|
||||
#include "textures/segment2/segment2.02400.rgba16.inc.c"
|
||||
};
|
||||
|
||||
#if defined(VERSION_JP) || defined(VERSION_SH)
|
||||
ALIGNED8 static const Texture texture_hud_char_J[] = {
|
||||
#include "textures/segment2/segment2.02600.rgba16.inc.c"
|
||||
};
|
||||
#endif
|
||||
|
||||
ALIGNED8 static const Texture texture_hud_char_K[] = {
|
||||
#include "textures/segment2/segment2.02800.rgba16.inc.c"
|
||||
@@ -116,11 +114,9 @@ ALIGNED8 static const Texture texture_hud_char_P[] = {
|
||||
#include "textures/segment2/segment2.03200.rgba16.inc.c"
|
||||
};
|
||||
|
||||
#if defined(VERSION_JP) || defined(VERSION_SH)
|
||||
ALIGNED8 static const Texture texture_hud_char_Q[] = {
|
||||
#include "textures/segment2/segment2.03400.rgba16.inc.c"
|
||||
};
|
||||
#endif
|
||||
|
||||
ALIGNED8 static const Texture texture_hud_char_R[] = {
|
||||
#include "textures/segment2/segment2.03600.rgba16.inc.c"
|
||||
@@ -138,31 +134,25 @@ ALIGNED8 static const Texture texture_hud_char_U[] = {
|
||||
#include "textures/segment2/segment2.03C00.rgba16.inc.c"
|
||||
};
|
||||
|
||||
#if defined(VERSION_JP) || defined(VERSION_EU) || defined(VERSION_SH)
|
||||
ALIGNED8 static const Texture texture_hud_char_V[] = {
|
||||
#include "textures/segment2/segment2.03E00.rgba16.inc.c"
|
||||
};
|
||||
#endif
|
||||
|
||||
ALIGNED8 static const Texture texture_hud_char_W[] = {
|
||||
#include "textures/segment2/segment2.04000.rgba16.inc.c"
|
||||
};
|
||||
|
||||
#if defined(VERSION_JP) || defined(VERSION_SH)
|
||||
ALIGNED8 static const Texture texture_hud_char_X[] = {
|
||||
#include "textures/segment2/segment2.04200.rgba16.inc.c"
|
||||
};
|
||||
#endif
|
||||
|
||||
ALIGNED8 static const Texture texture_hud_char_Y[] = {
|
||||
#include "textures/segment2/segment2.04400.rgba16.inc.c"
|
||||
};
|
||||
|
||||
#if defined(VERSION_JP) || defined(VERSION_EU) || defined(VERSION_SH)
|
||||
ALIGNED8 static const Texture texture_hud_char_Z[] = {
|
||||
#include "textures/segment2/segment2.04600.rgba16.inc.c"
|
||||
};
|
||||
#endif
|
||||
|
||||
ALIGNED8 static const Texture texture_hud_char_apostrophe[] = {
|
||||
#include "textures/segment2/segment2.04800.rgba16.inc.c"
|
||||
@@ -178,7 +168,6 @@ ALIGNED8 static const Texture texture_hud_char_umlaut[] = {
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(VERSION_JP) || defined(VERSION_SH)
|
||||
ALIGNED8 static const Texture texture_hud_char_exclamation[] = {
|
||||
#include "textures/segment2/segment2.04C00.rgba16.inc.c"// JP !
|
||||
};
|
||||
@@ -198,7 +187,6 @@ ALIGNED8 static const Texture texture_hud_char_ampersand[] = {
|
||||
ALIGNED8 static const Texture texture_hud_char_percent[] = {
|
||||
#include "textures/segment2/segment2.05400.rgba16.inc.c"// JP %
|
||||
};
|
||||
#endif
|
||||
|
||||
ALIGNED8 static const Texture texture_hud_char_multiply[] = {
|
||||
#include "textures/segment2/segment2.05600.rgba16.inc.c"
|
||||
@@ -216,11 +204,9 @@ ALIGNED8 static const Texture texture_hud_char_star[] = {
|
||||
#include "textures/segment2/segment2.05C00.rgba16.inc.c"
|
||||
};
|
||||
|
||||
#if defined(VERSION_JP) || defined(VERSION_SH)
|
||||
ALIGNED8 static const Texture texture_hud_char_decimal_point[] = {
|
||||
#include "textures/segment2/segment2.05E00.rgba16.inc.c"
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(VERSION_JP) || defined(VERSION_SH)
|
||||
ALIGNED8 static const Texture texture_hud_char_beta_key[] = {
|
||||
@@ -1827,16 +1813,16 @@ const Texture *const main_hud_lut[] = {
|
||||
texture_hud_char_4, texture_hud_char_5, texture_hud_char_6, texture_hud_char_7,
|
||||
texture_hud_char_8, texture_hud_char_9, texture_hud_char_A, texture_hud_char_B,
|
||||
texture_hud_char_C, texture_hud_char_D, texture_hud_char_E, texture_hud_char_F,
|
||||
texture_hud_char_G, texture_hud_char_H, texture_hud_char_I, 0x0,
|
||||
texture_hud_char_G, texture_hud_char_H, texture_hud_char_I, texture_hud_char_J,
|
||||
texture_hud_char_K, texture_hud_char_L, texture_hud_char_M, texture_hud_char_N,
|
||||
texture_hud_char_O, texture_hud_char_P, 0x0, texture_hud_char_R,
|
||||
texture_hud_char_S, texture_hud_char_T, texture_hud_char_U, 0x0,
|
||||
texture_hud_char_W, 0x0, texture_hud_char_Y, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0,
|
||||
texture_hud_char_O, texture_hud_char_P, texture_hud_char_Q, texture_hud_char_R,
|
||||
texture_hud_char_S, texture_hud_char_T, texture_hud_char_U, texture_hud_char_V,
|
||||
texture_hud_char_W, texture_hud_char_X, texture_hud_char_Y, texture_hud_char_Z,
|
||||
texture_hud_char_exclamation, texture_hud_char_double_exclamation, texture_hud_char_question, texture_hud_char_ampersand,
|
||||
texture_hud_char_percent, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, texture_hud_char_multiply, texture_hud_char_coin,
|
||||
texture_hud_char_mario_head, texture_hud_char_star, 0x0, 0x0,
|
||||
texture_hud_char_mario_head, texture_hud_char_star, texture_hud_char_decimal_point, 0x0,
|
||||
texture_hud_char_apostrophe, texture_hud_char_double_quote,
|
||||
#else
|
||||
texture_hud_char_0, texture_hud_char_1, texture_hud_char_2, texture_hud_char_3,
|
||||
|
||||
@@ -3507,7 +3507,7 @@ UNUSED static const u64 behavior_data_unused_0 = 0;
|
||||
const BehaviorScript bhvMario[] = {
|
||||
BEGIN(OBJ_LIST_PLAYER),
|
||||
SET_INT(oIntangibleTimer, 0),
|
||||
OR_INT(oFlags, OBJ_FLAG_0100),
|
||||
OR_INT(oFlags, OBJ_FLAG_PLAYER),
|
||||
OR_INT(oUnk94, 0x0001),
|
||||
SET_HITBOX(/*Radius*/ 37, /*Height*/ 160),
|
||||
BEGIN_LOOP(),
|
||||
@@ -3631,7 +3631,7 @@ const BehaviorScript bhvMenuButton[] = {
|
||||
|
||||
const BehaviorScript bhvMenuButtonManager[] = {
|
||||
BEGIN(OBJ_LIST_LEVEL),
|
||||
OR_INT(oFlags, (OBJ_FLAG_SET_THROW_MATRIX_FROM_TRANSFORM | OBJ_FLAG_0020 | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
OR_INT(oFlags, (OBJ_FLAG_SET_THROW_MATRIX_FROM_TRANSFORM | OBJ_FLAG_UPDATE_TRANSFORM_FOR_THROW_MATRIX | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
CALL_NATIVE(bhv_menu_button_manager_init),
|
||||
BEGIN_LOOP(),
|
||||
SET_INT(oIntangibleTimer, 0),
|
||||
@@ -4828,7 +4828,7 @@ const BehaviorScript bhvHidden1upInPoleSpawner[] = {
|
||||
|
||||
const BehaviorScript bhvControllablePlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, (OBJ_FLAG_SET_THROW_MATRIX_FROM_TRANSFORM | OBJ_FLAG_0020 | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
OR_INT(oFlags, (OBJ_FLAG_SET_THROW_MATRIX_FROM_TRANSFORM | OBJ_FLAG_UPDATE_TRANSFORM_FOR_THROW_MATRIX | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
LOAD_COLLISION_DATA(hmc_seg7_collision_controllable_platform),
|
||||
SET_HOME(),
|
||||
CALL_NATIVE(bhv_controllable_platform_init),
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
diff --git a/include/text_strings.h.in b/include/text_strings.h.in
|
||||
index d266058..4b12426 100644
|
||||
index 8ccc6b1..d2bb516 100644
|
||||
--- a/include/text_strings.h.in
|
||||
+++ b/include/text_strings.h.in
|
||||
@@ -34,6 +34,12 @@
|
||||
#define TEXT_HUD_WIDE_INFO2 _("STRETCH THE IMAGE TO 16:9")
|
||||
@@ -33,6 +33,12 @@
|
||||
#define TEXT_HUD_WIDE_INFO _("PLEASE CONFIGURE YOUR DISPLAY OR YOUR EMULATOR TO\nSTRETCH THE IMAGE TO 16:9")
|
||||
#endif
|
||||
|
||||
+#define TEXT_CAM_INFO_SLOWEST _("CAM SPEED: SLOWEST")
|
||||
@@ -302,13 +302,13 @@ index dfcf16a..e56f8c0 100644
|
||||
}
|
||||
}
|
||||
diff --git a/src/game/game_init.c b/src/game/game_init.c
|
||||
index 6cfa8f5..63158e1 100644
|
||||
index 8693507..fb8729d 100644
|
||||
--- a/src/game/game_init.c
|
||||
+++ b/src/game/game_init.c
|
||||
@@ -46,6 +46,11 @@ OSContPad gControllerPads[4];
|
||||
u8 gControllerBits;
|
||||
u8 gIsConsole;
|
||||
u8 gBorderHeight;
|
||||
@@ -49,6 +49,11 @@ u8 gBorderHeight;
|
||||
#ifdef CUSTOM_DEBUG
|
||||
u8 gCustomDebugMode;
|
||||
#endif
|
||||
+u8 gCameraSpeed = 2;
|
||||
+u8 gWaterCamOverride;
|
||||
+u8 gFlyingCamOverride;
|
||||
@@ -317,7 +317,7 @@ index 6cfa8f5..63158e1 100644
|
||||
#ifdef EEP
|
||||
s8 gEepromProbe;
|
||||
#endif
|
||||
@@ -715,6 +720,7 @@ void thread5_game_loop(UNUSED void *arg) {
|
||||
@@ -725,6 +730,7 @@ void thread5_game_loop(UNUSED void *arg) {
|
||||
|
||||
play_music(SEQ_PLAYER_SFX, SEQUENCE_ARGS(0, SEQ_SOUND_PLAYER), 0);
|
||||
set_sound_mode(save_file_get_sound_mode());
|
||||
@@ -326,7 +326,7 @@ index 6cfa8f5..63158e1 100644
|
||||
gWidescreen = save_file_get_widescreen_mode();
|
||||
#endif
|
||||
diff --git a/src/game/game_init.h b/src/game/game_init.h
|
||||
index 87386ce..47e9724 100644
|
||||
index f3f650c..fdf20b6 100644
|
||||
--- a/src/game/game_init.h
|
||||
+++ b/src/game/game_init.h
|
||||
@@ -45,6 +45,10 @@ extern u8 gIsConsole;
|
||||
@@ -338,14 +338,14 @@ index 87386ce..47e9724 100644
|
||||
+extern u8 gFlyingCamOverride;
|
||||
+extern u8 gKeepCliffCam;
|
||||
extern u8 gBorderHeight;
|
||||
#ifdef EEP
|
||||
extern s8 gEepromProbe;
|
||||
#ifdef CUSTOM_DEBUG
|
||||
extern u8 gCustomDebugMode;
|
||||
diff --git a/src/game/ingame_menu.c b/src/game/ingame_menu.c
|
||||
index 9cd458a..ac2d18c 100644
|
||||
index 158154c..9ffefec 100644
|
||||
--- a/src/game/ingame_menu.c
|
||||
+++ b/src/game/ingame_menu.c
|
||||
@@ -39,6 +39,12 @@ u8 textWideInfo[] = { TEXT_HUD_WIDE_INFO };
|
||||
u8 textWideInfo2[] = { TEXT_HUD_WIDE_INFO2 };
|
||||
@@ -38,6 +38,12 @@ u8 textPressL[] = { TEXT_HUD_PRESS_L };
|
||||
u8 textWideInfo[] = { TEXT_HUD_WIDE_INFO };
|
||||
#endif
|
||||
|
||||
+u8 textCamInfoSlowest[] = { TEXT_CAM_INFO_SLOWEST };
|
||||
@@ -357,7 +357,7 @@ index 9cd458a..ac2d18c 100644
|
||||
extern u8 gLastCompletedCourseNum;
|
||||
extern u8 gLastCompletedStarNum;
|
||||
|
||||
@@ -1350,6 +1356,45 @@ void reset_red_coins_collected(void) {
|
||||
@@ -1434,6 +1440,45 @@ void reset_red_coins_collected(void) {
|
||||
gRedCoinsCollected = 0;
|
||||
}
|
||||
|
||||
@@ -403,19 +403,23 @@ index 9cd458a..ac2d18c 100644
|
||||
void change_dialog_camera_angle(void) {
|
||||
if (cam_select_alt_mode(0) == CAM_SELECTION_MARIO) {
|
||||
gDialogCameraAngleIndex = CAM_SELECTION_MARIO;
|
||||
@@ -1779,6 +1824,7 @@ s16 render_pause_courses_and_castle(void) {
|
||||
@@ -1866,6 +1911,11 @@ s16 render_pause_courses_and_castle(void) {
|
||||
}
|
||||
#ifdef WIDE
|
||||
render_widescreen_setting();
|
||||
+ render_camera_speed_setting();
|
||||
if (gPlayer1Controller->buttonPressed & L_TRIG){
|
||||
gWidescreen ^= 1;
|
||||
save_file_set_widescreen_mode(gWidescreen);
|
||||
+ if (gPlayer1Controller->buttonPressed & L_TRIG){
|
||||
+ gWidescreen ^= 1;
|
||||
+ save_file_set_widescreen_mode(gWidescreen);
|
||||
+ }
|
||||
#endif
|
||||
if (gDialogTextAlpha < 250) {
|
||||
gDialogTextAlpha += 25;
|
||||
diff --git a/src/game/mario.c b/src/game/mario.c
|
||||
index b381afa..7cb9549 100644
|
||||
index c0b5f76..b6da9d4 100644
|
||||
--- a/src/game/mario.c
|
||||
+++ b/src/game/mario.c
|
||||
@@ -1443,32 +1443,39 @@ void update_mario_inputs(struct MarioState *m) {
|
||||
@@ -1460,32 +1460,39 @@ void update_mario_inputs(struct MarioState *m) {
|
||||
void set_submerged_cam_preset_and_spawn_bubbles(struct MarioState *m) {
|
||||
f32 heightBelowWater;
|
||||
s16 camPreset;
|
||||
@@ -550,7 +554,7 @@ index b27d869..7fbf045 100644
|
||||
if (save_file_get_flags() & SAVE_FLAG_CAP_ON_GROUND) {
|
||||
switch (gSaveBuffer.files[gCurrSaveFileNum - 1][0].capLevel) {
|
||||
diff --git a/src/game/save_file.h b/src/game/save_file.h
|
||||
index 00fc042..7062ead 100644
|
||||
index 3ac0c4d..d46a7e1 100644
|
||||
--- a/src/game/save_file.h
|
||||
+++ b/src/game/save_file.h
|
||||
@@ -62,6 +62,7 @@ struct MainMenuSaveData
|
||||
@@ -560,7 +564,7 @@ index 00fc042..7062ead 100644
|
||||
+ u8 cameraSpeedSetting: 3;
|
||||
|
||||
#ifdef VERSION_EU
|
||||
u16 language;
|
||||
u8 language: 2;
|
||||
@@ -167,6 +168,8 @@ u16 save_file_get_sound_mode(void);
|
||||
u8 save_file_get_widescreen_mode(void);
|
||||
void save_file_set_widescreen_mode(u8 mode);
|
||||
|
||||
@@ -10,7 +10,7 @@ endif
|
||||
# Strip gzip header
|
||||
$(BUILD_DIR)/%.szp: $(BUILD_DIR)/%.gz
|
||||
$(call print,Converting:,$<,$@)
|
||||
$(V)dd bs=10 skip=1 if=$< of=$(<:.gz=.gz.strip)
|
||||
$(V)dd bs=10 skip=1 if=$< of=$(<:.gz=.gz.strip) status=none
|
||||
$(V)$(FILESIZER) $(<:.gz=.gz.strip) $@ `stat --format="%s" $(<:.gz=.bin)`
|
||||
|
||||
# convert binary szp to object file
|
||||
|
||||
@@ -84,8 +84,8 @@
|
||||
//#define NO_FALL_DAMAGE_SOUND
|
||||
// Number of coins to spawn the "100 coin" star. If you remove the define altogether, then there won't be a 100 coin star at all.
|
||||
#define X_COIN_STAR 100
|
||||
// Platform displacement 2 also known as momentum patch. Makes Mario keep the momemtum from moving platforms. Breaks treadmills.
|
||||
//#define PLATFORM_DISPLACEMENT_2
|
||||
// Platform displacement 2 also known as momentum patch. Makes Mario keep the momemtum from moving platforms. Doesn't break treadmills anymore!
|
||||
#define PLATFORM_DISPLACEMENT_2
|
||||
// Stars don't kick you out of the level
|
||||
// #define NON_STOP_STARS
|
||||
// Uncomment this if you want global star IDs (useful for creating an open world hack ala MVC)
|
||||
@@ -109,6 +109,8 @@
|
||||
#define EXPAND_AUDIO_HEAP
|
||||
// Allow all surfaces types to have force, (doesn't require setting force, just allows it to be optional).
|
||||
#define ALL_SURFACES_HAVE_FORCE
|
||||
// Custom debug mode. Press DPAD left to show the debug UI. Press DPAD right to enter the noclip mode.
|
||||
//#define CUSTOM_DEBUG
|
||||
|
||||
// BUG/GAME QOL FIXES
|
||||
// Fix instant warp offset not working when warping across different areas
|
||||
|
||||
@@ -28,23 +28,23 @@
|
||||
#define RESPAWN_INFO_DONT_RESPAWN 0xFF
|
||||
|
||||
/* oFlags */
|
||||
#define OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE (1 << 0) // 0x00000001
|
||||
#define OBJ_FLAG_MOVE_XZ_USING_FVEL (1 << 1) // 0x00000002
|
||||
#define OBJ_FLAG_MOVE_Y_WITH_TERMINAL_VEL (1 << 2) // 0x00000004
|
||||
#define OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW (1 << 3) // 0x00000008
|
||||
#define OBJ_FLAG_SET_FACE_ANGLE_TO_MOVE_ANGLE (1 << 4) // 0x00000010
|
||||
#define OBJ_FLAG_0020 (1 << 5) // 0x00000020
|
||||
#define OBJ_FLAG_COMPUTE_DIST_TO_MARIO (1 << 6) // 0x00000040
|
||||
#define OBJ_FLAG_ACTIVE_FROM_AFAR (1 << 7) // 0x00000080
|
||||
#define OBJ_FLAG_0100 (1 << 8) // 0x00000100
|
||||
#define OBJ_FLAG_TRANSFORM_RELATIVE_TO_PARENT (1 << 9) // 0x00000200
|
||||
#define OBJ_FLAG_HOLDABLE (1 << 10) // 0x00000400
|
||||
#define OBJ_FLAG_SET_THROW_MATRIX_FROM_TRANSFORM (1 << 11) // 0x00000800
|
||||
#define OBJ_FLAG_1000 (1 << 12) // 0x00001000
|
||||
#define OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO (1 << 13) // 0x00002000
|
||||
#define OBJ_FLAG_PERSISTENT_RESPAWN (1 << 14) // 0x00004000
|
||||
#define OBJ_FLAG_8000 (1 << 15) // 0x00008000
|
||||
#define OBJ_FLAG_30 (1 << 30) // 0x40000000
|
||||
#define OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE (1 << 0) // 0x00000001
|
||||
#define OBJ_FLAG_MOVE_XZ_USING_FVEL (1 << 1) // 0x00000002
|
||||
#define OBJ_FLAG_MOVE_Y_WITH_TERMINAL_VEL (1 << 2) // 0x00000004
|
||||
#define OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW (1 << 3) // 0x00000008
|
||||
#define OBJ_FLAG_SET_FACE_ANGLE_TO_MOVE_ANGLE (1 << 4) // 0x00000010
|
||||
#define OBJ_FLAG_UPDATE_TRANSFORM_FOR_THROW_MATRIX (1 << 5) // 0x00000020
|
||||
#define OBJ_FLAG_COMPUTE_DIST_TO_MARIO (1 << 6) // 0x00000040
|
||||
#define OBJ_FLAG_ACTIVE_FROM_AFAR (1 << 7) // 0x00000080
|
||||
#define OBJ_FLAG_PLAYER (1 << 8) // 0x00000100
|
||||
#define OBJ_FLAG_TRANSFORM_RELATIVE_TO_PARENT (1 << 9) // 0x00000200
|
||||
#define OBJ_FLAG_HOLDABLE (1 << 10) // 0x00000400
|
||||
#define OBJ_FLAG_SET_THROW_MATRIX_FROM_TRANSFORM (1 << 11) // 0x00000800
|
||||
#define OBJ_FLAG_1000 (1 << 12) // 0x00001000
|
||||
#define OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO (1 << 13) // 0x00002000
|
||||
#define OBJ_FLAG_PERSISTENT_RESPAWN (1 << 14) // 0x00004000
|
||||
#define OBJ_FLAG_8000 (1 << 15) // 0x00008000
|
||||
#define OBJ_FLAG_HITBOX_WAS_SET (1 << 30) // 0x40000000
|
||||
|
||||
/* oHeldState */
|
||||
#define HELD_FREE 0
|
||||
|
||||
@@ -17,9 +17,6 @@
|
||||
// Whether the node type has a function pointer of type GraphNodeFunc
|
||||
#define GRAPH_NODE_TYPE_FUNCTIONAL 0x100
|
||||
|
||||
// Type used for Bowser and an unused geo function in obj_behaviors.c
|
||||
#define GRAPH_NODE_TYPE_400 0x400
|
||||
|
||||
// The discriminant for different types of geo nodes
|
||||
#define GRAPH_NODE_TYPE_ROOT 0x001
|
||||
#define GRAPH_NODE_TYPE_ORTHO_PROJECTION 0x002
|
||||
|
||||
@@ -98,8 +98,7 @@ void bobomb_act_chase_mario(void) {
|
||||
}
|
||||
|
||||
void bobomb_act_launched(void) {
|
||||
s16 collisionFlags = 0;
|
||||
collisionFlags = object_step();
|
||||
s16 collisionFlags = object_step();
|
||||
if ((collisionFlags & OBJ_COL_FLAG_GROUNDED) == OBJ_COL_FLAG_GROUNDED)
|
||||
o->oAction = BOBOMB_ACT_EXPLODE; /* bit 0 */
|
||||
}
|
||||
@@ -203,7 +202,7 @@ void bobomb_thrown_loop(void) {
|
||||
|
||||
o->header.gfx.node.flags &= ~GRAPH_RENDER_INVISIBLE;
|
||||
o->oHeldState = 0;
|
||||
o->oFlags &= ~0x8; /* bit 3 */
|
||||
o->oFlags &= ~OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW; /* bit 3 */
|
||||
o->oForwardVel = 25.0;
|
||||
o->oVelY = 20.0;
|
||||
o->oAction = BOBOMB_ACT_LAUNCHED;
|
||||
|
||||
@@ -11,10 +11,8 @@ void bhv_big_boulder_init(void) {
|
||||
}
|
||||
|
||||
void boulder_act_1(void) {
|
||||
s16 sp1E;
|
||||
|
||||
sp1E = object_step_without_floor_orient();
|
||||
if ((sp1E & 0x09) == 0x01 && o->oVelY > 10.0f) {
|
||||
s16 collisionFlags = object_step_without_floor_orient();
|
||||
if ((collisionFlags & OBJ_COL_FLAGS_LANDED) == OBJ_COL_FLAG_GROUNDED && o->oVelY > 10.0f) {
|
||||
cur_obj_play_sound_2(SOUND_GENERAL_GRINDEL_ROLL);
|
||||
spawn_mist_particles();
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user