diff --git a/Makefile.split b/Makefile.split index 1ccade88..73feff12 100644 --- a/Makefile.split +++ b/Makefile.split @@ -29,7 +29,9 @@ ACTOR_GROUPS := \ group16 \ group17 \ common0 \ - common1 + common1 \ + custom0 \ + zcustom0 LEVEL_FILES := $(addsuffix leveldata,$(LEVEL_DIRS)) MIO0_FILES := $(addprefix $(MIO0_DIR)/,$(addsuffix .mio0,$(SEGMENTS))) $(addprefix $(BUILD_DIR)/actors/,$(addsuffix .mio0,$(ACTOR_GROUPS))) $(addprefix $(BUILD_DIR)/levels/,$(addsuffix .mio0,$(LEVEL_FILES))) @@ -66,10 +68,11 @@ BOWSER_DIRS := bowser_flame impact_ring yellow_sphere bowser bomb impact_sm MARIO_DIRS := mario bubble walk_smoke burn_smoke stomp_smoke water_wave sparkle water_splash white_particle_small sparkle_animation # Add Luigi -COINS_DIRS += luigi_cap -MARIO_DIRS += luigi +CUSTOM_DIRS := luigi_cap +ZCUSTOM_DIRS := luigi # Actor Files +CUSTOM_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(CUSTOM_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png))) AMP_CHUCKYA_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(AMP_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png))) BOBOMBS_BUBBLE_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(KING_BOBOMB_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png))) BOO_BOOKEND_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BOO_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png))) @@ -90,6 +93,7 @@ PEACH_TOADSTOOL_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(PEACH_ SEA_CREATURES_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(SEA_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png))) SKEETER_FISH_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(SKEETER_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png))) SPINDRIFT_PENGUIN_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(SPINDRIFT_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png))) +ZCUSTOM_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(ZCUSTOM_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png))) # Actor dependencies $(BUILD_DIR)/actors/group0.o: $(addprefix $(BUILD_DIR)/,$(MARIO_WATER_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(MARIO_DIRS)),$(wildcard $(dir)/*.c)) @@ -112,6 +116,8 @@ $(BUILD_DIR)/actors/group16.o: $(addprefix $(BUILD_DIR)/,$(CHILLYCHIEF_FILES)) $ $(BUILD_DIR)/actors/group17.o: $(addprefix $(BUILD_DIR)/,$(MR_I_SWOOP_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(MR_I_DIRS)),$(wildcard $(dir)/*.c)) $(BUILD_DIR)/actors/common0.o: $(addprefix $(BUILD_DIR)/,$(AMP_CHUCKYA_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(AMP_DIRS)),$(wildcard $(dir)/*.c)) $(BUILD_DIR)/actors/common1.o: $(addprefix $(BUILD_DIR)/,$(COINS_PIPE_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(COINS_DIRS)),$(wildcard $(dir)/*.c)) +$(BUILD_DIR)/actors/custom0.o: $(addprefix $(BUILD_DIR)/,$(CUSTOM_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(CUSTOM_DIRS)),$(wildcard $(dir)/*.c)) +$(BUILD_DIR)/actors/zcustom0.o: $(addprefix $(BUILD_DIR)/,$(ZCUSTOM_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(ZCUSTOM_DIRS)),$(wildcard $(dir)/*.c)) # Actor Elf Files $(BUILD_DIR)/actors/group0.elf: SEGMENT_ADDRESS := 0x04000000 @@ -134,6 +140,8 @@ $(BUILD_DIR)/actors/group16.elf: SEGMENT_ADDRESS := 0x06000000 $(BUILD_DIR)/actors/group17.elf: SEGMENT_ADDRESS := 0x06000000 $(BUILD_DIR)/actors/common0.elf: SEGMENT_ADDRESS := 0x08000000 $(BUILD_DIR)/actors/common1.elf: SEGMENT_ADDRESS := 0x03000000 +$(BUILD_DIR)/actors/custom0.elf: SEGMENT_ADDRESS := 0x04000000 +$(BUILD_DIR)/actors/zcustom0.elf: SEGMENT_ADDRESS := 0x04000000 # -------------------------------------- # Level Rules diff --git a/actors/common1.c b/actors/common1.c index 1d811ca9..c197ca6a 100644 --- a/actors/common1.c +++ b/actors/common1.c @@ -54,9 +54,6 @@ UNUSED static const u64 binid_11 = 11; #include "mario_cap/model.inc.c" UNUSED static const u64 binid_12 = 12; -// luigi_cap -#include "luigi_cap/model.inc.c" - #include "power_meter/model.inc.c" UNUSED static const u64 binid_13 = 13; diff --git a/actors/common1.h b/actors/common1.h index 65c1127d..9a1b650e 100644 --- a/actors/common1.h +++ b/actors/common1.h @@ -172,27 +172,6 @@ extern const Gfx mario_cap_seg3_dl_03023108[]; extern const Gfx mario_cap_seg3_dl_03023160[]; extern const Gfx mario_cap_seg3_dl_03023298[]; -// luigi_cap - -extern const GeoLayout luigis_cap_geo[]; -//extern const GeoLayout luigis_metal_cap_geo[]; -//extern const GeoLayout luigis_wing_cap_geo[]; -//extern const GeoLayout luigis_winged_metal_cap_geo[]; -extern const Gfx luigi_cap_seg3_dl_03022B30[]; -extern const Gfx luigi_cap_seg3_dl_03022B68[]; -extern const Gfx luigi_cap_seg3_dl_03022CC8[]; -extern const Gfx luigi_cap_seg3_dl_03022D10[]; -extern const Gfx luigi_cap_seg3_dl_03022E78[]; -extern const Gfx luigi_cap_seg3_dl_03022EA8[]; -extern const Gfx luigi_cap_seg3_dl_03022ED8[]; -extern const Gfx luigi_cap_seg3_dl_03022F20[]; -extern const Gfx luigi_cap_seg3_dl_03022F48[]; -extern const Gfx luigi_cap_seg3_dl_03022FF8[]; -extern const Gfx luigi_cap_seg3_dl_030230B0[]; -extern const Gfx luigi_cap_seg3_dl_03023108[]; -extern const Gfx luigi_cap_seg3_dl_03023160[]; -extern const Gfx luigi_cap_seg3_dl_03023298[]; - // mist extern const GeoLayout mist_geo[]; extern const GeoLayout white_puff_geo[]; diff --git a/actors/common1_geo.c b/actors/common1_geo.c index e64f7bbe..7f75637a 100644 --- a/actors/common1_geo.c +++ b/actors/common1_geo.c @@ -17,7 +17,6 @@ #include "blue_fish/geo.inc.c" #include "leaves/geo.inc.c" #include "mario_cap/geo.inc.c" -#include "luigi_cap/geo.inc.c" // custom luigi_cap #include "number/geo.inc.c" #include "mushroom_1up/geo.inc.c" #include "star/geo.inc.c" diff --git a/actors/custom0.c b/actors/custom0.c new file mode 100644 index 00000000..0ead73b7 --- /dev/null +++ b/actors/custom0.c @@ -0,0 +1,8 @@ +#include +#include "sm64.h" +#include "surface_terrains.h" +#include "geo_commands.h" +#include "make_const_nonconst.h" + +// luigi_cap +#include "luigi_cap/model.inc.c" diff --git a/actors/custom0.h b/actors/custom0.h new file mode 100644 index 00000000..5b9aac82 --- /dev/null +++ b/actors/custom0.h @@ -0,0 +1,23 @@ +#ifndef CUSTOM0_H +#define CUSTOM0_H + +#include "types.h" + +// luigi_cap +extern const GeoLayout luigis_cap_geo[]; +extern const Gfx luigi_cap_seg3_dl_03022B30[]; +extern const Gfx luigi_cap_seg3_dl_03022B68[]; +extern const Gfx luigi_cap_seg3_dl_03022CC8[]; +extern const Gfx luigi_cap_seg3_dl_03022D10[]; +extern const Gfx luigi_cap_seg3_dl_03022E78[]; +extern const Gfx luigi_cap_seg3_dl_03022EA8[]; +extern const Gfx luigi_cap_seg3_dl_03022ED8[]; +extern const Gfx luigi_cap_seg3_dl_03022F20[]; +extern const Gfx luigi_cap_seg3_dl_03022F48[]; +extern const Gfx luigi_cap_seg3_dl_03022FF8[]; +extern const Gfx luigi_cap_seg3_dl_030230B0[]; +extern const Gfx luigi_cap_seg3_dl_03023108[]; +extern const Gfx luigi_cap_seg3_dl_03023160[]; +extern const Gfx luigi_cap_seg3_dl_03023298[]; + +#endif diff --git a/actors/custom0_geo.c b/actors/custom0_geo.c new file mode 100644 index 00000000..7522ea4b --- /dev/null +++ b/actors/custom0_geo.c @@ -0,0 +1,7 @@ +#include +#include "sm64.h" +#include "geo_commands.h" +#include "make_const_nonconst.h" +#include "custom0.h" + +#include "luigi_cap/geo.inc.c" // custom luigi_cap diff --git a/actors/group0.c b/actors/group0.c index 426cae54..f852e6c6 100644 --- a/actors/group0.c +++ b/actors/group0.c @@ -7,7 +7,6 @@ // Note: This bin does not use bin IDs, unlike the other segmented bins. #include "mario/model.inc.c" -#include "luigi/model.inc.c" #include "bubble/model.inc.c" diff --git a/actors/group0.h b/actors/group0.h index eea841df..44f8b05d 100644 --- a/actors/group0.h +++ b/actors/group0.h @@ -263,9 +263,6 @@ extern const Gfx mario_cap_wings_transparent[]; extern const Gfx mario_metal_cap_wings[]; extern const Gfx mario_metal_cap_wings_transparent[]; -// luigi -#include "actors/luigi/geo_header.h" - // sparkle extern const GeoLayout sparkles_geo[]; extern const Gfx sparkles_seg4_dl_0402A490[]; diff --git a/actors/group0_geo.c b/actors/group0_geo.c index d8e3ad31..bddefae9 100644 --- a/actors/group0_geo.c +++ b/actors/group0_geo.c @@ -16,4 +16,3 @@ #include "water_splash/geo.inc.c" #include "sparkle_animation/geo.inc.c" #include "mario/geo.inc.c" -#include "luigi/geo.inc.c" diff --git a/actors/group5_geo.c b/actors/group5_geo.c index 61208f2d..6a2ccc3a 100644 --- a/actors/group5_geo.c +++ b/actors/group5_geo.c @@ -5,6 +5,7 @@ #include "make_const_nonconst.h" #include "common1.h" +#include "custom0.h" #include "group5.h" #include "klepto/geo.inc.c" diff --git a/actors/group6_geo.c b/actors/group6_geo.c index 7b937906..d62418be 100644 --- a/actors/group6_geo.c +++ b/actors/group6_geo.c @@ -5,6 +5,7 @@ #include "make_const_nonconst.h" #include "common1.h" +#include "custom0.h" #include "group6.h" #include "monty_mole/geo.inc.c" diff --git a/actors/zcustom0.c b/actors/zcustom0.c new file mode 100644 index 00000000..9eb1393b --- /dev/null +++ b/actors/zcustom0.c @@ -0,0 +1,8 @@ +#include +#include "sm64.h" +#include "surface_terrains.h" +#include "geo_commands.h" +#include "make_const_nonconst.h" + +// luigi model +#include "luigi/model.inc.c" diff --git a/actors/zcustom0.h b/actors/zcustom0.h new file mode 100644 index 00000000..e0e1fb22 --- /dev/null +++ b/actors/zcustom0.h @@ -0,0 +1,9 @@ +#ifndef ZCUSTOM0_H +#define ZCUSTOM0_H + +#include "types.h" + +// luigi +#include "actors/luigi/geo_header.h" + +#endif diff --git a/actors/zcustom0_geo.c b/actors/zcustom0_geo.c new file mode 100644 index 00000000..33cc92a2 --- /dev/null +++ b/actors/zcustom0_geo.c @@ -0,0 +1,7 @@ +#include +#include "sm64.h" +#include "geo_commands.h" +#include "make_const_nonconst.h" +#include "zcustom0.h" + +#include "luigi/geo.inc.c" diff --git a/build-windows-visual-studio/sm64ex.vcxproj b/build-windows-visual-studio/sm64ex.vcxproj index 5d9882a1..c46d3bb6 100644 --- a/build-windows-visual-studio/sm64ex.vcxproj +++ b/build-windows-visual-studio/sm64ex.vcxproj @@ -314,6 +314,8 @@ + + @@ -785,6 +787,8 @@ + + @@ -4383,6 +4387,8 @@ + + diff --git a/build-windows-visual-studio/sm64ex.vcxproj.filters b/build-windows-visual-studio/sm64ex.vcxproj.filters index e9952408..717e5aea 100644 --- a/build-windows-visual-studio/sm64ex.vcxproj.filters +++ b/build-windows-visual-studio/sm64ex.vcxproj.filters @@ -15273,6 +15273,18 @@ Source Files\src\pc\djui\panel + + Source Files\actors + + + Source Files\actors + + + Source Files\actors + + + Source Files\actors + @@ -16366,5 +16378,11 @@ Source Files\src\pc\djui\panel + + Header Files\actors + + + Header Files\actors + \ No newline at end of file diff --git a/data/behavior_data.c b/data/behavior_data.c index 3a5cb2c0..7ddcc9af 100644 --- a/data/behavior_data.c +++ b/data/behavior_data.c @@ -15,6 +15,7 @@ #include "actors/common0.h" #include "actors/common1.h" +#include "actors/custom0.h" #include "actors/group1.h" #include "actors/group2.h" #include "actors/group3.h" @@ -32,6 +33,8 @@ #include "actors/group15.h" #include "actors/group16.h" #include "actors/group17.h" +#include "actors/zcustom0.h" + #include "levels/bbh/header.h" #include "levels/castle_inside/header.h" #include "levels/hmc/header.h" diff --git a/levels/scripts.c b/levels/scripts.c index 29043ff5..7d5949a3 100644 --- a/levels/scripts.c +++ b/levels/scripts.c @@ -10,6 +10,7 @@ #include "actors/common0.h" #include "actors/common1.h" +#include "actors/custom0.h" #include "actors/group0.h" #include "actors/group1.h" #include "actors/group2.h" @@ -28,6 +29,7 @@ #include "actors/group15.h" #include "actors/group16.h" #include "actors/group17.h" +#include "actors/zcustom0.h" #include "levels/menu/header.h" #include "levels/intro/header.h"